【操作系统】操作系统学习总结

1,概念

1)操作系统特征

并发性
共享性
虚拟性(把一个物理实体变成若干个逻辑上的对应物)
异步性

2)OS体系结构

单体结构
层次结构
虚拟机结构
C/S结构
微内核架构

3)进制转换

4)全局变量和局部变量

全局变量分配在全局数据段并且在程序开始运行的时候被加载, 局部变量则分配在堆栈里面。

2,

3,内存管理

1)页式内存管理

运行进程的物理地址空间连续。页面的大小由硬件的地址结构决定。

①基本原理

把用户程序的地址空间划分为若干个大小相等的页,页号从0开始把内存空间划分为若干和页面大小相等的物理块,即内存块。每个物理块有编号,从0开始。

②地址映射

页表

通常 存储再内存中。
页号,物理块号。
实现了逻辑地址到物理地址的映射。

地址结构

逻辑地址由页号和页内偏移地址组成。
物理地址为:块号*块大小 + 偏移地址。

计算

逻辑地址2052,页大小1KB,页表如下,求物理地址。
如图:2052/1024(1KB) = 2;2015%1024=4;分页机构为页号p=2、偏移w=4。
根据页表可知第二页对应物理块号为7.
则物理地址为7*1024+w = 7172
【操作系统】操作系统学习总结_第1张图片

③页面置换策略

④优缺点

分页内存管理不会产生外部碎片,但是会产生内部碎片。
如果进程要求的内存不是页大小的整数倍,那么最后一个物理块就用不完,从而导致页内碎片。
另一个有点是可以共享共同的代码。

⑤快表(联想寄存器)

为了加快逻辑地址和物理地址转换过程中地址变换速度,在地址变换机构中增设一个有并行查询能力的特殊告诉缓冲 存储器,即快表。
快表用来存放当前访问的那些页表项。

变换步骤:
i>在CPU给出的有效地址后,地址变换机构自动将页号p送入高速缓冲寄存器中,并将此页号与高速缓存中的所有页号进行比较。
ii>如果其中有与此页号匹配的,便表示所要访问的页表项在快表中。
iii>直接从快表中读出该页号所对应的物理块号,并送到物理地址寄存器中。
iv>如果在快表中未找到相同的页表号,则必须再访问内存中的页表,从页表中找到该页号所对应的页表项后,把页表项中独处的物理块号送入地址寄存器。
v>同时,将此页号所对应的页表项存入快表中,即重新修改快表。

⑥页面更新算法

2)段式内存管理

3)虚拟内存

能加快虚实地址转换的是:I .增大块表 (TLB) 容量 II .让页表常驻内存

4)交叉存储器

交叉存储器实质上是一种模块式存储器,它能并行执行多个独立的读写操作。
交叉存储器的每个模块都有自己的MAR和MDR。
交叉存储器的每个模块的地址是不连续的,相邻地址的单元位于相邻的模块。

4,I/O管理

5,文件管理

6,死锁

1)死锁原因

进程间竞争资源和进程推进顺序非法。

2)死锁必要条件

满足以下4个条件,就会引起死锁。

①互斥条件

指进程对所分配到的资源进行排他性使用,即一个资源每次只能被一个进程使用。

②占有且等待

一个进程在请求新资源而阻塞时,对已获得资源又保持不放。
即:进程不是一次性获得所需所有资源,而是在占有一部分时申请新资源。

③不可抢占条件

以及分配的资源不能从相应的进程中被强制抢占。
即:资源只能在进程完成任务后自动释放。

④环路等待条件

存在一个进程-资源的环状链,循环等待。

不发生死锁的条件:至少保证一个进程获得全部资源。
举例:N个进程共享11台打印机,每个进程要3台,N的取值不超过多少时,系统不会发生死锁?
最坏的情况是1个进程获取3台打印机资源,另外N-1个进程获取到2台打印机,等待获取第3台。所以3+(N-1)*2 = 11,N=5

3)无死锁策略

①死锁的预防

破坏产生死锁的4个条件之一。

②死锁的避免

在资源动态分配过程中使用某种算法防止系统进入不安全状态,从而避免死锁发生。

③死锁的检查

采取适当措施,从系统中将已发生的死锁清除掉。

④死锁的解除

撤销或挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞态的进程,使之转为就绪态,以继续运行。

4)死锁算法

A.避免死锁

银行家算法

B.解除死锁

消进程法

C.预防死锁

资源静态分配法

D.检测死锁

资源分配图简化法。
所谓化简是指一个进程的所有资源请求均能被满足的话 , 可以设想该进程得到其所需的全部资源 , 最终完成任务 , 运行完毕 , 并释放所占有的全部资源 . 这种情况下 , 则称资源分配图可以被该进程化简 . 加入一个资源分配图可被其所有进程化简 , 那么称改图是可化简的 , 否则称改图是不可化简的
化简的方法如下 :
(1) 在资源分配图中 , 找出一个既非等待又非孤立的进程结点 Pi, 由于 Pi 可获得它所需要的全部资源 , 且运行完后释放它所占有的全部资源 , 故可在资源分配图中消去 Pi 所有的申请边和分配边 , 使之成为既无申请边又无分配边的孤立结点 .
(2) 将 Pi 所释放的资源分配给申请它们的进程 , 即在资源分配图中将这些进程对资源的申请边改为分配边 .
(3) 重复 (1),(2) 两步骤 , 直到找不到符合条件的进程结点
经过化简后 , 若能消去资源分配图中的所有边 , 使所有进程都成为孤立结点 , 则改图是可完全化简的 , 否则不可化简的 .

你可能感兴趣的:(操作系统)