什么是进程###
一个程序可以看作是一个进程
进程的概念是伴随着多任务系统而产生的
每个进程都占用一定的系统硬件资源
多个程序同时执行需要操作系统对这些进程进行合理的资源调度
进程不仅仅是文本段,它还包括活动的一些东西,比如程序计数器、处理器寄存器、堆栈、数据段等等。
对于一个完整的程序,在内存中分布情况如下图:
两个进程可以与同一个程序(文本)有关,比如打开两个chrome,他们的文本相同,但数据段、堆、栈不同
进程状态###
进程可以分为5个状态:
(1)开始:进程开始创建
(2)就绪:等待进程调度算法分配就可以执行了
(3)运行:正在执行代码
(4)等待:等待IO等信号
(5)结束:进程被杀死
进程控制块###
Process Control Block(PCB)
包含与一个进程相关的各种信息
进程状态:运行、就绪、等待等等
程序计数器:下一条要执行的指令地址
CPU寄存器:各种程序运行过程中数据信息
CPU调度信息:该进程的优先级等等
内存管理信息:所处内存基址、页表等等
记账信息:CPU时间、进程数量等信息
IO状态信息:分配的IO设备、文件等等
所以两个进程在CPU中切换时需要把被切换的进程PCB保存,同时把要执行的进程PCB加载,如下图所示:
进程调度###
多进程好处在于使CPU一直busy,她累了我们就舒服了。想象一下以前只有一个进程能执行的时候,当进程处于等待IO时CPU就完全不干事,我们就会觉得电脑卡顿;而现在当一个进程处于等待IO时我们可以先把其挂起(等待),让CPU先运行其他进程,而当IO就绪后我们再把这个进程PCB拿回来继续执行,这样可以大大提高CPU使用率。
单处理器一次只能运行一个进程,进程调度即把一群处于就绪状态的进程选择出来一个放到CPU中执行的过程,其他要等CPU空闲下来后再被选中执行。
进程操作###
委婉