第二章 处理器管理
2.1 处理器状态
2.1.1处理器
1.指令系统和寄存器
计算机的基本功能是执行程序,最终被执行的是存储在内存中的机器指令代码。处理器根据程序计数器的指向从内存中取指令到指令寄存器。
2.特权指令和非特权指令
特权指令是指仅在内核态才能使用的指令。
非特权指令在目态和管态下都可以使用。
特权指令涉及改变机器状态、修改寄存器内容、启动设备I/O等敏感操作。
应用程序只能使用非特权指令。
3.内核态和用户态
程序可以分为系统程序和应用程序。
系统程序完成系统任务,后者实现应用任务。前者控制后者,前者有权管理和分配资源,后者只能向系统申请资源。
4.处理器状态及其转换
下列情况会导致处理器从用户态向内核态转换。
- 程序请求操作系统服务,执行系统调用
- 程序运行时产生中断事件(如I/O操作完成),运行程序被中断,转向中断处理程序处理
- 程序运行时发生异常事件(如发生程序性中断,或目态执行特权指令),运行程序被打断
5.用户栈和核心栈
用户栈是用户进程空间中开辟的一块区域,用于保存应用程序的子程序(函数)间相互调用的参数、返回值、返回点以及子程序的局部变量。
核心栈也叫内核栈,是内存中属于操作系统空间的一块区域。
作用:
- 保存中断现场,对于嵌套中断,被中断程序的现场信息依次压入核心栈,中断返回时逆序依次弹出
- 保存操作系统程序(函数)间相互调用的参数、返回值、返回点以及程序局部变量。
2.1.2程序状态字
程序运行时,状态在不断地变化,如当前处于目态还是管态,下一条要执行的指令位置是什么,等等。操作系统将程序运行时的一组动态信息汇集在一起,称为状态字(Program Status)
2.2中断技术
2.2.1中断概念
interrupt指的是在程序执行过程中遇到继续处理的事件时,暂时中止现行程序在cpu上的运行,转而执行相应的事件处理程序,待处理完成后再返回断点或调度其他程序执行的过程。
2.2.2中断源分类
由硬件发出或产生的中断称为硬中断,按硬中断事件的来源和实现手段可以将中断分为外中断和内中断。
1.外中断又称中断或异步中断,指的是来自处理器之外的中断信号。
2.内中断又称异常(exception)或者同步中断。
内终端细分:
- 访管中断,由执行系统调用引起
- 硬件故障中断,如电源失效、奇偶校验错误、总线超时。
- 程序性异常,如非法操作、地址越界、页面故障、调试指令、除数为零、浮点溢出。
中断是与cpu异步的,异常是同步的。
2.2.3中断和异常的响应及服务
中断/异常的响应需要顺序做4件事:
1.发现中断源
2.保护现场
3.转向中断/异常事件处理程序执行
4.恢复现场
2.2.4中断事件处理原则
1。硬件故障中断
需要人工干预
2.程序性中断
语法错误,报错
逻辑错误,报错
异常,交给应用程序自行处理
3.I/O中断
1.正常结束。把等待传输的下一个进程设置为就绪态。
2.故障,索取状态字,分析原因,复执或人工干预
3.异常,分析情况,报告,通知操作员换纸等
4.设备报道或者结束,表示有设备接入可供使用或设备断开暂停使用,操作系统应该修改设备状态。
4.访管中断
5.时钟中断
2.2.5中断优先级和多重中断
1.优先级
依据中断优先级给予响应
2.中断屏蔽
禁止cpu响应中断或禁止中断发生
3.多重中断事件处理
1.串行处理
2.嵌套处理
3.及时处理
2.2.6Linux中断处理
2.3 进程及其实现
2.3.1进程定义和属性
从原理看,进程是支持程序执行的一种系统机制,它对处理器上运行程序的活动规律进行抽象,从实现角度来看,进程是一种数据结构,用来准确地刻画运行程序的状态和系统状态的变化情况。
引入进程的目的:
1.刻画程序的并发性
2.解决资源的共享性
进程是具有独立功能的程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位。
进程的属性:
- 动态性
- 共享性
- 独立性
- 制约性
- 并发性
2.3.2进程状态和转换
1.三态模型
- 运行(running)态:进程占有处理器正在运行的状态
- 就绪态(ready)态:进程具备运行条件,等待系统分配处理器以便运行的状态
- 等待(wait)态:又称阻塞(blocked)态或睡眠态(sleep)态,指进程不具备运行条件,正在等待某个事件完成的状态。
处于运行态的进程个数不能大于处理器个数,处于就绪态和等待态的进程可以有多个。
2.七态模型
多了新建态,终止态,挂起就绪态,挂起等待态。
当系统资源尤其是内存资源已经不能满足进程运行的要求时,必须把某些进程挂起。
挂起就绪态表示 进程具备运行的条件,但是目前在外存中,只有当它被对换到内存才能被调度执行,挂起等待态则表明进程正在等待某一个事件发生且在外存中。
特征:
- 该进程不能立即被执行
- 该进程可能会等待事件,但所等待的事件是独立于挂起条件的,时间结束并不能导致进程具备执行条件
- 该进程进入挂起状态是由于操作系统、父进程或进程自身阻止它的运行,结束进程挂起状态的命令只能通过操作系统或父进程提出。
2.3.3进程描述和组成
1.进程映像
由于进程状态不断发生变化,某时刻进程的内容以及其状态集合。
- 进程控制块
- 进程程序块
- 进程核心栈
- 进程数据块
2.进程控制块
(Process Control Block,PCB)是进程存在的位置表示,是操作系统用来记录和刻画进程状态及环境信息的数据结构,是进程动态特征的汇集,也是操作系统掌握进程的唯一资料结构和管理进程的主要依据。
1.标识信息
2.现场信息
3.控制信息
3.进程队列及其管理
1.链接方式
2.索引方式
2.3.4进程上下文切换与处理器状态转换
1.进程上下文切换
2.3.5进程的控制和管理
2.4线程及其实现
2.4.1引入多线程的冬季
进程之后引入线程概念则是为了减少程序并发执行时付出的时空开销,使得并发粒度更细、并发性更好。
进程是系统资源分配和保护的独立单位
线程是系统调度和分派基本单位
与进程相比,线程有如下优点:
1.快速线程切换
2.通信易于实现
3.减少管理开销
4.并发程度高
2.4.2多线程环境中的进程与线程
1.多线程
进程可以分为两部分:资源集合和线程集合
2.线程状态