有道云笔记https://note.youdao.com/s/9gZUOB0J
(乱序、自取)
第一章:
1.操作系统定义:管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户方便有效地使用计算机提供良好运行环境的一种系统软件。
操作系统有权分配资源,而支撑软件和应用软件只能通过操作系统使用资源。
操作系统的特征是(并发),(共享),(异步性)和(虚拟)。
资源共享方式:同时访问(透明资源共享),互斥访问(独占资源共享)。
操作系统的主要目标是方便用户使用、扩充机器功能、管理各类资源、提高系统效率和构筑开放环境。
从资源分配的观点来看,操作系统的主要功能:处理器管理、存储管理、设备管理、文件管理、联网与通信管理、用户接口
系统软件:操作系统、实用程序、语言处理程序、数据库管理系统
2.操作系统在计算机系统中的作用:
服务用户观点-操作系统作为用户接口和公共服务程序;
进程交互观点-操作系统作为进程执行的控制者和协调者;
系统实现观点-操作系统作为扩展机或虚拟机;
资源管理观点-操作系统作为资源的管理者和控制着。
3.资源抽象:通过创建软件来屏蔽硬件资源的物理特性和实现细节,简化对硬件资源的操作、控制和使用。
4.三种资源管理技术:
复用(操作系统让众多进程共享物理资源)
虚拟(对资源进行转化、模拟或整合,把一个物理资源转变为多个逻辑上的对应物,也可把多个物理资源转换为一个逻辑上的对应物)
抽象(用于处理系统复杂性,重点解决资源易用性)
5.多道程序设计:指允许多个作业(程序)同时进入计算机系统的内存并启动交替计算的方法。
宏观上:并行(时间段) 微观上:串行(时间点)
根本目的:提高CPU资源利用率,充分发挥计算机硬部件的并行性
特点:间断性、共享性、制约性
P:假设程序平均等待I/O操作的时间占其运行时间的比例为p
n:称为多道程序的道数或度数
多道程序设计的优点是什么:
一是可以提高CPU、内存和设备的利用率;二是可以提高系统的吞吐率,使单位时间内完成的作业数量增加;三是可以充分发挥系统的并行性,使设备与设备之间、CPU与设备之间均可并行工作。
缺点:延长了作业的周转时间
多道程序设计技术提高了资源利用率和系统吞吐率,是以牺牲用户的响应时间为代价的。
三个问题:存储保护与程序浮动,处理器管理与分配,资源管理与调度
6.操作系统的构件:内核、进程、线程、类程、管程
操作系统三种基本类型(分类):批处理操作系统、分时操作系统、实时操作系统。
批处理操作系统:特征:批量集中处理,多道程序运行,作业脱机工作
缺点:作业周转时间延长,不具备交互式计算能力,不利于程序开发和调试
分时操作系统的特点:同时性、独立性、及时性、交互性。
很好解决了人机交互问题,但不能处理紧急事务。
实时操作系统主要特征:及时性和可靠性
批处理操作系统与分时操作系统的区别:追求目标不同、适应作业不同、资源利用率不同。
实时操作系统与分时操作系统的不同点:
(1)及时性 实时操作系统要求比较短。
(2)可靠性 实时操作系统可靠性更加严格
(3)多路性 分时:多个用户 实时:对多路的现场信息进行采集,对多个对象执行机构进行控制。
实时:主要特点:提供及时响应,高可靠性
过程控制系统:数据采集,加工处理,操作控制,及时反馈处理
6.并发:是指两个或多个活动在同一给定的时间间隔中进行。
6.并行:是指两个或多个活动在同一时刻同时执行的情况。
7.操作系统的体系结构:单体式结构、层次式结构、虚拟机结构、微内核结构
微机操作系统特点:开放性,通用性,高性能,采用微内核结构。
系统调用
应用程序可以通过系统调用来请求获得操作系统内核的服务
系统调用执行过程
用户进程
用户进程执行(传递系统调用参数)——调用系统调用(执行陷入指令)—(内中断由用户态进入内核态)—执行系统调用(内核态)—(由内核态进入用户态)—从系统调用返回(用户态)
陷入指令=trap指令=访管指令
若程序的运行由用户态转到核心态,则会用到访管指令,访管纸考是在用户态使用的,所以它不可能
0.系统调用与过程(函数)调用的区别:
调用形式不同(功能号/入口地址),被调用的代码位置不同(动态/静态),提供方式不同(OS/编译系统),调用的实现不同(中断/跳转指令)
0.试述API,库函数,系统调用之间的关系:
在程序设计语言中,往往提供与各种系统调用对应的库函数,一个库函数就是一种API,它介于应用程序和操作系统之间,应用于程序通过对应库函数来使用系统调用。
操作系统通过程序接口和操作接口将其服务和功能提供给用户。
操作系统作为用户与计算机硬件系统之间的接口
(1)命令接口:用户可直接使用(如:命令解释器、shell)
(2)程序接口:用户通过程序间接使用(如:广义指令)
两个作业级接口:联机作业控制接口,脱机作业控制接口(用于批处理)。
实用程序(系统程序):非操作系统组成。
层次结构是分层单向依赖或单向调用关系,即低层为高层服务。
内核不是进程,是一组程序模块。
内核属性:由中断驱动,不可抢占,可以在屏蔽中断状态下执行,可使用特权指令。
计算机结构分类:单指令单数据流SISD、单指令多数据流SIMD、多指令单数据流MISD、多指令多数据流MIMD
特权指令:指只能提供给操作系统的核心程序使用指令,即不允许用户直接使用的指令,如I/O设备启动(指仅在内核态下才能使用的指令);
设置时钟、设置控制寄存器、启动I/O、控制中断屏蔽位、清内存、建立存储键,加载PSW等。
非特权指令:在目态和管态下都能工作。
操作系统程序能够执行全部机器指令,应用程序只能使用非特权指令。
CPU处于核心态时,可以执行特权指令;CPU处于用户态时只能执行非特权指令;用户自编程序运行在用户态,操作系统内核程序运行在核心态
多数计算机系统将处理器的工作状态划分为管态(核心状态、管理状态、系统模式、特权状态、特态)和目态(目标状态、用户状态、用户模式、常态)。后者一般指用户程序运行时的状态,又称为普通态或(用户态)。
处理器处于管理状态时,程序可以执行全部指令,使用所有资源,具有改变处理器状态的能力;处理器处于用户状态时,程序只能执行非特权指令。
工作状态的转换:
用户态内核态:
系统调用
中断事件
异常事件
内核态→用户态:加载程序状态字——修改psw的标志位为“用户态”
用户态→内核态:由“中断”引发,自动完成变态过程
程序状态字:操作系统将程序运行时的一组动态信息汇集在一起
中断:中断指在程序执行过程中遇到急需处理的事件时,暂时中止现行程序在CPU上的运行,转而执行相应的事件处理程序,待处理完成后再返回断点或调度其他程序执行的过程。
中断源:引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。
中断响应由硬件子系统完成,中断处理由软件子系统完成。
提出原因:为了请求系统服务、实现并行工作、处理突发事件、满足实时要求,需要打断处理器正常工作流。
分类:(1)按中断事件的性质和激活方式划分:1.强迫性中断 2.自愿性中断
(2)按中断事件的来源和实现手段划分:1.硬中断 2.软中断
(3)由硬件发出或产生的中断称为硬中断,按硬中断的来源和实现手段可将中断分为外中断(异步中断,又称中断,处理器和主存之外)和内中断(同步中断,又称异常,处理器和主存内部)。
中断和异常的区别:中断的发生与CPU当前的状态无关,既可发生在用户态,又可发生在内核态;异常由CPU控制单元产生,大部分异常发生在用户态,而内核态发生的唯一异常是“缺页异常”。
中断/异常的响应顺序:发现中断源--保护现场--转向中断/异常事件处理程序执行--恢复现场
中断处理程序:保护未被硬件保护的一些必需的处理状态;识别各个中断源,分析产生中断的原因;处理发生的中断事件;恢复正常操作
中断优先级:中断装置所预设的响应顺序称为中断优先级。(中断优先级只表示中断装置相应中断的次序,并不表示处理它的先后顺序)
中断屏蔽:中断屏蔽是指禁止CPU响应中断或禁止中断的产生。
第二章:
进程的定义:进程是一个可并发执行的具有独立功能的程序,关于某个数据集合上的一次运行过程,也是操作系统进行资源分配和保护的基本单位。
引入进程的目的:刻画程序的并发性,解决资源的共享性,正确描述资源的执行状态
属性:结构性、共享性、动态性、独立性、制约性、并发性(实现操作系统的最基本的两个特性:并发性和共享性)
进程的优缺点:便于资源的管理和保护,但执行开销大
进程映像(进程实体)包括进程控制块PCB、进程程序块、(进程核心栈、)进程数据块
运行态à等待态:等待使用资源或某事件发生
等待态à就绪态:资源得到满足或事件发生
运行态à就绪态:运行时间片到,出现更高优先权进程,当前进程被迫让出处理器
就绪态à运行态:CPU空闲时选择一个就绪进程
区别等待态和就绪态
就绪态:进程仅缺少处理机
等待态(阻塞态):需要其他资源(除了处理机)或等待某一事件
原语:原语(Primitive)是在管态下执行、完成系统特定功能不可被中断的过程。
进程的通信:进程之间的信息交换
低级通信方式:PV操作(基于数据结构的共享)
高级通信方式:共享存储(基于存储区的共享)、消息传递、管道通信
- 共享存储:一块可直接访问的共享空间,用户进程空间一般都是独立的,进程运行期间一般不能访问其他进程空间(进程内线程是自然共享进程空间的)
- 消息传递:数据交换以格式化的信息为单位,通过系统提供发送消息和接收消息两个原语进行数据交换。(1)直接通信方式:发送进程直接把消息发送给接收进程(2)间接通信方式:发送进程把消息发送到某个中间实体(信箱),又称为信箱通信方式
- 管道通信:指用于连接一个读进程和一个写进程以实现他们之间的通信的一个共享文件。管道机制需提供三方面的协调能力:互斥、同步和确定对方的存在。各进程要互斥的访问管道(由操作系统实现)。
管道中的数据一旦被读出,就彻底消失,因此当多个进程读同一管道时,可能会错乱
两种解决方案:(1)一个管道允许多个写进程,一个读进程 (2)允许有多个写进程多个读进程,但系统会让各个读进程轮流从管道中读数据。
线程的定义:线程是进程中能够并发执行的实体,是进程的组成部分,也是处理器调度和分派的基本单位。
引入线程目的:为了减少程序并发执行时所付出的时空开销,使并发粒度更细、并发性更好。
线程的优缺点:一是快速线程切换;二是通信易于实现;三是减少管理开销;四是并发程度提高。 /但不利于资源的管理与保护
线程特性:并行性、共享性、动态性、结构性
线程是进程的组成部分,允许进程包含多个线程。系统调用的基本单位是线程(用户级线程以进程为单位)。
一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行
引入线程后,线程时独立调度的基本单位,进程是拥有资源的基本单位
线程不拥有系统资源,但每个线程都应有一个唯一的标识符和一个线程控制块
同一进程中的各个线程共享该进程所拥有的资源
在多CPU的计算机系统中,各线程可同时占用不同的CPU;在单CPU中,各线程交替占用CPU
线程实现方式:用户级线程和内核级线程
用户级线程中,线程切换可以在用户态下完成,无需操作系统干预;而内核级线程,所有工作由内核完成
多线程模型:多对一、一对一、多对多
管程:管程是一种高级同步机制,一个管程定义一个数据结构和能为并发进程在其上执行的一组操作,这组操作能使进程同步和改变管程中的数据。
处理器调度分为:高级调度(进程创建)、中级调度(进程挂起/解挂)和低级调度(进程执行)。
即作业调度,(进程调度)和CPU交换调度;在一般操作系统中,必须具备的调度是(进程调度)
(1)高级调度:又称为作业调度,在多道批处理操作系统中,从输入系统的一批作业中按照预定的调度策略挑选若干作业进入内存,为其分配所需资源并创建对应作业的用户进程后,便完成启动阶段的高级调度任务。执行频率较低,作业调入时会建立PCB,调出时才撤销,对于每个作业只调入一次,调出一次。
外存->内存 (面向作业) 无--创建态--就绪态
(2)中级调度:又称平衡调度、内存调度,根据内存资源情况决定内存中所能容纳的进程数目,并完成外存和内存中的进程对换工作。作用时提高内存利用率和系统吞吐量。发生频率比高级更高
外存--内存(面向过程)挂起态--就绪态(阻塞挂起--阻塞态)
(3)低级调度:又称进程/线程调度,根据某种原则决定就绪队列中的那个进程/线程获得处理器。进程调度频率很高
内存--CPU 就绪态--CPU
挂起和阻塞区别
两种状态都是暂时不能获得CPU服务,但挂起态时将进程映像调到外存去了,而阻塞态下的进程映像还在内存中。
需要进行进程调度与切换的情况
(1)当前进程主动放弃处理机
进程正常终止、运行过程中发生异常而终止、进程主动请求阻塞(如等待I/O)
(2)当前允许的进程被动放弃处理机
分给进程的时间片用完、有更紧急的事需要处理(如I/O中断)、有更高优先级的进程进入就绪队列
不能进行进程调度与切换的情况
(1)进程在操作系统内核程序临界区中不能进行切换。
(2)在处理中断过程中
(3)其他需要完全屏蔽中断的原子操作过程中
互斥:在逻辑上本来完全独立的进程,由于竞争同一个资源而产生的相互制约的关系。
同步:是指进程间共同完成一项任务时直接发生相互作用的关系。也就是说,这些具有伙伴关系的进程在执行次序上必须遵循确定的规律。
9.作业和进程的关系:作业是任务实体,进程是完成任务的执行实体;没有作业任务,进程无事可做;没有进程,作业任务无法完成。作业的概念更多的用于批处理操作系统中,而进程则用于各种多道程序设计系统。
10.进程和程序的区别:
(1)进程是动态的,而程序是静态的。
(2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。
(3)1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。
11.进程控制块(PCB)的作用:
进程控制块是进程存在的唯一标识,是操作系统用来记录和刻画进程状态及环境信息的数据结构,是进程动态特性的汇集,也是操作操作系统掌握进程的唯一资料结构和管理进程的主要依据。(包含:标识信息、现场信息、控制信息)
12.进程上下文的作用:
进程是在操作系统支持下执行的,进程执行时需要操作系统为其设置相应的执行环境,把进程的物理实体与支持进程执行的物理环境合称为进程上下文。
作业调度算法
(1)先来先服务FCFS(非抢占,无饥饿)
算法简单,但效率低;对长作业比较有利,但对短作业不利;有利于CPU繁忙型作业,而不利于I/O繁忙型作业
(2)最短作业优先算法SJF (非抢占,有饥饿)
追求最少的平均等待时间、平均周转时间、平均带权周转时间
非抢占式,对长作业不利,将导致长作业长期不被调度,即会出现饥饿现象
(3)短进程优先SPF 非抢占式
最短剩余时间优先SRTF 抢占式
(4)最高响应比优先HRRF (非抢占,无饥饿)
(主要用于作业调度)
要总和考虑作业/进程的等待时间和处理时间
响应比=1+作业等待时间/作业处理时间
不会发生饥饿现象,兼顾了长作业
(5)优先级
(静态优先数会出现饥饿现象)
优先级设置原则1.系统进程 > 用户进程 2.交互型进程 > 非交互型进程 3.I/O型进程>计算型进程 (若将I/O型进程的优先级设置得更高,就更可能让I/O设备尽早开始工作,从而提升系统的整体效率)
(6)时间片轮转(抢占,无饥饿)
(主要用于分时系统)
抢占式,由时钟装置发出的中断来通知CPU时间片已到
(7)多级反馈队列MLFQ(抢占,有饥饿)
抢占式,可能会有饥饿现象
系统吞吐率:单位时间内CPU完成作业的数量
作业周转时间:批处理用户从系统提交作业开始到作业完成为止的时间间隔
—周转事件 = 作业完成时间 - 作业提交时间
—平均周转时间 = n个作业的周转时间总和 / n
—带权周转时间 = 作业周转时间 / 作业实际执行时间 (带权周转时间越大反映作业或进程越短)
—平均带权周转时间 = n个作业的带权周转时间总和 / n
响应时间:用户提交请求到系统首次产生响应所用的时间
等待时间:进程处于等待处理机状态的时间之和
平均等待时间:各个进程/作业等待时间的平均值
1.顺序程序特性
执行的顺序性、环境的封闭性、结果的确定性、过程的可再现性
2.并发进程
1.什么是临界区和临界资源?临界区管理的基本原则是什么?
临界区:并发进程中与共享变量有关的程序段
临界资源:共享变量代表的资源,即一次只能供给一个进程使用的资源
临界区管理原则:一次最多只有一个进程进入临界区执行,若已有进程在临界区内,试图进入临界区的进程应当等待,进入临界区的进程应当在有限时间内退出,方便等待队列中的其他进程进入;
2. 进程的互斥和同步:
互斥:若干进程因互相争夺独占性资源而产生的竞争制约关系,是一种特殊的进程同步关系(间接制约关系)
同步:为完成共同任务的并发进程基于某个条件来协调活动,因为需要在某些位置上排定执行的先后顺序而等待、传递信号或消息,进而产生的协作制约关系。(直接制约关系)
为禁止两个进程同时进入临界区,同步机制应遵循以下原则
空闲让进、忙则等待、有限等待、让权等待
(前三个必须遵守)
实现临界区互斥的基本方法
1、软件实现方法
(1)单标志法
实现互斥,同一时刻最多只允许一个进程访问临界区,可能会违背“空闲让进”
(2)双标志法先检查
在每个进程访问临界区资源之前,先看临界资源是否正在被访问,可能违背“忙则等待”,问题在于检查和修改操作不能一次进行。
先检测对方的进程状态标志,在置自己的标志。
(3)双标志法后检查
先将自己的标志设置为TRUE,再检测对方的状态标志。
双方同时想进入临界区,双方互相谦让,可能会导致“空闲让进”和“有限等待”,导致饥饿现象。
(4)Peterson’s Algorithm
解决了进程互斥问题,遵循了“空,忙,有”,但可能违背了“让权等待”
2、硬件实现方法(低级方法/元方法)
(1)中断屏蔽法
使用“开/关”中断指令实现
限制了处理机交替执行程序的能力,执行效率会明显降低
(2)硬件指令法
TestAndSet指令:这条指令是原子操作,即执行代码时不允许被中断
Swap指令:该指令功能是交换两个字(字节)的内容,不可被中断
硬件方法的优点:适用于任意数目的进程,而不管是单处理机还是多处理机;简单、容易验证其正确性。可以支持进程内有多个临界区,只为每个临界区设立一个布尔变量。
硬件方法的缺点:进程等待进入临界区时要耗费处理机时间,不能实现“让权等待”。从等待进程中随机选择一个进入临界区,有的进程可能一直选不上,从而导致“饥饿”现象
6.什么是信号量?如何对其进行分类?
信号量:表示物理资源的实体,它是一个与队列有关的整型变量。 具体实现时,信号量是一种产量类型,用一个记录型数据结构表示,有两个分量,一个是信号量的值,另一个是信号量队列指针。(可以用一个信号量表示系统中某种资源的数量)
信号量按其用途可分为两种:
a.公用信号量,联系一组并发进程均可在此信号量上执行pv操作,初值置为1,用于实现进程互斥;
b.私有信号量,联系一组并发进程,仅允许此信号量所拥有的进程执行P操作,而其相关进程可在其上施行V操作,初值往往为0或正整数,多用于并发进程同步。
信号量按其取值可分为两种:
a.二值信号量,仅允许取值为0或1,主要作用用于解决进程互斥问题;
b.一般信号量,又称计数信号量,允许取大于1的整型值,主要用于解决进程同步问题。
7.从信号量和P、V操作的定义可以获得哪些推论?
推论1:若信号量s.value为正值,此值等于在封锁进程值钱对信号量s可行的P操作数,亦即s所代表的实际可用的物理资源数
推论2:若信号量s.value为负值,其绝对值等于登记排列在s信号量队列之中等待的进程个数,即恰好等于对信号量s实施P操作而被封锁并进入信号量s等待队列的进程数
推论3:P操作通常意味着请求一个资源,V操作意味着释放一个资源,在一定的条件下,P操作代表挂起进程的操作,而V操作代表唤醒被挂起进程的操作。
PS:现有语句S1:a=5-x;S2:b=a*x;S3:c=4x;S4:d=b+c;S5:e=d+3;
试使用bernstein条件证明语句S2 S3可以并发执行,S3 S4不能并发执行。
R(S2)={x,a},W(S2)={b},R(S3)={x},W(S3)={c}
可见,S2 与 S3 的读集与写集两两不相交,S2 与 S3 的读集之间也不相交,因而,他们满足 Bernstein条件,S2 与 S3 语句是可以并发执行的。同理可证 S3和S4不能满足 Bernstein 条件,是不能并发执行的
信号量
(1)整型信号量
整型信号量被定义为一个用于表示资源数目的整型量S
(2)记录型信号量
可实现资源的“申请”和“释放”,进程互斥,进程同步
除了需要一个用于代表资源数目的整型变量value外,再增加一个进程链表L,用于链接所有等待该资源的进程。
(3)利用信号量实现同步
“一前一后” ,前V后P
(4)利用信号量实现进程互斥
把临界区置于P和V之间
(5)利用信号量实现前驱关系
每一个前驱关系各设置一个同步信号量
管程
定义 :管程是由局部于自己的若干公共变量及其声明和所有访问这些公共变量的过程所组成的软件模块,它提供一种互斥机制,进程可互斥地调用管程中的过程。
属性:共享性、安全性、互斥性
(1)管程把对共享资源的操作封装起来,管程内的共享数据结构只能被管程内的过程所访问。一个进程只有通过调用管程内的过程才能进去管程访问共享资源。
(2)每次仅允许一个进程进入管程,从而实现进程互斥。
何谓管程?管程由几部分组成?说明引入管程的必要性
当共享资源用共享数据结构表示时,资源管理程序可用对该数据结构进行操作的一组过程来表示,如资源的请求和释放过程request和release。把这样一组相关的数据结构和过程一 并归为管程。Hansan为管程所下的定义是:“一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作, 这组操作能同步进程和改变管程中的数据。”由定义可知,管程由四部分组成:
(1)管程的名称
(2)局部于管程内部的共享结构数据说明
(3)对该数据结构进行操作的一组过程(或函数)
(4)对局部于管程内部的共享数据设置一个初始值的语句
管程的引入是为了解决临界区分散所带来的管理和控制问题。在没有管程之前,对临界区的访问分散在各个进程之中,不易发现和纠正分散在用户程序中的不正确使用P,V操作等问题。管程将这些分散在各进程中的临界区集中起来,并加以控制和管理,管程一次只允许一 个进程进入管程内,从而既便于系统管理共享资源,又能保证互斥。
死锁
所谓死锁,是指多个进程因为竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程将无法向前推进。(至少两个或两个以上的进程—阻塞态)
区别:
饥饿:由于长时间得不到想要的资源,某进程无法向前推进的现象(只能一个进程—阻塞态)
死循环:某进程执行过程中一直跳不出某个循环的现象(可以上处理机运行—运行态)
死锁产生的必要条件(4个)以及解决死锁的方法(3个):
必要条件:(1).互斥条件:临界资源是独占资源,进程应互斥且排他地使用这些资源;
(2).占有和等待条件:进程在请求资源得不到满足而等待时,不释放已占有资源;
(3).不剥夺条件:又称不可抢占,已获资源只能由进程自愿释放,不允许被其他进程剥夺;
(4).循环等待条件:又称环路条件,存在循环等待链,其中,每个进程都在等待 链中等待下一个进程所持有的资源,造成这组进程处于永远等待状态。
解决方法:死锁预防,死锁避免,死锁检测和恢复 。
死锁预防
(1)破坏互斥条件:允许系统资源能共享使用,如spooling技术
(2)破坏不剥夺条件:必须释放已经保持的所有资源,待以后需要时再重新申请。降低吞吐率,可能导致饥饿
方法一:是占有资源的进程若要申请新资源,必须主动释放已占用的资源
方法二:资源管理程序为进程分配新资源时,有则分配,否则将剥夺此进程所占有的全部资源
(3)破坏请求并保持条件:采用预先静态分配方式,即在进程执行之前就申请所需要的全部资源,且直到所要的资源都得到满足后才开始执行。系统资源严重被浪费,还会导致饥饿现象
(4)破坏循环等待条件:顺序资源分配法,采用层次分配策略,将系统中所有资源排列到不同的层次中。限制了新类型设备的增加,造成资源的浪费
死锁解除
资源剥夺、撤销进程、进程回退法
第三章 存储管理:
1.虚拟存储器:在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理内存容量大得多的、可寻址的“内存储器”。
在虚拟存储器系统的页表项中,决定是否会发生页故障的是合法位
内存的装入模块在装入内存时,同样有以下三种方式
(1)绝对装入:在编译时,若知道程序将驻留在内存的某个位置,则编译程序将产生绝对的地址目标代码。绝对装入程序按照装入模块中的地址,将程序和数据装入内存。程序中的逻辑地址与实际的内存地址完全相同,因此不需要对程序和数据的地址进行修改
(2)可重定位装入:根据内存当前情况,将装入模块装入内存的适当位置。装入时对目标程序中指令和数据的修改称为重定位,地址变换通常是在装入时一次完成的,所以又称为静态重定位。
将逻辑地址变为物理地址
静态重定位特点:一个作业装入内存时,必须给它分要求的全部内存空间,若没有足够的内存,则不能装入该作业
(3)动态运行时装入:装入内存后,并不立即把相对地址转换为绝对地址,而是要等到真正执行起来时。
动态重定位特点:将程序分配到不连续的存储区中;在程序运行之前可以只装入它的部分代码即可投入运行,然后在程序运行期间,根据需要动态申请分配内存;便于程序段的共享,可以向用户提供一个比存储空间大得多的地址空间。
2.逻辑地址(相对地址):是指相对于某个基准量(通常用0)编址时所使用的地址,相对地址常用于程序编写和编译过程中。
物理地址(绝对地址):需要区分存贮体中不同的存贮单元,统一编号, 这些编号称为地址。
不同进程可以有相同的逻辑地址,因为这些相同的逻辑地址以映射到主存的不同位置。
地址重定位(地址转换、可重定位):可执行程序逻辑地址转换为物理地址的过程称地址重定位、地址映射或地址转换。(例题)
静态地址重定位:在装入时实现调整,装入后不再变(静态)(由装载程序实现装载代码模块的加载和地址转换,把它装入分配给进程的内存指定区域,其中的所有逻辑地址修改成内存物理地址,称静态地址重定位。)
动态地址重定位:执行中,在执行寻址时重定位 ,访问地址时通过地址变换机构改变为内存地址(程序执行过程中,每当CPU引用内存地址(访问程序和数据)时,由硬件截取此逻辑地址,并在它被发送到内存之前加上重定位寄存器的值,以便实现地址转换,称动态地址重定位)
内存保护
对固定分区采用静态地址重定位,进程运行时使用绝对地址,可由加载程序进行地址越界检查。对可变长分区则采用动态地址重定位,进程的程序和数据的地址转换由硬件完成。
(1)在CPU中设置一队上、下限寄存器,存放用户作业在主存中的下限和上限地址,每当CPU要访问一个地址时,分别和两个寄存器的值相比,判断有无越界。
(2)采用重定位寄存器(或基址寄存器)和界地址寄存器(又称限长寄存器)来实现这种保护。重定位寄存器含最小的物理地址值,界地址寄存器含逻辑地址的最大值。每个逻辑地址值必须小于界地址寄存器;内存管理机构动态地将逻辑地址与界地址寄存器进行比较,若未发生地址越界,则加上重定位寄存器的值后映射成物理地址,再送交内存单元。若发生越界,此时不允许访问,以达到存储保护目的。
实现内存保护需要重定位寄存器和界地址寄存器,因此要注意两者的区别。重定位寄存器是用来“加”的,逻辑地址加上重定位寄存器中的值就能得到物理地址;界地址寄存器是用来“比”的,通过比较界地址寄存器中的值与逻辑地址的值来判断是否越界。
覆盖与交换(节省主存空间)
覆盖:在同一程序会进程中的
由于程序运行时并非任何时候都要访问程序及数据的各个部分,因此可把用户空间分成个固定区和若干覆盖区。将经常活跃的部分放在固定区,其余部分按调用关系分段。首先将那些即将要访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统再将其调入覆盖区,替换覆盖区中原有的段。
覆盖技术的特点是,打破了必须将一个进程的全部信息装入主存后才能运行的限制,但当同时运行程序的代码量大于主存时仍不能运行,此外,内存中能够更新的地方只有覆盖区的段,不在覆盖区中的段会常驻内存。
可用于固定分区分配
交换:在不同进程(或作业)之间的
把处于等待状态(或在CPU调度原则下被剥夺运行权利)的程序从内存移到辅存,把内存空间腾出来,这一 过程又称换出;把准备好竞争CPU运行的程序从辅存移到内存,这一过程又称换入。
只要是固定分配的就会产生内部碎片,其余的会产生外部碎片
连续分配管理方式
(1)单一连续分配
存储空间分为OS连续区和用户连续区
优点:简单、无外部碎片,可以采用覆盖技术,不需要额外的技术支持
缺点:只能用于单用户、单任务的操作系统中,有内部碎片,存储器的利用率低,处理机和外部设备串行工作,一个作业独占存储空间
(2)固定分区连续分配
系统初次启动时,管理员根据当天的作业情况把作业划分成大小不等但数目固定的分区,当分区中的程序执行结束时归还内存区
优点:可用于多道程序设计的最简单的存储分配,无外部碎片
缺点:一是程序可能太大而放不进任何一个分区中,这时用户不得不使用覆盖技术来使用内存空间
二是主存利用率低,可能产生外部碎片
(3)动态分区分配
按照作业大小划分分区,但划分的时间、大小、位置都是动态的,实现多个作业对内存的共享,分区数目也是可变的,有利于多道程序设计
3. 存储管理功能:
存储分配,地址映射,存储保护,存储共享,存储扩充
最先适应分配算法FF(首次) 空闲区按小到大排序,顺序查找
下次适应分配算法NF(邻近) 从上次扫描结束处顺序查找
最优适应分配算法BF(最佳) 最小分区开始 会产生外部碎片
最坏适应分配算法WF 最大分区开始
快速适应分配算法QF 为常用长度的空闲区设立单独链表
非连续分配管理方式
4.分页存储管理:
基本概念:(1)页面:进程逻辑地址空间分成大小相等的区,每个区称为页面或页,页号从零开始依次编号。
(2)页框:把内存物理地址空间分成大小相等的区,其大小与页面大小相等,每个区是一个页框(物理块),块号从0开始依次编号。(页大小=块大小)
(3)逻辑地址:
页号 |
页内位移 |
(4)内存页框表
(5)页表:在内存分配时以页框为单位,进程有多少页,那么把它装入内存时就分配多少页框。是操作系统为系统建立的
进程在内存中的每个页框内的地址是连续的,但页框之间的地址可以不连续。
分页存储空间分配和去配:位示图法、链表法
分页存储空间页面共享和保护:标志位保护方法(在页表中添加标志位)、键保护方法
基本地址变换机构:第一次访问内存:查找页表;第二次访问内存:访问目标内存单元
翻译快表:为了提高 运算速度,在硬件中设置相联存储器,用来存放进程最近访问的部分页表项,成为翻译快表,它是分页存储管理的重要组成部分。
快表命中只需一次访存,快表未命中需两次访存。快表主要用于地址变换
多级页表:页表和页面一样也进行分页,内存仅存放当前使用的页表,暂时不用部分放在磁盘上,待用时再行调进。
页目录位移 |
页表页位移 |
页内位移 |
反置页表(IPT):IPT是为内存中的每一个物理块建立一个页表并按照块号排序,该表每个表项包含正在访问该页框的进程标识、页号及特征位,用来完成主存页框到访问进程的页号、即逻辑地址到物理地址的转换。
分页存储管理
优点: 没有外部碎片,最后一页可能有内碎片但不大; 程序不必连续存放;便于改变程序占用空间大小。
缺点: 程序仍需要全部装入内存。
5.分段存储管理
段号S |
段内位移W |
止另一个作业修改此共享段中的数据。不能修改的代码称为纯代码或可重入代码(它不属于临界资源),这样的代码和不能修改的数据可以共享,而可修改的代码和数据不能共享。
段页式存储管理
1、虚地址以程序的逻辑结构划分成段(段页式存储管理的段式特征)
2、实地址划分成位置固定、大小相等的页框(段页式存储管理的页式特征)
3、将每一段的线性地址空间划分成与页框大小相等的页面,于是形成了段页式存储管理的特征。
6. 页式存储(实)与段式存储的异同点:(逻辑地址的组成,求解)
分段是信息的逻辑单位,由源程序的逻辑结构及含义所决定,是用户可见的,段长由用户根据需要来确定,段起始地址可从任何内存地址开始。在分段方式中,源程序(段号、段内位移)经链接装配后仍保持二维(地址)结构,引入目的是满足用户模块化程序设计的需要。
分页是信息的物理单位,与源程序的逻辑结构无关,是用户不可见的,页长由系统(硬件)确定,页面只能从页大小的整数倍地址开始。在分页方式中,源程序(页号、页内位移)经链接装配后变成一维(地址)结构,引入目的是实现离散分配并提高内存利用率。
7.虚拟存储器
8.程序的局部性原理:指程序在执行过程中的一个较短时间内,所执行的指令地址或操作数地址分别局限于一定的存储区域中,又可细分时间局部性和空间局部性。
1)时间局部性。程序中的某条指令一 旦执行,不久后该指令可能再次执行;某数据被访问过,不久后该数据可能再次被访问。产生时间局部性的典型原因是程序中存在着大量的循环操作。
2)空间局部性。一旦程序访问了 某个存储单元,在不久后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,因为指令通常是顺序存放、顺序执行的,数据也一般是以向量、数组、表等形式簇聚存储的。
9.请求分页虚拟存储管理
(1)请求调页策略(请页式):进程运行中需要访问的页面不在内存而提出的请求,由系统将所需页面调入内存
(2)预调页策略(预调式):根据局部性原理,一次调入若干相邻的页可能会比一次调入一页跟高效。主要用于进程首次调入
基于这些因素,现代操作系统通常采用三种策略:
1)固定分配局部置换。它为每个进程分配。一定数目的物理块,在整个运行期间都不改变。
(若进程在运行中发生缺页,则只能从该进程在内存中的页面中选出一页换出, 然后调入需要的页面。实现这种策略时,难以确定应为每个进程分配的物理块数目:太少会频繁出现缺页中断,太多又会使CPU和其他资源利用率下降。)
2)可变分配全局置换。这是最易于实现的物理块分配和置换策略,它为系统中的每个进程分配一定数目的物理块, 操作系统自身也保持一个空闲物理块队列。当某进程发生缺页时,系统从空闲物理块队列中取出个物理 块分配给该进程,并将欲调入的页装入其中。
(这种方法比固定分配局部置换更加灵活,可以动态增加进程的物理块,但也存在弊端,如它会盲目地给进程增加物理块,从而导致系统多道程序的并发能力下降。)
3)可变分配局部置换。它为每个进程分配一定数目的物理块,当某个进程发生缺页时,只允许从该进程在内存的页面中选出一页换出,因此不会影响其他进程的运行。
若进程在运行中频繁地缺页,则系统再为该进程分配若干物理块,直至该进程缺页率趋于适当程度:反之,若进程运行中的缺页率特别低,则可适当减少分配给该进程的物理块。比起可变分配全局置换,这种方法不仅可以动态增加进程物理块的数量,还能动态减少进程物理块的数量,在保证进程不会过多地调页的同时,也保持了系统的多道程序并发能力。当然它需要更复杂的实现,也需要更大的开销,但对比频繁地换入/换出所浪费的计算机资源,这种牺牲是值得的。)
1)系统拥有足够的对换区空间。可以全部从对换区调入所需页面,以提高调页速度。为此,在进程运行前,需将与该进程有关的文件从文件区复制到对换区。
2)系统缺少足够的对换区空间。凡不会被修改的文件都直接从文件区调入:而当换出这些
页面时,由于它们未被修改而不必再将它们换出。但对于那些可能被修改的部分,在将它们换出时须调到对换区,以后需要时再从对换区调入(因为读的速度比写的速度快)。
3) UNIX方式。与进程有关的文件都放在文件区,因此未运行过的页面都应从文件区调入。曾经运行过但又被换出的页面,由于放在对换区,因此下次调入时应从对换区调入。进程请求的共享页面若被其他进程调入内存,则无须再从对换区调入。
10. 试比较请求分页虚存管理与请求分段虚存管理
系统把用户作业进行分页,对用户是透明的。页是物理单位。每段都有完整的意义,是信息的逻辑单位。
页的大小固定,且由系统决定。段的长度不固定,取决于用户所编写的程序结构。
分页时,作业的地址空间是一维的;分段时,作业的地址空间是二维的。
虚拟存储器和非虚拟存储区别
在非虚拟存储器中,
1)一次性
2)驻留性:作业必须全部装入内存且在运行过程中也一直驻留内存;
在虚拟存储器中,
1)多次性
2)对换性:作业不必全部装入内存且在运行过程中也不用一直驻留内存,允许作业在允许过程中,进行换出和换进
3)虚拟性
11. 抖动:刚被淘汰的页面立即又要调用,而调入不久随即被淘汰,淘汰不久再被调入,如此反复,是的整个系统的页面调用非常频繁,以致大部分时间都花费在来回调度页面上,而不是执行计算任务,这种现象叫做“抖动”。
防止抖动:撤销部分进程可以减少所要用到的页面数
12. 影响缺页中断率因素:内存页框数,页面大小,页面替换算法,程序特性
13.全局页面替换策略
(1)最佳页面替换算法OPT:淘汰以后不再访问的页或距现在最长时间后才访问的页
(2)先进先出页面替换算法FIFO:总是淘汰最先调入内存的页面
(3)最近最少使用页面替换算法LRU:淘汰最近一段时间内最久未被访问的那一页,记录未使用次数
最近未使用页面替换算法NRU:
最不经常使用页面替换算法NFU/LFU:记录使用的次数,淘汰最少的,次数相同,则先进先出
(4)第二次机会页面替换算法SCR:
(5)时钟页面替换算法Clock:
13.什么是Belady现象?试找出一个Belady现象的例子。
Belady现象:可用页框增多,缺页率反而升高的现象。
(当用FIFO法进行页面置换,分配给进程的物理页面数增加时,缺页次数反而增加,这一现象称为异常现象 )
例子:
假设进程P共有5个页,访问顺序是:1,2,3,4,1,2,5,1,2,3,4,5的缺页情况。
分配3个页面,缺页9次:缺页率9/12=75%
分配4个页面,缺页10次:缺页率
10/12=83.3%
此例就出现分配的页面数增多,缺页次数反而增加的奇怪现象,即Belady现象。
页面分配策略
驻留集:给一个进程分配的物理页框的集合就是这个进程的驻留集,驻留集大小一般小于进程总大小
(页数过少:缺页频繁;页数过大:多道程序并发度下降)
固定分配局部置换:
可变分配全局(局部)置换
14.工作集:在未来的时间间隔内,一个进程运行时所需访问的页面集。
为了避免系统发生抖动,就应该限制系统内的作业数,使它们的工作集总尺寸不超过主存块总数。
虚拟内存是怎么解决问题的?会带来什么问题?
虚拟内存使用外存上的空间来扩充内存空间,通过一定的换入/换出, 使得整个系统在逻辑上能够使用一个远远超出其物理内存大小的内存容量。因为虚拟内存技术调换页面时需要访问外存,会导致平均访存时间增加,若使用了不合适的替换算法,则会大大降低系统性能。
15.试述存储管理中的碎片。列出各种存储管理方法中可能产生何种碎片。
碎片:由于进程不断地装入和撤销,导致内存中常常出现分散的小空闲区。
内部碎片:系统已经分配给用户使用、用户自己没有用到的那部分存储空间
外部碎片:系统无法把它分配出去供用户使用的那部分存储空间。
单一连续区存储管理、固定分区存储管理:较大内部碎片
分页式存储管理、请求页式存储管理:较小内部碎片
可变分区存储管理:外部碎片。
第四章 文件管理
1.名词解释:
文件系统:文件与管理信息资源的管理程序的集合。
文件:由文件名标识的一组信息的集合,文件名是字母或数字组成的字母数字串,其格式和长度因系统而异
文件控制块(FCB):是操作系统为每个文件建立的唯一数据结构,其中包含了全部的文件属性,其目的是为方便操作系统队文件的管理、控制和存取。通常包含三类信息:基本信息、存取控制信息、使用信息。
文件目录:是文件控制块的集中管理
目录文件:全部由文件目录项构成的文件
操作系统提供文件系统的优点:(1)便于用户使用 (2)文件安全可靠 (3)系统能有效地利用存储空间 (4)提供文件共享功能
引入文件系统的目的
从系统角度看,文件系统是对文件的存储空间进行组织、分配,负责文件的存储并对存入文件进行保护、检索
从用户角度看,文件系统根据一定的格式将用户的文件存放到文件存储器适当的地方,当用户需要使用文件时,系统根据用户所给的文件名能够从文件存储器中找到所需要的文件。(按名存取)
2.文件组织结构(文件分类):
按用途分:系统文件、库文件、用户文件;
按保护级别分:只读文件、读写文件、不保护文件;
按数据类型分:源程序文件、可执行文件;
按设备类型分:磁盘文件、磁带文件、光盘文件;
Linux下:普通文件、目录文件、特殊文件
文件的基本操作
1)创建文件。一是在文件系统中为文件找到空间;二是在目录中为新文件创建条目
2)写文件 write
3)读文件 read
4)文件重定位(文件寻址)
5)删除文件
6)截断文件
3.文件属性:文件基本属性、文件类型属性、文件保护属性、文件管理属性、文件控制属性
4.物理卷和物理设备不总是一致的
卷是存储介质的物理单位,块是 存储介质上连续信息所组成的一个区域,也称物理记录,快是内存和外存进行信息交换的物理单位。
什么是记录的成组和分解操作?采用这种技术有什么优点?
成组:若干逻辑记录合并成一组,写入一块
分解:当存储介质上的一个物理块读进系统输入缓冲区后,把逻辑记录从块中分离出来的操作
节省存储空间;减少I/O操作次数;提高系统效率
键
记录键:用于标识某条逻辑记录的数据项
主键:能唯一标识某条记录的记录键
3.什么是文件的逻辑结构?他有几种组织方式?
文件的逻辑结构是从用户的观点出发,研究用户概念中抽象的组织方式,这是用户所能观察到的,可以加以处理的数据集合
文件的逻辑结构于
组成方式:流式文件;记录式文件;
无结构文件(流式文件)
有结构文件(记录式文件)
1)顺序文件:串结构,记录之间的顺序与关键字无关;顺序结构,指文件中所有记录按关键字顺序排列。(顺序文件对查找、修改、增加或删除单条记录的操作比较困难)
对于变长记录的处理很困难;对磁盘作连续分配会造成空闲块的浪费。
2)索引文件:由逻辑文件和索引表组成
3)索引顺序文件:为顺序文件建立一张索引表,对含有N条记录的索引问津,共需要查找根号N次。索引顺序文件提高了查找效率,若记录数很多,则可采用两级或多级索引
4)直接文件或散列文件
4.什么是文件的物理结构?他有几种组织方式?
文件的物理结构是指逻辑文件在物理存储空间中的存放方法和组织关系
物理结构于存储介质的特性有很大的关系
组成方式:顺序文件;连接文件;索引文件;直接文件;
文件控制块
文件控制块(FCP)是用来存放控制文件需要的各种信息的数据结构,以实现“按名存取”。FCB 的有序集合称为文件目录,一个FCB就是一个文件目录项。为了创建一个新文件,系统将分配一个 FCR并存放在文件目录中,成为目录项。
FCB主要包含以下信息:
基本信息:如文件名、文件的物理位置、文件的逻辑结构、文件的物理结构等。
存取控制信息:如文件存取权限等
使用信息:如文件建立时间、修改时间等。
索引结点:
存在磁盘上的称为磁盘索引结点
UNIX中每个文件都有一个唯一的磁盘索引结点
目录结构
1)单级目录结构
2)两级目录结构
3)多级目录结构
从根目录出发的路径称为绝对路径
从当前目录出发的的路径称为相对路径
4)无环图目录结构
树形目录结构便于实现文件的分类,但不便于实现文件共享,为此引入了无环图目录结构
文件共享
1)基于索引结点的共享方式(硬链接)
2)利用符号链实现文件共享(软链接)
建立符号链接时,引用计数值直接复制:建立硬链接时,引用计数值加1。删除文件时,删除操作对于符号链接是不可见的,这并不影响文件系统,当以后再通过符号链接访问时,发现文件不存在,直接删除符号链接;但对于硬链接则不可直接删除,引用计数值减1,若值不为0,则不能删除此文件,因为还有其他硬链接指向此文件。
当建立F2时,F1和F2的引用计数值都为1。当再建立3时,F1和F3的引用计数值就都变成了2。当后来删除F1时,F3的引用计数值为2-1=1,F2的引用计数值不变。
文件保护
文件实现的分配方式
1)连续分配
2)链接分配
文件第一块的指针和最后一块的指针。
3)索引分配
文件存储空间管理
1)空闲表法
2)空闲链表法
3)位示图法
4)成组链接法
在目录中查找某个文件可以使用什么方法?
可以采用线性列表法或哈希表法。线性列表把文件名组织成一- 个线性表,查找时依次与线性表中的每个表项进行比较。若把文件名按序排列,则使用折半查找法可以降低平均的查找时间,但建立新文件时会增加维护线性表的开销。哈希表用文件名通过哈希函数得到一个指向文件的指针,这种方法非常迅速,但要注意避免冲突。
文件的逻辑结构和物理结构有何区别?单个文件的逻辑结构和物理结构之间是否存在着某些制约关系?
文件的逻辑结构是用户可见的结构,即用户使用文件的结构。文件的物理结构是文件在存储器上的组织结构,它表示一个文件在辅存上安置、链接、编目的方法。它和文件的存取方法以及辅存设备的特性等都有着密切的联系。单个文件的逻辑结构和物理结构之间虽无明显的制约或关联关系,但是如果物理结构选择不慎,也很难体现出逻辑结构的特点,比如一个逻辑结构是顺序结构,而物理结构是隐式链接结构的文件,即使理论上可以很快找出某条记录的地址,而实际找时仍然需要在磁盘上一块一块地找。
磁盘结构
磁盘的调度算法
读写一个磁盘块所需时间:一次磁盘读写操作由寻道时间、旋转延迟时间和传输速度决定(减少寻道时间可提高系统性能)
m是与磁盘驱动器速度有关的常数(约为0.2),n是跨越n条磁道,s是启动磁臂时间
r是磁盘旋转速度
b为每次所读写的字节数,r是磁盘每秒转数,N为一个磁盘上的字节数
1)先来先服务(FCFS)
2)最短寻找时间优先(SSTF)算法
3)扫描算法(SCAN,又称电梯调度算法)
4)循环扫描算法(C-SCAN)
若在盘面上按交替编号连续存放,则连续读写多条记录时能减少磁头的延迟时间;同柱面不同盘面的扇区若能错位编号,连续读写相邻的两个盘面逻辑记录时也能减少磁头延迟时间。
磁盘管理
1)磁盘初始化
2)引导块
3)坏块
x=k×m×a+k×b+c
磁盘组共有n个柱面,m个磁头,每个磁道内有k个信息块
x表示逻辑磁盘号,用a、b、c分别表示任意逻辑磁盘块的柱面号、磁头号、磁道内的块号
第五章:输入输出I/O设备
1.试述设备管理的基本功能
设备中断处理,缓冲区管理,设备分配去配,设备驱动调度,实现虚拟设备
按信息交换的单位分类
1)块设备。数据存取以数据块为单位,属于有结构设备,如磁盘,其基本特征是传输速率较高、可寻址,即对它可随机地读写任一块
2)字符设备。其传输基本单位是字符,属于无结构类型,如交互式终端、打印机等。它地基本特征是传输速率低、不可寻址,并且在输入输出时常采用中断驱动方式
2.I/O系统
3.I/O控制方式以及主要差别:
轮询方式,中断方式,DMA方式,通道方式
差别:CPU和设备并行工作的方式和程度不同。
优缺点:简单且易于实现,但由于CPU和I/O设备只能串行工作,长期处于“忙等”状态,导致CPU的利用率相当低
优缺点:CPU和I/O设备可并行工作,由于数据中的每一个字在存储器与I/O控制器之间的传输都必须经过CPU,这就导致了中断驱动方式仍然会消耗过多的CPU时间。
优点:数据传输以块为单位,CPU介入频率进一步降低,数据传输不再需要经过CPU,再写入内存,传输效率进一步增加,CPU和I/O并行性得到提升。
缺点:CPU每发出一条I/O指令,只能读写一个或多个连续的块
DMA寄存器:命令/状态寄存器、内存地址寄存器、数据寄存器、数据计数器
优点:实现CPU、通道、I/O设备三者并行操作,更有效地提高整个系统的资源利用率
缺点:实现复杂,需专门的通道硬件支持
4.设备控制器(I/O逻辑)
设备控制器是CPU和设备之间的一个接口,它接收从CPU发来的命令,控制I/O设备操作,实现主存和设备之间的数据传输。设备控制器是一个可编址设备,当它连接多台设备时,则应具有多个设备地址。
①接收和识别CPU或通道发来的命令;
②实现数据交换,包括设备和控制器间的数据传输;
③发现和记录设备及自身的状态信息,供CPU处理使用;
④设备地址识别。
1)设备控制器与CPU接口。用于实现CPU与控制器之间的通信
2)设备控制器与设备接口。用于实现控制器与设备之间的通信
3)I/O逻辑控制。负责接收和识别CPU的各种命令,并负责对设备发出命令
5.I/O软件原理
I/O软件总体设计目标:
I/O软件总体设计要考虑的问题:
操作系统把I/O软件依次组织成四个层次
I/O子系统的层次结构
用户层I/O软件
设备独立性软件(设备无关软件)
设备驱动软件
中断处理程序
硬件
DMA与中断控制方式的主要区别
DMA与通道方式的主要区别
6.I/O设备驱动程序所包含的三部分功能
7.具有通道的I/O系统管理
8.为什么要引入缓冲技术?其基本思想是什么?
为了解决CPU与设备之间速度不匹配的矛盾及协调逻辑记录大小与物理记录大小不一致的问题;提高CPU和设备的并行性,减少I/O操作对CPU的中断次数,放宽对CPU中断响应时间的要求,解决基本数据单元大小(即数据粒度)不匹配问题
当进程执行写操作,先向系统申请输出缓冲区,然后将数据送入缓冲区。若是顺序写,则不断地把数据填入直到装满。此后进程可以继续计算,同时系统把缓冲区的数据写到设备上。
当进程执行读操作,先向系统申请输入缓冲区,然后将设备上的一条物理记录读到缓冲区,然后根据要求把当前所需要的逻辑记录从缓冲区中选出来传送给进程。
常用的缓冲技术有单缓冲、双缓冲和多缓冲。
块设备输入时,假定从磁盘把一块数据输入缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据的处理时间为C。
9.存储设备的物理结构
12.设备独立性:
设备独立性:用户通常不指定物理设备,而是指定逻辑设备,使得用户作业和物理设备分离开来,再通过其他途径建立逻辑设备和物理设备之间的映射,设备的这种特性称为“设备独立性”。
设备独立性带来的好处:
(1) 应用程序与具体物理设备无关,系统增减或变更设备时对源程序不必加以任何修改。
(2) 易于应对I/O设备故障
13.设备分配方式
14.虚拟设备