操作系统第二章 ---- 处理机管理 知识点整理及梳理

  • 1. 单道程序系统与多道程序系统
    • 1.1单道程序系统
      • 1.1.1程序顺序执行的特征:
    • 1.2多道程序系统
      • 1.2.1程序并发执行的条件
      • 1.2.2程序并发执行的特征
  • 2.进程
    • 2.1进程的定义
    • 2.2 进程的五个特性
    • 2.3 进程与程序的区别
    • 2.4 进程的基本状态与转换
    • 2.5 进程控制块PCB
      • 2.5.1 PCB的定义
      • 2.5.2 PCB的作用
      • 2.5.3 PCB中的主要信息(因系统而异)
    • 2.6 进程的队列
    • 2.7 进程的互斥
      • 2.7.1 互斥的相关概念及定义
      • 2.7.2临界区的使用原则==☆==
      • 2.7.3 互斥的实现
    • 2.7 进程的同步
      • 2.7.1 进程同步和互斥的关系
  • 3. 信号量机制
      • 3.1 信号量整型分量S的物理含义☆☆
      • 3.2 P、V操作
      • 3.3 P(S)操作和V(S)操作的物理含义
      • 3.4 使用P、V操作实现几个经典的同步、互斥问题
  • 4. 死锁
    • 4.1 产生死锁的原因
      • 4.2 产生死锁的必要条件
      • 4.3 死锁的解决办法
  • 5. 处理机调度
    • 5.1 调度算法
    • 5.2 调度时机
    • 5.3 调度过程
  • 6. 线程
    • 6.1 线程和进程的比较

1. 单道程序系统与多道程序系统

1.1单道程序系统

单道程序系统在内存中每次仅存在一个程序,该程序运行时独占整个系统的资源,实际上它只会顺序的使用其中的一部分。因此在某一时刻,系统的各个部分只有一部分在工作,这造成了资源浪费从而利用率低。

1.1.1程序顺序执行的特征:

  • 顺序性: 由图可知,在程序内部I、C、P操作的顺序是不可颠倒的,各程序之间的顺序也不可以颠倒,需严格按照程序所规定的顺序执行。
  • 封闭性:程序在运行时,独占全部系统资源,只有程序本身才能改变系统资源的状态。
  • 可再现性: 由于程序不受外部影响,只要初始条件相同,运行的结果就一定相同。

1.2多道程序系统

为了减少单道程序系统的利用率低的情况,引入了多道程序设计技术。多道程序设计指允许多道程序同时进入内存,并允许它们共享资源、并发执行的程序设计技术。采用这一技术的系统称为多道程序系统。 多道程序系统是现代操作系统所采用的最基本、最重要的技术。
在多道程序系统中,程序是并发执行的。

由图可见,各程序的内部操作I、C、P操作未颠倒,但程序之间不再是严格的串行次序。如,当程序1在进行运算操作时,很明显程序2的输入操作不会影响程序之间的关系。因此I、C、P操作在时间上可以重叠。 显然,并发执行的程序失去了封闭性和可再现性。 举个例子,I1与I2都取的同一地址的数值,本意是想让I2是取的程序1运行结束后的。而当C1正在进行运算时还未来得及将运算结果写回,I2却已将还未处理的数据取出进行计算造成了结果的错误。

1.2.1程序并发执行的条件

假设有以下几条语句

语句 读集 写集
P1:a = x + y; R(P1) = {x,y} W(P1) = {a}
P2: b = z + 1; R(P1) = {z} W(P2) = {b}
P3: c = a + b; R(P3) = {a,b} W(P3) = {c}
P4:d = c -2; R(P4) = {c} W(P4) = {d}

如果两个程序P1,P2满足Bernstein条件,它们便能并发执行,否则不能:
( R ( p 1 ) ∩ W ( p 2 ) ) ∪ ( R ( p 2 ) ∩ W ( p 1 ) ) ∪ ( W ( p 1 ) ∩ W ( p 2 ) ) = { } (R(p1) \cap W(p2)) \cup (R(p2) \cap W(p1) )\cup (W(p1) \cap W(p2)) = \{\} R(p1)W(p2)R(p2)W(p1)W(p1)W(p2)