目录
15、实现临界区互斥的基本方法(基本方法可能具有缺陷)… 6
一、整体
1、什么是操作系统?它的主要特征是什么?
操作系统是指控制和管理整个计算机系统硬件和软件资源的最基本的系统软件。
并发性:指两个或多个事件在同一时间间隔内发生;(并行性:在同一时刻…)
共享性:系统中的资源可供内存中多个并发执行的进程共同使用;
虚拟性:把一个物理上的实体变成若干个逻辑上的对应物;
异步性:进程的执行并不是一气呵成的,而是以不可预知的速度向前推进.
2、谈一谈中断和陷入(内中断)的区别
外中断是指来自处理机和内存外部的中断,如I/O中断、定时器中断、外部信号中断等。狭义上也叫中断;
内中断主要指在处理机和内存内部产生的中断,也称陷入,如校验错、页面失效、溢出、除数为零等;
中断和陷阱的主要区别:
(1)陷入通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的。
(2) 陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的。
(3) CPU在执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷阱。
3、为什么要引入多道程序技术?
因为引入多道程序技术后,可以进一步提高了CPU利用率(阻塞),提高内存和I/O设备利用率(小作业把内存浪费了),增加系统吞吐量(两都提高后的必然)。
4、何为管态和目态?它们与进程运行状态的关系是什么?
CPU交替执行操作系统程序和用户程序。管态又叫特权态,系统态或核心态。CPU在管态下可以执行指令系统的全集。通常,操作系统在管态下运行。
目态又叫常态或用户态。机器处于目态时,程序只能执行非特权指令。用户程序只能在目态下运行,如果用户程序在目态下执行特权指令,硬件将发生中断,由操作系统获得控制,特权指令执行被禁止,这样可以防止用户程序有意或无意的破坏系统。
5、中断是怎么操作的?
中断请求-中断相应-断点保护—执行中断服务程序—断点恢复—中断返回
6、谈一谈计算机网络和分布式计算机系统的区别
两者在计算机硬件连接、系统拓朴结构和通信控制等方面基本都是一样的,它们都具有通信和资源共享的功能。
区别关键在于:分布式计算机系统是在分布式计算机操作系统支持下,进行分布式数据库处理的,也就是说各互联的计算机可以互相协调工作,共同完成一项任务,多台计算机上并行运行。且具有透明性,用户不知道数据、资源的具体位置,整个网络中所有计算机就像是一台计算机一样;而计算机网络却不具备这种功能,计算机网络系统中的各计算机通常是各自独立进行工作的。
二、进程管理
1、 进程
**概念:**进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。是程序在数据集上的一次执行过程。
**特征:**动态性、并发性、独立性、异步性、结构性
**状态:**运行、就绪(需要获得处理机)、阻塞(需要获得其他资源)、创建、结束
**控制:**创建、终止、阻塞和唤醒、切换
**组织:**程序段、数据段、进程控制块PCB(进程存在的唯一标志)
**通信:**共享存储、管道通信、消息传递
**引入进程的目的:**为了更好地使多道程序并发执行,提高资源利用率和系统吞吐量。
**进程控制用的程序段:**原语
2、进程和程序的区别
主要区别:
1.程序是指令的有序集合,其本身没有任何运行的含义,它是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态概念。
2.程序的存在是永久的,而进程则是有生命的,它因创建而产生,因调度而执行,因得不到资源而暂停,因撤销而消亡。
3.程序仅是指令的有序集合。而进程则是由程序、数据和进程控制块组成。
4.进程与程序之间不是一一对应的,一个进程可以执行多个程序。
3、调度和切换的区别
调度是决定资源分配到哪个进程的行为,是决策行为。切换是指实际的分配行为,是执行行为。现有资源调度,后有进程切换
4、进程的组织方式
链接方式、索引方式
5、进程的通信(PV操作是低级通信方式)
**共享存储:**在进程的通信之间存在一块可直接访问的共享空间。
管道通信:
消息传递:
6、线程
**概念:**线程是轻量化的进程,是程序执行流的最小单位;由线程ID、程序计数器、寄存器集合和堆栈组成;线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。
**引入线程的目的:**为了减小程序在并发执行的过程中所付出的时空开销,提高操作系统的并发性能。(为什么线程可以提高系统的并发性呢?由于有了线程,线程的切换有可能会引发进程切换,也有可能不发生进程的切换,于是平均而言的开销就小了)
相比进程,线程有什么好处
(1)易于调度。
(2)提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分。
(3)开销少。创建线程比创建进程要快,所需开销很少。。
(4)利于充分发挥多处理器的功能。
相比进程,线程有什么缺点
(1)线程之间的同步和加锁控制比较麻烦
(2)一个线程的崩溃影响到整个程序的稳定性
(3)线程多了之后,线程本身的调度也是一个麻烦事儿,需要消耗较多的CPU
分离线程
线程可以是可结合的,或者是可分离的;
可结合的线程能够被其他线程收回其资源和杀死。在被其他线程回收之前,它的存储器资源(例如栈)是没有被释放的,相反一个分离的线程是不能被其他线程回收或杀死的。它的存储器资源在它终止时由系统自动释放;
为避免存储器泄漏,每个可结合线程都应该被其他线程显式地收回,要么通过调用pthread_detach函数被分离;(对应于Java就是 Thread.join和Thread.detach )
默认情况下,线程被创建成可结合的。(注意:可结合是一种状态,要调用join方法来进行结合/释放)
**同一进程的线程共享那些资源:**堆、全局变量、文件
7、进程与线程的区别
8、处理机的调度
高级调度(作业调度)、中级调度(内存调度)、低级调度(进程调度)
9、调度方式
剥夺式、非剥夺式
10、典型的调度算法
先来先服务、短作业优先、优先级调度、高响应比优先、时间片轮转、多级反馈队列
11、进程同步
同步亦称直接制约关系,是指为完成某种任务而建立的两个或多个进程,这些进程因为在某些位置上协调他们的工作次序而等待。
12、进程互斥
当一个进程进入临界资源区使用临界资源时,另一个进程必须等待占用临界资源的进程推出临界区后,另一进程才允许去访问此临界资源。
13、临界资源
一次只允许一个进程使用的资源,称之为临界资源
14、同步机制遵循准则
空闲让进、忙则等待、有限等待、让权等待
15、实现临界区互斥的基本方法(基本方法可能具有缺陷)
软件:单标志法、双标志法先检查、双标志法后检查、Peterson’s Algorithm(皮特森算法)
硬件:中断屏蔽方法、硬件指令方法
16、信号量机制(未复习)
17、管程(未复习)
管程是由一组局部变量、对局部变量进行操作的一组过程和对局部变量进行初始化的语句序列组成。
引入的原因是因为P/V操作太过分散,对它的维护很麻烦且容易造成死锁。
管程的特点是:
1.管程的过程只能访问管程的局部变量,管程的局部变量只能由其过程来访问;
2.任何时刻只能有一个进程进入管程执行;
3.进程只能通过管程提供的过程入口进入管程。
18、死锁
**概念:**多个进程因竞争资源而造成的一种僵局,若无外力作用,则这些进程都将无法向前推进
**死锁产生的原因:**系统资源的竞争、进程推进顺序非法
**死锁产生的必要条件:**互斥条件、不剥夺条件、请求并保持条件、循环等待条件。只要其中任意一个条件不成立,死锁就不成立。
**注意:**有死锁时一定会有循环等待,反之则不一定
死锁的处理策略:
1**)、死锁预防**
**破坏互斥条件:**不太可行,但spooling技术、可将互斥资源改为共享使用
**破坏不剥夺条件:**当进程已保持了一些不可剥夺资源且又申请新的资源而得不到满足时,它必须释放已经保持的所有资源,待需要时重新申请;(这种方法实现复杂,会增加系统开销,降低系统吞吐量)
**破坏请求保持条件:**进程在运行前一次性申请完他所需要的全部资源;(这种方法实现简单,但是会严重浪费系统资源,还会导致饥饿现象)
**破坏循环等待条件:**给系统中的资源编号,规定每个进程必须按照编号递增的顺序请求资源,同类资源一次申请完;(这种方法限制了新类型设备的增加,给用户编程带来麻烦)
2**)、避免死锁**
**安全状态:**安全状态是指系统按照某种进程顺序,为进程分配资源,使得每个进程都能获取所需的最大资源,并顺利完成
**让系统处于安全状态:**进程可以动态地申请资源,但系统在进行资源分配前,需要先计算此资源分配的安全性,若此次分配不会导致系统进入不安全状态则分配,否则让进程等待。
银行家算法
3**)、死锁的检测及解除**
资源分配图----->死锁定理------>死锁解除
死锁定理:如果一个资源分配图可完全简化,则不会产生死锁;如果不可完全简化(即:图中还有“边”存在),则会产生死锁。这就是“死锁定理”。
死锁解除:资源剥夺法、撤销进程法、进程回退法
19、死锁和饥饿的主要区别是什么?
饥饿与死锁有一定联系:二者都是由于竞争资源而引起的,但又有明显差别,主要表现在如下几个方面:
(1)从进程状态考虑,死锁进程都处于等待状态,忙式等待(处于运行或就绪状态)的进程并非处于等待状态,但却可能被饿死;
(2)死锁进程等待永远不会被释放的资源,饿死进程等待会被释放但却不会分配给自己的资源,表现为等待时限没有上界(排队等待或忙式等待);
(3)死锁一定发生了循环等待,而饿死则不然。这也表明通过资源分配图可以检测死锁存在与否,但却不能检测是否有进程饿死;
(4)死锁一定涉及多个进程,而饥饿或被饿死的进程可能只有一个。
饥饿和饿死与资源分配策略有关,因而防止饥饿与饿死可从公平性考虑,确保所有进程不被忽视,如FCFS分配算法。
20、试举例解释一下同步和互斥
同步表现为直接制约,如管道通信,一个进程写,一个进程读,它们是相互制约的。
互斥表现为间接制约,比如多个进程同时请求打印机(没使用SPOOLing技术)、多个进程同时请求一张网卡发送数据包等。
21、为什么虚拟地址空间切换会比较耗时?
进程都有自己的虚拟地址空间,把虚拟地址转换为物理地址需要查找页表,页表查找是一个很慢的过程,因此通常使用Cache来缓存常用的地址映射,这样可以加速页表查找,这个Cache就是TLB(translation Lookaside Buffer,TLB本质上就是一个Cache,是用来加速页表查找的)。
由于每个进程都有自己的虚拟地址空间,那么显然每个进程都有自己的页表,那么当进程切换后页表也要进行切换,页表切换后TLB就失效了,Cache失效导致命中率降低,那么虚拟地址转换为物理地址就会变慢,表现出来的就是程序运行会变慢,而线程切换则不会导致TLB失效,因为线程无需切换地址空间,因此我们通常说线程切换要比较进程切换块,原因就在这里。
22、什么是缓冲区溢出?有什么危害?
缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量,溢出的数据覆盖在合法数据上。
危害有以下两点:
·程序崩溃,导致拒绝额服务
·跳转并且执行一段恶意代码
造成缓冲区溢出的主要原因是程序中没有仔细检查用户输入
23、缓冲的定义,为什么引入缓冲技术?
缓冲是一种以空间换时间的资源换取技术。一般利用内存作为缓冲区。
为什么引入:
1、可以协调CPU与I/O设备之间速度不匹配的矛盾;
2、可以减少对CPU的中断频率;
3、提高设备的利用率。
24、父子进程是否可以并发运行?
可以,父进程创建子进程后,子进程也成为了一个可以独立运行的单位,虽然子进程继承了父进程的全部资源,但是只要两个进程创建的程序和数据没有冲突,则它们可以并发运行。
25、在交互式系统中,非剥夺是不是一个好的策略?为什么?
非剥夺方式:分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。
剥夺方式:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程、优先原则、时间片原则。
在分时系统中不剥夺并不是一个好的策略。因为,在分时系统中,除了交互性以外,及时性是很重要的性能因素。当一个作业被阻塞后,CPU就完全空闲了,别的用户的及时性就无法保证了,而完全可以把这些时间分配给别的作业运行。以提高整体的吞吐量。
26、何为死锁?何为系统调用?
死锁:指多个有关进程由于争夺资源而造成的一种僵局,在无外力的情况下这些进程都将无法再向前推进的状态。
系统调用:系统调用是OS与应用程序之间的接口,它是用户程序取得OS服务的惟一途径。
它与一般的过程调用的区别:
运行在不同的系统状态。调用程序在运行在用户态,而被调用的程序运行在系统态;
通过软中断机制,先由用户态转为系统态,经枋心分析后,才能转向相应的系统调用处理子程序;一般的过程调用返回后继续执行,但对系统调用,当调用的进程仍具有最高优先权时,才返回到调用进程继续处理;否则只能等被重新调度;
27、CPU 不执行程序的时候在干什么?
当没有被任何程序使用的时候,计算机的处理器被认为是空闲的。当然下面提到的空闲任务不在此列中。当有程序利用CPU空闲时间的时候,就意味着它以较低的优先权运行着,以便不会影响那有正常优先权的程序运行。一般来讲,这会引起CPU消耗更多的电能,而大多数的现代CPU当它们空闲的时候是能够进入省电模式的。大多数操作系统都有个空闲任务,它是一个特殊的任务。仅当CPU无事可做的时候由操作系统调度器载入它。在现代的处理器中,HLT停机指令节省了大量的电能与执量,而空闲任务几乎总是由一个重复执行HLT停机指令的循环组成。
三、内存管理
1、内存管理概念
操作系统对内存的划分和动态分配,就是内存管理的概念
2、内存管理的功能
内存空间的分配与回收、地址转换(逻辑地址与物理地址的转换)、内存空间的扩充(虚拟存储技术)、存储保护
3、进程运行的基本原理
从写程序到程序运行
生成源代码文件
编译:编译程序将源代码编译成若干的目标模块;
链接:由链接程序将目标模块与所需库函数链接成一个完整的装入模块;
装入:由装入程序将装入模块装入内存运行。
三种链接方式(生成逻辑地址)
**静态链接:**在 程序运行之前链接成一个可执行程序;
**装入时动态链接:**在装入内存时,采用 边装入边链接的方法;
**运行时动态链接:**在程序 运行时需要该目标模块再链接。便于修改和更新,有利于目标模块的共享。
三种装入方式(生成物理地址)
**绝对装入:**在单道程序环境下,编译时知道程序的实际存储位置,则编译时产生绝对地址的目标代码,即 逻辑地址与物理地址相同,只适用于单道程序;
**可重定位装入(静态重定位):**在多道程序环境下,目标模块的起始地址通常是从0开始,装入时,将目标程序的逻辑地址 一次性换为物理地址;
**动态运行时装入(动态重定位):**程序可以可以在内存中发生移动,需要设置一个重定位寄存器,装入时,目标程序的逻辑地址 不需要立即转换为物理地址,可以需要的时候再换。
4、内存保护
概念**:**内存分配前,需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他内存的影响。
**方法一:在cpu上设置一对上、下限寄存器,**存放用户作业在主存中的下限和上限地址,每当CPU要访问一个地址时,分别和两个寄存器相比较,判断是否越界;
**方法二:**采用 重定位寄存器(基址寄存器)和界地址寄存器(限长寄存器),重定位寄存器含最小的物理地址值,界地址寄存器含有逻辑地址的最大值。每个逻辑地址必须小于界地址寄存器;先将逻辑地址与界地址寄存器进行比较,若未发生越界,则加上重定位寄存器的值后映射成物理地址,再送到内存单元。
5、覆盖与交换
**概念:**覆盖与交换技术是在多道程序环境下用来扩充内存的两种方法
覆盖技术
**基本思想:**将用户空间分为一个固定区和若干个覆盖区。
**固定区:**存放最活跃的程序段,程序运行时不会调入调出;
**覆盖区:**不会被同时访问的程序段共享一个覆盖区,根据需要进行调入调出;
**特点:**打破了必须将一个进程的全部信息装入内存后才能运行的限制。
交换技术
基本思想:(中级调度时采用)
**换出:**内存紧张时,将处于等待状态的进程从内存调到辅存;
**换入:**把准备好竞争CPU的进程从辅存移到内存中。
特点:把磁盘空间分为文件区和交换区
二者区别:
覆盖技术常用于同一个程序或进程中,而交换技术则在不同进程或程序之间进行;
覆盖技术必须由程序员声明覆盖结构,使得对用户和程序员不透明。
6、连续分配管理方式
**概念:**为一个用户程序分配一个连续的内存空间。
**三种方式:**单一连续分配、固定分区分配、动态分区分配
单一连续分配
只支持单道程序,内存分为系统区和用户区;
无外部碎片,有内部碎片;
可以采用覆盖交换技术。
固定分区分配
支持多道程序,内存分为若干固定分区;
无外部碎片,有内部碎片;
为分区建立一张 分区说明表,分区大小可以相等或不等。
动态分区分配
特点:
支持多道程序,根据进程大小动态分区;
无内部碎片,有外部碎片;
外部碎片采用 “紧凑”技术得以解决:操作系统不时的对进程进行移动和整理,需要采用 动态重定位寄存器。
动态分区分配算法:
首次适应:地址递增,顺序查找;
最佳适应:容量递增,依次查找;
最坏适应:容量递减,依次查找;
邻近适应:在首次适应的基础上,按照从上次结束的位置进行依次查找。
7、在可变分区管理中,需要哪些硬件机制?
采用可变分区方式管理时,一般均采用动态重定位方式装入作业。地址变换要靠硬件支持,主要是两个寄存器:基址寄存器和限长寄存器,限长寄存器存放作业所占分区的长度,基址寄存器则存放作业所占分区的起始地址,这两个值确定了一个分区的位置和大小。
转换时根据逻辑地址与限长值比较,如果不有超过这个值,表示访问地址合法,再加上基址寄存器中的值就得到了绝对地址了,否则形成“地址越界”中断。
8、非连续分配管理方式
概念:
为一个用户程序分配不连续的内存空间。
基本方法
分页存储管理:基本分页存储管理、请求分页存储管理
分段存储管理
基本分页存储管理
**分页的原理:**把主存空间划分为大小相等且固定的块,作为主存的基本单位;每个进程 也以块为单位划分,进程执行时,以块为单位申请内存空间。
基本地址变换机构
**具有快表的地址变换机构:**先到高速缓冲寄存器中找,再去内存中的页表里找,减少了 访存次数;
两级页表:页表存放在内存中,若大量无用的页表存放在主存中会造成内存浪费,因此 建立多级页表,其目的在于建立索引,以便不浪费主存空间去存储无用的页表项,也不 用盲目的顺序式查找页表项。
基本分段存储管理
**分段的特点:**将地址空间按程序自身逻辑分段;每个段在内存中占连续空间,各段可不 相邻。
分段和分页的主要区别:
**目的:**分页的为了满足系统管理的需要,分段是为了满足用户的需要;
**大小:**页的大小是固定的,段的大小是不固定的;
**维度:**页的地址是一维的,段的地址是二维的;
**碎片:**分页有内部碎片无外部碎片,分段有外部碎片无内部碎片。
段页式管理方式:
9、虚拟内存
传统存储管理方式的特征
**一次性:**作业一次性调入内存才开始运行;
**驻留性:**作业被调入内存后,会一直驻留在内存中,直到作业运行结束。
局部性原理
**时间局部性:**当前所访问的数据,很可能再次被访问;
**空间局部性:**当前所访问的存储单元,其周围的存储单元很可能下次被访问。
**高速缓存技术:**使用频繁的数据放到更高速的存储器中。
虚拟存储器的定义和主要特性
定义:基于局部性原理,系统利用部分调用、请求调入、置换功能,好像为用户提供了 一个比实际内存大得多的存储器;
主要特性:
**多次性:**作业无须一次调入,允许分多次调入内存;
**对换性:**作业在运行过程中无须常驻内存,可以根据需要进行换入换出;
**虚拟性:**从逻辑上扩充内存容量。
虚拟内存技术的实现
**三种方式:**请求分页存储管理、请求分段存储管理、请求段页式存储管理
**硬件支持:**页表机制、缺页中断机构、地址变换机构
10、虚拟存储的意义和方法?
根据程序执行的互斥性和空间与时间局域性两个特点,允许作业装入时候只装入一部分,另一部分存放在磁盘上,调用时候将常用的放入内存,其他暂时不用的放入外存中。这样一个小的主存空间也可以运行一个比它大的作业。常用的虚拟存储技术有分页分段存储管理。
11、请求分页管理方式
概念
请求分页系统建立在基本分页系统的基础上,为了实现虚拟存储功能而增加了请求调页功能和页面置换功能。
页表机制
在基本分页系统的基础上增加了4个字段:
**状态位:**用于指示该页是否已经调入内存;
**访问字段:**用于记录本页在一段时间内被访问的次数,供置换算法参考;
**修改位:**标记在调入内存后该页是否被修改过;
**外存地址:**用于指出该页在外存上的地址,供调入页面时参考。
缺页中断机构:
在请求分页系统中,当所要访问的页面不在内存中时,便产生一个缺页中断,请求操作系统将所缺的页调入内存。
地址变换机构:
找到页表项要检查页面是否在内存中;若在,则修改页表项中的访问位,得出物理地址,若不在,请求调页,调入时,若内存不够,进行页面置换。
12、页面置换算法
**最佳置换算法:**淘汰的页面时未来最长时间不会被使用的(此算法无法实现)
**先进先出算法:**优先淘汰最先被调入的页面;
**最近最久未使用算法:**优先淘汰最近最长时间为被访问的页面;
**时钟置换算法:**循环扫描缓冲区
该算法为每个页面设置一位访问位,将内存中的所有页面通过指针链成一个循环队列。 由于该算法只有一位访问位,只能用它表示该页是否已经使用过,而置换时是将最近未 使用过的页面换出去,所以把该算法称为最近未用算法。
选择页置换的过程:
1.当某页被访问时,其访问位置“1”;
2.在选择一页淘汰时,就检查其访问位,如果是“0”,就选择该页换出;若为“1”, 则 重新置为“0”,暂不换出该页;
3.在循环队列中检查下一个页面,直到访问到访问位为“0”的页面为止。
13、页面分配策略
驻留集
请求分页存储管理中给进程分配的内存块的集合
页面分配与置换策略
固定分配 vs 可变分配
局部置换 vs 全局置换
三种策略:固定分区局部置换、可变分配全局置换、可变分区局部置换
何时调入页面
预调页策略:主要用于首次调入
请求调页策略:进行运行期间,缺页时
从何处调入页面
请求分页系统中:外存分为文件区和对换区
三种情况:
**系统拥有足够的对换区:**可以全部从对换区调入所需页,以提高调页速度;
**系统缺少足够的对换区:**凡是不会被修改的文件都直接从文件区调入,对于那些可 能被修改的文件,在将他们换出时必须先调入对换区;
**UNIX****方式:**未被运行过的页面都应从文件区调入,曾经运行过但又被换出的页面, 放在对换区,下次从对换区调入。
抖动
概念:刚换出的页面马上又要换入主存,或者反之。
主要原因:某个进程频繁访问的页面数目高于可用的物理页框数目
工作集
概念:在某段时间间隔内,进程要访问的页面集合。
四、文件管理(好像不是重点)
1、windows和linux使用的文件系统?
window:fat32 linux:ext2,fat32.
2、文件管理的概述
文件的定义**:**一组有意义的信息集合,可以是文档、图片、程序等。在用户进行输入、输出时,以文件为基本单位。
文件系统:操作系统中负责管理和存储文件信息的软件机构称为文件管理系统。三个部分组成:与文件有关的软件、被管理文件、实施文件管理所需要的数据结构。
**文件的基本操作:**操作系统提供 系统调用对文件进行创建、读、写、重定位、删除和截断等操作。
**组成:**数据项、记录、文件
3、文件的逻辑结构
概念**:**文件的逻辑结构是从用户观点出发看到的文件的组织形式
**无结构文件(流式文件):**将数据按顺序组织成记录并积累、保存,它是有序相关信息项的集合。适合于源程序文件、目标代码文件等
有结构文件(记录式文件)
顺序文件
索引文件
索引顺序文件
直接文件或散列文件
4、文件目录
目录的实现
.
文件控制块和索引结点
.
目录结构
单级目录结构:
**优点:**实现了文件的“按名存取”;
**缺点:**查找速度慢,不允许重命名,不能实现文件共享;
两级目录结构:
**优点:**允许不同用户的文件重名;
**缺点:**不能对文件分类;
树形目录结构:
**优点:**实现了文件的分类;
**缺点:**需要按路径逐级访问中间结点,增加了磁盘访问次数,影响查询结果,且不能实 现文件共享;
无环图目录结构:
**优点:**允许文件共享;
缺点:使得系统管理变得复杂。
5、文件共享
软链接
硬链接
6、文件保护
访问类型
访问控制