1、1计算机操作系统原理课程参考书1. 张 张尧学,史美林,计算机操作系统教程,清华大学出版社,1993 年 9 月2. Stallings98William Stallings, Operating Systems(3rd edition), 清华大学出版社, 1998 年 6月 3. 屠 屠立德,屠祁,操作系统基础(第二版),清华大学出版社,1995 年 9 月4. solomon David A. Solomon, Windows NT 技术内幕,清华大学出版社,1999 年 7 月,5. Vahalia Uresh Vahalia, UNIX 高级教程系统技术内幕,清华大学出版社, 199
2、9 年 5 月;课程要求作业:10%上机实验:10%考试:70%课程报告:10%第一章 绪论1.1 什么是操作系统1.1.1 操作系统的地位和目标操作系统 operating system(OS)图 1.1 计算机系统的组成操作系统在计算机系统中的地位操作系统的地位:紧贴系统硬件之上,所有其他软件之下(是其他软件的共同环境)引入操作系统的目标: 有效性(系统管理人员的观点):管理和分配硬件、软件资源,合理地组织计算机的工作流程 方便性(用户的观点):提供良好的、一致的用户接口,弥补硬件系统的类型和数量差别 可扩充性(开放的观点):硬件的类型和规模、操作系统本身的功能和管理策略、多个系统之间的资
3、源共享和互操作1.1.2 操作系统的作用和组成操作系统的作用:几种观点(1) OS 是计算机硬件、软件资源的管理者。管理对象包括:CPU、存储器、外部设备、信息(数据和软件);管理的内容:资源的当前状态(数量和使用情况)、资源的分配、回收和访问操作,相应管理策略(包括用户权限)。(2) OS 是用户使用系统硬件、软件的接口。通常包括两种方式:计算机系统(层次结构)软件硬件及固件(裸机)应用软件系统软件编辑软件,编译软件操作系统2系统命令(命令行、菜单式、命令脚本式、图形用户接口 GUI);系统调用(形式上类似于过程调用,在应用编程中使用)。(3) OS 是扩展机(extended machin
4、e)/虚拟机(virtual machine) 。在裸机上添加:设备管理、文件管理、存储管理(针对内存和外存)、处理机管理(针对 CPU);另外,为合理组织工作流程:作业管理、进程管理。操作系统的组成(1) 管理模块:针对不同管理对象的程序模块(通常称为操作系统核心)(2) 用户接口:如外壳(shell)、窗口系统 在 shell 中,通过运行其他程序来完成各种功能操作系统的非形式化定义(关键点):系统软件,程序模块的集合,资源管理和用户接口功能1.1.3 操作系统举例仅仅是列举,不作详述 MS OS: MS DOS, MS Windows 3.x, Windows 95, Windows N
5、T UNIX: BSD, SRV4, OSF1, Solaris, Linux Novell Netware1.2 操作系统的发展历史操作系统发展过程中主要讨论操作系统的外部特征。1.2.1 推动操作系统发展的主要动力“需求推动发展”(1) 提高资源的利用率和系统性能:计算机发展的初期,计算机系统昂贵,用作集中计算(2) 方便用户:用户上机、调试程序,分散计算时的事务处理和非专业用户(商业和办公、家庭)(3) 器件的发展:CPU 的位宽度(指令和数据)、快速外存1.2.2 手工操作1946 50 年代(电子管),集中计算(计算中心),计算机资源昂贵;工作方式 用户:用户既是程序员,又是操作员;
6、用户是计算机专业人员; 编程语言:为机器语言; 输入输出:纸带或卡片;计算机的工作特点1) 用户独占全机:不出现资源被其他用户占用,资源利用率低;2) CPU 等待用户:计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片;CPU 利用率低;主要矛盾1) 计算机处理能力的提高,手工操作的低效率(造成浪费);2) 用户独占全机的所有资源;提高效率的途径专门的操作员,批处理31.2.3 单道批处理系统(simple batch processing)50 年代末 60 年代中(晶体管):利用磁带把若干个作业分类编成作业执行序列,每个批作业由一个专门的监督程序(Monitor)自动依次处理。可
7、使用汇编语言开发。批处理中的作业的组成:包括用户程序、数据和作业说明书(作业控制语言)“批”:供一次加载的磁带或磁盘,通常由若干个作业组装成,在处理中使用一组相同的系统软件(系统带)两种批处理方式(1) 联机批处理 慢速的输入输出处理仍直接由主机来完成; 用户提交作业:以纸带或卡片为介质; 操作员合成批作业:结果为磁带介质; 批作业处理:对批作业中的每个作业进行相同的处理:从磁带读入用户作业和编译链接程序,编译链接用户作业,生成可执行程序;启动执行;执行结果输出。这时的问题:输入输出时,CPU 处于等待状态。(2) 脱机批处理(缓冲技术的一种)利用卫星机完成输入输出功能。主机与卫星机可并行工作
8、。卫星机:完成面向用户的输入输出(纸带或卡片),中间结果暂存在磁带或磁盘上。作业控制命令由监督程序(monitor)来执行,完成如装入程序、编译、运行等操作 优点:同一批内各作业的自动依次更替,改善了主机 CPU 和 I/O 设备的使用效率,提高了吞吐量 缺点:磁带或磁盘需要人工装卸,作业需要人工分类,监督程序易遭到用户程序的破坏(由人工干预才可恢复)通道和中断技术的出现60 年代初,发展了通道技术和中断技术,这些技术的出现使监督程序在负责作业运行的同时提供 I/O 控制功能。 通道用于控制 I/O 设备与内存间的数据传输。启动后可独立于 CPU 运行,实现 CPU 与I/O 的并行。 通道:
9、专用的 I/O 处理器,可与 CPU 并行工作使 I/O 联机处理 中断是指 CPU 在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。 中断:中断请求,中断响应,中断点(暂停当前任务并保存现场),中断处理例程,中断返回(恢复中断点的现场并继续原有任务)处理算术溢出和非法操作码,死循环(利用时钟中断进行超时限定)监督程序发展为执行系统(executive system),常驻内存单道批处理的主要问题CPU 和 I/O 设备使用忙闲不均(取决于当前作业的特性)。对计算为主的作业,外设空闲;对 I/O 为主的作业,CPU 空闲;1.2.4 多道批处理系统(mult
10、iprogramming system)60 年代中 70 年代中(集成电路),利用多道批处理提高资源的利用率。4多道批处理的运行特点: 多道:内存中同时存放几个作业; 宏观上并行运行:都处于运行状态,但都未运行完; 微观上串行运行:各作业交替使用 CPU;在当前运行的作业需作 I/O 处理时,CPU 转而执行另一个作业。(I/O 完成后是否立刻恢复执行?要等到其他程序再次 I/O 时)多道批处理系统的特征 优点:资源利用率高:CPU 和内存利用率较高;作业吞吐量大:单位时间内完成的工作总量大; 缺点:用户交互性差:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;作业平均周转时间长
11、:短作业的周转时间显著增长;批处理:交互性差提高对 CPU 利用率;分时处理:用户与应用程序随时交互,控制程序运行,适于商业和办公事务处理缩短响应时间1.2.5 分时系统(time-sharing system)70 年代中期至今“分时”的含义分时是指多个用户分享使用同一台计算机。多个程序分时共享硬件和软件资源(注意区分:硬件各部分的分时,如 CPU 和 DMA 使用总线和内存)。(1) 多个用户分时:单个用户使用计算机的效率低,因而允许多个应用程序同时在内存中,分别服务于不同的用户。有用户输入时由 CPU 执行,处理完一次用户输入后程序暂停,等待下一次用户输入时走时停(2) 前台和后台程序(
12、foreground & background) 分时:后台程序不占用终端输入输出,不与用户交互现在的图形用户界面(GUI),除当前交互的程序(输入焦点)之外,其他程序均作为后台通常按时间片(time slice)分配:各个程序在 CPU 上执行的轮换时间抢先式和非抢先式(preemptive & non-preemptive):出让 CPU 是 OS 强迫或程序主动 抢先式:OS 强近出让 CPU; 非抢先式:程序主动出让 CPU;分时系统的特点(1) 人机交互性好。在调试和运行程序时由用户自己操作。(2) 共享主机:多个用户同时使用。(3) 用户独立性:对每个用户而言好象独占主机。现在的许
13、多操作系统都具有分时处理的功能,在分时系统的基础上,操作系统的发展开始分化,如实时系统、通用系统、个人系统等。1.2.6 实时系统(real-time system)用于工业过程控制、军事实时控制、金融等领域,包括实时控制、实时信息处理要求:响应时间短,在一定范围之内;系统可靠性高任务的类型: 周期性实时任务:5 非周期性实时任务:截止时间(deadline),开始截止时间(最晚开始时间)和完成截止时间(最晚完成时间)硬实时任务和软实时任务(hard and soft real-time task)目前的操作系统,通常具有分时、实时和批处理功能,又称作通用操作系统。可适用于计算、事务处理等多种
14、领域,能运行在多种硬件平台上,如 UNIX 系统、Windows NT 等。通用化、小型化1.3 操作系统的分类操作系统分类主要讨论操作系统的内部特征。1.3.1 批处理操作系统(Batch Processing Operation System)作业的处理流程: 作业提交:作业的输入; 作业执行 作业完成:作业的输出;单道(uniprogramming)和多道批处理的比较:单道 多道内存使用 每次一个作业 每次多个作业(充分利用内存)作业次序 顺序,先进先出 无确定次序多道程序系统和多处理系统(multiprocessing system)的区别:前者指多个程序同时在内存中交替运行,后者指多
15、个处理器。批处理的主要特征:(1) 用户脱机使用计算机:作业提交后直到获得结果之前,用户无法与作业交互。(2) 作业成批处理:(3) 多道程序并行:充分利用系统资源。多道批处理系统的资源利用效率特征是基于各作业对系统资源的需求差异得到的。例如:有 3 个作业 A、B、C ,分别为计算、检索和打印作业,单道运行时间分别为 5 分、15 分和10 分钟。它们可并行在 15 分钟内完成 3 个作业。各资源的利用效率为:CPU 打印机 磁带单道 17% 33% 50%多道 33% 66% 100%多道批处理系统上的技术(1) 作业调度:作业的现场保存和恢复上下文切换(2) 资源共享:资源的竞争和同步互
16、斥(exclusion)和同步(synchronization)机制(3) 内存使用:提高内存使用效率(为当前由 CPU 执行的程序提供足够的内存)覆盖(overlay),交换(swap)和虚拟存储(virtual memory)(4) 内存保护:系统存储区和各应用程序存储区不可冲突存储保护(5) 文件非顺序存放、随机存取出现:作业管理、处理机管理、存储管理、外设管理、文件系统管理(file system)1.3.2 分时操作系统(Time Sharing Operating System)6分时的定义把计算机的系统资源(尤其是 CPU 时间)进行时间上的分割,每个时间段称为一个时间片,每个用
17、户依次轮流使用时间片。分时系统的特征: 多路性:多个用户同时工作,共享系统资源,提高了资源利用率。节省维护开支,可靠性高:笨终端至今仍在使用。促进了计算机的普遍应用,提高资源利用率:远地用户通过终端(较便宜)联机使用。 独立性:各用户独立操作,互不干扰。 交互性:系统能及时对用户的操作进行响应,显著提高调试和修改程序的效率:缩短了周转时间。联机(on-line) 或称为“在线”:用户输入输出,跟本地远地系统连接,是同时进行的。与脱机(off-line)或“离线”相对应。分时系统的分类(1) 单道分时:调入-调出(Roll-in/Roll-out),I/O 开销太大(2) 前台后台分时:后台存放
18、批处理作业,内存的划分是固定的,不灵活(3) 多道分时:需要解决加载程序时地址空间重定位的问题(静-动)关键问题:(1) 及时接受输入多个 I/O 端口,设立多路缓冲区(2) 及时响应提高对换速度(快速外存)、限制用户数目、缩短时间片(可能引起对换次数增多,开销增大,程序总运行时间增大)(3) 减少对换信息量可重入代码(re-entrant code);请求页式存储管理只对换部分程序 递归(recursion)是自己对自己的重入1.3.3 实时操作系统(Real Time Operating System)实时操作系统主要用于过程控制、事务处理等有实时要求的领域,其主要特征是实时性和可靠性。实
19、时系统的特征(1) 实时时钟管理:提供系统日期和时间、定时和延时等时钟管理功能;(2) 过载保护:缓冲区排队,丢弃某些任务,动态调整任务周期;过载是指进入系统的任务数目超出系统的处理能力。(3) 高度可靠性和安全性容错能力(如故障自动复位)和冗余备份(双机,关键部件);实时系统与批处理系统和分时系统的区别1) 专用系统:许多实时系统是专用系统,而批处理与分时系统通常是通用系统。2) 实时控制:实时系统用于控制实时过程,要求对外部事件的迅速响应,具有较强的中断处理机构。3) 高可靠性:实时系统用于控制重要过程,要求高度可靠,具有较高冗余。如双机系统。4) 事件驱动和队列驱动:实时系统的工作方式:
20、接受外部消息,分析消息,调用相应处理程序进行处理。5) 可与通用系统结合成通用实时系统:实时处理前台作业,批处理为后台作业。1.3.4 多处理操作系统(Multi-processor Operating System)7多处理操作系统的出现是为了提高计算机系统性能和可靠性。提高性能有两条途径:提高各个组成部分的速度、增大处理的并行程度。75 年前后,出现多处理机系统(multi-processor)。多处理机系统的优点:(1) 增加系统的吞吐量:N 个处理器加速比达不到 N 倍(额外的调度开销,算法的并行化)(2) 提高系统可靠性:故障时系统降级运行多处理机系统的类型:(1) 紧密耦合(tig
21、htly-coupled):各处理机之间通过快速总线或开关阵列相连,共享内存,整体系统由一个统一的 OS 管理(一个 OS 核心)。(2) 松散耦合(loosely-coupled):各处理机带有各自的存储器、I/O 设备和操作系统,通过通道或通信线路相连。每个处理机上独立运行 OS。多处理操作系统的类型要运行 OS 本身、I/O 处理(如中断响应)、应用程序(1) 非对称式多重处理(Asymmetric Multiprocessing, ASMP):又称主从模式(Master-slave mode)。主处理器:只有一个,运行 OS。管理整个系统的资源,为从处理器分配任务;从处理器:可有多个,
22、执行应用程序或 I/O 处理。特点:不同性质任务的负载不均,可靠性不够高,不易移植(通常要求硬件也是“非对称”)。(2) 对称式多重处理(Symmetric Multiprocessing, SMP):OS 交替在各个处理器上执行。任务负载较为平均,性能调节容易“傻瓜式”1.3.5 网络操作系统(NOS, Network Operating System)网络操作系统是在通常操作系统功能的基础上提供网络通信和网络服务功能的操作系统。网络操作系统为网上计算机进行方便而有效的网络资源共享,提供网络用户所需各种服务的软件和相关规程的集合。网络功能与操作系统的结合程度是网络操作系统的重要性能指标。早期
23、的作法是通常操作系统附加网络软件,过渡到网络功能成为操作系统的有机组成部分。它们的区别在于:网络功能的强弱、使用是否方便等。计算机网络一些自主的计算机系统,通过通信设施相互连接,完成信息交换、资源共享、互操作和协同工作等功能。引入计算机网络的目的:完成新的应用(进行自动的信息交换),提高性能价格比(共享昂贵资源)计算机网络的分类(1) 按网络拓扑(传输媒体和网络设备所连接的几何形状):星形、环形、总线形、不规则形等;(2) 按地理范围:局域网(LAN, Local Area Network)、城域网(MAN, Metropolitan Area Network)、广域网(WAN, Wide A
24、rea Network);(3) 按网络标准内在特性,决定其性能(如效率随负载的变化、实时性、优先级)Ethernet, Token Ring, FDDI, X.25, ATM网络操作系统的功能1) 通常操作系统的功能:处理机管理、存储器管理、设备管理、文件管理等;82) 网络通信功能:通过网络协议进行高效、可靠的数据传输;3) 资源管理:协调各用户使用;4) 网络服务:文件和设备共享,信息发布;5) 网络管理:安全管理、故障管理、性能管理等;6) 互操作:直接控制对方比交换数据更为困难;1.3.6 分布式操作系统(Distributed Operating System)分布式系统:处理和控
25、制的分散(相对于集中式系统)分布式系统是以计算机网络为基础的,它的基本特征是处理上的分布,即功能和任务的分布。分布式操作系统的所有系统任务可在系统中任何处理机上运行,自动实现全系统范围内的任务分配并自动调度各处理机的工作负载。分布式操作系统与网络操作系统的比较:(1) 耦合程度: 分布式系统是紧密耦合系统:分布式 OS 是在各机上统一建立的“OS 同质”,直接管理 CPU、存储器和外设;统一进行全系统的管理; 网络通常容许异种 OS 互连,各机上各种服务程序需按不同网络协议“协议同质”。(2) 并行性: 分布式 OS 可以将一个进程分散在各机上并行执行“进程迁移”; 网络则各机上的进程独立。(
26、3) 透明性:用户是否知道或指定资源在哪个机器上(如 CPU、内存或外设)。 分布式系统的网络资源调度对用户透明,用户不了解所占有资源的位置; 网络操作系统中对网络资源的使用要由用户明确指定;(4) 健壮性:分布式系统要求更强的容错能力(工作时系统重构)1.3.7 个人计算机操作系统(Personal Computer Operating System)针对单用户使用的个人计算机进行优化的操作系统。个人计算机操作系统的特征 应用领域:事务处理、个人娱乐, 系统要求:使用方便、支持多种硬件和外部设备(多媒体设备、网络、远程通信)、效率不必很高。常用的个人计算机操作系统 单用户单任务:MS DOS
27、 单用户多任务:OS/2, MS Windows 3.x, Windows 95, Windows NT 多用户多任务:UNIX(SCO UNIX, Solaris x86, Linux, FreeBSD)1.4 操作系统的特征和服务1.4.1 操作系统的特征并发(concurrency)多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。并行(parallel)是指在同一时刻发生。 在多道程序处理时,宏观上并发,微观上交替执行(在单处理器情况下)。 程序的静态实体是可执行文件,而动态实体是进程(或称作任务),并发指的是进程
28、。9共享(sharing)多个进程共享有限的计算机系统资源。操作系统要对系统资源进行合理分配和使用。资源在一个时间段内交替被多个进程所用。 互斥共享(如音频设备):资源分配后到释放前,不能被其他进程所用。 同时访问(如可重入代码,磁盘文件) 资源分配难以达到最优化虚拟(virtual)一个物理实体映射为若干个对应的逻辑实体分时或分空间。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。 CPU每个用户(进程)的“虚处理机” 存储器每个进程都占有的地址空间(指令数据堆栈) 显示设备多窗口或虚拟终端(virtual terminal)异步性(asynchronism)也称不确定性,指进程的执
29、行顺序和执行时间的不确定性; 进程的运行速度不可预知:分时系统中,多个进程并发执行,“时走时停”,不可预知每个进程的运行推进快慢 判据:无论快慢,应该结果相同通过进程互斥和同步手段来保证 难以重现系统在某个时刻的状态(包括重现运行中的错误) 性能保证:实时系统与分时系统相似,但通过资源预留以保证性能1.4.2 操作系统的服务(1) 服务类型 程序执行和终止(包括分配和回收资源) I/O 操作 文件系统操作 通信:本机内,计算机之间(通常通信服务的使用者为进程,而不是笼统说“主机”) 配置管理:硬件、OS 本身、其他软件 差错检测(2) 服务提供方式:系统命令和系统调用 参见 1.1.2(2)1
30、.5 操作系统的功能1.5.1 处理机管理完成处理机资源的分配调度等功能。(1) 进程控制:创建、撤销、挂起、改变运行优先级等主动改变进程的状态(2) 进程同步:协调并发进程之间的推进步骤,以协调资源共享;交换信息能力弱(3) 进程通信:进程之间传送数据,以协调进程间的协作;交换信息能力强,也可以用来协调进程之间的推进(4) 调度:作业和进程的运行切换,以充分利用处理机资源和提高系统性能;未必是进程控制操作所引起(可能是时间片轮转、I/O 操作) 同一类型内的公平性、高效率(吞吐量大)、作业周转时间等1.5.2 存储管理管理目标:提高利用率、方便用户使用、提供足够的存储空间、方便进程并发运行。
31、(1) 存储分配与回收:不说是内存10(2) 存储保护:保证进程间互不干扰、相互保密;如:访问合法性检查、甚至要防止从“垃圾”中窃取其他进程的信息;(3) 地址映射(变换):进程逻辑地址到内存物理地址的映射;(4) 内存扩充(覆盖、交换和虚拟存储):提高内存利用率、扩大进程的内存空间;1.5.3 设备管理设备管理的目标是:方便的设备使用、提高 CPU 与 I/O 设备利用率;(1) 设备操作:利用设备驱动程序(通常在内核中)完成对设备的操作。还需处理外设的IRQ。(2) 设备独立性(device independence) :提供统一的 I/O 设备接口,使应用程序独立于物理设备,提高可适应性
32、;在同样的接口和操作下完成不同的内容(如 FAX Modem 作为Windows 上的打印机设备)。(3) 设备分配与回收:在多用户间共享 I/O 设备资源。虚拟设备(virtual device):设备由多个进程共享,每个进程如同独占。(4) 缓冲区管理:匹配 CPU 和外设的速度,提高两者的利用率(单缓冲区、双缓冲区和公用缓冲区)1.5.4 信息管理解决软件资源的存储、共享、保密和保护。(1) 文件存储空间管理:解决如何存放信息,以提高空间利用率和读写性能。(2) 目录管理:解决信息检索问题。文件的属性(如文件名)、单一副本赋予多文件名(3) 文件的读写管理和存取控制:解决信息安全问题。系
33、统设口令“哪个用户”、用户分类“哪个用户组”、文件权限“针对用户或用户组的读写权”(4) 软件管理:软件的版本、相互依赖关系、安装和拆除等1.5.5 用户接口目标:提供一个友好的用户访问操作系统的接口。操作系统向上提供两种接口:(1) 系统命令:供用户用于组织和控制自己的作业运行。命令行、菜单式或 GUI“联机”;命令脚本“脱机”(2) 编程接口:供用户程序和系统程序调用操作系统功能。系统调用和高级语言库函数;1.6 操作系统的结构随着操作系统的发展,功能越强,OS 自身代码量越大采用良好的结构:有利于保证正确性以及自身修改和扩充。操作系统的设计原则1) 可维护性容易修改与否称为可维护性;有三
34、种可能的维护: 改错性维护:改正已发现的错误; 适应性维护:修改软件,使之适应新的运行环境(硬件环境和软件环境);如:操作系统的移植。 完善性维护:增加新功能;2) 可靠性可靠性包括两方面: 正确性:正确实现所要求的功能和性能; 稳健性:对意外(故障和误操作)作出适当的处理;3) 可理解性易于理解,以方便测试、维护和交流;114) 性能有效地使用系统资源;尽可能快地响应用户请求;1.6.1 整体或模块结构 monolithic system or modular system整个系统按功能进行设计和模块划分。系统是一个单一的、庞大的的软件系统。这种结构思想来源于服务功能观点,而不是资源管理的观
35、点。模块结构的特点模块由众多服务过程(模块接口)组成,可以随意调用其他模块中的服务过程如 UNIX系统(注意:OSF/1 不是) 优点:具有一定灵活性,在运行中的高效率 缺点:功能划分和模块接口难保正确和合理;模块之间的依赖关系(功能调用关系)复杂(调用深度和方向),降低了模块之间的相对独立性不利于修改1.6.2 分层结构或虚拟机 layered system or virtual machine从资源管理观点出发,划分层次。在某一层次上代码只能调用低层次上的代码,使模块间的调用变为有序性。系统每加一层,就构成一个比原来功能更强的虚拟机。有利于系统的维护性和可靠性。分层结构的特点优点: 功能明
36、确,调用关系清晰(高层对低层单向依赖),有利于保证设计和实现的正确性 低层和高层可分别实现(便于扩充);高层错误不会影响到低层;避免递归调用缺点:降低了运行效率各系统对具体划分多少层次有不同的看法。分层原则 被调用功能在低层:如文件系统管理设备管理设备驱动程序 活跃功能在低层:提高运行效率 资源管理的公用模块放在最低层:如缓冲区队列、堆栈操作 存储器管理放在次低层:便于利用虚拟存储功能 最低层的硬件抽象层:与机器特点紧密相关的软件放在最低层。如 Windows NT 中的 HAL单处理、多处理 资源分配策略和外壳放在最外层,便于修改或适应不同环境调用跨越的层次:相邻层(最严格)、所有下层、部分
37、下层1.6.3 客户/服务器模型或微内核结构 client-server model or microkernel把操作系统分成若干分别完成一组特定功能的服务进程,等待客户提出请求;而系统内核只实现操作系统的基本功能(如:虚拟存储、消息传递)。微内核(micro-kernel):将更多操作系统功能放在核心之外,作为独立的服务进程运行;服务进程(或称作“保护子系统”)和客户进程(系统客户和应用客户)需支持多进程本地过程调用 (LPC, Local Procedure Call):一种进程之间请求 -应答式的消息(Message)传递机制普通过程调用:执行点的直接转移(到子程序中)。消息:是一定格
38、式的数据结构。发起调用,送出请求消息请求消息到达并进行处理送出回答消息整理回答消息,返回结果 如:对文件 create, read, write12微内核模式的特点优点: 良好的扩充性:只需添加支持新功能的服务进程即可 可靠性好:调用关系明确,执行转移不易混乱 便于网络服务,实现分布式处理:以同样的调用形式,在下层可通过核心中的网络传送到远方服务器上 (远地过程调用 RPC, Remote Procedure Call) RPC 的过程:RPC 应用程序RPC StubNetwork RPC Server进行本地调用 缺点: 消息传递比直接调用效率要低一些 (但可以通过提高硬件性能来补偿 )1
39、.7 常用的操作系统1.7.1 MS DOSIBM PC, CPU 8088/8086, BIOS单用户单任务,简单分层结构,16 位MS DOS 的历史1981 年:PC-DOS 1.1:IBM PC,只支持软盘的个人操作系统;1983 年:DOS2.0:PC XT,支持硬盘和目录的层次结构,并提供丰富的系统命令;1984 年:DOS3.0:PC AT (Intel 80286 CPU),它把 286 作为一个快速的 8086 使用;MS DOS 的结构DOS 可分为三个基本层次: BIOS(基 本 输 入 /输 出 系 统 )DOS核 心命 令 处 理 程 序基 本 输 入 输 出 系 统
40、核 心命 令 处 理 程 序图 1 DOS 结构 DOS BIOS:由一组与硬件相关的设备驱动程序组成,实现基本的输入/ 输出功能; DOS 核心:提供一套独立于硬件的系统功能:内存管理、文件管理、字符设备和输入/输出、实时时钟等; 命令处理程序:对用户命令进行分析和执行;MS DOS 的特点(1) 字符用户界面。作业管理:命令行,批处理程序(BAT 文件),菜单式。编程时通过中断调用(int 21h)来使用系统功能。不区分用户。(2) “准多任务”:通过内存驻留程序 TSR(Terminated and Stay Resident)来实现,通过时钟中断或键盘中断“热键 hotkey”来激活其
41、他任务。(3) 不支持虚拟存储,没有存储保护。采用段式分配(内存块),可直接访问的最大地址空间为 1MB。其余的内存只能通过作为扩展内存(XMS)或扩充内存(EMS) 来使用。 XMS 是段式分配,通过内存数据搬移来使用 XMS 区域 EMS 是页式分配,通过页面的映射来使用 EMS 区域 或者用支持保护方式的编程工具(如 djgpp)(4) 文件系统为 FAT(File Allocation Table)格式(磁盘卷,多级目录,文件名 8+3 个字符;分区容量最大为 2GB);有文件属性,没有区分用户的访问权限保护。(5) 分为字符设备和块设备。设备驱动程序在系统起动时加载。131.7.3
42、MS Windows 3.x, Windows 95, Windows NTCPU 80386单用户多任务(分时系统),16 位/16 和 32 位混合 /32 位Windows 的历史1990 年:Windows 3.0,16 位 OS,借见 Apple Macintosh 给出友好的用户界面;1993 年:Windows NT 3.1, 32 位 OS,支持 DOS 和 Windows 应用程序;Windows NT 系统结构安 全子 系 统登 录进 程 Win32客 户OS/2客 户 POSIX客 户OS/2子 系 统 Win32子 系 统 POSIX子 系 统硬 件 抽 象 层系 统
43、服 务 核 心 态用 户 态内 核NT执行体 对 象管 理 器 安 全 引 用监 视 器 虚 拟 内 存管 理 器进 程 和 线 程管 理 器 本 地 过 程调 用 功 能 高 速 缓 存 管 理 器文 件 系 统 驱 动 程 序硬 件 设 备 驱 动 程 序I/O管 理 器网 络 重 定 向图 2 Windows NT 体系结构MS Windows 3.x, Windows 95, Windows NT 的特点(1) 图形用户界面 GUI(和字符用户界面)。(2) MS Windows3.x 是非抢先式多任务,95 和 NT 是抢先式多任务和多线程。支持动态链接。NT 支持对称多处理。 非抢
44、先式多任务:任务主动出让 CPU,通过调用某些 API(如查询消息、I/O 操作) 抢先式多任务:由时钟中断去驱动 OS,对任务进行强制切换(3) 虚拟存储:段式(Win3x,无存储保护) 和段页式 (Win95/WinNT,有存储保护)。(4) 文件系统:前两个是 FAT, VFAT16, NT 是 NTFS(HPFS)。(5) 设备驱动程序:VxD(virtual driver)。(6) NT 适用于多种硬件平台。(7) 容错能力。(8) NT 的面向对象特性:NT 中用对象来表示所有资源。1.7.4 UNIX多用户多任务,16/32/64 位BSD, SVR4(模块式结构), OSF/1
45、 (微内核结构) 14UNIX 的历史1965 年:MIT 的 Multics,由于规模和进展而没有达到目标;1969 年:AT&T,PDP-11 上的 16 位操作系统;1974 年:UNIX 系统正式发表(第五版) ,在大学得到使用和好评;1980 年:University of California at Berkeley 为 VAX11 发表 BSD4.0;以后,UNIX 就以AT&T 和 Berkeley 为主分别开发,有多种变种;1989 年:UI (UNIX International)发表 UNIX system V Res4.0;使 BSD 和 System V 在用户界面上
46、统一;UNIX 系统:可运行 UNIX 应用软件的操作系统。UNIX 系统结构硬 件硬 件 层 硬 件 控 制字 符 设 备设 备 驱 动 程 序块 设 备缓 冲 区管 理文 件 子 系 统 系 统 调 用 接 口函 数 库内 核 层 用 户 程 序 进 程 通 信进 程 调 度存 储 管 理进 程控 制子 系 统图 3 传统的 UNIX 结构texta.out elfcof公 共例 程可 执 行格 式开 关 表 NFSFSs5fsRFSvnode/vfs接 口分 时 进 程实 时 进 程系 统 进 程调 度框 架网 络 驱 动 程 序终 端 驱 动 程 序 流磁 盘 驱 动 程 序磁 带 驱
47、 动 程 序 块 设 备开 关 表文 件 映 射匿 名 映 射设 备 映 射 虚 存框 架 图 4 现代 UNIX 结构UNIX 系统的特点(1) 字符用户界面和图形用户界面 GUI(X Window)。(2) 抢先式多任务,多线程。支持动态链接。支持对称式多处理。(3) 虚拟存储:段页式,有存储保护。(4) 文件系统:多级目录,文件卷可以在子目录下动态装卸。无文件属性,可有别名。(5) 采用设备文件的形式(读写,参数控制)。设备驱动程序修改后需要重新编译连接生成内核。(6) 支持多种硬件平台。(7) 易移植:主要代码用 C 语言写成;15(8) 变种很多,很难标准化。1.8 小结(1) 从
48、OS 各个侧面组成全面印象:有机联系避免“盲人摸象”(2) 操作系统的动态方面: 进程是操作系统内的活动实体,代表应用逻辑和用户控制(进程:独占 CPU,独占地址空间和 I/O 设备) 操作系统起动之后,用户登录,接受命令和操作 当然,OS 内核也在活动(内部不必是进程)(3) 本章内容 OS 地位、目的、作用和组成 OS 发展:主要动力 分类:批处理、分时、实时、(通用)、多处理、网络和分布式、PC 计算机体系结构:单机并行和分布 OS 的结构:模块层次Client-Server 操作系统代码的编写:汇编C 语言Java 语言 处理的对象(相应 I/O 设备):数值数据多媒体 可管理性和安全性:SNMP 特征和服务 OS 功能 OS 结构