操作系统(2)

1、线程

用户级线程

内核级线程

多线程模型:一对一(并发度高但开销大)、一对多(开销小、效率高,但一个线程阻塞可能导致整个进程阻塞)、多对多(即克服了并发度不高的缺点,开销也小)

2、调度

调度的三个层次:

高级调度(作业调度):内存和外存之间的调度,一个作业只调入一次,调出一次,调入由OS决定,调出一定是作业运行结束

中级调度(内存调度):将暂时不能运行的进程调出内存,中级调度决定挂起队列中的哪个进程重新调入内存,中级调度是面向进程的

低级调度(进程调度):决定就绪队列中的哪个进程进入运行态,分配处理及给他

进程调度和进程切换的区别:

狭义的进程调度:从就绪队列中选择一个进程,若这个进程是另外一个进程,则为进程切换

广义的进程调度:包括选择一个进程和进程切换两个步骤

什么可以进行进程调度:

(1)进程主动放弃

①进程正常终止②主动阻塞③运行过程中发生异常而终止

(2)进程被动放弃

①时间片到②有更高优先级的进程到来③有更紧急的事情需要处理

什么时候不能进行进程调度:

①处理中断过程中

②进程在OS内核程序的临界区中

③原语

3、调度算法

①先来先服务(FCFS)不会饥饿
②短作业优先(SJF)可能会产生饥饿现象,不利于长作业,不一定真正做到短作业优先

③高响应比优先(HRRN)非抢占式,不会饥饿

以上三种算法交互性差,适用于早期的批处理系统

④时间片轮转调度算法(RR)抢占式,不会饥饿,适用于分时系统

⑤优先级调度算法:可能饥饿,适用于实时系统

⑥多级反馈队列调度算法:抢占式,可能导致饥饿

后三种算法适用于交互式系统

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容