操作系统部分重点内容
本文最后更新于:January 9, 2019 pm
《操作系统》部分重点内容,包括讨论题和部分小七自己整理的概念. 重要知识点。
第一章
1. 请你给操作系统下个定义?
一般可把操作系统定义为:管理系统资源. 控制程序执行. 改善人机界面. 提供各种服务,并合理组织计算机工作流程和为用户方便有效地使用计算机提供良好运行环境的一种系统软件。
2. 请叙述操作系统的专业地位和在计算机系统中的地位?
操作系统属于专业基础课
系统软件(操作系统)层是最靠近硬件的一层软件,它一方面直接和硬件交互,在裸机上运行;另一方面和上层的支撑软件和应用软件交互,把它们与计算机硬件隔离开来。
操作系统是最靠近硬件的一层软件,它把硬件裸机改造成为完善的虚拟机,使得机器功能得到扩展,运行环境得到改善,系统效率得到提高,安全性能得到保障。
系统软件(操作系统)层是最靠近硬件的一层软件,它一方面直接和硬件交互,在裸机上运行,把硬件的复杂性封装起来,负责管理和控制机器硬件并对其做首次扩充和改造,主要做好资源的调度与分配. 信息的存取与保护. 并发活动的协调与控制等工作;另一方面和上层的支撑软件和应用软件交互,把它们与计算机硬件隔离开来,为程序员提供方便的编程接口. 有力的功能支撑. 良好的运行环境,使得计算机系统成为完整. 可用和高效的计算平台。
3. 操作系统系统的作用是什么?
操作系统在计算机系统中起4个方面的作用。
- 服务用户观点——操作系统作为用户接口和公共服务程序
- 进程交互观点——操作系统作为进程执行的控制者和协调者
- 系统实现观点——操作系统作为扩展机或虚拟机
- 资源管理观点——操作系统作为资源的管理者和控制者
4. 操作系统所管理的资源有那些?支持的界面使用方式有哪些?
在计算机系统中,能分配给用户使用的各种软硬件设施总称为资源。
资源包括两大类:硬件资源和软件资源。其中,硬件资源有处理器. 存储器. 外部设备等;软件资源则分为程序和数据。
支持的界面使用方式主要有两种:命令行模式(CLI)和图形化界面(GUI)
5. 什么原因推动我们操作系统的发展?
两个原因:人类日常生产生活的实际需求和硬件设备(尤其是集成电路)的发展。
6. 何为中断?中断处理过程如何?中断分类?中断服务?中断源?中断优先级?中断屏蔽与开关中断?中断要保存和恢复的内容有哪些?
中断的定义
中断指在程序执行过程中遇到急需处理的事件时,暂时中止现行程序在CPU上的运行,转而执行相应的事件处理程序,待处理完成后再返回断点或调度其他程序执行的过程。
中断处理过程如何?
一般来说,中断/异常的响应需要顺序做4件事:
- 发现中断源
- 保护现场
- 转向中断/异常事件处理程序执行
- 恢复现场
中断分类?
由硬件发出或产生的中断称为硬中断,按硬中断事件的来源和实现手段可将中断划分为外中断和内中断。
- 外中断又称中断或异步中断,是指来自处理器之外的中断信号;
- 内中断又称异常或同步中断,是指来自处理器内部的中断信号;
中断的发生与CPU当前状态无关,即可发生在用户态,又可发生在内核态;
异常与CPU是同步的,大部分异常发生在用户态,内核态唯一发生的异常是“缺页异常”
中断服务?
摘自百度百科:中断服务程序,处理器处理“急件”,可理解为是一种服务,是通过执行事先编好的某个特定的程序来完成的,这种处理“急件”的程序被称为——中断服务程序。
中断源?
中断源指中断信号的来源。
中断优先级
中断装置所预设的响应顺序称为中断优先级。
中断屏蔽与开关中断?
中断屏蔽是指禁止CPU响应中断或禁止中断产生。
- 前者指硬件产生中断请求后,CPU暂时不予响应的状态,等待直到中断开放后被屏蔽的中断才能被响应并获得处理。
- 后者指可引起中断的事件发生时,硬件不允许提出中断请求也不通知处理器,故由于中断被禁止而不可能导致中断。
中断要保存和恢复的内容有哪些?
通用寄存器. 状态寄存器. 程序计数器(PC). 程序状态字(PSW)
7. 系统调用?
系统调用是一种中介角色,把用户和硬件隔离开来,应用程序只有通过系统调用才能请求系统服务并使用系统资源。
系统调用的作用:一是内核可以基于权限和规则对资源访问进行裁决,保证系统的安全性;二是系统调用对资源进行抽象,提供一致性接口,避免用户在使用资源时发生错误,且使编程效率大大提高。
可以这样认为:内核的主体是系统调用的集合,可以将内核的服务例程看成特殊的公共子程序。
系统调用是应用程序获得操作系统服务的唯一途径。
8. 市场上os的分类?
市场上OS的分类依据分类标准的不同可以有许多种分法:
按照使用设备来进行分类的话,大概可以分为三类:
移动端:主要是Android和IOS占主流,也有少数的如WindowsMobile等小众移动操作系统;
桌面端:主要是Windows. MacOS和主流的Linux发行版如Redhat. Ubuntu. CentOS. SUSE等,还有少数的Unix操作系统;
服务器端:主要运行的是Linux和Unix操作系统
其他还有更细致的分类诸如嵌入式系统等。
按照功能. 特点和使用方式,可以把操作系统分为三种基本类型
批处理操作系统
批处理操作系统服务于一系列称为批(batch)的作业。
采用批处理方式工作的操作系统称为批处理操作系统。
批处理操作系统是最先采用多道程序设计技术的系统,它根据预先设定的调度策略选择若干作业并发地执行,系统资源利用率高,作业吞吐量大。
批处理操作系统的缺点是作业周转时间延长,不具备交互式计算能力,不利于程序的开发和调试。
批处理操作系统的特征是批量集中处理. 多道程序运行. 作业脱机工作。
分时操作系统
实质上,分时操作系统是多道程序的一个变种,CPU被若干交互式用户多路复用,不同之处在于每个用户都拥有一台联机终端。
分时操作系统的四大特点为:同时性. 独立性. 及时性. 交互性。
同时性:即若干终端用户联机使用计算机,分时是指多个用户分享同一台计算机的CPU时间;
独立性:即终端用户彼此独立,互不干扰,每个终端用户感觉好像独占整台计算机;
及时性:即终端用户没有大计算量的立即型请求能够在足够短时间内得到响应;
交互性:即人机交互,联机工作时用户直接控制程序运行,便于程序调试和排错。
实时操作系统
实时操作系统时指外部事件或数据产生时,能够对其予以足够快的速度进行处理,所得结果能够在规定的时间内控制生产过程或对控制对象做出快速响应,并控制所有实时任务协调运行的操作系统。
提供及时响应和高可靠性是其主要特点。
有三种典型实时系统:过程控制系统. 信息查询系统和事务处理系统。
如果某个操作系统兼具批处理. 分时和实时处理的全部或两种功能,则此操作系统称为通用操作系统。
9. 单道程序设计和多道的区别?
在早期单道批处理系统中,内存中仅有单个作业在运行,CPU和其他硬件设备串行工作,致使系统中仍有许多资源空闲,设备利用率极低。
多道程序设计是指允许多个作业(程序)同时进入计算机系统的内存并启动交替计算的方法。
10. 系统调用与函数调用之间的区别?
两者从调用形式到具体实现都存在很大区别:
(1)调用形式和实现方式不同:
函数调用所转向的地址式固定不变的,但系统调用中不包含内核服务例程入口地址,仅提供功能号,按功能号调用;
函数调用是在用户态执行,只能访问用户栈;
系统调用需要通过陷阱机制,从用户态转换到内核态,服务例程在内核态执行并访问核心栈。
(2)被调用代码的位置不同:
函数调用是静态调用,调用程序和被调用代码处于同一程序内,这是用户级程序
系统调用是动态调用,系统调用的服务例程位于操作系统中,这是系统级程序
(3)提供方式不同:
函数调用通常由编程语言提供,不同的语言提供的函数功能的类型和数量可以不同
系统调用由操作系统提供,操作系统一般设计好,系统调用的功能. 类型和数量便固定不变
11. 操作系统结构分类?
Linux系统使用的是单体式结构。
单体式结构
操作系统单体式结构采用模块组合法,是基于结构化程序设计的一种软件结构设计方法。
优点是:结构紧密. 组合方便,对不同环境和用户的不同需求可以组合不同模块来满足,灵活性大;针对某个功能可用最有效的算法和任意调用其他模块中的过程来实现,因此系统效率高。
** 缺点是:**模块独立性差,模块之间牵连甚多,形成复杂的调用关系,甚至有循环调用,造成系统结构不清晰,正确性难以保证,可靠性降低,系统的增. 删. 改困难。
层次式结构
这种结构把操作系统划分为内核和若干模块(进程),这些模块(进程)按功能的调用次序排列成若干层次,各层之间只能存在单向依赖或单向调用关系,即低层为高层服务,高层可以调用低层功能,反之则不能。
虚拟机结构
它基于如下思想:物理计算机资源通过多重化和共享技术可改造成多个虚拟机。
这种技术的基本做法是:通过用一类物理设备来模拟另一类物理设备,或通过分时地使用一类物理设备,把一个物理实体改变成若干个逻辑上的对应物。
微内核结构
操作系统仅将所有应用必需的核心功能放入内核,称为微内核,其他功能都在内核之外,由在用户态运行的服务进程实现,通过微内核所提供的消息传递机制完成进程间消息通信。
微内核结构的优点,一是对进程的请求提供一致性接口,不必区分内核级服务和用户级服务,所有服务均借助消息传递机制提供;二是具有较好的可扩充性和易修改性,三是可移植性好;四是对分布式系统提供有力支撑;
微内核结构的缺点是运行效率较低,这是因为进程间必须通过内核的通信机制才能进行通信。
12. 自由软件?
自由软件(free software,又称freeware)是指遵循通用公共许可证(General Public License,GPL)规则,保证使用上的自由,获得源程序的自由,可以自行修改的自由,可以复制和推广的自由,也可以有收费自由的一种软件。
注意 :自由软件不是免费软件,自由软件也有收费的。
第二章
1. 作业生命周期状态?
- 输入状态
- 后备状态
- 执行状态
- 完成状态
2. 何为低级调度?
低级调度又称进程调度/线程调度. 短程调度,根据某种原则决定就绪队列中的哪个进程/线程获得处理器,并将处理器出让给它使用。
3. 进程调度方式有哪些?解释这些方式?
低级调度有两类基本调度方式:剥夺式和非剥夺式。
剥夺式
剥夺式又称为抢先式。当进程/线程正在处理器上运行时,系统可根据规定的原则剥夺分配给此进程/线程的处理器,并将其移入就绪队列,选择其他进程/线程运行。
非剥夺式
非剥夺式又称非抢先式。一旦某个进程/线程开始运行后便不再让出处理器,除非此进程/线程运行结束或主动放弃处理器,或因发生某个事件而不能继续执行。
4. 进程调度队列模型有何作用?
进程队列调度模型负责处理器的分配,作用为以下几点:
将系统中各进程的执行情况和状态特征记录在各进程的PCB表中并将各进程的PCB表排成相应的队列。
通过PCB变化来掌握系统中存在的所有进程的执行情况和状态特征,并在适当的时机从就绪队列中选择出一个进程占据CPU。
当进程调度为剥夺式时且新就绪进程优先级高于当前进程时能取回CPU并分配给新进程。
5. 何为周转时间?平均周转时间?响应时间?
周转时间
批处理用户从向系统提交作业开始到作业完成为止的时间间隔称为作业周转时间。
平均周转时间
所有进程的周转时间之和除以进程数得到的就是平均周转时间。
响应时间
从交互式进程提交一个请求(命令)直到获得响应之间的时间间隔称为响应时间。
6. 进程调度算法的作用是什么?
无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数. 这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。
7. 掌握三种进程调度算法的名字与思想?重点掌握多级反馈队列调度算法。
FCFS/先来先服务算法
- 非剥夺式调度算法
- FCFS按照作业进入系统后备作业队列的先后次序来挑选作业,先进入系统的作业将优先被挑选进入内存,创建用户进程,分配所需资源,然后移入就绪队列。
SJF/最短时间优先算法
- 非剥夺式调度算法
- SJF以进入系统作业所要求的CPU运行时间的长短为标准,总是选取预计计算时间最短的作业投入运行。
SRTF/最短剩余时间优先算法
- 剥夺式调度算法
- 假设当前某进程/线程正在运行,如果有新进程/线程移入就绪队列,若它所需要的CPU运行时间比当前运行进程/线程所需要的剩余CPU时间还短,抢占式最短作业优先算法强行剥夺当前执行者的控制权,调度新进程/线程执行。
HRRF/最高响应比优先算法
- 非剥夺式调度算法
- 响应比 = 作业周转时间 / 作业处理时间 = 1 + 作业等待时间 / 作业处理时间
- 作业处理时间由用户给出,是一个常量;作业等待时间开始于时间点0,随着作业在后备队列中等待时间的增加而变长,每当调度作业运行时,计算后备作业队列中每个作业的响应比作为其优先级,选择响应比最高者投入运行。
优先级调度算法
- 系统可预先规定为非剥夺式或剥夺式
- 优先级调度算法根据确定的优先级来选取进程/线程,总是选择就绪队列中优先级最高者投入运行。
RR/轮转调度算法/时间片调度
- 剥夺式调度算法
- 调度程序每次把CPU分配给就绪队列首进程/线程使用规定的时间间隔,称为时间片,通常为10ms~200ms,就绪队列中的每个进程/线程轮流地运行一个时间片,当时间片耗尽时就强迫当前运行进程/线程让出处理器,转而排列到就绪队列尾部,等候下一轮调度。
MLFQ/多级反馈队列调度算法
- 剥夺式调度算法
- 由系统建立多个就绪队列,每个队列对应于一个优先级,第一个队列的优先级最高,第二个队列的优先级次之,其后的优先级逐个降低。
- 较高优先级队列的进程/线程分配给较短时间片,较低优先级队列的进程/线程分配给较长时间片,最后一个队列进程/线程按FCFS算法进行调度。
8. 多级反馈调度算法有何性能特点?
MLFQ调度算法具有较好的性能,能满足各类应用需要。
- 对于分时交互性短作业,系统通常可在第一队列(最高优先级队列)规定的时间片内完成工作。
- 对于短的批处理作业,通常只需在第一队列和第二队列中各执行一个时间片就能完成工作,周转时间仍然很短。
- 对于长的批处理作业,它将依次在第一. 第二. 第三等各个队列中获得时间片运行。
假如一个长作业进入MLFQ,最终进入最低优先级队列后,有很多短作业进入队列,使其一直处于等待状态,则会产生饥饿。一种预防措施是对于低优先级队列中等待时间足够长得进程提升其优先级,从而让它获得运行机会。
9. 处理器调度分为哪三级?
- 高级调度:用于决定哪些满足资源需求的后备作业被选中进入内存去多道运行,FCFA. SJF. SRTF. HRRF. 优先级调度算法等是常用的作业调度算法;
- 中级调度:起均衡系统负载的作用,根据内存资源情况决定内存中所能容纳的进程数目,并完成外存和内存中的进程对换工作;
- 低级调度:用于决定选择哪个进程/线程占有处理器运行,FCFS. RR. 优先数. MLFQ等是常用的进程/线程调度算法。
衡量调度算法优劣的因素包括响应时间. 周转时间. 资源利用率. 作业吞吐率和公平性等。
第三章
1. 何为并发与并行?区别?
并发
在操作系统中,在某一时间段有多个进程或线程同时存在。
并发的实质是一个处理器在几个进程之间的多路复用,并发是对有限的物理资源强制行使多用户共享,消除计算机部件之间的互等现象,以提高系统资源利用率。
并行
在操作系统中,在某一时间段有多个进程或线程同时执行
区别
并行一定要多个进程或线程同时执行,而并发只要求能允许多个进程或线程同时存在,可以在单个CPU中交替执行,因此,并行是并发的一个子集。
2. 何为并发过程的不确定性?为何会导致不确定性问题?请你举例说明?
并发过程的不确定性指每次执行结果都可能有所不同。导致不确定性的原因是程序外部的顺序特性消失,程序与计算不再一一对应。
例子:在煮咖啡时,若每次都按说明书上的顺序操作,那每次出来的咖啡都一样。但若采用并发,在某次准备往热水里放咖啡豆时,老板出来中断了你,然后喝了一口热水,之后将咖啡壶还给你,在进行相同操作后咖啡比以前浓。
3. 何为进程?请用你自己的方式给进程下个定义?为何要引入进程?
- 进程是操作系统中最重要和最基本的概念之一,引入进程是由系统资源的有限和系统内的并发性所决定的。
- 进程具有生命周期,由创建而产生,由调度而执行, 由撤销而消亡,操作系统的基本功能是进程的创建. 管理和撤销。
4. 为何程序一当并发执行,结果就可能不再如传统顺序执行时的可再现性?
因为程序外部的顺序特性消失,程序与计算不再一一对应。每次执行都可能被中断或者环境变量被别的进程改变。
5. 进程的特征有那些?如何理解这些特征?
6. 进程的状态有哪些?如何理解这些状态?
进程的状态有运行态. 就绪态. 等待态
运行态
进程占用处理器正在运行的状态
就绪态
进程具备运行条件,等待系统分配处理器以便运行的状态
等待态
又称阻塞态或睡眠态,指进程不具备运行条件,正在等待某个事件完成的状态
7. 请解释P95,118图2-4?
8. 进程有哪几部分构成?这些构成存于何处?PCB主要构成?PCB排队靠什么方式实现?
进程由进程控制块(PCB). 进程程序块. 进程核心栈和进程数据块组成
存储位置
- 进程控制块存于系统内存中的一个连续区域
- 进程程序块存于??
- 进程核心栈存于??
- 进程数据块存于??
PCB主要构成
- 标志信息
- 现场信息
- 控制信息
PCB排队
- 链接方式
- 索引方式
9. 何为内核态与用户态?
内核态
当处理器处于内核态时,这是操作系统管理程序运行时所在状态,可认为处理器正在运行可信系统软件,此时全部机器指令都被允许在处理器上执行,程序可访问所有内存单元和系统资源并具有改变处理器状态的能力。
用户态
当处理器处于用户态时,它正在运行非可信应用程序此时无法执行特权指令,且访问权限仅限于当前处理器上执行程序所在的地址空间。
10. 原语指啥?为何要引入原语?原语不可中断靠啥实现?
原语
原语原语通常由若干条指令组成,用来实现某个特定的操作。通过一段不可分割的或不可中断的程序实现其功能。
为何引入原语
我们希望有若干指令的连续操作不会被打断
原语不可中断靠啥实现
通过关中断来实现
11. 何为线程?现代OS为何要引入线程?与进程的区别?
何为线程
线程是进程中能并发执行的实体,是进程的组成部分,也是系统调度和分派的基本单位,运行在进程的上下文中,并使用进程的资源和环境。
引入线程的理由
为了减少程序并发执行时所付出的时空开销,使得并发粒度更细. 并发性更好。
与进程的区别
- 线程是进程的组成部分
- 线程切换较快
- 线程通信易于实现
- 线程并发程度比进程高
12. 单道与多道系统优缺点比较?
多道程序能交替使用CPU,提高了CPU及其他系统资源的利用率,同时也提高了系统的效率。缺点是延长了作业的周转时间,用户不能进行直接干预,缺少交互性,不利于程序的开发与调试。
13. 为何说中断是现代OS的一项必备技术?
因为中断使在程序执行过程中,遇到急需处理的事件时,可以暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行。
14. 请你给死锁下个定义?为何有死锁存在?
死锁定义
操作系统中的死锁指:如果在一个进程集合中的每个进程都在等待只能由该集合中的其他一个进程才能引发的事件,则称一组进程或系统此时发生死锁。
死锁存在原因
死锁产生不仅与系统拥有的资源数量有关,而且与资源分配策略,进程对资源的使用要求以及并发进程的推进顺序有关。
15. 产生死锁的原因?
死锁产生不仅与系统拥有的资源数量有关,而且与资源分配策略,进程对资源的使用要求以及并发进程的推进顺序有关。
16. 死锁产生的必要条件?举例说明?
1. 互斥条件
进程互斥使用资源
例如,当只有一袋咖啡粉时,A拿了B就不能拿。
2. 部分分配条件
申请新资源时不释放已占有资源
例如,当A拿到咖啡粉时,在拿到热水之前A不会将咖啡粉放出来,其他人不能使用咖啡粉。
3. 不剥夺条件
一个进程不能抢夺其他进程占有的资源
例如,在上面的例子中,B想要咖啡粉但它不能抢A的。
4. 环路条件
存在一组进程循环等待资源
例如,在上述例子中,B恰好有热水,但他在拿到咖啡粉前不会放出热水给A使用,两者形成一个环路。
17. 解释并分析其不同:预防死锁. 避免死锁. 检测死锁. 解除死锁?
预防死锁
在资源分配中破坏部分死锁必要条件。
避免死锁
如果一个进程当前请求资源会导致死锁,系统将拒绝启动此进程;如果一个资源分配会导致系统下一步死锁,便拒绝本次分配。
死锁检测
系统定时地运行一个“死锁检测”程序,判断系统内是否已出现死锁。
解除死锁
检测到死锁发生以后,采用各种方法解除死锁状态以恢复到可运行状态。
差异
预防死锁是通过资源分配策略让死锁不可能发生,避免死锁是每次分配都进行安全性检测来避免进入死锁状态。而死锁检测和解除死锁是不防止或避免死锁,当检测到系统已经进入死锁状态后再处理。
18. 预先分配策略是资源动态还是静态分配法?有何优缺点?
预先分配策略是资源静态分配法。
优点
策略实现简单
缺点
资源利用率低
19. 动态与静态哪个对资源的利用率高?为什么?它们为何可以预防死锁?
动态资源利用率高,因为在每个进程占有的资源中,有些资源在运行后期使用,有些资源在例外情况下才被使用,可能会造成进程占有一些几乎用不到的资源,而使其他想使用这些资源的进程等待。
静态破坏了部分分配条件,而动态破坏环路条件。
20. 何为安全状态?何为不安全状态?如何避免资源分配时进入不安全状态?
安全状态就是存在一个安全序列使所有进程都能执行完并收回所有资源
。不安全状态是不存在这样的安全序列,即有可能进入死锁状态。在资源分配时,应该先对资源进行预分配,若该分配会使系统进入不安全状态,则拒绝此分配。
21. 银行家算法的作用是什么?属于什么策略?
每一次分配之前都进行预分配和安全性评估来决定是否进行此分配
属于死锁避免策略。
22. 银行家算法与安全检测算法的关系是什么?
安全检测算法是银行家算法的核心。
23. 银行家算法的开销和对资源的利用率如何?
银行家算法的开销较高,因为要不断进行预分配和安全检测,资源利用率较高。
24. 从死锁必要条件的角度解释资源预先分配法. 资源暂时释放法. 资源有序使用法. 银行家算法等是如何预防或避免死锁发生的?
- 预先分配法破坏了部分分配条件
- 资源暂时释放法破坏了不剥夺条件
- 资源有序使用法破坏了环路条件
- 银行家算法破环了环路条件
25. 简单叙述银行家算法的思想?
- 系统中的所有进程进入进程集合,
- 在安全状态下系统收到进程的资源请求后,先把资源试探性分配给它。
- 系统用剩下的可用资源和进程集合中其他进程还要的资源数作比较,在进程集合中找到剩余资源能满足最大需求量的进程,从而,保证这个进程运行完毕并归还全部资源。
- 把这个进程从集合中去掉, 系统的剩余资源更多了,反复执行上述步骤。
- 最后,检查进程集合,若为空表明本次申请可行,系统处于安全状态,可实施本次分配;否则,有进程执行不完,系统处于不安全状态,本次资源分配暂不实施,让申请进程等待。
26. 何为资源分配图?
- 约定Pi→Rj为请求边,表示进程Pi申请资源类Rj中的一个资源得不到满足而处于等待Rj类资源的状态,该有向边从进程开始指到方框的边缘,表示进程Pi申请Rj类中的一个资源。
- Rj→Pi为分配边,表示Rj类中的一个资源已被进程Pi占用,由于已把一个具体的资源分给了进程Pi,故该有向边从方框内的某个黑圆点出发指向进程。
27. 何为死锁定理?
- 如果能在进程-资源分配图中消去此进程的所有请求边和分配边,成为孤立结点。经一系列简化,使所有进程成为孤立结点,则该图是可完全简化的;否则则称该图是不可完全简化的。
- 系统为死锁状态的充分条件是:当且仅当该状态的进程-资源分配图是不可完全简化的。该充分条件称为死锁定理。
28. 为何从资源分配图能否化简就能判断死锁的情形?图不能化简是否就说明机器存在死锁?
因为对资源分配图进行简化就相当于让一个进程获得足够的资源,在有限时间内执行完并释放资源。若不能完全化简,就意味着没有方法让进程全部执行完并收回资源,系统此时是死锁状态。
29. 死锁检测算法的理论基础是什么?
理论基础就是模拟资源分配图的化简过程,若不能完全化简,则进入死锁状态。
30. 死锁如何解除?谈谈解除死锁的代价?
- 结束所有进程的执行,重新启动操作系统。方法简单,但以前工作全部作废,损失很大。
- 撤销陷于死锁的所有进程,解除死锁继续运行。
- 逐个撤销陷于死锁的进程,回收其资源重新分派,直至死锁解除。
- 剥夺陷于死锁的进程占用的资源,但并不撤销它,直至死锁解除。可照撤销陷于死锁进程的条件来选择剥夺资源的进程
- 根据系统保存的检查点,让所有进程回退,直到足以解除死锁,这种措施要求系统建立保存检查点. 回退及重启机制。
- 当检测到死锁时,如果存在某些未卷入死锁的进程,而随着这些进程执行到结束,有可能释放足够的资源来解除死锁。
第四章
1. 立体(多级)存储体系指啥?为何要进行重定位?为何要进行地址映射?
立体(多级)存储体系指由寄存器. 高速缓存. 内存储器. 磁盘缓存. 固定磁盘. 可移动存储介质组成的一个存储器层次结构。
2. 从单道到现代OS的虚拟内存管理这一发展线条?你来纵论一下?
OS最初的单任务系统
OS从单任务处理变为多任务并行处理
MMU的开始使用
虚拟内存概念的出现
3. 你能否说清一种内存管理思想的原理及其地址映射过程(如:虚拟分页)?
4. 这些概念指啥:快表命中,页内零头,淘汰算法,抖动,碎片,紧凑,页故障率。
快表命中
当把页号交给快表后,它通过并行匹配同时对所有快表项进行比较,如果找到,则为快表命中。
页内零头
在页里面用户没有利用的部分。
淘汰算法
一个将快表或页表里将某一页淘汰掉并装入新的页的算法。
抖动
当存储管理方式采用页式存储时,缓存中的页需要可能被替换,下次要使用的页在这回却替换出去了,这样的现象就称为抖动。就会使得刚被替换出去的页又要重新加载。
碎片
指操作系统在内存分配过程中,遗留下来的不能被利用到的内存区域。内存碎片导致部分内存被浪费,大量的内存碎片也会影响到系统的性能。
紧凑
将内存空闲区域集中在内存的一端拼接成一个较大的空闲分区,这种方法成为紧凑。
页故障率
发生缺页中断的比率。
5. 内存地址映射过程为何要引入硬件寄存器?它与页表. 段表. 快表. 进程表在数量设置上有何关系?内容呢,何时装入?
引入硬件寄存器为了减少内存访问次数,提高访问效率。
页表只有一个,只有占用CPU的进程才占有它。
每个用户作业都有自己的段表。
快表只有一个,存最近访问的页表项。
进程表只有一个,存进程信息。
页表中存放的是页框的逻辑地址,在有新页框创建时装入。
段表中存放的是段的逻辑地址,在有新段创建时装入。
快表存的是常用页框的逻辑地址,在淘汰页框并更新快表时装入。
进程表存的是正在运行或就绪的进程信息,在创建进程时装入。
第五章
1. 设备驱动指什么?是否是OS的一部分?为何使用设备时需要安装驱动?不能事先集成入吗?
设备驱动程序包括与设备密切相关的所有代码,其任务是把用户提交的逻辑I/O请求转化为物理I/O操作的启动和执行;同时,监督设备是否正确执行,管理数据缓冲区,进行必要的纠错处理。
笼统地说,设备驱动程序的功能是从独立于设备的软件中接收并执行I/O请求。
设备驱动是OS的一部分
驱动负责沟通对应的硬件和操作系统,是两者之间的桥梁,不安装驱动的话操作系统则无法识别对应的硬件设备
可以事先集成设备驱动
2. CPU如何实现对设备的控制?有哪些方式?各种方式的特点与原理?设备(如硬盘)要与内存传数,难道不和CPU冲突吗?
- 按照I/O控制器功能的强弱以及它和CPU之间联系方式的不同,可以把设备控制方式分为轮询. 中断. DMA. 和通道4类。
- 它们之间的差别在于CPU和设备并行工作的方式和程度不同。
轮询方式
轮询方式又称程序直接控制方式,使用查询指令测试设备控制器的忙闲状态位,确定内存和设备是否能交换数据。
轮询方式使用三条指令:
查询指令:查询设备是否就绪;
读写指令:当设备就绪时执行数据交换;
转移指令:当设备未就绪时执行转移指令转向查询指令继续查询;
中断方式
-中断方式要求CPU与设备控制器及设备之间存在中断请求线,设备控制器的状态寄存器有相应的中断允许位。
DMA方式
- 在DMA方式中,内存和设备之间有一条数据通路成块地传送数据,无须CPU干扰,实际数据传输操作由DMA直接完成。
DMA方式需以下设施:
(1)内存地址寄存器:存放内存中需要交换数据的地址,DMA传送之前由程序送入首地址;DMA传送过程中,每次交换数据都把地址寄存器的内容加1。
(2)字计数器:记录传送数据的总字数,每次传送一个字就把字计数器减1。
(3)数据缓冲寄存器或数据缓冲区:暂存每次传送的数据。
(4)设备地址寄存器:存放I/O信息的地址,如磁盘的柱面号. 磁头号. 扇区号。
(5)中断机制和控制逻辑:用于向CPU提出I/O中断请求及保存CPU发来的I/O。
通道方式
- 采用通道后的I/O操作过程:CPU在执行主程序时遇到I/O请求,它启动指定通道上选址的外围设备,一旦启动成功,通道开始控制外围设备进行操作。CPU就可执行其他任务并与通道并行工作,直到I/O操作完成。通道发出操作结束中断时,CPU才停止当前工作,转向处理I/O操作结束事件。
3. OS的设备管理I/O子系统工作机制如何?请以缺页中断为例加以说明?
I/O操作执行步骤
进程对已打开文件的文件描述符执行读库函数;
独立设备I/O软件检查参数正确性。高速缓存中有要读的信息块,从缓冲区直接读到用户区,完成I/O请求;
若数据不在缓冲区,执行物理I/O,实现将设备逻辑名转换成物理名,检查对设备操作的权限,将I/O请求排队,阻塞进程且等待I/O完成;
内核启动设备驱动程序,分配存放读出块的缓冲区,准备接收数据,且向设备控制寄存器发启动命令,或建立DMA传输,启动I/O;
设备控制器操作设备,执行数据传输;
DMA控制器控制一块传输完成,硬件产生I/O结束中断;
CPU响应中断,转向磁盘中断处理程序。
当应用进程被再次调度执行时,从I/O系统调用的断点恢复执行。
缺页异常处理过程
- 缺页异常是由于发现当前访问页面不在内存时由硬件所产生的一种特殊中断信号,是在指令执行期间产生并由系统处理的。
**缺页本身是一种中断,与一般的中断一样,需要经过4个处理步骤: **
保护CPU现场
分析中断原因
转入缺页中断处理程序进行处理
恢复CPU现场,继续执行
**但是缺页中断时由于所要访问的页面不存在内存时,有硬件所产生的一种特殊的中断,因此,与一般的中断存在区别: **
在指令执行期间产生和处理缺页中断信号
一条指令在执行期间,可能产生多次缺页中断
缺页中断返回时,执行产生中断的那一条指令,而一般的中断返回时,执行下一条指令
缺页异常的整个过程
首先硬件会陷入内核,在堆栈中保存程序计数器。大多数机器将当前指令的各种状态信息保存在CPU中特殊的寄存器中。
启动一个汇编代码例程保存通用寄存器及其它易失性信息,以免被操作系统破坏。这个例程将操作系统作为一个函数来调用。(在页面换入换出的过程中可能会发生上下文换行,导致破坏当前程序计数器及通用寄存器中本进程的信息)
当操作系统发现是一个页面中断时,查找出来发生页面中断的虚拟页面(进程地址空间中的页面)。这个虚拟页面的信息通常会保存在一个硬件寄存器中,如果没有的话,操作系统必须检索程序计数器,取出这条指令,用软件分析该指令,通过分析找出发生页面中断的虚拟页面。
检查虚拟地址的有效性及安全保护位。如果发生保护错误,则杀死该进程。
操作系统查找一个空闲的页框(物理内存中的页面),如果没有空闲页框则需要通过页面置换算法找到一个需要换出的页框。
如果找的页框中的内容被修改了,则需要将修改的内容保存到磁盘上,此时会引起一个写磁盘调用,发生上下文切换(在等待磁盘写的过程中让其它进程运行)。(注:此时需要将页框置为忙状态,以防页框被其它进程抢占掉)
页框干净后,操作系统根据虚拟地址对应磁盘上的位置,将保持在磁盘上的页面内容复制到“干净”的页框中,此时会引起一个读磁盘调用,发生上下文切换。
当磁盘中的页面内容全部装入页框后,向操作系统发送一个中断。操作系统更新内存中的页表项,将虚拟页面映射的页框号更新为写入的页框,并将页框标记为正常状态。
恢复缺页中断发生前的状态,将程序指令器重新指向引起缺页中断的指令。
调度引起页面中断的进程,操作系统返回汇编代码例程。
汇编代码例程恢复现场,将之前保存在通用寄存器中的信息恢复。
缺页中断的过程涉及了用户态和内核态之间的切换,虚拟地址和物理之间的转换(这个转换过程需要使用MMU和TLB),同时涉及了内核态到用户态的转换。
4. 磁盘驱动这一举例中为何要提到“调度策略”?
对于系统性能产生重要影响的是磁盘I/O,为了提高磁盘I/O性能,广为使用的有两种方法:磁盘驱动调度和磁盘缓冲区。
不同的调度策略算法对于磁盘驱动调度的性能影响很大,从而对磁盘I/O性能再到系统整体性能表现影响也很大。
5. 为何要用到缓冲?DMA中的缓冲区作用为何?
为何要用到缓冲?
数据离开设备之后通常不能直接送达目的地,所以必须通过缓冲区来消除填满速率和清空速率的影响。
也就是说缓冲是为了解决高速设备和低速设备之间的速度不匹配问题。
DMA中的缓冲区作用为何?
内存中用于与外设交互数据的一块区域被称作DMA缓冲区。
外设的设备读写速度与内存相比非常慢,因此需要使用缓冲区来减少等待时间,提高DMA的运行效率。
6. 何为虚拟设备?
在一台共享设备上模拟若干台独享设备的操作,把独占型设备变成逻辑上的共享型设备,这种技术叫做虚拟设备技术。
实现这种技术的软件和硬件被称为SPOOLING系统,使用SPOOLING技术所提供的设备就称为虚拟设备。
实现虚拟设备的主要条件是:硬件上需要在磁盘上开辟输入井和输出井用做缓冲的存储区域。软件上需要预输入程序. 缓输出程序和井管理程序。
7. OS中为何要引入逻辑设备?即在驱动中完成“逻辑设备—物理设备”对应?
概念
为了实现设备独立性而引入了逻辑设备和物理设备两概念。这使得应用程序独立于具体使用的物理设备。
这样的好处是提高了OS的可适应性和可扩展性,在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。
设备独立性带来的好处
应用程序与具体物理设备无关,系统增减或变更设备时对源程序不必加以任何修改;
易于应对I/O设备故障,从而提高系统可靠性,增加设备分配的灵活性,能更有效地利用设备资源,实现多道程序设计;
8. IDE是什么?串口与并口指什么?举例?PCI呢?
IDE
平常所说的IDE接口,也称之为ATA接口。ATA的英文拼写为“Advanced Technology Attachment”,含义是“高级技术附加装置”。
早期的IDE接口有两种传输模式,一个是PIO(Programming I/O)模式,另一个是DMA(Direct Memory Access)。
串口与并口
串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
并行接口,指采用并行传输方式来传输数据的接口标准。一个并行接口的接口特性可以从两个方面加以描述:1. 以并行方式传输的数据通道的宽度,也称接口传输的位数;2. 用于协调并行数据传输的额外接口控制线或称交互信号的特性。 数据的宽度可以从1~128位或者更宽
SCSI和IDE都是并行接口。
串口形容一下就是:一条车道,而并口就是有多个车道同一时刻能传送多位(一个字节)数据。但是并不是并口快。由于多位通道之间的互相干扰,传输时速度就受到了限制。而且当传输出错时,要同时重新传多个位的数据。而串口没有干扰,传输出错后重发一位就可以了,所以要比并口快。
PCI
- PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写,它是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。(可惜现在都变成了PCIe接口)
- PCI (Peripheral Component Interconnect)总线是一种高性能局部总线,是为了满足外设间以及外设与主机间高速数据传输而提出来的。在数字图形. 图像和语音处理,以及高速实时数据采集与处理等对数据传输率要求较高的应用中,采用PCI总线来进行数据传输,可以解决原有的标准总线数据传输率低带来的瓶颈问题。
9. 磁盘调度算法
先来先服务/FCFS
First Come First Serve algorithm
顾名思义,先来的先服务,不考虑各I/O请求之间的相对次序和移动臂当前所处位置;
进程等待I/O请求的时间会很长,寻道性能较差;
最短查找时间优先算法/SSTF
Shortest Seek Time First algorithm
SSTF考虑I/O请求之间的区别,总是先执行查找时间最短的请求,与FCS算法相比有较好的寻道性能。
扫描算法/SCAN
SCAN algorithm
在SCAN中,移动臂每次沿一个方向移动,扫过所有柱面,遇到最近的I/O请求便进行处理,直至到达最后一个柱面后,再向相反的方向移动回来。
SCAN与电梯调度算法不同的是:即使当前移动方向暂时没有I/O请求,移动臂也需要扫描到头。
扫描算法偏爱那些最接近里面或靠近外面的请求,对最近扫描所跨越区域的I/O请求的响应速度会较慢。
分步扫描算法/N-steps
N-steps scan algorithm
将I/O请求分为长度为N的子队列,按FIFO算法依次处理每个子队列,而每个子队列采用扫描算法,处理完一个后再服务下一个子队列。
在一段时间内进程重复请求访问同一柱面会垄断整个设备,造成磁盘臂停留在柱面上不动,称为“磁臂粘性”,使所有其他柱面的访问请求可能长时间得不到服务。
当N很大的时候 ,接近于扫描算法性能;当N=1的时候,接近于FIFO算法性能。
电梯调度算法/LOOK
elevator algorithm又称LOOK算法
SCAN算法的改进,无访问请求时,移动臂停止不动,有访问请求时,移动臂按电梯规律移动。
LOOK不需要扫描到磁盘的尽头!
循环扫描算法/Circular scan
Circular scan algorithm
移动臂总是从0号柱面至最大号柱面顺序扫描,然后直接返回0号柱面重复进行,归途中不再提供服务,构成一个循环,缩短处理新来请求的最大延迟。
第六章
1. 文件如何分类?为何有这么多种分类?
文件是由文件名字标识的一组信息的集合。可按各种方法进行分类:
按用途分类:
按保护级别分类:
按信息流向分类:
按存放时限分类:
按设备类型分类:
按文件的结构分类:
有多种分类的原因是文件本身的信息和属性多样,根据不同的用途. 权限. 存储方式等均可进行不同需求的划分。
参考资料:https://blog.csdn.net/liu_fei_er/article/details/80619625
2. 系统实现按名存取文件主要依靠什么数据结构?
**文件控制块 (FCB)**是OS为每个文件建立的唯一数据结构,其中包含了全部文件属性,其目的是既便于用户的操作和使用,又便于操作系统对文件的管理和控制。
一个文件由两部分组成 :FCB 和文件体(文件信息)。有了 FCB 就可以实现文件的“按名存取”
3. 文件的组织有哪几种形式?文件和存储介质有什么关系?
文件组织是指文件中信息的配置和构造方式,应该从文件的逻辑结构和组织以及文件的物理结构和组织两方面加以考虑。
文件和存储介质的关系
文件的增删改查操作都与存储介质密切相关。
文件系统中的磁盘管理除管理文件空间外,还将文件的逻辑地址转换成磁盘的物理地址,即由逻辑块号找到柱面号. 磁头号和扇区号,设备与内存之间的数据传输操作由文件系统调用设备管理实现。
4. 文件的逻辑组织是什么概念?有哪些方式?
文件的逻辑结构和组织指从用户观点出发,研究用户概念中抽象的信息组织方式,这是用户所能观察到的,可加以处理的数据集合。
文件的逻辑结构分为两种形式:流式文件和记录式文件。
流式文件
流式文件是一种无结构的文件,文件内的数据不再组成记录,只是依次的一串信息集合,称为字节流文件,可以看成是只有一个记录的记录式文件。
为了简化系统,大多数现代操作系统如Linux系统只提供流式文件。
记录式文件
记录式文件是一种有结构的文件,它包含若干逻辑记录,逻辑记录是文件中按信息在逻辑上的独立含义所划分的信息单位。
记录式文件中有两种常用的记录组织和使用方法:
记录式顺序文件:文件的记录顺序生成并被顺序访问。
记录式索引顺序文件:这种文件使用索引表,表项包含记录键和索引指针,记录键由应用程序确定,而索引指针便指向相应记录。
5. 文件的物理组织是什么概念?有哪些方式?
文件的物理结构和组织是指逻辑文件在物理存储空间中的存放方法和组织关系,这时的文件看做物理文件,即相关物理块的集合。
文件的存储结构涉及:块的划分. 记录的排列. 索引的组织. 信息的搜索,其优劣直接影响文件系统的性能。
有两类方法可以用来构造文件物理结构:计算法和指针法。
常用的文件物理结构和组织方法有:顺序文件. 连接文件. 索引文件. 直接文件。
6. 文件目录与目录文件是指什么?
文件目录
为了加快文件查找速度,通常把FCB汇集和组织在一起形成文件目录,文件目录包含许多目录项,目录项有两种,分别用于描述子目录和描述文件。
目录文件
目录项的格式按统一标准定义,全部由目录项所构成的文件称为目录文件。
目录文件保存在外存上,查找文件时调入内存工作区。
与普通文件不同,目录文件永远不会空,它至少包含两个目录项:当前目录“.”和父目录项“..”。
7. 文件的访问方式有哪些?请做说明?
常用的文件访问方式有:顺序存取. 直接存取和索引存取
顺序存取
无论是无结构字节流文件,还是有结构记录式文件,存取操作都在上次操作的基础上进行。系统设置读写两个位置指针,指向要读出或写入的字节位置或记录位置。
顺序存取主要用于磁带文件,但也适用于磁盘上的顺序文件。
直接存取
又称随机存取,可以非顺序地从文件中的任何位置存取文件内容。
直接存取方法适合于要求快速地以任意次序直接读写某条记录的应用,如订机票;它也通常用于磁盘文件。
索引存取
- 这是基于索引文件的存取方法,由于文件中的记录不按位置而是按其记录名或记录键来编址,所以用户提供记录名或记录键后,先按名搜索,再查找所需要的记录。
8. 文件控制块(FCB)的作用?
文件控制块(File Control Block,FCB)是操作系统为每个文件建立的唯一数据结构,其中包含了全部文件属性,其目的是为方便操作系统对文件的管理. 控制和存取。
有了FCB就可以方便地实现文件的按名存取。
每当创建一个文件时,系统就要为其建立一个FCB,用来记录文件的属性信息;每当存取文件时,先找到其FCB,再找到文件信息盘块号. 首块物理位置或索引表就能存取文件信息。
9. 目录结构的概念与分级情形?
最简单的文件目录时一级目录结构,所有FCB排列在一张线性表中,其缺点是文件重名和文件共享问题难以解决。
实际上,所有文件系统都支持多级层次结构,根目录是唯一的,每一级目录可以是下一级目录的说明,也可以是文件的说明,从而形成树状目录结构。
树状多级目录结构有许多优点:
可以较好地反映现实世界中具有层次关系的数据集合,确切地反映系统内部文件的分支结构;
不同文件可以重名,只要它们不位于同一末端子目录中即可;
易于规定不同层次或子目录中文件的不同存取权限,便于文件的保护. 保密和共享等;
有利于系统的维护和查找。
10. 删除文件主要删除哪些内容?为何删除的文件可以被恢复?你认为删除文件应该删除哪些内容?请从安全性与性能两方面来解释各自的影响?
一个文件由两部分组成:FCB和文件体(文件信息);
删除文件主要删除其FCB信息,文件信息还保存在磁盘中,因此只要找到磁盘中对应位置的数据就可以恢复被删除的文件。
从性能方面来说,只删除FCB是优秀的选择,这样速度更快,系统开销更小;
从安全性方面来说,删除文件时应将文件信息也一并删除;
11. 就你所了解的文件物理组织中,哪些是你认为不错的组织方式?
顺序文件
将文件中逻辑上连续的信息存放到存储介质的相邻物理块上形成顺序结构,叫做顺序文件,又称连续文件。
顺序文件的优点是顺序存取记录时速度快,在批处理文件. 系统文件中用得很多。
顺序文件的缺点是建立文件之前需要预先确定文件长度,以便分配存储空间;修改. 插入和添加文件记录有一定的难度;对于变长记录的处理很困难;对磁盘作连续分配会造成空闲块的浪费。
连接文件
连接结构的特点是使用连接字,又称指针,来表示文件中各条记录之间的关系。
连接结构克服了顺序结构不适应于增. 删. 改的缺点,对某些操作会带来好处,但在其他方面又会失去一些性能。
使用连接文件很容易把数据记录组织起来,但是查找某条记录需遍历链接结构,效率很低。
索引文件
索引结构式实现非连续存储的另一种方法,适用于数据记录保存在磁盘上的文件。
索引结构是连接结构的一种扩展,除了具备连接文件的优点外,记录可以散列存储,具有直接读写任意记录的能力,便于信息的增. 删. 改。
缺点是索引表的空间开销和查找时间的开销大,大型文件的索引表的信息量甚至可能远远超过文件记录本身的信息量。
直接文件
在直接存取存储设备上,利用哈希法将记录的关键字与其地址之间建立某种对应关系,以便实现快速存取的文件叫做直接文件. 散列文件或哈希文件。
这种存储结构用在不能采用顺序组织方法. 次序较乱. 又需在极短时间内进行存取的场合,对于实时处理文件. 目录文件. 存储管理的页表查找. 编译程序变量名表等的管理十分有效。
12. 请你把文件操作与上一章的设备管理结合起来,叙述文件读写的整个过程?
心累,不说。
13. 定期紧缩磁盘空间会导致什么好处?
因为文件被分散保存到整个磁盘的不同地方,而不是连续地保存在磁盘连续的簇中形成的。硬盘在使用一段时间后,由于反复写入和删除文件,磁盘中的空闲扇区会分散到整个磁盘中不连续的物理位置上,从而使文件不能存在连续的扇区里。这样,再读写文件时就需要到不同的地方去读取,增加了磁头的来回移动,降低了磁盘的访问速度。
定期紧缩磁盘空间可以使原本分散的文件碎片被重新整理到一起,减少磁盘在读取的时候的磁头移动,增高磁盘的读写效率。