操作系统----新增考点(信号和多处理机调度)

目录

一.信号

与信号量的区别:

信号的发送与保存:

信号与异常:

二.多处理机调度

公共就绪队列:

私有就绪队列:


一.信号

信号(signal):用于通知进程某个特定事件已经发生。进程收到一个信号后,对该信号进行处理。

与信号量的区别:

信号量(Semaphore)--实现进程间的同步、互斥
信号(Signal)--实现进程间通信(IPC,Inter Process Communication)

相关概念:

1.不同的操作系统对信号类型的定义不一样。

2.通常用宏定义表示信号名,如:#define SIGHT 2

3.重复收到的同类信号,将被简单丢弃。

4.有些信号既不能被用户自定义处理函数,也不能被阻塞。如SIGKILL,SIGSTOP

信号的发送与保存:

用户进程之间可以发送信号,但是用户进程间能发送的信号是有限制的。例如,SIGKILL可用作父进程杀死子进程,但其他进程不能随意发送SIGKILL这个信号。内核进程也可以给用户进程发送信号。

当进程从内核态转为用户态时(如:系统调用返回、或中断处理返回时),例行检查是否有待处理信号,如果有,就处理信号。例如下图,待处理信号是1和8,但是8是被阻塞信号(这可以由进程决定),所以只用处理1就行。

处理信号时,会先按位取反blocked位向量,再与pending位向量进行按位与运算,确定需要处理的信号。

操作系统会为每个信号配备一个默认的处理程序:

操作系统为每种信号都设置了默认的处理程序,如终止进程或忽略信号。用户也可以通过系统调用为进程设置自定义的信号处理程序。自定义的信号只能作用于本进程,如果没有自定义的信号处理程序就会执行操作系统的默认处理程序。

1.自定义的信号处理程序会覆盖默认的处理程序。

2.信号处理程序运行结束后,通常会返回进程的下一条指令继续执行(除非信号处理程序将程序阻塞或终止)。

3.处理信号后,会将pending位重置为零,重复的信号将被丢弃(因为每一类的信号只用了1bit记录)。

4.同时收到多个信号时,通常先处理序号较小的信号。

信号与异常:

“信号”可以作为“异常”的配套机制,让进程对操作系统的异常处理进行补充。
在进程运行过程中,某些特殊事件可能引发异常操作系统内核负责捕获并处理异常
有些异常可以由内核完成全部处理(如:缺页异常),此时就不必再使用信号机制。
有些异常无法由内核完成全部处理,可能还需要用户进程配合,此时就可以用“信号机制”与“异常机制”相互配合(如:在Linux中,发生除以0异常时,内核的异常处理程序会向用户进程发送SIGFPE信号。SIGFPE信号的默认处理程序会将进程终止并转储内存;当然进程可以自定义SIGFPE信号处理程序)

二.多处理机调度

与单处理机相比,多处理机除了考虑① 让哪个就绪进程上处理机运行,还需要考虑② 上哪个处理机处理

由此我们对多处理机提出了两个要求:

①负载均衡:

负载均衡的目标是让所有CPU都同等忙碌,避免某些CPU过于空闲或忙碌。 可以通过让负载高的CPU分担更多任务来实现负载均衡。
② 处理机亲和性:

处理机亲和性就是尽可能让一个进程调度到同一个CPU上运行,以发挥CPU缓存的作用。缓存可以提高进程的运行速度,减少访问主存的时间。

处理方法:

公共就绪队列:

(1)所有CPU共享同一个就绪进程队列(位于内核区)

(2)每个CPU时运行调度程序,从公共就绪队列中选择一个进程运行。选择进程可以使用调度算法,和单处理机一样。

(3)每个CPU访问公共就绪队列时需要上锁(确保互斥)

优点:可以天然地实现负载均衡

缺点:各个进程频繁地换CPU运行,“亲和性”不好。

如何提高处理机亲和性:

软亲和:通过操作系统的调度程序尽量保证处理机亲和性。

硬亲和:用户进程通过系统调用主动要求操作系统分配固定的CPU。

私有就绪队列:

私有就绪队列是每个CPU有自己的就绪队列,调度程序只检查自己的私有队列,从自己的队列中选择一个进程运行。

私有就绪队列天然实现了处理机亲和性。因为一段时间内CPU总是调度自己队列中的进程。

那怎么实现负载均衡?

推迁移(push):

一个特定的系统程序周期性检查每个处理器的负载,如果负载不平衡,就从忙碌CPU的就绪队列中“推”一些就绪进程到空闲CPU的就绪队列。

拉迁移(pull):

拉迁移策略是每个CPU的调度程序周期性检查自身的负载和其他CPU的负载,如果自己较闲而其他CPU较忙,则主动将其他CPU的就绪进程拉到自己的就绪队列中。

在这两个策略下一个进程可能会切换CPU,这样就会牺牲一定的亲和性,程序员可以采用硬亲和的方式(通过系统调用主动要求操作系统分配固定的CPU),确保亲和性。

实现负载均衡的方式:推迁移(push)和拉(pull)迁移


补充:新大纲还强调了"页框的分配和回收":

指的是连续分配中动态分区分配中的考点:操作系统(11)----内存管理_操作系统上下限寄存器-优快云博客

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值