持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,点击查看活动详情
四、设备管理
设备管理是操作系统中最繁重而且与硬件紧密相关的部分,不但要管理实际I/O操作的设备(如打印机、扫描仪、键盘和鼠标等),还要管理如设备控制器、DMA控制器、中断控制器和I/O处理机(通道)等设备。设备管理包括各种设备分配、缓冲区管理和实际物理I/O设备操作,通过管理达到提高设备利用率和方便用户使用的目的。
1、设备管理概述
设备是计算机系统与外界交互工具,具体负责计算机与外部的输入/输出工作,所以称为外部设备(简称外设)。在计算机系统中,将负责管理设备和输入/输出的机构称为输入/输出系统。因此,输入/输出系统由设备、控制器、通道(具有通道的计算机系统)、总线和输入/输出软件组成。设备管理是操作系统设计中最繁杂的领域,涉及的设备数量众多、类型各异。
1.1、设备的分类
打印机、显示器、鼠标、键盘和扫描仪等是在现代的计算机系统中很常见的设备,我们将这些设备进行不同的分类。
(1)按数据组织分类,分为块设备(Block Device)和字符设备(Character Device)。块设备是以数据块为单位来组织和传送数据信息,如磁盘。字符设备是指以单个字符为单位来传送数据信息的设备,如交互式终端、打印机等。
(2)从资源分配角度分类,分为独占设备、共享设备和虚拟设备。独占设备是指在一段时间内只允许一个用户(进程)访问的设备,大多数低速的I/O设备,如用户终端、打印机等属于这类设备。共享设备是指在一段时间内允许多个进程同时访问的设备,典型的共享设备是磁盘。虚拟设备是指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备,可以利用假脱机技术(Spooling技术)实现虚拟设备。
(3)按数据传输率分类,分为低速设备、中速设备和高速设备。典型的低速设备有键盘、鼠标和语音的输入等,其传输速率为每秒钟几个字节到数百个字节。中速设备是指传输速率在每秒钟数千字节至数万字节的设备,典型的设备有行式打印机、激光打印机等。高速设备是指传输速率在数十万字节至兆字节的设备,典型的设备有磁带机、光盘机和磁盘机等。
1.2、设备管理的目标与任务
(1)设备管理的目标
设备管理的目标主要是如何提高设备的利用率,为用户提供方便统一的界面。提高设备的利用率就是提高CPU与输入/输出设备之间的并行操作程度,主要的技术有中断技术、DMA技术、通道技术和缓冲技术。
所谓方便,是指用户能独立于具体设备的复杂物理特性之外而方便的使用设备。
所谓统一,是指对不同的设备尽量使用统一的操作方式。这就要求用户操作的是简便的逻辑设备,而具体的物理设备操作由操作系统去实现,这种性能常常被称为设备的独立性。
(2)设备管理的任务
在多道程序环境下,当多个进程竞争使用设备时,按一定策略分配和管理各种设备,控制设备的各种操作,完成I/O设备于主存之间的数据交换。
设备管理的主要功能是动态地掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理I/O设备的操作、提供设备使用的用户接口和设备的访问与控制。
2、设备管理技术(了解)
设备管理技术主要包括通道、DMA、缓冲和Spooling技术。
2.1、通道技术
引入通道的目的是使数据的传输独立于CPU,将CPU从繁琐的I/O工作种解脱出来。设置通道后,CPU只需向通道发出输入/输出命令,通道收到命令后,从内存中取出本次输入/输出要执行的通道程序加以执行,当通道完成输入/输出任务后,才向CPU发出中断信号。
由于通道价格昂贵,因此计算机系统中的通道数量有限,这往往会成为输入/输出的“瓶颈”问题。一个单通路的I/O系统中主存和设备之间只有一条通路。一旦通道被占用,即使另一通道空闲,链接此通道的其他设备只有等待。
2.2、DMA技术
直接内存存取是指数据在内存与输入/输出设备之间实现直接成块传送,即在内存与输入,即在内存与输入/输出设备之间传送一个数据块的过程中,只需要CPU在开始与结束时进行处理,实际操作过程由DMA硬件直接执行完成,CPU在此传送过程中可执行别的任务。例如,需要打印2048字节的数据,在DMA方式下,若一次DMA可传送512字节,则只需要执行4次输出指令和处理4次打印机中断。若一次DMA可传送字节数大于等于2048字节,则只需要执行一次输出指令和处理一次打印机中断。
2.3、缓冲技术
缓冲技术可提高外设利用率,尽可能使外设处于忙状态。缓冲技术可以采用硬件缓冲和软件缓冲。硬件缓冲是利用专门的硬件寄存器作为缓冲,软件缓冲是通过操作系统来管理。引入缓冲的主要目的如下:
(1)缓和CPU与输入/输出设备间速度不匹配的矛盾;
(2)减少对CPU的中断频率,放宽对中断响应时间的限制;
(3)提高CPU和输入设备之间的并行性。
在所有的输入/输出设备与处理机(内存)之间,都使用了缓冲区来交换数据,所以操作系统必须组织和管理好这些缓冲区。缓冲可分为单缓冲、双缓冲、多缓冲和环形缓冲。
2.4、Spooling技术
Spooling(Simultaneous Peripheral Operation On-Line,外部设备联机并行操作)是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。Spooling技术用一类物理设备模拟另一类物理设备,使独占使用的设备变成多台虚拟设备,它也是一种速度匹配技术。Spooling系统由“预输入程序”、“缓输出程序”和“井管理程序”以及输入和输出井组成。其中,输入井和输出井用于存放从输入的信息以及作业执行的结果,是系统在辅助存储器上开辟的存储区域。
Spooling系统的工作过程是:操作系统初启后激活Spooling预输入程序,使它处于捕获输入请求的状态,一旦有输入请求消息,Spooling输入程序立即得到执行,把装在输入设备上的作业输入到硬盘的输入井中,并填写好作业表以便作业在执行中要求输入信息时,可以随时找到它们的存放位置。当作业需要输出数据时,可以先将数据送到输出井,当输出设备空闲时,由Spooling输出程序把硬盘上输出井的数据送到慢速的输出设备上。
Spooling系统中拥有一张作业表,用来登记进入系统的所有作业的作业名、状态和预输入表位置等信息。每个用户作业拥有一张预输入表用来登记此作业的各个文件的情况,包括设备类、信息长度及存放位置等。输入井中的作业有如下4种状态。
●输入状态:作业的信息正从输入设备上预输入;
●收容状态:作业预输入结束但未被选中执行;
●执行状态:作业已被选中运行,运行过程中,它可从输入井中读取数据信息,也可向输出井写信息。
●完成状态:作业已经撤离,由系统进行善后处理。
3、磁盘调度
磁盘是可被多个进程共享的设备。当有多个进程请求访问磁盘时,为了保证信息的安全,系统每一时刻只允许一个进程启动磁盘进行I/O操作,其余的进程只能等待。因此,操作系统应采用一种适当的调度算法,使各进程对磁盘的平均访问时间最小。磁盘调度分为两类;移臂调度和旋转调度。系统先进行移臂调度,然后进行旋转调度。由于访问磁盘最耗时的是寻道时间,因此,磁盘调度的目标是使磁盘的平均寻道时间最少。
3.1、磁盘驱动调度
常用的磁盘调度算法有先来先服务、最短寻道时间优先、扫描算法和单向扫描调度算法等。
(1)先来先服务:先来先服务是最简单的磁盘调度算法,它根据进程请求访问磁盘和先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某进程的请求长期得不到满足的情况。但此算法由于未对寻到进行优化,致使平均寻道时间可能较长。
(2)最短寻道时间优先:最短寻道时间优先(Shortest Seek Time Frist,SSTF)算法选择进程时,要求其访问的磁道与当前磁头所在的磁道距离最近,使得每次的寻道时间最短,但这种调度算法却不能保证平均寻道时间最短。
(3)扫描算法:扫描算法(SCAN)不仅考虑到预访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如:当磁头正在由里向外移动时,SCAN算法所选择的下一个访问对象应是其预访问的磁道,既在当前磁道之外,又是距离最近的。这样由里向外地访问,直至再无更外地磁道需要访问时,才将磁臂换向,由外向里移动。这时,同样也是每次选择在当前磁道之内,且距离最近地进程来调度,这样,磁头逐步地向里移动,直至再无更里面的磁道需要访问。这种算法中磁头移动的规律与电梯的运行相似,所以又称为电梯调度算法。
(4)单向扫描调度算法。单向扫描调度算法(CSCAN)对扫描调度算法进行了改进。SCAN存在这样一个问题:当磁头刚从里向外移动过某一磁道时,恰好有一进程请求访问此磁道,这时此进程必须等待,待磁头从里向外,然后再从外向里扫描完所有要访问的磁道后,才处理此进程的请求,致使此进程的请求被严重地推迟。为了减少这种延迟,CSCAN算法规定磁头只作单向移动。
3.2、旋转调度算法
当移动臂定位后,有多个进程等待访问此柱面时,应当如何决定这些进程的访问顺序?这就是旋转调度要考虑的问题。显然,系统应该选择延时时间最短的进程对磁盘的扇区进行访问。当有若干等待进程请求访问磁盘上的信息时,旋转调度应考虑如下情况。
(1)进程请求访问的是同一磁道上的不同编号的扇区。
(2)进程请求访问的是不同磁道上的不同编号的扇区。
(3)进程请求访问的是不同磁道上具有相同编号的扇区。
对于(1)与(2),旋转调度总是让首先达到读写磁头位置下的扇区先进行传送操作;对于(3),旋转调度可以任选一个读写磁头位置下的扇区进行传送操作。
4、微内核操作系统
微内核操作系统就是把内核做得更小的操作系统,使系统的可靠性、稳定性和安全性得到提高,降低问题发生的概率,只把最核心的部分放入内核。
五、文件管理(了解)
操作系统中的文件系统专门负责管理外存储器上的信息,使用户可以“按名”高效、快捷和方便地存储信息。
1、基本概念
1.1、文件
文件(file)是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。例如,一个源程序、一个目标程序、编译程序、一批特加工的数据、各种文档都可以各自组成一个文件。
信息项是构成文件内容的基本单位,可以是一个字符,也可以是一个记录,记录可以等长,也可以不等长。文件包括文件体和文件说明。文件体是文件真实的内容;文件说明是操作系统为了管理文件所使用的信息,主要包括文件名、文件内部标识、文件类型、文件存储地址、文件长度、访问权限、建立时间和访问时间等内容。
文件是一种抽象机制,它隐藏了硬件和实现细节,提供了将信息保存在磁盘上并进行读取的手段,使用户不必了解信息存储的方法、位置以及存储设备的实际操作方式。操作系统根据文件名对文件进行控制和管理。在不同的操作系统中,文件的命令规则有所不同,即文件名字的格式和长度因系统而异。
1.2、文件系统
文件系统是操作系统中实现文件统一管理的一组软件和相关的数据的集合,专门负责管理和存取文件信息的软件机构。文件系统包括如下功能。
(1)按名存取,即用户可以“按名存取”,而不是“按地址存取”。
(2)统一的用户接口,即在不同设备上提供同样的接口,方便用户操作和编程。
(3)并发访问和控制,即在多道程序系统中支持对文件的并发访问和控制。
(4)安全性控制,即在多用户系统中的不同用户对同一文件可有不同的访问权限。
(5)优化性能,即采用相关技术提高系统对文件的存储效率、检索和读写性能。
(6)差错恢复,即能够验证文件的正确性,并具有一定的差错恢复能力。
1.3、文件分类
文件按照性质和用途、保存期限和保护方式等通常可分为:
(1)按文件性质和用途将文件分为系统文件、库文件和用户文件。
(2)按信息保存期限可将文件分为临时文件、档案文件和永久文件。
(3)按文件的保护方式可将文件分为只读文件、读写文件、可执行文件和不保存文件。
(4)UNIX系统将文件分为普通文件、目录文件和设备文件(特殊文件)。
文件分类的目的是对不同文件进行管理,提高系统效率以及用户界面友好性。当然,根据文件的存取方法和物理结构不同,还可以将文件分为不同的类型。
2、文件的结构和组织
文件的结构是指文件的组织形式。从用户角度看到的文件组织形式称为文件的逻辑结构,文件系统的用户只要知道所需要文件的文件名,而无须知道这些文件究竟存放在什么地方,就可存取文件中的信息。从实现的角度看文件在文件存储器上的存放方式,称为文件的物理结构。
2.1、文件的逻辑结构
文件的逻辑结构可分为两大类:一类是有结构的记录式文件,它是由一个以上的记录构成的文件,故又称为记录式文件;另一类是无结构的流式文件,它是由一串顺序字符流构成的文件。
(1)有结构的记录式文件
在记录式文件中,所有的记录通常都是描述一个实体集的,有着相同或不同数目的数据项,记录的长度可分为定长和不定长两类。
①定长记录:指文件中所有记录的长度相同。所有记录中的各个数据项都处在记录中相同的位置,具有相同的顺序及相同的长度,文件的长度用记录数目表示。定长记录的特点是处理方便,开销小。
②变长记录:指文件中各记录的长度不相同。这是因为:一个记录中所包含的数据项数目可能不同,如书的著作者、论文中的关键词;数据项本身的长度不定,例如:病历记录中的病因、病史,科技情报记录中的摘要等。但是,不论是哪一种结构,在处理前每个记录的长度是可知的。
(2)无结构的流式文件
文件体为字节流,不划分记录。无结构的流式文件通常采用顺序访问方式,并且每次读写访问可以指定任意的数据长度,其长度以字节为单位。对流式文件访问,是利用读写指针指出下一个要访问的字符。可以把流式文件看作是记录式文件的一个特例。在UNIX系统中,所有的文件都被看作是流式文件,即使是有结构的文件也被视为流式文件,系统不对文件进行格式处理。
2.2、文件的物理结构
文件的物理结构是指文件的内部组织形式,即文件在物理存储设备上的存放方法。下面介绍几种常见的文件物理结构。
(1)连续结构:也称为顺序结构,它将逻辑上连续的文件信息依次连续存放在连续编号的物理块上。只要知道文件的起始物理块号和文件的长度,就可以很方便的进行文件的存取。
(2)链式结构:也称为串联结构,它是将逻辑上连续的文件信息存放在不连续的物理块上,每个物理块设有一个指针指向下个物理块。所以,只要知道文件的第一个物理块号,就可以按链指针查找整个文件,结构与链表相似。
(3)索引结构:采用索引结构时,将逻辑上连续的文件信息存放在不连续的物理块中,系统为每个文件建立一张索引表。索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中。
(4)多个物理块的索引表。索引表是在文件创建时由系统自动建立的,并与文件一起存放在同一个文件卷上。根据一个文件大小的不同,其索引表占用物理块的个数不等,一般占一个或几个物理块。多个物理块的索引表可有两种组织方式:链接文件和多重索引方式。
在UNIX文件系统中采用三级索引结构,文件系统中i-node是基本的构件,它表示文件系统树型结构的结点。UNIX文件索引表项分4种寻址方式:直接寻址、一级间接寻址、二级间接寻址和三级间接寻址。
3、文件目录
为了实现“按名存取”,系统必须为每个文件设置用于描述和控制文件的数据结构,它至少要包括文件名和存放文件的物理地址,这个数据结构称为文件控制块(FCB),文件控制块的有序集合称为文件目录。换句话说,文件目录是由文件控制块组成的,专门用于文件检索。文件控制块也称为文件的说明或文件目录项(简称目录项)。
3.1、文件控制块
文件控制块中包含以下三类信息:
(1)基本信息类。如文件名、文件的物理地址、文件长度和文件块数等。
(2)存取控制信息类。文件的存取权限,如读、写执行(RWX)权限等。
(3)使用信息类。如文件建立日期、最后一次修改日期、最后一次访问日期、当前使用的信息、打开文件的进程数,以及在文件上的等待队列等。
文件控制块的信息因操作系统不同而异,UNIX文件系统中,FCB的各项信息为文件类型、存取权限、链接数、文件主、组名、文件长度、最后一次修改日期、文件名。文件目录是由文件控制块组成的,专用于文件的检索。文件目录可以存放在文件存储器固定位置,也可以以文件的形式存放在磁盘上。
3.2、目录结构
文件目录结构的组织方式直接影响文件的存取速度,关系的文件共享性和安全性,因此组织好文件的目录是设计文件系统的重要环节。常见的目录结构有三种:一级目录结构、二级目录结构和多级目录结构。
(1)一级目录结构:一级目录的整个目录组织是一个线性结构,在整个系统中只需建立一张目录表,系统为每个文件分配一个目录项(文件控制块)。一级目录结构简单,但缺点是查找速度慢,不允许重名和不便于实现文件共享等。
(2)二级目录结构:二级目录结构是为了克服一级目录结构存在的缺点而引入的,它是由主文件目录(Master File Directory,MFD)和用户目录(User File Directory,UFD)组成的。在主文件目录中,每个用户文件目录都占有一个目录项,其目录项中包括用户名和指向此用户目录文件的指针。用户目录由用户所有文件的目录项组成。
二级目录结构基本上克服了一级目录的缺点,其优点是提高了检索目录的速度,较好地解决了重名问题。采用二级目录结构虽然能有效地将多个用户隔离开,但当多个用户之间要相互合作去共同完成一个大任务,且一个用户又需要去访问其他用户的文件时,这种隔离便成为一个缺点,因为这种隔离使各用户之间不便于共享文件。
(3)多级目录结构:为了解决二级目录存在的问题,在多道程序设计系统中常采用多级目录结构,这种目录结构像一颗倒置的有根树,所以也称为树型目录结构。从树根向下,每个结点是一个目录,叶结点是文件。Windows和UNIX等操作系统均采用多级目录结构。
采用多级目录结构的文件系统中,用户要访问一个文件,必须指出文件所在的路径名,路径是从根目录开始到文件的通路上所有各级目录名拼起来得到的。各目录名之间,目录名与文件名之间需要用分隔符隔开。例如,在Windows中分隔符为“\”,在UNIX中分隔符为“/”。绝对路径名是指从根目录开始的完整文件名,即它是由从根目录开始的所有目录名以及文件名构成的。
3.3、树型目录结构
文件属性:R(只读文件)、A(存档属性)、S(系统文件)、H(隐藏文件)
文件名的组成:驱动器号(盘符)\路径\主文件名.扩展名
绝对路径:是指从盘符开始的路径。
相对路径:是指从当前路劲开始的路径。
4、存取方法、存取控制
4.1、文件的存取方法
文件的存取方法是指读写文件存储器上的一个物理块的方法,通常分为顺序存取和随机存取。顺序存取是指对文件中的信息按顺序依次读写的方式;随机存取是指可以按任意的次序随机地读写文件中的信息。
(1)顺序存取法:在提供记录式文件结构的系统中,顺序存取法严格按物理记录排列的顺序依次读取。如果当前读取的是Ri记录,则下一次要读取的记录自动地确定为Ri+1。在只提供无结构的流式文件中,顺序存取法是按读写的位移(Offset)从当前位置开始读写,每读完一段信息,读写位移自动加上这段信息的长度,以便读下一段信息。
(2)直接存取法:直接存取法允许用户随意存取文件中任意一个物理记录。对于无结构的流式文件,采用直接存取法,必须事先移动到待读写信息的位置上再进行读写。
(3)按键存取法:按键存取法是直接存取法的一种,它不是根据记录的编号或地址来存取文件主的记录,而是根据文件中各记录的某个数据项内容来存取记录,这种数据项称为“键”。
4.2、文件存储空间的管理
外存是具有大容量的存储空间,被多个用户共享,用户执行程序经常要在磁盘上存储文件和删除文件,因此,文件系统必须对磁盘空间进行管理。外存空闲空间管理的数据结构通常称为磁盘分配表(Disk Allocation Table)。常见的空闲空间的管理方法有位示图、空闲区表和空闲块链三种。
(1)空闲区表:将外存空间上一个连续未分配区域称为“空闲区”。操作系统为磁盘外存上所有空闲区建立一张空闲表,每个表项对应一个空闲区,空闲表中包含序号、空闲区的第一块号、空闲块的块数和状态等信息。它适用于连续的文件结构。
(2)位示图:这种方法是在外存上建立一张位示图(bitmap),记录文件存储器的使用情况。每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。文件存储器上的物理块依次编号为0,1,2,……。假如系统中字长为32位,那么在位示图中的第一个字对应的文件存储器上的0,1,2,……,31号物理块;第二个字对应文件存储器上的32,33,34,……,63号物理块,依次类推。
位示图的大小由磁盘空间的大小(物理块总数)决定,其描述能力很强,适合各种物理结构。例如,大小为120GB的磁盘,物理块的大小为4MB,那么,位示图的大小为:120*1024/4/8=3840B
(3)空闲块链:每个空闲块链物理块中都有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表,链表的头指针放在文件存储器的特定位置上(如管理块中)。不需要磁盘分配表,节省空间。每次申请空闲物理块只需根据链表的头指针取出第一个空闲物理块,根据第一个空闲物理块的指针可以找到第二个空闲物理块,依次类推即可。
(4)成组链接法:在UNIX系统中,将空闲块分成若干组,每100个空闲块为一组,每组的第一个空闲块登记了下一组空闲块的物理盘块号和空闲块总数,假如一个组的第一个空闲块号等于0的话,意味着此组是最后一组,无下一组空闲块。
5、文件的使用
文件系统将用户的逻辑文件按一定的组织方式转换成物理文件存入存储器,由文件系统为每个文件与其在磁盘上的存放位置建立起对应关系。当用户使用文件时,文件系统通过用户给出的文件名,查出对应文件的存放位置,读出文件的存放位置,读出文件的内容。在多用户环境下,为了文件的安全和保护起见操作系统为每个文件建立和维护关于文件主、访问权限等方面的信息。为此,操作系统在操作级(命令级)和编程级(系统调用和函数)向用户提供文件的服务。
操作系统在操作级向用户提供的命令中有目录管理类命令、文件操作类命令(如复制、删除和修改)和文件管理类命令(如设置文件权限)等。
6、文件的共享和保护
6.1、文件的共享
文件共享是指不同用户进程使用同一文件,它不仅是不同用户完成同一任务所必须的功能,而且还可以节省大量的内存空间,减少由于文件复制而增加的访问外存的次数。文件共享有多种形式,采用文件名和文件说明分离的目录结构有利于实现文件共享。在UNIX系统中允许多用户基于索引结点的共享,或利用符号链接共享同一个文件。
符号链接是通过建立新的文件(或目录)与原来文件(或目录)的路径名映射。当访问一个符号链接时,系统通过此映射找到原文件的路径,并对其进行访问。
6.2、文件的保护
文件系统对文件的保护常采用存取控制方式进行。所谓存取控制,就是不同的用户对文件的访问规定不同的权限,以防止文件被未经文件主同意的用户访问。文件的保护方式主要有存取控制矩阵、存取控制表、用户权限表、口令和密码等。
(1)存取控制矩阵:存取控制矩阵是一个二维矩阵,其中的一维列出计算机的全部用户,另一维列出系统中的全部文件,矩阵中每个元素Aij表示第i个用户对第j个文件的存取权限。通常存取权限有可能R、可写W、可执行X以及它们的组合,如下表所示。
存取控制矩阵在概念上是简单清楚的,但实现上却有困难。当一个系统用户数和文件数很大时,二维矩阵要占很大的存储空间,验证过程也将耗费许多系统时间。
(2)存取控制表:存取控制矩阵由于太大而往往无法实现。一个改进的办法是按用户对文件的访问权力的差别对用户进行分类,由于某一文件往往只与少数几个用户有关,所以这种分类方法可使存取控制表大为简化。UNIX系统使用了存取控制表方法。
(3)用户权限表:改进存取控制矩阵的另一种方法是以用户或用户组为单位将用户可存取的文件集中起来存入表中,这称为用户权限表。表中每个表目表示此用户对应文件的存取权限,这相当于存取控制矩阵一行的简化。
(4)密码:在创建问价时,有用户提供一个密码,在文件存入磁盘时用此密码对文件内容加密。进行读取操作时,要对文件进行解密,只有知道密码的用户才能读取文件。
7、统的安全与可靠性
7.1、系统的安全
系统的安全涉及两类不同的问题,一类涉及技术、管理、法律、道德和政治等问题,另一类涉及操作系统的安全机制。随着计算机应用范围扩大,在所有稍具规模的系统中,都从多个级别上来保证系统的安全性。一般可从4个级别:系统级、用户级、目录级和文件级上对文件进行安全性管理。
(1)系统级:系统级安全管理的主要任务是不允许未经核准的用户进入系统,从而也防止了他人非法使用系统中的各类资源(包括文件)。系统级管理的主要措施有注册和登录。
(2)用户级:用户级安全管理是通过对所有用户分类和对指定用户分配访问权。不同的用户对不同文件设置不同的存取权限来实现。例如,在UNIX系统中将用户分为文件主、组用户和其他用户。有的系统将用户分为超级用户、系统操作员和一般用户。
(3)目录级:目录级安全管理是为了保护系统中各种目录而设计的,它与用户的权限无关。为保证目录的安全,规定只有系统核心才具有写目录的权利。
(4)文件级:文件级安全管理是通过系统管理员或文件主对文件属性的设置来控制用户对文件的访问。通常可设置只执行、隐含、只读、读/写、共享和系统等属性。用户对文件访问,将由用户访问权、目录访问权限及文件属性三者的权限所确定。或者说是有效权限和文件属性的交集。例如,对于只读文件,尽管用户的有效权限是读写,但都不能对只读文件进行修改、更名和删除。对于一个非共享文件,将禁止在同一时间内由多个用户对它们进行访问。
7.2、文件系统的可靠性
文件系统的可靠性是指系统抵抗和预访各种物理性破坏和人为破坏的能力。比起计算机的损坏,文件系统被破坏的后果更加严重。例如,将开水泼在键盘上引起的故障,尽管伤脑筋毕竟可以修复,而文件系统破坏了很多情况下是无法恢复的。特别是对于那些程序文件、客户档案、市场计划或其他数据文件丢失的客户来说,这不亚于一场大的灾难。尽管文件系统无法防止设备和存储介质的物理损坏,但至少应能保护信息。
(1)转储和恢复:文件系统中无论是硬件还是软件,都会发生损坏和错误。为了使文件系统万无一失,因采取相应的措施。最简单和常用的措施是通过转储操作,形成文件或文件系统的多个副本,这样就有恢复系统的可能。
(2)日志文件:在计算机系统的工作过程中,操作系统把用户对文件的插入、删除和修改的操作写入日志文件。一旦发生故障,利用日志文件进行系统故障恢复,并可协助后备副本进行介质故障恢复。
(3)文件系统的一致性:影响文件系统的可靠性因素之一是文件系统的一致性问题。很多文件系统是先读取磁盘块到内存,在内存进行修改,修改完毕再写回磁盘。若读取某磁盘块并修改后再将信息写回磁盘前系统崩溃,则文件系统就可能会出现不一致性状态。如过这些未被写回的磁盘块是索引结点块、目录块或空闲块,后果则更严重。通常的解决方案是采用文件系统的一致性检查,包括块的一致性检查和文件的一致性检查。