计算机操作系统
文章目录
第一章 绪论
1.1 操作系统与计算机体系结构的关系
- 操作系统与各层的关系
(1) OS对各层的管理和控制
① 与硬件的关系:控制CPU的工作;访问存储器、设备驱动、中断处理;
② 与用户及其他软件的关系:控制、管理;提供方便的用户界面 ;计算机系统的组成;提供优质的服务;操作系统是其他系统软件和应用程序运行的基础,它为上层软件和用户提供运行环境,即提供方便简单的用户接口。
(2) 各层对OS的制约和影响
① 下层硬件环境的制约:
提供OS运行环境基础;
影响并限制OS的功能实现(例如单CPU是顺序过程计算模型,与现代操作系统的并行计算模型存在矛盾);
② 用户和上层软件的要求:
满足不同用户需求、提供良好的用户界面;
提高服务的质量、方便用户的使用越来越重要
- 存储程序式计算机的结构和特点
(1) 基本部件:CPU、存储器、I/O设备
(2) 特点:集中顺序过程控制:过程性、集中控制、顺序性
- 计算机系统结构与操作系统的关系
(1) 结构特征
操作系统是运行在计算机上的第一层系统软件。
早期单用户操作系统:顺序计算模型,容易实现,但昂贵的计算机部件没有得到充分利用
为了提高利用率,引入操作系统并行计算模型,与硬件的顺序计算模型是一对矛盾。
(2) OS采用的软件技术
解决矛盾——OS的软件技术:多道程序设计技术、分时技术、资源分配与调度等
(3) 计算机体系结构与硬件技术的变化
单CPU计算机—>多处理机系统、消息传递型计算机、计算机网络
1.2 操作系统的形成与发展
手工操作阶段——无软件;特点:有人工干预、独占性、串行性;CPU速度提高后存在人机矛盾
批处理阶段
联机批处理:
① 特点 监督程序、作业自动过渡
② 问题 CPU高速与I/O慢速的矛盾
③ 解决办法 由卫星机负责I/O
脱机批处理:
① 特点 主机与卫星机并行操作
② 问题 调度不灵活;保护问题
③ 解决办法 硬件技术的发展——通道技术、中断技术
执行系统:借助于通道与中断技术,由主机控制I/O工作。原有的监督程序不仅要负责调度作业自动地运行,而且还要提供I/O控制功能。它常驻主存,称为执行系统。
特点
主机、外设并行操作;增强了保护能力
基本功能
I/O控制功能 调度
问题
主机与外设的并行是有限度的,还依赖于程序运行的特征
操作系统的形成
(1) 多道程序设计技术:在计算机主存中同时存放几道相互独立的程序。这些程序在管理程序控制之下,相互穿插地运行。当某道程序因某种原因不能继续运行下去时(如等待外部设备传输数据),管理程序便将另一道程序投入运行。
特点:多道、宏观上并行、微观上串行
(2) 分时技术:是把处理机时间划分成很短的时间片(如几百毫秒)轮流分配给各个应用程序使用,如果某个程序在分配的时间片用完之前计算还未完成,该程序就暂时中断,等待下一轮继续计算。
分时处理 :一台计算机与许多终端设备连接,终端用户以联机方式使用计算机。
(3) 实时处理:计算机对于外来信息能够在被控对象允许的截止期限 (deadline)内作出反应。以快速反应为特征、具有实时性和可预测性。
计算机体系结构与操作系统的关系(续)
(1) 单CPU计算机配置的操作系统
批量操作系统 分时操作系统
实时操作系统 个人计算机操作系统
(2) 具有并行结构的计算机系统配置的操作系统
网络操作系统 (计算机网络,松耦合)
多处理机操作系统 (多处理机系统,紧耦合)
集群操作系统 (分布存储的多计算机系统 )
并行分布式系统 (分布存储的多计算机系统)
分布式系统 (具有单一用户界面,支持分布式数据处理 )
分布式实时系统 (支持分布式实时数据处理 )硬件技术的进步——通道和中断极大地促进了OS的发展
1.3 操作系统的定义
资源共享与资源竞争
(1) 资源共享:多个计算任务对计算机系统资源的共同享用
(2) 资源竞争:多个计算任务对计算机系统资源的争夺操作系统的定义与特征
定义:操作系统是一个大型的程序系统,是核心系统软件,它负责计算机系统软、硬件资源的分配和使用;控制和协调并发活动;提供用户接口,使用户获得良好的工作环境。
特征:
① 并发 并行性,又称共行性,是指能处理多个同时性活动的能力
② 共享 多个计算任务对系统资源的共同享用
③ 不确定性 操作系统能处理大量的、随机的事件序列,操作系统可以处理多种可能的事件序列,使各用户的计算任务正确地完成
1.4 操作系统的资源管理功能
处理机管理
CPU是计算机中最重要的资源,CPU管理核心问题是时间的分配。
(1) 确定进程调度策略:确定将CPU先分给哪个用户程序,它占用多长时间,下一个又该轮到哪个程序运行等问题。
(2) 给出进程调度算法
(3) 进行处理机的分派:在调度时机到来时,进行处理机分派。存储器管理
主存空间
(1) 存储分配和存储无关性:确定各应用程序在主存中的位置及所占区域的大小;应用程序无需关心存储细节,由存储管理模块提供地址重定位能力。
(2) 存储保护:系统提供基址、界限寄存器等存储保护方法,使各应用程序相互隔离。
(3) 存储扩充:系统提供虚拟存储技术,扩大逻辑主存。
设备管理
(1) 设备无关性设备无关性是指用户向系统申请和使用的设备与实际操作的设备无关,以达到
方便用户、提高设备利用率的目的。(2) 设备分配
操作系统为各应用程序和运行实体分配各种设备。设备分配通常采用三种基
本技术:独享、共享及虚拟技术。(3) 设备的传输控制
设备的传输控制包括:启动设备、中断处理、结束处理三个方面。信息管理(文件系统/软件资源管理)
文件系统为用户提供一种简便的、统一的存取和管理信息的方法,并解决信息的共享、数据的存取控制和保密等问题。具体而言,文件系统要实现:
用户的信息组织
提供存取方法
实现文件共享
文件安全
文件完整性
磁盘空间分配操作系统的资源管理观点
系统资源:处理机 存储器 I/O设备 软件资源
(分别对应……)
操作系统功能模块:处理机管理 存储器管理 设备管理 文件系统
1.5 操作系统的基本类型
批量操作系统:批量操作系统是操作系统的一种类型。该系统把用户提交的程序组织成作业形式。作业成批送入计算机,然后由作业调度程序自动选择作业,在系统内多道运行。早期计算机一般都配置批量操作系统。
批量操作系统特点:
① 系统吞吐率高:脱机操作、多道运行、合理搭配作业
② 作业周转时间长,用户使用不方便分时操作系统:分时操作系统是操作系统的另一种类型。它一般采用时间片轮转的办法,使一台计算机同时为多个终端用户服务。该系统对每个用户都能保证足够快的响应时间,并提供交互会话功能。
分时操作系统的特点:① 并行性 ② 独占性 ③ 交互性
实时操作系统:实时操作系统对外部输入的信息,能够在规定的时间内处理完毕并作出反应。配置了实时操作系统的系统称为实时系统,该系统是可以对科学实验、医学成像、工业控制、武器装备控制和特定显示系统进行实时控制的系统。
实时系统分类:
ⅰ 硬实时系统
系统必须满足应用程序对截止期限(deadline)的要求,若错过了截止期限,将导致灾难性后果。
ⅱ 软实时系统
系统中截止期限被错过的情况下,只造成系统性能下降而不会带来严重后果实时操作系统的特点:可靠性和安全性、及时响应
实时操作系统的类型:
实时控制——生产过程控制、作战控制
实时信息处理——订购机票、情报检索
个人计算机操作系统
不再是最大化CPU和外设的利用率,而是最大化用户方便性和响应速度
代表:
(1) 磁盘操作系统 MS-DOS:包括设备管理、文件系统、提供键盘命令和系统调度命令
(2) Windows系统:图形用户界面、多任务多线程、可剥夺式调度、段页式虚拟存储管理技术、动态连接
(3) UNIX系统:多用户分时操作系统、可移植性、安全性、大量用于网络服务器
多处理机系统
也称并行系统/紧耦合系统
(1) 多处理机系统的定义
① 包含两个或多个功能相当的处理器
② 所有处理器共享一个公共内存
③ 所有处理器共享I/O通道、控制器和外围设备
④ 由一个操作系统控制(2) 多处理机系统的特点
具有并行处理能力
紧耦合、存在瓶颈、可扩展性差不支持大规模并行计算;不支持分布处理
网络操作系统
计算机网络:线路将一些独立自治的计算机相互连接形成的一个集合体称为计算机网络;具有特点:① 多个处理部件② 无公共内存③ 具备消息通信机制
网络操作系统:除了具备一般操作系统应具有的功能模块外 (如系统核心、设备
管理、存储管理、文件系统等),还要增加一个网络通信模块。该模块由通信接
口中断处理程序、通信控制程序以及各级网络协议软件组成。计算机网络的局限性
① 不能支持透明的资源存取
② 不能对网络资源进行有效、统一的管理
③ 不能支持合作计算分布式系统
(1) 分布式系统的定义
① 包含多个通用资源部件(物理资源和逻辑资源),可以动态地分配给各个任务
② 这些资源是物理分布的,并经过通信网络相互作用,进程通过相互合作的协议通信
③ 有一个分布式操作系统对资源进行全局和动态的管理控制
④ 系统的内部构造与分布性对用户是透明的,用户请求不需要指明为其服务的资源
⑤ 所有资源高度自治地工作,而又相互配合,资源不存在层次控制与主从控制(2) 分布式系统的特点
① 可扩展性:用户需求增长可以通过增加新部件或新功能模块实现,不需要替换系统
② 增加系统性能:多个部件可以实施物理并行操作
③ 高可靠性:资源冗余以及结构可以动态重构(更多特点:更高一级的资源共享、经济性好、适应性强)
嵌入式操作系统:嵌入式系统中的OS
嵌入式系统:
在各种设备、装置或系统中,完成特定功能的软硬件系统
它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以
不是“计算机”通常工作在反应式或对处理时间有较严格要求环境中
由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统
第二章 操作系统的结构和硬件支持
2.1 操作系统虚拟机
在裸机上配置了操作系统程序后就构了操作系统虚拟机。
操作系统的核心在裸机上运行;用户程序在扩充后的机器上运行。
(1) 裸机的指令系统:机器指令
(2) 操作系统虚拟机的指令系统
① 操作命令 (又称命令接口)
作业控制语言、键盘命令、图形化用户界面
② 系统功能调用 (又称程序接口)
2.2 操作系统的结构
- 操作系统的结构设计模式
(课本上分类为4种:单体结构、模块结构、可扩展内核结构、层次结构)
单体结构:操作系统是一组过程的集合,每一过程有定义好的接口。过程间可以相互调用而不受约束。
操作系统运行效率高
缺点是难以理解、难以维护,验证正确性十分困难
例如AT&T System V与BSD UNIX内核
模块结构:功能通过逻辑独立的模块划分,系统作为抽象数据类型或对象方法来实现
有利于操作系统的理解和维护
缺点是潜在的性能退化
例如Choices
可扩展内核结构:将操作系统内核分为基础核心和其他核心功能两部分
支持两个新方向:在单一硬件平台上建立具有不同策略的操作系统;微内核操作系统
例如Mach、Tru64 UNIX、QNX
层次结构:操作系统由若干层组成,每层提供一套功能,且该功能仅仅依赖于该层以内的各层
例如THE
(老师给出的分类)
简单结构
MS-DOS – 在最小的空间,设计用于提供大部分功能 (1981~1994)
没有拆分为模块
接口和功能程序没有很好地分离
主要用汇编语言编写
缺点:不方便移植,与硬件紧密绑定
层次化结构
■ 将操作系统分为多层 (levels)
每层建立在低层之上
最底层(layer 0), 是硬件
最高层(layer N) 是用户界面
■ 每一层仅使用更低一层的功能(操作)和服务。
优点: 方便移植(底层依旧采用汇编语言,上层则可以采用高级语言)
缺点: 效率低
微内核结构
■ 尽可能把内核功能移到用户空间
■ 用户模块间的通信使用消息传递(基于客户/服务器模型)
优点: 灵活/安全…
缺点: 性能下降
外核结构
■ 让内核分配机器的物理资源给多个应用程序, 并让每个程序决定如何处理这些资源.
■ 程序能链接到操作系统库(libOS) 实现了操作系统抽象
■ 保护与控制分离
虚拟机的早期雏形
VMM(虚拟机管理器)
多操作系统共享硬件资源
……
- 操作系统结构实例
1)Linux系统的核心结构
- Windows操作系统的结构
- 运行时的组织结构
在操作系统运行过程中调用给定的操作系统内部例程有2种方式:
系统功能调用方式
库函数(实际是隐式的内核功能调用)客户端/服务器方式
将操作系统服务作为系统服务进程来提供,服务请求和服务响应是通过消息传递来实现的。 优点:支持分布式系统,支持不同服务类型,容错性好,易于维护
缺点:需维护必要的持久性进程,这些进程需要监听和相应各种不同的请求。
2.3 处理机的特权级
为什么要区分处理机的状态
保护操作系统:用户程序运行时需要提出资源请求,不能随意启动外部设备工作、改变状态等
处理机状态分类
管态:操作系统的管理程序执行时机器所处的状态,又称处理机的特权级。在此状态下处理机可使用全部指令(包括一组特权指令);使用全部系统资源(包括整个存储区域)。
用户态:用户程序执行时机器所处的状态称为用户态。在此状态下禁止使用特权指令,不能直接取用资源与改变机器状态,并且只允许用户程序访问自己的存储区域。
处理机状态特权指令集
① 涉及外部设备的输入/输出指令
② 修改特殊寄存器的指令
③ 改变机器状态的指令
用户态转向管态的情况
① 用户进程申请系统的某种服务即系统功能调用
② 用户程序执行时发生中断
③ 用户进程中产生错误状态(程序性中断)
④ 用户态下企图执行特权指令,作为特殊类型错误并按③处理
管态转向用户态是通过一条特权指令实现的。
实例操作系统处理机的状态
① DOS系统
不分态② Windows 系统
3环 用户态
0环 系统态
还有1、2环预留③ UNIX系统 (Linux)系统
00 核态(核态有原管态全部权限)
01 管态(核态存在时,管态不能使用修改状态指令)
11 用户态
2.4 中断及其处理
中断:指某个事件 (例如电源掉电、定点加法溢出或I/O传输结束等) 发生时,系统中止现行程序的运行、引出处理事件程序对该事件进行处理,处理完毕后返回断点继续执行的过程。
中断类型
(1) 按中断功能分类
① 输入输出中断 I/O传输结束或出错中断
② 外中断 时钟中断、操作员控制台中断、通信中断等
③ 机器故障中断 电源故障、主存取指令错等
④ 程序性中断 定点溢出、用户态下用核态指令、非法操作
⑤ 访管中断 对操作系统提出某种需求时所发出的中断(2) 按中断方式分类
① 强迫性中断
不是正在运行的程序所期待的中断。
如:输入输出中断、外中断、机器故障中断、程序性中断
② 自愿中断
是运行程序所期待的事件。
如:访管中断(3) 按中断来源分类
① 中断
由处理机外部事件引起的中断(x86中称为异步中断),包括I/O中断、外中断。
② 俘获
由处理机内部事件引起的中断(x86中称为异常,也称为同步中断),包括访管中断、程序性中断、机器故障中断。在同时发生中断和俘获请求时,俘获总是先得到相应和处理。
向量中断:根据中断源设置的中断向量,通过消耗主存的中断向量表进入对应中断处理程序。中断处理时间比探询向量大大缩短。
探询中断:中断响应转入某一大类中断的处理入口程序
中断响应(中断进入)
(1) 保护现场和恢复现场
现场:在中断的那一时刻能确保程序继续运行的有关信息。
ⅰ 后继指令所在主存的单元号
ⅱ 程序运行所处的状态
ⅲ 指令执行情况
ⅳ 程序执行的中间结果等保护现场:当中断发生时,必须立即把现场信息保存在主存中,这一工作称之为保护现场。
恢复现场:程序重新运行之前,把保留的该程序现场信息从主存中送至相应的指令计数器、通用寄存器或一些特殊的寄存器中。完成这些工作称为恢复现场。
(2) 程序状态字 (PSW)
① 定义 反映程序执行时机器所处的现行状态的代码。
② 内容 指令地址、指令执行情况、处理机状态、应屏蔽的中断等。
③ 程序状态字的例子
ⅰ IBM 370 机(大型机) 程序状态字内容 → PSW寄存器
ⅱ IBM PC 机(x86) 程序状态字内容 → CS IP 指令地址;flag 标志寄存器
ⅲ PDP 11系列机 程序状态字内容 → PC 指令计数器;PS 处理器状态寄存器
(3) 什么是中断响应
中断响应是当中央处理机发现已有中断请求时,中止现行程序执行,并自动引出中断处理程序的过程。
实质:交换用户程序和处理该中断事件的中断处理程序的指令执行地址和处理机状态,以达到如下目的:保留程序断点及有关信息;自动转入相应的中断处理程序。
(4) 中断响应所需的硬件支持
指令计数器、处理器状态寄存器、中断向量表和系统堆栈
软件中断处理
当硬件完成了中断进入过程后,由相应的中断处理程序得到控制权,进入了软件的中断处理过程。软件的中断处理过程主要包括:
① 保护现场和传递参数
② 执行相应的中断(或自陷)服务例程
③ 恢复和退出中断
第三章 操作系统的用户接口
3.1 用户工作环境
- 用户工作环境的形成
(1) 系统提供各种硬件、软件资源
(2) 设计并提供使用方便的命令集合
(3) 将OS装入计算机并初始化,形成可供使用的工作环境
操作系统的初启
(1) 系统引导的任务
将操作系统的必要部分装入主存并对系统进行初始化工作,最终使系统处于命令接收状态。(2) 系统引导的方式
① 现场独立引导方式(滚雪球方式, bootup)
OS核心文件存储在系统本身的存储设备中,由系统自己将OS核心程序读入主存并运行,建立一个操作环境。适用于微机和大多数系统② 辅助下装方式( download )
OS主要文件不放在系统本身的存储设备中,在系统启动后执行下装操作,从另外的计算机系统中将操作系统常驻部分传送到该计算机中,使它形成一个操作环境。
适用于多计算机系统、由主控机与前端机构成的系统以 及分布式系统。(3) 独立引导方式 (滚雪球方式) 的过程
① 初始引导
系统加电;
执行初始引导程序,对系统硬件和配置进行自检,保证系统没有硬件错误;
从硬盘中读入操作系统引导程序,并将控制权交给该程序模块。② 引导程序执行
引导程序执行,将操作系统核心文件读入内存,并将控制交给核心的初始化程序。③ 核心初始化
初始化系统数据结构及参数
系统加电建立进程有关的数据结构 ;
获得自由存储空间的容量,建立存储管理的数据结构 ;
建立系统设备和文件系统的数据结构 ;
初始化时钟。
④ 系统初始化
完善OS的操作环境,装载命令处理程序 (或图形用户界面),并初始化;
在多用户系统中,为每个终端建立命令解释进程,使系统处于命令接收状态。(4) *Linux系统初启
Linux系统是以滚雪球的方式启动
加电或复位 → BIOS的启动 → Boot Loader → OS初始化
① 系统加电或复位
对主存中所有的数据清零,对内存进行校验,若无错,
CS:IP → BIOS入口。② BIOS启动
在ROM中的引导程序放在固定位置:FFFF:0000 CPU从这里开始执行。
上电自检;
对硬件设备进行检测和连接,并将测得的数据送入BIOS数据区;
从盘中读入Boot Loader (引导程序)。
从硬盘启动时,读入零柱面零磁道1扇区MBR (Master Boot Record),将控制权交Boot Loader。
③ Loader(引导程序)
功能:将OS读入内存,并将控制权交给OS的初始化程序。④ 系统核心初始化( Setup.s)
Setup的工作
检查调入内存中的代码 ;
获取内存容量信息,设置设备模式;
屏蔽中断,准备进入保护模式;
设置中断描述符表 (idt),全局描述符表 (gdt);控制权交给 Heads。
Heads的工作
对中断向量表作准备工作;
检查CPU类型;
调用Setup_paging进行页面初始化;
调用main.c中的Start_kernel()。Start_kernel()的工作
对与CPU、内存等最基本硬件相关部分进行初始化;
对中断向量表进行初始化;
为进程调度程序作准备;
设置基准时钟;
内核的内存分配;
对文件系统进行初始化;
建立init进程。
init进程对每一个联机终端建立“getty”进程,getty在终端上显示“login”,等待用户登录。系统生成
(1) 什么是系统生成
所谓系统生成,就是指为了满足物理设备的约束和需要的系统功能,通过组装一批模块来产生一个清晰的、使用方便的操作系统的过程。
(2) 系统生成的内容
根据硬件部件确定系统构造的参数,编辑系统模块的参数,并且连接系统模块成为一个可执行的程序。
3.2 应用程序的处理
- 处理应用程序的步骤
(1) 编辑
建立一个新文件,或对已有的文件中的错误进行修改。
(2) 编译
将源程序翻译成浮动的目标代码。
(3) 连接
主程序和其他所需要的子程序和例行程序连接装配在一起,使之成为一个可执行的、完整的主存映像文件。
(4) 运行
将主存映像文件调入主存,启动运行,得出计算结果。这四个步骤相互关联、顺序执行:每个步骤处理的结果产生下一个步骤所需要的文件;一个步骤能否正确地执行,依赖于前一个步骤是否成功地完成。
连接类型
(1) 静态连接
一个源程序经编译后,生成一个可重定位的目标模块,并产生内部符号表和外部符号表,供连接程序 (Link)使用。
① 内部符号表
本模块可以被其他程序调用的入口点。② 外部调用表
本模块要调用的外部的程序模块名。③ 连接需要做的工作
将各模块连接成为一个整体;
构造全程符号表,在其中填写模块的逻辑地址;
查找各程序段的外部调用表,填入对应调用函数的地址。④ 静态连接的缺点
静态连接将所需的外部函数链接到目标文件中形成为一个可执行文件。若多个应用程序都调用了同一个库中的