基本要求
- 掌握操作系统的基本概念、基本结构和运行机制。
- 深入理解进程线程模型,深入理解进程同步机制,深入理解死锁概念及解决方案。
- 掌握存储管理基本概念,掌握分区存储管理方案,深入理解虚拟页式存储管理方案。
- 深入理解文件系统的设计、实现,以及提高文件系统性能的各种方法。
- 了解I/O设备管理的基本概念、I/O软件的组成,掌握典型的I/O设备管理技术。
- 了解操作系统的演化过程、新的设计思想和实现技术。
考试内容
- 操作系统概述
- 操作系统基本概念、特征、分类。
基本概念:是计算机系统中的一个系统软件,它是这样一些程序模块的集合——它们能有效地组织和管理计算机系统中的硬件及软件资源,合理地组织计算机的工作流程,控制程序的执行,并向用户提供各种服务功能,使用户能够灵活的、方便、有效地使用计算机,并使整个计算机系统能够高效地运行(是具有各种功能的、大量程序模块的集合)。
任务: 1.组织和管理计算机系统中的硬件及软件资源 2.向用户提供各种服务功能
特征: 并发性(用户程序与用户程序之间并发执行;用户程序与操作系统程序之间并发执行)、共享性(互斥共享和同时共享)、随机性(要充分考虑各种各样的可能性)。
分类: 1.批处理操作系统(成批处理、SPOOLing技术) 简单/多道批处理系统
2.分时系统 (多路性、交互性、独占性、及时性)
3.实时操作系统 硬实时/软实时系统 (实时时钟管理、过载保护、高可靠性)
4.嵌入式操作系统 可针对需求进行裁剪、调整和生成 (高可靠性、实时性、占有资源少、智能化能源管理、易于连接、低成本等)
5.个人计算机操作系统 (某一时间为单用户服务、图形界面、使用方便)
6.网络操作系统 集中式/分布式模式 (共享数据、资源及服务同运算处理能力)
7.分布式操作系统(统一/同一操作系统、资源的深度共享、透明性、自治性)集群
8.智能卡操作系统 资源管理、通信管理、安全管理、应用管理
- 操作系统主要功能。
功能: 1.进程管理(处理器管理) 进程控制、进程同步/互斥、进程间通信、调度
2.存储管理 内存的分配与回收、存储保护、内存扩充
3.文件管理 文件存储空间的管理、目录管理、文件系统的安全性
4.设备管理 需具备中断处理、错误处理等功能
5.用户接口
- 操作系统发展演化过程,典型操作系统。
发展: 1.手工操作 2.监控程序(早期批处理) 3.多道批处理 4.分时系统
5. UNIX通用操作系统 6.个人计算机操作系统 (Win) 7.Android操作系统
- 操作系统结构设计,典型的操作系统结构。
体系结构: 1.整体式结构 (结构紧密、接口简单直接、系统效率较高)
2.层次式结构 分层原则 (同整体式、模块间结构关系清晰、增加/替换不影响其他层次)
3.微内核(客户机/服务器)结构 运行在核心态的内核、运行在用户态的并以客户机/服务器方式进行的进程层 (可靠、灵活、适宜于分布式处理的计算环境)
- 操作系统运行机制
操作系统的运行环境主要包括计算机系统的硬件环境和由其他的系统软件组成的软件环境。
寄存器:1.用户可见寄存器 数据寄存器、地址寄存器、条件码寄存器
2.控制和状态寄存器 程序计数器(PC)、程序状态字(PSW)
指令类型:访问存储器指令、I/O指令、算数逻辑指令、控制转移指令、处理器控制指令
- 内核态和用户态。
内核态(管态): 操作系统管理程序运行的状态,具有较高的特权级别。 可执行全部指令(包括特权指令),使用所有资源,并具有改变处理器状态的能力。
用户态(目态):用户程序运行时的状态,具有较低的特权级别。 只可执行非特权指令。
CPU状态的转换: 1.目态—管态的转换 通过中断或异常
2.管态—目态的转换 通过设置PSW指令(修改程序状态字)
- 中断与异常。
中断:指CPU对系统中或系统外发生的异步事件的响应。 (中断源/中断请求/中断处理程序/中断断点/中断响应/中断返回/中断字/中断向量表)
特征:能充分发挥处理器的使用效率、提高系统的实时能力
系统:硬件中断装置和软件中断处理程序 (中断请求的接收、中断响应、中断处理)
典型: 1.I/O中断 I/O操作正常结束、I/O异常
2.时钟中断 维护软件时钟、处理器调度、控制系统定时任务、实时处理
3.硬件故障中断
4.程序性中断 (由操作系统完成/程序自己完成)
5.系统服务请求(访问中断) 由处理器提供的专用指令(访管指令)来激发
异常:指CPU对系统内正在执行的指令的响应。
分类: 1.中断 时钟中断/输入输出(I/O)中断/控制台中断/硬件故障中断
2.异常 程序性中断/访管指令异常
多级中断作用: 1.对各类中断信号依据其紧急程度和重要性划分级别。
2.解决如果有重要程度相当的多个中断信号同时到达时,如何选择首个被处理的中断信号的问题。
多级中断方法:固定优先数、轮转法
一类不可屏蔽的中断信号:机器故障中断。
- 系统调用接口。
访管指令把用户态切换成内核态,并启用操作系统。
系统调用:用户在程序中调用操作系统所提供的一些子功能。
区别(系统调用与一般过程调用):
1.运行在不同的系统状态
2.状态的转换
3.返回问题
4.嵌套调用
分类: 1.进程控制类系统调用 2.文件操作类系统调用 3.进程通信类系统调用
4.设备管理类系统调用 5.信息维护类系统调用
广义指令(系统调用命令)和机器指令的区别:机器指令是由硬件线路直接实现的,而“广义指令”则是由操作系统所提供的一个或多个字程序模块,即软件实现的。
在系统中为控制系统调用服务的机构成为陷入(TRAP)或异常处理机构。
- 存储系统。
计算机存储系统的设计主要考虑三个问题:容量、速度和成本。
容量、速度和成本的匹配问题:采用层次化的存储体系结构
存储访问局部性原理:提高存储系统性能的关键
存储保护: 1.界地址寄存器(界限寄存器) 2.存储键
- I/O系统。
I/O结构:外部设备的控制器通过I/O硬件结构与中央处理器连接。
通道:独立于中央处理器的,专门负责数据I/O传输工作的处理单元。
特点:实现中央处理器和各种外部设备并行工作。
DMA技术(直接存储器访问):通过系统总线中的一个独立控制单元,自动地控制成块数据在内存和I/O单元之间的传送。
缓冲技术:用在外部设备与其他硬件部件之间的一种数据暂存技术,它利用存储器件在外部设备中设置了数据的一个存储区域,称为“缓存区”。
用途:1.用在外部设备与外部设备之间的通信上的。2.用在外部设备和处理器之间的。
根本原因:CPU处理数据速度与设备传输数据速度不相匹配,需要用缓冲区缓解其间的速度矛盾。
- 时钟(Clock)。
分类:硬件时钟和软件时钟
用途: 1.绝对时钟 在计算机系统中不受外界干扰、独立运行的一种时钟。
2.相对时钟(间隔时钟) 只计算从某一个时间初值开始的一段时间间隔。
软件时钟与硬件时钟的同步工作,由操作系统负责维护。
- 进程线程模型
- 并发环境与多道程序设计。
并发环境:采用并行操作技术,并发程序在各自处理机上运行。
多道程序设计:允许多个程序同时进入内存并执行。(最基本、最重要的技术)
目的:提高整个系统的效率。(系统吞吐量)
特点:独立性、随机性、资源共享性
程序的并发执行:并发程序在执行期间具有相互制约关系;程序与计算不再一一对应;并发程序执行结果不可再现。
实现多道程序设计时,必须协调好资源使用者与被使用资源之间的关系。
- 进程的基本概念,进程控制块(PCB)。
进程:对正在运行程序的一个抽象。
属性:可拥有资源的独立单位;可以独立调度和分派的基本单位。
特性:并发性、动态性、独立性、交往性、异步性
分类: 1.系统进程 执行操作系统程序,完成操作系统的某些功能。
2.用户进程 运行用户程序,直接为用户服务。
联系和区别(进程与程序):
1.联系:进程由程序、数据和进程控制块(PCB)组成。
2.区别:程序是静态的,进程是动态的。进程具有创建其他进程的功能。
进程控制块(PCB):用来描述进程的基本情况以及进程的运行变化过程。
内容:调度信息和组成信息。
组织:线性方式、索引方式和链接方式。
- 进程状态及状态转换。
三态模型:运行状态、就绪状态、等待状态
五态模型:运行状态、就绪状态、阻塞状态、创建状态、结束状态
七态模型:运行状态、就绪状态、阻塞状态、创建状态、结束状态、就绪挂起、阻塞挂起
- 进程控制:创建、撤销、阻塞、唤醒、fork()的使用。
进程控制是通过原语来实现的。
原语:由若干条指令所组成的程序,用来实现某个特定的操作。(不可分割、不可中断;必须在管态下执行,并且常驻内存)
控制:创建原语、撤销原语、阻塞原语、唤醒原语。
fork():父进程通过调用fork()函数创建子进程。
新创建的子进程基本与父进程相同。
特点:只被调用一次,却会返回两次:一次是在调用进程(父进程)中,一次是在新创建的子进程中。
- 线程基本概念,线程的实现机制,Pthread线程包的使用。
线程:比进程更小的能独立运行的基本单位——线程,CPU调度和分派的基本单位。
属性: •每个线程有一个唯一的标识符和一张线程描述表,线程描述表记录了线程执行的寄存器和栈等现场状态。
•不同的线程可以执行相同的程序,即同一个服务程序被不同用户调用时操作系统为它们创建不同的线程。
•同一进程中的各个线程共享该进程的内存地址空间。
•线程是处理器的独立调度单位,多个线程是可以并发执行的。
•一个线程被创建后便开始了它的生命周期,直至终止,线程在生命周期内会经历等待、就绪和运行等各种状态变化。
特点: •创建一个新线程花费时间少(结果亦如此)。创建线程不需另行分配资源,因而创建线程的速度比创建进程的速度快,且系统的开销也少。
•两个线程的切换花费时间少。
•由于同一个进程内的进程共享内存和文件,线程之间相互通信无须调用内核,故不需要额外的通信机制,使通信更简便,信息传送速度也快。
•线程能独立执行,能充分利用和发挥处理器与外围设备并行工作能力。
比较:调度:线程作为调度和分派的基本单位;进程作为资源拥有的基本单位。
并发性:进程之间可以并发执行,一个进程中的多个线程之间也可以并发执行。
拥有资源:进程拥有自己的资源;线程无资源,但可以访问其隶属进程的资源。
系统开销:进程切换的开销也远大于线程切换的开销。
实现机制: 1.用户级线程 可以在不支持线程的操作系统上实现;允许每个进程有自己定制的调度算法。
2.内核级线程 线程的调用都以系统调用的形式实现。
3.混合实现方式 使用内核级线程,然后将用户级线程与某些或者全部内核线程多路复用起来。
比较:1.线程的调度与切换速度
2.系统调用
3.线程执行时间
Pthread线程包:基于该标准实现的线程包(都含有一个标识符、一组寄存器和一组存储在结构中的属性)。
- 进程的同步与互斥:信号量及PV操作,管程。
在逻辑上具有某种联系的进程称为相关进程;在逻辑上没有任何联系的进程称为无关进程。
进程同步是指多个进程中发生的事件存在某种时序关系,必须协同动作,相互配合,以共同完成一个任务。进程的互斥是指由于共享资源所要求的排他性,进程间要相互竞争,以使用这些互斥资源。
互斥解决做法:1.由竞争各方平等协商 2.引入进程管理者,由管理者来协调竞争各方对互斥资源的使用。
临界资源:指计算机系统中的需要互斥使用的硬件或软件资源,如外设、共享代码段、共享数据结构等。
资源共享的程度:互斥、死锁和饥饿
进程间的相互制约关系
相互感知的程度 | 交互关系 | 一个进程对其他进程的影响 | 潜在的控制问题 |
相互不感知(完全不了解其他进程的存在) | 竞争 | 一个进程的操作对其他进程的结果无影响 | 互斥、死锁、饥饿 |
间接感知(双方都与第三方交互,如共享资源) | 通过共享进行协作 | 一个进程的结果依赖于从其他进程获得的信息 | 互斥、死锁、饥饿 |
直接感知(双方直接交互,如通信) | 通过通信进行协作 | 一个进程的结果依赖于从其他进程获得的信息 | 死锁、饥饿 |
同步机制准则:1.空闲则入 2.忙则等待 3.有限等待 4.让权等待
互斥的软件方法:在进入区检查和设置一些标志,如果已有进程在临界区,则在进入区通过循环检查进行等待;在退出区修改标志。
算法:1.单标志算法 2.双标志、先检查算法 3.双标志、后检查算法 4.先修改、后检查、后修改者等待算法
互斥的硬件方法:用一条指令完成读和写两个操作,因而保证读操作与写操作不被打断
方法:1.TS(Test-and-Set)指令 2.Swap指令(或Exchange指令)
信号量:可用资源实体的数量。
初值:非负整数值 空闲资源总数
负整数值 当前等待临界区的进程数
PV操作:P原语相当于进入区操作;V原语相当于退出区操作
使用信号量进行共享资源访问控制时,必须成对使用P和V原语。遗漏P原语则不能保证互斥访问,遗漏V原语则不能在使用临界资源之后将其释放给其他等待的进程。P、V原语的使用不能次序错误、重复或遗漏。
管程:由过程、变量及数据结构等构成的集合,它们组成一个特殊的模块或软件包。
组成:管程名称,共享数据的说明,对数据进行操作的一组过程、对共享数据赋初值的语句。
特性:1.模块化 2.抽象数据类型 3.信息隐蔽 4.任一时刻管程中只能有一个活跃进程
- 进程间通信。
方案:共享内存 设一个公共内存区,一组进程向该内存中写,另一组进程从该内存中读。
消息缓冲通信 利用内存中公用消息缓冲区实现进程之间的信息交换。
信箱通信 设立通信机构—信箱,以发送信件以及接受回答信件为进程间通信的基本方式。
管道通信 连接两个进程之间的一个打开的共享文件,专用于进程之间进行数据通信
- 处理机调度。
分类:高级调度、中级调度、低级调度
算法设计原则: 1.进程行为 计算密集型、I/O密集型
2.系统分类 批处理、交互式和实时系统
3.调度算法的设计目标 公平(相似的进程应该得到相似的服务)、保持系统的所有部分尽可能忙碌、指标(吞吐量、周转时间以及CPU利用率)、均衡性
算法:1.先来先服务(FCFS) 易于理解并且便于在程序中运行
2.最短作业优先(SJF) 所有作业同时可运行情况下,此算法才是最优化的。
3.最短剩余时间优先(SRTN)
4.轮转法(RR) 时间片设得太短会导致过多的进程切换,降低了CPU效率;而设得太长又可能引起对短的交互请求的响应时间太长。(最佳时间片20~50ms)
5.最高优先级算法(HPF)
6.多级反馈队列算法 综合了FCFS、RR、HPF的一种进程(线程)调度算法。
7.最短进程优先 根据进程过去的行为进行推测,并执行估计运行时间最短的那一个。
8.实时系统中的调度算法 系统的正确性不仅取决于计算的逻辑结果,而且还依赖于产生结果的时间。 硬实时任务、软实时任务 周期性事件、非周期性事件
计算机系统中使用最频繁、算法最复杂的是进程(线程)调度。
- 存储管理方案
- 存储管理的基本概念,存储管理的基本任务。
存储体系:各种速度和容量的存储硬件在操作系统协调之下,形成了一种存储器层次结构。
任务:1.内存的分配和回收 记住每个存储区域的状态、实施分配、回收
2.存储共享 通过代码共享节省内存空间,提高内存利用率;通过数据共享实现进程通信。
3.存储保护 保护系统程序区不被用户有意或无意的侵犯;不允许用户程序读写不属于自己地址空间的数据。 地址越界保护、权限保护
4.“扩充”内存容量 在硬件支持下,软件、硬件相互协作,将内存和外存结合起来统一使用。
- 分区存储管理方案。
分区:把内存划分成若干个连续区域,每个分区装入一个运行程序。
优缺:算法简单,表格不多,实现容易,内存开销少;内存使用不充分,不提供“虚存扩充”
固定分区:指系统先把内存划分成若干个大小固定的分区,一旦划分好,在系统运行期间便不再重新划分。
分区说明表:用于分区管理的内存分配表,按顺序每个分区在分区说明表中对应一个表目。
不能充分利用内存;灵活性差,可接纳程序的大小受到了分区大小的严格控制。
可变分区:指系统不预先划分固定分区,而是在装入程序时划分内存分区,使为程序分配的分区的大小正好等于该程序的需求量,且分区的个数是可变的。
实现:基址寄存器 用来存放程序所占分区的起始地址
限长寄存器 用来存放程序所占分区的长度
已分配区表 记录已装入程序在内存中占用分区的起始地址和长度
空闲区表 记录内存中可供分配的空闲区的起始地址和长度
算法:最先适应算法、最优适应算法、最坏适应算法、下次适应算法
回收:1.回收分区的上邻分区是空闲的,需要将两个空闲区合并成一个更大的空闲区,然后修改空闲区表。
2.回收分区的下邻分区是空闲的,需要将两个空闲区合并成一个更大的空闲区,然后修改空闲区表。
3.回收分区的上邻分区和下邻分区都是空闲的,需要将三个空闲区合并成一个更大的空闲区,然后修改空闲区表。
4.回收分区的上邻分区和下邻分区都不是空闲的,则直接将空闲分区记录在空闲区表中。
保护:1.设置界限寄存器 2.保护键方法
碎片 移动技术
- 覆盖技术和交换技术。
覆盖技术:指一个程序的若干程序段或几个程序的某些部分共享某一个存储空间。
从用户级彻底解决内存小装不下程序的问题;打破了需要将一个程序的全部信息装入内存后程序才能运行的限制。
交换技术:是进程在内存和外存之间的动态调度,是由操作系统控制的。
目的:尽可能达到“足够快地交换进程,以使当CPU调度程序想重新调度CPU时,总有进程在内存中处于就绪(准备执行)状态”的理想状态,从而提高内存利用率。
区别:与覆盖技术相比,交换技术不要求用户给出程序段之间的逻辑覆盖结构,对用户而言是透明的。而且,交换可以发生在不同的进程或程序之间,而覆盖发生在同一进程或程序内部,而且只能覆盖那些与覆盖段无关的程序段。
- 虚存概念和虚拟存储技术。
虚存:一个比有限的实际内存空间大得多的、逻辑的虚拟内存空间。
虚拟存储技术:利用大容量的外存来扩充内存,产生一个比有限的实际内存空间大得多的、逻辑的虚拟内存空间。
虚拟存储器的容量也是有限制的,主要是受外存容量所限。 以页或段为单位。
- 虚拟页式存储管理方案。
概念:在进程开始运行之前,不是装入全部页面,而是装入一个或另个页面,之后根据进程运行的需求,动态装入其他页面;当内存空间已满而又需要装入新的页面时,则根据某种算法置换出某个页面,以便装入新的页面。
页面调度策略:1.调入策略 2.置页策略 3.置换策略
页面置换算法:1.先进先出页面置换算法(FIFO)
2.最近最少使用页面置换算法(LRU)
3.最近最不常用页面置换算法(LFU)
4.理想页面置换算法(OPT)
5.最近未使用页面置换算法(NRU)
6.第二次机会页面置换算法
7.时钟页面置换算法(Clock)
缺页中断率:f = F / A F:缺页中断次数 A:访问页面的总次数
只要程序能分到n/2块内存空间,系统就可获得最高效率;最佳页的大小在29(512字节)至214(16384字节)之间。
目的:把那些访问概率非常高的页放入内存,减少内外存交换的次数。
性能问题:颠簸是由于缺页率高而引起的;希望分配给进程的物理页面数与当前工作集大小一致。
- 文件系统设计与实现技术
数据存储通常是以文件形式存放在磁盘或其他外部存储介质上,数据处理是通过文件处理来完成的,数据管理是通过文件管理来完成的。
文件系统:操作系统中与文件和目录相关的子系统。
- 文件的基本概念、文件的逻辑结构、文件的物理结构和存取方式。
文件:一组带标示的、在逻辑上有完整意义的信息项的序列。
基本单位:信息项
分类:1.按用途 系统文件、库函数文件、用户文件
2.按组织形式 普通文件、目录文件、特殊文件
逻辑:1.流式文件 有序字符的集合,其长度为该文件所包含的字符个数,流式文件无结构
2.记录式文件 一组有序记录的集合,基本单位是记录
物理:1.顺序结构 把逻辑上连续的文件信息依次存放在连续编号的物理块中
知晓文件存储的起始块号和文件长度,可快速存取;支持顺序存取和随机存取;文件不能动态增长。
2.链接结构 为每个文件构造所使用磁盘块的链表
无碎片问题,利于文件动态扩充,利于文件插入和删除,提高磁盘空间利用率;存取速度慢,不适于随机存取文件,效率较低,存在可靠性问题;链接指针需占用一定空间
3.索引结构 把物理盘块的指针子集存放在索引表中的内存索引表中
支持顺序存取和随机存取,满足文件动态扩充要求;会引起较多的寻到次数和寻到时间,索引表增加存储空间开销
4.I节点 给每个文件赋予称为I节点的小表,在表中列出了文件属性和文件地址
同时适合大小文件使用,灵活性较强,占用系统空间较少
存取:一种文件的逻辑结构和物理结构之间的映射和变换机制
方法:顺序存取、随机存取
- 文件目录的基本概念,文件目录的实现。
文件目录:把所有文件的文件控制块有机的组织起来,就构成了文件控制块的一个有序集合
文件目录以文件的形式保存起来,是长度固定的记录式文件,保存在外存储器上
实现:1.一级目录结构 2.二级目录结构 3.树形目录
- 文件的操作,目录的操作。
文件操作:建立文件、打开文件、读文件、写文件、关闭文件、删除文件、指针定位
目录操作:由系统调用实现
- 磁盘空间的管理。
位示图:利用一串二进制(bit)的值来反映磁盘空间的分配使用情况 空闲:0;分配:1
空闲链表:专门为空闲块建立的一张表,该表记录外存储器中全部空闲的物理块
空闲块链表:将外存储器中所有的空闲物理块连成一个链表,用一个空闲块首指针指向第一个空闲块,随后的每个空闲块中都含有指向下一个空闲块的指针,最后一块的指针为空,表示链尾。 效率低下
成组链接: 可迅速找到大量空闲盘块地址
- 文件系统的可靠性和安全性。
文件共享:文件可以同时使用、文件不允许同时使用 链接法(link)
文件保护:建立副本、定时转储、规定文件的存取权限
文件存取权限:1.存取控制矩阵 以一个二维矩阵来实施文件的存取控制
2.二级存取控制 设立两个存取级别
3.UNIX文件存取权限 ①对访问者分类识别 ②根据操作内容限定权限
文件保密:隐藏文件目录、设置口令、使用密码
- 文件系统的性能问题。
块高速缓存:系统在内存中保存一些磁盘块,这些磁盘块在逻辑上属于磁盘
合理分配磁盘空间:把有可能顺序存取的块放在一起,最好在同一柱面上
磁盘的驱动调度:1.移臂调度 先来先服务调度算法(FCFS)
最短寻道时间有限调度算法(SSTF)
扫描算法(SCAN)
循环扫描算法(C-SCAN)
2.旋转调度 •若干访问等待者请求访问同一磁道上的不同扇区
•若干访问等待者请求访问不同磁道上的不同扇区
•若干访问等待者请求访问不同磁道上的相同扇区
对于前两种情况,旋转调度总是为首先到达磁盘读写磁头位置下的扇区进行读写操作
对于第三种情况,由于这些扇区编号相同,又在同一个柱面上,所以它们同时到达读写磁头的位置下。这时旋转调度可任意选择一个读写磁头进行读写操作。
信息的优化分布:对于一些能预知处理要求的信息在磁盘上的记录位置,可以提高系统效率
RAID技术:
- Windows的文件系统FAT,UNIX的文件系统。
FAT:文件分配表(File Allocation Table)
引导扇区:包含用于描述卷的各种信息,利用这些信息才可以访问文件系统。
文件分配表:包含关于卷上每个簇的类型信息
根目录:一个位于磁盘上一个特殊的位置并且具有固定的大小。
V7:文件名(14字节)
I节点(2字节) 文件大小、三个时间、所有者、所在组、保护信息以及一个计数
- I/O设备管理
- 设备与设备分类。
设备:输入/输出设备(I/O设备)也称为外部设备
设备管理是操作系统总体性能的重要决定因素、重要表现指标和常见瓶颈之一。
分类:1.按设备的使用特性分类 I/O设备、存储设备
2.按设备的信息组织方式划分 字符设备、块设备
3.按设备的共享属性分类 共享设备、独占设备、虚拟设备
- I/O硬件组成。
结构:CPU和主存、总线、接口(适配器)、设备控制器、设备
数据传送控制方式:
程序直接控制方式:由用户进程直接控制内存或CPU和外围设备之间进行信息传送
CPU和外设的操作能得到同步,硬件结构简单;CPU效率低下,对异常无实时响应
中断控制方式:在发生了一个异常事件时,调用相应处理程序进行服务的过程
DMA方式:一种完全由硬件执行I/O数据交换的工作方式
操作均由硬件电路实现,传输速度快,减少CPU开销;初始化和结束仍由CPU控制
通道控制方式:一个特殊功能的处理器,有自己的指令和程序,可以实现对外部设备的统一管理和外围设备与内存之间的数据传送
选择通道、数组多路通道、字节多路通道
进一步减少数据输入输出对整个系统运行效率的影响
- I/O软件的特点及结构。
特点:设备独立性(设计I/O软件的一个最关键的目标)
结构:分层构造,把设备管理软件组织成为一系列的层次,其中低层与硬件相关,把硬件与较高层次的软件隔离开来。(中断处理程序、 、 、 )
设备驱动程序:直接同硬件打交道的软件模块,设备驱动程序中包括了所有与设备相关的代码。
与设备无关的系统软件:
用户空间的I/O软件:
- 典型技术:通道技术,缓冲技术,SPOOLing技术。
通道技术:一个有自己的指令和程序的特殊功能的处理器,实现对外部设备的统一管理和外围设备与内存之间的数据传送。 选择通道、数组多路通道、字节多路通道
缓冲技术:以空间换取时间,在设备使用不均衡时起到平滑作用。
SPOOLing(假脱机)技术:用磁盘设备作为主机的直接输入/输出设备,主机直接从磁盘上选取作业运行,作业的执行结果也存在磁盘上;相应地,通道则负责将用户作业从卡卡片机上动态写入磁盘,而这一操作与主机并行。类似的操作也用于打印输出用户作业运行结果。SPOOLing技术如下图所示。
SPOOLing技术示意图
这里需要指出,通道直接受主机控制,它们之间通过中断相互通信。假脱机技术为实现多道批处理系统中的多道程序设计思想提供了重要的基础。
- I/O性能问题及解决方案。
思路:使CPU利用率尽可能不受I/O的影响。
技术:1.通过应用缓冲技术,减少或缓解不同设备之间传输速度的差距。
2.通过应用异步I/O技术,使CPU计算不必等待I/O操作结果。
3.通过应用DMA和通道部件,使CPU摆脱I/O操作,与这些部件并行执行。
4.通过应用虚拟设备技术,提高独占设备的利用率。
- 死锁
- 基本概念:死锁,活锁,饥饿。
死锁:指在多道程序系统中,一组进程中的的每一个进程均无期限地等待被该组进程中的另一个进程所占有且永远不会释放的资源
活锁:没有出现死锁现象(因为没有进程阻塞),但在现象上看,好像死锁发生了
饥饿:指一个可运行的进程尽管能继续执行,但被调度器无限期地忽视,而不能被调度执行的情况。 可以通过先来先服务资源分配策略避免
- 死锁预防策略。
破坏“互斥条件”:如果资源不被一个进程所独占,那么死锁肯定不会产生。
破坏“不可剥夺”条件:一个进程在申请新资源的要求不能立即得到满足时便处于等待状态,而一个处于等待状态的进程的全部资源可以被剥夺。
破坏“请求和保持”条件:1.每个进程必须在开始执行前就申请它所需要的全部资源,仅当系统能满足进程的资源申请要求且把资源一次性分配给进程后,该进程才能开始执行。
2.仅当进程没有占用资源时才允许它去申请资源,如果进程已经占用了某些系统资源而又要再申请资源,则它应先归还所占的资源后再申请新资源。
破坏“循环等待”条件:采用资源有序分配策略,其基本思想是将系统中所有资源顺序编号,一般原则是,较为紧缺、稀少的资源的编号偏大。
- 死锁避免策略。
安全与不安全状态:如果操作系统能保证所有的进程在有限时间内得到所需的全部资源,则称系统处于“安全状态”,否则说系统是不安全的。
银行家算法:通过动态地检测系统中资源分配情况和进程对资源的需求情况来决定如何分配资源的,在能确保系统处于安全状态时才把资源分配给申请者,从而避免系统发生死锁。
- 死锁检测与解除。
检测:定时运行一个“死锁检测”程序,该程序按一定的算法去检测系统中是否存在死锁。
解除:如何让释放资源的进程能够继续运行。 剥夺资源、撤销进程
- 资源分配图。
资源分配图:进程的死锁问题可以用有向图更加准确而形象地描述。
资源分配图化简:若一个进程的所有请求均能被满足的话,可以设想该进程得到所需的全部资源,最终完成任务,运行完毕,并释放所占有的全部资源。
【大纲外内容】
计算机 系统 | 软件系统 (程序、数据) | 应用软件:文字处理、图形图像处理、科学计算、MIS等 |
支撑软件:数据库、网络、多媒体等 | ||
系统软件:操作系统、编译器等 | ||
硬件系统 | 中央处理器(CPU)、内存储器、 外存储器(磁盘、磁带等)、 输入/输出设备(键盘、鼠标、显示器、打印机等) |
计算机系统
- 研究操作系统的观点:
观点: 1.软件的观点 一种大型软件系统,是多种功能程序的集合(外在/内在特性)
2.资源管理的观点
3.进程的观点 进程可以看做运行中的程序(用户/系统进程)
4.虚拟机的观点 虚拟计算机 操作系统虚拟机
5.服务提供者观点
- CPU的构成: 运算器、控制器、寄存器、高速缓存
- 程序状态字(PSW) 指示处理器状态
程序计数器(PC) 指示下一条要执行的指令
- 程序的顺序执行:一个具有独立功能的程序独占CPU直到得到最终结果的过程
特点:顺序性、封闭性、程序执行结果的确定性、程序执行结果的可再现性
扫码关注本人微信公众号,有惊喜奥!公众号每天定时发送精致文章!回复关键词可获得海量各类编程开发学习资料!
例如:想获得Python入门至精通学习资料,请回复关键词Python即可。