文档介绍:Nachos的线程管理模块升级
本实****项目希望通过修改Nachos系统平台的底层源代码来实现以下目标:
扩充线程数据结构。增加“用户ID、线程ID”两个数据成员,同时在Nachos现有的线程管理机制中增加对这两个数据成员的维护机制。
扩展现有的线程状态。Nachos平台中的线程状态只有“初启态”、“就绪态”、“阻塞态”、“运行态”四种情况。请增加“挂起(suspending)”这个状态,所谓“挂起”是指当前的线程映象保存在磁盘文件而不是内存中。“挂起”状态是未来实现“虚拟内存管理”的重要基础。
Nachos的线程管理模块升级
修改线程调度算法。将Nachos平台的线程管理机制调整为“抢占式”。具体可选择“时间片轮转”、“优先级调度”、“多级队列”等不同的调度算法。
增加全局性的线程管理机制。扩充Nachos平台的现有操作命令,例如可以增加一个名为“ThreadView”的命令,执行该命令,可以在屏幕上显示目前所有存在的线程信息,包括“用户ID“、“线程ID”、“当前状态”等。
Nachos的线程管理模块升级
实现一个同步与互斥的例子。在完成以上修改后,可编写一个实例程序,来实现某个“同步-互斥”经典问题的正确解法。例如可选择“哲学家就餐”问题,实例程序会创建5个哲学家线程,这些线程拥有同样的用户ID,可以遵循“信号量”机制来正确的运行。也可以选择“生产者-消费者”问题、“睡眠理发师问题”等其他经典IPC问题。(可选)
【提交形式】
,在文档中说明以下内容:
实践小组的人员组成、各自的分工;
对实践要求的满足程度,本项目有四项要求,请注明共满足了几项。
对实践过程的详细说明,针对已经满足的实践要求,采用了何种算法或思想,对Nachos平台的哪些代码进行了什么样的修改。
【提交形式】
本文档描述的实践环境均基于VMWare虚拟机,在第一章中已经描述了如何将Nachos源码包备份为可在Windows环境下传递的磁盘文件。请将修改后的Nachos源码打包备份提交。
【提交形式】
在完成实践后,需要进行适当的内部评测来验证实践的效果。请以文档的形式说明设计了什么样的评测过程,在评测过程中发现了哪些问题。