计算机操作系统(第3版)汤子瀛摘抄笔记系列(一) 第一章 操作系统引论

写在前面。此为关于计算机操作系统(第3版)汤子瀛的摘抄笔记系列,并不是终版。未来会保持更新,欢迎关注,批评指正。

第一章 操作系统引论

1.1操作系统的目标和作用

1.1.1目标

在计算机系统上配置操作系统的主要目标,首先与计算机系统的规模有关。大型中型计算机,看重机器的有效性,还希望os有很强的功能;对于配置在微机的操作系统,由于价格相对便宜,所以更看重方便性。
影响操作系统的主要目标的另一个重要因素是操作系统的应用环境。有对对响应时间的要求;有具有实时性和高度可靠性的要求。

目标一:有效性,包含两方面。

在早期(50~60 年代),由于计算机系统非常昂贵,最重要的目标是有效性。

  1. 提高系统资源利用率
    配置了 OS 之后,可使 CPU 和 I/O 设备由于能保持忙碌状态而得到有效的利用,且可使内存和外存中存放的数据因有序而节省了存储空间。
  2. 提高系统的吞吐量
    操作系统还可以通过合理地组织计算机的工作流程,而进一步
    改善资源的利用率,加速程序的运行,缩短程序的运行周期,从而提高系统的吞吐量。

目标二:方便性。

配置 OS 后可使计算机系统更容易使用。
因为未配置 OS 的计算机系统,其硬件只能识别 0 和 1 这样的机器代码。配置了 OS,用户便可通过 OS 所提供的各种命令来使用计算机系统。
比如,用编译命令可方便地把用户用高级语言书写的程序翻译成机器代码,大大地方便了用户,从而使计算机变得易学易用。

方便性和有效性是设计操作系统时最重要的两个目标。过去因计算机系统昂贵,所以有效性重要;
后来硬件越来越便宜,人们更重视更方便地使用计算机,故在微机操作系统中都配置了受到用户广泛欢迎的图形用户界面,提供了大量的供程序员使用的系统调用。

目标三:可扩充性。

OS 必须具有很好的可扩充性,方能适应计算机硬件、体系结构以及应用发展的要求。这就是说,现代 OS 应采用新的 OS 结构,如微内核结构和客户服务器模式,以便于方便地增加新的功能和模块,并能修改老的功能和模块。

目标四:开放性。

开放性是指系统能遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,均能彼此兼容,可方便地实现互连。开放性已成为 20 世纪 90 年代以后计算机技术的一个核心问题,也是一个新推出的系统或软件能否被广泛应用的至关重要的因素。

1.1.2 作用

可以从不同的观点(角度)来观察 OS 的作用。从一般用户的观点,可把 OS 看做是用户与计算机硬件系统之间的接口;
从资源管理的观点看,则可把 OS 视为计算机系统资源的管理者;
另外,OS 实现了对计算机资源的抽象,隐藏了对硬件操作的细节,使用户能更方便地使用机器。

1. OS 作为用户与计算机硬件系统之间的接口

OS 处于用户与计算机硬件系统之间,用户通过 OS 来使用计算机系统。OS 是一个系统软件,因而这种接口是软件接口。
用户可通过以下三种方式使用计算机。
(1) 命令方式
(2) 系统调用方式
OS 提供了一组系统调用,用户可在自己的应用程序中通过相应的系统调用,来实现与操作系统的通信,并取得它的服务。
(3) 图形、窗口方式

2.OS 作为计算机系统资源的管理者

资源分为四类:处理器、存储器、I/O 设备以及信息(数据和程序)
处理机管理,用于分配和控制处理机
存储器管理,主要负责内存的分配与回收
I/O 设备管理,负责 I/O 设备的分配与操纵
文件管理,负责文件的存取、共享和保护。
操作系统必须记录下各种资源的使用情况,对使用资源的请求进行授权,协调诸用户对共享资源的使用,避免发生冲突,并计算使用资源的费用等。

3.OS 实现了对计算机资源的抽象

OS 是铺设在计算机硬件上的多层系统软件,它们不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它们实现了对计算机硬件操作的多个层次的抽象。值得说明的是,对一个硬件在底层进行抽象后,在高层还可再次对该资源进行抽象,成为更高层的抽象模型。随着抽象层次的提高,抽象接口所提供的功能就越来越强,用户使用起来也更加方便。

1.1.3 推动操作系统发展的主要动力

1. 不断提高计算机资源的利用率

如初期的能自动地对一批作业进行处理的多道批处理系统;
在 20 世纪 60 和 70 年代,又分别出现了能有效提高 I/O 设备和 CPU利用率的 SPOOLing 系统和改善存储器系统利用率的虚拟存储器技术;
在网络环境下,在服务器上配置了允许所有网络用户访问的文件系统和数据库系统。

2. 方便用户

当资源利用率不高的问题得到基本解决后,用户在上机、调试程序时的不方便性便又成为主要矛盾。随之便形成了允许进行人机交互的分时系统,或称为多用户系统。在 20 世纪 90 年代初出现了受到用户广泛欢迎的图形用户界面,极大地方便了用户使用计算机。

3. 器件的不断更新换代

微电子技术的迅猛发展,推动着计算机器件,特别是微机芯片的不断更新,使得计算机的性能迅速提高,规模急剧扩大,从而推动了 OS 的功能和性能也迅速增强和提高。在多处理机快速发展的同时,外部设备也在迅速发展。

4.计算机体系结构的不断发展

计算机体系结构的发展,也不断推动着 OS 的发展并产生新的操作系统类型。例如,当计算机由单处理机系统发展为多处理机系统时,相应地,操作系统也就由单处理机 OS 发展为多处理机 OS。又如,当出现了计算机网络后,配置在计算机网络上的网络操作系统也就应运而生,它不仅能有效地管理好网络中的共享资源,而且还向用户提供了许多网络服务。

1.2 操作系统的发展过程

1.2.1 无操作系统的计算机系统

1.人工操作方式

过程:
程序员将事先已穿孔(对应于程序和数据)的纸带(或卡片)装入纸带输入机(或卡片输入机),再启动它们将程序和数据输入计算机,然后启动计算机运行。当程序运行完毕并取走计算结果之后,才让下一个用户上机。

有以下两方面的缺点:
(1) 用户独占全机。此时,计算机及其全部资源只能由上机用户独占。
(2) CPU 等待人工操作。当用户进行装带(卡)、卸带(卡)等人工操作时,CPU 及内存等资源是空闲的。
引起的问题:

  1. 人工操作方式严重降低了计算机资源的利用率,此即所谓的人机矛盾。随着 CPU速度的提高和系统规模的扩大,人机矛盾变得日趋严重。
  2. 随着 CPU 速度的迅速提高而 I/O 设备的速度却提高缓慢,这又使 CPU 与 I/O 设备之间速度不匹配的矛盾更加突出。

2.脱机输入/输出方式

过程:该技术是事先将装有用户程序和数据的纸带(或卡片)装入纸带输入机(或卡片机),在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上。当 CPU 需要这些程序和数据时,再从磁带上将其高速地调入内存。
类似地,当 CPU 需要输出时,可由 CPU 直接高速地把数据从内存送到磁带上,然后再在另一台外围机的控制下,将磁带上的结果通过相应的输出设备输出。
为了解决人机矛盾及 CPU 和 I/O 设备之间速度不匹配的矛盾。
在主机的直接控制下进行输入/输出的方式称为联机输入/输出(On-Line I/O)方式。这种脱机 I/O方式的主要优点如下:
(1) 减少了 CPU的空闲时间。装带(卡)、卸带(卡)以及将数据从低速 I/O 设备送到高速磁带(或盘)上,都是在脱机情况下进行的,并不占用主机时间,从而有效地减少了CPU 的空闲时间,缓和了人机矛盾。
(2) 提高了 I/O 速度。当 CPU 在运行中需要数据时,是直接从高速的磁带或磁盘上将数据调入内存的,不再是从低速 I/O 设备上输入,极大地提高了 I/O 速度,从而缓和了 CPU和 I/O 设备速度不匹配的矛盾,进一步减少了 CPU 的空闲时间。

1.2.2 单道批处理系统

后来50年代发明了晶体管,用晶体管替代真空管来制作计算机,出现了第二代计算机。它使计算机的体积减小,功耗降低,可靠性提高。
但计算机系统仍非常昂贵。为了能充分地利用它,应尽量让该系统连续运行,以减少空闲时间。
为此,通常是把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在它的控制下使这批作业能一个接一个地连续处理。
过程:
首先,由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给该作业。当该作业处理完成时,又把控制权交还给监督程序,再由监督程序把磁带(盘)上的第二个作业调入内存。计算机系统就这样自动地一个作业一个作业地进行处理,直至磁带(盘)上的所有作业全部完成,这样便形成了早期的批处理系统。系统对作业的处理都是成批地进行的,且在内存中始终只保持一道作业。
批处理系统旨在提高系统资源的利用率和系统吞吐量。但这种单道批处理系统仍然不能很好地利用系统资源,故现已很少使用。
主要特征:
自动性;顺序性;单道性。

1.2.3 多道批处理系统

20 世纪 60 年代中期,人们开始利用小规模集成电路来制作计算机,生产出第三代计算机。较之于晶体管计算机,无论在体积、功耗、速度和可靠性上,都有了显著的改善。
在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差。为了进一步提高资源的利用率和系统吞吐量故而引入了多道程序设计技术
过程:
在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享 CPU 和系统中的各种资源。

引入多道程序设计技术可带来以下好处

  1. 提高 CPU 的利用率;
  2. 可提高内存和 I/O 设备利用率;
  3. 增加系统吞吐量。在保持 CPU、I/O 设备不断忙碌的同时,也必然会大幅度地提高系统的吞吐量,从而降低作业加工所需的费用。

优缺点
1. 资源利用率高
2. 系统吞吐量大。系统吞吐量是指系统在单位时间内所完成的总工作量。吞吐量能提高的主要原因可归结为:第一,CPU 和其它资源保持“忙碌”状态; 第二,仅当作业完成时或运行不下去时才进行切换,系统开销小。
3. 平均周转时间长。作业的周转时间是指从作业进入系统开始,直至其完成并退出系统为止所经历的时间。
4. 无交互能力。用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进行交互,这对修改和调试程序是极不方便的。
多道批处理系统需要解决的问题
处理机管理问题;内存管理问题;I/O 设备管理问题;文件管理问题;作业管理问题。故增加一组软件,用以对上述问题进行妥善、有效的处理,正是这样一组软件构成了操作系统。
所以我们可把操作系统定义为:操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。

1.2.4 分时系统

用户的需求表现在:
(1) 人-机交互;
(2) 共享主机;
(3) 便于用户上机。
分时系统是指,在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。
特征

  1. 多路性;即同时性,它提高了资源利用率,降低了使用费用。宏观上,是多个用户同时工作,共享系统资源;而微观上,则是每个用户作业轮流运行一个时间片(可使每个用户都能及时地与自己的作业交互,从而可使用户的请求得到及时响应)。
  2. 独立性。每个用户各占一个终端,彼此独立操作,互不干扰。因此,用户所感觉到的,就像是他一人独占主机。
  3. 及时性。用户的请求能在很短的时间内获得响应。此时间间隔是以人们所能接受的等待时间来确定的,通常仅为 1~3 秒钟。
  4. 交互性。用户可通过终端与系统进行广泛的人机对话。其广泛性表现在:用户可以请求系统提供多方面的服务,如文件编辑、数据处理和资源共享等。

1.2.5 实时系统

概念
是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
为了满足实时控制实时信息处理应用需求。
实时控制系统如火炮的自动控制系统、飞机的自动驾驶系统,以及导弹的制导系统等。
实时信息处理系统如早期的飞机或火车的订票系统、情报检索系统等。

实时任务:按照对截止时间的要求来划分
硬实时任务(Hard real-time Task)。系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。
软实时任务(Soft real-time Task)。它也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影响也不会太大。

实时系统与分时系统特征的比较

实时系统有着与分时系统相似但并不完全相同的特点,下面从五个方面对这两种系统
加以比较。

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

1.2.6 微机操作系统的发展(略)

1.3 操作系统的基本特性

1.3.1 并发性

1.并行与并发

并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。宏观上有多个程序在同时运行,微观上这些程序只能是分时地交替执行。

2.引入进程

通常的程序是静态实体,引入进程的目的,就是为了使多个
程序能并发执行。引入进程的好处,为计算程序和 I/O 程序各建立一个进程,则这两个进程便可并发执行。将系统中的 CPU 和 I/O 设备同时开动起来,实现并行工作;可以在内存中存
放多个用户程序,让这些进程可以并发执行。都有效地提高了系统资源的利用率和系统吞吐量,并改善了系统的性能。

进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。一个进程在运行时需要一定的资源,如 CPU、存储空间及 I/O 设备等

3.引入线程

通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的 OS 中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效地提高系统内多个程序间并发执行的程度。

1.3.2 共享性

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

  1. 互斥共享方式
    内容: 当一个进程 A 要访问某资源时,必须先提出请求。如果此时该资源空闲,系统便可将之分配给请求进程 A 使用。此后若再有其它进程也要访问该资源时(只要 A 未用完),则必须等待。仅当 A 进程访问完并释放该资源后,才允许另一进程对该资源进行访问。
    临界资源或独占资源:在一段时间内只允许一个进程访问的资源。例子:计算机系统中的大多数物理设备,以及某些软件中所用的栈、变量和表格,都属于临界资源。
  2. 同时访问方式
    系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问(宏观同时,微观交替访问)。典型的可供多个进程“同时”访问的资源是磁盘设备,一些用重入码编写的文件也可以被“同时”共享,即若干个用户同时访问该文件。
    并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。

1.3.3 虚拟技术

操作系统中的所谓“虚拟”(Virtual),是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。物理实体(前者)是实的,即实际存在的,而后者是虚的,仅是用户感觉上的东西
用于实现虚拟的技术称为虚拟技术。有两种:

1.时分复用技术

时分复用,亦即分时使用方式。

1) 虚拟处理机技术

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

2) 虚拟设备技术

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

2.空分复用技术

1) 虚拟磁盘技术

虚拟磁盘技术也是采用了空分复用方式,即它将硬盘划分为若干个卷,例如 1、2、3、4 四个卷,再通过安装程序将它们分别安装在 C、D、E、F 四个逻辑驱动器上,这样,机器上便有了四个虚拟磁盘。当用户要访问 D 盘中的内容时,系统便会访问卷 2 中的内容。

2) 虚拟存储器技术

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

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

1.3.4 异步性

由于资源等因素的限制,使进程的执行通常都不是“一气呵成”,而是以“停停走走”的方式运行(举了打印机临界资源的例子)。进程是以人们不可预知的速度向前推进,此即进程的异步性。(如内存中的每个进程在何时能获得处理机运行,何时又因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需多少时间才能完成,等等,这些都是不可
预知的。)

1.4 操作系统的主要功能

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

1.4.1 处理机管理功能

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

1.进程控制

进程控制的主要功能是为作业创建进程,撤消已结束的进程,以及控制进程在运行过程中的状态转换。在现代 OS 中,进程控制还应具有为一个进程创建若干个线程的功能和撤消(终止)已完成任务的线程的功能。

2.进程同步(没懂!后面再看)

进程同步的主要任务是为多个进程(含线程)的运行进行协调。有两种协调方式:
(1) 进程互斥方式
这是指诸进程(线程)在对临界资源进行访问时,应采用互斥方式;
(2) 进程同步方式
这是指在相互合作去完成共同任务的诸进程(线程)间,由同步机构对它们的执行次序加以协调。
为了实现进程同步,系统中必须设置进程同步机制。最简单的用于实现进程互斥的机制是为每一个临界资源配置一把锁 W,当锁打开时,进程(线程)可以对该临界资源进行访问;而当锁关上时,则禁止进程(线程)访问该临界资源。而实现进程同步的最常用的机制则是信号量机制,我们将在第二章中做详细介绍。

3.进程通信

由一些进程(线程)相互合作去完成一个共同的任务。那么这些进程(线程)之间往往需要交换信息。进程通信的任务就是用来实现在相互合作的进程之间的信息交换。
例如,有三个相互合作的进程,它们是输入进程、计算进程和打印进程。输入进程负责将所输入的数据传送给计算进程;计算进程利用输入数据进行计算,并把计算结果传送给打印进程;最后,由打印进程把计算结果打印出来。
当相互合作的进程(线程)处于同一计算机系统时,通常在它们之间是采用直接通信方式,即由源进程利用发送命令直接将消息(Message)挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息。

4.调度

在后备队列上等待的每个作业都需经过调度才能执行。在传统的操作系统中,包括作业调度和进程调度两步。
(1) 作业调度
作业调度的基本任务是从后备队列中按照一定的算法,选择出若干个作业,为它们分配运行所需的资源(首先是分配内存)。在将它们调入内存后,便分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并按照一定的算法将它们插入就
绪队列。
(2) 进程调度
进程调度的任务是从进程的就绪队列中,按照一定的算法选出一个进程,把处理机分配给它,并为它设置运行现场,使进程投入执行。
值得提出的是,在多线程 OS中,通常是把线程作为独立运行和分配处理机的基本单位,为此,须把就绪线程排成一个队列,每次调度时,是从就绪线程队列中选出一个线程,把处理机分配给它。

1.4.2 存储器管理功能

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

1.内存分配

OS 在实现内存分配时,可采取静态和动态两种方式。
在静态分配方式中,每个作业的内存空间是在作业装入时确定的;在作业装入后的整个运行期间,不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”。
在动态分配方式中,每个作业所要求的基本内存空间也是在装入时确定的,但允许作业在运行过程中继续申请新的附加内存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。
为了实现内存分配,在内存分配的机制中应具有这样的结构和功能:
(1) 内存分配数据结构。该结构用于记录内存空间的使用情况,作为内存分配的依据。
(2) 内存分配功能。系统按照一定的内存分配算法为用户程序分配内存空间。
(3) 内存回收功能。系统对于用户不再需要的内存,通过用户的释放请求去完成系统的回收功能。

2.内存保护

内存保护的主要任务是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰(一种比较简单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界,越界检查由硬件实现);
绝不允许用户程序访问操作系统的程序和数据;
也不允许用户程序转移到非共享的其它用户程序中去执行。

3.地址映射

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

4.内存扩充

存储器管理中的内存扩充任务借助于虚拟存储技术,从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多,以便让更多的用户程序并发运行。这样,既满足了用户的需要,又改善了系统的性能。为此,只需增加少量的硬件。为了能在逻辑上扩充内存,系统必须具有内存扩充机制,用于实现下述各功能:
(1) 请求调入功能。允许在装入一部分用户程序和数据的情况下,就启动该程序运行。在程序运行过程中,若发现要继续运行时所需的程序和数据尚未装入内存,可向 OS 发出请求,由 OS 从磁盘中将所需部分调入内存,以便继续运行。
(2)置换功能。若发现在内存中已无足够的空间来装入需要调入的程序和数据时,系统应能将内存中的一部分暂时不用的程序和数据调至盘上,以腾出内存空间,然后再将所需调入的部分装入内存。

1.4.3 设备管理功能

设备管理的主要任务是:

  1. 完成用户进程提出的 I/O 请求;
  2. 为用户进程分配其所需的 I/O 设备;
  3. 提高 CPU 和 I/O 设备的利用率;
  4. 提高 I/O 速度;
  5. 方便用户使用 I/O 设备。
  6. 为实现上述任务,设备管理应具有缓冲管理、设备分配和设备处理以及虚拟设备等功能。

1.缓冲管理

如果在 I/O 设备和 CPU之间引入缓冲,则可有效地缓和 CPU 与 I/O 设备速度不匹配的矛盾,提高 CPU 的利用率,进而提高系统吞吐量。而且还可通过增加缓冲区容量的方法来改善系统的性能。
最常见的缓冲区机制有单缓冲机制、能实现双向同时传送数据的双缓冲机制,以及能供多个设备同时使用的公用缓冲池机制。上述这些缓冲区都将由 OS 中的缓冲管理机制将它们管理起来

2.设备分配

设备分配的基本任务是根据用户进程的 I/O 请求、系统的现有资源情况以及按照某种设备的分配策略,为之分配其所需的设备。如果在 I/O 设备和 CPU 之间还存在着设备控制器和 I/O 通道时,还须为分配出去的设备分配相应的控制器和通道。

3.设备处理

设备处理程序又称为设备驱动程序。其基本任务是用于实现 CPU 和设备控制器之间的通信,即由 CPU 向设备控制器发出 I/O 命令,要求它完成指定的 I/O 操作;反之,由 CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。

1.4.4 文件管理功能

文件管理的主要任务是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。为此,文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理,以及文件的共享与保护等功能。

1.文件存储空间的管理

其主要任务是为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的存、取速度。为了提高存储空间的利用率,对存储空间的分配,通常是采用离散分配方式,以减少外存零头,并以盘块为基本分配单位。盘块的大小通常为 1~8 KB。

2.目录管理

目录管理的主要任务是为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取,即用户只须提供文件名便可对该文件进行存取。其次,目录管理还应能实现文件共享,这样,只须在外存上保留一份该共享文件的副本。此外,还应能提供快速的目录查询手段,以提高对文件的检索速度。

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

(1) 文件的读/写管理。该功能是根据用户的请求,从外存中读取数据,或将数据写入外存。
(2) 文件保护。为了防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能,以实现下述目标:
① 防止未经核准的用户存取文件;
② 防止冒名顶替存取文件;
③ 防止以不正确的方式使用文件

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

1.用户接口

它是提供给用户使用的接口,用户可通过该接口取得操作系统的服务。进一步分为联机用户接口和脱机用户接口。

2.程序接口

它是提供给程序员在编程时使用的接口,是用户程序取得操作系统服务的惟一途径。
该接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的惟一途径。它是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求 OS 提供某种服务(功能)时,便调用具有相应功能的系统调用。高级语言以及 C 语言中,往往提供了与各系统调用一一对应的库函数。

1.5 OS 结构设计(略)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值