进程中有多少个段表、多少个页表?

老羊快跑 微信公众号 内有老羊的《200分钟PCB设计傻瓜教程》,免费观看

最近有很多同学问这样几个问题,就是在操作系统中,1.如果存储器管理采用基本分页机制,那么每个进程有几个页表?2.如果采用基本分段机制,每个进程有几个段表?如果采用基本分页和分段相结合的方式,每个进程有几个段表和几个页表?

 

下面给出统一的答案供大家参考。其实不同的操作系统的在内存储器管理上,使用的方法可能是不一样,不能一概而论。针对我们常见的PC操作系统而言,一般:

1.      如果存储器采用基本分页机制,那么操作系统会为每个进程或任务建立一个页表(这个页表可能是一级的也可能是多级的)。整个操作系统中有多个进程在运行,那么系统就会有多个页表。页表在内存中的存储位置由寄存器CR3给出。

2.      如果存储器采用基本分段机制,那么操作系统会为每个进程或任务建立一个段表(一般不用多级),用于记录数据段、代码段等各类段在内存中的具体位置。

3.      如果采用段页式结合的机制,那么一般一个进程或任务,操作系统会给其建立一个段表,而段表中的每个段又会对应一个页表,也就是说,段页式机制的每个进程有一个段表,有多个页表。

 

对于典型的linux系统而言,操作系统会维护一个全局描述符表(相当于系统的段表),全局描述符表中用于记录系统任务和用户任务的描述符,其中用户任务的描述符又指向用户任务的局部描述符表(相当于用户任务的段表)。因此要说linux中的分段机制用的是一张大表,我个人认为也是有道理的。如果大家感兴趣可以翻看《Linux内核完全剖析基于0.12内核》当然,如果应付考试,请记住上面三点。


老羊快跑,欢迎关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值