计算机面试常见题目-操作系统

目录

  • 绪论
    • 1.1 什么是操作系统?
      • 1.1.1 操作系统的功能?
      • 1.1.2 操作系统的特征
    • 1.2 操作系统类型(发展)
    • 1.3 原语的特点
    • 1.4 中断和异常的概念
      • 系统调用
    • 1.5 操作系统内核的内容、有哪些用户态转向核心态的例子?
    • 1.6 大内核和微内核?
  • 进程管理:进程控制、进程同步、进程通信、死锁处理、处理机调度等
    • 2.1 作业、程序、进程概念和区别
    • 2.2 进程、线程的定义和区别
    • 2.3 进程的状态与状态之间的转换:新建、就绪、运行、阻塞、终止
    • 2.4 进程通信手段(进程间通讯方式):共享存储、消息传递、管道通信
      • 管道通信的特点
    • 2.5 线程实现方式:用户级线程、内核级线程;多线程模型。
    • 2.6 处理机调度、以及其三级调度
      • 不能进行进程调度与切换的情况、应该进行进程调度和切换的情况
      • 经典的进程调度算法
    • 2.7 进程同步概念:临界资源、临界区、互斥、同步
    • 2.8 信号量(整形、记录性):用来解决互斥与同步问题
    • 2.9 管程:一组数据及定义在这组数据上操作,所组成的资源管理模块
    • 2.10 死锁:多个进程因竞争资源而造成的一种僵局,没有外力作用,都无法继续执行。
      • 死锁处理策略:死锁预防、避免死锁、死锁的检测和解除
        • 死活避免:描述银行家算法
  • 内存管理:内存分配、地址转换、内存保护与共享、虚拟内存等
      • 3.1 内存连续分配方式;为程序分配一个连续的内存空间,单一、固定分区、动态分区
        • 内部碎片、外部碎片
      • 3.2 内存扩充
        • 覆盖是在同一进程中进行;交换是在不同进程之间进行
        • 虚拟存储器的定义和特性、虚拟内存技术的实现需要的硬件支持
        • 页式存储管理(内存非连续分配)
          • 多级页表
          • 页面置换算法:使缺页率最低
          • 驻留集与三种页面分配策略
          • 抖动、工作集的定义
        • 段式存储管理(内存非连续分配):按照进程中自然段划分逻辑空间
      • 分页管理、分段管理区别
      • 3.3 内存保护如何实现的?
      • 3.4 地址转换:逻辑地址和物理地址与地址重定向
  • 文件管理:文件存储空间管理、目录管理、文件读写管理和保护等
    • 4.1 什么是文件、文件系统、文件共享
      • 文件保护:控制用户对文件的存取。
      • 文件分配方式、文件存储空间管理
    • 4.2 磁盘(圆形盘片)读写操作:寻道、延迟、传输时间。
      • 描述磁盘调度算法并比较
  • I/O管理:完成用户的I/O请求,提高设备利用率
    • 5.1 IO管理功能:状态跟踪、设备存取、设备分配、设备控制。
    • 5.2 四种IO控制方式:直接控制、中断驱动、DMA、通道控制
    • 5.3 从IO的角度和CPU的角度描述中断控制方式
    • 5.4 设备控制器的主要功能
    • 5.5 描述spooling技术和特点、结构

绪论

1.1 什么是操作系统?

①控制和管理整个计算机系统的软硬件,合理组织调度计算机的工作资源分配
②进而为用户和其它软件提供方便接口
的程序集合。

操作系统是计算机系统中最基本的系统软件。
目标:管理计算机硬件和软件资源;为用户和程序提供方便的接口;



1.1.1 操作系统的功能?

功能:进程(处理机)管理、存储器管理、设备管理、文件管理。



1.1.2 操作系统的特征

并发、共享、虚拟、异步

1、并发:两个或以上进程在同一时间间隔内发生,并发性是通过分时实现的。

2、共享:操作系统的资源科可内存中多个并发执行的进程共同使用。
分为互斥共享方式、同时访问方式。

并发和共享之间的关系?
并发和共享是操作系统两个最基本的特性,两者互为存在条件。
资源共享是以程序的并发为条件的,没有并发就没有共享;如果系统不能对共享资源进行有效的管理,会影响并发的效率。


3、虚拟:把一个物理上的实体变成若干逻辑上对应物。

4、异步:进程不是一次性执行完毕,而是走走停停,以不可预知的速度向前推进。



1.2 操作系统类型(发展)

1、手工操作阶段(无操作系统)

2、批处理阶段(无交互能力):单道批处理(资源利用率低)、多道批处理
(1)单道批处理系统:系统对作业的处理是成批的,但内存中始终保持一道作业。

(2)多道批处理系统(资源利用率高):系统允许多个程序同时进入内存,并允许他们在内存中交替地运行


3、分时操作系统(交互):将处理机运行时间分成很短的时间片,按时间片轮就把处理器分给各作业使用。
实现了人机交互。

4、实时操作系统(交互):要求一个请求在一定确定时间得到内响应。
硬实时必须满足截止时间(紧急任务不需时间片排队),软实时可以容忍一定的超时


5、网络操作系统:把计算机网络中的各台计算机有机的结合起来,实现各台计算机之间数据的互相传送。
操作系统在网络上不在本地。

6、分布式操作系统:系统中的每台计算机都具有同等的地位,计算机上的资源为所有用户共享。
若干计算机协同完成任务。

7、个人计算机操作系统:Windows、Linux等





1.3 原语的特点

1、都处于操作系统的底层,最接近硬件的地方。

2、有原子性,操作一气呵成;

3、运行时间短,调度频繁。



1.4 中断和异常的概念

中断(外中断):指来自CPU执行指令以外的事件的发生
(如设备发出的 I/O结束 中断)


异常(内中断):指源自CPU执行指令 内部发生的事件。
异常不能被屏蔽,一旦出现应立即处理。
如地址越界,算术溢出等

陷入:在用户程序中使用系统调用
(内中断的自愿中断)



系统调用

如果一个进程在用户态需要使用核心态的功能,就进行系统调用从而陷入内核,由操作系统代为完成。

在用户态执行访管指令(trap),产生访管中断,调用(发起)系统调用,转为内核态,内核态执行系统调用。

访管指令是一条可以在用户态下执行的指令。
在用户程序中,因操作系统提供服务而有意识地使用访管指令,产生一个自愿的中断事件,将操作系统转为核心态,称为访管中断。



1.5 操作系统内核的内容、有哪些用户态转向核心态的例子?

时钟管理、中断机制、原语等

有哪些用户态转向核心态的例子?
①用户程序要求操作系统服务;
②发生一次中断;
③发生异常;
④用户想执行特权指令;




1.6 大内核和微内核?

大内核:将操作系统的主要功能都作为一个紧密联系的整体运行在核心态。
大内核性能高但不利于维护


微内核:将内核中主要功能留在核心态(如进程管理)。

微内核有利于维护性能低一点。

是为了降低内核的复杂性,将一部分操作系统功能移出内核。
系统被划分为若干较小且相互独立的模块,其中只有微内核一个模块运行在内核,其余模块运行在用户态。
需要频繁在用户态和内核态之间进行调换,所以会有一定的性能损失。



进程管理:进程控制、进程同步、进程通信、死锁处理、处理机调度等

2.1 作业、程序、进程概念和区别

作业:用户需要计算机完成的某项任务,是要求计算机所做工作的集合。

程序:是一个静态的概念,一组指令的有序集合
一个程序可对应多个进程;
程序是永存的;进程是暂时的

进程:是动态的概念,是程序在数据集上的一次执行过程。是系统进行资源分配和调度的基本单位
进程具有并发性,而程序没有。
1个进程只能对应1个程序;



2.2 进程、线程的定义和区别

1、进程定义:程序在数据集上的一次执行过程,进程是系统进行资源分配和调度的一个基本单位。
如浏览器和QQ是两个进程。
进程实体是由PCB块、相关的数据段、程序段三部分组成。

进程作用:除CPU外的系统资源的分配单元。

优点:利于资源的管理和保护;每个进程互相独立,不影响主程来序的稳定性,子进程崩溃没关系;

多进程调度开销比较大。(主要在转换的开销上)


2、线程:轻量级的进程,它是基本的CPU执行单元。是任务调度和执行的基本单位。线程不独立拥有资源。
如浏览器的一次HTTP请求。
由线程id、程序计数器、寄存器集合、和堆栈组成。

线程作用处理机的分配单元(处理机:CPU+主存+IO接口+外围设备)

线程关系:相对进程而言,线程是一个更加接近于执行体的概念 ,拥有自己的栈空间和独立的执行序列。
一个线程可以创建和撤销另一个线程;

同一个进程中的多个线程之间可以并发执行.同进程多个线程可共享数据。

线程优缺点:线程执行开销小,但不利于资源的管理和保护;(与进程相反)



线程与进程的区别:
  
(1)不同的操作系统资源管理方式:进程是系统资源分配调度单位,线程是CPU调度单位

进 程是资源分配的基本单位,线程不独立拥有资源,但可以访问隶属进程的资源。

(2)并发性:引入线程就是为了获得更好的并发性。

(3)开销:进程的创建、撤销和切换都要有资源的分配和回收,开销远大于线程的切换。

(4)地址空间和其它资源:进程的地址空间都是独立的(每个进程有自己的虚拟地址空间),而线程可以共享隶属进程的地址空间和资源。

(5)通信方面:进程之间通信需要用进程通信手段实现,而线程间通信可以直接读写数据段。



2.3 进程的状态与状态之间的转换:新建、就绪、运行、阻塞、终止

1、就绪态:进程获得了除处理机外的一切所需资源,一旦得到处理机就立即运行。
(系统就处于就绪状态下的进程可能有多个,排成一个就绪队列)

2、运行态:进程正在处理机上运行。
(单处理机下每个时刻最多只有一个进程处于运行态)

3、阻塞态:进程正在等待某一事件而暂停运行,如等待某资源为可用(不包括处理机)
如等待I/O操作的完成。


新建可以到就绪状态,就绪可以到运行状态,运行可以到阻塞状态也可以就绪状态。

阻塞可以到就绪状态但不能直接到运行状态。



2.4 进程通信手段(进程间通讯方式):共享存储、消息传递、管道通信

1、共享存储:通信进程之间存在一块可以直接访问的共享空间,通过对这块空间进行读写操作实现进程之间的信息交换。
操作系统会为进程提供可共享使用的存储空间和同步互斥工具。

2、消息传递:进程间的数据交换以格式化的消息为单位,操作系统提供发送消息和接受消息的两个原语进行数据交换。
有分为直接通信方式和间接通信方式。

3、管道通信:管道是指用于连接一个读进程和一个写进程以实现他们之间的通信的一个共享文件。
写进程向管道写入数据,读进程向管道读取数据,所以管道机制必须提供:互斥、共享、确定对方存在的功能。

管道只能采用半双工通信,即某一时刻只能单向传输,要实现互动通信,需要定义两个管道。


管道通信的特点

1、管道大小有限制,一般为4kb。

2、读进程可能比写进程快。发生这种情况,读进程被默认阻塞。

3、半双工通信,某一时刻是能单向传输,如果要实现两个进程双向通信,只能申请两个管道。



2.5 线程实现方式:用户级线程、内核级线程;多线程模型。

用户级线程中,线程的管理都在应用程序中进行,系统会提供一个多线程的函数库,系统感知不到用户定义的多线程的存在。


内核级线程:线程的管理都在操作系统中完成,用户只有一个到内核级线程的编程接口。


三种多线程模型:
一对一:一个用户级线程对应一个内核级线程。
优点是一个线程阻塞之后,其它线程还可以继续运行,提高了效率。
缺点是开销比较大。

多对一:多个用户级线程映射到一个内核级线程上。
优点是线程管理在用户空间,效率高。
缺点是一个线程阻塞,所有的线程都会阻塞。

多对多线程。是一个折中。



2.6 处理机调度、以及其三级调度

调度:处理机调度是对处理机进行分配,从就绪队列中按照一定的算法选择一个进程,并将处理及分配给他,实现进程的并发。

作业(高级)调度:把作业从外存中取出,给它分配内存和其它资源,让它成为一个进程。
是其能具备竞争处理机的条件。它是主存和辅存之间的调度。一个作业只调入一次调出一次。


内存(中级)调度:将那些不能运行的进程挂起到外存,能运行的调入内存。作用是提高内存利用率和系统吞吐量。。
如果他们已经具备运行条件,有稍微有些空闲,由中级调度决定外存上的进程重新调入内存,并修改为就绪态。

进程(低级)调度:照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。
是操作系统最基本的调度,调度频率非常高。

三级调度之间的联系
①作业调度为进程活动做准备,进程调度使进程被执行,中级调度将不能运行的进程挂起,将具备条件的进程设置就绪。
②作业调度、内存调度、进程调度频率递增;
③进程调度使最基本的不能缺少。


不能进行进程调度与切换的情况、应该进行进程调度和切换的情况

不能进行进程调度与切换的情况
1、处理中断的过程中;2、进程在操作系统内核临界区;3、其它完全需要屏蔽中断的原子操作过程中。

应该进行进程调度和切换的情况
1、发生引起调度的条件且当前进程无法继续运行下去

2、中断处理结束或陷入处理结束,返回被中断进程的用户态程序执行线程,若置上请求调度标志,可以马上进行调度和切换。


经典的进程调度算法

1、先来先服务: 有利于长作业,不利于短作业。有利于CPU繁忙作业,不利于IO繁忙作业。

2、短作业优先: 不利于长作业,未考虑作业的紧迫程度;平均等待时间和平均周转时间最少。

3、优先级调度算法: 可以设置紧迫程度、参照以下原则设计:系统进程大于用户进程、交互进程大于非交互进程、IO进程大于计算进程。非剥夺式、剥夺式。

4、高响应比优先算法: 克服饥饿,兼顾了场作业。

5、时间片轮转: 用于分时系统,需要选择合适大小的时间片。


6、多级反馈队列调度算法: 优点如下:终端型作业,短作业优先;短批处理作业,周转时间短;长批处理作业,经过前几个队列得到部分执行,不会长期不执行。



2.7 进程同步概念:临界资源、临界区、互斥、同步

临界资源:每次只允许一个进程访问的资源。

临界区:访问临界资源的那段代码

同步:直接制约关系,两个进程在时间上有先后关系。
同步机制遵循的原则:
空闲让进、忙则等待、有限等待(保证进程有限时间内进入临界区)、让权等待(进程获得不了临界区时,应立即释放处理器)。

互斥:间接制约关系,当一个进程进入临界区,另一个必须等待。
实现临界区互斥的基本方法
单标志法、双标志先检查、双标志后检查、皮特森算法。硬件方法。信号量法。



2.8 信号量(整形、记录性):用来解决互斥与同步问题

整形信号量:一个用于表示资源个数的整形量。只能被两个原语P、S访问(W-1,P+1)
信号量为0 临界区加锁。为1临界区解锁。为负数时,表示系统中请求该类资源而被阻塞的进程数目。


记录性信号量:用一个结构体实现(包括资源个数和一个等待队列)



2.9 管程:一组数据及定义在这组数据上操作,所组成的资源管理模块

进程可以调用管程来实现进程级别的并发控制。

这组操作能初始化并改变管程中的数据和同步进程。

管程的组成:局部于管程的数据,对数据结构的操作,对局部于管程的数据设置的初始化语句。

管程的基本特性:局部于管程的数据只能被局部与管程的过程访问;
一个进程只有调用管程内的过程才能进入管程访问共享数据;每次就允许一个进程在管程内执行某内部操作。



2.10 死锁:多个进程因竞争资源而造成的一种僵局,没有外力作用,都无法继续执行。

原因:对不可剥夺的资源的竞争;进程的非法顺序推进;满足死锁产生的必要条件。

死锁产生的必要条件:请求保持(占有和等待)、不可剥夺(不可被抢占)、循环等待(环路等待)、互斥条件(排他)


死锁处理策略:死锁预防、避免死锁、死锁的检测和解除

1、预防死锁:破坏死锁形成的四个必要条件之一。
优点:不必剥夺
缺点:不灵活

2、死锁避免
优点:不必剥夺
缺点:必须知道将来的资源需求

3、死锁检测和解除:先用资源换分配图判定死锁。通过撤销某死锁进行、回退进程、剥夺进程资源法可以解除死锁。
优点:允许对死锁进行现场处理
缺点:通过剥夺接触死锁,造成损失。


死活避免:描述银行家算法

银行家算法:主要思想是避免系统进入不安全状态。

在每次进行资源分配时,它首先检查系统是否有足够的资源满足要求,若有则进行分配,并对分配后的新状态进行安全性检查。
若新状态安全,则正式分配上述资源,否则拒绝分配上述资源。



内存管理:内存分配、地址转换、内存保护与共享、虚拟内存等

1、内存回收和分配功能:使程序员摆脱手动分配回收的麻烦,提高效率。

2、地址转换功能:如逻辑地址和物理地址的转换。

3、内存空间扩充:利用虚拟存储技术和覆盖技术扩充内存。

4、存储保护:使多道程序运行时不发生越界。



3.1 内存连续分配方式;为程序分配一个连续的内存空间,单一、固定分区、动态分区

(1)单一连续分配(单任务操作系统):将内存分成系统区和用户区。用户区不需要保护,就一个程序。
优点:简单、无外部碎片;
缺点:只适用于单道程序,有内部碎片,内存利用率非常低。


(2)固定分区分配:将内存空间划分成大小指定的分区,每个分区只装入一个作业。分区大小可以相等也可以不等。
优点:可以多道程序;
缺点:分区固定不变,程序不能太大,否则放不进去,有内部碎片;内存利用率低。


(3)动态分区分配:不预先划分分区,而是等程序装入内存时再划分。
优点:可以使分区大小刚好合适。
缺点:会产生较小的外部碎片分配不出去。

动态分区有哪些策略?
首次适应算法(按地址递增)、最佳适应(按容量递增)、最坏适应(按容量递减)、邻近适应算法(从上次结束的位置继续)。



内部碎片、外部碎片

内部碎片:分配给作业的存储空间中未被利用的部分
固定分区、分页存储都有可能产生内部碎片

外部碎片:系统中无法被利用的小存储块
动态分区、分段存储都有可能产生外部碎片



3.2 内存扩充

覆盖是在同一进程中进行;交换是在不同进程之间进行

覆盖和交换技术是在多道程序环境下用来扩充内充的两种方法。

覆盖:把用户空间分成一个固定区和若干覆盖区。
常用的放在固定区;覆盖区的段随时与外存的段交换。


交换:把处于等待的程序从内存中换出到外存,把能竞争CPU运行的程序换入到内存
(类似于作业调度)



虚拟存储器的定义和特性、虚拟内存技术的实现需要的硬件支持

基于局部性原理,只需要把程序的一部分装入内存就可运行起来。在执行过程中,程序要访问的信息不在内存,由操作系统将所需的部分调入内存执行。操作系统将暂时不用的内容换出到外存上,空闲空间存放从外存换入的信息。
这样操作系统就好像为用户提供了一个比实际内存大得多的存储器。

特性:多次性、对换性、虚拟性

虚拟内存技术的实现需要的硬件支持
1、一定容量的内存和外存 ;2、页表机制;3、中断机构,产生中断;4、地址变换机构



页式存储管理(内存非连续分配)

思想:把主存空间划分成大小相等且固定的块,作为主存的基本单位(块相对较小)。
每个进程也以块为单位划分,进程在执行时,以块为单位申请主存中的块空间

不会产生外部碎片,平均只会产生半个块大小内部碎片。

进程中(对应主存空间)的块 称为页;内存中的块称为页框(一个页框对应进程一个页);外存中也进行划分,直接称为块。


页式存储管理由:页及相关概念、地址结构、页表、地址变换机构组成。

地址结构包括:页号、页内偏移。

页表的组成包括:页号、块号。

地址变换是硬件自动完成的;分页机制是对用户完全透明的。



多级页表

一级页表相当于把一本书缩小成几页的目录,通过目录来找书的内容。但有个问题,如果书目录也非常多,自然而然的,再建立一次目录。二级页表由此诞生,就是把页表当数据,再建立页表

顶级页表全部装入内存,也就只占1页(一块)。
如有需要,再通过顶级页表按需载入二级页表,通过二级页表再引入程序的内容,这样就节省了不少空间。


优点:解决了当逻辑地址空间大时,页表的长度会大大增加的问题。

缺点:带来了采用多级页表时,一次访盘需要多次访问内存甚至磁盘,会增加一次访问的时间。


页面置换算法:使缺页率最低

最佳置换算法:最优,但由于无法预测未来,只能是理想中的算法,可以用来作为参考评估其他算法的性能。

先进先出算法:最公平,但会出现belady现象(可能反而会使缺页率增高)。

最近最久未用算法(LRU): 算法原理是,如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。
算法性能好,需要寄存器和堆栈的支持。

时钟置换算法clock算法(又称为NRU最近未用算法):
时钟轮转法将所有的页组成一个圆,圆心的指针指向下一个要被置换的页面。
置换前检查使用位,如果使用位为1,同样将其使用位置为0,随后将顺指针旋转,检查下一个页面,直到发现某页的使用位为0,将此页置换出内存。


驻留集与三种页面分配策略

驻留集:给一个进程分配的物理页框的集合

1、固定分区局部置换:系统为每个进程分配一定数量的物理块,在整个运行期间都不改变。
若进程在运行过程中发生缺页,则只能从该进程在内存中的页面中选出一页换出,然后再调入需要的页面。
缺点:难以确定进程所需的合适的物理块数。

2、可变分区全局置换:刚开始会为每个进程分配一定数量的物理块。操作系统会保持一个空闲物理块队列。当某个进程发生缺页时,从空闲的物理块中取出一块分配给该进程;
缺点,有可能会盲目的给进程增加物理块,导致多道程序并发能力下降。

3、可变分区局部置换:刚开始会为每个进程分配一定数量的物理块。当某进程发生缺页时,只允许从该进程自己的物理块中选出一个进行换出外存。
如果进程中运行中频繁缺页,系统会为该进程多分配几个物理块,直至该进程缺页率趋势适当程度;反之,如果进程在运行中缺页率特别低,则可适当减少分配给该进程的物理块。



抖动、工作集的定义

抖动:刚换出的块又被换入到外存中。
主要因为频繁访问的页面数高于可用的物理页数目。

工作集:某段时间间隔内,程序要访问的页面集合。


段式存储管理(内存非连续分配):按照进程中自然段划分逻辑空间

每段从0开始编址,并分配一段连续的地址空间(段内要求连续,段间不要求连续)

这种管理方式考虑到了程序员的感受,以满足方便变成、信息保护和共享、动态增长及动态链接等要求。

段式存储管理由:分段、段表、地址结构、地址变换机构组成。

段表结构包括:段号,段长,段的起始地址

段地址的组成:段号、段内的偏移。



分页管理、分段管理区别

1、页是信息的物理单位,段是信息的逻辑单位

2、页大小固定取决于系统、段大小取决于程序。

3、分页的地址空间一维、分段的地址空间二维(段名+段内偏移)

4、分页有内部碎片、分段有外部碎片



3.3 内存保护如何实现的?

内存保护采用两种方法:①上下限寄存器法;②重定位寄存器和界地址寄存器组合法。

第二种方法中:界地址寄存器含有逻辑地址的最大地址,是用来“比较”的;重定位寄存器含有物理地址最小值,是用来“加”的。



3.4 地址转换:逻辑地址和物理地址与地址重定向

逻辑地址:编译后每个目标模块都从0开始编制,叫做相对地址或逻辑地址。

物理地址:是地址转换后的最终地址。装入程序将代码装入内存,必须将逻辑地址变成物理地址,称为地址重定位。




文件管理:文件存储空间管理、目录管理、文件读写管理和保护等

4.1 什么是文件、文件系统、文件共享

文件:存储在计算机的信息集合,以计算机硬盘为载体。
用户进行输入输出是以文件为基本单位的,保存在文件中以便长期存储以及将来的访问。

文件组成:数据项、记录、文件

文件系统:操作系统中负责管理和存储文件信息的软件机构。
三个部分组成:与文件有关的软件、被管理文件、实施文件管理所需要的数据结构。


文件共享:多个进程共享一个文件,系统只保留该文件的一个副本。



文件保护:控制用户对文件的存取。

防止共享文件被未经核准的用户访问或修改。

文件保护通过:口令保护、加密保护、访问控制(访问控制列表法、精简控制列表法)来实现。



文件分配方式、文件存储空间管理

连续分配、链接分配、索引分配。


文件存储空间管理
空闲表法、空闲链表法、位示图法、组成链接法;



4.2 磁盘(圆形盘片)读写操作:寻道、延迟、传输时间。

寻道时间、延迟时间、传输时间。寻道时间占用的时间是最长的。


寻找时间(最长,机械运动):磁头找到磁道的时间

延迟时间:磁头找到特定扇区的时间(先找到指定磁道)

传输时间:从磁盘读写数据的时间。



描述磁盘调度算法并比较

先来先服务算法,最简单最公平,少量请求性能好,大量请求接近随机调度。

最短寻找时间优先:比先来先服务性能好,但会饥饿

扫描算法:性能好,避免了饥饿,但对远离磁头的一端不公平

循环扫描:消除了两段请求的不公平。




I/O管理:完成用户的I/O请求,提高设备利用率

5.1 IO管理功能:状态跟踪、设备存取、设备分配、设备控制。

设备控制:控制设备 和 内存或处理机之间的数据传送


5.2 四种IO控制方式:直接控制、中断驱动、DMA、通道控制

1、直接控制方式:CPU每读取一个字,就要对外设状态进行检查,知道确定这个字已经在IO控制器的数据寄存器里。
这是由于CPU的高速性和IO设备的低速性,致使CPU大部分时间都处于等到IO设备的循环,造成CPU资源的极大浪费。更深层的原因是CPU没有采用中断机构,导致IO设备无法向CPU报告它已经完成了一个字符的输入。

2、中断驱动方式:CPU在向IO设备发出读命令后,可以转去做其它的事情,等到IO设备数据就绪,由IO设备主动发出中断请求打断CPU。
这样是CPU和设备都可以尽量忙起来。

3、DMA方式:在主存和IO设备之间直接开辟数据通路,彻底解放CPU。
其特点是基本单位是数据块,所传送的数据是从设备直接送入内存的,或者相反。仅仅在一个或多个数据块传输开始或结束时才需要CPU的干预,这个数据块的传输是在DMA控制器的控制下完成的。

4、通道控制方式。IO通道是指专门负责输入输出的处理机。它可以进一步减少CPU的干预。
IO通道与一般处理机的区别:通道指令类型单一,没有自己的内存,通道所执行的通道程序是放在主机的内存中的,也就是说通道与CPU内存共享。

IO通道与DMA方式的区别是,DMA方式需要CPU来控制传输的数据块的大小、位置、而通道可自己控制。
DMA方式对应一台设备的数据传递,而通道可以控制多台设备与内存交换。



5.3 从IO的角度和CPU的角度描述中断控制方式

从IO的角度,IO控制器接受到CPU的读命令,开始从外围设备读取数据,一旦数据读取到IO控制器的寄存器里,就通过控制线给CPU发出一个中断信号,等待CPU请求这个数据。
IO控制器收到CPU发出的取数据请求后,就将数据放到数据总线,传到CPU的寄存器中。

从CPU的角度看,CPU发出读命令后,保存当前程序的上线文,转去执行其它程序, 每个指令周期的末尾,CPU检查中断,CPU保存当前正在运行程序的上下文,转去处理中断,CPU从IO控制器读取一个字存入数据寄存器然后存入内存当中。
接着,CPU从就绪队列中选出一个进程开始执行。



5.4 设备控制器的主要功能

1、接受和识别CPU和管道发来的命令

2、实现数据交换,包括设备和控制器之间的数据传输;控制器和主存之间的数据传输

3、发现和记录设备自身的状态信息,供CPU使用

4、设备地址识别


5.5 描述spooling技术和特点、结构

为了缓和CPU的高速性和IO设备的低速性矛盾,引入了脱机输入输出技术。

该技术利用专门的外围控制机,将低速IO设备的数据传送到高速磁盘上或者相反。

特点:提高了IO的速度,将独占设备改造成共享设备,实现了虚拟设备的功能

spooling的结构
输入井和输出井、输入缓冲区和输出缓冲区、输入进程和输出进程。



你可能感兴趣的:(面试)