绪论
操作系统的概念:
1、科普的观点 操作系统是计算机系统的管理和控制中心,它依照设计者制定的各种调度策略组织和管理计算机系统资源,使之能高效地运行。
2、功能的观点 操作系统是一个计算机资源管理系统,它负责计算机系统的全部资源的分配、控制、调度和回收。
3、用户的观点 操作系统是计算机与用户之间的接口,用户通过这种接口使用计算机。
4、软件的观点 操作系统是程序和数据结构的集合。
5、管理的观点 操作系统是计算机硬件和软件资源的合理而协调的管理者。
6、 操作系统是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配、调度工作,控制并协调并发活动,实现信息的存取和保护。它提供用户接口,使用户获得良好的工作环境。操作系统使整个计算机系统实现了高效率和高度自动化。
操作系统的地位:
操作系统是计算机系统的内核与基石
操作系统的主要功能:
换句话说,从资源管理的角度看操作系统有如下四个功能:
处理机分配
内存管理(主存管理、存储器管理)
设备管理
软件资源管理
操作系统的基本特征:
并发concurrency(parallel)
共享
不确定性
操作系统的主要类型及其特点:
批量操作系统
优点:缩短作业之间的交接时间,减少处理机的空闲等待时间,提高系统的吞吐量。
缺点:用户响应时间较长。用户既不能了解自己程序的运行情况,也不能控制计算机。
分时操作系统
1. 多用户:即众多联机用户可以同时使用同一台计算机;
2. 独占性:各终端用户感觉到自己独占了计算机;
3. 交互性:用户与计算机之间可进行“会话”。
实时操作系统
1、系统对外部的信号必须能及时响应,(在规定的时间内(deadline);
2、要求高可靠性和安全性,效率则放在第二位;
3、系统整体性强;
4、不要求很强的“会话”能力。
OS的逻辑结构
操作系统的层次结构
书本P38有图
处理机的状态
根据对系统资源和机器指令的使用权限,把处理机执行时的工作状态分为核态和用户态,有的操作系统还将系统程序执行时的机器的状态又分为核态和管态。
1、核态(Kernel Mode):
CPU执行操作系统程序时所处的状态。
在此状态下允许CPU使用全部资源和全部指令,其中包括一组特权指令(如涉及外设的I/O、改变处理机状态、修改存储保护的指令),实现对系统资源的分配与管理,为用户提供使用外部设备的服务。
管态比核态的权限低,在此状态下允许使用一些用户态下不能使用的资源,但不能使用修改CPU状态的指令。无核态时,管态执行核态的全部功能。
2、用户态(User Mode):
用户程序执行时CPU所处的状态。在此状态下禁止使用特权指令,不能直接使用系统资源与改变CPU状态,并且只能访问用户程序所在的存储空间。
中断系统
中断的定义、类型、中断响应及中断处理的过程
定义
中断是指某个事件(例如,电源掉电、俘点运算溢出、外部设备传输完成或出错等)发生时,系统中止现运行程序的执行,引出处理事件程序对相应事件进行处理,处理完毕后返回断点继续执行
类型
1、输入输出中断
它是当外部设备或通道操作正常结束或发生错误时所发生的中断。例如:打印机打印完成、缺纸,读磁盘时相应驱动器中没有磁盘等。
2、外中断
对某个中央处理机而言,它的外部非通道式装置所引起的中断称为外部中断。例如,时钟中断、操作员控制台中断,多处理机系统中CPU到CPU之间的通信中断等。
3、硬件故障中断
当机器发生故障时的中断叫硬件故障中断。例如,电源故障、内存单元奇偶校验错。
4、程序性中断
在程序执行的过程中,发现了程序性质的错误或出现了某些特定状态而产生的中断。如浮点溢出、用户态下使用了特权指令、内存越界、跟踪等。
5、访管中断
对操作系统提出某种请(需)求时所发生的中断。例如,创建进程,I/O传输、打开文件、关闭文件、文件的读、写等系统调用。
以上五种中断也归纳成两类,其一是来自处理机外部的事件,称为外部中断,如I/O中断、外中断。另一类是来自处理机的中断,称为内部中断,如硬件故障中断、程序性中断、访管中断。在这类中断有时称俘获(也有称陷入、陷阱、自陷、捕俘等,它的英文名称为 trap,来自早期的UNIX系统)
中断响应及处理过程
对中断请求的整个处理过程称为中断处理,它是由软、硬件结合形成的一套中断机构实施的。在本教材中叫中断进入
1、保护中断现场和恢复现场
2、程序状态字:在计算机系统中有一个寄存器(有的系统有几个寄存器)用来存放程序状态字,称为PS。
3、中断响应:
是处理机发现有中断请求时,中止现运行程序的执行,并自动引出中断处理程序的过程。中断响应的实质是交换指令执行地址和处理机的状态,以达到如下目的:
(1)保留程序断点及有关信息;
(2)自动转入相应的中断处理程序执行。
4、中断处理:
中断处理和自陷处理的过程是类似的,当硬件完成了中断进入后,转到中断处理程序,进入软件中断处理过程。这个过程主要有如下三项工作:
(1)保护现场和传递参数;
(2)执行相应的中断(或自陷)处理程序;
(3)恢复和退出。
用户界面
操作系统的用户接口及其类型。
程序员: 系统调用;
普通用户:操作命令
脱机用户使用作业控制语言 联机用户使用键盘命令或图形界面
进程管理
(1)什么是进程,进程与程序的区别;
进程,即是一个具有一定独立功能的程序关于某个数据集合的一次执行过程。
1、程序是指令的集合,是静态的概念。 进程是程序在处理机上的一次执行的过程,是动态的概念。程序可以作为软件资料长期保存。进程是有生命周期的。
2、进程是一个独立的运行单位,能与其它进程并行(并发)活动。而程序则不是。
3、进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。
4、一个程序可以作为多个进程的运行程序,一个进程也可以运行多个程序。
(2)进程的基本状态及状态转换;
类型:系统进程与用户进程
进程的三种基本状态:
运行状态
就绪状态
等待状态(又称阻塞、挂起、睡眠)
1、就绪状态(Ready)
存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就立即可以运行,这些进程所取的状态为就绪状态。(所有处于此状态的多个进程构成就绪队列RQ)
2、运行状态(Running)
当进程由调度/分派程序分派后,得到CPU控制权,它的程序正在运行,该进程所处的状态为运行状态。(在系统中,总只有一个进程处于此状态,一般用EP指向该进程)
3、等待状态(Wait) 若一个进程正在等待某个事件的发生(如等待I/O的完成),而暂停执行,这时,即使给它CPU时间,它也无法执行,则称该进程处于等待状态。(所有处于此状态的多个进程构成等待队列WQ)
(3)进程由哪些部分组成,进程控制块的作用;
进程的组成:
从结构上来说,每个进程都由一个程序段(包含数据)和一个进程控制块PCB组成。
进程控制块的作用:存放进程的管理和控制信息。描述一个进程与其他进程以及系统资源的关系,刻画一个进程在各个不同时期所处的状态,采用一个与进程相联系的数据块,称为进程控制块。
(4)进程的同步与互斥,临界资源、临界区;
互斥的概念来自于诸进程对独占使用资源(设备)的竞争,同步来源于多个进程的合作。在多道程序设计中竞争与合作是永恒的。
进程同步:并发程序在一些关键点上可能需要互相等待与互通消息,这种互相制约的等待与互通信息称为进程同步。
同步的实质是使各合作进程的行为保持某种一致性或不变性。
互斥定义:
在操作系统中,当某一进程正在访问某临界区时,就不允许其它进程进入,否则就会发生(后果)无法估计的错误。我们把进程之间的这种相互制约的关系称为互斥。
临界资源:一次仅允许一个进程使用的资源称为临界资源。
临界区:每个进程中访问临界资源的那段程序段称为临界区(临界段)。
(5)信号量及P、V操作;
信号灯的定义:
信号灯是一个确定的二元组(s,q),s 是一个具有非负初值的整型变量,q 是一个初始状态为空的排队站。
S代表资源的实体。在实际应用中应准确地说明s的意义和初值,每个信号灯都有一个队列,其初始状态为空。
P操作:
(1)s值减1;
(2)若结果小于0,则
该进程挂起。
注:挂起该进程包括:
保留调用进程CPU现场;
置“等待”状态;
入等待队列;
转进程调度;
(6)经典进程同步问题:生产者-消费者问题和读者-写者问题;
(7)进程通信;
进程通讯:进程间以较高的效率传递较多数据的信息交换方式。
进程通信方式:
共享存储器方式
共享文件方式,如管道通信
消息系统,如消息缓冲通信----直接通信
信箱通信 ----间接通信
(8)进程调度;
处理机分配由调度和分派两个功能组成。
调度:包括确定调度算法、按调度算法组织和维护就绪进程队列。
分派:是指当处理机空闲时,从就绪队列队首中移出一个PCB,并将该进程投入运行。
进程调度的功能:
1.记录和保持系统中所有进程的有关情况和状态特征
2.决定分配(处理机)策略
3.选择调度的时机,实施处理机的分配
总而言之,进程调度包括:
调度算法的选择(调度算法)
调度时机的选择(调度时机)
实施进程调度(调度程序)
进程调度算法
优先数调度算法
循环轮转调度算法
多级队列调度
资源分配与调度(死锁)
(1)资源管理的目的和任务、资源分配机制
1、保证资源的高利用率;
2、在“合理”时间内使所有顾客有获得所需资源的机会;
3、对不可共享的资源实施互斥使用;
4、防止由资源分配不当而引起的死锁。
描述资源的管理和控制信息的数据结构称为资源分配的机构 。
在教材上列出了两种:
资源描述器rd:每个资源一个rd
资源信息块rib:每类资源一个rib
几种分配策略:
1、先请求先服务(FIFO)
2、优先级调度
3、均衡调度
4、针对设备特性的调度
(2)什么是死锁;
死锁的概念
在这两个进程并发执行时,当P1进程占用R1、P2进程占用R2时,P1要求R2,由于P2已占用R2而得不到,P1进程只有等待;P2申请R1,由于P1已占用R1,而得不到,P2进程只有等待,就出现了死等的情况。
教材上关于死锁的定义:
两个或两个以上并发进程,如果每个进程持有某种资源,而又等待着本组其他进程释放其保持着的资源,从而使得该组进程都无法向前推进。此时,每个进程都占用了一定的资源,但又都不能向前推进,这种循环等待的僵局称为死锁。
(3)产生死锁的必要条件;
1、互斥条件
2、不可剥夺条件
3、部分分配
4、环路条件
互斥条件
进程要求对所分配的资源(如打印机)进行排他性
控制,即在一段时间内某资源仅为一个进程所占有。此时若有其他进程请求该资源,则请求进程只能等待。
不可剥夺条件
进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放(只能是主动释放)。
保持与请求条件
进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。
循环等待条件
存在一种进程资源的循环等待链,链中每一个进程已获得的资源同时被链中下一个进程所请求。
即存在一个处于等待状态的进程集合{Pl, P2, …, pn},其中Pi等 待的资源被P(i+1)占有(i=0, 1, …, n-1),Pn等待的资源被P0占有。
(4)死锁预防的基本思想和可行的解决办法;
预防死锁:
采用的分配策略本身就否定了产生死锁的四个必要条件之一,这就保证了不会发生死锁;
(5)死锁的避免算法,安全状态及安全序列;
一、有序资源分配法
银行家算法
(6)死锁的检测及解除
死锁的检测:
类似于安全状态判别算法
Dead={Pi:Pi标记为未完成}
死锁排除的方法:
1、撤消陷于死锁的全部进程;
2、逐个撤消陷于死锁的进程,直到死锁不存在;
3、从陷于死锁的进程中逐个强迫放弃所占用的资源,直至死锁消失。
遵循的原则:代价最小原则
Dead={p1,p2,…Pk},其中cs1≤cs2≤…≤csk
存储管理(主存管理)
(1) 存储器管理的功能;
(1)主存分配 按照一定的算法把某一空闲的主存分配给作业或进程。
(2)地址映射 将程序地址空间中使用的逻辑地址变换成主存中使用的物理地址的过程
(3)存储保护 保证用户程序(或进程)在各自的存储区域内操作,互不干扰。
(4)提供虚拟存储技术 使用户程序的大小和结构不受主存容量和结构的限制,即使在用户程序比实际主存容量还要大的情况下,程序也能正确运行,是一种“扩充”主存的方法。
(2) 有关逻辑地址、物理地址、重定位、虚拟存储器等概念;
物理地址:把内存分成若干个大小相等的存储单元,每个单元给一个编号,这个编号称为内存地址(物理地址、绝对地址、实地址)。
物理地址空间:物理地址的集合称为物理地址空间(主存地址空间),它是一个一维的线性空间。
程序地址 用户编程序时所用的地址(或称逻辑地址 、虚地址 )。
程序地址空间(逻辑地址空间、虚地址空间)用户的程序地址的集合称为逻辑地址空间。
使一个作业程序装入到与其地址空间不一致的存储空间所引起的、对有关地址部分的调整过程称为地址重定位,其实质就是将程序中使用的逻辑地址变换成主存中的物理地址的过程,也称为地址映射。
为用户提供一种不受物理存储器结构和容量限制的存储器的技术称为虚拟存储技术。
(3) 分区存储管理:重点掌握分区的描述方法、分配和回收算法、三种放置策略;
描述方法:分区存储管理使用的数据结构有空闲区表或空闲区队列两种。
分区的分配与回收算法:
一、分配算法
二、回收算法
当一个进程(或程序)释放某内存区时,要调用存储区释放算法release,它将首先检查释放区是否与空闲区表(队列)中的其它空闲区相邻,若相邻则合并成一个空闲区,否则,将释放为一个空闲区插入空闲区表(或队列)中的适当位置。
A、将r合并到f1,f1.addr; f1.size+r.size=>f.size
B、将r合并到f2, r.addr; r.size+f2.size=>f2.size
C、f1、r、f2 合并到f1, f1.addr;
f1.size+r.size+f2.size=>f1.size 撤消f2空闲区
D、r作为一个空闲区,并插入到空闲区表的适当位置
几种放置策略:最佳适应算法、首次适应算法和最坏适应算法
一、首次适应算法
首次适应算法的表是按空闲区首址升序的(即空闲区表是按空闲区首址从小到大)方法组织的。
分配时从表首开始,以请求内存区的大小逐个与空闲区进行比较,找到第一个满足要求的空闲后,若空闲区大小与请求区的大小相等,则将该空闲区分配给请求者,并撤消该空闲区所在表目;若大于请求区,就将该空闲区的一部分分配给请求者,然后,修改空闲区的大小和首址。
这种算法的实质是尽可能地利用低地址部分的空闲区,而尽量地保证高地址部分的大空闲区,使其不被切削成小的区,其目的是保证在以有有大的作业的到来有足够大的空闲区来满足请求者。
回收时,首先考察释放区是否与系统中的某个空闲区相邻,若相邻则合并成一个空闲区,否则,将释放区作为一个空闲区按首址升序的规则插入到空闲区表适当的位置。
二、最佳适应算法
最佳适应算法是将申请者放入与其大小最接近的空闲区中。切割后的空闲区最小,若系统中有与申请区大小相等的空闲区,这种算法肯定能将这种空闲区分配给申请者。(首次适应法则不一定)。
这种算法最大的缺点是分割后的空闲区将会很小,直至无法使用,而造成浪费。
三、最坏适应算法
为了克服最佳适应算法把空闲区切割得大小的缺点,人们提出了一种最坏适应算法,即每次分配时,总是将最大的空闲区切去一部分分配给请求者,其依据是当一个很大的空闲区被切割了一部分后可能仍是一个较大的空闲区。避免了空闲区越分越小的问题。
(4) 分页存储管理:重点掌握地址变换过程和页面置换算法;
二、分页的概念
程序地址空间分成大小相等的页面,同时把内存也分成与页面大小相等的块,当一个用户程序装入内存时,以页面为单位进行分配。页面的大小是为2^n ,通常为1KB,2KB,nKB等。
虚地址是用户程序中的逻辑地址,它包括页号和页内地址(页内位移)。
区分页号和页内地址的依椐是页的大小,页内地址占虚地址的低位部分,页号占虚地址的高位部分。
假定页面大小1024字节,虚地址共占用2个字节(16位)
页式地址映射
2.虚地址以十进制数给出
页号=虚地址 / 页大小
位移量=虚地址 % 页大小
根据题意产生页表;
以页号查页表,得到对应页装入内存的块号
内存地址=块号×页大小+位移量
页表项(页描述子)中各个位的作用:
\1. 页号
\2. 块号(页框号)
\3. 中断位: 用于判断该页是不是在内存中,如果是0,表示该页面不在内存中,会引起一个缺页中断
\4. 保护位(存取控制位):用于指出该页允许什么类型的访问,如果用一位来标识的话:1表示只读,0表示读写
\5. 修改位(脏位):用于页面的换出,如果某个页面被修改过(即为脏),在淘汰该页时,必须将其写回磁盘,反之,可以直接丢弃该页
\6. 访问位:不论是读还是写(get or set),系统都会设置该页的访问位,它的值用来帮助操作系统在发生缺页中断时选择要被淘汰的页,即用于页面置换
\7. 高速缓存禁止位(辅存地址位):对于那些映射到设备寄存器而不是常规内存的页面有用,假设操作系统正在循环等待某个I/O设备对其指令进行响应,保证硬件不断的从设备中读取数据而不是访问一个旧的高速缓存中的副本是非常重要的。即用于页面调入。
一、置换算法
当要调入一页面并送入到全满的内存中时,必须把已在内存中的某一页淘汰掉。用来选择淘汰哪一页的规则叫做置换算法。
最佳算法:当要调入一新页而必须淘汰一旧页时,所淘汰的页是以后不再使用的,或者是以后相当长的时间内不会使用的。
先进先出算法:先进入内存的页,先退出内存。实质上是淘汰在内存驻留时间最长的页。
最久未使用淘汰算法(LRU算法):这种算法的实质:当需要淘汰一页时,选择最近最久未使用的页。依据的理论是如果某页最近被访问,它可能马上还要被访问;相反,如果某页长时间未被访问,它未来可能不会被访问。
CLOCK算法(近似LRU算法)
将所有的页面组织成一个环形队列,并设一置换指针;
当命中时,更新修改位和访问位(置为全1111);
当缺页中断时,若内存紧张则进行扫描:
1)若置换指针->修改位为1,则安排写出;
2)若置换指针->访问位为0,
则 淘汰并结束扫描;
否则{ 置换指针->访问位–;
置换指针下移;继续扫描;}
(5) 分段存储管理:掌握分页和分段的区别、分段的优点
段式管理与页式管理的地址变换机构非常相似,但两者有着概念上的根本差别。表现在:
(1) 段是信息的逻辑单位,它是根据用户的需要划分的,因此段对用户是可见的;页是信息的物理单位,是为了管理主存的方便而划分的,对用户是透明的。
(2) 页的大小固定不变,由系统决定。段的大小是不固定的,它由其完成的功能决定。
(3) 段式向用户提供的是二维地址空间,页式向用户提供的是一维地址空间,其地址分为页号和页内偏移是机器硬件的功能。
(4) 段式管理与分区管理一样可能产生主存碎片,而页式管理则很好地消除了碎片。
段式系统的优点
支持动态数据结构(变长)
由于段是信息的逻辑单位,因此便于存贮保护和信息的共享,页的保护和共享受到限制。
支持动态链接。
设备管理
设备管理就是I/O管理,它是操作系统的一个重要的组成部分,负责管理系统中所有的外部设备。
(1) 设备管理功能和目标;
设备管理目标
1.字符代码的独立性
现在使用的ASCII码(美国信息交换标准码)
2.设备独立性
3.效率
4.设备处理的一致性
设备管理功能
1.状态跟踪
设备控制块是存放设备管理和控制信息的数据结构。
系统要掌握设备的状态。
2.进一步提供CPU与外设的并行性:缓冲技术
3.设备存取
实现对设备的存取操作。
4.设备分配
在多用户的环境下,负责设备的分配和回收。
5.输入输出控制
输入输出控制包括设备的驱动、完成和故障中断处理。
6.提供虚拟设备
(2) 设备分配原则;
分配原则:
一、静态分配和动态分配
1、静态分配
当一个作业(或进程)运行时,根据作业要求的设备,系统如果能满足,则将其要求的设备全部分配给它,然后开始运行,运行完成释放其占用的所有设备。
这种分配方式的优点是系统绝不会出现死锁,缺点是设备利用率太低。
2、动态分配
这种分配方法是在作业(或进程)运行的过程中,需要使用设备时,就向系统申请,系统根据某种分配原则进行分配。
这种方法的优点是设备的利用率高,缺点是系统有出现死锁的可能。
二、设备分配算法
1、先来先服务算法
2、优先级高者优先
三、设备分配的安全性
独享分配、共享分配、虚拟分配
对于共享设备,不论采用静态分配还是采用动态分配都不会出现死锁。
对于独占设备,采用动态分配有可能造成死锁。
1. 独享分配
常用的设备分配技术:独享分配、共享分配和虚拟分配
(1) 独享设备
① 让一个作业在整个运行期间独占使用的设备
② 特点
ⅰ 临界资源
ⅱ 费时的I/O操作或需人工干预
(2) 独享分配
在一个作业执行前,将它所要使用的设备分配给它;当它结束撤离时,将分配给它的这类设备收回。
2. 共享分配
(1) 共享设备
① 由多个作业、进程共同使用的设备称为共享设备。
② 特点
ⅰ 旋转设备,可直接或随机访问
ⅱ 便于共享,转接简单,耗费较少
(2) 共享分配
在一个作业执行时,动态地将它所要使用的设备分配给它;动态地请求设备服务;多个进程在一段时间内共享使用该设备。
(3) 常用缓冲技术;
缓冲是用来在两种不同速度的设备之间传输信息时平滑传输过程的常用手段。
缓冲技术也可用来平滑CPU与设备之间速度差异和负荷的不均匀。
常用的缓冲技术有三种:双缓冲、环形缓冲、缓冲池
系统设置两个缓冲区,BUF1和BUF2,进程轮流使用这两个缓冲区。这种缓冲技术是最简单的,常用于低频度活动的I/O。
工作过程:首先输入将数据送入BUF1,然后,申请BUF2,在向BUF2输入数据的同时,输出进程可从BUF1中取数据。同理,向BUF1输入与从BUF2中取数据可以并行。(教材P229有图)
在系统中设置若干缓冲区,并把这些缓冲区链接起来,这样若干个缓冲区就形成了一个环,故称环形缓冲区。
系统设置一个缓冲池。这个池中的缓冲区为系统中所有的进程所共享使用。通过缓冲池可为不同的进程构建多个环形缓冲区。为了管理缓冲池,系统需提供如下功能:
分配和回收缓冲区;
入注缓冲区;
出空缓冲区;
(4) SPOOLing系统及虚拟设备;
假脱机系统:
(2) 虚拟设备
通常把用来代替独占型设备的那部分外存空间 (包括有关的控制表格)称为虚拟设备。
(5) 输入/输出控制;
I/ O控制分四个部分:
用户进程提出请求;
doio(ldev,mode,amount,addr);
I/O子系统接受请求;
设备驱动程序启动执行;
物理设备开始输入输出;
(6) 磁盘调度算法。
硬盘盘片数=(磁头数+2)/2
16磁头的硬盘,通常有(16+2)/2=9个存储盘片
1、先来先服务法
(First-Come,First-Served,FCFS)
先来先服务算法就是按照提出请求的顺序来进行服务,算法最简单,最容易实现。
例:要访问的磁道分别是:
98,183,37,122,14,124,65,67
最早来的请求是访问98道,最后一个是访问67道。设磁头最初在53道上。
2、最短寻道时间优先法
(Short Seek Time First,SSTF)
该算法在把磁头移到远处为另外的请求服务之前,先把靠近磁头当前位置的所有请求都服务完。
SSTF算法中选择的下一个请求距当前磁头所在位置有最小的寻道时间。磁头移动总是移到距当前道最近的磁道上。
上例采用该算法,磁头共移动了236道。
但这种算法可能出现“饥饿”现象。
(3)扫描法(SCAN)
(4)巡回扫描法(C-SCAN)
磁头从磁盘的一端移向另一端,遇到所需的磁道时就进行服务。到达另一端后,磁头立即折返回磁盘的开头,在返回过程中不进行服务。也就是说把磁盘视为一个环。
(5)LOOK电梯算法
SCAN算法和C-SCAN算法总是把磁头从盘的一端移到另一端,更通用的方法是,磁头仅移到每个方向上有请求服务的最远的道上,一旦在当前方向上没有请求了,磁头的移动方向就反过来。对应于SCAN算法和C-SCAN算法的这种算法分别称LOOK算法和C-LOOK算法。
文件系统
(1)文件、文件系统的概念,文件系统的功能;
一、文件定义
文件是具有符号名的存贮在存贮媒体上的一组相互关联的信息的集合。
文件系统是操作系统中负责管理和存取文件信息的软件机构,它是由管理文件所需的数据结构和相应的管理软件以及访问文件的一组操作组成。
从系统的角度看:文件系统是一个负责文件存储空间管理的机构。
从用户的角度看:文件系统是用户在计算机上存储信息、和使用信息的接口。
通用文件系统应具有以下功能:
1、提供用户对文件操作的命令;
2、提供用户共享文件的机制;
3、管理文件的存储介质;
4、提供文件的存取控制的机制,保障文件及 文件系统的安全性;
5、提供文件及文件系统的备份和恢复功能;
6、提供对文件的加密和解密功能。
(2) 文件的物理结构及其比较;
文件的组织有两种:
文件的逻辑结构:
文件的逻辑结构是指用户组织逻辑文件的结构。
文件的物理结构:
文件的物理结构是指文件在存储介质上的结构(或称组织)。在当代,文件的存储介质是磁盘,包括软盘、硬盘和光盘、磁带,早期还有磁鼓。由于目前的磁带是模拟磁盘的结构,所以文件的物理结构主要是指磁盘上文件的结构。
文件的物理结构指文件在存储介质上的安置、链接和编目的方法,目前有如下几种基本结构,即连续文件结构、串联文件结构、文件映照和索引文件结构。
(3) 文件目录的内容、结构及功能;
文件目录:
文件目录即文件名址录。它是一张记录文件名及其存放地址、文件的说明和控制信息的表格。
一般情况下,每个文件占用一个表目,即每个文件有一个文件的目录项。
文件目录项:
1.文件名
2.文件的大小(字节)
3.文件在物理存储介质中的位置。取决于文件的物理结构 。
对于连续文件:文件起始块号(即文件的第一个物理块块号);
对于串联文件:指向第一个物理块的指针;
对于索引文件:索引表。
4.存取控制信息
文件主和其它用户对该文件的访问权限。
5.管理信息
包含文件创建的日期和时间,最近修改该文件的日期和时间等。
6.文件的类型
(4) 文件存储空间的管理方法;
在UNIX系统中每个子文件系统(一片软盘、一个硬盘的分区,一卷磁带)格式化后将所有空闲块分组(设每组100块)进行管理,并设置一特别块存放如下信息:
s-nfree :空闲块数
s_free[100]:空闲块块号
s_flock:锁位
(5) 文件的存取控制;
对文件的存取权限有:
执行、读、写、删除、改变权限
对文件存取控制的验证方法有:
存取控制矩阵
用户权限表
存取控制表
口令
加密技术
(6) 对文件和目录的主要操作。
常用的文件操作命令
create 创建一个新文件
delete 从目录中删除一个文件
rename 在目录中改变文件的名字
open 打开文件
write 写数据到文件上
read 从一个文件中读入数据
close 关闭文件