东北大学操作系统总结 死锁

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Chapter 8:死锁

Deadlock characterization

死锁四个条件:

①Mutual exclusion

②Hold and wait

③No preemptive

④Circular wait

检测

资源分配图Resource allocation graph

没有环,no deadlock!

有环,每个资源只有一个实例,deadlock!死锁。

预防

Mutual exclusion

Hold and wait

No preemptive

Circular wait

避免

安全状态

找到安全状态——>safe state

Unsafe 也不一定死锁

两种算法:

a.资源分配图Resource allocation graph algorithm

每种资源只有一个实例。

b.银行家算法Banker's algorithm

计算

恢复

Process termination

Resource preemption

区别:

调度starvation

死锁starvation

Chapter 9:内存管理

Overlays覆盖

Swapping 交换

MMU (memory management unit)内存管理单元

内存分配方式

内存必须容纳操作系统和多个用户程序。

连续内存分配contiguous memory allocation

内存分为两个区域:

一个驻留操作系统,通常放在低内存之中(受中断向量interrupt vector位置影响)。

另一个用于用户进程,放在高内存中。

每个进程在存储中都获得一个单一连续的部分。

为了内存保护:

重定位寄存器

界限寄存器

Hole(孔)

计算first-fit best-fit worst-fit(三个算法都会产生外部碎片)

Fragmentation 碎片

外部碎片:总的内存之和可以满足请求,但并不连续。

内部碎片:进程分配的内存可能比所需要的要大一些。这两数字之差是内部碎片。这部分内存在分区内,不能使用。

减少外部碎片方法——缩紧compaction:

①条件:只有在relocation是dynamic的时候。

②移动内存内容,将所有空闲内存合成一整块。

非连续内存分配noncontiguous memory allocation

分页& 分段(segmentation)不产生外部碎片

Paging 分页

将内存分为相等大小的页(equal sized pages)

Frames :physical

Pages :logical

Clusters

大小相等

Page table:存放每页的物理帧首地址。

Physical address = logical address + offset

L addr = page number + offset

P addr = frame number + offset

计算地址题

Page table

小而快的寄存器;存在main memory 中;基表寄存器(PTBR)指向页表。

实现:

TLB 翻译后备缓冲器

页表的一部分。

先在TLB中寻找,没有,则在page table中找。

高命中率——>高效率

计算hit rato

页表结构:层次划分页表

Hash页表(地址空间>32 bits)

反向页表

Shared page:代码共享,数据不共享。

段式

分为不同大小的段

计算章末作业题!

Chapter 10 virtual memory虚拟内存

帧的分配

全局置换和局部置换的区别

Global replacement:

1、允许一个进程从所有帧的集合中选择一个置取帧,不管这个帧当前是否已分配给其他进程。

2、可以增加分配的帧的数量

3、不可以控制页错误率(page-fault rate)

4、更好的系统吞吐量Greater system throughput.

常用!better choice!

Local replacement:

1、要求每个进程仅在自己的分配帧中进行选择。

2、不会增加分配帧的数量。

3、可以控制页错误率。

Thrashing 颠簸

Concept:进程在换页上的时间多于执行时间,这个进程在颠簸。Cause:如果CPU利用率太低,(utilization too low)则引入新程序,以增加多道程序的度。采用全局置换算法,它会从其他进程中取帧。而其他进程也需要这些帧,所以会出现页错误。进程等待调页设备,CPU利用率会降低。从而引起进程的颠簸。

分配的帧数小于局部的大小,则它不能将经常使用的页放在内存中,

进程会颠簸。示意图。(多道程序的度,利用率)

Solution:

Working-set model工作集合模型(clumsy 不灵活)

Page-fault frequency页错误频率

(目的:防止thrashing。控制页错误率。)

为所期望的页错误率设置上限和下限。如果实际页错误率高于上限,则为进程分配更多帧;。如果实际页错误率低于下限,则从进程中移走帧。

相关文档
最新文档