系统架构设计师综合部分(1)

进程管理&PCB组织方式

进程的三态模型

按进程在执行过程中的不同情况至少要定义三种状态:

  • 运行(running)态:进程占有处理器正在运行的状态。
    进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态; 在多处理机系统中,则有多个进程处于执行状态。
  • 就绪(ready)态:进程具备运行条件,等待系统分配处理器以便运行的状态。
    当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
  • 等待(wait)态:又称阻塞态或睡眠态,指进程不具备运行条件,正在等待某个时间完成的状态。
    也称为等待或睡眠状态,一个进程正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。

进程的五态模型

五态模型在三态模型的基础上增加了新建态(new)和终止态(exit)。

  • 新建态:对应于进程被创建时的状态,尚未进入就绪队列。
    创建一个进程需要通过两个步骤:
    1.为新进程分配所需要资源和建立必要的管理信息。
    2.设置该进程为就绪态,并等待被调度执行。
  • 终止态:指进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。
    处于终止态的进程不再被调度执行,下一步将被系统撤销,最终从系统中消失。
    终止一个进程需要两个步骤:
    1.先等待操作系统或相关的进程进行善后处理(如抽取信息)。
    2.然后回收占用的资源并被系统删除。

进程的七态模型

七态模型在五态模型的基础上增加了挂起就绪态(ready suspend)挂起等待态(blocked suspend)

  • 挂起就绪态:进程具备运行条件,但目前在外存中,只有它被对换到内存才能被调度执行。
  • 挂起等待态:表明进程正在等待某一个事件发生且在外存中。

PCB的组织方式

线性方式:系统中所有PCB都组织在一张线性表中,表的首地址存放在内存专用区。

  • 优点: 实现简单、开销小
  • 缺点: 每次查找时都要扫描一整张表,因此适合进程数目不多的系统

链接方式:具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列。

索引方式:系统根据所有进程状态的不同,建立几张索引表,并把索引表的首地址记录在内存的专用单元中。在每个索引表的表目中,记录具有相应状态的PCB在PCB表中的首地址。(其实就是改进版的线性方式,分类之后,变成了很多子表,不需要把整个PCB表都扫描一遍,只需要先根据进程状态找到对应的子表,然后再扫描子表。)

页面: 1 2 3

Breeze Wang

A student majoring in Software Engineering at Central South University has an understanding of software development techniques, software architecture, and is able to use Godot to develop game projects. I am currently in the Game Development Laboratory at Central South University. I have experience participating in Global Game Jam. Loving game development.