===第一章操作系统引论======(2)https://developer.aliyun.com/article/1415704
1.4.2 存储器管理功能
存储器管理的主要任务,是为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存。为此,存储器管理应具有内存分配和回收、内存保护、地址映射和内存扩充等功能。
内存分配
内存分配的主要任务是:
(1)为每道程序分配内存空间,使它们“各得其所”。
(2)提高存储器的利用率,尽量减少不可用的内存空间(碎片)。
(3)允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
OS在实现内存分配时,可采取静态和动态两种方式:
(1) 静态分配方式。每个作业的内存空间是在作业装入时确定的,在作业装入后的整个运行期间不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”。
(2)动态分配方式。每个作业所要求的基本内存空间虽然也是在装入时确定的,但允许作业在运行过程中继续申请新的附加内存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”。
内存保护
内存保护的主要任务是:
①确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰。
②绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共
享的其它用户程序中去执行。
为了确保每道程序都只在自己的内存区中运行,必须设置内存保护机制。一种比较简单的内存保护机制是设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。在程序运行时,系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止该程序的执行。
地址映射
在多道程序环境下,由于每道程序经编译和链接后所形成的可装入程序其地址都是从0开始的,但不可能将它们从“0”地址(物理)开始装入内存,致使(各程序段的)地址空间内的逻辑地址与其在内存空间中的物理地址并不相一致。为保证程序能正确运行,存储器管理必须提供地址映射功能,即能够将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能应在硬件的支持下完成。
内存扩充
内存扩充并非是从物理上去扩大内存的容量,而是借助于虚拟存储技术,从逻辑上扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多,以便让更多的用户程序能并发运行。这样既满足了用户的需要,又改善了系统的性能。为了能在逻辑上扩充内存,系统必须设置内存扩充机制(包含少量的硬件),用于实现下述各功能:
(1)请求调入功能,系统允许在仅装入部分用户程序和数据的情况下,便能启动该程
序运行。在程序运行过程中,若发现要继续运行时所需的程序和数据尚未装入内存,可向
OS发出请求,由OS从磁盘中将所需部分调入内存,以便继续运行。
(2)置换功能,若发现在内存中已无足够的空间来装入需要调入的程序和数据时,系统应能将内存中的一部分暂时不用的程序和数据调至硬盘上,以腾出内存空间,然后再将所需调入的部分装入内存。
1.4.3 设备管理功能
设备管理的主要任务如下:
(1)完成用户进程提出的 I/O 请求,为用户进程分配所需的 I/O 设备,并完成指定的 I/O操作。
(2)提高 CPU 和 I/O 设备的利用率,提高 I/O速度,方便用户使用 I/O设备。
为实现上述任务,设备管理应具有 缓冲罐里、设备分配和设备处理以及虚拟设备等功能。
缓冲管理:有效地缓和 CPU和 I/O 设备速度不匹配的矛盾,提高CPU的利用率,进而提高系统吞吐量。常见的缓冲区机制有:单缓冲机制、能实现双向同时传送数据的双缓冲机制、能供多个设备同时使用的公用缓冲池机制。上述这些缓冲区都由 OS 缓冲管理机制将他们管理起来。
设备分配:基本任务是根据用户进程的I/O请求、系统现有资源情况以及按照某种设备分配策略,为之分配其所需的设备。
设备处理:基本任务是用于实现 CPU和设备控制器之间的通信,即由 CPU向设备控制器发出 I/O命令,要求它完成指定的 I/O操作;反之,由 CPU接受从控制器发过来的中断请求,并给予迅速的响应和相应的处理。
设备处理过程是:首先检查I/O请求的合法性,了解设备状态是否是空闲的,读取有
关的传递参数及设置设备的工作方式。然后向设备控制器发出IO命令,启动I/O设备完成指定的I/O操作。此外设备驱动程序还应能及时响应由控制器发来的中断请求,并根据该中断请求的类型,调用相应的中断处理程序进行处理。对于设置了通道的计算机系统,设备处理程序还应能根据用户的I/O请求自动地构成通道程序。
1.4.4. 文件管理功能
文件管理的主要任务是对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。为此,文件管理应具有对文件存储空间的管理、目录管理、文件的读/写管理以及文件的共享与保护等功能。
- 文件存储空间的管理
在多用户环境下,若由用户自己对文件的存储进行管理,不仅非常困难,而且也必然十分低效。因而需要由文件系统对诸多文件及文件的存储空间实施统一的管理。其主要任务是:为每个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的存、取速度。为此,系统中应设置相应的数据结构,用于记录文件存储空间的使用情况,以供分配存储空间时参考。还应具有对存储空间进行分配和回收的功能。目录管理
目录管理的主要任务是为每个文件建立一个目录项,目录项包括文件名、文件属性、文件在磁盘上的物理位置等,并对众多的目录项加以有效的组织,以实现方便的按名存取。即用户只需提供文件名,即可对该文件进行存取。目录管理还应能实现文件共享,这样,只需在外存上保留一份该共享文件的副本。此外,还应能提供快速的目录查询手段,以提高对文件检索的速度。
文件的读/写管理和保护
(1)文件的读/写管理。该功能是根据用户的请求,从外存中读取数据,或将数据写入外存。在进行文件读/写时,系统先根据用户给出的文件名去检索文件目录,从中获得文件在外存中的位置。然后,利用文件读/写指针,对文件进行读/写。-旦读/写完成, 便修改读/写指针,为下一次读/写做好准备。由于读和写操作不会同时进行,故可合用一个读/写指针。
(2)文件保护。为了防止系统中的文件被非法窃取和破坏,在文件系统中必须提供有效的存取控制功能,以实现下述目标:
①防止未经核准的用户存取文件:
②防止冒名顶存取控制功能
③防止意不正确的方式使用文件
1.4.5 操作系统与用户之前的接口
用户接口
为了便于用户直接或间接地控制自己的作业,操作系统向用户提供了命令接口。用户可通过该接口向作业发出命令以控制作业的运行。该接口又进- -步 分为联机用户接口、脱机用户接口和图形用户接口三种。
(1)联机用户接口。这是为联机用户提供的,它由一组键盘操作命令及命令解释程序组成。当用户在终端或控制台上键入一条命令后,系统便立即转入命令解释程序,对该命令加以解释执行。在完成指定功能后系统又返回到终端或控制台上,等待用户键入下一条.命令。这样,用户便可通过先后键入不同命令的方式来实现对作业的控制,直至作业完成。
(2)脱机用户接口。这是为批处理作业的用户提供的。用户用作业控制语言JCL把需要对作业进行的控制和干预的命令事先写在作业说明书上,然后将它与作业一起提供给 系统。当系统调度到该作业运行时,通过调用命令解释程序去对作业说明书上的命令逐条解释执行,直至遇到作业结束语句时系统才停止该作业的运行。
(3)图形用户接口。通过联机用户接口取得OS的服务既不方便又花时间,用户必须熟记所有命令及其格式和参数,并逐个字符地键入命令,于是图形用户接口便应运而生。图形用户接口采用了图形化的操作界面,用非常容易识别的各种图标(icon)来将系统的各项功能、各种应用程序和文件直观、逼真地表示出来。用户可通过菜单(和对话框)用移动鼠标选择菜单项的方式取代命令的键入,以方便、快捷地完成对应用程序和文件的操作,从而.把用户从繁琐且单调的操作中解脱出来。
程序接口
程序接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径。它是由一组系统调用组成的,每一个系统调用都是一个能完成特定功能的子程序。每当应用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用(子程序)。早期的系统调用都是用汇编语言提供的,只有在用汇编语言书写的程序中才能直接使用系统调用。
在高级语言以及C语言中,往往提供了与各系统调用一对应的库函数,这样,应程序便可通过调用对应的库函数来使用系统调用。但在近几年所推出的操作系统中,如UNIX、OS/2版本中,其系统调用本身已经采用C语言编写,并以函数形式提供,故在用C语言编制的程序中,可直接使用系统调用。
1.4.6 现代操作系统的新功能
系统安全
在现代 OS中采取了很多有效措施来保证系统安全如:(不再详细介绍)
(1)认证技术
(2)密码技术
(3)访问控制技术
(4)反病毒技术
网络的功能和服务
在现代OS中,为支持用户联网取得各类网络所提供的服务,如电子邮件服务、Web服务等,应在操作系统中增加面向网络的功能,用于实现网络通信和资源管理,以及提供用户取得网络服务的手段。作为一个网络操作系统,应当具备多方面的功能:
(1)网络通信,用于在源主机和目标主机之间,实现无差错的数据传输,如建立和拆除通信链路、传输控制、差错控制和流量控制等。
(2)资源管理,即对网络中的共享资源(硬件和软件)实施有效的管理,协调诸用户对共享资源的使用,保证数据的安全性和一致性。典型的共享硬件资源有硬盘、打印机等,软件资源有文件和数据。
(3)应用互操作,即在一个由若干个不同网络互连所构成的互连网络中,必须提供应用互操作功能,以实现信息的互通性和信息的互用性。信息的互通性是指在不同网络中的用户之间,能实现信息的互通。信息的互用性是表示用户可以访问不同网络中的文件系统和数据库系统中的信息。
支持多媒体
一个支持多媒体的操作系统必须能像一般OS处理文字、图形信息那样去处理音频和
视频信息等多媒体信息,为此,现代操作系统增加了多媒体的处理功能:
(1)接纳控制功能
(2)实时调度
(3)多媒体文件的存储。
1.5 OS结构设计
1.5.1 传统操作系统结构
无结构的OS(第一代)、模块化结构的OS(第二代)、分层式结构的OS(第三代),为内核结构的OS称为现代OS。
无结构操作系统(略)
模块化结构OS
(1)模块化程序设计技术的基本概念:该技术基于“分解”和“模块化”的原则来控制大型软件的复杂度。按其功能划分为若干个具有一定独立性和大小的模块,并仔细规定好各模块间的接口,使各模块之间能通过接口实现交互。然后在进一步将各个模块划分为若干个具有一定功能的子模块,同样也规定好各个子模块之间的接口。若子模块较大,可以在进一步将它细分。这种方法称为模块——接口法,由此构成的操作系统就是具有模块化结构的操作系统。如图1-7出示有模块、子模块等组成的模块化OS结构。
(2)模块独立性
如果我们在划分模块时将模块划分的太小,虽然可以减低模块本身的复杂性,但会引起模块之间的联系过多,从而会造成系统比较混乱;如果将模块划分的过大,又会增加模块内部的复杂性,使内部的联系增加,因此应该权衡如何划分模块——参考以下两个标准:
①内聚性,指模块内部各部分之间联系的紧密程度。内聚性越高,模块独立性越强
②耦合性,指模块间互相联系和相互影响的程度。耦合度越低,模块独立性越好。
(3)模块接口法的优缺点
优点
增强OS设计的正确性、可理解性和可维护性
增强OS的可适应性
加速OS的开发过程
模块化结构设计存的问题:
在OS设计时,对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求。
在OS设计阶段,设计者必须做出一系列决策。每一个决策必须建立在上一个决策的基础上。但是在模块化结构设计中,各个模块的设计是齐头并进的,没办法找到一个可靠地决定顺序,造成各种决定的“无序性”,这使得程序员很那座岛“设计中的每一部决定”,都是建立在可靠地基础上,因此 模块——接口法由内称为“无序模块法”。
分层式结构OS
(2)分层结构的优缺点
优点
易保证系统的正确性
易扩充和易维护。
分层结构的主要缺点是系统效率低。由于层次结构是分层单项依赖的,必须在每层之间都建立层次间的通信机制,OS每执行一个功能,通常要自上而下地穿越多个层次,这样无疑会增加系统的通信开销,从而导致系统效率的降低。
===第一章操作系统引论======(4)https://developer.aliyun.com/article/1415712?spm=a2c6h.13148508.setting.20.6e1a4f0eQzpjQW