900 likes | 1.04k Views
2.1 中央处理器. 2.1.1 单处理器系统和多处理器系统 2.1.2 寄存器 2.1.3 特权指令与非特权指令 2.1.4 处理器状态 2.1.5 程序状态字寄存器. 2.1.1 单处理器和多处理器系统. 计算机系统的核心是中央处理器 单处理器系统: 一个计算机系统只包括一个运算处理器。 多处理器系统: 一个计算机系统有多个运算处理器。. 特权指令与非特权指令 (2). 机器指令的集合称指令系统,反映了一台机器的功能和处理能力。指令分为以下五类: (1) 数据处理类指令; (2) 转移类指令; (3) 数据传送类指令; (4) 移位与字符串指令;
E N D
2.1中央处理器 2.1.1单处理器系统和多处理器系统 2.1.2寄存器 2.1.3特权指令与非特权指令 2.1.4处理器状态 2.1.5程序状态字寄存器
2.1.1单处理器和多处理器系统 计算机系统的核心是中央处理器 • 单处理器系统:一个计算机系统只包括一个运算处理器。 • 多处理器系统:一个计算机系统有多个运算处理器。
特权指令与非特权指令(2) • 机器指令的集合称指令系统,反映了一台机器的功能和处理能力。指令分为以下五类: (1)数据处理类指令; (2)转移类指令; (3)数据传送类指令; (4)移位与字符串指令; (5)I/O类指令。
特权指令与非特权指令(3) • 从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分作两部分:特权指令和非特权指令。 • 特权指令是指只能提供给操作系统的核心程序使用的指令,如启动I/O设备、设置时钟、控制中断屏蔽位、清内存、建立存储键,加载PSW等。
2.1.4处理器状态(1) •中央处理器怎么知道当前是操作系统还是一般用户程序在运行呢? •处理器状态标志和设置处理器成不同状态。 •管理状态(特权状态、系统模式、特态或管态)和用户状态(目标状态、用户模式、常态或目态)。
处理器状态(2) • 处理器处于管理状态时,程序可以执行全部指令,使用所有资源,具有改变处理器状态的能力;处理器处于用户状态时,程序只能执行非特权指令。 • Intel Pentium的处理器状态有四种,支持4个保护级别,0级权限最高,3级权限最低 。
2.1.5程序状态字寄存器(1) • 计算机如何知道当前处于何种工作状态?这时能否执行特权指令?通常操作系统都引入程序状态字PSW(Program Status Word)来区别不同的处理器工作状态。
8位系统 屏蔽 4位CMWP 字段 4位程序 屏蔽 XX X X XXXX X X XXXXXX 16位中断码 字段 24位指令 地址 4位保护键 指令长和 条件码 IBM360/370系列计算机程序状态字的基本格式
程序状态字寄存器(1) • PSW用来控制指令执行顺序并保留和指示与程序有关的系统状态,主要作用是实现程序状态的保护和恢复。 • 每个程序都有一个与其执行相关的PSW,每个处理器都设置一个PSW寄存器。程序占有处理器执行,它的PSW将占有PSW寄存器。
程序状态字寄存器(2) PSW寄存器包括以下内容: • 程序基本状态: (1)程序计数器;(2)条件码; (3)处理器状态位。 • 中断码。保存程序执行时当前发生的中断事件。 • 中断屏蔽位。指明程序执行中发生中断事件时,是否响应出现的中断事件。
2.2中断技术(1) 2.2.1中断的概念 2.2.2中断源分类 2.2.3中断装置 2.2.4中断处理程序 2.2.5中断事件的具体处理方法 2.2.6中断的优先级和多重中断
中断的概念(2) • 中断是指程序执行过程中,当发生某个事件时,中止CPU上现行程序的运行,引出处理该事件的程序执行的过程。
中断的概念(3) • 中断源。 • 中断机制的共性:当中断事件发生后,它能改变处理器内操作执行的顺序,可见中断是现代操作系统实现并发性的基础之一。
2.2.2中断源分类(1) 从中断事件的性质和激活的手段来说,可以分成两类: •强迫性中断事件 •自愿性中断事件
中断源分类(2) 强迫性中断事件不是正在运行的程序所期待的,而是由于某种事故或外部请求信息所引起的,分为: • 机器故障中断事件。 • 程序性中断事件。 • 外部中断事件。 • 输入输出中断事件。
中断源分类(3) •自愿性中断事件是正在运行的程序所期待的事件。 •正在运行的程序对操作系统有某种需求,一旦机器执行到一条访管指令时,便自愿停止现行程序的执行而转入访管中断处理程序处理。
机器故障中断事件 程序性中断事件 输入输出中断事件 外部中断事件 运行程序 访管指令 运行程序 中断装置 中断装置 中断处理 程序 中断处理 程序 中断源分类(4)两类中断事件
中断源分类(5) 按照中断信号的来源,可把中断分为外中断和内中断两类: •外中断(又称中断)指来自处理器和主存之外的中断。 •内中断(又称异常)指来自处理器和主存内部的中断。
中断源分类(6) •外中断包括:电源故障中断、时钟中断、控制台中断、它机中断和I/O中断等。 •不同的中断具有不同的中断优先级,处理高一级中断时,往往会屏蔽部分或全部低级中断。
中断源分类(7) •内中断包括:通路校验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、访管中断、算术操作溢出等各种程序性中断。 •异常是不能被屏蔽的,一旦出现应立即响应并加以处理。
2.2.3中断装置(1) • 发现中断源并产生中断的硬件称中断装置。 • 所有计算机系统都采用硬件和软件结合的方法实现中断处理。
中断装置(2) 中断装置主要做以下三件事: • 发现中断源。 • 保护现场。 • 启动处理中断事件的程序。
2.2.4中断处理程序(1) • 处理中断事件的程序称为中断处理程序。它的主要任务是处理中断事件和恢复正常操作。 • 不同中断源对应不同中断处理程序,故快速找到中断处理程序的入口地址是一个关键问题。
中断优先级和多重中断(2) 1、中断的优先级 计算机执行的每一瞬间,可能 有几个中断事件同时发生,中 断装置如何来响应同时发生的 中断呢?它按照预定顺序来响应, 这个预定顺序称中断的优先级。
中断优先级和多重中断(3) 如何确定中断的优先级 ? 计算机系统中,各中断源的优先顺序是根据某个中断源或中断级若得不到及时响应,造成计算机出错的严重性程度来定。
中断优先级和多重中断(4) IBM 370系统中断优先级由高到低的 顺序是: 机器校验中断→自愿性中断→程序性中断→外部中断→输入输出中断→重启动中断。 中断优先级只表示中断装置响应中断 的次序,并不表示处理它的先后顺序。
中断优先级和多重中断(5) 2、中断的屏蔽 •主机可允许或禁止某类中断的响应,如允许或禁止所有的I/O中断、外部中断、及某些程序性中断。 •有些中断是不能被禁止的,例如,计算机中的自愿性访管中断就不能被禁止。
第二章 进程管理 2.1 进程的基本概念
2.1.1程序的顺序执行及特征 1. 基本概念 • 程序:一个在时间上按严格次序、顺序执行的操作序列。 • 程序的顺序执行:一个具有独立功能的程序独占处理机,直至得到最终结果的过程 。 • 操作:数据处理的一种规则,一经启动就需要在有限时间内完成 。 • 计算:若干操作严格顺序执行的集合 。
2.程序的顺序执行 • 在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响。通常一个程序可分成若干个程序段,它们必须按照某种先后次序执行,仅当前一操作执行后,才能执行后继操作。 例如:进行计算。I:输入操作 C:计算操作 P:打印操作。在进行计算时,总是先输入用户的程序和数据,然后进行计算,最后将结果打印出来。
3.语句的顺序执行 S1:a:=x+y S2:b:=a-5 S3:c:=b+1 如下图,语句S2必须在a被赋值后才能执行;S3也只能在b被赋值后才能执行。
4.程序的顺序执行的特征 • 顺序性:一个程序的各个部分的执行,严格地按照某种先后次序执行; • 封闭性:程序在封闭的环境下运行,即程序运行时独占全部系统资源; • 可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走”地执行,都将获得相同的结果。 • 程序顺序执行的特性,为程序员检测和校正程序的错误带来很大方便。
2.1.2.前趋图 • 为了描述一个程序的各部分(程序段或语句)间的依赖关系,或者是一个大的计算的各个子任务间的因果关系,我们常常采用前趋图方式。 图2-1 九个结点的前趋图
前趋图(续) • P1为初始结点,P9为终止结点每个结点还具有一个重量。 • 该前趋图,存在下面的前趋关系: P1→P2,P1→P3,P1→P4,P2→P5,P3→P5,P4→P6,P4→P7,P5→P8,P6→P8,P7→P9,P8→P9;或表示为: • P={P1,P2,P3,P4,P5,P6,P7,P8,P9}={(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P4,P7),(P5,P8),(P6,P8),(P7,P9),(P8,P9)}
前趋图(续) • 前趋图中的每个结点可以表示一条语句、一个程序段或进程,结点间的有向边表示两个结点之间存在的偏序(Partial_Order)或前趋关系(Precedence_Relation)“→”={(Pi,Pj)|在Pj开始前Pi必须完成}如果(Pi,Pj)∈→,可写成Pi→Pj,Pi是Pj的直接前趋,Pj是Pi的直接后继。前趋图中必须不存在循环,如下图不是前趋图。
2.1.3 程序并发执行及特征 1.并发环境: 在一定时间内物理机器上有两个或两个以上的程序同处于开始运行但尚未结束的状态,并且次序不是事先确定的
2. 程序的并发执行 • 在对一批程序进行处理时,可以并发执行。 • 例如,输入、计算、打印三个程序对一批作业进行处理时,存在以下的前趋关系: Ii→Ci,Ii→Ii+1,Ci→Pi,Ci→Ci+1,Pi→Pi+1 图 2-2 并发执行时的前趋图
在上例中存在下述前趋关系: Ii→Ci,Ii→Ii+1, Ci→Pi, Ci→Ci+1,Pi→Pi+1 在Pi-1和Ci以及Ii+1之间,可以并发执行。 对于具有下述四条语句的程序段: S1: a∶=x+2 S2: b∶=y+4 S3: c∶=a+b S4: d∶=c+b 图 2-3 四条语句的前趋关系
3.程序的并发执行的特征 • 不可再现性:由于程序的并发执行,打破了由另一程序独占系统资源的封闭性,因而破坏了可再现性。 • 间断性:程序并发执行时,由于它们共享资源或程序之间相互合作完成一项共同任务,因而使程序之间相互制约。 • 通信性:对于相互合作的程序,为了更有效地协调运行,相互之间进行通信。 • 独立性:并发程序在运行过程中,既然是作为一个独立的运行实体,它也必然具有作为一个单位去获得资源的独立性。
4.多道程序设计 定义:Multiprogramming 多道程序设计是指允许多个程序同时进入内存并运行(引入目的是为了提高系统效率) 与并发不完全是一个概念,但效果相似 考虑因素: • 在多道程序环境下如何向用户提供服务 • 在并发程序之间如何正确传递消息(通讯) • 如何对CPU进行调度,保证每个用户相对公平地得到CPU 如何管理其他资源 • 当各用户对资源使用上发生冲突时,如何处理竞争 对CPU只能通过调度来解决竞争问题,而对于其他资源通过申请—分配—使用—回收的办法进行管理,当且仅当占有CPU的时候才可以申请,否则要排队等候
2.1.4 进程的特征与状态 • 1.进程的概念 • 进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位 • 进程是可与其他程序并发执行的程序,在一个数据集合上的运行过程。它是系统进行资源分配和调度的一个独立单位。
2. 进程的特征 • 动态性:进程的实质是程序的一次执行过程, 进程是动态产生,动态消亡的,进程在其生命周期内,在三种基本状态之间转换 • 并发性:任何进程都可以同其他进程一起向前推进 • 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位; • 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进 • 结构特征:为了控制和管理进程,系统为每个进程设立一个进程控制块- PCB。
3. 进程与程序的区别 • 程序是静态的,进程是动态的; • 进程更能真实地描述并发,而程序不能; • 一个程序可对应多个进程,反之亦然; • 进程有生命周期,有诞生有消亡,短暂的;而程序是相对长久的; • 程序可作为软件资源长期保存,进程只是一次执行过程,是暂时的; • 进程是系统分配调度的独立单位,能与其他进程并发执行; • 进程是由程序和数据两部分组成的 • 进程具有创建其他进程的功能,而程序没有
4. 进程创建与中止 1)进程何时创建 • 提交一个批处理作业 • 用户登录 • 由OS创建,用以向一用户提供服务( 如:打印文件) • 由已存在的一进程创建 一个用户程序可创建成多个进程 进程何时中止 • 批处理作业发出暂停(Halt)指令 • 用户退出登录 • 进程执行一中止服务请求 • 出错及失败因素
5. 进程中止的原因 • 正常结束 • 给定时限到 • 缺少内存 • 存储器出界 • 保护性出错:例子: 写只读文件 • 算术错 • 超出时间:进程等待超过对某事件的最大值 • I/O 失败 • 无效指令:如试图执行数据 • 特权指令 • 操作系统干预:如当死锁发生时 • 父进程请求中止某一子进程 • 父进程中止,所以子进程也中止
运行 等待 就绪 图2-4 进程的状态及其转换
进程状态(续) • 当进程已分配到除CPU以外的所有必要资源时,它便处于就绪状态,一旦获得CPU,便立即执行。 • 已获得CPU的进程进入执行状态。 • 正在执行的进程,由于发生某个事件而暂时无法执行时,便放弃处理机而进入阻塞状态。 • 由于执行的进程变为阻塞状态后,调度程序立即把处理机分配给另一个就绪进程;因此,阻塞进程的事件消失后,进程不会立即恢复到执行状态,而转变为就绪状态,重新等待处理机。
2)进程状态转换条件 在进程运行过程中,由于自身进展情况及外界环境的变化,这三种基本状态可以依据一定的条件相互转换: • 就绪 --> 运行 • 调度程序选择一个新的进程运行 • 运行 --> 就绪 • 运行进程用完了时间片 • 运行进程被中断,因为一高优先级进程处于就绪状态
进程状态转换条件(续) • 运行 --> 等待 • 当一进程必须等待时 • OS尚未完成服务 • 对一资源的访问尚不能进行 • 初始化I/O 且必须等待结果 • 等待某一进程提供输入 (IPC) • 等待 --> 就绪 • 当所等待的事件发生时
3)其他状态 • 创建状态 • 终止状态 • 挂起状态 (调节负载,对换,父进程,操作系统,终端用户)