操作系统期末复习要点总结.docx
《操作系统期末复习要点总结.docx》由会员分享,可在线阅读,更多相关《操作系统期末复习要点总结.docx(60页珍藏版)》请在冰豆网上搜索。
操作系统期末复习要点总结
第一章
OS地位、作用和定义
地位:
操作系统在硬件之上,应用程序之下
操作系统是控制应用程序执行的程序,并充当应用程序和硬件间的接口。
操作系统(OperatingSystem)是最基本的系统软件。
它控制计算机的所有资源(系统的观点)并提供应用程序开发的基础(用户的观点)。
OS分类和发展历史
批处理系统用于科学计算等但是cpu利用率仍然不高因为I/O操作太慢
多道程序系统用多道程序设计实现(仍是批处理系统)
多处理器系统(并行系统):
优点:
增加吞吐量;规模经济;增加可靠性
类型:
非对称处理器(主从式);对称处理器(更普遍)
分时系统1/n的处理速度
实时系统按时完成
OS特征
并发,共享,虚拟,异步性
OS功能
进程管理,内存管理,文件管理,设备管理,与用户之间的接口
一些概念
现代操作系统是由中断驱动的
特权指令:
可能引起损害的指令
每个用户可以通过系统调用来执行特权指令,称之为软中断
监控程序(monitor)、多道程序系统、多处理系统、批处理、分时
监控程序:
监控程序包括服务器端和客户端在一台机器运行服务器程序客户端运行客户端程序可以动态监视服务器的屏幕能将鼠标和键盘事件传过去,能进行一般的操作
多道程序设计:
2个或多个作业同时进入主存
切换运行:
当一个作业需要等待I/O时,切换到另一个不在等待I/O的作业——让CPU保持忙碌
多道程序系统:
多道程序系统是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。
多处理系统:
有多个紧密通信的CPU,他们共享计算机总线,有时还有时钟、内设和外设等。
三个优点:
增加吞吐量、规模经济、增加可靠性
批处理:
批处理就是对某对象进行批量的处理
分时:
CPU还是通过在作业之间的切换来执行多个作业,但是由于切换频率很高,用户可以在程序运行期间与之进行交互。
引入多道程序设计的目的
通过把各种不同用户提出的CPU和IO设备请求相互交替的执行,更高效的使用CPU,通过不断让CPU工作来提高CPU的利用率。
研究操作系统的几种观点
系统观点:
用于资源管理器的操作系统
用户观点:
用于扩展机的操作系统
什么是双重操作模式?
为什么要引进双重操作模式
CPU有两种执行任务的模式
1.系统模式:
用于执行操作系统任务
2.用户模式:
用于执行用户任务
为何引入:
通过只能在系统模式下运行特权指令,可以保证操作系统时刻控制整个计算机系统,并保证关键数据的安全。
系统态、用户态以及转换的条件
用户态,算态,目标程序态(目态),常态
系统态,管态,核心态,管理态,特权态
每个用户可以通过系统调用的方式执行特权指令,操作系统视之为软中断。
特权指令和非特权指令
特权指令:
可以引起损害的指令
硬件保护机制
所有I/O指令都是特权指令
用户只能通过OS进行I/O—系统调用
确保用户程序不能获得管理模式
第二章
用户与OS的两种接口:
定义和功能
命令接口:
由一组键盘操作命令和命令解释程序组成
程序接口:
为了用户访问系统资源而设,用户程序获取操作系统服务的唯一途径:
系统调用
系统调用:
定义、功能
系统调用提供了操作系统提供的有效服务界面,提供了进程与操作系统之间的接口.
功能:
允许用户级进程请求操作系统服务。
分类:
进程控制,文件管理,信息管理,设备管理,通信
操作系统的结构有几种?
各自的特点?
结构:
1.整体式系统:
一系列过程的集合,只要需要,就可以相互调用
2.层次式结构:
实现模块化,相对效率差
3.C/S结构:
易于维护,易于扩充,适用于分布式系统
4.虚拟机结构:
提供了安全层
操作系统特征
并发,共享,虚拟,异步性
几个概念
Shell、系统调用、虚拟机、陷入、陷入与中断的区别
虚拟机:
是硬件的完全拷贝。
Shell:
解释程序
陷入:
陷入与中断:
中断是异步的,因为从逻辑上来说,中断的产生与当前正在执行的进程无关。
陷入是异常之一,异常是由当前正在执行的进程产生。
陷入的最主要的应用是在调试中,被调试的进程遇到你设置的断点,会停下来等待你的处理,等到你让其重新执行了,它当然不会再去执行已经执行过的断点指令。
第三章
进程
定义:
进程指一个正在执行的程序,包括程序计数器、寄存器和变量当前值
(程序是被动的实体,进程是活动的实体)
(进程可中断)
(同一程序处理不同数据级时,可以构成不同的进程)
特征:
动态性,并发性,独立性,异步性,结构特征(进程映像)
程序顺序执行:
程序并发执行:
程序顺序执行、并发执行的特点;
进程与程序的区别与联系
进程是一个正在执行的程序
进程是一个活动的实体,程序是一个被动的实体
进程不只是程序代码,还包括当前的活动(用CPU各种寄存器的内容表示)以及堆栈段和数据段
进程状态(三状态和五状态)及其转换
五状态:
新:
新进程正在被创建
就绪:
只要有机会获得CPU就开始执行
运行:
进程正在被执行
等待:
等待某个事发生
终止:
进程已经完成或者被迫终止
PCB:
作用及其内容
PCB:
进程控制块,包含许多与一个特定进程相关的信息
内容:
进程标识
进程状态信息
进程控制信息
进程控制
主要功能;创建、撤销、挂起、唤醒、阻塞、激活等原语所需完成的功能;
进程在执行过程中通过系统调用创建。
Fork()由于代码相同,父子共享存储空间
Execve()必须重新分配空间(windowsCreateProcess())
了解fork()和exec()的工作原理
进程通信的几种方法
共享内存和消息队列
消息队列、共享内存
进程在内存中由四个部分组成
1.PCB
2.程序
3.数据
4.系统堆栈
第四章
什么是线程?
为什么要引进线程?
线程:
又称为轻量级进程,是使用CPU的基本单元,由线程ID、程序计数器、寄存器集合和堆栈组成。
属于同一进程的线程共享进程的代码段、数据段和其他操作系统资源。
引入进程的目的
使多个进程并发执行
改善资源利用率
提高系统吞吐量
引入线程的原因
程序并发执行时所付出的时空开销↓
使OS具有更好的并发性
线程是调度的单位
进程是资源的拥有者
线程和进程的区别?
优点:
响应度高
资源资源共享
经济
多处理器体系结构的利用
线程的实现方式
用户级线程
内核级线程
用户级线程和内核级线程
第5章CPU调度
调度的几种类型
长程调度、中程调度、进程调度
长期调度—确定把哪个作业放到内存中执行。
中期调度—主要在分时系统中使用。
将内存中的作业换出到外存中等到内存允许的情
况下再换入到内存中执行。
短期调度—从就绪队列中选择进程执行并把CPU分配给它。
调度队列
可剥夺调度和不可剥夺调度:
定义和特点
调度的四种时机:
1.运行的进程-->终止
2.运行态-->等待态:
ex:
因请求I/O而阻塞;调用wait等待子进程终止
3.运行态-->就绪态
4.等待态-->就绪态
非抢占调度:
仅在第1.2种情况下才进行调度
一旦把处理器分配给某进程,就让他一直执行,直到它完成或因等待某事件而阻塞
特点:
实现简单,系统开销小,无需特别硬件支持
适用大多数批处理系统
可抢占调度:
发生在调度时机的各种情况
特点:
避免一个进程独占处理器时间过长-->可能对所有进程提供较好服务
系统开销增加
调度算法的性能评价准则
准则:
公平、CPU使用率(保证一直在工作)、响应时间(交互用户响应的时间尽可能短)
周转时间:
T(执行完)-T(进入系统)
等待时间:
进程在各种队列中等待时间的总和
吞吐量:
使每小时处理的作业数最多
评价:
1、批处理系统周转时间很重要
2、分时系统响应时间短很重要
调度程序的功能、时机;
进程由执行到等待
进程由执行到准备就绪
进程终止
进程由等待到准备就绪
调度算法:
FCFS、SJF、RR、优先级、多级队列、多级反馈队列、HRRN—优点和缺点、适用场合
要求会计算:
调度顺序、周转时间、平均周转时间
周转时间(Tq)=完成时间(finishtime)-到达时间(arrivetime)
Tq/Ts(服务时间)
FCFS:
先到先服务按到达持续先后调度
对长进程有优势利于多处理器处理的进程不利于多I/O处理的进程
SJF:
最短作业优先
需要知道或者估计进程会执行多长时间可能会是长进程产生饥饿不适合在实时系统中使用
RR专为分时系统设计时间片太短:
开销大太长:
变成FCFS
优先级(非抢占式调度算法)
高响应比优先调度算法(HRRN)
响应比=(A+B)/B
A:
等待处理器的时间
B:
期望服务的时间
第6章进程同步
进程同步与互斥
概念
竞争条件:
两个或两个以上的进程共享数据,而最终的执行结果则是根据执行次序而决定的,这种情况成为竞争条件(解决方法:
控制对共享资源的访问)
临界资源:
多个进程可同时读写共享的数据
临界区:
程序使用临界资源的部分称为临界区
信号量:
两个或者多个进程可以用信号的方法进行协作。
进程可以在任何地方停下来以等待收到特定的信号,这种信号的实现叫做信号量。
同步:
忙等待:
持续检测一个变量知道它具有某一特定值
互斥:
如果有程序在临界区中执行,那么其他进程都不能在临界区中执行。
这样可以避免竞争条件的发生。
进程间的制约关系(直接、间接)
互斥问题
死锁:
两个或者多个进程无限期等待一个事件的发生,而这个事件只能由这些等待的进程之一来实现。
饥饿:
无限期阻塞
准则
实现方法:
硬件、信号量(软件方法不要求)
硬件互斥:
系统提供了特殊硬件指令允许原子地检查和修改字的内容或者交换两个字。
信号量:
两个或者多个进程可以用信号的方法进行协作,进程可以在任何时候停下来等待收到特定的信号。
信号量:
定义、含义、操作(初始化,P,V)
进程同步与互斥问题
生产者与消费者
semn=0;//用于表示缓冲区不为空=1
sems=1;//用于缓冲区无人操作
seme=N;//缓冲区当前剩余长度
voidproducer()
{
While
(1)
{
Produce();
Wait(e);
Wait(s);
Append();
Signal(s);
Signal(n);
}
}
Voidconsumer()
{
While
(1)
{
Wait(n);
Wait(s);
Take();
Signal(s);
Signal(e);
Consume();
}
}
其他
第7章死锁
死锁
定义:
如果一个进程集合中每一个进程都在等待只能由本集合的另一个进程才能引发的事件,则称这种状态为死锁
发生原因、4个必要条件
互斥
拥有并等待
资源不可抢占
环路等待
如果没有环,那么一定没有死锁。
掌握解决死锁的方法:
预防:
破坏四个条件之一
直接预防:
预防第四个产生死锁的条件(环路等待)。
间接预防:
预防前三个产生死锁的条件
预防互斥-----不可取!
避免:
仔细检查动态资源分配
死锁的避免是允许前三个条件的发生,但不允许后用一种机制来防止到达死锁的状态。
掌握银行家算法:
如何判别安全性
第8章内存管理
(1)
存储器管理程序的功能
逻辑地址:
CPU生成的地址
物理地址:
内存单元的地址是物理地址
地址重定位:
逻辑地址向物理地址转换的过程就是重定位
地址映射的概念:
连续内存分配(固定分区、可变分区):
固定分区:
把存储器分为若干大小相等的区
(因调入数据小于分区而产生的分区空间浪费,叫做内部碎片)
可变分区:
一开始运行的很好,但是经过一段时间后,会出现外部碎片
BUDDY是两者的结合
内存管理方法---链表的内存分配方法:
每个表项:
p或h表示是进程还是空闲
起始地址
段长度
指向下一个表项的指针
First-Fit:
从头到尾扫描,选择第一个足够的空间
Best-Fit:
找一个最接近需求的空间(空间小到大排)
Worst-Fit:
总是分配最大的空闲区(空间大到小排)
页式管理:
原理、数据结构、地址、地址映射过程、特点
把主存分为定长的块,成为页框
把用户进程也分为与主存大小相等的块,称为页
内部碎片只在进程的最后一页产生,没有外部碎片
(产生的碎片小,共享和保护不容易实现)
MMU内存管理单元用于把虚拟地址转化为物理地址
页表用于显示进程中每个页在主存的哪个页框中
逻辑地址由页号和页内地址偏移组成
页表寄存器PTR用于存放页表在内存中的起始地址和长度
碎片(内碎片,外碎片),怎么产生,如何解决?
因为调入数据小于分区而产生分区空间的浪费,成为内部碎片
在分区之外的碎片,成为外部碎片
内存紧缩解决
逻辑地址向物理地址的转换过程就是重定位
紧缩
亦称作称作“紧凑”、“移动”
段式内存管理
原理、数据结构、地址组成、地址变换、特点
不同段的长度不同,段的长度可以在运行中进行改变
产生的碎片浪费存储空间,共享和保护容易实现
段页式内存管理
原理、数据结构、地址组成、地址变换、特点
将用户的地址空间分段,段内按内存页框的大小分页
虚拟地址按段号,段内页号,和页内位移三部分组成
覆盖与交换:
原理、特点、比较
覆盖:
在任何时候,都只能在内存中保留所需要的指令,新的指令可以覆盖不要的指令和数据。
不需要操作系统的特别支持。
交换:
在内存不足的情况下,需要把一个进程整个换入和换出(进程分配固定的交换空间)
第9章虚拟内存
虚拟存储器
概念、原理、实现方法、理论基础(局部性原理)
概念:
在一个新进程那个投入运行之前,OS只把开始时需要的几页/段装入内存,进程启动运行,其余部分留在磁盘上。
进程运行时,如果欲取的指令或要访问的数据已在内存,则继续执行。
如果不在内存(缺页/段)OS负责把所需的页/段调入内存,然后进程继续执行——请求调入。
如果内存已满,OS选择内存中暂时不用的页/段,调出到磁盘上;腾出内存空间后,再调入需要的页/段——置换功能
原理:
允许仅把进程的一部分装入内存就可运行进程,具有请求调入和置换功能,从逻辑上扩充内存容量(用户看到的):
容量巨大的存储器——虚拟。
使用户逻辑存储器与物理存储器分离。
实现方式:
请求分页系统/页式虚拟存储系统
分页+亲求调页+页面置换
请求分页系统/段式虚拟存储系统
分段+请求调段+分段置换
段页式虚拟存储系统
段页式+请求调页+页面置换
理论基础:
局部性原理
在一段时间内,程序的执行仅限于某个部分,所访问的存储空间也局限于某个区域
虚拟存储器的特征
离散性
内存的分配方式——离散
多次行
进程执行时不必全部装入内存-->进程被分成多次调入内存
对换性
在进程执行过程中,暂时不需要的代码和数据被换出,换入需要的部分
进程的换入换出
虚拟性
从逻辑上扩充内存容量-->用户看到的
请求页式管理
基本原理:
当需要一页时,才把该页调入内存
调页程序/页面调度程序
只调入需要的页,
进程装入需要I/O量减少
进程需要的内存空间减少
内存可以容纳更多用户进程
什么是缺页中断、发生时机及处理过程
缺页/页故障/页错误
进程执行时,要访问页不在内存
缺页中断
OS响应缺页中断,把所需页面调入内存
发生时机:
在指令执行期间产生中断信号,并被处理
处理过程:
引起缺页中断的指令被重新执行
置换策略(OPT、FIFO、LRU):
计算缺页次数、缺页中断率、判别是否有Belady异常
页面置换的缺页处理基本流程:
1.查找所需页面在磁盘上的位置
2.找到一个空闲页框,
如果没有,
(1)应用页面置换算法选择一个“牺牲”页框
(2)如果“牺牲”页框中的页被修改过,把它写回磁盘
(3)更新页表和页框表
3.将所需页面读入空闲页框,更新页表和页框表
4.重启进程(导致缺页的指令)
LRU:
最近最少使用
OPT:
理论最佳算法
FIFO:
先进先出算法
逻辑地址到物理地址转换
存储的共享与保护方法
保护:
存储区域保护和存储方式保护
什么是TLB?
其作用?
描述带有TLB的地址转换过程
TLB(快表):
传输后备缓冲器是一个内存管理单元
作用:
用于改进虚拟地址到物理地址转换速度的缓存
页式地址=页面其实地址+页内偏移地址
什么是Belady异常?
哪一种算法会产生?
为什么?
缺页率随页框分配的数量增加而增加FIFO页置换
请求段式管理的原理
请求分段系统是在分段系统的基础上,增加了请求调段及分段置换功能后形成的,以分段作为换入、换出的单位。
虚拟段页式
原理
地址转换
什么是颠簸(抖动)?
为什么会出现?
进程不断的缺页、调页,几乎不能完成有效工作
分配给进程的页框数<进程当前运行需要的页面数
原因:
CPU利用率低-->增加多道程序度-->每个进程的页框数更少-->缺页次数更多-->CPU利用率更低
第10章文件管理
概念:
文件、目录、目录项、记录、域、文件管理系统、路径、当前路径
文件:
记录在外存上的相关信息的具有名称的集合
目录:
文件属性的集合,本身也是文件
目录项:
记录:
一组相关的域的集合,用于描述一个对象某方面的属性
域:
基本数据元素
一个域包含一个值
描述一个域:
数据类型、长度
域的长度:
固定的,可变的
文件管理系统:
操作系统的一部分;最可见的部分
路径:
当前路径:
文件系统的功能和目的
OS中负责操纵和管理文件的一整套设施
方便用户“按名存取”
实现文件的共享和保护
为用户提供管理各种文件的方法
存取方便、格式统一、安全可靠
功能:
文件管理——创建、删除、打开、关闭、读、写、执行
目录管理
文件存储空间管理
文件的共享和保护
提供方便的接口
文件的组织(逻辑)结构:
类型、特点
文件的逻辑结构/文件组织
文件中记录的组织结构由用户访问记录的方式决定
从用户观点出发观察到的文件组织形式,用户可以直接处理的数据和结构,独立于物理特性
文件的物理结构/存储结构
文件在辅存上的存储组织方式,与存储介质的存储性能有关,依赖于组块策略、文件分配策略
两大类型:
有结构文件/记录文件
用户对文件内的信息按逻辑上独立的含义再划分信息单位——记录
由一个以上的记录构成
定长记录
变长记录:
域的数目不同,域的长度不定
无结构文件/流式文件
用户对文件内的信息不再划分可独立的单位
整个文件由一串顺序的字符流组成
文件的存取方法
访问文件中信息的方式
典型的存取方式:
顺序存取:
一个记录接着一个记录
直接存取/随机存取
文件由定长的逻辑记录组成
程序可以按任意次序访问记录
基于随机存取设备
索引存取
文件存取控制矩阵与文件存取控制表(FCB相关
文件控制块
FCB
用于描述和控制文件的数据结构
包括了文件名和文件的各种属性
文件控制块与文件一一对应
文件目录/目录
文件控制块的有序集合
一个文件控制块就是一个文件目录项
一个文件目录也被看作是一个文件,称为目录文件
第11章文件系统实现
文件系统的层次结构
I/O控制
组成
设备驱动程序
中断处理程序
任务
内存<-->磁盘
基本文件系统
向设备驱动程序发命令
文件组织模块
掌握关于文件机器逻辑记录和物理块的信息
文件的分配和位置
逻辑记录<-->物理块
磁盘空闲空间管理
逻辑文件系统
管理关于文件系统结构的信息——元数据
文件控制块(FCB)
负责文件的保护和安全
文件分配方法
三种方法:
原理、优缺点
连续分配:
原理:
每个文件占据磁盘上一组连续的物理块
优点:
实现简单,只需记录起始位置(块号)和长度(块数)
缺点:
难以预知文件的大小;文件扩展困难;空间浪费(碎片)
链接分配:
(文件——磁盘物理块的链表
原理:
一个文件的物理块可以分布在整个磁盘
目录项记录起始块号和终止块号
每个物理块中包含指向下一块的指针——块号
仅供系统使用
优点:
解决了连续分配的全部问题
没有空间浪费
不需要事先知道文件大小
文件大小可以增长
缺点:
不能有效支持随机访问;下一块指针占用物理块空间;可靠性
索引分配:
原理:
把所有块指针一起放到一个位置——索引块
每个文件有自己的索引块
索引块——磁盘块地址的数组
索引块第i个条目——文件第i个物理块的块号
文件目录项包括索引块的地址(块号)
优点:
支持随机访问
没有外碎片
充分利用磁盘空间
缺点:
索引块中空间的浪费
索引块多大合适?
多级索引分配
目录项-->一级索引-->二级索引-->数据块
Unix的i节点的定义
索引节点包含(13*n)字节的地址信息
第1~10个——指向文件的头10块(直接地址)
第11个——指向一个单重索引块
第12个——指向一个双重索引块
第13个——指向一个三重索引块
n的大小由系统决定
磁盘存储空间管理方法
位图、空闲块链接、空闲目录、成组块链接法、空闲目录/空闲表法
位图:
使用一个向量表示磁盘的分配情况
向量的每一位对应一块
0-已分配
1-可用
向量的长度取决于辅存的容量
空闲块链接:
特殊的空闲块——保存n个自由块的地址
前n-1个块是实际的空闲块
最后一个又是特殊的空闲块
成组块链接法:
难点:
多级索引分配、成组块链接法
第12章大容量存储结构
磁盘组织结构
磁道t:
磁盘片的表面被逻辑地划分成圆形磁道
扇区s:
磁道再进一步划分为扇区
柱面c:
位于同一磁臂位置的磁道集合形成了柱面
一次磁盘存取操作的时间组成
Ta=Tseek+Trd+Ttransfer
旋转延迟时间:
指定扇区移动到磁头下面所经历的时间
Trd=1/(2r),r为磁盘转速(转/s)
传输时间:
把数据从磁盘独处,或向磁盘写入所经历的时间
Transfer=b/(rN)
b:
欲读写的
磁盘调度算法
先进先出FIFO/先进先出FCFS
最短寻道时间有限(SSTF)
SCAN算法
C-SCAN算法
电梯算法/LOOK
C-LOOK
访问顺序,移动距离
第13章I/O系统
什么是缓冲?
为什么要引入缓冲?
缓冲是用来保存两个设备之间或在设备和应用程序之间所传输数据的内存区域
理由:
1.处理数据流的生产者与消费者之间的速度差异
2.协调传输数据大小不一致的设备
3.支持应用程序I/O的复制语义
区分独占设备、共享设备、虚拟设备
独占设备:
在一段时间内只允许一个进程或线程访问
共享设备:
在一段时间内允许多个进程或线程同时访问
对于每一时刻仍只允许一个进程或线程访问
通常是可寻址、可随机访问的设备
虚拟设备:
通过虚拟技术把一台独占设备变换为若干台逻辑设备,供若干个用户(进程)同时使用,经过虚拟技术处理的设备,称为虚拟设备。
理解对共享设备可同时使用的含义;
见上一条
简述实现虚拟设备的基本条件,虚拟设备的实现原理
采用Spooling技术后,每个作业都感到各自拥有独占使用的设备
Spooling技术:
将一台独占设备改造成若干台逻辑设备,供若干个用户同时使用(像共享设备一样)
经过这种技术处理后的设备成为虚拟设备
解释Spool