王道计算机考研 操作系统

进程的概念,组成,特征:
进程:是动态的,是程序的一次执行过程
PCB:PCB是进程存在的唯一标识,当进程被创建时,操作系统为其创建PCB,当进程结束时,会回收其PCB。
组成:

组织:



进程的特征:

进程时资源分配,接受调度的基本单位

进程的状态与转换:


进程控制:
概念:进程控制就是要实现进程状态转换

状态切换必改变标志位,如何实现呢?我们引入了原语。

PCB状态位的改变和进入相关队列就可以用原语实现





各原语可以实现怎样的状态转换,各原语大概做了哪些事情(重理解,不必死记硬背)
进程通信:

进程通信:

进程通信:进程之间的信息交换

进程通信——共享存储

进程通信——管道通信

进程通信———消息传递

总结框图:

线程概念和多线程模型:


线程:轻量级的进程
线程是一个基本的CPU执行单元,也是程序执行流的最小单位。引入线程后,不仅进程之间可以并发,进程内的各线程之间也可以并发,从而提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频,文字聊天,传文件)
引入线程后,进程只作为除CPU之外的系统资源分配单元(如打印机,内存地址空间都是分配给进程的),进程不再是调度的基本单位。
引入线程后发生的变化:





多线程模型:
多对一:

一对一:

多对多:


处理机调度的概念、层次:

当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是调度研究的问题。
处理机调度,就是从就绪队列中按照一定的算法选择一个进程并将处理机及分配给它运行,以实现进程的并发执行。
高级调度:

中级调度:

七状态模型:

低级调度:

三种调度的对比:

知识总结:

进程调度的时机、切换与过程调度方式:






调度算法的评价指标:








调度算法:


1先来先服务:

2短作业优先:
非抢占式算法:

抢占式算法:


对比非抢占式的短作业优先算法,显然抢占式的这几个指标又要更低。


高响应比优先算法:



调度算法:

时间片轮转:




如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法就退化为先来先服务调度算法,并且会增大进程响应时间。因此,时间片不能太大。
另一方面,进程调度,切换是有时间代价的(保存,恢复运行环境),因此如果时间片太小,会导致进程切换过于频繁,系统会花大量时间来处理进程切换,从而导致实际用于进程执行的时间比例少。可见时间片也不能太小。

优先级调度算法:




多级反馈队列调度算法:



进程同步,进程互斥:





进程互斥的软件实现方法:

1单标志法:

turn表示当前允许进入临界区的进程号,而只有当前允许进入临界区的进程在访问了临界区之后,才会修改turn值。也就是说,对于临界区的访问,一定是按照p0->p1->p0->p1->.....这样轮流访问。这种必须轮流访问带来的问题是,如果此时允许进入临界区的进程是p0,而p0一值不访问临界区,那么虽然此时临界区空闲,但是不允许p1访问。
因此,单标志法主要存在的问题是:违背空闲让进原则;
2双标志先检查法:

3双标志后检查法:

两个进程都争着想进入临界区,但是谁也不让谁,最后谁都无法进入临界区。
在考试时要识别出进入区,并考虑进程切换的情况。进行具体问题具体分析。
4Peterson算法:



进程互斥的硬件实现方法:


1.中断屏蔽方法不适用于多处理机,某一进程在访问临界区资源时,只是在该处理机下进行关中断,即该处理机不可进行进程切换。而其它处理机仍然可以访问临界区资源。
2.关/开中断权限较高,只能在内核态运行。

不符合让权等待:当无法访问临界区时,会一直进行条件判断,占用处理机。


互斥锁:


信号量机制:


检查和上锁用原语来实现

进程p0:初始S=1,P操作,获得资源,同时s--,即进行上锁操作;
进程p1~pn:由于s=0,不断执行循环,占用处理机。
进程p0:V操作,释放资源,s++,解锁,其他进程可以获得资源
信号量有其自身的物理含义:当S>0时,其值表示要管理的某类资源的数量;当S<0时,它的绝对值表示在相关队列中等待的进程个数。

左:如果在value--;之后S.value<0,则说明当前没有相应资源分配给当前进程,则把当前进程放入S.L指向的进程等待队列,从运行态进入阻塞态。
右:如果在S.value++之后,S.value<=0,则说明还有进程未获得该资源。因此,wakeuo(S.L)唤醒阻塞队列中的进程,从阻塞态进入就绪态



注:若考试中出现P(V),V(S)的操作,除非特别说明,否则默认为S为记录型信号量。
用信号量实现进程互斥,同步,前驱关系:

访问临界资源的那段代码叫作临界区。

1.用semaphore定义的默认为记录型信号量
2.对不同的临界资源,需要设置不同的互斥信号量
3.P,V操作成对出现





经典同步互斥问题一:生产者消费者问题

如果不互斥,则可能发生数据覆盖。
pv操作题目分析步骤:
1.关系分析。找出题目中描述的各个流程,分析它们之间的同步互斥关系。
2.整体思路。根据各进程的·操作流程确定P,V操作的大致顺序。
有产品————消费者才能消费
缓冲区没满————生产者才能生产



生产一个产品,使用产品可以放在p,v操作之间,但会增加临界区代码长度,影响系统效能。

经典同步互斥问题二:多生产者多消费者问题




原因在于:
本题中缓冲区大小为1,在任何时刻,apple,orange,plate三个同步信号量最多只有一个是1,因此在任何时刻,最多只有一个进程的p操作不会被阻塞,并顺利进入临界区。



经典同步互斥问题三:吸烟者问题





经典同步互斥问题四:读者-写者问题