【操作系统】进程

进程是一个正在执行程序的实例,它包括程序计数器、寄存器和变量的当前值。 在单CPU的环境下,进程交替运行,CPU在多个进程间快速切换,让人感觉多个进程在同时执行,但同一时刻只有一个进程在运行,这就是所谓的伪并行。

创建进程
有四种创建进程的方法:
  1. 系统初始化:操作系统启动时,会创建一些进程,包括前台进程和后台进程(守护进程)。
  2. 正在运行的进程执行系统调用:一个进程发出系统调用创建另一个进程,以便多个进程相互协作完成任务。
  3. 用户请求创建进程:这是我们最熟悉的一种方式。命令行环境下键入命令,而图形界面环境下双击图标,就能创建一个新的进程了。
  4. 一个批处理作业的初始化:操作系统认为有资源可运行另一个作业时,创建一个新的进程。
上述四种创建进程的方法,新进程的产生本质上都是由一个进程执行了一个用于创建进程的系统调用。例如在UNIX系统中,是使用fork+exec的组合产生新进程。

进程的终止
一个进程终止的条件通常有下面几条:
  1. 正常退出:进程完成任务后执行系统调用正常退出,例如UNIX系统的exit系统调用。
  2. 进程发现的错误:例如程序需要打开的文件不存在。
  3. 进程引起的错误:例如访问非法地址,除数为0等由于程序本身的原因而引起的错误。
  4. 被其它进程杀死:其它进程通过系统调用终止当前进程,例如UNIX系统的kill系统调用。

进程的状态
进程有三种状态:
  1. 运行态:实际占用CPU。
  2. 就绪态:可以运行,但因其它进程占用CPU而暂停。
  3. 阻塞态:停止等待某个外部事件的发生,例如磁盘I/O。
三种状态的关系如下:


这里要注意,当阻塞进程等待的事件发生时,不能直接运行,而是要变为就绪状态。如果CPU此时空闲,则可以直接运行该进程,否则要等待调度程序的调度。

进程的实现
操作系统维护有一张表格(程序中表现为一个结构数组),叫做进程表。每一个进程对应一个表项(进程控制块),表项中保存有该进程的相关信息。进程在不同状态间切换时需要用到表项中的信息。例如进程从运行态切换到阻塞态或就绪态时,该进程的信息就要保存在它对应的表项中,待进程恢复运行后,又要从表项中取出这些信息继续执行。这使得进程能够给人以连续执行的错觉,实际上是间断执行的。表项内容大致如下:


参考:
《现代操作系统》 P47-P52.
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下 4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值