第1页:第2章 操作系统的运行环境
第2章 操作系统的运行环境
- 操作系统运行的硬件环境组成
- 中央处理器(CPU)
- 存储系统
- 中断机制
- I/O 系统
- 时钟以及时钟队列
第2页:运行环境概述
一、概述任何系统软件都是硬件功能的延伸操作系统直接依赖于硬件条件OS的硬件环境以较分散的形式同各种管理相结合实现操作系统时必须理解的计算机基本结构、操作系统管理的重要资源
第3页:中央处理器的基本机制
专门设计了一系列基本机制:
- 具有特权级别的处理器状态,能在不同特权级运行的各种特权指令
- 硬件机制使得 OS 可以和普通程序隔离实现保护和控制
第4页:存储系统
存储系统
- 分层的存储体系结构
- 存储保护能力,为实现用户程序虚拟地址空间隔离和保护提供基础
- 有效管理各种存储设备
第5页:中断机制
中断机制是操作系统得以正常工作的最重要的手段
- 它使得 OS 可以捕获普通程序发出的系统功能调用
- 及时处理设备的中断请求
- 防止用户程序中破坏性的活动
第6页:I/O机制与时钟
- I/O 机制:操作系统管理各种系统设备的基础设施
- 时钟:用于 OS 定时,是 OS 多道运转能力的推动力量
第7页:二、中央处理器(CPU)
二、中央处理器(CPU)
- 单机与多处理器系统:只有一个处理器称为单机系统,有多个处理器称为多处理器系统
- 指令系统:早期的微处理器指令系统功能相对较弱,当代的微处理器结构非常复杂
第8页:CPU的构成与基本工作方式
处理器由运算器、控制器、一系列的寄存器以及高速缓存构成
- 运算器实现指令中的算术和逻辑运算,是计算机计算的核心
- 控制器负责控制程序运行的流程,包括取指令、维护 CPU 状态、CPU 与内存的交互等等
第9页:寄存器与高速缓存
寄存器是指令在 CPU 内部作处理的过程中暂存数据、地址以及指令信息的存储设备,在计算机的存储系统中它具有最快的访问速度。
高速缓存处于 CPU 和物理内存之间,一般由控制器中的内存管理单元(MMU)管理,访问速度快于内存、低于寄存器,利用程序局部性原理使高速指令处理与低速内存访问得以匹配,从而提高 CPU 的效率。
第10页:处理器中的寄存器
寄存器提供了一定的存储能力,速度比主存储器快得多,但是造价高,容量一般都很小。
两类寄存器
- 用户可见寄存器:高级语言编译器通过算法分配并使用之,以减少程序访问主存次数
- 控制和状态寄存器:用于控制处理器的操作,由 OS 的特权代码使用,以控制其它程序的执行
第11页:控制和状态寄存器
控制和状态寄存器用于控制处理器的操作,大部分对于用户是不可见的,一部分可以在某种特权模式(由 OS 使用)下访问。
常见的控制和状态寄存器
- 程序计数器(PC:Program Counter)
- 记录将要取出的指令的地址
- 指令寄存器(IR:Instruction Register)
- 包含最近取出的指令
- 程序状态字(PSW:Program Status Word)
- 记录处理器的运行模式信息等等
第12页:5类指令
5 类指令
- 访问存储器指令
- 处理器和存储器间数据传送
- I/O 指令
- 处理器和 I/O 模块间数据传送和命令发送
- 算术逻辑指令(数据处理指令)
- 执行数据算术和逻辑操作
- 控制转移指令
- 指定一个新的指令的执行起点
- 处理器控制指令
- 修改处理器状态,改变处理器工作方式
第13页:特权指令和非特权指令
- 特权指令:只能由操作系统使用的指令
- 使用多道程序设计技术的计算机指令系统必须要区分为特权指令和非特权指令
- 特权指令一般引起处理器状态的切换:处理器通过特殊机制将状态切换到操作系统运行的特权状态(管态),然后将处理权移交给操作系统中的一段特殊代码,这一过程称为陷入
- CPU 如何知道当前运行的是操作系统还是一般应用软件:有赖于处理器状态的标识
第14页:处理器的状态
根据运行程序对资源和机器指令的使用权限将处理器设置为不同状态。多数系统将处理器工作状态划分为管态和目态;有些系统将处理器状态划分为核心状态、管理状态和用户程序状态(目标状态)三种。
- 管态
- 操作系统管理程序运行的状态,较高的特权级别,又称为特权态(特态)、系统态
- 目态
- 用户程序运行时的状态,较低的特权级别,又称为普通态(普态)、用户态
第15页:管态和目态的差别
- 处理器处于管态时
- 全部指令(包括特权指令)可以执行,可使用所有资源,并具有改变处理器状态的能力
- 处理器处于目态时
- 只有非特权指令能执行;特权级别不同,可运行指令集合也不同,特权级别越高,可运行指令集合越大
第16页:程序状态字PSW
在 PSW 中专门设置一位,根据运行程序使用指令的权限而设置。
PSW(Program Status Word)
- CPU 的工作状态码
- 指明管态还是目态,用来说明当前在 CPU 上执行的是操作系统还是一般用户,从而决定其是否可以使用特权指令或拥有其它的特殊权力
- 条件码
- 反映指令执行后的结果特征
- 中断屏蔽码
- 指出是否允许中断
第17页:M68000程序状态字示例
例:微处理器 M68000 的程序状态字条件位
- C
- 进位标志位
- V
- 溢出标志位
- Z
- 结果为零标志位
- N
- 结果为负标志位
- I0–I2
- 三位中断屏蔽位
- S
- CPU 状态标志位,为 1 处于管态,为 0 处于目态
- T
- 陷阱(Trap)中断指示位,为 1 时在下一条指令执行后引起自陷中断
第18页:三、存储系统
支持 OS 运行硬件环境的一个重要方面:
- 作业必须把它的程序和数据存放在主存储器(内存)中才能运行
- 多道程序系统中,若干个程序和相关的数据要放入主存储器
- 操作系统要管理、保护程序和数据,使它们不至于受到破坏
- 操作系统本身也要存放在主存储器中并运行
第19页:存储器的类型
两类存储器
- 读写型存储器:可把数据存入其中任一地址单元,并可在以后的任何时候把数据读出或者重新存入新的数据,常被称为随机访问存储器(RAM),主要用作存放随机存取的程序和数据
- 只读型存储器:只能从其中读取数据,但不能随意用普通方法写入数据(写入数据只能用特殊方法)
第20页:只读型存储器
只读型存储器只能从其中读取数据,但不能随意用普通方法写入数据(写入数据只能用特殊方法),称为只读存储器(ROM:Read-Only Memory)。
变型
- PROM
- 一种可编程只读存储器,使用特殊 PROM 写入器写入数据
- EPROM
- 用特殊的紫外线光照射此芯片,以“擦去”信息,恢复原来状态,然后使用特殊 EPROM 写入器写入数据
第21页:存储器的层次结构
存储系统设计三个问题
- 容量
- 需求无止境
- 速度
- 能匹配处理器的速度
- 成本问题
- 成本和其它部件相比应在合适范围之内
第22页:层次化的存储体系结构
层次化的存储体系结构示意图:本页以图示方式展示存储器按容量、速度与成本构成的多级层次结构。
第23页:存储访问局部性原理
提高存储系统效能关键点:程序存储访问局部性原理。
- 程序执行时,有很多的循环和子程序调用,一旦进入这样的程序段,就会重复存取相同的指令集合
- 对数据存取也有局部性,在较短的时间内,稳定地保持在一个存储器的局部区域
- 处理器主要和存储器的局部打交道,在经过一段时间以后,使用的代码和数据集合会改变
第24页:存储分块
存储分块
- 存储最小单位:“二进位”,包含信息为 0 或 1
- 最小编址单位:字节,一个字节包含八个二进位
- 主流个人电脑:主存 128MB~512MB 之间,辅助存储器在 20GB~70GB
- 工作站、服务器:主存 512MB~4GB 之间,硬盘容量数百 GB
- 为简化分配和管理,存储器分成块,称一个物理页(Page);块的大小:512B、1K、4K、8K
第25页:存储保护设施
对主存中的信息加以严格的保护,使操作系统及其它程序不被破坏,是其正确运行的基本条件之一。多用户、多任务操作系统中,OS 给每个运行进程分配一个存储区域,需要解决多个程序同时在同一台机器上运行时怎样才能互不侵犯的问题。
第26页:保护的硬件支持
为了保证软件程序只影响程序的内部,硬件可提供如下功能:
第27页:四、缓冲技术
缓冲区是硬件设备之间进行数据传输时,用来暂存数据的一个存储区域。缓冲技术三种用途:
- 处理器与主存储器之间
- 处理器和其它外部设备之间
- 设备与设备之间的通信
目的:解决部件之间速度不匹配的问题。
第28页:多缓冲区(Cache)技术
单缓冲区:设备向缓冲区输入数据直到装满后必须等待 CPU 将其取完,才能继续向其中输入数据;为了提高设备利用率,单缓冲区不够。
多缓冲区(Cache)技术:Cache 离 CPU 最近,使 CPU 快速访问常使用的数据。
- CPU 首先到一级 Cache 中找
- 如果没有,CPU 到二级 Cache 中找
- 如果没有,CPU 到系统内存中找
第29页:一级Cache与主存储器
一级 Cache 与主存储器关系示意图:CPU 先访问一级 Cache,其性能对系统性能作用很大。
第30页:Cache读过程
Cache“读”操作示意图:本页以图示方式展示 CPU 读取数据时在 Cache 与主存储器之间的查找与传送过程。
第31页:五、中断技术
五、中断技术中断对于操作系统的重要性就像机器中的驱动齿轮一样所以有人把操作系统称为是由“中断驱动”或者“(中断)事件驱动”
第32页:什么是中断
指 CPU 对系统中或系统外发生异步事件的响应。
- 中断处理是操作系统的一个重要组成部分
- 操作系统就是由中断驱动的
- 中断是现代计算机系统中基本设施之一,它起着通讯联络作用,协调系统对各种外部事件的响应和处理
- 中断是实现多道程序的必要条件
第33页:中断定义
CPU 对系统发生的某个事件作出的一种反应:CPU 暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序,处理完成后返回断点,继续执行被打断的程序。
第34页:引入中断的目的
引入中断的目的
- 解决主机与外设的并行工作问题
- 提高可靠性
- 实现多机联系
- 实现实时控制
- 中断随机的
- 中断是可恢复的
- 中断是自动处理的
第35页:中断系统的概念
中断由软硬件协同处理,中断系统 = 中断装置 + 中断处理程序。
- 中断装置
- 指发现中断、响应中断的硬件
- 中断处理程序
- 由软件来完成
第36页:中断类型
- 强迫性中断
- 正在运行的程序所不期望的,由于某种硬件故障或外部请求引起的
- 自愿性中断
- 用户在程序中有意识安排的中断,是用户在编制程序时因为要求操作系统提供服务,有意使用“访管”指令或系统调用,使中断发生
第37页:中断类型(续1)
强迫性中断
- 输入/输出(I/O)中断:主要来自外部设备通道
- 程序性中断:运行程序中本身的中断(如溢出、缺页中断、缺段中断、地址越界)
- 时钟中断
- 控制台中断
- 硬件故障
第38页:中断类型(续2)
自愿性中断
- 执行 I/O,创建进程,分配内存
- 信号量操作,发送/接收消息
第39页:微机中的中断
- 可屏蔽中断(I/O 中断)
- 不可屏蔽中断(机器内部故障、掉电中断)
- 程序错误中断(溢出、除法错等中断)
- 软件中断(Trap 指令或中断指令 INT)
第40页:中断响应
CPU 如何响应中断,两个问题:
- CPU 何时响应中断?通常在 CPU 执行了一条指令以后,更确切地,在指令周期最后时刻接受中断请求,或此时扫描中断寄存器
- 如何知道提出中断请求的设备或中断源?因为只有知道中断源或中断设备,才能调用相应的中断处理程序
第41页:指令周期与中断周期
指令周期与中断周期流程图:图中展示开始、取下一条指令、执行指令、检查指令与处理中断的循环流程,并标出取周期、执行周期与中断周期在“不允许中断/允许中断”条件下的走向。
第42页:中断优先级
- 机器故障中断的优先级最高
- 程序中断和访问管理程序中断次之
- 外部中断更次之
- 输入输出的优先级最低
第43页:中断屏蔽
在 CPU 上运行的程序,有时由于种种原因,不希望其在执行过程中被别的事件所中断,称为中断屏蔽。
- 在 PSW 中设置中断屏蔽码以屏蔽某些指定的中断类型
- 如果其 PSW 的中断禁止位建立后,则屏蔽中断(不包括不可屏蔽的那些中断)
- 如果 PSW 中的中断禁止位未建立,则可以接受其中断优先级高于运行程序中断优先级的那些中断
- 各设备接口中也有中断禁止位,以禁止该设备的中断
第44页:中断处理过程(上)
- 设备给处理器发一个中断信号
- 处理器处理完当前指令后响应中断,延迟非常短(要求处理器没有关闭中断)
- 处理器处理完当前指令后检测到中断,判断出中断来源并向发送中断的设备发送确认中断信号,确认信号使得该设备将中断信号恢复到一般状态
- 处理器开始为软件处理中断做准备:保存中断点的程序执行上下文环境,这通常包括程序状态字 PSW、程序计数器 PC 中的下一条指令位置、一些寄存器的值,它们通常保存在系统控制栈中,处理器状态被切换到管态
第45页:中断处理过程(下)
- 处理器根据中断源查询中断向量表,获得与该中断相联系的处理程序入口地址,并将 PC 置成该地址,处理器开始一个新的指令周期,控制转移到中断处理程序
- 中断处理程序开始工作,包括检查 I/O 相关的状态信息,操纵 I/O 设备或者在设备和主存之间传送数据等等
- 中断处理结束时,处理器检测到中断返回指令,被中断程序的上下文环境从系统堆栈中被恢复,处理器状态恢复成原来的状态
- PSW 和 PC 被恢复成中断前的值,处理器开始一个新的指令周期,中断处理结束
第46页:简单的中断处理过程
简单的中断处理过程示意图:本页以图示方式展示从设备发出中断信号、处理器响应并转向中断处理程序,到处理完毕返回被中断程序的全过程。
第47页:六、通道
独立于中央处理器,专门负责数据 I/O 传输的处理机:它对外设实现统一管理,代替 CPU 对 I/O 操作进行控制,使 CPU 和外设可以并行工作。通道又称为 I/O 处理机。
引入通道的目的
- 为了使 CPU 从 I/O 事务中解脱出来
- 同时为了提高 CPU 与设备、设备与设备之间的并行度
第48页:七、时钟
时钟为计算机完成以下必不可少的工作:
- 在多道程序运行环境中,为系统发现陷入死循环(编程错误)的作业,防止机时的浪费
- 在分时系统中,间隔时钟实现作业间按时间片轮转
- 在实时系统中,按要求的间隔输出正确时间信号给实时的控制设备(如 A/D、D/A 转换设备)
- 定时唤醒要求延迟执行的各外部事件(如定时为各进程计算优先数,银行中定时运行某类结账程序等)
- 记录用户使用设备时间和记录某外部事件发生时间
- 记录用户和系统所需要的绝对时间,即年、月、日
第49页:硬件时钟与软件时钟
- 硬件时钟
- 某个寄存器来模拟(根据脉冲频率定时加 1、减 1)
- 软件时钟
- 用作相对时钟,用内存单元来模拟时钟
CPU 保护:防止进程得到 CPU 后不放弃控制权。解决:分配给每个进程一段时间(时间片),时间片到,发时钟中断,控制权交给操作系统。
第50页:重定位的基本概念
1、基本概念
- 绝对地址
- 指存储控制部件能够识别的主存单元编号,即主存单元的实际地址
- 相对地址
- 相对于某个基准量(通常为零)编址时所采用的地址,主要用于程序编写、编译过程中
- 逻辑地址空间
- 一个被汇编、编译或连接装配后的目标程序所限定的地址的集合
第51页:重定位的概念
在多道环境下,用户不可能确定自己的程序要使用的主存区,因而,在编写程序时通常以相对地址来编写。当程序放入主存时,如果不把程序中与地址有关的内容变成内存控制机构能够识别的实际地址,而是直接装入,则程序是没有办法正确执行的。要使程序装入主存后能够正确执行,就必须修改程序中所有与地址有关的项,这就是程序的重定位,即把程序中的相对地址变为绝对地址。
第52页:重定位举例
重定位举例示意图:本页以 LOAD、ADD、STORE 三条指令为例,展示程序在外存储器中以相对地址编写,装入主存储器后各地址项被改为绝对地址的过程。
第53页:地址转换
地址转换示意图:本页以图示方式展示程序相对地址经基址寄存器 R 加偏移后转换为内存绝对地址的过程。
第54页:重定位的两种技术
- 静态重定位
- 在程序装入主存时,由连接装入程序进行重定位。程序开始运行前,程序中各与地址有关的项均已重定位完毕
- 动态重定位
- 处理机每次访问主存时,由动态地址变换机构(硬件)自动进行,把相关地址转换为绝对地址,重定位不是在程序装入过程中进行的
第55页:程序的装入
- 绝对装入程序
- 在单道程序系统中,机器的起始地址是知道的,只需依次将其按绝对地址的形式装入主存就可以了
- 相对装入程序
- 对多道程序系统而言,使用的是相对装入或相对连接程序,主要过程是:装入程序对各个程序进行重定位,并将主程序同各程序段连接起来
第56页:操作系统与用户的接口
- 终端命令
- 用户必须记住各种命令,并从键盘键入这些命令以及所需的数据,以控制用户程序的运行
- 图形用户接口(GUI)
- 通过出现在屏幕上的对象直接进行操作,以控制和操作程序的运行,大大减少了用户的记忆工作量。目前 GUI 是最为常见的人机接口形式,支持 GUI 的接口系统称为窗口系统,已成为操作系统的一个重要组成部分
第57页:终端命令
终端命令
- 系统访问命令
- 程序运行命令
- 程序开发命令
- 文件操作命令
- 资源分配命令
- 前后台作业转换命令
- 系统管理命令
第58页:GUI部件
GUI 部件
第59页:十、嵌入式操作系统
在各种设备、装置或系统中,完成特定功能的软硬件系统,它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机”,通常工作在反应式或对处理时间有较严格要求环境中。由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统。
第60页:
第61页:嵌入式操作系统的特性
嵌入式操作系统的特性
- 完成某一项或有限项功能;不是通用型的
- 在性能和实时性方面有严格的限制
- 能源、成本和可靠性通常是影响设计的重要因素
- 占有资源少、易于连接
- 系统功能可针对需求进行裁剪、调整和生成,以便满足最终产品的设计要求
第62页:嵌入式操作系统的开发环境
嵌入式操作系统的开发环境
- 通常配有源码级可配置的系统模块设计
- 丰富的同步原语
- 可选择的调度算法
- 可选择内存分配策略
- 定时器与计数器
- 多方式中断处理支持
- 多种异常处理选择
- 多种通信方式支持
- 标准 C 语言库
- 数学运算库和开放式应用程序接口
第63页:嵌入式操作系统的应用
嵌入计算的各种应用特点
- 掌上电脑
- 运算速度 100 KIPS,在大小上优化、支持手写、低能耗
- 工业设备
- 运算速度 1 MIPS,安全优先,控制流程为主
- 军事装备
- 运算速度 1 GFLOPS,可靠性最重要
第64页:本章结束致谢页
Thanks !