操作系统-处理器管理
处理器状态
处理器
-
指令系统和寄存器
每台计算机的机器指令集合成为指令系统。
寄存器用于寻址或存放数据、变量和中间结果。
eg.:
通用寄存器:EAX、EBX、ECX、EDX、
指针及变址寄存器:ESP、EBP、ESI、EDI
段选择符寄存器:CS、DS、SS、ES、FS、GS
指令寄存器和标志寄存器:EIP、EFLAGS
控制寄存器:CRO、CR1、CR2、CR3 -
特权指令和非特权指令
特权指令是指仅在内核态下才能使用的指令。
非特权指令在目态和管态下都能工作。 -
内核态和用户态
处理器至少分用户态和内核态。
-
处理器状态及其转换
用户态->内核态 ——一定是通过中断机制
1.请求操作系统服务,执行系统调用
2.程序运行时发生中断事件
3.程序运行时产生异常事件
**内核态 -> 用户态 **
计算机通常提供一条称作加载程序状态字的特权指令来实现 内核态 -> 用户态 -
用户栈和核心栈
用户栈是用户进程空间中的一部分,保存函数间相互调用的参数、返回值、返回点、函数的局部变量
核心栈是操作系统的函数间相互调用的参数、返回值、返回点、函数的局部变量、用来保存中断现场
程序状态字
三组标志:1、状态标志,2、控制标志,3、系统标志
中断技术
-
中断概念
中断是指程序在执行过程中遇到继续处理的事件时,暂时中止现在程序在CPU上的运行,转而执行相应的事件处理程序,待处理完成后再返回断点或调度其他程序执行的过程 -
中断源分类
内中断和外中断
——外中断即中断,异步中断。包括时钟中断、键盘中断、它机中断和外部设备中断。
可分为可屏蔽、不可屏蔽中断
——内中断即异常,同步中断。来自处理器内部的中断信号。
可分为访管中断、硬件故障中断、程序性异常。 -
中断和异常的响应及服务
中断/异常的响应需要顺序做4件事:
(1)发现中断源
(2)保护现场
(3)转向中断/异常事件处理程序执行
(4)恢复现场 -
中断事件处理原则
-
中断优先级和多重中断
1.中断优先级
2.中断屏蔽
3.多重中断事件处理 -
Linux中断
进程及其实现
- 进程的定义和属性
进程是支持程序执行的一种系统机制,对处理器上运行的程序的活动规律进行抽象
操作系统有两个重要特性:程序的并发性、资源的共享性
进程是具有独立功能的程序再某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位
进程的属性:
·动态性
·共享性
·独立性
·制约性
·并发性 - 进程的状态和转换
(一)三态模型
a. 运行态 进程数不大于处理器个数
b. 就绪态
c. 等待态(阻塞态、睡眠态)
(二)五态模型
a. 新建态 创建进程:分配所需资源和建立必要的管理信息
b. 终止态 进程终止:系统善后处理后回收占用资源或删除
(三)七态模型
a. 新建态
b. 终止态
c. 挂起就绪态
d. 挂起等待态
- 进程的描述和组成、
(一) 进程映像: ——某时刻进程的内容及其状态集合
进程控制块:PCB
————进程存在的唯一标识,是操作系统用来记录和刻画进程状态及环境信息的数据结构。
(PCB的基本信息:标识信息、现场信息、控制信息)
进程程序块:
进程核心栈:
进程数据块:
(二)进程上下文:
————进程物理实体和支持进程运行的环境
用户级上下文:程序块、数据块、共享内存区、用户栈
寄存器上下文:状态寄存器、指令计数器、栈指针、通用寄存器
系统级上下文:进程控制块、核心栈、内存管理信息
线程及其实现
线程能减少程序并发执行所付出的时空开销,使得并发粒度更细,并发性更好。
基本思路:把进程的“独立分配资源”和“被调度分派执行”分离开。
线程比进程的优点:快速线程切换,通信易于实现,减少管理开销,并发程度提高
线程的实现:
内核级线程:管理工作由内核完成,提供线程API来使用线程
- 优点:
在多处理器上同一进程中的多线程并行执行
若进程中的一个线程被阻塞,内核能够调度同一进程的其他线程占有处理器。
具有小数据结构和堆栈,切换速度快。 - 缺点:控制权在线程间转换时需经历 用户态-内核态-用户态
用户级线程:管理工作由应用程序来做,在用户空间内实现,内核不知道线程存在。
混合式线程:
线程调度:
- 用户级线程:内核不知道线程的存在,以进程为单位调度。
- 内核级线程:选择一个优先级高的线程运行,不考虑线程属于哪个进程。
处理器调度
-
处理器调度层次
高级调度:作业调度、长程调度
中级调度:平衡调度、中程调度
低级调度: 进程/线程调度、短程调度
-
选择调度算法
- 资源利用率
- 吞吐率
- 公平性
- 响应时间
- 周转时间
-
作业管理与调度
-
低级调度功能和类型
(一)先来先服务算法——FCFS
(二)最短作业优先算法——SJF
(三)最短剩余时间优先算法——SRTE
(四)最高响应比优先算法——HRRF
(五)优先级调度算法——
(六)轮转调度算法——RR
(七)多级反馈队列调度算法——MLFQ
题目
思考题
9·什么是系统调用?试述API、库函数和系统调用之间的关系叙述系统调用执行流程.
18.什么是进程?计算机操作系统为什么要引入进程?
进程是具有独立功能的程序在某个数据集合上的一次运行活动,是计算机操作系统进行资源分配和保护的基本单位.
(1)刻画程序的并发性;(2)解决资源的共享性.
20·进程的最基本状态有哪些?哪些事件可以引起不同状态间的转换?
运行态
就绪态
阻塞态
26何谓进程控制块(PCB) ?它包含哪些基本信息?
进程控制块是进程存在的唯一标识,是操作系统用来记录和刻画进程状态及环境信息的数据结构,是进程动态特征的汇集,也是操作系统掌握进程的唯一资料结构和管理进程的主要依据。
(1) 标识信息;(2) 现场信息;(3) 控制信息。
48处理器调度分为哪几种类型?简述各类调度的主要任务。
高级调度,中级调度,低级调度。
高级调度,创建就绪进程和做进程完成后的善后工作。
中级调度,根据内存资源情况决定内存中所能容纳进程的数目,并完成内存和外存中进程的对换。
低级调度,根据某种原则决定就绪队列中哪个进程/线程获得处理器,并将处理器出让给它使用。
应用题
5、答:采用短作业优先算法调度时,三个作业的总周转时间为:
T1=at(atb)+(a+b+c)=3a+2b+c
若不按短作业优先算法调度,不失一般性,设调度次序为: J2、J1、J3。则三个作业的总周转时间为:
T2-b+(b+a)+(b+a+c)-3b+2a+c令2-1式得到;T2-T1-b-a>0可见,采用短作业优先算法调度才能获得最小平均作业周转时间。