处理器及其调度
处理器及其调度
-
处理器
用于执行指令对数据进行加工处理。
具有的机制:
-
寄存器:寄存器有多种,主要的作用是构成处理器的工作现场
-
指令系统
- 非特权指令
- 特权指令:操作系统核心程序使用的指令
-
处理器状态及切换
- 处理器状态的分类:管理状态(管态)、用户状态(目态)
- Intel Pentium 的处理器状态
- 0级:操作系统内核级
- 1级:系统调用处理程序级
- 2级:共享库过程级(即可读不可写)
- 3级:用户程序级
- 处理器之间的状态切换
- 目态到管态:执行系统调用,请求操作系统服务。或 中断事件的产生
- 管态到目态:使用一条特权指令,“加载程序状态字(Load PSW,LPSW)”
-
程序状态字寄存器
处理器的工作状态记录在程序状态字寄存器中
-
程序的基本状态:
- 程序计数器指明的下一条执行的指令地址
- 条件码:表示指令执行的结果状态
- 处理器状态位:指明当前处理器的状态,管态或目态、运行或等待
-
-
中断码:保存程序执行时当前发生的中断事件
- 中断屏蔽位:指明程序执行中发生中断事件时,是否响应出现的中断事件
-
-
中断
-
概念:
- 中断:指程序执行过程中,当发生某个事件时,中止cpu上现行程序的运行,引出处理该事件的程序执行过程
- 中断源:引起中断的事件
-
中断源分类
- 按照中断事件的性质和激活手段分类
- 强迫性中断事件
- 自愿性中断事件
- 按照中断信号的来源对中断源分类
- 外中断(中断):来自处理器和主存之外的中断
- 内中断(异常):来自处理器和主存的中断
- 硬中断和软中断
- 硬中断:由硬件设施产生的终端信号
- 软中断:利用软件模拟产生的中断信号,用于实现内核与进程或进程与进程之间的通信
- 按照中断事件的性质和激活手段分类
-
中断处理
所有计算机都采用硬件和软件结合的方式实现中断处理。硬件发现中断源并产生中断信号,硬件包括中断逻辑线路和中断寄存器
- 硬件(中断装置)
- 发现中断源,响应中断请求
- 保护现场。将运行程序中断点在处理器中的某些寄存器的现场信息存放与内存储器
- 启动处理中断事件的程序
- 软件(中断处理程序)
- 识别各个中断源,分析产生中断的原因
- 处理发生的中断时间
- 中断返回
- 中断处理程序入口地址的寻找
- 主存储器设置向量地址表
- 表中存储单元的地址对应向量地址
- 表中存储单元存储入口地址
- 硬件(中断装置)
-
-
进程及其实现
- 概念:
- 进程:是一个可并发执行的,具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位
- 属性:
- 结构性:每个进程至少包含三个要素 程序块、数据块、进程控制块
- 共享性:多个不同的进程可以共享相同的程序,所以,进程和程序不是一一对应的
- 动态性:进程由创建而产生,由调度而执行,由撤销而消亡
- 独立性:进程是系统中资源分配和保护的基本单位,也是系统调度的独立单位
- 制约性:并发进程之间存在制约关系,进程执行的关键点上需要相互等待互通消息
- 并发性:在单处理器系统环境下,各个进程轮流占用处理器
- 进程状态与切换
- 三态模型
- 运行态
- 就绪态
- 等待态
- 五态模型(新增)
- 新建态
- 终止态
- 七态模型(新增)
- 挂起就绪态
- 挂起等待态
- 三态模型
- 进程描述
- 操作系统的控制结构
- 进程控制表:管理进程及其相关信息
- 存储控制表:管理主存和外存
- I/O控制表:管理I/O设备和通道
- 文件控制表:管理文件
- 进程实体的组成
- 进程控制块:每个进程都绑定一个进程控制块,用来存储进程的标志信息、现场信息、和控制信息。
- 程序块:被执行的程序
- 数据块:进程的私有地址空间
- 核心栈:函数调用的参数和返回地址
- 进程上下文
- 概念:指进程物理实体和支持进程的环境
- 用户级上下文
- 寄存器上下文
- 系统级上下文
- 操作系统的控制结构
- 进程队列:处于同一状态的所有PCB链接在一起的数据结构
- 概念:
-
线程及其实现
- 概念: 线程(threads)是一个比进程更小的单位,他的引入是为了减少程序在并发执行时所付出的时空开销,使 OS 具有更好的并发性。在引入线程这个概念后,资源分配仍是以进程为单位的而进程调度则是以线程为基本单位的
- 特点
- 进程是资源分配的基本单位,线程是调度的基本单位,线程几乎不拥有资源,只拥有极少量的资源。线程也有运行态、就绪态、阻塞态。
- 同一进程下的各个线程间共享内存地址空间,可以直接通过读/写内存空间。
- 特性
- 并发性:同一进程的多个线程可在一个/多个处理器上并发或并行地执行,而进程之间的并发执行演变为不同进程的线程之间的并发执行。
- 共享性:同一个进程中的所有线程共享但不拥有进程的状态和资源,且驻留在进程的同一个主存地址空间中,可以访问相同的数据。所以,需要有线程之间的通信和同步机制,但通信和同步的实现十分方便。
- 动态性:线程是程序在相应数据集上的一次执行过程,由创建而产生,至撤销而消亡,有其生命周期,经历各种状态的变化。每个进程被创建时,至少同时为其创建一个线程,需要时线程可以再创建其他线程。
- 结构性:线程是操作系统中的基本调度和分派单位,因此,它具有唯一的标识符和线程控制块,其中应包含调度所需的一切信息。
-
处理器调度系统
- 概念:如何从多个作业选择一些作业加载到内存,为其创建进程和如何从多个进程中选择一个进程占用处理器运行的问题
- 分类
- 高级调度(作业调度,长程调度):从磁盘后备作业队列中挑选若干作业进入内存,为其分配资源,创建进程;作业完成后还要做善后处理工作。简言之,就是内存与辅存之间的调度。对于每个作业只调入一次、调出一次。
- 中级调度(平衡调度,中程调度):引入中级调度是为了提高内存利用率和系统吞吐量。为此,应使那些暂时不能运行的进程,调至外存等待,把此时的进程状态称为挂起状态。当它们已具备运行条件且内存又稍有空闲时,由中级调度来决定,把外存上的那些已具备运行条件的就绪进程,再重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待。
- 低级调度(进程调度,线程调度,短程调度):其主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。进程调度是操作系统中最基本的一种调度,在一般操作系统中都必须配置进程调度。进程调度的频率很高,一般几十毫秒一次。
- 调度算法的原则(基本的概念计算公式)
- 资源利用率
- cpu 利用率 = cpu有效工作时间/cpu总的运行时间
- cpu总的运行时间 = cpu 有效工作时间 + cpu 空闲等待时间
- 吞吐量:长作业需要消耗较长的处理机时间,因此会降低系统的吞吐量。而对于短作业,它们所需要消耗的处理机时间较短,因此能提高系统的吞吐量。调度算法和方式的不同,也会对系统的吞吐量产生较大的影响。
- 响应时间 :是指从用户提交请求到系统首次产生响应所用的时间。在交互式系统中,周转时间不可能是最好的评价准则,一般釆用响应时间作为衡量调度算法的重要准则之一。从用户角度看,调度策略应尽量降低响应时间,使响应时间处在用户能接受的范围之内。
- 作业的周转时间公式
- 周转时间 = 作业完成时间 - 作业提交时间
- 带权周转时间 = 作业周转时间/作业实际运行时间
- 等待时间=开始时间—提交时间
- 资源利用率
-
处理器调度算法
- 先来先服务算法
- 最短作业优先算法
- 最短剩余时间算法:最短时间的优先
- 响应比优先算法:响应比=作业响应的时间/作业处理时间
- 优先级调度算法
- 轮转调度算法:在这种算法中,系统将所有就绪进程按到达时间的先后次序排成一个队列,进程调度程序总是选择就绪队列中第一个进程执行,即先来先服务的原则,但仅能运行一个时间片,如100ms。在使用完一个时间片后,即使进程并未完成其运行,它也必须释放出(被剥夺)处理机给下一个就绪的进程,而被剥夺的进程返回到就绪队列的末尾重新排队,等候再次运行。
- 多级反馈队列调度算法
- 建立两个或多个就绪队列
- 优先级越高队列的优先级越短,运行的时间片也越短
- 当前队列在运行的时间片内未完成,剩下的转入次优先级队列