社区
Linux/Unix社区
帖子详情
进程内容在保存在哪里?
jiyeyuran
2010-08-15 04:25:55
在多进程环境下,当某进程在运行时,它的地址空间是整个内存(除去操作系统占用的内存空间),那其它进程的内容保存在什么地方呢?在内存中,还是在磁盘上?如果在内存中,那它们的数据就有可能被当前运行的进程覆盖。如果在磁盘上,那每次系统进行进程切换时,就要把当前的进程数据写到磁盘,然后再从磁盘中调出新的进程数据,这样开销也太大了吧。
...全文
1228
10
打赏
收藏
进程内容在保存在哪里?
在多进程环境下,当某进程在运行时,它的地址空间是整个内存(除去操作系统占用的内存空间),那其它进程的内容保存在什么地方呢?在内存中,还是在磁盘上?如果在内存中,那它们的数据就有可能被当前运行的进程覆盖。如果在磁盘上,那每次系统进行进程切换时,就要把当前的进程数据写到磁盘,然后再从磁盘中调出新的进程数据,这样开销也太大了吧。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
谭海燕
2010-08-16
打赏
举报
回复
虚拟内存是相对于物理内存而言的。
虚拟内存是一段地址空间。
每个进程都有一个虚拟内存,虚拟内存是映射到物理内存的。
虚拟内存中,各个进程都只能看到自己的东西,他的所有操作都是在这段虚拟内存中进行的。在进程自己看来,
好像自己占用了内存的全部。
而实际上他只是一段虚拟内存。最终虚拟内存是映射到物理内存。
黑呼乎
2010-08-16
打赏
举报
回复
要弄明白就要知道虚拟地址,逻辑地址,线性地址,物理地址这些概念
现在PC的内存管理一般都采用 分段技术+分页技术
分段:
我们的应用程序中有时打印出的0x***地址,只是段偏移地址,也就是逻辑地址,段描述符+逻辑地址=虚拟地址,其中的段描述符我们无法知道,由操作系统管理
段描述符 --> 查询GDT表 --> 段基地址 + 逻辑地址 = 线性地址
若没有采用分页技术的话,上边的线性地址就是物理地址,CPU可以拿它找到指定的内存地址
分页:
若采用了分页地址,将上边得到的线性地址分3段 第一段用来定位页表目录中的某一页表,第二段用来定位页表中的某一个页表项,页表项中存储的有此页的基地址,页基地址 + 第三段(页偏移地址) = 物理地址
以上小弟愚见,希望LZ有所收获
FancyMouse
2010-08-15
打赏
举报
回复
[Quote=引用 4 楼 jiyeyuran 的回复:]
引用 1 楼 hqin6 的回复:
当某进程在运行时,它的地址空间是整个内存
----------
是么?
除操作系统和末用的空间外,进程地址空间应该是整个内存
[/Quote]
乃到底知道不知道虚拟内存是啥?
yzx714
2010-08-15
打赏
举报
回复
[Quote=引用 6 楼 jiyeyuran 的回复:]
引用 5 楼 yzx714 的回复:
楼主直接参考IA32手册分页的那一部分,我也不爱赘述了
请问是在哪一卷呢?
[/Quote]第三卷,也就是系统编程那一卷,OldLinux有翻译,并且翻译得不错,原版也很好
jiyeyuran
2010-08-15
打赏
举报
回复
[Quote=引用 5 楼 yzx714 的回复:]
楼主直接参考IA32手册分页的那一部分,我也不爱赘述了
[/Quote]
请问是在哪一卷呢?
yzx714
2010-08-15
打赏
举报
回复
楼主直接参考IA32手册分页的那一部分,我也不爱赘述了
jiyeyuran
2010-08-15
打赏
举报
回复
[Quote=引用 1 楼 hqin6 的回复:]
当某进程在运行时,它的地址空间是整个内存
----------
是么?
[/Quote]
除操作系统和末用的空间外,进程地址空间应该是整个内存
jiyeyuran
2010-08-15
打赏
举报
回复
[Quote=引用 2 楼 ljhnew 的回复:]
"在多进程环境下,当某进程在运行时,它的地址空间是整个内存"
不对,在保护模式下,一个进程只能被保护运行在知道的内存空间中。不是整个内存,除了VxWorks等实模式系统(非保护模式,它是一个单进程多线程即任务的操作系统)。每个进程只占用他自己的内存空间,只有进程调用到的核心态程序,才有公用的核心内存,共享内存除外。
详细资料参考一下linux的书本吧。你提的问题后面部分涉及到的内容太……
[/Quote]
深入理解计算机系统一本书中写道:32位的机器上,进程的虚拟地址空间分布如下,0~0x08048000末用,0x08048000~0x40000000 保存只读代码和数据、读/写数据和运行时堆,0x40000000~0xc0000000 是共享库和用户栈存储区,xc0000000~0xffffffff 是内核虚拟存储器。如果一个进程只能被保护运行在知道的内存空间中,那操作系统如何知道分配多大的内存空间给它。
ljhnew
2010-08-15
打赏
举报
回复
"在多进程环境下,当某进程在运行时,它的地址空间是整个内存"
不对,在保护模式下,一个进程只能被保护运行在知道的内存空间中。不是整个内存,除了VxWorks等实模式系统(非保护模式,它是一个单进程多线程即任务的操作系统)。每个进程只占用他自己的内存空间,只有进程调用到的核心态程序,才有公用的核心内存,共享内存除外。
详细资料参考一下linux的书本吧。你提的问题后面部分涉及到的内容太多,参考书上度有。
太乙
2010-08-15
打赏
举报
回复
当某进程在运行时,它的地址空间是整个内存
----------
是么?
python线程
进程
、异步IO
该章节主要包括线程
进程
的概念,基于python的线程
进程
实现,GIL锁的影响,消费者生产者模型,
进程
池的应用以及IO模型的介绍,一句话概括本章的
内容
就是:实现并发编程,即计算机能够同时处理多个任务。
系统调用和
进程
切换时的寄存器信息
保存
在哪里?
系统调用是什么??? 系统调用是操作系统为用户提供的一系列API;系统调用将用户的请求发给内核,内核执行完以后,将...然后将此系统调用号通过eax寄存器告知内核,在执行0x80号中断的时候,eax寄存器中放的是5; 将
【计算机操作系统-内存管理】
进程
切换与线程切换的区别是什么?会
保存
什么信息呢?
首先先来理解一下什么是...当操作系统决定要把控制权从当前
进程
转移到某个新
进程
时,就会进行上下文切换,即
保存
当前
进程
的上下文,恢复新
进程
的上下文,然后将控制权传递到新
进程
,新
进程
就会从上次停止的地方开始.
进程
上下文
1.
进程
上下文一般在
进程
切换中提到,
进程
控制块PCB,
保存
着
进程
的诸多详细信息,当
进程
要切换时当前
进程
的寄存器
内容
以及内存页表的详细信息等等
内容
,也就是关于描述
进程
的信息。2.补充(LINUX完全注释中的一段话)...
怎么查看
进程
? 怎么结束
进程
?怎么执行一次性计划任务和周期计划任务管理??
进程
就是在cpu及内存中运行某些命令,程序代码 动态的执行代码
进程
分父
进程
,子
进程
(每个程序可以创建一个或多个
进程
) 2.怎么查看
进程
? 查看
进程
分为两种:静态查看和动态查看; 静态查看 咱们先聊静态查看; ...
Linux/Unix社区
23,110
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章