doc 操作系统设计与实现 ㊣ 精品文档 值得下载

🔯 格式:DOC | ❒ 页数:862 页 | ⭐收藏:0人 | ✔ 可以修改 | @ 版权投诉 | ❤️ 我的浏览 | 上传时间:2026-01-21 15:31

请求所返回的消息类型。


最后,还包含了几个更特殊的头文件。


其中有行,它被核心和文件系统用来定义设备以及访问从程序传入系统的参数。


另个是行,它定义了若干结构,这些结构用来实现不同语言所需的字符集对应的特殊键盘布局。


它也被那些生成和加载这些表格的程序使用。


这里的些文件,如行只被核心使用,而不被文件系统或内存管理器使用。


对于个支持额外的设备的实现,这里有另外些类似的文件,它们分别支持其他的设备。


这些设备在该目录下的位置需要解释下。


理想情况下,所有的用户程序应该仅仅通过操作系统来访问设备,这些支持外部设备的文件应当放在下。


但是系统管理的实际情况要求,些用户命令能访问系统级的结构,例如对硬盘进行分区的命令。


正是为了支持此类公用程序,我们将这些特殊头文件放在目录树下。


是这里讨论的最后个特殊头文件目录,它下面有两个文件包含与系列机相关的信息。


个是,它被软盘系统任务使用。


尽管该任务属于标准的版本,但本书不详细讨论其源代码,因为它和硬盘任务很类似。


另个文件是行,它定义了兼容机上使用的硬盘分区表和相关通过这种方式,系统中总的消息数保持不变,所以消息可以存放在预知数量的内存中。


如果生产者的速度比消费者快,则所有的消息最终都将被填满,于是生产者将阻塞以等待消费者取用后返回条空消息。


如果消费者速度快,则正好相反所有的消息均为空,等待生产者来填充它们,消费者阻塞以等待条填充过的消息。


缓冲区中的槽数消息缓冲区产生些数据放入缓冲区,等待条空消息到达构造条消息供发送,向消费者发送数据项,发送条空消息,收到条包含数据的消息,从消息中析取数据,回送空消息作为应答使用数据项进行操作图用条消息的生产者消费者进程。


消息传递可以有许多变体。


对于初学者,我们来看如何对消息编址。


种方法是为每个进程分配个唯的地址,按进程为消息指定地址。


另种方法是引入种新的数据结构,称作信箱。


个信箱就是个用来对定数量的消息进行缓冲的地方,典型的情况是消息的数量在信箱创建时确定。


当使用信箱时,和调用中的地址参数使用信箱,而不是进程。


当个进程试图向个满的信箱发消息时,它将被挂起,直至信箱内有消息被取走而为新消息腾出空间。


对于生产者消费者问题,生产者和消费者均应创建足够容纳条消息的信箱。


生产者向消费者信箱发送包含数据的消息,消费者则向生产者信箱发送空消息。


当使用信箱时,缓冲机制是很清楚的目标信箱容纳那些被发送但尚未被目标进程接收的消息。


使用信箱的另种极端情况是彻底去掉缓冲。


采用这种方法时,如果在之前执行,则发送进程被阻塞,直到发生。


执行时消息可以直接从发送者拷贝到接收者,不用任何中间缓冲。


类似地,如果先被执行,则接收者阻塞直到发生。


这种策略常被称为会合原则。


与带有缓冲的消息方案相比,这种方案实现起来更容易些,但却降低了灵活性,因为发送者和接收者定要以步步紧接的方式运行。


在及中用户进程间的通信采用管道,它与信箱在效果上等价。


采用信箱的消息系统和管道机制之间的区别实际在于管道没有预先设定消息的边界。


换言之,如果个进程向管道写入条字节的消息,而另个进程从管道中读取个字节,则读进程将次性地获得这所有条消息。


而在个真正的消息系统中,每个操作将只返回条消息。


当然,如果进程能够达成致总是从管道中读写固定大小的消息,或者每条消息都以个特殊字符如换行符结束,则不会有任何问题。


构成操作系统的进程之间使用消息大小固定的真正的消息机制进行通信。


经典问题操作系统文化中有许多被广为讨论和分析的有趣的问题。


以下几节我们将讨论三个较为著名的问题。


哲学家进餐问题在年,提出并解决了个他称之为哲学家进餐的同步问题。


从那时起,每个发明新的同步原语的人都希望通过解决哲学家就餐问题来展示其同步原语的精妙之处。


这个问题可以简单地描述如下五个哲学家围坐在张圆桌周围,每个哲学家面前都有碟通心面,由于面条很滑,所以要两把叉子才能夹住。


相邻两个碟子之间有把叉子,餐桌如图所示。


图哲学家就餐图。


哲学家的生活包括两种活动即吃饭和思考这只是种抽象,即对本问题而言其他活动都无关紧要。


当个哲学家觉得饿时,他就试图分两次去取他左边和右边的叉子,每次拿把,但不分次序。


如果成功地获得了两把叉子,他就开始吃饭,吃完以后放下叉子继续思考。


这里的问题就是为每个哲学家写段程序来描述其行为,要求不能死锁。


要求拿两把叉子是人为规定的,我们也可以将意大利面条换成中国菜,用米饭代替通心面,用筷子代替叉子。


图给出了最浅显的解法。


过程将直等到所指定的叉子可用,然后将其取用。


不幸的是,这种解法是的。


设想所有五位哲学家都同时拿起左面的叉子,则他们都拿不到右面的叉子,于是发生死锁。


哲学家数目哲学家号从到号哲学家正在思考取左面叉子取右面叉子为取余吃面放回左面叉子放回右面叉子图哲学家进餐问题的种不正确解法。


我们可以将程序修改下,规定在拿到左叉后,先检查右面的叉子是否可用。


如果不可用,则先放下左叉,等段时间再重复整个过程。


但这种解法也是的,尽管与前种的原因不同。


可能在个瞬间,所有的哲学家都同时启动这个算法,拿起左叉,看到右叉不可用,又都放下左叉,等会儿,又同时拿起左叉。


如此这样永远重复下去。


对于这种情况,即所有的程序都在运行,但却无法取得进展,就称为饥饿。


即使问题不发生在意大利或中国餐馆也被称为饥饿现在你可能会想如果哲学家在拿不到右叉时等待段随机的时间,而不是等待相同的时间,则发生上述锁步的机会就很小了。


这种想法是对的,但在些应用中人们希望种完全正确的方案,它不能因为串靠不住的随机数字而失效想想核电站中的安全控制系统。


对图中的算法可进行下列改进,它既不会发生死锁又不会发生饥饿使用个二进制信号量对五个函数之后的语句进行保护。


在哲学家开始拿叉子之前,先对信号量执行。


在放回叉子后,再对执行。


从理论上讲,这种解法是可行的。


但从实际角度来看,这里有性能上的局限同时刻只能有位哲学家进餐。


而五把叉子实际上允许两位哲学家同时进餐。


图中的解法不仅正确,而且对于任意位哲学家的情况都能获得最大的并行度。


其中使用个数组来跟踪个哲学家是在吃饭思考还是正在试图拿叉子。


个哲学家只有在两个邻居都不在进餐时才允许转移到进餐状态。


第位哲学家的邻居由宏和定义,换言之,若为,则为,为。


哲学家数目的左邻号码的右邻号码哲学家正在思考哲学家想取得叉子哲学家正在吃面信号量是个特殊的整型变量记录每个人状态的数组临界区互斥每个哲学家个信号量哲学家号码,从到无限循环哲学家正在思考需要两只叉子,或者阻塞进餐把两把叉子同时放回桌子哲学家号码从到进入临界区记录下哲学家饥饿的事实试图得到两只叉子离开临界区如果得不到叉子就阻塞哲学家号码从到进入临界区哲学家进餐结束看下左邻居现在是否能进餐看下右邻居现在是否能进餐离开临界区哲学家号码从到图个哲学家就餐问题的解决方案。


该程序使用了个信号量数组,每个信号量对应位哲学家,这样在所需的叉子被占用时,想进餐的哲学家可以阻塞。


注意每个进程将过程作为主代码运行,而其他过程和只是普通的过程,而非单独的进程。


读者写者问题哲学家问题对于多个竞争进程互斥地访问有限资源如设备这类问题的建模十分有用。


另个著名的问题是读者写者问题它为数据库访问建立了个模型。


例如,设想个飞机定票系统,其中有许多竞争的进程试图读写其中的数据。


多个进程同时读是可以接受的,但如果个进程正在更新数据库,则所有其他进程都不能访问数据库,即使读操作也不行。


这里的问题是如何对读者和写者进行编程图给出了种解法。


控制对的访问控制对数据库的访问正在读或想要读的进程数无限循环排斥对的访问又多了个读者

下一篇
操作系统设计与实现第1页
1 页 / 共 862
操作系统设计与实现第2页
2 页 / 共 862
操作系统设计与实现第3页
3 页 / 共 862
操作系统设计与实现第4页
4 页 / 共 862
操作系统设计与实现第5页
5 页 / 共 862
操作系统设计与实现第6页
6 页 / 共 862
操作系统设计与实现第7页
7 页 / 共 862
操作系统设计与实现第8页
8 页 / 共 862
操作系统设计与实现第9页
9 页 / 共 862
操作系统设计与实现第10页
10 页 / 共 862
操作系统设计与实现第11页
11 页 / 共 862
操作系统设计与实现第12页
12 页 / 共 862
操作系统设计与实现第13页
13 页 / 共 862
操作系统设计与实现第14页
14 页 / 共 862
操作系统设计与实现第15页
15 页 / 共 862
温馨提示

1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。

2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。

3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。

4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。

5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。

  • Hi,我是你的文档小助手!
    你可以按格式查找相似内容哟
筛选: 精品 DOC PPT RAR
小贴士:
  • 🔯 当前文档为word文档,建议你点击DOC查看当前文档的相似文档。
  • ⭐ 查询的内容是以当前文档的标题进行精准匹配找到的结果,如果你对结果不满意,可以在顶部的搜索输入框输入关健词进行。
帮帮文库
换一批