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;