进程概念:
进程是要管理CPU才引出的概念:程序以及反应程序执行信息的数据结构的总和。
人们也给这个数据结构定义了一个基本概念:PCB(process control block),即进程控制块。
多进程视图
如果只有一个进程,在遇到IO操作的时候,CPU就只能等待I/O操作完成,造成CPU工作效率低下。
为了解决这个问题,操作系统中应该启动多个进程,并能在多个进程之间合理切换。
具体来说,系统在启动的最后,会通过fork()系统调用创建1号进程,并让一号进程执行shell程序。接下来shell会调用fork来创建一个进程,去执行用户输入命令对应的程序。用户可以通过fork创建出新的进程来执行相应的任务。
想要理解进程管理模块需要有做到以下俩个角度
1)用户角度
想象在系统中有一个shell进程,需要执行什么任务的时候,shell进程就会fork出一个进程来完成这项任务。在操作系统中有多个进程,每个进程各司其职,当需要执行新的工作的时候,就需要在系统中创建出新的进程
2)内核角度
内核需要感知并且控制操作系统中的所有进程。
多进程状态
1:新建态
fork新创建的进程状态
2:就绪态
具备课执行条件的状态
3:运行态
当前占有CPU,正在执行的进程状态
4:阻塞态
也称为睡眠或等待,缺少执行条件的状态
5:退出态
exit程序退出时状态
进程状态间切换图如下: