操作系统 OS 复试 笔记

操作系统 OS 复试笔记

1. 序章

1.1 什么是操作系统?操作系统有那些功能和特征?

什么是操作系统?

  • 操作系统是管理和控制计算机软硬件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

    • 在你面前的是 计算机资源管理者,软件支配者 ,人机交互端口工具人,操作系统
    • 裸机:指只有硬件的机器。
    • 操作系统 + 裸机 = 我们现在看到计算机 ,OS为用户和计算机硬件提供了端口,也为硬件和软件之间提供了接口:①命令接口(给用户) ,②程序接口(给程序员)

操作系统有那些功能和特征?

  • 操作系统的四大特性:

    • 并发:同一时间间隔内运行多个事件。宏观上看起来像是并行
    • 共享:系统资源可供内存中多个并发执行的进程共同使用
    • 虚拟:把一个物理上的实体变为若干个逻辑上的对应物
    • 异步:在多道程序的环境下,允许多个程序并发执行,但因资源有限,进程的执行不是一贯到底而是走走停停,以不可预知的速度向前推进。

1.2 并行和并发的区别?

并行和并发的区别?

  • 并行:同一时间内运行多个事件。

  • 并发:同一时间间隔内运行多个事件。宏观上看起来像是并行

  • 举个栗子 :

    就是学生在听老师上课的时候还可以记笔记,记笔记和听课这两个行为是同时进行的这就叫并行

    但是学生不可能边上课睡觉边记笔记,这两个行为没办法同时进行。

1.3 简述一下操作系统的管理功能?

操作系统的四大管理功能

  • 处理器管理: 又称进程管理
    • 1.进程控制:在多道程序环境中,作业运行必须要先创建进程并为之分配资源,当进程结束后立即撤销进程以便及时回收所占用的各种资源。(进程三态很重要)
    • 2.进程同步:为多个进程的运行进行协调。有两种协调方式:同步和互斥。(同步互斥,临界资源)
    • 3.进程通信:进程和进程之间的通信,低级的就是同互斥操作,高级的就是PV操作。(pv操作,死锁和银行家算法很重要)
    • 4.进程调度:在后备队列上等待的每个作业或进程通常需要调度才能执行,调度由CPU执行。(调度算法很重要)
  • 存储器管理:
    • 1.内存分配:采用静态和动态两种方式实现内存分配数据结构以及记录内存使用情况、按照一定算法分配对不需要的内存进行回收。(静态分配,动态分配,分段,分页,内存静态碎片,内存动态碎片)
    • 2.内存保护:确保每道用户程序都只在自己的内存空间运行,彼此互不干扰。
    • 3.地址映射:编译后的程序的地址分为逻辑地址和物理地址,多道程序不可能都从“0”地址开始,要保证程序运行则须将逻辑地址转换成内存空间中的物理地址。(地址映射)
    • 4.内存扩充:从逻辑上去扩充内存容量,使得用户感觉的内存容量比实际大得多,或者让更多的程序能并发运行。(虚拟内存)
  • 设备管理:
    • 1.缓冲设备:缓冲区机制能够有效缓解CPU运行的高速性和I/O低速性的矛盾。
    • 2.设备分配:设备控制表,控制器控制表等数据结构能够了解指定设备当前是否可用,是否忙碌,以及该设备被分配出去系统是否安全。
    • 3.设备处理程序:实现CPU和设备管理器之间的通信,由CPU向设备控制器发送I/O命令,要求它完成指定的I/O操作,反之由CPU接收从控制器发来的中断请求,并给与迅速的响应和相应的处理。
  • 文件管理:
    • 1.文件存储空间管理:由文件系统对诸多文件及文件的存储空间实施统一的管理,对每个文件分配不要的必要的外存空间,提高外存的利用率和文件系统的运行速度。
    • 2.目录管理:相当于文件的索引,建立目录项,方便用户查询。
    • 3.文件的读/写管理:防止未经批准的用户存储文件、防止冒名顶替存储文件、防止以不正确的方式使用文件。

1.4 操作系统的发展史

发展史

任何事物历史的发展都是由当前的矛盾引发出改进需求,当解决矛盾后的新事物又会产生新矛盾,在反复螺旋上升的矛盾斗争中发展起来。

时间阶段 优点 缺点(矛盾)
手工阶段 ----- 此时无OS,所有的操作均需要手工干预,人机矛盾(速度和资源利用)CPU等待人工替换,CPU闲置利用率低
单道批处理系统 机器代替手工 CPU虽然利用率高了,但每次主机内存仅存在一道作业,还不够高
多道批处理系统 CPU利用率极大提升 CPU利用率大幅度提升,但缺乏人机交互,给用户使用计算机不方便
分时操作系统 分配时间片,提高交互性,给每个用户感觉独占CPU的感觉 无法对特殊任务(比时间片还短的任务)做出及时响应,特殊任务会被饿死
实时操作系统 及时性和可靠性,军工
网络操作系统 提供了一种统一,经济有效的使用计算机的方法
分布式操作系统 任何工作都可以分部在几台计算机上协同工作,负载均衡

5.什么是管态和目态(核心态和用户态)?为什么要区分管态和目态?

什么是管态和目态(核心态和用户态)?

  • 首先管态和目态是CPU的状态,不要和进程的三态(或者五态)混淆
  • 管态又称特权态,核心态,系统态。CPU在管态下可以执行指令系统的全集,可以访问计算机的任何资源
  • 目态又称用户态,常态。CPU在目态下只能执行非特权指令,不能直接使用系统资源,不能改变CPU的工作状态,只能访问这个用户程序自己的存储空间。
  • 特权指令:所谓的特权指令是计算机中不允许用户直接使用的指令,如I/O指令,置中断指令。

为什么要区分管态和目态?

  • 区分管态和目态的目的是为了保护操作系统。

    • 普通用户很难直接接触到操作系统,但程序员呢和开发人员可以,为了防止别有用心之人破坏操作系统的安全性

6.怎么从目态切换到管态?(考察中断)

  • **1.系统调用:**用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作。(由中断实现)
  • **2.异常:**当CPU在执行用户态程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序,也就转换到了内核态,如缺页异常。
  • **3.I/O设备中断:**当I/O设备完成用户操作后,会向CPU发出相应的中断信号,此时CPU会暂停执行下一条即将要执行的指令,转而去执行与中断信号对应的处理程序。如硬盘的读写操作。

系统调度可以认为是用户进程主动发起的,异常和I/O设备中断则是被动的。

2. 进程管理(处理器管理)

2.1 什么是进程?有哪几种状态?

什么是进程?

  • 进程可以认为是程序执行时的一个实例。PCB是进程唯一的标识。进程时系统进行资源分配的独立实体,且每个进程拥有独立的变量和数据结构,如果希望一个进程访问另一个进程的资源,需要使用进程间通信,比如:管道,文件,套接字等。

  • 进程和程序的区别:进程是动态的,程序是静态的。

    • 程序 像是自动贩卖机里的饮料,你选什么饮料就是什么饮料
    • 进程 像是奶茶店的奶茶,每一杯奶茶的诞生都是动态的过程,你无法保证每杯奶茶的配料用量都是一样,是不可预测,但你总是能宏观的看到店员在打印订单,等待做奶茶,做奶茶,贴标签等(类似进程的五态)动态的过程。

进程的5种状态?

  • 创建状态:
    • 进程正在被创建,尚未转到就绪态。创建进程需要申请一个空白的PCB。并向PCB写一些控制和管理进程的消息,然后由系统分配资源,将进程转入就绪状态。
  • 就绪状态:
    • 进程已处于准备状态,获得了除处理机外的一切所需资源。
  • 执行状态:
    • 进程在处理机上运行。在单处理机下,每一刻最多只能有一个进程在运行。
  • 阻塞状态:
    • 进程正在等待某一事件而暂停运行,如果等待的资源不再被占用(不包括处理机)或等待输入输出的I/O设备完成。即使处理机空闲,进程也不能运行。
  • 结束状态:
    • 进程正在从系统中消失,这可能是进程正常结束或其他原因中断退出运行。当进程需要结束运行时,系统首先必须让该进程为结束状态,然后再进一步处理资源释放和回收。

2.2 什么是线程?与进程有什么区别?

什么是线程?

  • 线程最基本的理解就是“轻量级进程”,它是一个基本的CPU执行单位,也是程序执行流的最小单位

  • 线程属于进程的一个实体,是被系统独立和分配的基本单位,线程不拥有系统资源,只拥有一点在运行时必不可少的资源,但它可以与同属于一个进程的其他线程共享该进程所拥有的全部资源。(所以系统资源分配的最小单位是进程

  • 线程由线程ID,程序计数器,寄存器集合和堆栈组成。

  • 一个进程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。

  • 由于进程之间的相互制约,线程在运行过程中呈现出间断性,线程也有就绪,阻塞,执行

  • 还是拿奶茶店来举例,假设奶茶店的所有原材料和设备均只有一份一台,且不能共同使用。

  • 奶茶店的员工就像线程,假设有5位员工,1位收银,3位制作奶茶,1位后勤

  • 奶茶店的资源肯定是分配到奶茶店本身,而不是每个员工手里,系统资源分配的最小单位是进程

  • 奶茶店店员制作奶茶之间会因为资源相互制约,但宏观上可以做到并发执行,有就绪,阻塞,执行的三态变化

线程和进程的区别?

  • 区别:
  • 1.进程是组员分配和调度的一个独立单元,线程是CPU调度的基本单元,
  • 2.同一个进程可以包括多个线程,并且线程共享整个进程的资源,一个进程至少包括一个线程,
  • 3.进程结束运行时所有的线程都会被销毁,而线程结束运行时不会对其他线程造成影响。
  • 4.线程拥有自己私有的TCB,进程的私有属性有PCB,

2.3 进程之间的通信有哪几种?

进程间的通信

  • 根据交换信息的多少和效率的高低,进程的通信分为低级通信方式和高级通信方式
  • 低级通信方式:
    • 由于进程的互斥和同步,需要在进程间交换一定的信息,所以不少学者将同步互斥归为进程通信。只能传递状态和整数值,特点是传送信息小,效率低,每次传送的信息量固定。当传输信息较多时编程复杂易出错。
  • 高级通信方式:
    • 共享内存模式: 在通信进程之间存在一块可以直接访问的共享空间,通过对这片空间进行读/写操作实现进程之间的信息交换。(P/V操作)
    • 消息传递模式:进程的数据交换是以格式化的消息(Message)为单位的。不存在可以直接访问的共享空间。由源语控制。
    • 共享文件模式:用于连接一个读进程和一个写进程以实现他们之间通信的文件就是共享文件,有称(pipe)管道,为了协调双方的通信,管道及值必须提供互斥,永不,和确定对方存在三方面的协调能力。

2.4 高级调度和低级调度的主要任务是什么?为什么要运入中级调度?

高级调度和低级调度的主要任务是什么?

  • 高级调度的主要任务是根据某种算法,把外存上处于后备队列中的那些作业调入内存。 (磁盘 调度算法)
  • 低级调度是按照某种算法从就绪队列中选取一个进程,将处理机分配给该进程。(进程 调度算法)

为什么要运入中级调度?

  • 引入中级调度的目的,是为了提高内存利用率和系统吞吐量。讲那些暂时不能运行的进程调至外存等待,把进程状态改为就绪态驻外存状态或者挂起状态。

2.5 常用的调度算法

进程调度算法

调度算法是根据系统的资源分配策略所规定的资源分配算法。

  • 1.先来先服务调度算法(FCFS):

    • 算法思想:按照进程进入系统的先后次序进程调度。
    • 优点:算法简单;对长作业有利;有利于CPU繁忙型进程。
    • 缺点:效率低;对短作业不利;不利于I/O繁忙型进程。
  • 2.短作业优先调度算法(SJF):

    • 算法思想:优先选择估计时间最短的进程。
    • 优点:平均等待时间和平均周转时间最少。
    • 缺点:对长作业不利发生饥饿现象;不能保证紧迫性进程会被及时处理;其次由于短作业算法的特点,用户可能无意或有意缩短其作业的时间利用漏洞导致不能做到真正的短作业优先调度。
  • 3.优先级调度算法:

    • 算法思想:每次从就绪队列中选择优先级最高的一个进程,优先级被存储在PCB中。
    • 根据新的更高优先级进程是否抢占正在执行的进程,可分为:抢占式式优先级调度算法非抢占式式优先级调度算法
  • 4.高响应比优先调度算法:

    • 算法思想:该算法是对FCFS和SJF调度的一种综合平衡,同时考虑每个进程的等待时间和运行时间。提出一个响应比的概念,响应比=(等待时间+要求服务时间)/要求服务时间。
    • 优点:等待时间相同的作业,要求服务的时间越短,其优先级越高,此时对短作业有利;要求服务时间相同的作业,等待服务的时间越长,其优先级越高,此时等同于FCFS算法利于长作业,克服了饥饿状态。
    • 缺点:需要进行响应比计算,增加系统开销。
  • 5.时间片轮转调度算法:

    • 算法思想:将所有进程按照先后次序排成队列,每次调度,把处理机分配给队首进程,并令其执行一个时间片,当时间片用完时,由一个计时器发出时钟中断请求,调度程序便停止改程序执行,将其放到队尾,然后处理机就重新分配给新的队首。
    • 优点:适合分时操作系统
    • 缺点:时间片大小控制要适当,时间片太大则等同于FCFS算法,时间片太小切换频繁系统开销大。所以时间片大小应略微大于一次典型交互时间。
  • 6.多级反馈队列调度算法:

    • 算法思想:该算法是时间片轮转调度算法和优先级调度算法的综合和发展,设置多个就绪队列,并赋予不同优先级,优先级越高,时间片越小,一个时间片结束后,若进程没有运行完,则转入低一级的就绪队列队尾,仅当高优先级队列中无就绪进程才开始调度低一级的就绪队列中的进程。
    • 优点:通过动态调整进程优先级和时间偏大小,可以兼顾多方面的系统目标。
    • 缺点:算法复杂

2.6 不同进程之间的关系

进程之间的关系

  • 进程之间存在 同步互斥的制约关系。

  • 同步:指为了完成某种任务而建立的两个或多个进程,这些进程协工而坐有序等待传递信息所产生的关系。

  • 互斥:互斥指当一个进程临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另一个进程才允许去访问临界资源。

  • 同步和互斥像是同一家游戏公司里的项目组之间的合作和竞争关系。

2.7 什么死锁?为什么产生死锁?怎么解决?

什么死锁?

  • 死锁是指多个进程因竞争临界资源而造成的一种僵局(相互等待对方的资源),若无外力作用,这些进程都无法正常向前推进。

探究死锁产生的原因和条件是为了解决死锁问题,破除死锁的必要条件相当于使死锁无法不成立

死锁产生的原因?

  • 1.竞争资源(进程互斥的特点)
  • 2.进程的推进顺序非法

死锁产生的4个必要条件?

  1. 互斥条件
  2. 不剥夺条件
  3. 请求并保持条件
  4. 循环等待条件

解决死锁的办法?

  • 解决死锁的办法分为预防死锁和死锁避免以及死锁的检测以及解除

  • 1. 预防死锁

    • 破坏死锁的必要条件,让死锁无法发生,但不管破坏死锁的哪一个必要条件都会给操作系统带来极大的麻烦,(属于赔了夫人又折兵)
  • 2. 死锁避免死锁避免可以防止死锁发生,但并不意味着死锁不会发生

    • 最常见的办法是银行家算法(一种对资源的矩阵运算,在分配资源前预演枚举的所有可能已规避死锁)

  • 3.死锁的检测以及解除(若死锁已经发生,那么操作系统必须能够检查出来,再通过某些算法尝试解除死锁)

    • 资源剥夺法
    • 撤销进程法
    • 进程回退法

3. 内存管理(存储器管理)

3.1 为什么要引入动态重定位?怎么实现?

为什么要引入动态重定位?

  • 引入目的:在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,故需要动态重定位。
  • 我们知道操作系统的异步性导致程序执行是走走停停的,那么在这种不确定性中,一旦内存地址发生变化,就需要动态获取程序当前在内存的地址。当然要引入动态重定位。

实现重定位的方法?

  • 在系统中增加一个重定向寄存器,用来装入程序在内存中的起始地址,程序执行时,真正访问的内存地址是相对地址与重定向寄存器中的地址相加之和,从而实现重定位。

3.2 分区存储管理中常用那些分配策略?有何优缺点?

分区存储管理中常用那些分配策略?

分区存储管理常用策略:首次适应算法,循环首次适应算法,最佳适应算法,和最坏适应算法

  • 首次适应算法:
    • 按地址从小到大排序,分配第一个符合条件的分区。
    • 优点:保留高位地址的大空闲区,有利于大型作业分配
    • 缺点:低位地址部分被不断划分,留下许多难以利用的小空闲区,每次分配需要重新查找系统开销大。
  • 循环首次适应算法:
    • 在首次适应算法的基础上,从上次查找结束的位置开始查找,分配第一个符合条件的分区。
    • 优点:使内存中的空闲部分分布更加均匀,减少重新查找的系统开销。
    • 缺点:缺乏大空闲区,可能放不进大型作业。
  • 最佳适应算法:
    • 按空间从小到大排序,分配第一个符合条件的分区。
    • 优点:每次分配的空闲区都是最合适的。
    • 缺点:内存中留下许多难以利用的小空闲区。
  • 最坏适应算法:
    • 按地址从大到小排序,分配第一个符合条件的分区。
    • 优点:产生碎片几率最小,对中小型作业有利。
    • 缺点:缺乏大空闲区,不利于大作业。

3.3 分页和分段有何区别?

分页和分段有何区别?

  • 相同点:

    • 分页和分段都采用离散分配的方式,且都要通过地址映射机构来实现地址变换。
  • 不同点:

    • 1.从功能上看:页是物理信息单位,分页是为实现离散分配方式,减少外部碎片,提高内存利用率满足系统管理需要。而段是信息的逻辑单位,它有一组意义相对完整的信息,是为了满足用户需要。
    • 2.页的大小是由系统确定且固定不变的,而段的长度不固定,取决于用户编写的程序。
    • 3.分页的作业地址空间是一维的,分段的作业地址空间是二维的

3.4 什么是局部性原理?什么是虚拟存储器?

什么是局部性原理?

局部性原理包含两个方面:

  • 时间局部性:如果程序中的某条指令一旦执行,不久后可能会再次执行;如果某数据被访问过,不久后数据可能会再次被访问。原因是程序中存在大量循环操作。
  • 空间局部性:一旦程序访问了某个存储单元,不久后其附近的存储单元也会被访问,原因是指令通常是顺序存放,顺序执行的,数据一般也以向量,数组,表等形式簇聚存储。

什么是虚拟存储器?

  • 虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。

  • 基于局部性原理,在程序装入时,可以只将程序的一部分装入内存,就可以启动程序系统。

  • 在执行过程中,当所访问的信息不再内存中,由操作系统将所需内容调入内存,使程序继续执行,同时操作系统将内存中暂时不用的内容调入外存。

  • 虚拟存储器的特点:

    • 多次性:作业无需一次性装入,而是分多次调入。
    • 对称性:作业运行时无需常驻内存,可进行调入调出。
    • 虚拟性:从逻辑上扩充了内存的容量,使用户所感觉到的内存容量远大于实际容量。

3.5 页面置换算法

常见的页面置换算法有4种

页面置换算法

  • **1. 最佳置换算法(OPT):**将以后永远不使用或者最长时间内不会被访问的页面调出。
    • 特点:但由于无法预知进程在内存下的若干页面中那个是未来最长时间内不会再被访问的,因此该算法无法实现。
  • **2. 先进先出置换算法(FIFO):**按先后次序,将最早进入内存的页面调出。
    • 特点:会产生Belady异常,既所分配的物理块数增大而缺页次数不增反减。
  • **3. 最近最久未使用置换算法(LRU):**将最近最长时间未访问的页面调出,该算法为每个页面设置一个访问字段,记录页面上次被访问以来所经历的时间,调出页面时选择时间最长的页面。
  • **4. 最近未使用算法(NRU):**又称时钟置换算法(CLOCK),该算法是为每一个页面设置一个使用位,需要替换页面时循环检查各个页面,将使用位为1的页面重置为0,直到遇到第一个使用位为0的页面将其调出。
    • 若在每个页面增加一个修改位,则得到改进型的CLOCK置换算法,修改位和使用位都为0页面调出。

3.6 什么是抖动?

什么是抖动?

  • 抖动也称颠簸,是指在页面置换过程中,刚刚调出的页面马上又要存入内存,刚刚调入的页面马上又要调出,发生频繁的页面调度行为。

4. 磁盘管理(设备管理)

4.1 引入缓冲区的目的是什么?

引入缓冲区的目的是什么?

  • 1.缓和CPU与I/O设备间速度不匹配的矛盾
  • 2.减少对CPU的中断频率,放宽对CPU中断响应时间的限制
  • 3.解决基本数据单元大小不匹配的问题
  • 4.提高CPU和I/O设备之间的并行性

4.2 什么是SPOOLing技术?由哪几部分组成,举例说明?

什么是SPOOLing技术?

  • SPOOLing 是外部设备联机并行操作的缩写,又称为假脱机技术。是关于慢速字符设备如何与计算机主机交换信息的一种技术。
  • SPOOLing 技术是在通道技术和多道程序设计基础上产生的,它由主机和相应的通道共同承担作业的输入输出作业,利用磁盘作为后院存储器,实现外围设备同时联机操作,是操作系统中采用的一项将独占设备改造成共享设备的技术
  • SPOOLing 技术的特点:提高I/O的速度,将独占设备改造成共享设备;实现虚拟设备功能。

SPOOLing系统的组成部分

  • 1.输入井和输出井
  • 2.输入缓冲和输出缓冲
  • 3.输入进程SPi和输出进程SP

SPOOLing系统的应用实例

  • 学校打印店,1台打印机往往链接这多台电脑,将一台独享打印机改造成可供多个用户共享的打印机。
  • 做法:系统对用户的打印输出并不会把打印机设备分配给用户进程,而是现在输出井中申请一个空闲盘块区,并将要打印的数据送入其中;然后为用户申请并填写请求打印表,将该表挂到请求打印队列上,若打印机空闲,输出程序从请求打印队首取表,将要打印的数据从输出井传送到内存缓冲区,在进行打印。

4.3 磁盘调度算法

磁盘调度算法

  • **1. 先来先服务算法(FCFS):**根据进程求救访问磁盘的先后顺序进行调度
  • **2. 最短寻找时间优先算法(SSTF):**选择处理的磁道是与当前磁头所在磁道距离最近的磁道,使每次的寻找时间最短。该算法会产生"饥饿"现象。
  • **3. 扫描算法(SCAN):**也称电梯算法,在磁头当前移动的方向上选择与当前磁头所在距离最近的请求座位下一次服务的对象。实际上是在SSTF算法的基础上规定了磁头运动的方向。
  • **4. 循环扫描算法(C-SCAN):**在SCAN算法的基础上规定了磁头单向移动来提供服务,到达磁盘端点回返时直接快速返回起始端。

4.4 I/O控制方式

I/O控制方法

  • **1. 程序I/O方式:**计算机从外部设备读取数据到存储器,每次读取一个字的数据。对读入的每个字,CPU需要对外部设备状态进行循环检查,直到确定该字已经在I/O控制器的数据存储器中。
    • 适用于早起无中断计算机系统
    • CPU和I/O设备串行工作,CPU利用率低
  • **2. 中断驱动I/O控制方式:**允许I/O设备主动打断CPU的运行并请求服务,从而使CPU在对I/O控制器发送命令后可以做其他工作。
    • 该方法普遍用于现代的计算机系统中
    • 由于数据中每个字在存储器与I/O控制器之间的传输都必须经过CPU,仍然会消耗CPU较多的时间。
  • **3. DMA I/O控制方式:**在I/O设备和内存之间开辟直接的数据交换通路,数据的基本单位是数据块,所传送的数据是从设备直接送入内存,或者相反,仅在传送数据块的开始或者结尾时需要CPU干预,数据传送是在DMA控制器的控制下完成的。
    • 该方法适用于I/O设备为块设备时和主机进行数据交换。
  • **4. I/O通道控制方式:**是DMA方式的增进,只在一组在数据的传输开始或者结尾时需要CPU干预,可以实现CPU,通道和I/O设备三者的并行操作。
    • I/O通道指专门负责输入/输出的处理机。
    • 该方法适用于设备和主机进行数据交换的是一组数据块的情况,使用该方法要求系统必须配置相应的通道以及通道控制器。

5. 文件管理

5.1 目前广泛使用的文件目录结构是那种?优点是什么?

多级目录结构

目前广泛采用的文件目录结构是多级目录(树型目录结构)

优点:

  • 1.能够有效提高对目录的检索速度:在单级目录中,最多要检索N个目录项,对于有i级的树型目录,在目录中没检索一个指定文件,最多只需要i*N的i次根方个目录项。
  • 2.允许文件重命名:允许每个用户在自己的分目录中使用与其他用户文件相同的名字。
  • 3.便于实现文件共享:可以通过路径来共享其他用户的文件,也可将一个共享文件连接到自己的目录下,方便查看。

5.2 常见的文件分配方式,有何优缺点?

常见的文件分配方式

文件的分配对应着文件的物理结构,是指如何为文件分配磁盘块。常见的文件分配主要有三种:

  • **1. 连续分配:**要求每个文件再磁盘上占有一组连续的快。(类似数组)

    • 优点:实现简单;存取速度快
    • 缺点:文件长度不宜动态增加;反复增删文件后会产生外部碎片;只适用于长度固定的文件
  • **2. 链接分配:**采用离散的分配方式,分为隐式链接分配和显式链接分配。

    • **隐式链接分配:**每个文件对应一个磁盘块的链表,磁盘块任意分布,除最后一个盘块外,没一个盘块都有指向下一个盘块的指针。(类似链表)

      • 优点:提高了磁盘空间利用率;增删改查非常方便。

      • 缺点:无法直接访问盘块,只能通过指针顺序访问文件;指针存储消耗了一定的空间。

    • **显式链接分配:**指把用于链接文件各物理块的指针提取出来,显式地存放在一张链接表中,该表整个磁盘仅设置一张,由于分配给文件的所有盘块号都放在该表中,故称该表为文件分配表(FAT)。

      • 优点:检索速度显著提高;减少了访问磁盘的次数。
      • 缺点:无法直接访问盘块,只能通过指针顺序访问文件;链接表存储消耗了一定的空间。
  • **3. 索引分配:**每个文件的所有的盘块号集中在一起构成索引块(表)。(类似线性表)

    • 优点:可以随即访问;易于文件的增删
    • 缺点:索引表增加了存储空间开销;索引表的查找策略对文件系统开销影响较大。

你可能感兴趣的:(计算机专业课)