深入理解操作系统——进程控制详解

当一个正在运行的进程发生阻塞或等待,或者需要调度其他进程时就会进行进程切换,切换前,需要保存进程的上下文信息,切换后,需要恢复上下文信息。上下文指的是一些进程生命周期的信息,如寄存器状态,cpu状态,内存地址空间等,这些信息存在进程的pcb块中,它有内核进行维护,而且内核存在多个队列,如等待队列,就绪队列等,当前进程因为什么原因进行进程切换,就将相应的pcb块放到内核维护的相应队列当中。

进程创建在unix系统中的系统调用指令是fork()和exec(),fork()进行把一个进程复制成两个进程,复制父进程所有的变量和内存以及所有cpu寄存器,子进程的pid=0,exec()用新程序来重写当前进程。执行Fork()创建新进程复制父进程的所有信息,但是有些内存信息并不需要,反而增加了开销,所以有了一个轻量级的vfork()系统调用,此创建进程时,不再创建一个同样的内存映射。

进程等待与退出的指令分别是wait(),exit().进程退出的主要作用是将进程占用的资源进行回收,如释放内存,释放数据结构,清理僵尸进程等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值