教材:
《计算机操作系统》,汤子瀛等,西安电子科技大学出版社(第4版)
参考书:
《操作系统教程》(第3版),孙钟秀 ,高等教育出版社 ,2003年11月
《Operating System Concepts》(第七版)(英文影印版) Silberschatz A ,Galvin P B, Gagne G著,高等教育出版社 ,2007 年12月。
《现代操作系统》 (英文第2版),(荷)Andrew S. Tanenbaum著 ,陈向群等译,机械工业出版社, 2005 年6月
《操作系统:设计与实现》(上下册) ,Andrew S.Tanenbaum ,电子工业出版社 ,1998年
《Linux内核完全剖析--基于0.12内核 》,赵炯 ,机械工业出版社 ,2009年1月。
《UNIX结构分析(核心代码的结构与算法) 》胡希明 ,浙江大学出版社 ,2002 年8月。
《嵌入式实时操作系统uC/OS-II 》 (第2版), (美)Jean J. Labrosse著 ,邵贝贝译, 北京航空航天大学出版社 , 2007 年9月
《Unix系统内幕》,Uresh Vahalia ,人民邮电出版社 ,2003年
操作系统是系统软件,是与硬件相关的软件,是最底层的软件,直接与硬件对接。
§1.1 操作系统的目标和作用
目标:
-
方便性
方便用户与程序去使用
-
有效性
提高系统资源的利用率,系统的吞吐量
-
可扩充性
适应硬件与软件的发展与变换(计算机的发展)
-
开放性.
硬件与软件的兼容性
作用:
-
用户与计算机的接口
用户可通过三种方式使用计算机,即通过命令方式、系统调用方式和图标一 窗口方式来实现与操作系统的通信,并取得它的服务。
-
系统资的管理者,扩充机器。
处理机、存储器、I/0设备以及文件(数据和程序)
-
OS实现了对计算机资源的抽象
用户所看到的机器是一 台比裸机功能更强、使用更方便的机器。换言之,在裸机上铺设的1/0软件隐藏了1/0设备的具体细节,向上提供了 一 组抽象的 1/0 设备
OS是铺设在计算机硬件上的多层软件的集合,它们不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型,随着抽象层次的提高,抽象接口所提供的功能就越强,用户使用起来也越方便。
推动OS发展的主要动力:
- 不断提高计算机资源利用率
- 方便用户
- 器件的不断更新换代
- 计算机体系结构的不断发展
- 不断提出的应用需求
§1.2 操作系统的发展过程
无OS:
人工操作系统:(纸带,卡片)
脱机I/O方式
有OS:
单道批处理系统
无OS:
人工操作系统:(手动纸带)
- 1946-50年代中:电子管时代,计算机速度慢,无操作系统,集中计算,计算机资源昂贵;
- 用户:既是程序员又是操作员;用户是计算机专业人员;
- 编程语言:机器语言;
- 输入输出:纸带或卡片;
脱机I/O方式:(机器纸带):
OS分类:
OS所在的角度
- 多任务,单CPU, CPU具有与外设并行操作的能力。
- 程序均由CPU执行
- CPU只能执行机器语言程序
- CPU执行的程序均在内存中
1. 批处理系统(单道与多道)
-
单道批处理系统
需要先把一 批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor), 在它的控制下,使这批作业能一 个接一 个地连续处理。 单道批处理系统最主要的缺点是,系统中的资源得不到充分的利用
- 单道程序工作示例:
-
多道批处理系统
在该系统中,用户所提交的作业先存放在外存上,并排成一 个队列,称为 “后备队列“。 然后由作业调度程序按一 定的算法,从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
- 多道程序工作示例:
多道批处理系统的优缺点;
1. 资源利用率高
2. 系统吞吐量大
3. 平均周转时间长
4. 无交互能力
如果说推动多道批处理系统形成和发展的主要动力是提高资源利用率和系统吞吐量,那么, 推动分时系统形成和发展的主要动力, 则是为了满足用户对机交互的需求, 由人此形成一种新OS了
正是这样一 组软件构成了操作系统。据此,我们可把操作系统定义为:操作系统是一 组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。
2…分时系统
如果说推动多道批处理系统形成和发展的主要动力是提高资源利用率和系统吞吐量,
那么,推动分时系统形成和发展的主要动力,则是为了满足用户对人一 机交互的需求
由此形成了一种新型OS
在多道批处理系统中, 用户无法与自己的作业进行交互的主要原因是: 作业都先驻留在外存上, 即使以后被调入内存, 也要经过较长时间的等待后方能运行, 用户无法与自己的作业进行交互。为了能够实现—机交互, 必须解决的关键问题是, 如何使用户能与自人己的作业进行交互。为此, 系统首先必须能提供多个终端, 同时给多个用户使用;
其次,当用户在自己的终端上键入命令时, 系统应能及时接收, 并及时处理该命令, 再将结果返回给用户。此后,用户可根据系统返回的响应情况, 再继续键入条命令,此即一机交互。亦即, 允许有多个用户同时通过自己的键盘键入命令, 系统也应能全部及时接收并处理。
目标:
- 对用户的请求及时响应;尽量提高系统资源的利用率
原理:
- 一台计算机连接多个终端,用户通过各自的终端把作业送入计算机;计算机又通过终端向各个用户报告其作业的运行情况。
- 计算机能分时轮流地为各终端用户服务,并能及时地对用户服务请求予以响应。
基本特性:
- 多路性
- 独立性
- 及时性
- 交互性。
(1)多路性。该特性是指系统允许将多台终端同时连接到一台主机上, 并按分时原则为每个用户服务。多路性允许多个用户共享一台计算机, 显著地提高了资源利用率, 降低了使用费用, 从而促进了计算机更广泛的应用。
(2) 独立性。该特性是指系统提供了这样的用机环境, 即每个用户在各自的终端上进行操作, 彼此之间互不干扰, 给用户的感觉就像是他一入独占主机进行操作。
(3)及时性。及时性是指用户的请求能在很短时间内获得响应。这一时间间隔是根据人们所能接受的等待时间确定的,通常仅为1~3秒钟。
(4)交互性。交互性是指用户可通过终端与系统进行广泛的人机对话。其广泛性表现在: 用户可以请求系统提供多方面的服务, 如进行文件编辑和数据处理, 访问系统中的文件系统和数据库系统, 请求提供打印服务等。令
3…实时系统
类型:
周期性实时任务和非周期性实时任务
硬实时任务和软实时任务
目的:
提高系统的响应时间,对随机发生的外部事件作出及时响应并对其进行处理。
分类
基本特性
三种系统比较
§1.3 操作系统的基本特性
1.3.1.并发与并行定义:
并发:一段时间
- 指两个或多个事件在同一时间间隔内发生。
并行:一个时间
- 指两个或多个事件在同一时刻发生。
1.3.2…共享
在OS环境下的资源共享或称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。
这里在宏观上既限定了时间(进程在内存期间),也限定了地点(内存)
-
同时访问方式(一段时间可以多个)
-
互斥共享方式(一段时间仅仅一个)
并发和共享是多用户(多任务)OS的两个最基本的特征。它们又是互为存在的条件。 即一方面资源共享是以进程的并发执行为条件的,若系统不允许并发执行也就不存在资源共享问题: 另 一 方面,若系统不能对资源共享实施有效管理,以协调好诸进程对共享资源的访问, 也必然会影响到诸进程间并发执行的程度,甚至根本无法并发执行。
1.3.3.虚拟
定义:
该技术是通过“空分复用” 或“时分复用 ” 技术,
将一 条物理信道变为若干条逻辑信道,
使原来只能供一 对用户通话的物理信道,变为能供多个用户同时通话的逻辑信道
在OS中,把通过某种技术将一 个物理实体变为若干个逻辑上的对应物的功能称为“虚拟"。前者是实的,即实际存在的,而后者是虚的,是用户感觉上的东西。相应地,把用于实现虚拟的技术称为虚拟技术。在OS中也是利用时分复用和空分复用技术来实现 “虚拟" 的。
1.3.4.异步性
- 系统中并发执行的多道程序“走走停停”,以不可预知的速度向前推进
§1.4 操作系统的主要功能
引入OS的主要目的是,为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊地、高效地运行,并能最大程度地提高系统中各种资源的利用率,方便用户的使用。
OS定义
-
OS是直接控制和管理计算机硬件、软件资源,合理地对各类作业进行调度,以方便用户使用的程序集合
--- 处理机管理功能 --- 存储器管理功能 --- 设备管理功能 --- 文件管理功能 --- 用户接口
主要任务
- 为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊、高效地运行,并能最大程度地提高系统中各种资源的利用率和方便用户的使用。
§1.5 OS结构设计
软件工程的目标是十分明确的,所开发出的软件产品应具有良好的软件质量和合理的 费用。整个费用应能为用户所接受:软件质量可用这样几个指标来评价:功能性、有效性、 可靠性、易使用性、可维护性和易移植性。为此,先后产生了多种操作系统的开发方法, 如模块化方法、结构化方法和面向对象的方法等。利用不同的开发方法所开发出的操作系 统将具有不同的操作系统结构。
传统的操作系统结构
# 1. 无结构操作系统(想到哪,写到哪)
OS是由众多的过程直接构成,各过程之间可相互调用,但OS内部不存在任何结构,所以这种OS是无结构的,又称为整体系统结构。
缺点:
既庞大又杂乱,缺乏清晰的程序结构;
程序错误多,调试难、阅读难、理解难、维护难。
# 2. 模块化OS结构
基于分解与模块化两大原则
OS是采用“模块化程序设计”技术,按其功能划分为若干个独立的模块,管理相应的功能,同时规定好各模块之间的接口,以实现其交互,对较大模块又可按子功能进一步细分下去。
优点 :
提高了OS设计的正确性、可理解性和可维护性
增强了OS的可适用性
加速了OS的开发过程
缺点 :
模块及接口划分较困难
从功能上划分模块,未区别共享资源和独占资源
由于管理的差异,使OS结构变得不够清晰
在OS设计阶段,设计者必须做出一系列的决定(决策),每一个决定必须建立在上一个决定的基础上,但模块化结构设计中,各模块的设计齐头并进,无法寻找一个可靠的决定顺序,造成各种决定的 “无序性 ”。这将使程序人员很难做到 “设计中的每一步决定”都是建立在可靠的基础上,因此模块-接口法又被称为 “无序模块法 ”。
# 3. 分层式OS结构
-
为了将模块-接口法中 “决定顺序 ” 的无序性变为有序性 ,引入了有序分层法
-
自底向上的分层设计的基本原则是:每一 步设计都建立在可靠的基础上。为
-
分层式OS结构是对模块化结构的一种改进,它按分层式结构设计的基本原则,将OS 划分为若干个层次,每一层都只能使用其底层所提供的功能和服务,从硬件开始,在其上面一层一层地自底向上增添相应功能的软件,这种OS结构称为分层式OS结构。
优点:
每一步设计都建立在可靠的基础上,结构更清晰
调试和验证更容易,正确性更高
易扩充和易维护性
缺点:
系统效率降低。
只能是单向依赖,每执行一个功能,自底向上需要穿越很多个层次。
现代操作系统结构: 微内核的OS结构
# 1. 微内核技术的主要思想
它能有效地支持多处理机运行,故非常适用于分布式系统环境
在OS内核中只留下一些最基本的功能,而将其他服务分离出去,由工作在用户态下的进程来实现,形成所谓“客户/服务器”模式。客户进程可通过内核向服务器进程发送请求,以取OS的服务。
# 2. 微内核
精心设计的,能实现现代OS核心功能的小型内核
它小而精炼,运行在核心态下,开机后常驻内存,不会因内存紧张而换出
它为构建通用OS提供了一个重要基础。
# 3. 微内核的基本功能
- 进程管理
- 存储器管理
- 进程通信管理
- I/O设备管理
# 4. 特点
- 小而精练
- 系统的灵活性和可扩充性好
- 系统的可靠性高
- 适用于分布式系统
下面是扩展:
由千微内核OS结构是建立在模块化、层次化结构的基础上的,并采用了客户/服务器 模式和面向对象的程序设计技术,因此,微内核结构的操作系统是集各种技术优点之大成
(1) 提高了系统的可扩展性。由于微内核 O S 的许多功能是由相对独立的服务器软件来 实现的,当开发了新的硬件和软件时,微内核OS只需在相应的服务器中增加新的功能, 或再增加 一 个专门的服务器。与此同时,也必然改善系统的灵活性,不仅可在操作系统中 增加新的功能,.还可修改原有的功能,以及删除已过时的老功能,以形成一 个更为精干的 有效的操作系统。
(2)增强了系统的可靠性。这一 方面是由千微内核是通过精心设计和严格测试的,容 易保证其正确性,另 一 方面,它提供了规范而精简的应用程序接 口(A PI),为微内核外部的 程序编制高质量的代码创造了条件。此外,由于所有服务器都是运行在用户态,服务器与 服务器之间采用的是消息传递通信机制,因此,当某个服务器出现错误时,不会影响内核, 也不会影响其它服务器。
(3) 可移植性强。随着硬件的快速发展,出现了各种各样的硬件平台,作为一 个好的 操作系统,必须具备可移植性,使其能较容易地运行在不同的计算机硬件平台上。在微内 核结构的操作系统中,所有与特定CPU和I/0设备硬件有关的代码,均放在内核和内核下 面的硬件隐藏层中,而操作系统其它绝大部分一 各种服务器,均与硬件平台无关,因而, 把操作系统移植到另 一 个计算机硬件平台上所需作的修改是比较小的。
(4)提供了对分布式系统的支持。由千在微内核OS中,客户和服务器之间、服务器和 服务器之间的通信采用消息传递通信机制,致使微内核OS能很好地支待分布式系统和网 络系统。事实上,只要在分布式系统中赋予所有进程和服务器唯一 的标识符,在微内核中 再配置一 张系统映射表(即进程和服务器的标识符与它们所驻留的机器之间的对应表),在 进行客户与服务器通信时,只需在所发送的消息中标上发送进程和接收进程的标识符,微 内核便可利用系统映射表将消息发往目标,而无论目标是驻留在哪台机器上。
(5)融入了面向对象技术。在设计微内核OS时采用了面向对象的技术,其中的 “封装”, “继承“, “对象类” 和 “多态性”,以及在对象之间采用消息传递机制等,都十分有利千提高 系统的正确性、可靠性、易修改性、易扩展性等,而且还能显著地减少开发系统所付出的开销。
§1.6 常见的OS(补充)
1. MS DOS
2. MS Windows
3. UNIX
4. Linux
5. 手持系统(handheld system)
嵌入式操作系统 (Embedded OS)
1. MS DOS的结构
- DOS BIOS(Basic Input/Output System):由一组与硬件相关的设备驱动程序组成,实现基本的I/O功能;
- DOS核心:提供一套独立于硬件的系统功能:内存管理、文件管理、字符设备和输入/输出、实时时钟等;
- 命令处理程序:对用户命令进行分析和执行;
2. 通用开放软件环境(COSE)
- 一些主要的UNIX系统厂商在1993年成立了通用开放软件环境联盟。这些厂家当时包括HP,IBM,Sun,SCO,Novell及UNIX系统实验室。
3. 自由软件基金会(FSF)
- 目标是创建一个与UNIX类似的系统,名为HURD。
- 他们的这项工程称为GNU(全称为GNU’s Not UNIX)。
- 在编写HURD的过程中,他们编写了许多非常有用的、可移植性很强的流行实用程序。
- 例如GNU C 编译器gcc。用户既可以得到这些工具的源代码而自行进行编译,也可以得到能立即运行的可执行文件。
4. Linux的体系结构
- 用户应用:文字处理工具、浏览器等用户应用程序;
- 系统服务:它是操作系统的一部分,但不是内核。包括窗口系- 统、命令解释程序、应用开发工具(编译器、系统库等)
- Linux内核:操作系统内核,完成资源管理功能。
- 硬件控制 :系统中的所有物理设备控制 。
5. 手持系统(handheld system) && 嵌入式操作系统 (Embedded OS)
- 个人数字助理(Personal Digital Assistants, PDAs)
- 蜂窝电话(Cellular telephones)
- 存在的问题
- 内存有限(32M – 64M)
- 低速处理器(只有个人计算机处理器速度的几分之一)
- 屏幕小(5英寸×3英寸)