1、计算机操作系统,教师:涂 丽 琴 QQ: 1401751967 ,操作系统课程要求,1、参考书:张尧学著,计算机操作系统教程(第二版),清华大学出版社;汤子瀛著,计算机操作系统,高等教育出版社 2、学习课时分配:上课(24)+上机(8)本书所需课时:上课(60)+上机(12) 3、功夫在平时!,本课程属于必修课;成绩 = 平时20+过程考核50+实验30;平时成绩:考勤过程考核:课堂表现、课外测试以及作业情况;扣分:旷课1次扣总分1分,缺1次作业扣总分1分。,课程考核,第一章 操作系统引论,1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的
2、主要功能 1.5 操作系统的结构设计,计算机系统的组成 计算机系统:包括硬件子系统和软件子系统 硬件:借助电、磁、光、机械等原理构成的各 种物理部件的有机组合,是系统工作的实体,包括: CPU,主存储器,I/O控制系统,外围设备 软件:各种程序和文件,用于指挥计算机系统 按指定的要求进行协同工作,包括:系统软件、支撑软件和应用软件 关键系统软件是:操作系统与语言处理程序,8,运算器,控制器,主存储器,输入设备,输出设备,辅助存储器,CPU,控制,数据,地址或指令,主机,图1-1 计算机的组成框图,外设存储器,什么是操作系统(OS)?,很难给出OS的准确定义?操作系统(OS)是一种运行在内核状态
3、的软件(这样说并不总是符合事实),是配置在计算机硬件上的第一层软件。OS的任务是为用户程序提供一个更好、更简单、更清晰的计算机模型,并有效地管理与计算机系统相关的所有设备,提高计算机系统的资源利用率和系统的吞吐量。,1.1 操作系统的目标和作用,1.1.1 操作系统的目标,目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。通常在计算机硬件上配置的OS,其目标有以下几点:1. 有效性 提高系统资源利用率和吞吐量。2. 方便性 配置OS后使计算机系统更易使用。3. 可扩充性 要求OS可适应硬件系统的快速发展。4. 开放性 要求OS有一个统一开放的网络环境,使来自不同厂家的计算机和设备能通
4、过网络加以集成化,并能正确、有效地协同工作,以实现应用的可移植性和互操作性。,1.1.2 操作系统的作用(从不同角度分析),1. 人机交互角度OS作为用户与计算机硬件系统之间的接口OS作为用户与计算机硬件系统之间接口的含义是:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。或者说,用户在OS帮助下,能够方便、快捷、安全、可靠地操纵计算机硬件和运行自己的程序。应注意,OS是一个系统软件,因而这种接口是软件接口。,图 1-1 OS作为接口的示意图,用户使用计算机的三种方式: 命令方式。这是指由OS提供了一组联机命令(语言), 用户可通过键盘输入有关命令,来直接操纵计算机系统。(2)
5、 系统调用方式。OS提供了一组系统调用,用户可在自己的应用程序中通过相应的系统调用,来操纵计算机。(3) 图形、窗口方式。用户通过屏幕上的窗口和图标来操纵计算机系统和运行自己的程序。,2.资源管理者角度 OS作为计算机系统资源的管理者计算机资源分为四类:处理器、存储器、 I/O设备以及信息(数据和程序)。OS的主要功能是针对上述四类资源进行有效的管理即: (1)处理机管理:用于分配和控制处理机; (2)存储器管理:主要负责内存的分配与回收; (3)I/O设备管理:负责I/O设备的分配与操纵; (4)文件管理:负责文件的存取、共享和保护。事实上,当今世界上广为流行的一个关于OS作用的观点,正是把
6、OS作为计算机系统的资源管理者。,3. 虚拟机的角度OS实现了对计算机资源的抽象扩充机器(虚机器):指覆盖了一层或多层系统软件的机器(通常指裸机)。,裸机,I/O设备管理软件,文件管理软件,窗口软件,丑陋接口,美丽接口,覆盖第一层软件虚拟机,覆盖第二层软件虚拟机(功能更强),覆 盖 第 三 层 软 件 虚 拟 机,功能最强,1.1.3 推动操作系统发展的主要动力,1. 不断提高计算机资源利用率 2. 方便用户 3. 器件的不断更新换代 4. 计算机体系结构的不断发展 5. 不断提出新的应用请求,1.2 操作系统的发展过程,1.2.1 无操作系统的计算机系统(第一代计算机电子管时代),1. 人工
7、操作方式人工操作方式有以下两方面的缺点:(1) 用户独占全机。 (2) CPU等待人工操作。,2. 脱机输入/输出(Off-Line I/O)方式,脱机I/O方式的主要优点如下: 减少了CPU的空闲时间。 (2) 提高I/O速度。,脱机I/O示意图,输入设备,输出设备,第一代电子管计算机,1.2.2 单道批处理系统 (第二代计算机晶体管时代),单道批处理系统的处理过程(实现对作业的连续处理)任一时刻内存中仅有一道作业,图 1-3 单道批处理系统的处理流程,监督程序的作用:使一批作业能一个一个的先后在计算机中进行处理。,2. 单道批处理系统的特征单道批处理系统是最早出现的一种OS,严格地说,它只
8、能算作是OS的前身而并非是现在人们所理解的OS。尽管如此,该系统比起人工操作方式的系统已有很大进步。 该系统的主要特征如下:(1) 自动性。 (2) 顺序性。 (3) 单道性。 3.单道批处理系统的缺点系统中的资源得不到充分利用,1.2.3 多道批处理系统(第三代计算机集成电路时代),1. 多道程序设计的基本概念在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差。为了进一步提高资源的利用率和系统吞吐量,在60年代中期又引入了多道程序设计技术,由此而形成了多道批处理系统。在该系统中, 用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由
9、作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。,在OS中引入多道程序设计技术可带来以下好处:(1)提高CPU的资源利用率。(2)可提高内存和I/O设备利用率。如果允许在内存中装入多道程序, 并允许它们并发执行,则无疑会大大提高内存和I/O设备的利用率。(3)增加系统吞吐量。在保持CPU、I/O设备不断忙碌的同时,也必然会大幅度地提高系统的吞吐量,从而降低作业加工所需的费用。,图 1-4 单道和多道程序运行情况,t2-t3、t6-t7CPU空闲,2. 多道批处理系统的优缺点,优点:(1)资源利用率高。(2) 系统吞吐量大,缺点: (1)平均周转时
10、间长。 (2)无交互能力,3. 多道批处理系统需要解决的问题,处理机管理问题。 (2) 内存管理问题。 (3) I/O设备管理问题。 (4) 文件管理问题。 (5) 作业管理问题。,1.2.4 分时系统,1. 分时系统(Time-Sharing System)的产生分时系统:指在一台计算机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式分时使用计算机,共享主机的资源的计算机系统。如果说, 推动多道批处理系统形成和发展的主要动力,是提高资源利用率和系统吞吐量,那么,推动分时系统形成和发展的主要动力,则是用户的需求。它与多道批处理系统之间,有着截然不同的性能差别。用户
11、的需求具体表现在以下几个方面:(1) 人机交互。 (2) 共享主机。 (3) 便于用户上机。,2. 分时系统实现中的关键问题,(1) 及时接收。,(2) 及时处理。,3. 分时系统的特征,多路性。 (2) 独立性。 (3) 及时性。 (4) 交互性。,1.2.5 实时系统,所谓“实时”,是表示“及时”,而实时系统(Real-Time System)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。,1. 实时系统的类型,(1)工业武器控制系统。 (2)实时信息查询系统。 (3) 多媒体系统 (4)嵌入式系统,2. 实时任务,1) 按
12、任务执行时是否呈现周期性来划分 周期性实时任务。 (2) 非周期性实时任务。,外部设备所发出的激励信号并无明显的周期性,但都必须联系着一个截止时间(Deadline)。它又可分为: 开始截止时间任务在某时间以前必须开始执行; 完成截止时间任务在某时间以前必须完成。,2) 根据对截止时间的要求来划分(1) 硬实时任务(hard real-time task)。系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。(2) 软实时任务(Soft real-time task)。它也联系着一个截止时间, 但并不严格,若偶尔错过了任务的截止时间, 对系统产生的影响也不会太大。,3. 实时系统与分
13、时系统特征的比较 多路性。 (2) 独立性。 (3) 及时性。 (4) 交互性。 (5) 可靠性。,1.3 操作系统的基本特性,1.3.1并发(Concurrence) 1.并行与并发,并行性:是指两个或多个事件在同一时刻发生。并发性:是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可同时执行
14、。,2. 引入进程在一个未引入进程的系统中,在属于同一个应用程序的计算程序和I/O程序之间只能是顺序执行,即:只有在计算程序执行告一段落后,才允许I/O操作执行;反之在程序执行I/O操作时,计算程序也不能执行。但在为计算程序和I/O程序分别建立一个进程后,这2个进程便可并发进行。进程:指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的实体。多个进程之间可以并发执行和交换信息。,1.3.2 共享(Sharing)在操作系统环境下,所谓共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。由于资源属性的不同,进程对资源共享的方式也不
15、同,目前主要有以下两种资源共享方式。,1. 互斥共享方式互斥式共享:指当一个进程A要访问某资源时,必须先提出请求, 如果此时该资源空闲,系统便可将之分配给请求进程A使用, 此后若再有其它进程也要访问该资源时(只要A未用完)则必须等待。 仅当A进程访问完并释放该资源后, 才允许另一进程对该资源进行访问的工作方式。,例如打印机、磁带机,虽然它们可以提供给多个进程(线程)使用,但为使所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程(线程)访问该资源。临界资源(独占资源)指在一段时间内只允许一个进程访问的资源。 计算机系统中的大多数物理设备,以及某些软件中所用的栈、变量和表格,都属于临
16、界资源,它们要求被互斥地共享。,2. 同时访问方式系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问。典型的可供多个进程“同时”访问的资源是磁盘设备。并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。一方面,资源共享是以程序(进程)的并发执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效管理, 协调好诸进程对共享资源的访问,也必然影响到程序并发执行的程度,甚至根本无法并发执行。,1.3.3 虚拟(Virtual)虚拟:是指通过
17、某种技术把一个物理实体变为若干个逻辑上的对应物。物理实体(前者)是实的, 即实际存在的;而后者是虚的,是用户感觉上的东西。虚拟技术:用于实现虚拟的技术。在OS中利用了多种虚拟技术(时分和空分复用技术等),分别用来实现虚拟处理机、虚拟内存、 虚拟外部设备和虚拟信道等。,1.3.4 异步性(Asynchronism),进程的异步性:进程以人们不可预知的速度向前推进的特性。内存中的每个进程在何时能获得处理机运行,何时又因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需多少时间才能完成,等等,都是不可预知的。由于各用户程序性能的不同,比如,有的侧重于计算而较少需要I/O;而又有的程
18、序其计算少而I/O多,这样,很可能是先进入内存的作业后完成; 而后进入内存的作业先完成。 尽管如此,但只要运行环境相同,作业经多次运行,都会获得完全相同的结果。因此,异步运行方式是允许的,是操作系统的一个重要特征。,1.4操作系统的主要功能,处理机管理功能 实现进程控制,进程同步,进程之间的通信,进程调度以及有关数据结构的维护等。 设备管理 完成用户进程提出的I/O请求; 为用户进程分配其所需的I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;方便用户使用I/O设备。为实现上述任务,设备管理应具有缓冲管理、设备分配和设备处理,以及虚拟设备等功能文件管理,文件管理 对用户文件和系统文件
19、进行管理,以方便用户使用,并保证文件的安全性 提供操作系统与用户之间的接口 用户接口,程序接口,存储器管理 这一功能主要管理内存空间的分配和回收,内存信息的保护,存储地址的映射,内存容量的扩充等。,1.5.1 传统的操作系统结构操作系统是一个十分复杂的大型软件。为了控制该软件的复杂性,在开发OS时,先后引入了分解、模块化、 抽象和隐蔽等方法。开发方法的不断发展,促进了OS结构的更新换代。这里,我们把第一代至第三代的OS结构, 称为传统的OS结构,而把微内核的OS结构称为现代OS结构。,1.5 操作系统的结构设计,1. 无结构操作系统在早期开发操作系统时,设计者只是把他的注意力放在功能的实现和获
20、得高的效率上,缺乏首尾一致的设计思想。 此时的OS是为数众多的一组过程的集合,各过程之间可以相互调用,在操作系统内部不存在任何结构,因此,这种OS是无结构的,也有人把它称为整体系统结构。此时程序设计的技巧,只是如何编制紧凑的程序,以便于有效地利用内存、对GOTO语句的使用不加任何限制,所设计出的操作系统既庞大又杂乱,缺乏清晰的程序结构。这一方面会使所编制出的程序错误很多,给调试工作带来很多困难;另一方面也使程序难以阅读和理解,增加了维护人员的负担。,2. 模块化OS结构1) 模块化结构 2) 模块独立性,图 1-5 模块化操作系统结构,2) 模块化OS的优缺点 优点: 提高了OS设计的正确性、
21、 可理解性和可维护性。 (2) 增强了OS的可适应性。 (3) 加速了OS的开发过程。,缺点:(1)在开始设计OS时,对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求。(2)从功能观点来划分模块时,未能将共享资源和独占资源加以区别; 由于管理上的差异,又会使模块间存在着复杂的依赖关系使OS结构变得不清晰。,3. 分层式OS结构,1) 有序分层的基本概念从改进设计方式上说,应使我们的每一步设计都是建立在可靠的基础上。我们可以从物理机器开始, 在其上面先添加一层具有一定功能的软件A1, 由于A1是建立在完全确定的物理机器上的,在经过精心设计和几乎是穷尽无遗的测试后,可以认为A1是正确的
22、;然后再在A1上添加一层新软件A2,如此一层一层地自底向上增添软件层,每一层都实现若干功能,最后总能构成一个能满足需要的OS。,分层式结构设计的基本原则是:每一层都仅使用其底层所提供的功能和服务,这样可使系统的调试和验证都变得容易, 例如,在调试第一层软件A1时,由于它只使用了物理机器提供的功能,因此它将与其所有的高层软件A2,An无关; 同样在调试A2时,它也只使用了A1和物理机器所提供的功能, 而与其高层软件A3, ,An无关,这样,一旦发现Ai出现错误时,通常该错误只会局限于Ai,因为它与所有其高层的软件无关,而Ai层以下的各层软件,又都经过仔细的调试。,2) 分层结构的优缺点 优点:(
23、1)易保证系统的正确性(2)易扩充和易维护 缺点:系统效率低,1.5.2 客户/服务器模式(Client-Server Model)简介1) 客户/服务器模式的组成和类型(1)客户机 (2)服务器 (3)网络系统2)客户/服务器之间的交互,2)客户/服务器模式的优点 (1)提高了系统的灵活性和可扩充性。 (2)便于集中管理,提高了OS的可靠性。 (3)可进行数据的分布处理和存储。 (4)易于改编应用软件,1. 5.3 面向对象的程序设计技术,1) 面向对象技术的基本概念面向对象技术是20世纪80年代初提出并很快流行起来的。该技术是基于“抽象”和“隐蔽”原则来控制大型软件的复杂度的。所谓对象,是
24、指在现实世界中具有相同属性、服从相同规则的一系列事物的抽象,而把其中的具体事物称为对象的实例。OS中的各类实体如进程、线程、消息、存储器等,都使用了对象这一概念,相应地,便有进程对象线程对象、 存储器对象等。,图 1-7 一个对象的示意图,2) 面向对象技术的优点(1) 可修改性和可扩充性。由于隐蔽了表示实体的数据和操作,因而可以改变对象的表示而不会影响其它部分, 从而可以方便地改变老的对象和增加新的对象。(2) 继承性。继承性是面向对象技术所具有的重要特性。继承性是指子对象可以继承父对象的属性,这样,在创建一个新的对象时, 便可减少大量的时空开销。(3) 正确性和可靠性。由于对象是构成操作系
25、统的基本单元,可以独立地对它进行测试,这样,比较易于保证其正确性和可靠性,从而比较容易保证整个系统的正确性和可靠性。,3. 微内核技术 微内核技术的引入,所谓微内核技术,是指精心设计的、能实现现代OS核心功能的小型内核,它与一般的OS(程序)不同, 它更小更精炼,它不仅运行在核心态,而且开机后常驻内存, 它不会因内存紧张而被换出内存。微内核并非是一个完整的OS, 而只是为构建通用OS提供一个重要基础。由于在微内核OS结构中,通常都采用了客户/服务器模式,因此OS的大部分功能和服务,都是由若干服务器来提供的, 如文件服务器、作业服务器和网络服务器等。,2) 微内核的基本功能微内核所提供的功能,通常都是一些最基本的功能,如进程管理、存储器管理、进程间通信、 低级I/O功能。 (1) 进程管理。 (2) 存储器管理。 (3) 进程通信管理。 (4) I/O设备管理。,