fork()部分可能会问到的问题总结(持续更新)

pcb是什么,有什么作用?

Pcb是进程管理和控制的最重要的数据结构,每个进程均有一个PCB,其中包含:

  1. 进程标识符;
  2. 处理机的信息(通用寄存器,指令计数器,用户的栈指针);
  3. 进程调度信息(进程状态,进程优先级,事件);
  4. 进程控制信息(程序的数据的地址,进程同步和通信机制);

系统是通过pcb来管理所有的进程;

内存的分页管理,页表是什么?在程序中我们使用的是逻辑地址还是物理地址?引入虚拟内存后,对程序的执行会产生什么样的影响?

页式内存管理是将虚拟内存和物理内存分为大小相同的页,32位下页的大小为4k。系统通过页表来管理虚拟页面到物理页面的映射关系,通常页表也分为多级页表。就像图书的目录一样分为一级目录、二级目录等。虚拟地址实际由页面号和页内偏移值两部分组成MMU(内存管理单元)会分析虚拟地址,再查询用户程序对应的页表(PGB-PMD-PET),准确定位该虚拟地址对于的物理页面。

 

程序中使用的地址一般是逻辑地址,也成为虚拟地址;(程序在装入内存之前,通常为逻辑地址形式,有时甚至在装入内存之后,程序仍为相对地址形式。为了保证CPU执行程序指令时能正确访问存储内存单元,需要将用户程序中的逻辑地址转化为可以由机器直接寻址的物理地址,这一过程称为地址映射);

 

对于需要将程序一次性装入内存才能运行的存储管理方案来说,其缺点是明显的。

  1. 当一个参与并发执行的进程运行时,其整个程序必须都在内存;若进程的程序比内存可用空间还大,该程序将无法装入内存运行。
  2. 程序被装入内存后,便一直驻留在内存直至程序运行结束才释放内存,这样就会使一些需要尽快运行的作业无法被装入运行,更严重的是,若进程因I/O而长期等待或程序暂时不执行的时候,它将一直占有内存资源,导致内存不能得到充分的利用;

 

虚拟内存将内存和外存结合起来,为用户程序提供一个容量远大于物理存储器的虚拟存储空间,用户程序可以先只装入一部分就开始执行,以后根据执行1的具体情况再依次请求装入剩下的部分,直至整个程序都执行完毕。这就从逻辑上扩充了内存;

 

在程序中m

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值