操作系统引论.docx
《操作系统引论.docx》由会员分享,可在线阅读,更多相关《操作系统引论.docx(20页珍藏版)》请在冰豆网上搜索。
操作系统引论
第一章操作系统引论
1.1操作系统的目标和作用
1.1.1.操作系统的目标
目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。
通常在计算机硬件上配置的OS,其目标有以下几点:
(1)方便性
(2)有效性
(3)可扩充性
(4)开放性
1.1.2.操作系统的作用
(1)OS作为用户与计算机硬件系统之间的接口
(2)OS作为计算机系统资源的管理者
(3)OS实现了对计算机资源的抽象
1.1.3.推动操作系统发展的主要动力
(1)不断提高计算机系统资源的利用率
(2)方便用户
(3)器件的不断更新换代
(4)计算机体系结构的不断发展
(5)不断提出新的应用需求
1.2操作系统的发展过程
1.2.1.未配置操作系统的计算机系统
(1)人工操作方式
早期的操作方式是由程序员将事先已穿孔的纸带(或卡片),装入纸带输入机(或卡片输入机),再启动它们将纸带(或卡片)上的程序和数据输入计算机,然后启动计算机运行。
仅当程序运行完毕并取走计算结果后,才允许下一个用户上机。
人工操作方式的缺点:
(1)用户独占全机
即一台计算机的全部资源由上机用户所独占;
(2)CPU等待人工操作
当用户进行装带(卡)、卸带(卡)等人工操作时,CPU及内存等资源是空闲的。
可见,人工操作方式严重降低了计算机资源的利用率,此即所谓的人机矛盾。
(2)脱机输入/输出方式
利用脱机输入/输出技术,事先将装有用户程序和数据的纸带,装入纸带输入机,在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上。
当CPU需要这些程序和数据时,再从磁带上高速地调入内存。
类似地,当CPU需要输出时,可先由CPU把数据直接从内存高速地送到磁带上,然后再在另一台外围机的控制下,将磁带上的结果通过相应的输出设备输出。
脱机输入/输出方式的优点:
(1)减少了CPU的空闲时间
装带、卸带,以及将数据从低速I/O设备,送到高速磁带上(或反之)的操作,都是在脱机情况下由外围机完成的,并不占用主机时间,从而有效地减少了CPU的空闲时间。
(2)提高了I/O速度
当CPU在运行中需要输入数据时,是直接从高速的磁带上将数据输入到内存的,极大地提高了I/O速度,从而进一步减少了CPU的空闲时间。
1.2.2.单道批处理系统
为实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序,在它的控制下,使这批作业能一个接一个地连续处理。
虽然系统对作业的处理,是成批地进行的,但在内存中始终只保持一道作业,故称为单道批处理系统。
(1)单道批处理系统的处理过程
(2)单道批处理系统的缺点:
系统中的资源得不到充分地利用。
这是因为在内存中仅有一道程序,每逢该程序在运行中发出I/O请求后,CPU便处于等待状态,必须在其I/O完成后才继续运行。
又因I/O设备的低速性,更使CPU的利用率显著降低。
下图1-5示出了单道程序的运行情况,从图可以看出:
在t2—t3、t6—t7时间间隔内CPU空闲。
1.2.3.多道批处理系统
(1)多道程序设计的基本概念
在该系统中,用户所提交的作业先存放在外存上,并排成一个队列,称为“后备队列”。
然后由作业调度程序按一定的算法,从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
由于同时在内存中装有若干道程序,这样便可以在运行程序A时,利用其因I/O操作而暂停执行时的CPU空档时间,再调度另一道程序B运行。
同样可以利用程序B在I/O操作时的CPU空档时间,再调度程序C运行,使多道程序交替地运行,这样便可以保持CPU处于忙碌状态。
图1-6示出了四道程序时的运行情况。
(2)多道批处理系统的优缺点
☆资源利用率高:
引入多道程序能使多道程序交替地运行,以保持CPU处于忙碌状态;在内存中装入多道程序,来提高内存的利用率;此外还可以提高I/O设备的利用率。
☆系统吞吐量大:
能提高系统吞吐量的主要原因可归结为:
①CPU和其它资源保持“忙碌”状态;②仅当作业完成时或运行不下去时才进行切换,系统开销小。
☆平均周转时间长:
由于作业要排队依次进行处理,因而作业的周转时间较长,通常需几个小时,甚至几天。
☆无交互能力:
用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进行交互,这对修改和调试程序是极不方便的。
(1)多道批处理系统需要解决的问题
多道批处理系统是一种十分有效,但又非常复杂的系统,为使系统中的多道程序间能协调地运行,系统必须解决下述一系列问题:
★争用处理机问题
★内存分配和保护问题
★I/O设备分配问题
★文件的组织和管理问题
★作业管理问题
★用户与系统的接口问题
为此,应在计算机系统中增加一组软件,用以对上述问题进行妥善、有效地处理。
这组软件应包括:
能有效地组织和管理四大资源的软件,合理地对各类作业进行调度和控制它们运行的软件,以及方便用户使用计算机的软件。
正是这样一组软件构成了操作系统。
据此,我们可把操作系统定义为:
操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。
1.2.4.分时系统
(1)分时系统的引入
推动分时系统形成和发展的主要动力,则是为了满足用户对人—机交互的需求,所形成的一种新型OS。
用户的需求具体表现在以下几个方面:
★人-机交互
★共享主机
分时系统是指,在一台主机上连接了多个配有显示器和键盘的终端,所组成的系统,该系统允许多个用户,同时通过自己的终端,以交互方式使用计算机,共享主机中的资源。
(2)分时系统实现中的关键问题
在多道批处理系统中,用户无法与自己的作业进行交互的主要的原因是:
作业都先驻留在外存上,即使以后被调入内存,也要经过较长时间的等待后方能运行,用户无法与自己的作业进行交互。
为了能够实现人—机交互,必须解决的关键问题是,如何使用户能与自己的作业进行交互。
为此,系统首先必须能提供多个终端,同时给多个用户使用;其次,当用户在自己的终端上键入命令时,系统应能及时接收,并及时处理该命令,再将结果返回给用户。
此后,用户可根据系统返回的响应情况,再继续键入下一条命令,此即人-机交互。
亦即,允许有多个用户同时通过自己的键盘键入命令,系统也应能全部地及时接收并处理。
即
(1)及时接收:
要做到及时接收多个用户键入的命令或数据,只须在系统中配置一个多路卡即可。
(2)及时处理:
为实现人机交互,必须彻底地改变原来批处理系统的运行方式,转而采用下面的方式:
(1)作业直接进入内存。
(2)采用轮转运行方式。
(3)分时系统的特征
分时系统与多道批处理系统相比,具有非常明显的不同特性,可以归纳成以下四方面:
★多路性
★独立性
★及时性
★交互性
•“实时”,是表示“及时”,而实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
•特点:
及时性要求高,系统可靠性高。
(1)实时系统的类型
★工业(武器)控制系统
★信息查询系统
★多媒体系统
★嵌入式系统
(2)实时任务的类型
★周期性实时任务和非周期性实时任务
周期性实时任务是指这样一类任务,外部设备周期性地发出激励信号给计算机,要求它按指定周期循环执行,以便周期性地控制某外部设备。
反之,非周期性实时任务并无明显的周期性,但都必须联系着一个截止时间,或称为最后期限。
它又可分为:
①开始截止时间;②完成截止时间。
★硬实时任务和软实时任务。
硬实时任务指系统必须满足任务对截止时间的要求,否则可能出现难以预测的后果。
软实时任务,它也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影响也不会太大。
(3)实时系统与分时系统特征的比较
★多路性
★独立性
★及时性
★交互性
★可靠性
1.3操作系统的基本特性
前面所介绍的三种基本操作系统,都具有各自不同的特征,如批处理系统有着高的资源利用率和系统吞吐量;分时系统能获得及时响应;实时系统具有实时特征。
除此之外,它们还共同具有以下四个基本特征:
1.并发性
(1)并行与并发
并行性:
是指两个或多个事件,在同一时刻发生。
并发性:
是指两个或多个事件,在同一时间间隔内发生。
(2)进程
在一个未引入进程的系统中,在属于同一个应用程序的计算程序和I/O程序之间,只能是顺序执行。
但在为计算程序和I/O程序分别建立一个进程后,这两个进程便可并发执行。
若对内存中的多个程序都分别建立一个进程,它们就可以并发执行,这样便能极大的提高系统资源的利用率,以及增加系统的吞吐量。
所谓进程,是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。
2.共享性
在OS环境下的资源共享,或称为资源复用,是指系统中的资源,可供内存中多个并发执行的进程共同使用。
并发和共享是多用户(多任务)OS的两个最基本的特征。
它们又是互为存在的条件。
资源共享是以程序的并发为条件的,若系统不允许程序并发执行,自然不存在资源共享问题。
若系统不能对资源共享实施有效的管理,也必将影响到程序的并发执行,甚至根本无法并发执行。
目前主要实现资源共享的方式有:
(1)互斥共享方式;
(2)同时访问方式。
(1)互斥共享方式
系统中的某些资源,如打印机、磁带机,虽然它们可以提供给多个进程(线程)使用,但应规定在一段时间内,只允许一个进程访问该资源。
为此,在系统中应建立一种机制,以保证多个进程对这类资源的互斥访问。
(2)同时访问方式
系统中还有另一类资源,如磁盘设备等,允许在一段时间内,由多个进程“同时”对它们进行访问。
这里所谓的“同时”,在单处理机环境下是宏观意义上的,而在微观上,这些进程对该资源的访问是交替进行的。
3.虚拟性
在OS中把通过某种技术,把将一个物理实体变为若干个逻辑上的对应物的功能,称为“虚拟”。
相应地把用于实现虚拟的技术称为虚拟技术,在OS中利用了多种虚拟技术,分别用来实现虚拟处理机、虚拟内存、虚拟外部设备和虚拟信道等:
(1)时分复用技术:
时分复用技术能提高资源利用率的根本原因在于,它利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用。
(2)空分复用技术:
空分复用技术则是利用存储器的空闲空间存放其它程序,来提高了内存的利用率。
4.异步性
在多道程序环境下,允许多个进程并发执行,但由于竞争资源等因素的限制,使进程的执行不是“一气呵成,而是以“走走停停”的方式运行。
多道程序环境下程序的执行,是以异步方式进行的;每个程序在何时执行,多个程序间的执行顺序以及完成每道程序所需的时间都是不确定和不可预知的。
进程是以人们不可预知的速度向前推进,此即进程的异步性。
1.4现代操作系统的新特征
1.4.1传统OS演变为现代OS的主要因素
1.计算机硬件的发展
2.网络的发展
3.多媒体应用
4.系统安全性
5.软件开发方法的发展
1.4.2多线程
1.线程(Threads)的引入
由于进程不仅是一个可独立调度和分派的基本单位,又是一个拥有资源的基本单位,即它拥有一个进程运行时所必需的资源,如所需的内存空间、相关的文件以及某些I/O设备等。
因而在创建、撤消和切换中,系统必须为之付出较大的时空开销,所以进程的切换频率不宜过高,这就限制了并发程度的进一步提高。
直到80年代中期,人们才又提出了比进程更小的单位——线程。
这里,线程仅作为调度和分派的基本单位,并不作为拥有资源的单位,使其能“轻装上阵”,故对它的调度所付出的开销就会小得多,能更高效地提高系统内多个程序间并发执行的程度。
2.线程的属性
线程在现代操作系统中有着非常重要的地位,它与进程有着许多相似的特性,其中线程的动态性、异步性和结构特征,与进程具有相同含意。
下面仅对与进程有些差异的线程属性做些补充:
(1)轻型实体。
(2)独立运行的基本单位。
(3)可并发执行。
(4)共享进程资源。
1.4.3微内核
1.传统操作系统的结构
★无结构OS
★模块化OS结构
★分层式OS结构
3.微内核结构OS的特征
★足够小的内核
★采用客户/服务器模式
★采用面向对象技术
4.微内核OS的优点
★提高了系统可扩展性
★增强系统的可靠性
★可移植性
★融入了面向对象技术
1.4.4网络化
所谓计算机网络,是指一些互连的自主计算机的集合。
而自主计算机,是指具有独立处理能力的计算机。
1.Internet的特征:
广域性、广泛性、高速性、智能性、交互性。
2.网络功能:
网络通信、网络资源共享。
目前,在所有的广域网、局域网和Internet网中,作为网络服务器的计算机,都配置了网络操作系统(服务器部分),而在一般个人计算机上的OS,也都配置了很强的面向网络(客户部分)的功能。
因此,网络化已成为现代操作系统的一个最重要特征。
1.4.5多媒体
通常多媒体是指包含了两种或两种以上的连续媒体,如从网上下载的含有视频信号和音频信号的数字电影,又如在计算机上播放的DVD电影等。
1.多媒体功能的引入:
用户的娱乐等需求。
2.多媒体系统的特点
★媒体的多样性
★数据量大
★实时性
★交互性
1.5传统操作系统的主要功能
从资源管理观点看,操作系统具有五大功能:
1.处理机管理
2.存储器管理
3.设备管理
4.文件管理
5.OS与用户之间的接口
1.5.1.处理机管理
主要任务:
在传统的多道程序系统中,处理机的分配和运行,都是以进程为基本单位,因而对处理机的管理可归结为对进程的管理。
处理机管理的主要功能有,创建和撤消进程、对诸进程的运行进行协调、实现进程之间的信息交换,以及按照一定的算法把处理机分配给进程。
(1)进程控制:
在多道程序环境下为使作业能并发执行,必须为每道作业创建一个或几个进程,并为之分配必要的资源。
当进程运行结束时,应立即撤消该进程,以便能及时回收该进程所占用的各类资源,供其它进程使用。
在设置有线程的OS中,进程控制还应包括为一个进程创建若干个线程,以提高系统的并发性。
因此,进程控制的主要功能也就是,为作业创建进程、撤消(终止)已结束的进程,以及控制进程在运行过程中的状态转换。
(2)进程同步:
为使多个进程能有条不紊地运行,系统中必须设置相应的进程同步机制。
该机制的主要任务是为多个进程(含线程)的运行进行协调。
有两种协调方式:
①进程互斥方式,这是指诸进程在对临界资源进行访问时,应采用互斥方式;
②进程同步方式,指在相互合作去完成共同任务的诸进程间,由同步机构对它们的执行次序加以协调。
而实现进程同步时,最常用的机制是信号量机制。
(3)进程通信:
对于相互合作的进程,在它们运行时,相互之间往往要交换一定的信息,这种进程间所进行的信息交换称为进程通信。
(4)调度:
在传统OS中,调度主要包括:
★作业调度:
作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配运行所需的资源,在将这些作业调入内存后,分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并将它们插入就绪队列。
★进程调度:
进程调度的任务是从进程的就绪队列中,按照一定的算法选出一个进程,将处理机分配给它,并为它设置运行现场,使其投入执行。
主要任务:
为多道程序的运行提供良好的环境、提高存储器的利用率、方便用户使用,并能从逻辑上扩充内存。
为此,存储器管理应以下几方面的功能:
(1)内存分配
(2)内存保护
(3)地址映射
(4)内存扩充
(1)内存分配:
主要任务:
(1)为每道程序分配内存空间,使它们“各得其所”;
(2)提高存储器的利用率,尽量减少不可用的内存空间(碎片);
(3)允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
内存分配的两种方式:
(1)静态分配方式,每个作业的内存空间是在作业装入时确定的,在作业装入后的整个运行期间,不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”;
(2)动态分配方式,每个作业所要求的基本内存空间,虽然也是在装入时确定的,但允许作业在运行过程中,继续申请新的附加内存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。
(2)内存保护:
主要任务:
(1)确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰;
(2)绝不允许用户程序访问操作系统的程序和数据,也不允许转移到非共享的其它用户程序中去执行。
为了确保每道程序都只在自己的内存区中运行,必须设置内存保护机制。
一种比较简单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。
在程序运行时,系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止该程序的执行。
(3)地址映射:
在多道程序环境下,由于每道程序经编译和链接后,所形成的可装入程序,其地址都是从0开始的,但不可能将它们从“0”地址(物理)开始装入内存,致使(各程序段的)地址空间内的逻辑地址,与其在内存空间中的物理地址并不相一致。
为保证程序能正确运行,存储器管理必须提供地址映射功能,即能够将地址空间中的逻辑地址,转换为内存空间中与之对应的物理地址。
该功能应在硬件的支持下完成。
(4)内存扩充:
内存扩充并非是从物理上去扩大内存的容量,而是借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多。
系统必须设置内存扩充机制(包含少量的硬件),用于实现下述各功能:
(1)请求调入功能
(2)置换功能
3.设备管理
主要任务:
(1)完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作;
(2)提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。
为实现上述任务,设备管理应具有缓冲管理、设备分配和设备处理,以及虚拟设备等功能。
(1)缓冲管理:
几乎所有的外围设备于处理机交换信息时,都要利用缓冲来缓和CPU和I/O设备间速度不匹配的矛盾,和提高CPU与设备、设备与设备间操作的并行程度,以提高CPU和I/O设备的利用率。
(2)设备分配
系统根据用户所请求的设备类型和所采用的分配算法对设备进行分配,并将未获得所需设备的进程放进相应设备的等待队列。
(3)设备处理
启动指定的I/O设备,完成用户规定的I/O操作,并对由设备发来的中断请求进行及时响应,根据中断类型进行相应的处理。
(4)虚拟设备
通常,把一次仅允许一个进程使用的设备称为独占设备。
系统可通过某种技术使该设备成为能被多个用户共享的设备,以提高设备利用率及加速程序的执行过程。
可使每个用户都感觉到自己在独占该设备。
4.文件管理
主要任务
对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。
为此文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理,以及文件的共享与保护等功能。
(1)文件存储空间的管理
为每个文件分配必要的外存空间、提高外存的利用率,并能有助于提高文件系统的存、取速度。
(2)目录管理
为每个文件建立一个目录项,包括文件名、文件属性、文件在磁盘上的物理位置等信息,并对众多的目录项加以有效的组织,以实现方便的按名存取,以及实现文件共享。
(3)文件的读/写管理
根据用户的请求,从外存中读取数据;或将数据写入外存。
(4)文件保护
目标:
①防止未经核准的用户存取文件;②防止冒名顶替存取文件;③防止以不正确的方式使用文件。
5.OS与用户之间的接口
1.用户接口:
用户可通过该接口向作业发出命令以控制作业的运行。
包括:
(1)联机用户接口,由一组键盘操作命令及命令解释程序组成;
(2)脱机用户接口。
用户用作业控制语言JCL把需要对作业进行的控制和干预的命令,事先写在作业说明书上,然后将它与作业连一起提供给系统;(3)图形用户接口。
2.程序接口:
为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的惟一途径。
它是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序。
1.6现代OS的新增功能
现代操作系统是在传统操作系统基础上发展起来的,它除了具有传统操作系统的功能外,还增加了若干个新功能:
系统安全管理;面向网络功能;多媒体功能。
1.系统安全功能
在现代OS中采取了多种有效措施来确保系统的安全。
这里我们仅局限于介绍保障系统安全的几个技术问题。
它包含认证技术、密码技术、访问控制技术、反病毒技术等。
(1)认证技术
又称为鉴别或验证。
它是一个用来确认被认证的对象是否名符其实的过程,用来确定对象的真实性,以防止入侵者进行假冒和篡改等,为保障系统安全的第一道防线。
(2)密码技术
对系统中所须存储和传输的数据进行加密,使之成为密文,只有指定的用户才能对该数据予以解密,了解其内容。
加密算法可分为两种类型:
①对称加密算法,在加密算法和解密算法之间,存在着一定的相依关系。
②非对称加密算法,这种方式中的加密密钥Ke和解密密钥Kd是不同的,而且从Ke难以推导出Kd来。
该算法也被称为公开密钥算法。
(3)访问控制技术
当一个用户仅通过了身份验证时,还必须再经过“访问控制检查机构”的检查,以进一步确认该用户对所要访问资源的合法性。
访问控制技术是在操作系统中,应用得最广泛的一种能保障系统中资源安全的技术。
访问控制技术可通过两种途径来保障系统中资源的安全:
①设置的用户存取权限;②设置文件属性。
(4)反病毒技术
计算机病毒实质上是一段程序,但它具有如下的明显特征:
①寄生性;②传染性;③隐蔽性;④破坏性。
病毒可占用系统的存储空间和处理机时间,对系统中的文件造成破坏,使机器运行发生异常情况。
对于病毒的威胁,最好的解决方法是预防。
其次还需要非常有效的反病毒软件来检测病毒。
最后若发现有病毒,便应立即清除。
2.网络的功能和服务
在现代操作系统中,为支持用户上网取得Internet所提供的服务,如电子邮件服务、Web服务等,应在操作系统中增加面向网络的功能,用于实现网络通信和资源管理,以及提供用户取得Internet服务的手段。
(1)面向网络功能
①网络通信:
用于在源主机和目标主机之间,实现无差错的数据传输。
②资源管理:
是指对网络中的共享资源(硬件和软件),实施有效的管理,协调诸用户对共享资源的使用,保证数据的安全性和一致性。
③应用互操作:
在一个由若干个不同网络互连所构成的互连网络中,必须提供应用互操作功能,以实现信息的互通性和信息的互用性。
(1)取得Internet提供的服务
Internet所提供的服务分为如下两类:
①传统的信息服务:
电子邮件服务(E-mail)、文件传输服务(FTP)、远程登录服务(TELNET)
②Web(WordWideWeb)服务:
电子广告服务、信息查询服务、电子商务。
3.多媒体功能
多媒体OS必须能像一般OS处理文字、图形信息那样,去处理音频和视频信息。
为此在现代OS中还增加了能处理多媒体的功能。
(1)接纳控制功能
在多媒体系统中允许同时运行多个实时进