开启掘金成长之旅!这是我参与「掘金日新计划 · 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