操作系统考研复试简答题整理

知识是共享的
把爱传递下去

什么是操作系统?
操作系统:是指控制和管理整个计算机系统的硬件和软件资源,并合理地调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。

操作系统的特征?
并发:指两个或多个事件在同一时间间隔内发生。
共享:指资源共享,是指系统中的资源可供内存中多个并发执行的进程共同调用。
互斥共享:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。
同时共享:系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问。
虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。
异步:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进。

操作系统的目标与功能?
方便性:通过OS所提供的各种命令操作计算机系统,极大地方便用户
有效性:提高系统资源的利用率与吞吐量。
可扩充性:方便地增添新的功能和模块。
开放性:系统能遵循国际标准规范,所开发的软硬件都能彼此兼容。

作为系统资源的管理者
处理机管理:
内存管理:
文件管理:
设备管理:
用户和计算机之间的硬件接口
对机器硬件的扩展

操作系统分为哪几个阶段?
手工操作阶段: 输入输出都有人手工完成,仅当程序运行完毕并取走计算结果后,才允许下一用户上机。
缺点:.用户独占全机。人机速度矛盾导致资源利用率极低
单道批处理系统: 引入脱机输入/输出技术(用磁带完成),并监督程序负责控制作业的输入、输出。
缓解了一定程序的人机速度矛盾,资源利用率有所提升。
内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序。CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。
多道批处理系统: 允许多个程序同时进入内存并允许他们在CPU中交替地运行。
多道程序并发执行,资源利用率大幅提升,CPU和其他资源保持"忙碌"状态,系统吞吐量大
用户响应时间长,没有人机交互功能
分时操作系统: 计算机以时间片为单位,轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
用户请求可以被即时响应,解决了人机交互问题。
不能优先处理一些紧急任务。
实时操作系统:在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完时件。
能够优先响应一些紧急任务,某些紧急任务不需要时间片排队。

指令就是处理器(CPU)能识别、执行的最基本命令。代码翻译过来对应多条指令。
两种指令
特权指令:如内存清零指令,不允许用户程序使用。
非特权指令:如普通的运算指令。
两种处理器状态
核心态(管态):特权指令,非特权指令都能执行。
用户态(目态):只能执行非特权指令。
两种程序
内核程序:操作系统的内核程序是系统的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态。
应用程序:为了保证系统运行安全,普通应用程序只能执行非特权指令,运行在用户态。
用户态、核心态之间的切换是怎么实现的?

用户态→核心态是通过中断实现的。并且中断是唯一途径。
核心态→用户态的切换是通过执行一个特权指令,将程序状态字(RSW)的标志位设置为“用户态”

大内核?微内核?
大内核:将操作系统的主要功能模块都作为系统内核,运行在核心态。优点,高性能。缺点,内核代码庞大,结构混乱,难以维护
微内核:只要把基本的功能保留在内核。优点,内核功能少,结构清晰,方便维护。缺点:需要频繁地在核心态和用户态之间切换,性能低。
什么是系统调用? 系统调用与库函数的区别?
“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。
凡是与资源有关的操作(如储存分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统提供服务请求,由操作系统代为完成,这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

中断与异常的区别?
中断: 是指由于外部设备事件所引起的中断,与当前cpu执行的指令无关,如通常的磁盘中断、打印机中断等;
异常: 是指由于 CPU 内部事件所引起的中断,与当前cup执行的指令有关,如非法指令、地址越界。
此外中断可以屏蔽,异常无法屏蔽,发现异常,必须立马处理。
发生中断就意味着需要操作系统介入,开展管理工作。CPU立即进入核心态。前运行的进程暂停运行,并由操作系统内核对中断进行处理。对于不同中断信号,会有不同处理。

什么是进程?
进程是进程实体的运行过程,是资源分配和调度的基本单位。
进程实体:程序段 数据段 pcb
Pcb是进程存在的唯一标志,创建进程就等于创建进程实体中的pcb,撤销进程就等于撤销进程实体中的pcb

进程的特征?
动态性(最基本特征):进程是程序的一次执行过程,是动态地产生、变化和消亡地。
并发性:内存中有多个进程实体,各进程可并发执行。
独立性:进程是能独立运行、独立获得资源、独立接受调度地基本单位
异步性:各进程按各自独立的、不可预知地速度向前推进,操作系统要提供“进程同步机制”来解决异步问题,可能导致运行结果地不确定性。
结构性:每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成。

进程的状态与转换?
运行态:占有CPU,并在CPU上运行
就绪态:已经具备运行条件,但由于没有空闲CPU,而暂时不能运行。
阻塞态:因等待某一事件而暂时不能运行。
创建态:进程正在被创建,操作系统为进程分配资源、初始化PCB。
终止态:进程正在从系统中撤销,操作系统回收进程拥有的资源、撤销PCB。

在这里插入图片描述

什么是进程控制?
进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。
用原语实现进程控制。原语的特点是执行期间不允许中断,只能一气呵成。原语采用“关中断”和开中断指令实现
进程创建及引起创建的事情
进程的终止
进程的阻塞和唤醒
进程的切换及引起切换事件:当前时间片用完,有更高优先级到达,组主动阻塞,当前进程终止

Pcb
进程创建时,操作系统为它分配一个pcb,该结构常驻内存,进程结束时,系统回收pcb
操作系统时通过pcb了解进程的状态信息,进而控制和管理进程的。
进程调度时,通过pcb了解优先级信息。调度后,根据pcb保存的处理及信息,恢复现场,并根据pcb中保存的程序数据的始址找到,程序。进程某种原因暂停时,保存现场信息到pcb中。
Pcb包含
进程描述信息 进程控制和管理信息 资源分配清单 处理及相关信息
Pcb有的处于阻塞态 有的处于就绪态 ,为了管理方便通常把pcb组织起来,进程pcb的组织方式:链接方式,索引方式

进程通信
进程通信就是指进程之间的信息交换。各进程拥有的内存地址空间相互独立。为了保证安全,一个进程不能直接访问另一个进程的地址空间。
Pv是低级方式通信方式。高级通信方式是以较高效率传输大量数据。
共享存储:通信进程之间开辟出一条直接访问的共享空间,通过对这片空间进行读写操作来交换信息。共享存储分为两种:低级的共享是基于数据结构的低级的共享,高级方式的共享是基于存储区的共享

消息传递:消息传递的方法是由操作系统通过发送消息和接收消息两个原语进行数据交换。数据交换的是以格式化消息为单位。
直接通信方式:消息发给接受进程,挂到接受进程消息缓冲队列上
间接通信方式:发送给中间实体,信箱,接收进程从中间实体接收信息。

管道通信
管道是指连接一个读进程和写进程以实现他们之间通信的一个共享文件。其实实在内存中开辟出大小固定的缓冲区
管道采用半双工
读写进程互斥访问管道
数据字符流写入管道,写满时,写进程阻塞,进程读取管道中的数据,读空时,都进程阻塞。没写满不允许读,没读空不允许写,数据一旦读出,就会消失。

为什么引入线程?
线程是一个基本的cpu执行单位,引入线程后,不仅进程之间可以并发执行,进程内各线程也可以并发执行,进一步提升了系统的并发性,通一进程内可以并发处理多种任务(QQ 聊天 视频 传文件)

线程与进程进行比较。线程的特性
在这里插入图片描述

调度
在这里插入图片描述

进程调度的时机与切换的过程
在这里插入图片描述

调度算法:
FSFC:
按照到达的先后顺序调度,事实上就是等待时间越久的越优先得到服务。
优点:公平、算法实现简单
缺点:排在长作业(进程)后面的短作业需要等待很长时间,带权周转时间很大,对短作业来说用户体验不好。即,FCFS算法对长作业有利,对短作业不利。
不会造成饥饿

短作业优先
最短的作业/进程优先得到服务(所谓“最短”,是指要求服务时间最短)。
优点:"最短的"平均等待时间、平均周转时间
缺点:不公平。对短作业有利,对长作业不利。可能产生饥饿现象。另外,作业/进程的运行时间是由用户提供的,并不一定真实,不一定能做到真正的短作业优先。
会导致饥饿。如果源源不断地有短作业/进程到来,可能使长作业/进程长时间得不到服务,产生==“饥饿"现象。如果一直得不到服务,则成为"饿死”==。

高响应比优先
在每次调度时先计算各个作业/进程的响应比,选择响应比最高的作业/进程为其服务
等待时间同时时,要求服务时间短的优先
要求服务时间相同时,等待时间长的优先
对于长作业来说,随着等待时间越来越久,其响应比也会越来越大,从而避免了长作业饥饿的问题

时间片轮转法
按照各个进程到达就绪队列地顺序,轮流让各个进程执行一个时间片(eg:100ms)。若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放入就绪队列队尾重新排队。
优点:公平,响应速度快
缺点:高频率的进程切换,开销大,无法处理紧急任务。
时间片太大或太小有什么影响?
如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法退化为先来先服务调度算法,并且会增大进程响应时间,因此时间片不能太大。
另一方面,进程调度、切换是有时间代价的(保存、恢复运行环境),因此如果时间片太小,会导致进程切换过于频繁,系统会花大量的时间来处理进程切换,从而导致实际用于进程执行的时间比例减少。可见时间片也不能太小。

优先级调度算法
每个作业/进程有各自的优先级,调度时选择优先级最高的作业/进程。
优点:用于优先级区分紧急程度、重要程度,适用于实时 操作系统。可灵活的调整对各种作业/进程的偏好程度。
缺点:若源源不断地有高优先级进程到来,则可能导致饥饿。

多级反馈队列
设置多级就绪队列,各级队列优先级从高到低,时间片从小到大。
新进程到达时先进入第1级队列,按FCFS原则排队等待被分配时间片,若用完时间片进程还未结束,则进程进入下一级队列队尾。如果此时已经是在最下级的队列,则重新放回该队列队尾。
只有第K级队列为空时,才会为K+1级队头的进程分配时间片。
优缺点:对各类型进程相对公平;每个新到达的进程都可以很快就得到响应;短进程只用较少的时间就可完成;不必实现估计进程的运行时间;

什么是临界资源?什么是临界区?
同步:直接制约关系。是指为完成某一任务而建立的两个或多个进程,这些进程需要在位置上协调他们工作次序而等待 信息传递的制约关系
互斥:间接制约关系,当一个进程访问临界区时,另一个进程必须等待。释放临界区后,才能访问;

同步机制遵循的原则:
空闲让进 忙则等待 有限等待 让权等待

实现临界区互斥的方法
软件实现方法:单标志法 双标志先检查法 双标志后检查法
硬件实现方法:中断屏蔽法 硬件指令法
信号量机制
管程

什么是管程?
系统中的各种硬件资源和软件资源均可用数据结构抽象地描述其资源特性, 可以利用共享数据结构抽象地表示系统中的共享资源,并且将对该共享数据结构实施的特定操作定义为一组过程。进程对共享资源的申请、释放和其它操作必须通过这组过程,间接地对共享数据结构实现操作。对于请求访问共享资源的诸多并发进程,可以根据资源的情况接受或阻塞,确保每次仅有一个进程进入管程,执行这组过程,使用共享资源,达到对共享资源所有访问的统一管理,有效地实现进程互斥。这个代表共享资源的数据结构,以及对该共享数据结构实施操作的一组过程所组成的资源管理程序就是管程。
管程由四部分组成:

  1. 管程的名称;
  2. 局部于管程的共享数据结构说明;
  3. 对该数据结构进行操作的一组过程;
  4. 对局部于管程的共享数据设置初始值的语句。

管程把共享资源的操作封装了起来,管程内的共享数据结构只能被管程内的过程访问,一个进程只有通过调用管程内的过程才能进入管程访问共享资源。每次仅允许一个进程进入管程,从而实现互斥。
管程的特性保证了进程互斥,无需用户自己实现互斥,从而降低了死锁的可能。

为什么引入同步概念?
程多道程序环境下,进程之间并发执行,不同进程之间可能要合作完成某一任务,所产生制约关系,为了协调进程之间的制约关系,引入了同步概念
不同进程之间存在什么关系?同步 异步

什么是死锁?死锁产生的原因?死锁的必要条件?死锁的处理策略?
银行家算法的思想?
在程序提出申请时,先预判此次分配是否会导致系统进入不安全状态,如果会进入不安全状态,就暂时不答应这次请求,让进程先阻塞等待。
进程与程序的区别?
组成不同:进程包括 程序 数据 pcb
进程是动态的概念,程序是静态的概念
进程是程序的一次执行过过程,它是动态的创建和消亡的,具有一定生命周期,是暂时存在的,程序则是一段代码,永久存在
一个进程可以执行几个程序,一个进程也可构成多个进程。
死锁与饥饿的区别?

什么是内存管理?内存管理的功能?
操作系统对内存的划分和动态分配 就是内存管理的概念
在这里插入图片描述

将用户源程序变为可在内存中执行的程序,通常需要?
编译:有编译程序将用户源代码编译成若干目标模块
链接:由链接程序将编译后形成的一组目标模块及所需要的库函数连接在一起,形成一个完整的装入模块
装入:由程序将装入模块装入内存
链接的三种方式
静态链接:在程序运行之前,先将各目标模块及它们所需的库函数连接成一个完整的可执行文件(装入模块),之后不再拆开。
装入时动态链接:将各目标模块装入内存时,边装入边链接的链接方式。
运行时动态链接:在程序执行中需要该目标模块时,才对它进行链接。其优点是便于修改和更新,便于实现对目标模块的共享。
装入的三种方式
绝对装入:如果知道程序将会放在内存的具体位置,就在编译的时候生成程序的物理地址。之后装入程序就会按照装入模块里面已经生成的物理地址放进内存进行运行。
可重定位装入:在多道程序的运行环境下,我们并不能预知当程序并发执行的时候会放在内存的哪个地方。多个目标模块的起始地址通常都从0开始,其他的地址则是相对于0的相对地址。在装入的时候对程序里面的一些指令和数据进行修改的过程叫做重定位,地址变换也在装入的时候一次完成,把逻辑地址转换成对应内存的物理地址。在装入的时候转换了以后就不会再进行修改,所以也叫静态重定位
运行时动态装入:在要执行的时候,才把这一部分的目标模块进行地址转换。(此时已经在内存中等待运行了)所以在等待运行的时候,地址都是相对地址。

什么是逻辑地址?什么是物理地址?
编译后每个目标模块都是从0号单元开始编址,这成为目标模块的相对地址。物理地址是指,模块存储在内存中的最终地址

覆盖与交换
在这里插入图片描述

连续分配:指为用户进程分配的必须是一个连续的内存空间。包括单一连续分配,固定分区分配,动态分区分配
单一连续分配:单道程序环境下,存储器管理方式是把内存分为系统区和用户区两部分。系统区仅提供给OS使用。而在用户区内存中,仅装有一道用户程序,即整个内存的用户空间由该程序独占。
简单 无外部碎片 可以采用覆盖技术
只能有一进程运行 有内部碎片 存储利用率低
固定分区分配:将整个用户空间划分为若干个固定大小的区域,在每个分区中仅装入一道作业。分区大小相等(指所有存储分区大小相等) 分区大小不等
问题:会产生大量内部碎片 内存利用率低
动态分区分配:动态划分内存空间的方法,不预先划分内存,而是进程装入内存时,根据进程大小,动态的建立分区,使分区大小正适合进程需要。分区大小是可变的。
缺点:会产生外部碎片,可以通过紧凑技术克服,但紧凑技术需要一定代价

动态分区分配算法:
在这里插入图片描述

为什么引入页式存储管理
1 由于它不要求作业或进程的程序段和数据在内存中连续存放,从而有效地解决了碎片问题。 2、动态页式管理提供了内存和外存统一管理的虚存实现方式,使用户可以利用的存储空间大大增加。

连续分配:必须为用户分配连续的地址空间
非连续分配:给用户分配的空间可以是分散的

非连续分配的管理方式:基本分页,基本分段,段页式存储管理
基本分页:
将内存空间分为一个个大小相等的分区,称为 页框,每个页框有一个页框号 从0开始
将用户地址空间分为与页框大小相等的区域,称为页面,页面号,也是从0开始
操作系统以页框为单位给进程分配空间。进程的页面放入页框中。进程的页面不必连续存放,可以放入不相邻的页框中

页表:为了能够知道进程的每个页面在内存中存放的位置,操作系统要为每个进程建立一张页表。每一个进程对应一个页表,进程的每一页对应一个页表项,页表项由页号和块号组成。页表记录进程页面和实际存放地址的对应关系。
在这里插入图片描述

局部性原理
在这里插入图片描述

页表:最近使用过的页表会放入快表
在这里插入图片描述

两级页表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

段页式管理:将进程按逻辑模块分段,再将各段分页,将对应页面装入内存中对应页框中
逻辑地址:段号 页号 页内偏移量
一个进程对应一个段表,但一个进程可能对应多个页表

请求分页: 缺页中断 页面置换算法 页面分配策略

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

什么是文件?什么是文件系统?
文件是以计算机硬盘为载体的存储在计算机上的信息集合,如文档 图片等,操作系统负责管理和存储文件信息的软件机构称为 文件管理系统。
文件系统要完成那些功能?
对用户来言:按名存储和查找文件 将文件组织成合理的结构 提供文件共享与保护功能
对于系统:管理与磁盘信息交换 完成文件逻辑结构到物理结构的转换 组织文件存放在磁盘合适位置

文件系统向上提供的几个基本操作?
创建文件 creat找到空间,创建文件
删除文件 delete找到文件的目录项 使为空 回收所占的内存空间
读文件(读写文件之前要先打开文件)read调用,指明文件名 与读入的内存块的位置
写文件(读写文件之后要关闭文件) 执行一个系统调用,指明文件名 与写入的内容
打开文件open
关闭文件 close
这6个基本操作可组合起来形成其他文件操作,比如:比如文件复制,指创建一个新文件,再把旧文件内容读入新文件。

文件分类?
文件按有无结构:有结构文件,无结构文件
无结构文件:文件内部的数据就是一系列的二进制字符流
有结构文件由一组相似的记录组成,每条记录又分为若干数据项组成。
根据有结构文件中的每条记录的的长度是否相等又可分为:定长记录和可变长记录两种。
根据有结构文件中的个条记录在在逻辑上如何分组,可以分为:顺序文件,索引文件,索引顺文件。
顺序文件:文件中的记录一个接一个地顺序排列(逻辑上),记录可以是定长的或可变长的。各个记录在物理上可以顺序存储或链式存储。

在这里插入图片描述
在这里插入图片描述

FCB中包含了文件的基本信息(文件名 物理地址 逻辑结构)存取控制信息(是否可读)使用信息(建立 修改时间)
单级目录结构:系统中只建立一张目录表,每个文件占一个目录项,实现了按名存取,但是不允许文件重名。在创建文件之前要检查文件是否重名。
二级目录结构:分为主目录结构和用户目录结构。主目录记载用户名和用户文件目录所存储的位置。用户目录存放该用户文件的FCB信息。不同用户之间可以重名,但是不能对文件分类
树型目录结构:用户要访问某个文件时,用文件的路径名标识文件。不同目录下文件可以重名,可以对文件分类,但是不能文件共享
无环图目录结构:树形不利于文件共享,增加一些指向同一节点的有向边,形成有向无环图。引入有向无环图目的是为了文件的共享,共享节点设置一计数器,计数器为0时才能真正删除该节点。

在内存管理中,进程的逻辑地址空间被划分为一个个页面,同样,在外存管理中,为了方便对数据的管理,文件的逻辑地址空间也被划分为一个个文件块。文件的逻辑地址可以表示为(逻辑块号 块内地址)。
文件的分配方式:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意复制与共享的区别
多个用户共享一个文件,意味着系统中只有"一份"文件数据。并且只要某个用户修改了该文件的数据,其他用户也可以看到文件数据的变化。
如果是多个用户都"复制"了同一个文件,那么系统中会有"好几份"文件数据。其中一个用户修改了自己的那份文件数据,对其他用户的文件数据并没有影响。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

什么是io控制器?
Cpu无法直接对io设备进行控制,因此需要一个中介,实现cpu对io设备进行控制,这个中介就是io控制器

数据交换:要有数据寄存器 输出时,数据寄存器存放cpu发送来的数据,之后再传递给设备。输入时,暂存设备发送来的数据之后传给cpu
地址识别:为了区分设备寄存器中的各个寄存器,需要给每个寄存器进行编制,io控制器通过cpu发送的地址,判断cpu要读的是那个寄存器

在这里插入图片描述

程序直接控制方式:

  1. CPU说“我要读”。
  2. 检查控制器是否准备好
  3. 输入设备准备好后将数据传给控制器并告诉它自己准备好了
  4. 控制器收到数据后,把它放到数据寄存器,状态为改为0表示准备好了
  5. CPU知道设备们准备好了,就把数据寄存器中的数据读入CPU,再放到内存 中。
  6. 如果还要继续读,就重复第一步。

CPU要不停的轮询检查 是否准备好,长期属于忙等状态,利用率低。每次读写一个字。
优点:实现简单,在读写指令之后,加上循环检查指令就可以了
缺点:cup I/o只能串行工作,cpu需要一直轮询检查,长期处于忙等待状态,cpu利用率低

中断驱动方式:
对程序直接控制方式的改进。由于程序直接控制方式CPU利用率低是因为“忙等”,这里CPU发出读写命令后就把该进程阻塞,去做其他事情,这样就不会忙等。当io完成后,向cpu发送中断信号,告诉cpu io操作已经完成,然后cpu从io控制器中读取一个字传送到cpu寄存器中,进而再写入内存。若还需要读入,则重复以上步骤。
Cpu只在指令的末尾检查中断,中断需要保存现场信息,恢复进程环境,需要一定的时间开销,中断频率过高会降低系统性能。

数据传送的单位:一个字
优点:CPU和IO设备可以并行。Cpu效率提升
缺点:每个字在内存与io之间的传输都要经过cpu,频繁中断则消耗过多CPU的时间。

DMA方式:
Cpu给io模块发出命令,指明此次要进行的操作,并说明读入多少数据,放到哪里,数据在外存的地址,然后去做其他事情,控制器会根据cup的要求完成数据读写工作,并且在完成读写工作后,向cpu发出中断信号,告诉操作完成,然后cpu做一些收尾操作

优点:数据以块为单位,cpu介入频率降低,仅在传输开始和结束时需要cpu干预。数据传输不需要经过cpu,直接由io到内存,传输效率进一步增加。Cup与io并行工作
缺点:cpu发出一套指令只能读取一个或多个连续的块。如果要读多个离散的数据块,要发多次io命令。
通道控制方式:
Cpu向通道发出io指令。指明通道程序在内存中的位置,并指明要操作的是那个io设备,之后cpu就切换执行其他程序。
通道执行内存中的通道程序(其中表明了 读写哪些数据 把数据存放到哪里)
通道执行完规定的任务后向cpu发出中断信号 之后cpu对中断进行处理
优点:每次读写一组数据块。数据在通道的控制下运行。CPU、通道、IO设备可并行工作,资源利用率很高。
缺点:需要硬件支持、实现复杂。

Io层次
在这里插入图片描述

设备独立性软件功能;
.向上层提供统一的调用接口
对设备进行保护
对一些的设备错误进行处理
设备的分配与回收
通过缓冲技术屏蔽设备之间 传输数据格式与速率的差异
完成物理名到逻辑名的映射

为何不同设备需要不同的设备驱动程序?
各式各样的设备,外形不同,其内部的电子部件(I/O控制器)也有可能不同
不同设备的内部硬件特性也不同,这些特性只有厂家才知道,因此厂家须提供与设备相对应的驱动程序,CPU执行驱动程序的指令序列,来完成设置设备寄存器,检查设备状态等工作
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Spooling技术
输入井 输出井:在磁盘上开辟出两块空间,收容io设备输入的数据/用户进程输出的数据
输入输出缓冲区:实在内存开辟两片缓冲区,输入缓冲区在暂存设备输入的数据,以后在送入输入井。输出缓冲区暂存输出井送来的数据,以后在传送到输出设备
输入输出进程:将用户的数据从输入机输入到输入缓冲区到传送到输入井之中
把数据从内存送入输出井在送入输出缓冲区,在送入输出设备
在这里插入图片描述

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

为什么要引入设备独立性?如何引入?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

什么是缓冲区?缓冲区有什么作用?
缓冲区是一个存储区域,可以由专门的硬件组成,也可利用内存作为缓冲区。使用硬件作为缓冲区的成本较高,容量也较小,一般仅用在对速度要求非常高的场合,更多的是利用内存作为缓冲区
缓解cpu与I/O设备之间速度不匹配的问题
减少对cpu的中断频率,放宽对cpu中断响应时间的限制
解决数据粒度不匹配的问题
提高cpu与I/O设备之间不匹配的问题

在这里插入图片描述

  • 17
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值