操作系统-多进程图像

168 阅读3分钟

首先声明,这只是本人学习操作系统的笔记,并不是权威的,只能作参考

进程

启动了的程序就是进程

进程就是进行(执行)中的程序

进程和程序的区别

  1. 进程有开始和结束,程序没有。
  2. 进程会走走停停,走停对程序无意义。
  3. 进程需要记录ax、bx、...,程序不用。

CPU 就是不断地取址执行的设备。多道程序,交替执行,以此来提高CPU利用率。

PCB

PCB(Process Control Block):用来记录进程信息的数据结构

PCB保存了一个进程的执行现场,操作系统依靠PCB来感知一个进程

多进程的组织:PCB+状态+队列。

如何组织多个进程:用PCB放在不同的队列里,用状态来推进这多个进程,进行状态转化。

交替切换,是多进程图像实现的灵魂。

进程调度,是一个很深刻的话题。

操作系统要支持多进程图像,需要做到的事情

  1. 组织多个进程:根据PCB、状态,形成不同的队列,放在不同的位置。
  2. 完成进程切换:调度、选择下一个进程,得到下一个进程的PCB,然后将CPU的寄存器和存放在进程PCB中的信息来进行互相的交换、互相的覆盖(盖住、盖上、扣住)。
  3. 对多个进程之间的相互影响要进行分离(为什么会相互影响?因为这多个进程要交替执行,都得放在内存中,这样CPU才能取址执行):多个进程同时存在于内存中,可能会出现互相操作对方内存的情况,所以需要对多进程的地址空间进行分离(内存管理的主要内容),具体是通过每个进程各自的映射表来管理内存,比如进程1的映射表中100地址对应的物理内存地址,和进程2的映射表中100地址对应的物理内存,是不同的,这就实现了进程间内存分离,使得多个进程在内存中能够很好地共存。
  4. 实现进程之间的合作:核心在于进程同步(合理的推进顺序):比如对于一个共享的变量counter,一个进程在写counter时,给counter上锁,阻断其他进程访问counter,另一个进程在使用counter前,会检查counter,只有前一个进程给counter开锁后,后一个进程才能给counter上锁并操作counter。

如何形成多进程图像(总结):

多进程图像,是操作系统最核心的图像。

  1. 读写PCB(操作系统通过PCB才能感知到多个进程),OS中最重要的结构,贯穿始终。
  2. 要操作寄存器完成切换
  3. 要写调度程序。
  4. 要有进程同步与合作
  5. 要有地址映射