3.1 进程管理概述
一、CPU 管理的直观想法
CPU 的工作原理就是取指执行,但如果遇到 IO 操作,那么 CPU 将等待 IO 的完成,IO 操作的速度很慢,V(cpu) :V(IO) = 10^6:1,也就是说,执行一个 IO 操作,CPU 能执行 10^6 条指令,所以为了充分利用 CPU,就要在 IO 的时候运行其它程序。
这里引出了一个概念,并发:并发是 CPU 交替执行多个程序。
为了完成在运行着的程序之间切换,就必须保存程序的状态,所以这里就引出了进程的概念,进程相较于程序而言是有状态的,进程的状态在 PCB 中保存。
所以,CPU 管理就是要管理多个进程如何合理有序的运行。
二、多进程图像
2.1 什么是多进程图像
多进程图像就是指在多个进程同时推进的时候,操作系统应该能够把这些进程记录好,按照合理地次序推进(资源分配、任务调度),为了完成多进程图像,需要解决如下问题:
- 多进程如何组织
- 多进程如何交替
- 多进程如何解决访问内存的冲突
- 多进程如何协作
2.2 多进程图像:多进程如何组织
多进程是通过 PCB 队列来组织的,PCB 是进程控制块,操作系统通过 PCB 来感知进程存在的。在 PCB 中保存了进程的信息,其中一个重要的信息就是进程状态
进程状态:新建态、就绪态、运行态、阻塞态、终止态
2.3 多进程图像:多进程如何交替
队列操作 + 调度 + 切换
**调度:**使用调度算法实现,如 FIFO、Priority
切换:切换分为三步,① 把当前运行的进程的信息从 CPU 中保存到 PCB 中 ② 把待运行的进程信息从 PCB 中加载到 CPU 中 ③切换页表(这里又涉及到了虚拟内存)
2.4 多进程图像:多进程如何解决访问内存的冲突
多个进程可能同时要求访问相同的内存,这样就会引起冲突,所以为了避免冲突,就要引入内存管理的概念,在内存管理中有一部分知识就是使用内存映射表解决了冲突。
2.5多进程图像: 多进程如何协作
多个进程可能需要互相协作,最经典的就是生产者消费者问题,为了实现进程的协作,需要解决的问题是进程间通信和同步。
三、总结
学习进程管理,就是要学习多进程图像:多进程如何组织、进程调度、进程协作、内存管理。