- 进程是资源分配和独立运行的基本单位。研究操作系统的进程实质是研究系统中各进程之间的并发性和相互制约的特性。
- 进程通常由程序、数据及进程控制块(PCB)组成。PCB描述了进程的基本情况,是进程存在的唯一标志。
- 进程和程序的区别:程序是静态的指令序列,进程是为执行该程序的线程而保留的资源集。
- 进程一般有三种基本状态:就绪、运行和阻塞。进程基本状态及其转换,也称为三态模型。
- 进程的五态模型相比较于三态模型引入了新建态和终止态。
- 进程控制是通过进程控制原语实现的,进程控制原语主要有创建原语、撤销原语、挂起原语、激活原语、阻塞原语和唤醒原语
- 进程间的同步:异步环境下的一组并发程序之间互发消息、相互合作、互相等待,使得各进程按一定的速度执行的过程称为进程同步。即同步是使在异步环境下的各程序按一定的顺序和速度执行。
- 进程间的互斥:一组并发进程中的一个或多个程序段,因共享某一公有资源而使得它们必须以一个不允许交叉的顺序执行。即互斥要保证临界资源在某一时刻只能被一个进程访问。
- 临界资源:系统中有些资源可以供多个进程同时使用,有些资源一次只能供一个进程使用,称为临界资源。
- 临界区管理原则:用空即进、无空则等、有限等待、让权等待。
- 信号量:一个整形变量,根据控制对象的不同赋不同的值。PV操作是实现进程同步与互斥的常用方法。其中P操作表示申请一个资源,V操作表示释放一个资源。
同步问题的经典例子:生产者-消费者问题
/** 信号量Bufempty和Buffull分别表示缓冲区中的空单元数和非空单元数,他们的初值分别为1和0**/
// 生产者
Loop
生产一个产品 next;
P(Bufempty)
Next 产品存缓存区;
V(Buffull)
endloop;
// 消费者
Loop
P(Buffull);
V(Bufempty);
从缓冲区中取产品;
使用产品;
endloop
- 通信是指进程间的信息交换。根据通信内容可分为控制信息的交换和数据的交换。
- 管程:共享数据及在其上操作的一组过程就构成了管程。管程提供了一种可以允许多进程安全有效地共享抽象数据类型的机制。
Type<管程名> = monitor
<管程变量说明>;
define<(能被其他模块引用的) 过程名列表>;
procedure<过程名>(<形式参数表>)
begin
<过程体>;
end;
...
procedure<过程名>(<形式参数表>)
begin
<过程体>;
end;
begin
<管理的局部数据初始化语句>;
End.
- 进程调度即处理器调度(又称上下文转换),它的主要功能是确定把处理器在什么时候分配给哪一个进程。
- 进程调度方式:只当有更高优先级的进程到来时如何分配CPU。调度方式分为可剥夺和不可剥夺两种。
- 进程调度算法:常用的有先来先服务、时间片轮转、优先级调度和多级反馈算法。
- 死锁是指两个以上的进程互相都因请求对方已经占有的资源,无限期地等待并无法继续运行下去的现象。
- 死锁产生的原因和条件:互斥条件、请求保持条件、不可剥夺条件和环路条件。
- 解决死锁的策略:鸵鸟策略、预防策略、避免策略、检测和解除死锁。
- 线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程也具有就绪、运行、阻塞三种基本状态。