0
点赞
收藏
分享

微信扫一扫

第2章 处理器管理

雅典娜的棒槌 2022-03-17 阅读 83
linux

2.1处理器状态

2.1.1处理器

1.指令系统:每台计算机的机器指令集合称为指令系统
2.寄存器:为了实现指令功能,处理齐中设置了一组寄存器用作寻址或存放数据,变量和中间结果,个数根据处理器型号不同而异。
3.特权指令:仅在内核态下才能使用的指令,这些指令涉及改变机器状态,修改寄存器内容,启动设备I/O等,执行这些指令不仅影响运行程序自身,而且干扰其他程序及操作系统,因此只有操作系统有权调用
4.非特权指令在目态和管态下都能工作。操作系统程序能够执行全部机器指令,而应用程序只能使用非特权指令。如果应用程序执行特权指令将会导致非法执行而产生保护中断。继而转向操作系统的“用户非法执行特权指令”的异常处理程序进行处理。
5.根据执行程序对资源和机器指令的使用权限将处理器设置成不同状态,至少需要划分两种状态,内核态用户态
内核态:当处理器处于内核态时,这是操作系统管理程序运行时所处的状态,可认为是处理器正在运行可信系统软件,此时全部机器指令都被允许在处理器上执行,程序可访问所有内存单元和系统资源,并具有改变处理器的能力状态的能力。
用户态:当处理器处于用户态时,他正在运行非可信应用程序,此时无法执行特权指令,且访问仅限于当前处理器上执行程序所在的地址空间,这样就能防止操作系统程序受到应用程序的侵害。
6.处理器状态及其转换:
用户态向内核态转换
1)程序请求操作系统服务,执行系统调用
2)程序运行时,产生中断事件,运行程序被中断,转向中断处理程序工作。
3)程序运行时,产生异常事件,运行程序被打断,转向异常处理程序工作。
三类情况都通过中断机制发生,中断和异常是用户态到内核态转换仅有的途径,当系统中产生中断或异常,处理器作出响应且交换程序状态字,会导致处理器从用户态转向内核态,处理事件的中断或异常处理程序的程序状态字中,处理器模式位一定为“内核态”。
7.用户栈与核心栈
1)用户栈:用户进程空间中开辟的一块区域,用于保存应用程序的子程序间相互调用的参数、返回值、返回点以及子程序的局部变量。
2)核心栈:内存中属于操作系统空间的一块区域,用于保存中断现场和操作系统程序间相互调用的参数、返回值、返回点以及程序的局部变量。

2.1.2程序状态字

程序状态字(PSW)定义:程序运行时,其状态不断动态地变化,如当前处于目态还是管态,下一条要执行的指令位置是什么等等。系统将程序运行时的一组动态信息汇集在一起,称为程序状态字,并存放在处理器的一组特殊寄存器里,以方便系统控制和管理。
标志:状态标志,控制标志,系统标志
作用:PSW用来指示运行程序状态,控制指令执行顺序,并且保留和指示与运行程序有关的各种信息,主要作用是实现程序状态的保护和恢复。

2.2中断技术

2.2.1中断概念

中断定义:中断是指程序执行过程中,遇到急需处理的事件时,暂时停止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程。
中断源:引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。

2.2.2中断源分类

外中断:又称中断或异步中断,是指来自处理器之外的中断信号,包括时钟中断信号,键盘中断,它机中断和外部设备中断等。外中断又分为可屏蔽中断和不可屏蔽中断,各个中断具有不同的中断优先级,表示事件紧急程度,在处理高一级中断时,往往会部分或全部屏蔽低优先级中断。
内中断:又称异常或同步中断,是指来自处理器内部的中断信号,通常是由于在程序执行过程中,发现与当前指令关联的,不正常的或错误的事件。内中断可细分为:
1)访管中断(由执行系统调用引起)
2)硬件故障中断(如电源失效,奇偶校验错误,总线超时)
3)程序性异常(如非法操作,地址越界,页面故障,调式指令,除数为0和浮点溢出)
中断和异常的区别;
1)中断是由与现行指令无关的中断信号触发的(异步的),且中断的发生与CPU处在用户模式或内核模式无关,在两条机器指令之间才可响应中断,一般来说,中断处理程序提供的服务不是为当前进程所需的;
异常是由处理器正在执行现行指令而引起的,一条指令执行期间允许响应异常,异常处理程序提供的服务是为当前进程所用的。异常包括很多方面,有出错(fault),也有陷入(trap)等。
2 )要求“中断”被快速处理,以便及时响应其它中断信号,所以,中断处理程序处理过程中是不能阻塞的。“
异常”处于被打断的当前进程上下文中,所提供的服务是当前进程所需要的,所以,异常处理程序处理过程中是可以阻塞的
3)中断允许发生嵌套,但异常大多为一重;异常处理过程中可能会产生中断,但中断处理过程中决不会被异常打断。

2.2.3中断和异常的响应及服务

中断与异常需要做的四件事
发现中断源:
保护现场:
转向处理中断/异常事件的处理程序:
恢复现场:

2.2.4中断事件处理原则

1.硬件故障中断
由硬件故障导致的中断(电源故障、主存故障、设备故障),故障排除通常需要人工干预。中断处理程序一般进行保护现场,停止设备工作,停止处理器运行,将故障信息向操作员报告,并对故障所造成的破坏进行估计和恢复
2.程序性中断
程序错误包括:语法错误逻辑错误执行过程中产生的异常(定点溢出、阶码下溢、除数为0等,操作系统可以借助信号机制,将捕获的中断事件交由程序自行处理
3.I/O中断
产生I/O中断的情况:
I/O操作正常结束
I/O操作发生故障
I/O操作发生异常
设备报到或设备结束
4.访管中断
由程序执行访管指令所引起的
5.时钟中断
时钟是操作系统进行调度工作的重要工具,如让分时进程作时间片轮转、让实时进程定时发出或接收控制信号、系统定时唤醒或阻塞一个进程、对用户进程进行记账
时钟可分成绝对时钟间隔时钟两种

2.2.5中断优先级和多重中断

1.中断优先级:以不发生中断丢失为前提,把紧迫程度相当的中断源归在同一级,紧迫程度差别大的中断源归在不同级,级别高的有优先获得响应的权力,中断装置预定的这个响应顺序称为中断优先级。
2.中断屏蔽主机可允许或禁止某类中断的响应,如允许或禁止所有的I/O中断、外部中断、及某些程序性中断。有些中断是不能被禁止的,例如,计算机中的自愿性访管中断就不能被禁止。
3.多重中断:中断正在进行处理期间,CPU又响应新的中断事件,于是暂时停止正在运行的中断处理程序,转去执行新的中断处理程序,就叫多重中断(又称中断嵌套)。处理方法:
(1) 串行处理:禁止中断处理过程被中断
(2) 嵌套处理:允许高优先级中断中断低优先级中断
(3) 即时处理:立即响应中断

2.2.6Linux中断处理

2.3进程及实现

2.3.1进程定义和属性

2.3.2进程状态和转换

2.3.3进程描述和组成

2.3.4进程上下文切换与处理器状态转换

2.3.5进程控制和管理

2.4线程及其实现

2.4.1引入多线程的动机

2.4.2多线程环境中的进程与线程

2.4.3线程的实现

2.5Linux进程

2.6处理器调度

2.6.1处理器调度层次

2.6.2选择调度算法原则

2.6.3作业管理与调度

2.6.4低级调度功能和类型

2.6.5作业调度和低级调度算法

2.7Linux调度算法

2.8本章小结

举报

相关推荐

0 条评论