yifangzhuhou

导航

今日刷题总结22

死锁

(1)产生死锁的原因:

a)系统资源不足。

b)进程运行推进的顺序不合适。

c)进程间资源分配不当

系统资源充足则所有进程的资源需求都能够满足,否则就有可能因为争夺有限资源而陷入死锁。进程推进的顺序与速度不同也可能会导致死锁。

(2)导致死锁的4个必要条件:

a)互斥条件:一个资源每次只能被一个进程占有。

b)请求与保持条件:一个进程因请求资源而阻塞时,不会释放已经占有的资源。

c)不可剥夺条件:进程占有的资源在没有使用完毕前不能被强占。

d)循环等待条件:若干进程之间形成一种头尾相连的循环等待资源关系。

(3)处理死锁的方法

a)死锁预防:破坏死锁4个必要条件中的一个或几个。

b)死锁避免:进程启动拒绝,资源分配拒绝(银行家算法)。

c)死锁检测与解除:剥夺资源与撤销进程等。

计算机启动过程

(1)BIOS

计算机通电后,从ROM芯片中读取BIOS(Basic Input/Output System),然后执行以下步骤:

a)硬件自检:BIOS程序首先检查计算机硬件是否满足基本运行条件,满足的话屏幕会出现CPU、内存以及磁盘的相关信息。不满足主板就会根据不同问题发出不同的蜂鸣声,并终止启动。

b)启动顺序:硬件自检完成后,BIOS要将控制权转交给下一阶段的启动程序,这个启动程序存放在哪一个设备中是根据外存设备的顺序决定的,BIOS优先将控制权转交给排在前面的设备。

(2)主引导记录:BIOS按照启动顺序,把控制权转交给排在第一位的外存设备,即根据用户指定的引导顺序从软盘、硬盘或移动设备中读取启动设备的MBR,并放入指定位置(0x7c000)的内存中。MBR存放在启动设备的第一个扇区中(即最前面的512字节),如果MBR的签名(即最后第一个扇区的最后2字节)是0x55和0xAA,说明启动设备可以启动,否则控制权将移交给下一个位置的设备。

a)MBR(主引导记录)的结构:它的主要任务是告诉计算机操作系统在硬盘的位置。MBR由3部分构成,1~446字节为调用操作系统的机器码,447~510字节为分区表,511~512字节为MBR签名。

b)分区表:它的作用是将硬盘分区,每个分区可以安装不同的操作系统,MBR需要知道将控制权转交给哪个分区。分区表总共64字节,平均分成4部分,每一部分称为主分区,如果主分区的第一个字节是0x80,说明该主分区是激活分区,MBR要将控制权转交给该主分区。

(3)硬盘启动

此时计算机的控制权要转交给硬盘的某个分区了,不过又分为3种情况:

a)VBR:计算机读取激活分区里的第一个扇区,即VBR(Volume Boot Record)。VBR的主要作用是告诉计算机操作系统在这个分区的位置,然后计算机就会加载操作系统。

b)扩展分区和逻辑分区:4个主分区里最多只有一个用来作为扩展分区,扩展分区里由可以分成多个逻辑分区。计算机先读取扩展分区里的第一个扇区,即EBR(Extended Boot Record),这里面包含了一个64字节的分区表,最多只有2项(即2个逻辑分区)。计算机读取第2个逻辑分区的第一个扇区,从中读取分区表并找到第3个逻辑分区的位置,以此类推,直到某个逻辑分区的分区表里只包含它自身为止(即只有一个分区项)。因此扩展分区可以包含无数个逻辑分区。

c)启动管理器:计算机读取MBR前面446字节的机器码之后,不再把控制权转交给某一个分区,而是运行事先安装的”启动管理器”(boot loader),由用户选择启动哪一个操作系统。linux中目前最流行的启动管理器是grub。

(4)操作系统

控制权转交给操作系统后,操作系统的内核首先被载入内存。以linux系统为例,先载入/boot目录下面的kernel。内核加载成功后,第一个运行的程序是/sbin/init。它根据配置文件产生init进程。这是linux启动后的第一个进程,pid进程编号为1,其他进程都是它的后代。然后init线程加载系统的各个模块,比如窗口程序和网络程序,直至执行/bin/login程序,跳出登录界面,等待用户输入用户名和密码。

至此,全部启动过程完成。

参考博客http://blog.csdn.net/langeldep/article/details/8788119

 

posted on 2017-09-18 11:12  yifangzhuhou  阅读(118)  评论(0编辑  收藏  举报