操作系统精品课:操作系统课...来源: 发布时间:星期二, 2008年12月2日 浏览:34次 评论:0
一、进程调度模拟程序
1.生产者-消费者问题 生产者-消费者问题是一个著名的进程同步问题。具体描述:有一群生产者进程在生产产品,并将这些产品提供给消费者进程去消费。为使生产者进程与消费者进程能并发执行,在两者之间设置了一个有界缓冲区,生产者进程将它所生产的产品放入一个缓冲区中;消费者进程可从一个缓冲区中取走产品去消费。所有的生产者进程和消费者进程都必须保持同步,即不允许消费者进程到一个空缓冲区去取产品;也不允许生产者进程向一个已装满产品且尚未被取走的缓冲区中投放产品。 2.交通信号灯模拟 一个十字路口,共有四组红绿灯,每个路口的车辆都遵循"红灯停,绿灯行"的原则,假设将每一台汽车都作为一个进程,请设计良好的机制,展示出合理的"十字路口交通管理"情况. 车辆通行设定:路口宽度不限,对一个路口而言,只有当一辆车通过路口(越过对面路口的交通灯后)后,其后续车辆才能继续通过交通灯,车辆通过路口的时间可以固定,可以自行计算。 进程的互斥:交通灯进程实际上是互斥的,即不能同时为红或者同时为绿. 进程的消息通信或其他通信方式:对车辆进程而言,每一个车辆在通过路口前,必须确认前面的车辆已经通过了路口. 进程的调度:停留在一个路口的车辆,决定其前进或等候的因素是交通灯和前面车辆的状态,需要设计一个良好的进程调度机制来控制所有车辆的通行。 3.哲学家进餐问题 哲学家有N个,也定全体到齐后开始讨论:在讨论的间隙哲学家进餐,每人进餐时都需使用刀、叉各一把,所有哲学家刀和叉都拿到后才能进餐。哲学家的人数、餐桌上的布置自行设定,实现刀和叉的互斥使用算法的程序实现。 二、存储管理 设计要求:设计一个请求页式存储管理方案。并编写模拟程序实现。并且用先进先出(FIFO)页面淘汰算法处理缺页中断,并且在淘汰一页时,只将该页在页表中抹去。而不再判断它是否被改写过,也不将它写回到辅存。 方案提示: 1、先产生一串随机数放在数组中,然后输出这个数组,表示页面号引用串.然后进行计算并输出结果.可用一个数组来存放当前内存的页面号,当产生新的页面申请时,判断数组中有与之相同的数吗,若有则直接输出这个数组,若没有则舍去最下面的数让上面的数依次放在下面,把新产生的数放在最上面.然后在数据下面输出一个*号,代表发生了缺页中断. 2、每访问一个地址时,首先要计算该地址所在的页的页号,然后查页表,判断该页是否在主存——如果该页已在主存,则打印页表情况;如果该页不在主存且页表未满,则调入一页并打印页表情况;如果该页不足主存且页表已满,则按 FIFO页面淘汰算法淘汰一页后调入所需的页,打印页表情况; 逐个地址访问,直到所有地址访问完毕。 三、模拟文件管理系统 编写一程序,模拟一个简单的文件管理系统。树型结构,目录下可以是目录,也可以是文件。 在此文件管理系统,可实现的操作有: 1、 改变目录:格式:cd <目录名> 2、 显示目录:格式:dir [<目录名 3、 创建目录:格式:md <目录名> 4、 删除目录:格式:rd <目录名> 5、 新建文件:格式:edit <文件名> 6、 删除文件:格式:del <文件名> 7、 退出文件系统:exit 设计要求: 1、文件系统采用二叉树型存储结构 2、目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开 3、功能具体描述: (1)攍 0
相关文章读者评论
发表评论 |