SCAU 操作系统 期末复习

第一章、 第二章 知识点:

1、指令分类
指令动作
处理器—存储器:互传数据
处理器—I/O:完成与外部设备的数据交换
数据处理:执行算术操作或逻辑操作
控制:可以改变执行顺序

2、什么是中断
大多I/O设备比处理器速度慢
处理器必须暂停等待设备
中断即是打断处理器的正常执行顺序

中断的分类
a.程序中断
在某些条件下由指令执行的结果产生,例如算术溢出、 除数为0、试图执行一条非法的机器指令以及访问到用户 不允许的存储器位置
b.时钟中断
由处理器内部的计时器产生,允许操作系统以一定规律 执行函数
c.I/O 中断
由I/O 控制器产生,用于发信号通知一个操作的正常完成 或各种错误条件
d.硬件故障中断
由诸如掉电或存储器奇偶错误之类的故障产生

3、存储器金字塔
在这里插入图片描述
a.每位的价格递减;
b.容量递增;
c.存取时间递增
d.处理其访问存储器的频率递减。

4、Cache
问题: 处理器速度比存储器存取速度快
解决: 利用局部性原理,提供小而快的存储器- --高速缓存
在内存和CPU的寄存器之间分段移动数据,以提高 访问速度

在这里插入图片描述
高速缓冲原理:

1.必须包含部分内存数据副本;
2.检测处理的字是否在高速缓存中
         如果在,该字高速传递给处理器
         如不在,该字所在的整块数据读入高速缓存
3.据局部性原理,接着的多次访问很可能是该块中的其他字节

例题:Cache 环境的内存存取时间计算
Cache存储器存取时间为T1=0.1us,内存存取时间 为T2=1us,假设有95%的存储器存取发生在Cache 中,命中率H=0.95,则访问一个字节的平均存取 时间是多少?
解:
HT1+(1-H)(T1+T2) =0.950.1+0.05(0.1+1)=0.15us

第三章:进程

知识点

1、 进程与程序的区别
进程:
a.一个正在执行的程序
b.计算机正在运行的程序的一个实例
c.可以分配给处理器并由处理器执行的一个实体
d.由单一顺序的执行线索、一个当前状态和一组 相关的系统资源所描述的活动单元。

区别:
程序是静态的,进程是动态的
一个程序可以对应多个进程(各个进程的 数据集不同)

程序是静态的,进程是动态的,程序是存储在某种介质上的二进制代码,进程对应了程序的执行过程,系统不需要为一个不执行的程序创建进程,一旦进程被创建,就处于不断变化的动态过程中,对应了一个不断变化的上下文环境。

程序是永久的,进程是暂时存在的。程序的永久性是相对于进程而言的,只要不去删除它,它可以永久的存储在介质当中。

2、 进程的基本元素
进程可由三部分组成:
a.一段可执行的程序(代码)
b.所需的相关数据
c.程序的执行上下文(进程状态)

3、 进程切换的过程
a.何时切换进程
   时钟中断/I/O中断
   进程执行时间超过了最大允许时间段
b. 内存失效
   访问的虚拟内存地址不在内存中时,须从外存调入
c.陷阱(trap)
   错误或异常条件是否是致命的
   若是,当前进程转换到退出态,切换;
d.系统调用
   如打开文件,通常置为阻塞态

进程切换步骤(进程状态的变化)
a.保存处理器上下文环境:包括程序计数器和其他寄存器
b.更新运行态进程PCB:将进程的状态改变到另一状态(阻 塞或挂起),将该进程控制块移到相应的队列
c.选择另一个进程执行(选择哪一个?调度)
d.更新所选择进程的PCB,将进程变为运行态
e.更新内存管理的数据结构
f.恢复处理器中被选择的进程最近一次切换出运行状态时 的上下文环境(CPU寄存器内容)

进程切换的主要步骤:
(1) 就绪->执行:一个进程在du运行期间,不断地从一种状态转换到另一种状态,它可以多次处于就绪状态和执行状态,也可以多次处于阻塞状态。  
(2) 执行->就绪:处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。  
(3) 执行->阻塞:处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。  
(4) 阻塞->就绪:正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。  
处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。

4、 进程的五状态图(转换条件)
在这里插入图片描述
新建态:刚刚创建的进程,OS还没加到可执行进 程组,未进入内存;
就绪态:进程做好准备,有机会就执行,在内存
运行态:该进程正在执行,获CPU控制权
阻塞(等待)态:进程在某些事件发生前不能执行, 如I/O操作完成,仍在内存;
退出态:OS释放出的进程或自身停止的,或因某 种原因取消的

第四章:线程

知识点
1、 进程和线程的区别
a.进程是资源分配和抢占CPU的单位;所有线程 共享该进程的状态和资源,驻留在同一块地址 空间,可以访问到相同数据
b. 线程是进程内部最小的调度单位;一个进程可 产生多个线程,并发执行;
c. 线程不拥有系统资源,共享内存,线程通信和 切换开销小。

2、 线程的状态转换和进程状态的关系
所有线程管理由应用程序完成
线程库:例程包,用于创建和销毁线程的代码,线程间 通信的代码,调度线程执行的代码,保存和恢复上下文的 代码
内核不知道线程的存在,线程切换不需核心态特权

内核不知道线程的活动,但仍然管理进程 的活动
当线程调用系统函数时,整个进程阻塞
但对线程库来说,线程仍然是运行状态, 即线程状态是与进程状态独立的

优点:
a.线程切换不需内核态特权,节省了两次状态转换开销
b.调度算法可以为应用程序量身定做不需要对底层内核进行修改。  线程库是一组供所有应用程序共享的函数
缺点:
c.系统调用时会引起阻塞;
d.同一进程的多线程不能应用于多处理器

第五章:并发与同步

知识点:
1、 几大基本概念:临界资源、临界区、并发、并行、互斥、同步、死锁

临界资源:一次仅允许一个进程使用的共享资源; 如:打印机、变量、数组
临界区:进程访问临界资源的那段程序代码;
互斥:当一个进程在临界区访问临界资源时,其他进程不能进
入临界区。
同步:合作的并发进程需要按先后次序执行
死锁:多个进程等待其他进程的资源,形成循环等待链;
饥饿:一个进程呈可执行状态,被调度器忽视而不能调度执行。

并发的概念:
a.并发是指两个或多个事件在同一时间间隔内发生。在多道 程序环境下, 并发性是指在一段时间内宏观上有多个程序 在同时运行,但在单处理机系统中,每一时刻却仅能有一 道程序执行,故微观上这些程序只能是分时地交替执行。
b.并行是指两个或者多个事件在同一时刻发生。
c.多处理机系统中,可以并发执行的程序便可被分配到多个 处理机上,实现并行执行。

2、 进程间的关系(三种)
a.竞争关系
进程间相互不知对方存在
竞争:CPU、设备、内存等
影响:进程的结果与其他进程无关;会影响状态;
可能引发的问题:互斥 死锁
b.共享合作关系
进程间接知道彼此的存在
进程间通过共享某些资源(如:变量、文件)进行 合作,但不确切知道对方
多个进程可以同时读一个数据项,但是必须互斥写 操作
c.通信合作关系
进程直接知道对方的存在
进程间通过发送消息和接受消息来进行通信, 实现同步和协调各种活动;
传递消息时,进程间未共享资源,则不需互斥, 但可能会死锁或饥饿,通信成为临界资源

3、 信号量的使用
a) SemWait、SemSignal 原语定义(记住并理解)
semWait和semSignal必须成对出现
互斥时,位于同一进程,临界区的前后
同步时,交错出现于两个合作进程内
多个semWait的次序不能颠倒,否则可能导致死锁; 用于同步的semWait应出现在用于互斥的semWait 之前
多个semSignal的次序可以任意

b) 信号量的使用(结合例题、习题)
信号量的三个操作(重点)
1、一个信号量s可以初始化成非负数
用于互斥:s=1, 取值 -(n-1)~1;
s=1时,有一个临界资源可用,一个进程可进入临界区
s=0时,临界资源已分配, 正有进程在临界区内
s<0时,|s|个进程等待进入临界区
用于同步:s>=0
s>=0,可用资源的个数
s<0,|s|个进程等待资源
2、semWait(s) 进程请求分配一个资源,操作使信号量减1,若为负,进程阻塞,否则继续执行
3、semSignal(s)进程释放一个资源,操作使信号量加 1,若小于或等于0,则阻塞的进程被解除阻塞

i. 互斥
对每一个临界资 源设一个信号量 s表示,初始化 为1;
每个进程进入临 界区之前执行 semWait(s),退出 临界区之后执行 semSignal(s);
在这里插入图片描述
在这里插入图片描述

ii. 同步
对于同步,“一类资源”配一信号量s,初 始值为可用资源数量
如:s表示缓冲区的空闲状态
在这里插入图片描述

第六章:死锁

1、 死锁的条件
a.互斥
一次只有一个进程可以使用一个资源,其他进程不能访问
b.占有且等待
当一个进程等待其他进程时,继续占有已有资源
c.不可抢占
不能强行抢占进程已占有资源
d.循环等待
前三个条件的潜在结果
存在一个封闭的进程链,使每个进程至少占有此链中下一个进 程所需要的一个资源
其中a和b和c是必要条件,d是充分条件

2、死锁的处理方式(三种)
a.预防死锁:消除某一个条件的出现
b.避免死锁:不破坏条件,允许进程资源动
态分配,检查状态,保证不出现死锁
c.检测死锁:试图检测到死锁的存在并恢复
撤销死锁进程
剥夺资源

3、银行家算法属于哪一种?工作方式?
安全状态:至少有一个资源分配序列
<P1,P2,…,Pn>不会导致死锁, 即Cij-Aij<=Vj
不安全状态: 不存在任何安全序列
ps:具体内容看书

4、死锁检测算法
在这里插入图片描述

步骤:
1、标记A矩阵中全为0的一行;
2、初始化临时向量W=V; 3、查找未标记的进程i,其在请求矩阵Q中小于等于W,若无,终止 4、找到,标记进程i,并把A中相应的第i行加到W中,并返回3。

第七章 内存管理

1、 内存管理的基本技术:固定分区、动态分区、分页、分段 计算题:逻辑地址转化物理地址
1)固定分区:
系统将内存划分成若干边界固定的区域, 设定分区说明表;
分区大小相等:小于或等于分区大小的任 何进程可以装入可用分区
难点 :
程序可能太大不能放入一个分区—需要覆盖技术
内存利用率非常低—存在内部碎片
分区大小不等:
放置算法
把每个进程分配到能够容纳它的最小分区
使得分区内部碎片最少 调度队列保存换出的进程
每个分区一个队列
•容纳新进程的最小分区 •考虑优先级 •被阻塞的进程
缺点:
分区数目固定,限制了活动进程数目
分区大小事先设置,小作业不能有效利用分区 空间

2)动态分区
分区的长度和数目是可变的
进程被精确分配在相应的内存空间
放置算法:
在这里插入图片描述
分页:
内存被划分为固定大小的块—页框frame
进程也划分成同样大小的块—页page
此技术为每个进程浪费的空间仅仅是一小部分内部碎片
最后一页产生内部碎片
无外部碎片

例题:
页式存储管理系统中,某进程页表如下。已知页面大小为 1024字节,问逻辑地址600,2700,4000所对应的物理地 址各是多少?
在这里插入图片描述

答:逻辑地址600在0#页,放在7#页框。页内偏移地址为600。 对应的物理地址为:
600:7×1024+600=7768
2700在2#页,放在5#页框,页内偏移地址为 2700 mod 1024=652。 对应的物理地址为:2700:5×1024+652=5772
逻辑地址4000在3#页,越界

分段:
分段技术:把程序和其相关的数据划分到几个段中, 有长度限制,但不一定相等
逻辑地址=段号+偏移量
段大小不等,类似于动态分区
段表给出相应的段在内存中的起始地址和段的长度
段表的地址装入寄存器,供内存管理硬件使用

例题:
例:在一个简单分段系统中,包含如下段表:

对如下的每一个逻辑地址,确定其对应的物理地址或者说明段错误是否会发生: a. 0,198 b. 2,156 c. 1,530 d. 3,444 e. 0,222
在这里插入图片描述
答:
a.段0定位在660,所以我们有物理地址660+198=858. b.段2的起始地址是222, 222+156=378 c.段1长度为422, 530>422,越界,所以会发生错误 d.996+444=1440
e.660+222=882.

第八章

虚拟内存
虚拟内存的好处
提高系统利用率
  在内存中保留多个进程,系统并发度提高
    任何特定的进程都仅仅装入它的某些块
    任何时刻都至少有一个处于就绪态
  进程可以比内存的全部空间还大
    程序员:只能将程序分块,实施覆盖策略分别加载
    引入虚拟内存,由OS和硬件完成

1、虚拟分页
简单分页
 每个进程都有自己的页表
 页表项包含与内存中页框相对应的页框号

虚拟内存分页
 页表项需驻留位§来表示它所对应的页当前是否在内存中,
如在,还包括页框号
 页表项中还需另一个控制位(M)
 相应页的内容从上一次装入内存中到现在是否已改变 ( 如未变,该页换出时,不需要用页框中的内容更新该页)
 实现保护和共享所需的其它控制位
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
转换检测缓冲区
问题:虚存访问可引起两次物理内存访问,时间 加倍
 一次取相应的页表项
 一次取需要的数据
解决:使用一个特殊的高速缓存(TLB)保存页表
 包含最近用过的页表项

在这里插入图片描述
例题:
设内存访问需要100ns,转换检测缓冲区 TLB访问需10ns,TLB的命中率为90%,则 内存的有效访问时间是多少?
(110×0.9)+(210×0.1)=120 ns

设计页尺寸
 内部碎片:页越小,内部碎片的总量越少
 页表长度:页越多,页表越大
 磁盘开销:页越大,磁盘I/O开销越小
 缺页中断:页越多,缺页率越低
 辅存设备的物理特性:内存越大,页也增大, 实现有效数据块传递

2、虚拟分段
段表结构
 每个进程有一个唯一的段表
 段表项中有一位表明该段是否在内存—驻留位 ( 如在,则含有段起始地址和长度)
 修改位
 其它控制位
在这里插入图片描述
在这里插入图片描述

用户的地址空间划分成许多段,每个段依次划 分成许多固定大小的页,页的长度等于内存中 页框大小
 分页对程序员是透明的,消除了外部碎片
 分段对程序员是可见的,支持共享和保护
每个进程一个段表,每个段一个页表

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

3、置换算法(OPT,FIFO, LRU,CLOCK)
OPT
在这里插入图片描述
LRU
在这里插入图片描述
FIFO
在这里插入图片描述
Clock

在这里插入图片描述

第九章 调度

1、调度分类(长程、中程、短程)
长程调度:确定程序是否进入系统处理, 也叫作业调度;
中程调度:实施交换的同时,决定哪些进 程在内存和磁盘之间交换;
短程调度:内存中发生,决定下一个执行 哪个进程
在这里插入图片描述

2、调度算法(FCFS,RR,SPN,SRT,HRRN, MFB)
在这里插入图片描述
在这里插入图片描述

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

第十章

多处理器和实时调度 1、多处理器:FCFS+优先级 2、实时调度算法

第十一章

输入输出管理
1、 磁盘冗余阵列(RAID0、RAID1、RAID2)
2、 磁盘空间管理
第十二章 文件系统(不考核)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值