计算机操作系统

目录

引言

操作系统的发展

微机操作系统的发展

操作系统基本特性

操作系统的主要功能


引言

计算机系统由硬件和软件两个部分组成,操作系统(OS operating system) 是配置在计算机硬件上的第一层软件,是对硬件的首次扩充。

操作系统的目标:

  1. 有效性:提高资源利用率和系统吞吐量。
  2. 方便性:配置OS后可以使计算机更容易使用。
  3. 可扩充性:便于方便的增加新功能哦快。
  4. 开放性:系统能遵循世界标准规范,特别是OSI国际标准。

操作系统作用:

  1. 作为用户与计算机硬件系统之间的接口。 
  2. OS作为计算机资源的管理者。
  3. OS实现了对计算机资源的抽象。

 

操作系统的发展

 

1.人工操作 (无OS)

      1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。

         

  程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。

手工操作方式两个特点:

  (1)用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低。

  (2)CPU 等待手工操作。CPU的利用不充分。

      20世纪50年代后期,出现人机矛盾:手工操作的慢速度和计算机的高速度之间形成了尖锐矛盾,手工操作方式已严重损害了系统资源的利用率(使资源利用率降为百分之几,甚至更低),不能容忍。唯一的解决办法:只有摆脱人的手工操作,实现作业的自动过渡。

脱机I/O(了解,不细说):

  • 解决人机矛盾及CPU和I/O设备速度不匹配的问题。
脱机I/O

 

 

2.单道批

  上世纪50年代中期,人们用晶体管代替真空管制作计算机,从而出现第二代计算机。使计算机体积减小,功耗降低。可靠性也大幅增高。

单道批:成批的解决一系列问题,解决人机矛盾及CPU I/O设备不匹配问题的过程中形成的。但是单道批仍不能很好的利用系统。

单道批系统

单道批的特征:

  • 自动性:能够将磁带上的一批作业自动的逐个依次运行,无需人工干预。
  • 顺序性:磁带上的搁到作业使顺序进入内存,个作业完成顺序与进入顺序正常情况下完全相同。
  • 单道性:内存中仅有一道程序执行。

 

3. 多道批

多道程序设计技术

      好处:

  1. 提高CPU利用率

  2. 提高I/O设备利用率。
  3. 增加系统吞吐量。

缺点:

  1. 平均周转时间长:由于作业需要排队,有可能排队几个小时,甚至几天。
  2. 无交互能力:用户提交作业后直至作业完成,用户都不能与作业交互。

 

4.分时系统

      由于CPU速度不断提高和采用分时技术,一台计算机可同时连接多个用户终端,而每个用户可在自己的终端上联机使用计算机,好象自己独占机器一样。

  分时技术:把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。

  若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断,把处理机让给另一作业使用,等待下一轮时再继续其运行。由于计算机速度很快,作业运行轮转得很快,给每个用户的印象是,好象他独占了一台计算机。而每个用户可以通过自己的终端向系统发出各种操作控制命令,在充分的人机交互情况下,完成作业的运行。具有上述特征的计算机系统称为分时系统,它允许多个用户同时联机使用计算机。

特点:

  1. 多路性。若干个用户同时使用一台计算机。微观上看是各用户轮流使用计算机;宏观上看是各用户并行工作。
  2. 交互性。用户可根据系统对请求的响应结果,进一步向系统提出新的请求。这种能使用户与系统进行人机对话的工作方式,明显地有别于批处理系统,因而,分时系统又被称为交互式系统。
  3. 独立性。用户之间可以相互独立操作,互不干扰。系统保证各用户程序运行的完整性,不会发生相互混淆或破坏现象。
  4. 及时性。系统可对用户的输入及时作出响应。分时系统性能的主要指标之一是响应时间,它是指:从终端发出命令到系统予以应答所需的时间。

  分时系统的主要目标:对用户响应的及时性,即不至于用户等待每一个命令的处理时间过长。

分时系统可以同时接纳数十个甚至上百个用户,由于内存空间有限,往往采用对换(又称交换)方式的存储方法。即将未“轮到”的作业放入磁盘,一旦“轮到”,再将其调入内存;而时间片用完后,又将作业存回磁盘(俗称“滚进”、“滚出“法),使同一存储区域轮流为多个用户服务。

多用户分时系统是当今计算机操作系统中最普遍使用的一类操作系统。

      注意:分时系统的分时间片工作,在没有遇到IO操作的时候就用完了自己的时间片被切走了,这样的切换工作其实并没有提高cpu的效率,反而使得计算机的效率降低了。但是我们牺牲了一点效率,却实现了多个程序共同执行的效果,这样你就可以在计算机上一边听音乐一边聊qq了。

 

5.实时系统

    虽然多道批处理系统和分时系统能获得较令人满意的资源利用率和系统响应时间,但却不能满足实时控制与实时信息处理两个应用领域的需求。于是就产生了实时系统,即系统能够及时响应随机发生的外部事件,并在严格的时间范围内完成对该事件的处理。

  • 实时系统在一个特定的应用中常作为一种控制设备来使用。

实时系统可分成两类:

  1. 实时控制系统。用于要求计算机能尽快处理测量系统测得的数据,如及时地对飞机或导弹进行控制,或将有关信息通过显示终端提供给决策人员。
  2. 实时信息处理系统。用于预定飞机票、查询有关航班、航线、票价等事宜时,或当用于银行系统、情报检索系统时,都要求计算机能对终端设备发来的服务请求及时予以正确的回答。此类对响应及时性的要求稍弱于第一类。

实时操作系统特点:

  1. 及时响应。每一个信息接收、分析处理和发送的过程必须在严格的时间限制内完成。
  2. 高可靠性。需采取冗余措施,双机系统前后台工作,也包括必要的保密措施等。

 

实时系统与分时系统比较:

  1.  多路性。实时信息处理系统也按分时原则为多个终端用户服务。实时控制系统的多路性则主要表现在系统周期性地对多路现场信息进行采集,以及对多个对象或多个执行机 构进行控制。而分时系统中的多路性则与用户情况有关,时多时少。
  2. 独立性。实时信息处理系统中的每个终端用户在向实时系统提出服务请求时,是彼 此独立地操作,互不干扰;而实时控制系统中,对信息的采集和对对象的控制也都是彼此 互不干扰。
  3.  及时性。实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的 等待时间来确定的;而实时控制系统的及时性,则是以控制对象所要求的开始截止时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于 100 微秒。
  4.  交互性。实时信息处理系统虽然也具有交互性,但这里人与系统的交互仅限于访问 系统中某些特定的专用服务程序。它不像分时系统那样能向终端用户提供数据处理和资源 共享等服务。
  5.  可靠性。分时系统虽然也要求系统可靠,但相比之下,实时系统则要求系统具有高 度的可靠性。因为任何差错都可能带来巨大的经济损失,甚至是无法预料的灾难性后果, 所以在实时系统中,往往都采取了多级容错措施来保障系统的安全性及数据的安全性。

 

微机操作系统的发展

配置在微型机上的操作系统称为微机操作系统。

  • 最早的微机操作系统配置在8位微机上的CP/M。
  • 后来相继出现16位微机,然后发展为32位,64位。

按照运行方式,微机OS分为:

    1.单用户单任务OS :

  • CP/M:第一代8位微处理芯片Intel8080出现后第二年出现。
  • MS/DOS:1981 IBM首次推出IBM-PC个人计算机(16位微机),该微机中采用了MS-DOS OS。

    2.单用户多任务OS:

  • Windows:微软推出,1985,1987微软先后推出Windows1.0 Windows2.0 OS  ,当时还是16位微机,1995年Windows95,2001年Windows XP, 到后来的Windows7,Windows10 。

    3.多用户多任务OS:

  • UNIX OS:美国电报电话公司 Bell实验室1969-1970年间开发的,现在最有应i想的两个UNIX变型是Solaris OS 和 Linux OS.

 

 

操作系统基本特性

1.并发性

  1. 并行:真的同一时刻。
  2. 并发:多任务快速切换,好像是同时发生。

    引入进程

  • 通常的程序是静态实体(Passive Entity),在多道程序系统中,它们是不能独立运行的,更不能和其它程序并发执行。
  • 在操作系统中引入进程的目的,就是为了使多个程序能并发执行, 系统分别为每个程序建立进程(Process)。有效地提高了系统资源的利用率和系统吞吐量,并改善了系统的性能。
  • 是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和 栈等组成的,是一个能独立运行的活动实体。
  • 多个进程之间可以并发执行和交换信息。一 个进程在运行时需要一定的资源,如 CPU、存储空间及 I/O 设备等。
  • OS 中程序的并发执行将使系统复杂化,以致在系统中必须增设若干新的功能模块,分别用于对处理机、内存、I/O 设备以及文件系统等资源进行管理,并控制系统中作业的运行。 事实上,进程和并发是现代操作系统中最重要的基本概念,也是操作系统运行的基础

     引入线程

  • 进程是操作系统中可以拥有资源并作为独立运行的基本单位。当一个进程因故不能继续运行时,OS便调度另一进程运行。
  • 进程拥有自己的资源,调度付出的开销较大。 20 世纪 80 年代中期,人们提出了比进程更小的单位—— 线程(Threads)
  • 通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。
  • 在引入线程的 OS 中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效地提高系统内多个程序间并发执行的程度。因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视作现代操作系统的一个重要标致。

 

2. 共享性

在操作系统环境下,共享(Sharing)是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用,相应地,把这种资源共同使用称为资源共享,或称为资源复用。由于各种资源的属性不同,进程对资源复用的方式也不同,目前主要实现资源共享的方式有如下两种。

       1.互斥共享方式

  • 系统中的某些资源,如打印机、磁带机,虽然它们可以提供给多个进程(线程)使用,但为使所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程(线程)访问该 资源。为此,系统中应建立一种机制,以保证对这类资源的互斥访问。当一个进程 A 要访问某资源时,必须先提出请求。如果此时该资源空闲,系统便可将之分配给请求进程 A 使用。此后若再有其它进程也要访问该资源时(只要 A 未用完),则必须等待。仅当 A 进程访问完并释放该资源后,才允许另一进程对该资源进行访问。我们把这种资源共享方式称为互斥式共享,而把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。计算机系统中的大多数物理设备,以及某些软件中所用的栈、变量和表格,都属于临界资源,它们要求被互斥地共享。为此,在系统中必需配置某种机制来保证诸进程互斥地使用独占资源。

        2.同时访问方式

  • 系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”,在单处理机环境下往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问。典型的可供多个进程“同时”访问的资源是磁盘设备,一些用重入码编写的文件也可以被“同时”共享,即若干个用户同时访问该文件。并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。一方面,资源共享是以程序(进程)的并发执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效管理,协调好诸进程对共享资源的访问,也必然影响到程序并发执行的程度,甚至根本无法并发执行。

 

3.虚拟技术

操作系统中的所谓“虚拟”(Virtual),是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。仅是用户感觉上的东西。相应地,用于实现虚拟的技术称为虚拟技术。

在操作系统中利用了两种方式实现虚拟技术:

      1.时分复用技术

时分复用,亦即分时使用方式,它最早用于电信业中。为了提高信道的利用率,人们利用时分复用方式,将一条物理信道虚拟为多条逻辑信道,将每条信道供一对用户通话。

在计算机领域中,广泛利用该技术来实现虚拟处理机、虚拟设备等,以提高资源的利用率。

      1) 虚拟处理机技术

在虚拟处理机技术中,利用多道程序设计技术,为每道程序建立一个进程,让多道程 序并发地执行,以此来分时使用一台处理机。此时,虽然系统中只有一台处理机,但它却能同时为多个用户服务,使每个终端用户都认为是有一个处理机在专门为他服务。物理机虚拟为多台逻辑上的处理机,在每台逻辑处理机上运行一道程序。用户所感觉到的处理机称为虚拟处理器。

       2) 虚拟设备技术

通过虚拟设备技术,将一台物理 I/O 设备虚拟为多台逻辑上的 I/O 设备,并 允许每个用户占用一台逻辑上的 I/O 设备,这样便可使原来仅允许在一段时间内由一个用户访问的设备(即临界资源),变为在一段时间内允许多个用户同时访问的共享设备。例如,原来的打印机属于临界资源,而通过虚拟设备技术,可以把它变为多台逻辑上的打印机,供多个用户“同时”打印。

       2.空分复用技术

早在上世纪初,电信业中就使用频分复用技术来提高信道的利用率。它是将一个频率范围非常宽的信道,划分成多个频率范围较窄的信道,其中的任何一个频带都只供一对用户通话。早期的频分复用只能将一条物理信道划分为十几条到几十条话路,后来又很快发展成上万条话路,每条话路也只供一对用户通话。之后,在计算机中也使用了空分复用技术来提高存储空间的利用率。

         1) 虚拟磁盘技术

通常在一台机器上只配置一台硬盘。我们可以通过虚拟磁盘技术将一台硬盘虚拟为多台虚拟磁盘,这样使用起来既方便又安全。虚拟磁盘技术也是采用了空分复用方式,即它将硬盘划分为若干个卷,例如 1234 四个卷,再通过安装程序将它们分别安装在 CDEF 四个逻辑驱动器上,这样,机器上便有了四个虚拟磁盘。当用户要访问 D 盘中的内容时,系统便会访问卷 2 中的内容。

        2) 虚拟存储器技术

在单道程序环境下,处理机会有很多空闲时间,内存也会有很多空闲空间,显然, 会使处理机和内存的效率低下。如果说时分复用技术是利用处理机的空闲时间来运行其它的程序,使处理机的利用率得以提高,那么空分复用则是利用存储器的空闲空间来存放其它的程序,以提高内存的利用率。 但是,单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量的功能,必须引入虚拟存储技术才能达到此目地。而虚拟存储技术在本质上就是使内存分时复用。它可以使一道程序通过时分复用方式,在远小于它的内存空间中运行。 例如,一个 100 MB 的应用程序可以运行在 20 MB 的内存空间。

        应当着重指出:

如果虚拟的实现是通过时分复用的方法来实现的,即对某一物理设备进行分时使用,设 N 是某物理设备所对应的虚拟的逻辑设备数,则每台虚拟设备的平均速度必然等于或低于物理设备速度的 1/N。类似地,如果是利用空分复用方法来实现虚拟,此时一台虚拟设备平均占用的空间必然也等于或低于物理设备所拥有空间的 1/N

 

4 异步性

在多道程序环境下允许多个进程并发执行,但只有进程在获得所需的资源后方能执行。

在单处理机环境下,由于系统中只有一台处理机,因而每次只允许一个进程执行,其余进程只能等待。当正在执行的进程提出某种资源要求时,如打印请求,而此时打印机正在为其它某进程打印,由于打印机属于临界资源,因此正在执行的进程必须等待,且放弃处理机,直到打印机空闲,并再次把处理机分配给该进程时,该进程方能继续执行。可见,由于资源等因素的限制,使进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行。

内存中的每个进程在何时能获得处理机运行,何时又因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需多少时间才能完成,等等,这些都是不可预知的。由于各用户程序性能的不同,比如,有的侧重于计算而较少需要 I/O,而有的程序其计算少而 I/O 多,这样,很可能是先进入内存的作业后完成,而后进入内存的作业先完成。或者说,进程是以人们不可预知的速度向前推进,此即进程的异步性(Asynchronism)。尽管如此,但只要在操作系统中配置有完善的进程同步机制,且运行环境相同,作业经多次运行都会获得完全相同的结果。因此,异步运行方式是允许的,而且是操作系统的一个重要特征。

 

 

 操作系统的主要功能

操作系统的主要任务,是为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊地、高效地运行,并能最大程度地提高系统中各种资源的利用率和方便用户的使用。

为实现上述任务,操作系统应具有这样几方面的功能:处理机管理,存储器管理,设备管理和文件管理。为了方便用户使用操作系统,还须向用户提供方便的用户接口。此外,由于当今的网络已相当普及,已有愈来愈多的计算机接入网络中,为了方便计算机联网, 又在 OS 中增加了面向网络的服务功能。

 

处理机管理功能

在传统的多道程序系统中,处理机的分配和运行都是以进程为基本单位,因而对处理机的管理可归结为对进程的管理;在引入了线程的 OS 中,也包含对线程的管理。处理机管 理的主要功能是创建和撤消进程(线程),对诸进程(线程)的运行进行协调,实现进程(线程) 之间的信息交换,以及按照一定的算法把处理机分配给进程(线程)

1.进程控制

在传统的多道程序环境下,要使作业运行,必须先为它创建一个或几个进程,并为之分配必要的资源。当进程运行结束时,立即撤消该进程,以便能及时回收该进程所占用的各类资源。进程控制的主要功能是为作业创建进程,撤消已结束的进程,以及控制进程在运行过程中的状态转换。在现代 OS 中,进程控制还应具有为一个进程创建若干个线程的功能和撤消(终止)已完成任务的线程的功能。

2.进程同步

进程是以异步方式运行的,并以人们不可预知的速度向前推进。为使多个进程能有条不紊地运行,系统中必须设置进程同步机制。进程同步的主要任务是为多个进 (含线程)的运行进行协调。

有两种协调方式:

  1. 进程互斥方式。这是指诸进程(线程)在对临界资源进行访问时,应采用互斥方式; 
  2. 进程同步方式。这是指在相互合作去完成共同任务的诸进程(线程)间,由同步机构 对它们的执行次序加以协调。

为了实现进程同步,系统中必须设置进程同步机制。最简单的用于实现进程互斥的机制是为每一个临界资源配置一把锁 W,当锁打开时,进程(线程)可以对该临界资源进行访问; 而当锁关上时,则禁止进程(线程)访问该临界资源。而实现进程同步的最常用的机制则是信号量机制。

3.进程通信

在多道程序环境下,为了加速应用程序的运行,应在系统中建立多个进程,并且再为一个进程建立若干个线程,由这些进程(线程)相互合作去完成一个共同的任务。而在这些进 (线程)之间,又往往需要交换信息。

4.调度

在后备队列上等待的每个作业都需经过调度才能执行。在传统的操作系统中,包括作业调度和进程调度两步。

  • 作业调度。

作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配运行所需的资源(首先是分配内存)。在将它们调入内存后,便分别为它 们建立进程,使它们都成为可能获得处理机的就绪进程,并按照一定的算法将它们插入就 绪队列。

  • 进程调度。

进程调度的任务是从进程的就绪队列中,按照一定的算法选出一个进程, 把处理机分配给它,并为它设置运行现场,使进程投入执行。值得提出的是,在多线程 OS中,通常是把线程作为独立运行和分配处理机的基本单位,为此,须把就绪线程排成一个队列,每次调度时,是从就绪线程队列中选出一个线程,把处理机分配给它。

 

 

存储器管理功能

存储器管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。为此,存储器管理应具有内存分配、内存保护、地址映射和内存扩充等功能。

1.内存分配

内存分配的主要任务是为每道程序分配内存空间,使它们“各得其所”;提高存储器的利用率,以减少不可用的内存空间;允许正在运行的程序申请附加的内存空间,以适应程 序和数据动态增长的需要。OS 在实现内存分配时,可采取静态和动态两种方式。在静态分配方式中,每个作业的内存空间是在作业装入时确定的;在作业装入后的整个运行期间,不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”。在动态分配方式中,每个作业所要求的基本内存空间也是在装入时确定的,但允许作业在运行过程中继续申请新的附加内存空间,以 适应程序和数据的动态增长,也允许作业在内存中“移动”。 为了实现内存分配,在内存分配的机制中应具有这样的结构和功能:

  • 内存分配数据结构。该结构用于记录内存空间的使用情况,作为内存分配的依据;
  • 内存分配功能。系统按照一定的内存分配算法为用户程序分配内存空间;
  • 内存回收功能。系统对于用户不再需要的内存,通过用户的释放请求去完成系统的回收功能。

2.内存保护内存

保护的主要任务是确保每道用户程序都只在自己的内存空间内运行,彼此互不干 扰;绝不允许用户程序访问操作系统的程序和数据;也不允许用户程序转移到非共享的其 它用户程序中去执行。 为了确保每道程序都只在自己的内存区中运行,必须设置内存保护机制。一种比较简 单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停该程序的执行。如果这种检查完全用软件实现,则每执行一条指令,便须增加若干条指令去进行越界检查,这将显著降低程序的运行速度。因此,越界检查都由硬件实现。当然, 对发生越界后的处理,还须与软件配合来完成。

3.地址映射

一个应用程序(源程序)经编译后,通常会形成若干个目标程序;这些目标程序再经过链 接便形成了可装入程序。这些程序的地址都是从“0”开始的,程序中的其它地址都是相对于起始地址计算的。由这些地址所形成的地址范围称为“地址空间”,其中的地址称为“逻辑地址”或“相对地址”。此外,由内存中的一系列单元所限定的地址范围称为“内存空间”, 其中的地址称为“物理地址”。 在多道程序环境下,每道程序不可能都从“0”地址开始装入(内存),这就致使地址空间内的逻辑地址和内存空间中的物理地址不相一致。为使程序能正确运行,存储器管理必须提供地址映射功能,以将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。 该功能应在硬件的支持下完成。

4.内存扩充

存储器管理中的内存扩充任务并非是去扩大物理内存的容量,而是借助于虚拟存储技 术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多,以便 让更多的用户程序并发运行。这样,既满足了用户的需要,又改善了系统的性能。为此,只需增加少量的硬件。为了能在逻辑上扩充内存,系统必须具有内存扩充机制,用于实现下述各功能:

  • 请求调入功能。允许在装入一部分用户程序和数据的情况下,便能启动该程序运行。 在程序运行过程中,若发现要继续运行时所需的程序和数据尚未装入内存,可向 OS 发出请 求,由 OS 从磁盘中将所需部分调入内存,以便继续运行。
  • 置换功能。若发现在内存中已无足够的空间来装入需要调入的程序和数据时,系统应能将内存中的一部分暂时不用的程序和数据调至盘上,以腾出内存空间,然后再将所需 调入的部分装入内存。

 

 

设备管理功能

设备管理用于管理计算机系统中所有的外围设备,而设备管理的主要任务是:完成用 户进程提出的 I/O 请求;为用户进程分配其所需的 I/O 设备;提高 CPU I/O 设备的利用 率;提高 I/O 速度;方便用户使用 I/O 设备。为实现上述任务,设备管理应具有缓冲管理、设备分配和设备处理以及虚拟设备等功能。

1.缓冲管理

CPU 运行的高速性和 I/O 低速性间的矛盾自计算机诞生时起便已存在了。而随着 CPU速度迅速提高,使得此矛盾更为突出,严重降低了 CPU 的利用率。如果在 I/O 设备和 CPU之间引入缓冲,则可有效地缓和 CPU I/O 设备速度不匹配的矛盾,提高 CPU 的利用率, 进而提高系统吞吐量。因此,在现代计算机系统中,都无一例外地在内存中设置了缓冲区,而且还可通过增加缓冲区容量的方法来改善系统的性能。对于不同的系统,可以采用不同的缓冲区机制。最常见的缓冲区机制有单缓冲机制、 能实现双向同时传送数据的双缓冲机制,以及能供多个设备同时使用的公用缓冲池机制上述这些缓冲区都将由 OS 中的缓冲管理机制将它们管理起来。

2.设备分配

设备分配的基本任务是根据用户进程的 I/O 请求、系统的现有资源情况以及按照某种备的分配策略,为之分配其所需的设备。如果在 I/O 设备和 CPU 之间还存在着设备控制器 I/O 通道时,还须为分配出去的设备分配相应的控制器和通道。 为了实现设备分配,系统中应设置设备控制表、控制器控制表等数据结构,用于记录设备及控制器的标识符和状态。根据这些表格可以了解指定设备当前是否可用,是否忙碌, 以供进行设备分配时参考。在进行设备分配时,应针对不同的设备类型而采用不同的设备分配方式。对于独占设备(临界资源)的分配,还应考虑到该设备被分配出去后系统是否安全在设备使用完后,应立即由系统回收。

3.设备处理

设备处理程序又称为设备驱动程序。其基本任务是用于实现 CPU 和设备控制器之间的通信,即由 CPU 向设备控制器发出 I/O 命令,要求它完成指定的 I/O 操作;反之,由 CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。 处理过程是:设备处理程序首先检查 I/O 请求的合法性,了解设备状态是否是空闲的,了解有关的传递参数及设置设备的工作方式。然后,便向设备控制器发出 I/O 命令,启动 I/O设备去完成指定的 I/O 操作。设备驱动程序还应能及时响应由控制器发来的中断请求,并根 据该中断请求的类型,调用相应的中断处理程序进行处理。对于设置了通道的计算机系统,设备处理程序还应能根据用户的 I/O 请求,自动地构成通道程序。

 

 

文件管理功能

程序和数据会以文件的形式存储在磁盘和磁带上,供所有的或指定的用户使用。为此,在操作系统中必须配置文件管理机构。文件管理的主要任务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。为此,文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理,以及文件的共享与保护 等功能。

1.文件存储空间的管理

主要任务是为每个文件分配必要的外存空间,提高外存的利用率,并能助于提高文件系统的存、取速度。 为此,系统应设置相应的数据结构,用于记录文件存储空间的使用情况,以供分配存储空间时参考;系统还应具有对存储空间进行分配和回收的功能。为了提高存储空间的利用率,对存储空间的分配,通常是采用离散分配方式,以减少外存零头,并以盘块为基本 分配单位。盘块的大小通常为 18 KB

2.目录管理

为了户能方便地在外存上找到自己所需的文件,通常由系统为每个文件建立一个目录项。目录项包括文件名、文件属性、文件在磁盘上的物理位置等。若干个目录项又可构成一个目录文件。目录管理的主要任务是为每个文件建立其目录项,并对众多的目录 项加以有效的组织,以实现方便的按名存取,即用户只须提供文件名便可对该文件进行存取。目录管理还应能实现文件共享,这样,只须在外存上保留一份该共享文件的副本。此外,还应能提供快速的目录查询手段,以提高对文件的检索速度。

3.文件的读/写管理和保护

(1) 文件的读/写管理。

该功能是根据用户的请求,从外存中读取数据,或将数据写入外存。在进行文件读()时,系统先根据用户给出的文件名去检索文件目录,从中获得文件 在外存中的位置。然后,利用文件读()指针,对文件进行读()。一旦读()完成,便修 改读()指针,为下一次读()做好准备。由于读和写操作不会同时进行,故可合用一个/写指针。

(2) 文件保护。

为了防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能,以实现下述目标:

  • 防止未经核准的用户存取文件;
  •  防止冒名顶替存取文件;
  • 防止以不正确的方式使用文件。

 

 

操作系统与用户之间的接口

为了方便用户使用操作系统,OS 又向用户提供了“用户与操作系统的接口”。该接口通常可分为两大类:

  1. 用户接口:它是提供给用户使用的接口,用户可通过该接口取得操作系统的服务;
  2. 程序接口:它是提供给程序员在编程时使用的接口,是用户程序取得操作系统服务 的惟一途径。

用户接口

为了便于用户直接或间接地控制自己的作业,操作系统向用户提供了命令接口。用户 可通过该接口向作业发出命令以控制作业的运行。该接口又进一步分为联机用户接口和脱机用户接口。

  1. 联机用户接口。这是为联机用户提供的,它由一组键盘操作命令及命令解释程序所组成。当用户在终端或控制台上每键入一条命令后,系统便立即转入命令解释程序,对该命令加以解释并执行该命令。在完成指定功能后,控制又返回到终端或控制台上,等待用户键入下一条命令。这样,用户可通过先后键入不同命令的方式,来实现对作业的控制, 直至作业完成.

  2. 脱机用户接口。该接口是为批处理作业的用户提供的,故也称为批处理用户接口。 该接口由一组作业控制语言(JCL)组成。批处理作业的用户不能直接与自己的作业交互作用,只能委托系统代替用户对作业进行控制和干预。如果作业在执行过程中出现异常现象,系统也将根据作业说明书上的指示进行干预。这样,作业一直在作业说明书的控制下运行,直至遇到作业结束语句时,系统才停止该作业的运行。

  3. 图形用户接口。用户虽然可以通过联机用户接口来取得 OS 的服务,这既不方便又花时间,于是,另一种形式的联机用户接口——图形用户接口便应运而生。图形用户接口用户可用鼠标或通过菜单和对话框来完成对应用程序和文件的操作。此时用户已完全不必像使用命令接口那样去记住命令名及格式,从而把用户从繁琐且单调的操作中解脱出来。

程序接口

该接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的惟一途径。它是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求 OS 提供某种服务(功能)时,便调用具有相应功能的系统调用。

 

参考:《计算机操作系统 第三版》西安电子科技大学

更多:Python 目录

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值