操作系统 | 1. 操作系统引论
思维导图
- 操作系统引论
- 操作系统的目标与作用
- 操作系统的目标
- 操作系统的作用
- 用户与硬件系统之间的接口
- 计算机资源的管理者
- 扩充机器
- 推动操作系统发展的主要动力
- 操作系统的发展过程
- 无操作系统的计算机系统
- 脱机输入/输出(Off-Line I/O)方式
- 无操作系统的主要问题
- 单道批处理系统
- 联机批处理
- 脱机批处理
- 单道批处理系统的特征
- 多道批处理系统
- 多道批处理系统的特征
- 单道批处理和多道批处理的比较
- 多道批处理系统的特点
- 多道批处理系统需要解决的问题
- 分时系统
- 分时系统中的关键问题
- 分时系统的特征
- 实时系统
- 网络操作系统
- 计算机网络
- 网络操作系统功能
- 分布式操作系统
- 分布式操作系统的特征
- 网络和分布式的区别
- 嵌入式操作系统
- 典型嵌入式操作系统的特性
- 嵌入式操作系统的应用
- 操作系统的基本特征
- 并发
- 进程
- 共享
- 虚拟
- 异步
- 操作系统的主要功能
- 处理机管理功能
- 存储器管理功能
- 设备管理功能
- 文件管理功能
- 用户接口
- 操作系统的结构设计
- 软件工程的基本概念
- 传统的操作系统结构
- 无结构操作系统
- 模块化OS结构
- 分层式OS结构
- 微内核OS结构
- 微内核的基本功能
- 客户/服务器模式
- 面向对象的程序设计技术(Object-Orientated Programming)
- OS设计原则
- 现代操作系统的特点
- 操作系统实例
- 目前常用的操作系统
- 操作系统领域中新的操作系统
- 研究中的新的操作系统
- 国内操作系统的研制状况
操作系统的目标与作用
操作系统(Operating System OS)属于软件中的系统软件,是管理软硬件资源、数据的计算机程序,控制其他程序运行并为用户提供交互界面的软件集合。
操作系统的目标
目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。通常在计算机硬件上配置的OS,其目标有以下几点:
- 方便性(用户的观点)
操作系统最终是要为用户服务的。提供良好的、一致的用户接口,弥补硬件系统的类型和数量差别,使计算机更容易使用。 - 有效性(系统管理人员的观点)
使CPU、I/O设备和存储空间得到有效利用;管理和分配硬件、软件资源,合理地组织计算机的工作流程。 - 可扩充性
OS应采用层次化结构,以便于增加新的功能层次和模块,并能修改老的功能层次和模块。 - 开放性
遵循标准规范,方便地实现互连,实现应用程序的可移植性和互操作性。
操作系统的作用
用户与硬件系统之间的接口

使用接口的方式
- 命令方式
- 联机用户接口(命令)
- 脱机用户接口(批处理)
- 系统调用方式
- 形式上类似于过程调用,在应用编程中使用(API)
- 图形、窗口方式
- 用户通过屏幕上的窗口和图标来操纵计算机系统和运行自己的程序
计算机资源的管理者
计算机的资源包括处理机、存储器、I/O设备及数据和程序等。
管理的内容:
- 资源的当前状态(数量和使用情况)
- 资源的分配、回收和访问操作
- 相应管理策略(包括用户权限)
- 处理机管理
- 存储器管理
- I/O设备管理
- 文件管理
扩充机器
- OS是扩展机(extended machine)/虚拟机(virtualmachine)[1]
- 在裸机上添加:设备管理、文件管理、存储管理(针对内存和外存)、处理机管理(针对CPU)
- 合理组织工作流程:作业管理、进程管理
OS能把一台“裸机”改造成功能更强大、用户使用更方便灵活、更安全可靠的虚拟机。
操作系统的非形式化定义: 系统软件程序模块的集合,资源管理和用户接口功能
推动操作系统发展的主要动力
- 提高资源的利用率和系统性能
- 计算机发展的初期,计算机系统昂贵,用作集中计算
- 方便用户
- 用户上机、调试程序,分散计算时的事务处理和非专业用户(商业和办公、家庭)
- 器件的发展
- CPU的位宽度(指令和数据)、快速外存
- 计算机体系结构的发展
- 从单处理机到多处理机;从单机到网络
操作系统的发展过程
无操作系统的计算机系统
- 1946 ~ 50年代(电子管),集中计算(计算中心),计算机资源昂贵
- 工作方式
- 用户:用户既是程序员,又是操作员;用户是计算机专业人员;
- 编程语言:机器语言
- 输入输出:纸带或卡片
- 计算机的工作特点
- 用户独占全机:不出现资源被其他用户占用,资源利用率低
- CPU等待用户:计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片;CPU利用率低
严重降低了计算机资源的利用率———人机矛盾!
脱机输入/输出(Off-Line I/O)方式
- 事先将用户程序或数据的纸带或卡片准入纸带输入机,在外围机的控制下输入到磁带上,CPU从磁带上读入数据;输出过程正好相反
- 特点
- 减少了CPU的空闲时间
- 提高I/O速度

无操作系统的主要问题
- 主要矛盾
- 计算机处理能力的提高,手工操作的低效率(造成浪费);
- 用户独占全机的所有资源;
- 提高效率的途径
- 专门的操作员
- 批处理
单道批处理系统
- 50年代末 ~ 60年代中(晶体管):利用磁带把若干个作业分类编成作业执行序列,每个批作业由一个专门的监督程序(Monitor)自动依次处理。可使用汇编语言开发。
- 批处理中的作业的组成
- 用户程序
- 数据
- 作业说明书(作业控制语言)
- 批
- 供一次加载的磁带或磁盘,通常由若干个作业组装成,在处理中使用一组相同的系统软件(系统带)

- 供一次加载的磁带或磁盘,通常由若干个作业组装成,在处理中使用一组相同的系统软件(系统带)
联机批处理
- 用户提交作业:以纸带或卡片为介质
- 操作员合成批作业:结果为磁带介质
- 批作业处理:对批作业中的每个作业进行相同的处理:从磁带读入用户作业和编译链接程序,编译链接用户作业,生成可执行程序;启动执行;执行结果输出
- 这时的问题:慢速的输入输出处理仍直接由主机来完成。输入输出时,CPU处于等待状态
脱机批处理
- 卫星机:完成面向用户的输入输出(纸带或卡片),中间结果暂存在磁带或磁盘上
- 利用卫星机完成输入输出功能。主机与卫星机可并行工作
- 作业控制命令由监督程序(monitor)来执行,完成如装入程序、编译、运行等操作
- 优点:同一批内各作业的自动依次更替,改善了主机CPU和I/O设备的使用效率,提高了吞吐量
- 缺点:磁带或磁盘需要人工装卸,作业需要人工分类,监督程序易遭到用户程序的破坏(由人工干预才可恢复)

单道批处理系统的特征
- 自动性
- 在顺利的情况下,磁带上的一批作业能自动地逐个地依次运行,而无需人工干预
- 顺序性
- 磁带上的各道作业是顺序地进入内存,完成顺序与进入内存顺序相同
- 单道性
- 内存中只有一道程序运行
- CPU和I/O设备使用忙闲不均(取决于当前作业)
- 对计算为主的作业,外设空闲
- 对I/O为主的作业,CPU空闲
多道批处理系统

- 60年代中 ~ 70年代中(集成电路),利用多道批处理提高资源的利用率
- 多道批处理的运行特征
- 多道:内存中同时存放几个作业,并允许并发执行,从而有效地提高了资源利用率和系统吞吐量
- 无序性:多个作业完成的先后顺序与它们进入内存的顺序之间无严格对应关系
- 调度性:作业调度,从后备队列进入内存;进程调度,分配处理机运行
- 举例
- 在当前运行的作业需作I/O处理时,CPU转而执行另一个作业
多道批处理系统的特征
- 多道性
- 多道程序驻留内存:提高了资源的利用率;
- 程序并发执行:提高了系统的吞吐量;
- 无序性
- 作业进入内存先后顺序和完成的先后顺序无对应性
- 调度性
- 作业提交给系统需经过两次调度
- 作业调度
- 进程调度
- 作业提交给系统需经过两次调度
单道批处理和多道批处理的比较
| 单道 | 多道 | |
|---|---|---|
| 内存使用 | 每次一个作业 | 每次多个作业(充分利用内存) |
| 作业次序 | 顺序,先进先出 | 无确定次序 |
| 内存中驻留程序数目 | 一道 | 多道 |
| 占用CPU的情况 | 独占 | 交替占用 |
| 是否需要作业和进度调度 | 不需要 | 需要 |
| 程序完成次序与其进入内存次序间的关系 | 严格对应 | 不严格对应 |
多道批处理系统的特点
- 优点
- 资源利用率高:CPU、I/O设备和内存利用率较高;
- 作业吞吐量大:单位时间内完成的工作总量大
- 缺点
- 用户交互性差:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改
- 作业平均周转时间长:短作业的周转时间显著增长
多道批处理系统需要解决的问题
- 处理机管理:如何共享、分配及回收处理机、提高利用率
- 内存管理:如何分配、互不重叠及干扰
- I/O设备管理:如何共享及分配、方便用户、提高利用率
- 文件管理:如何组织数据和程序、便于使用、保证数据的安全性及一致性
- 作业管理:如何根据作业类型进行组织
操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进调度,以及方便用户使用的程序集合
| 要解决的问题 | 对应章节 |
|---|---|
| 处理机管理问题 | 第三章 处理机调度与死锁 |
| 内存管理问题 | 第四章 存储器管理 |
| I/O设备管理问题 | 第五章 设备管理 |
| 文件管理问题 | 第六章 文件管理 |
| 作业管理问题 | 第三章 处理机调度与死锁 |
分时系统
- 产生原因:用户需要
- 人—机交互
- 共享主机
- 便于用户上机:远程联机
- 70年代中期至今
- 把计算机的系统资源(尤其是CPU时间)进行时间上的分割,每个时间段称为一个时间片(time slice),每个用户依次轮流使用时间片
- "分时"的含义分时是指多个用户分享使用同一台计算机;多个程序分时共享硬件和软件资源
- 多个用户分时:单个用户使用计算机的效率低,因而允许多个应用程序同时在内存中,分别服务于不同的用户。有用户输入时由CPU执行,处理完一次用户输入后程序暂停,等待下一次用户输入——时走时停
- 前台和后台程序(foreground & background)分时:后台程序不占用终端输入输出,不与用户交互——现在的图形用户界面(GUI),除当前交互的程序(输入焦点)之外,其他程序均作为后台
- 按时间片(time slice)分配:各个程序在CPU上执行的轮换时间
分时系统中的关键问题
- 如何使用户能与自已的作业进行交互是分时系统的关键问题
- 及时接收:多路卡
- 及时处理:作业直接进入内存
- 为了实现交互,用户作业必须及时进入内存;不允许一个作业长期占用处理机,须按时间片分配
- 分时系统实现方法:
- 单道分时系统
- 具有“前台”和“后台”的分时系统
- 多道分时系统
分时系统的特征
- 多路性
- 共享系统资源,提高了资源利用率。节省维护开支,可靠性高。促进了计算机的普遍应用,提高资源利用率:远地用户通过终端(较便宜)联机使用
- 独立性
- 每个用户一台终端,互不干扰,感觉像一个人独占计算机
- 及时性
- 用户请求应尽快得到响应
- 交互性
- 用户可通过终端与系统进行广泛的人机对话,请求系统提供多方面的服务,如文件编辑、数据处理、资源共享等
- 系统能及时对用户的操作进行响应,显著提高调试和修改程序的效率:缩短了周转时间
实时系统
- 用于工业过程控制、军事实时控制、金融等领域,包括:
- 实时控制:当计算机应用于生产过程的控制形成以计算机为中心的控制系统时,系统要求能实时采集现场数据,并对所采集的数据进行及时处理,从而自动地控制相应的执行机构,使某些参数(如湿度、压力、液位)能按预定的规律变化,以保证产品的质量和提高产量。
- 实时信息处理:能及时接收从远程终端发来的服务请求,对信息进行检索和处理,并在很短时间内作出回答
- 主要设计目标:响应时间短;实时时钟管理;连续人机对话;过载防护;高度可靠性和安全
- 任务的类型
- 周期性实时任务
- 非周期性实时任务:截止时间(deadline),开始截止时间(最晚开始时间)和完成截止时间(最晚完成时间)
- 对截止时间的要求
- 硬实时任务(hard real-time task):必须满足截止时间要求
- 软实时任务(soft real-time task)
- 通常把兼有分时、实时和批处理三者或其中两者的操作系统,称作通用操作系统。可适用于计算、事务处理等多种领域,能运行在多种硬件平台上,如 UNIX系统、Windows NT等。——通用化、小型化
| 分时系统 | 实时系统 | |
|---|---|---|
| 多路性 | 多终端服务 | 多路现场、多个对象、多个执行机构 |
| 独立性 | 终端服务互相独立、互不干扰 | 信息采集和对象控制互不干扰 |
| 及时性 | 用户可接受的 | 实时信息系统同分时系统,实时控制系统要求高 |
| 交互性 | 强 | 仅对特定服务 |
| 可靠性 | 一般 | 强,通常采取容错措施 |
网络操作系统
计算机网络
通过通信设施将物理上分散的具有自治功能的多个计算机系统互连起来的实现信息交换、资源共享、可互操作和协作处理的系统。
网络操作系统功能
-
在各种计算机操作系统上,按网络体系结构协议标准开发的软件
-
包括网络管理、通信、安全、资源共享和各种网络应用
-
目标:是相互通信及资源共享
分布式操作系统
-
基于两种环境
- 多处理器系统
- 多计算机系统
-
是网络操作系统的更高级的形式
-
保持了网络操作系统的全部功能
分布式操作系统的特征
- 是一个统一的操作系统
- 资源进一步共享
- 透明性:资源共享与分布对用户是透明的
- 自治性:处于分布式系统的多个主机处于平等地位,无主从关系
- 处理能力增强、速度更快、可靠性增强
网络和分布式的区别
- 分布式具有各个计算机间相互通讯,无主从关系;网络有主从关系。
- 分布式系统资源为所有用户共享;而网络有限制地共享。
- 分布式系统中若干个计算机可相互协作共同完成一项任务。
嵌入式操作系统
- 在各种设备、装置或系统中,完成特定功能的软硬件系统
- 它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机”
- 由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统
- EOS(Embedded Operating System)在嵌入式系统中的OS
- 是运行在嵌入式智能芯片环境中
- 对整个智能芯片以及它所操作、控制的各种部件装置等等资源进行统一协调、调度、指挥和控制的系统软件
- 国际上有名的嵌入式操作系统有Windows CE 、Palm OS 、Linux 、VxWorks 、pSOS、QNX、OS-9 、LynxOS等。
典型嵌入式操作系统的特性
- 完成某一项或有限项功能;不是通用型的
- 在性能和实时性方面有严格的限制
- 能源、成本和可靠性通常是影响设计的重要因素
- 占有资源少、易于连接
- 系统功能可针对需求进行裁剪、调整和生成,以便满足最终产品的设计要求
嵌入式操作系统的应用
- 嵌入计算的各种应用特点
- 掌上电脑
- 运算速度: 100 KIPS
- 在大小上优化、支持手写、低能耗
- 工业设备
- 运算速度: 1 MIPS
- 安全优先,控制流程为主
- 军事装备
- 运算速度 :1 GIPS
- 可靠性最重要
操作系统的基本特征
- 并发(Concurrence)
- 共享(Sharing)
- 虚拟(Virtual)
- 异步性(Asynchronism)
注意:这里指的是通用操作系统
并发
并发是指多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。
- 并行(parallel)是指在同一时刻发生
- 在多道程序处理时,宏观上并发,微观上交替执行(在单处理器情况下)
- 程序的静态实体是可执行文件,而动态实体是进程(或称作任务),并发指的是进程(或线程)
进程
应当指出,通常的程序是静态实体(Passive Entity),它们是不能并发执行的。为使多个程序能并发执行,系统必须分别为每个程序建立进程。简单说来,进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个活动实体。多个进程之间可以并发执行和交换信息。一个进程在运行时需要一定的资源,如CPU、存储空间及I/O设备等。
- 在操作系统中引入进程的目的,是使多个程序能并发执行。
- 进程和并发是现代OS中最重要的基本概念,也是OS运行的基础。
- 进程都是OS中可以拥有资源和作为独立运行的基本单位。
- 直到80年代中期,人们才有提出了比进程更小的单位——线程(Threads)。
共享
- 是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。因资源属性不同,对资源共享的方式也不同
- 互斥共享(如音频设备、打印机等)
- 资源分配后到释放前,不能被其他进程所用。
- 同时访问(如可重入代码,磁盘文件)
- 同时是宏观上的,在微观上进程可能是交替地对资源进行访问
- 并发和共享是操作系统的两个最基本的特征。一方面,资源共享是以程序(进程)的并发执行为条件的;另一方面,若系统不能对资源共享实施有效管理, 协调好诸进程对共享资源的访问,也必然影响到程序并发执行的程度
虚拟
- 通过某种技术把一个物理实体变为若干个逻辑上的对应物,主要目的在于提高资源的利用率
- 如
- CPU——每个用户(进程)的"虚处理机"
- 存储器——每个进程都占有的地址空间(指令+数据+堆栈)
- 显示设备——多窗口或虚拟终端(virtual terminal)
- 打印设备——将临界资源变为同时访问资源
异步
- 也称不确定性,指进程的执行顺序和执行时间的不确定性
- 进程的运行速度不可预知:分时系统中,多个进程并发执行,“时走时停”,不可预知每个进程的运行推进快慢
- 判据:无论快慢,应该结果相同——通过进程互斥和同步手段来保证
- 难以重现系统在某个时刻的状态(包括重现运行中的错误)
- 性能保证:实时系统与分时系统相似,但通过资源预留以保证性能
操作系统的主要功能
- 处理机管理
- 存储器管理
- 设备管理
- 文件管理
- 用户接口
处理机管理功能
处理机的分配和运行,都是以进程为基本单位,因而对处理机的管理,可归结为对进程的管理。处理机管理的主要功能,是
- 创建和撤销进程——进程控制
- 对诸进程的运行进行协商——进程同步
- 是进程之间的信息交换——进程通信
- 按照一定的算法把处理机分配给进程——进程调度
- 完成处理机资源的分配、回收调度等功能。处理机调度的单位可为进程或线程。
- 进程控制
- 创建、撤消、挂起、改变运行优先级等——主动改变进程的状态;在现代OS中,进行控制还应具有为一个进程创建和撤消线程的功能。
- 进程同步
- 协调并发进程之间的推进步骤,以协调资源共享;——交换信息能力弱
- 互斥方式 诸进程访问临界资源时采用这种方式
- 同步方式 在相互合作完成任务的进程之间由同步机构对执行次序加以协调
- 进程通信
- 负责进程之间传送数据,以协调进程间的协作;——交换信息能力强,也可以用来协调进程之间的推进
- 如,输入进程、计算进程、打印进程之间的通信
- 进程调度
- 作业和进程的运行切换,以充分利用处理机资源和提高系统性能;——未必是进程控制操作所引起(可能是时间片轮转、I/O操作)
- 作业调度从外存调入内存
- 进程调度是从内存中的进程就绪队列中选一个分配处理机
- 在多线程OS中,要考虑线程调度
- 考虑同一类型内的公平性、高效率(吞吐量大)、作业或进程的周转时间等
存储器管理功能
存储器管理的主要任务,是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。
- 内存分配
- 内存保护
- 地址映射
- 内存扩充
- 管理目标
- 提高利用率、方便用户使用、提供足够的存储空间、方便进程并发运行
- 内存分配
- 为每道程序分配空间:静态分配、动态分配
- 提高利用率
- 允许正在运行程序申请附加空间
- 内存保护
- 确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰
- 如:访问合法性检查、甚至要防止从"垃圾"中窃取其他进程的信息
- 一种方法是设置两个界限寄存器,由硬件实现越界检查
- 地址映射
- 程序中的地址称为“逻辑地址”或“相对地址”
- 内存中单元的地址称为"物理地址"
- 多道程序下,进程装入内存后要由逻辑地址到内存物理地址进行变换
- 内存扩充
- 借助于虚拟存储技术,从逻辑上去扩充内存容量
- 改善了系统的性能,基本上不增加硬件投资
- 请求调入功能
- 置换功能
设备管理功能
设备管理用于管理计算机系统中所有的外围设备, 而设备管理的主要任务是,完成用户进程提出的I/O请求;为用户进程分配其所需的I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;方便用户使用I/O设备。为实现上述任务,设备管理应具有缓冲管理、设备分配和设备处理,以及虚拟设备等功能。
- 管理目标
- 方便的设备使用、提高CPU与I/O设备利用率、提高I/O速度
- 缓冲区管理
- 匹配CPU和外设的速度,提高两者的利用率(单缓冲区、双缓冲区和公用缓冲区)
- 单缓冲、双缓冲、公共缓冲池
- 设备分配与回收
- 在多用户间共享I/O设备资源
- 针对不同类型设备采用不同策略,如独占设备分配
- 虚拟设备(virtual device):设备由多个进程共享,每个进程如同独占
- 设备独立性
- 用户申请的设备与实际操作的物理设备无关
文件管理功能
文件管理的主要任务,是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。
- 文件存储空间的管理
- 目录管理
- 文件的读/写管理和保护
- 管理主要目标
- 对用户文件和系统文件进行管理,以方便用户使用并保证文件安全
- 文件存储空间管理
- 解决如何存放信息,以提高空间利用率和读写性能
- 存储空间的使用情况,空间分配与回收
- 目录管理
- 解决信息检索问题,能按名存取
- 目录项包括文件名、文件属性、文件在磁盘上的物理位置等
- 文件的读写
- 根据用户请求,从外存中读取数据;或将数据写入外存
- 文件保护
- 解决信息安全问题
- 防止未经核准的用户存取文件
- 防止冒名顶替存取文件
- 防止以不正确的方式使用文件
用户接口
- 目标
- 提供一个友好的用户访问操作系统的接口
- 命令接口
- 联机用户接口 这是为联机用户提供的,它由一组键盘操作命令及命令解释程序所组成。当用户在终端或控制台上每键入一条命令后,系统便立即转入命令解释程序,对该命令加以解释并执行该命令。
- 脱机用户接口 该接口是为批处理作业的用户提供的,故也称为批处理用户接口。该接口由一组作业控制语言JCL组成。批处理作业的用户不能直接与自己的作业交互作用,只能委托系统代替用户对作业进行控制和干预。
- 程序接口
- 该接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的惟一途径。它是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用
- 图形接口
- 图形用户接口采用了图形化的操作界面, 用非常容易识别的各种图标(icon)来将系统的各项功能、各种应用程序和文件,直观、逼真地表示出来。用户可用鼠标或通过菜单和对话框,来完成对应用程序和文件的操作
操作系统的结构设计
软件工程的基本概念
- 软件
- 是指当计算机运行时,能提供所要求的功能和性能的指令和程序的集合,以及该程序能够正确地处理信息的数据结构
- 规范的软件还应具有描述程序功能需求以及程序如何操作使用的文档
- 软件工程
- 是指运用系统的、规范的和可定量的方法,来开发、运行和维护软件
- 目的是为了解决在软件开发中所出现的编程随意、软件质量不可保证以及维护困难等问题
传统的操作系统结构
无结构操作系统
- 设计者只是把他的注意力放在功能的实现和获得高的效率上,缺乏首尾一致的设计思想
- 此时的OS是为数众多的一组过程的集合,各过程之间可以相互调用,在操作系统内部不存在任何结构
- 缺点
- 操作系统既庞大又杂乱,缺乏清晰的程序结构,调试困难
- 程序难以阅读和理解,增加了维护人员的负担
模块化OS结构
- 模块由众多服务过程(模块接口)组成,可以随意调用其他模块中的服务过程
- 优点
- 具有一定灵活性,在运行中的高效率
- 缺点
- 功能划分和模块接口难保正确和合理
- 模块之间的依赖关系(功能调用关系)复杂(调用深度和方向),降低了模块之间的相对独立性--不利于修改

分层式OS结构
- 有序分层的概念
- 基本原则是
- 每一层都仅使用其底层所提供的功能和服务,这样可使系统的调试和验证都变得容易
- 层次的设置
- 程序嵌套
- 运行频率
- 公用模块
- 用户接口

微内核OS结构
- 把操作系统分成若干分别完成一组特定功能的服务进程,等待客户提出请求;而系统内核只实现操作系统的基本功能(如:虚拟存储、消息传递)
- 微内核(MicroKernel)
- 将更多操作系统功能放在核心之外,作为独立的服务进程运行;
- 服务进程,如进程服务器、存储管理服务器、文件服务器
- 客户进程(系统客户和应用客户)——需支持多进程
微内核的基本功能
- 微内核所提供的功能,通常都是一些最基本的功能,如进程管理、存储器管理、进程间通信、 低级I/O功能
- 进程管理
- 存储器管理
- 进程通信管理
- I/O设备管理
客户/服务器模式
- 为了提高OS的灵活性和可扩充性而将OS划分为两部分, 一部分是用于提供各种服务的一组服务器(进程); 另一部分是内核,用来处理客户和服务器之间的通信
- 所有这些服务器(进程)都运行在用户态。 当有一用户进程(现在称为客户进程)要求读文件的一个盘块时,该进程便向文件服务器(进程)发出一个请求
- 内核来接收客户的请求,再将该请求送至相应的服务器;同时它也接收服务器的应答, 并将此应答回送给请求客户;内核还有与硬件直接相关的一些功能

面向对象的程序设计技术(Object-Orientated Programming)
- 对象
- 是指在现实世界中具有相同属性、服从相同规则的一系列事物的抽象,而把其中的具体事物称为对象的实例
- OS中的各类实体如进程、线程、消息、存储器等,都使用了对象这一概念

- 优点
- 可修改性和可扩充性
- 由于隐蔽了表示实体的数据和操作,因而可以改变对象的表示而不会影响其它部分, 从而可以方便地改变老的对象和增加新的对象
- 继承性
- 继承性是面向对象技术所具有的重要特性。继承性是指子对象可以继承父对象的属性,这样,在创建一个新的对象时, 便可减少大量的时空开销
- 正确性和可靠性
- 由于对象是构成操作系统的基本单元,可以独立地对它进行测试,这样,比较易于保证其正确性和可靠性,从而比较容易保证整个系统的正确性和可靠性
- 可修改性和可扩充性
OS设计原则
- 可维护性:容易修改与否称为可维护性
- 改错性维护:改正已发现的错误;
- 适应性维护:修改软件,使之适应新的运行环境(硬件环境和软件环境);如:操作系统的移植。
- 完善性维护:增加新功能;
- 可靠性
- 正确性:正确实现所要求的功能和性能;
- 稳健性:对意外(故障和误操作)作出适当的处理;
- 可理解性:易于理解,以方便测试、维护和交流;
- 性能:有效地使用系统资源;尽可能快地响应用户请求;
现代操作系统的特点
- 微内核结构
- 只给内核分配最基本的功能,可简化实现,提供灵活性
- 多线程
- 把执行一个应用程序的进程划分成可以同时运行的多个线程。提高程序的执行效率。
- 对称多处理
- 有多个处理器共享同一个主存储器和I/O设备,可以执行相同的功能。提高并行性、可靠性
- 分布式操作系统
- 面向对象设计
- 提高模块独立性,便于扩展
操作系统实例
目前常用的操作系统
- 微软Windows操作系统
- 1983年10月,PC机竞争厂家的图形界面相关产品上市
- 面对市场压力,比尔.盖茨在1983年11月10日宣布推出Windows操作系统
- 然而宣布容易,交货就不简单了,Windows交货期的灾难,成了当年计算机界的笑柄
- 直到1985年11月20日,Windows 1.0才正式上市
- Windows的历史记录
- Windows在当时微软历史上创了几个记录:延迟交货次数最多,投入开发人员最多,开发时间最长,更换主管人员最多
- 不过几年之后,Windows终于创造了销售成绩最佳的历史记录
- 1992年4月,推出Windows 3.1, 1993年5月,发表Windows NT
- Windows 95,Windows CE,Windows 98,Windows 2000,Windows XP,.net
- 个人计算机采用Windows占90%以上,微软公司成了垄断PC行业的同义词
- UNIX
- UNIX是现代操作系统的代表。Unix运行时的安全性、可靠性以及强大的计算能力赢得广大用户的信赖
- 促使UNIX系统成功的因素:
- 首先,由于UNIX是用C语言编写,因此它是可移植的,UNIX 是世界上唯一能在笔记本计算机、PC机、工作站直至巨型机上运行的操作系统
- 第二,系统源代码非常有效,系统容易适应特殊的需求
- 最后,它是一个良好的、通用的、多用户、多任务、分时操作系统
- UNIX系统的特点
- 字符用户界面和图形用户界面GUI(X Window)。
- 抢先式多任务,多线程。支持动态链接。支持对称式多处理。
- 虚拟存储:段页式,有存储保护。
- 文件系统:多级目录,文件卷可以在子目录下动态装卸。无文件属性,可有别名。
- 采用设备文件的形式(读写,参数控制)。设备驱动程序修改后需要重新编译连接生成内核。
- 支持多种硬件平台。
- 易移植:主要代码用C语言写成;
- 变种很多,很难标准化。
- IBM大型计算机操作系统OS/390
- 90年代末期,电子商务发展刺激对计算能力的要求,导致大型机市场的再度升温
- 三十年的改进,IBM OS/390已成为有高可靠性、可扩展性、及安全可用性的现代大型计算机系统
- 支持UNIX 95标准,UNIX应用程序可在IBM OS/390上运行
- 同时还可继续运行OS/390应用程序,包括OS/370上开发的应用程序
- 包括TCP/IP的多种通信协议,具有高网络安全性
- 采用面向对象程序设计、并行处理、分布式处理以及客户机/服务器技术,具有较强的互操作性、可移植性与可扩展性
- 在PC机时代,人们曾经估计大型计算机会衰亡
- IBM S/390是大型计算机复活的一个典型
- Linux
- 1990年秋天,Linus在芬兰首都赫尔辛基大学学习操作系统课程,因为上机需要排队等待,Linus买了台PC机,开发了第一个程序,程序包括两个进程,向屏幕上写字母,然后用定时器来切换进程
- 编写了从调制解调器上接发信息的程序以及显示器、键盘和调制解调器的驱动程序
- 然后写了磁盘驱动程序,文件系统,一旦有了进程切换、文件系统和设备驱动程序,当然就拥有了一个操作系统原型,或者至少是它的一个内核
- Linux就以这样极其古怪但也极其自然式问世
- Linux是一个免费的操作系统,用户可以免费获得其源代码,并能够随意修改。它是在共用许可证GPL(General Public License)保护下的自由软件
- Linux具有许多Unix系统的功能和特点,能够兼容Unix,但无需支付Unix高额的费用。
- Linux的应用广泛:Sony最新的PS2游戏机采用Linux作为系统软件。著名的电影《泰坦尼克号》的数字技术合成工作就是利用100多台Linux服务器来完成的。
操作系统领域中新的操作系统
- 有线电视机顶盒领域, PowerTV
- 移动通信领域,EPOC
- 掌上计算机领域,Palm OS
- 数字影像领域, Digita
研究中的新的操作系统
- 哈佛大学的VINO,使应用得以重用内核构件
- 犹他州大学的OSKit,提供构造操作系统所需的基础构件,也提供高层次构件。OSKit可用来构造新的OS
- MIT Exokernel,该系统只有一个极小的核。系统抽象通过Library Operating System完成
- NASA空间飞行中心(GSFC)研制Beowulf项目开始于1994年,用商业化的微型计算机,Linux和以太网等构造集群。已有世界各地的约六十个大学和研究机构在使用
- 加州大学伯克利分校NOW集群操作系统,100台Ultra SPARC-I处理机集群,排名于世界最快的200台超级计算机之内
国内操作系统的研制状况
- 60年代末至70年代初
- 杨芙清院士主持
- 我国第一台百万次集成电路计算机(150)操作系统
- 支持多道程序运行,在石油勘探领域成功应用
- 70年代中后期
- 杨芙清院士主持
- 我国第一个全部用高级语言书写的DJS240机操作系统DJS200/XT2
- 层次管程结构模型,PCM设计方法,活跃管程结构模式
- GX73多机实时操作系统(1978年)
- 国防科技大学,1980年装在“远望”-I 号航天测量船上,完成了向太平洋发射运载火箭、潜水艇水下发射的测控任务;完成了我国第一颗同步地球卫星的测控、定轨、控制任务
- 银河”-1 YHOS巨型操作系统(1983年)国防科技大学,用于YH-1、YH-2超级计算机,用于我国的石油勘探、天气预报和核物理研究
- COSIX v 1.X/2.0 国产UNIX类操作系统(国家八五、九五重点科技攻关成果,以中软为首,联合国内18个单位共同完成)
- 嵌入式操作系统Hopen(女娲计划)
- Linux类操作系统
扩展机/虚拟机:将覆盖了软件的机器称为扩充机器或虚拟机 ↩︎







