1,进程的特征:

  • 动态性
  • 并发性
  • 独立性
  • 异步性

2,进程的组成:由程序,数据集合,进程控制块(PCB)组成

3,进程控制块的作用:PCB是进程组成中最关键的部分

  • 每个进程都有唯一的进程控制块。
  • 操作系统是根据进程控制块对进程进行控制和管理的。
  • 进程的动态,并发等特征是利用PCB表现出来的。
  • PCB是进程存在的唯一标识。

4,PCB的组织方式:

  • 线性队列
  • 链接表
  • 索引结构

5,同步和互斥:

  • 进程间共同完成一项任务时直接发生相互作用的关系;
  • 排他性访问即竞争同一个物理资源相互制约;

6、同步机制应遵循的规则:

  • 空闲让进
  • 忙则等待
  • 有限等待
  • 让权等待

7、进程基本状态:

  • 就绪态   进程具备运行条件,但尚未占用CPU
  • 运行态  进程正在占用CPU
  • 阻塞态   进程由于等待某一事件不能享用CPU

8、进程状态的转换:

  • 就绪态-->运行态
  • 运行态-->就绪态
  • 运行态-->阻塞态
  • 阻塞态-->就绪态

9、什么是临界资源、临界区?

1)临界资源:一次仅允许一个进程使用的资源。

2)临界区:在每个进程中访问临界资源的那段程序。

3)互斥进入临界区的准则:

(1)如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。

(2)任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。

(3)进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区。

(4)如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。

10、信号量

1)信号量定义:信号量(信号灯)=<信号量的值,指向PCB的指针>

2)信号量的物理意义:

(1)信号量的值大于0:表示当前资源可用数量

小于0:其绝对值表示等待使用该资源的进程个数

(2)信号量初值为非负的整数变量,代表资源数。

(3)信号量值可变,但仅能由P、V操作来改变。

11、P/V操作原语

1)P操作原语P(S)

(1)P操作一次,S值减1,即S=S-1(请求分配一资源);

(2)如果S≥0,则该进程继续执行;如果S<0表示无资源,则该进程的状态置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进行等待(直至另一个进程执行V(S)操作)。

2)V操作原语(荷兰语的等待)V(S)

(1)V操作一次,S值加1,即S=S+1(释放一单位量资源);

(2)如果S>0,表示有资源,则该进程继续执行;如果S≤0,则释放信号量队列上的第一个PCB所对应的进程(阻塞态改为就绪态),执行V操作的进程继续执行。

12、进程间简单同步与互斥的实现

1)用P,V原语实现互斥的一般模型

设互斥信号量mutex初值为1

2)用P、V原语操作实现简单同步的例子

S1缓冲区是否空(0表示不空,1表示空),初值S1=0;

S2缓冲区是否满(0表示不满,1表示满),初值S2=0;

3)生产者——消费者问题(OS典型例子):mutex互斥信号量,初值为1;full满缓冲区数,初值为0;empty空缓冲区数,初值为N;