操作系统学习(3)

122 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第23天,点击查看活动详情

1.线程定义:

定义:在引入线程的操作系统中,线程是进程中的一个实体,是处理器调度和分派的基本单位。线程自己基本上不拥有系统资源,只拥有少量在运行中必不可少的资源(如程序计数器、一组寄存器和栈等),但它可与同属一个进程的其他线程共享进程所拥有的全部资源。

特点:是程序执行的最小单位,基本不拥有任何系统资源(调度的基本单位)

调度的基本单位是线程,资源分配的最小单位是进程。

2.死锁定义、四条件、预防

定义:多个进程因竞争资源而造成的一种僵局,如果没有外力,这些进程将无法推进

死锁的发生必须具备下列四个必要条件:

(1) 互斥条件

(2) 请求和保持条件

(3) 不可抢占条件

(4) 循环等待条件

死锁的预防:

(1) 破坏循环等待条件

(2) 破坏请求和保持条件

(3) 破坏不可抢占条件

3.不安全状态和死锁关系

系统进入了不安全状态也不一定会导致死锁,死锁是不安全状态的真子集。

4.临界资源不会发生死锁
某系统中有 3 个并发进程竞争资源 R,每个进程都需要 5 个 R,那么至少有( )个 R,才能保证系统不会发生死锁。
A.12   B.13   C.14   D.15

解题方法:每个进程所需资源数 - 1,再相加,就是发生死锁的临界资源数
eg:进程P1,P2,P3,所需资源数分别为n1,n2,n3,则临界资源数为 (n1-1) + (n2-1) + (n3-1)

解题步骤:3个进程,每个进程需5个资源

临界资源数:(5-1)*3 = 12

每个进程都得到4个资源,即无法执行,也没有多余资源,于是就出现死锁。如果再有1个多余资源,不管给任何一个进程,该进程就可以执行;执行完之后释放出5个资源,于是其它进程也可以执行,就不会发生死锁
所以最小需要12 + 1 = 13个资源。

选B