第一章-概论
1.操作系统目标和定义
操作系统的主要目标是:
- 方便性
- 有效性
- 可扩展性
- 开放性
操作系统的定义:
- 管理系统资源
- 控制程序执行
- 改善人机界面
- 进程控制
- 程序接口{系统调用}(为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径)
- 操作接口
- 命令接口
- 联机用户接口
- 脱机用户接口(为批处理作业的用户提供的)
- 图形用户接口
- 命令接口
- 进程控制
- 提供各种服务
2.操作系统的作用
-
服务用户观点——操作系统作为用户接口和公共服务程序
-
进程交互观点——操作系统作为进程执行的控制者和协调者
-
系统实现观点——操作系统作为扩展机或虚拟机
-
资源管理观点——操作系统作为资源的管理者和协调者
-
复用
- 空分复用分享(表明资源可以从“空间”上分割成更小的单位供进程使用,例如内外存资源)
- 时分复用分享(表明资源可以从“时间”上分割成更小的单位供进程使用,例如磁带机)
-
虚拟(对计算机软硬件资源进行有效管理的技术和手段,本质是对资源进行转化、模拟或整合)
-
抽象(处理系统复用复杂性,重点解决资源易用性)
操作系统中的基础抽象:进程抽象、虚存抽象、文件抽象
-
组合使用资源管理技术
-
3.操作系统的发展和分类
(1)人工操作方式
缺点:
- 用户独占全机
- CPU等待人工操作
人机矛盾:人工操作的方式严重降低了计算机资源的利用率
(2)脱机输入/输出(Off-Line I/O)方式
该技术是事先将用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上。
虽然系统对作业的处理是成批进行的,但在内存中始终只保持一道作业,故称单道批处理系统。
主要优点:
- 减少了CPU的空闲时间
- 提高了I/O速度
- 缓和了人机矛盾
(3)批处理操作系统
将一批作业提交给操作系统后就无需人工干预,由操作系统按照作业控制说明书和资源可用情况自动调度各个作业的启停,完成作业的各种控制事务,直到作业完成。这种批量化处理作业的操作系统称为批处理操作系统。
①单道批处理系统
特征:
- 自动性
- 顺序性
- 单道性
不足:
- 无法充分利用系统中的所有资源(这是因为在内存中仅有一道程序,每逢该程序在运行中发出I/O请求后,CPU便处于等待状态,必须在其I/O完成后才能继续运行)
②多道批处理系统
特征:
- 调度性
- 无序性
- 多道性
优点:
- 资源利用率高
- 系统吞吐量大
缺点:
- 平均周转时间长
- 无交互能力
(5)分时系统
分时操作系统(Time Sharing Operating System)指多个联机用户以时间片轮转方式共享一台计算机系统资源进行计算的操作系统。
RT( Response Time,响应时间,指用户命令进入然后回车到终端后应答的时间)≈ 时间片 × 用户数
特征:
- 多路性
- 独立性
- 及时性
- 交互性
(6)实时系统
实时操作系统(Real Time Operating System)指当外界事件或数据产生时,能接收并以足够快的速度予以处理,处理的结果又能在规定时间内来控制监控的生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。
- 实时采集现场数据
- 对数据进行及时处理
- 自动的控制相应的执行机构
实时系统的类型:
- 工业(武器)控制系统
- 信息查询系统
- 多媒体系统
- 嵌入式系统
实时任务的类型:
-
(1)
- 周期性实时任务
- 非周期性实时任务
- 开始截止时间(指某任务在某时间以前必须开始执行)
- 完成截止时间(指某任务在某时间以前必须完成)
-
(2)
- 硬实时任务(Hard Real-time Task,HRT,是指系统必须满足任务对截止时间的要求,否则可能出现难以预测的后果,用于工业和武器控制的实时系统通常执行的是硬实时任务)
- 软实时任务(Soft Real-time,SRT,错过了截止时间对系统产生的影响不会太大,诸如信息查询系统和多媒体系统中的实时系统通常是软实时系统)
4.操作系统的基本特性
OS是一个并发系统,其主要特性:
- 并发
- 共享
- 虚拟(汤小丹版本)
- 异步
1.并发
进程:在系统中能独立运行并作为资源分配的基本单位。
2.共享
3.虚拟(汤小丹版本)
4.异步
进程是以人们不可预知的速度向前推进的,此即进程的异步性。
5.操作系统的主要功能
五大功能:
- 处理机管理
- 存储器管理
- 设备管理
- 文件管理
- 联网与通信管理
(1)处理机管理
①进程控制
主要功能:为作业创建进程、撤销(终止)已结束的进程,以及控制进程在运行过程中的状态转换。
②进程同步
常用的协调方式:
- 进程互斥方式
- 进程同步方式
③进程通信
当互相合作的进程处于同一计算机系统时,通常在它们之间采用直接通信方式,即由源进程利用发送命令直接将信息(message)挂到目标进程的消息队列上。
④调度
在传统OS中,调度包括:
- 作业调度
- 进程调度
(2)存储器管理
主要任务:
为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存。为此,存储器管理应具有内存分配和回收、内存保护、地址映射和内存扩充等功能。
①内存分配
主要任务:
- 为每道程序分配内存空间,使它们“各得其所”
- 提高存储器的利用率,尽量减少不可用的内存空间(碎片)
- 允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要
OS在实现内存分配时,可采用静态和动态两种方式。
②内存保护
主要任务:
- 确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰
- 绝不允许该用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其他用户程序中去执行
一种简单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。
③地址映射
为保证程序的正确运行,存储器管理必须提供地址映射功能,即能够将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能应在硬件的支持下完成。
④内存扩充
内存扩充并非是物理上去扩大内存的容量,而是借助于虚拟存储技术,从逻辑上扩充内存容量。
为了能在逻辑上扩充内存,系统必须设置内存扩充机制(包含少量的硬件),用于实现下述功能:
- 请求调入功能
- 置换功能
(3)设备管理
主要任务:
- 完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作
- 提高CPU和I/O设备的利用率,提高I/O设备的利用率,提高I/O速度,方便用户使用I/O设备
①缓冲管理
如果在I/O设备和CPU之间引入缓冲,则可有效地缓和CPU和I/O设备速度不匹配的矛盾,提高CPU的利用率,进而提高系统吞吐量。
②设备分配
设备分配的基本任务是根据用户进程的I/O请求、系统现有资源情况以及按照某种设备分配策略,为之分配其所需的设备。
③设备处理
设备处理程序又称为设备驱动程序。其基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。
(4)文件管理
主要任务:
对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。为此,文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理以及文件的共享与保护等功能。
①文件存储空间的管理
在多用户环境下,若由用户自己对文件的存储进行管理,不仅非常困难,而且也必然十分低效。因而需要由文件系统对诸多文件及文件的存储空间实施统一的管理。
其主要任务:
为每个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的存、取速度。
②目录管理
主要任务: 为每个文件建立一个目录项,==目录项包括文件名、文件属性、文件在磁盘上的物理位置等==,并对众多的目录项加以有效的组织,以实现方便的按名存取。
③文件的读/写管理和保护
-
文件的读/写管理。该功能是根据用户的请求,从外存中读取数据,或将数据写入外存。在进行文件读/写时,系统先根据用户给出的文件名去检索文件目录,从中获得文件在外存中的位置。然后,利用文件读/写指针,对文件进行读/写。一旦读/写完成,便修改读/写指针,为下一次读/写做好准备。由于读和写操作不会同时进行,故可合用一个读/写指针。
-
文件保护。为了防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能,以实现下述目标:①防止未经核准的用户存取文件;②防止冒名顶替存取文件;③防止以不正确的方式使用文件。
(5)联网与通信管理
操作系统至少应具有以下与网络相关内容:
- 网络资源管理
- 数据通信管理
- 应用服务
- 网络管理
6.程序接口与系统调用
(1)系统调用定义
操作系统提供给用户程序调用系统服务(硬件设备)的一组“特殊”接口
(2)系统调用分类{==WARN:与操作系统的主要功能分开==}
- 进程管理
- 文件管理
- 设备管理
- 存储管理
- 进程通信
- 信息维护
7.操作系统构件
- 内核
- 进程
- 线程
- 管程
8.OS结构设计
我们把早期的无结构的OS(第一代)、模块化结构的OS(第二代)和分层式结构的OS(第三代),都统称为传统结构的OS,而把微内核结构的OS称为现代结构的OS。
Ⅰ.传统操作系统结构
(1)无结构操作系统
在早期开发操作系统时,设计者只是把他的注意力放在功能的实现和获得高的效率上,缺乏首尾一致的设计思想。此时的OS是为数众多的一组过程的集合,每个过程可以任意地相互调用其它过程,致使操作系统内部既复杂又混乱,因此,这种OS是无结构的,也有人把它称为整体系统结构。随着系统的不断扩大,所设计出的操作系统就会变得既庞大又杂乱。这一方面会使所编制出的程序错误很多,给调试工作带来很多困难:另一方面也使程序难以阅读和理解,增加了维护人员的负担。
(2)模块化OS
①衡量模块的独立性有以下两个标准
- 内聚性,指模块内部各部分间联系的紧密程度。内聚性越高,模块独立性越强。
- 耦合度,指模块间相互联系和相互影响的程度。显然,耦合度越低,模块独立性越好。
②利用模块-接口法开发的OS,较之无结构OS具有以下明显的优点
- 提高OS设计的正确性、可理解性和可维护性。
- 增强OS的可适应性。
- 加速OS的开发过程。
③模块化结构设计仍存在下述问题
- 在OS设计时,对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求。
- 在OS设计阶段,设计者必须做出一系列的决定(决策),每一个决定必须建立在上一个决定的基础上,但模块化结构设计中,各模块的设计齐头并进,无法寻找一个可靠的决定顺序,造成各种决定的“无序性”,这将使程序人员很难做到“设计中的每一步决定”都是建立在可靠的基础上,因此模块-接口法又被称为“无序模块法”。
(3)分层式结构OS
为了将模块-接口法中“决定顺序”的无序性变为有序性,引入了有序分层法。
①分层结构的主要优点
- 易保证系统的正确性。自下而上的设计方式使所有设计中的决定都是有序的,或者说是建立在较为可靠的基础上的,这样比较容易保证整个系统的正确性。
- 易扩充和易维护性。在系统中增加、修改或替换一个层次中的模块或整个层次时,只要不改变相应层次间的接口,就不会影响其他层次,这必将使系统维护和扩充变得更加容易。
②分层结构的主要缺点
系统效率降低。由于层次结构是分层单向依赖的,必须在每层之间都建立层次间的通信机制,OS每执行一个功能,通常要自上而下地穿越多个层次,这无疑会增加系统的通信开销,从而导致系统效率的降低。
Ⅱ.客户/服务器模式(Client/Server Model)
①主要由三部分组成
- 客户机
- 服务器
- 网络系统(是用于连接所有客户机和服务器,实现它们之间通信和网络资源共享的系统)
②C/S模式的优点
- 数据的分布处理和存储
- 便于集中管理
- 灵活性和可扩充性
- 易于改编应用软件
基本客户/服务器模式的不足之处是存在着不可靠性和瓶颈问题。在系统仅有一个服务器时,一旦服务器故障,将导致整个网络瘫痪。当服务器在重负荷下工作时,会因忙不过来而显著地延长对用户请求的响应时间。如果在网络中配置多个服务器,并采取相应的安全措施,则这种不足可加以改善。
Ⅲ.面向对象的程序设计
优点:
- 通过“重用”提高产品质量和生产率
- 使系统具有更好的易修改性和易扩展性
- 更易于保证系统的“正确性”和“可靠性”
Ⅳ.微内核OS结构
微内核(MicroKernel)操作系统结构是20世纪80年代后期发展起来的。由于它能有效地支持多处理机运行,故非常适用于分布式系统环境。
为了提高操作系统的“正确性”、“灵活性”、“易维护性”和“可扩充性”,在进行现代操作系统结构设计时,即使在单计算机环境下,大多也采用基于客户/服务器模式的微内核结构,将操作系统划分为两大部分:微内核和多个服务器。
微内核OS特征
-
①足够小的内核
-
②基于客户/服务器模式
-
③应用“机制与策略分离”原理
-
④采用面向对象技术