下载此文档

Nachos的线程管理模块升级.docx


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
Nachos的线程管理模块升级.docx:..・本作业要求本实****项目希望通过修改Nachos系统平台的底层源代码来实现以下目标:。增加“用户ID、线程ID"两个数据成员,同时在Nachos现有的线程管理机制屮增加对这两个数据成员的维护机制。(必选)。Nnchos平台屮的线程状态只有“初启态”、“就绪态”、“阻塞态”、“运行态”四种情况。请增加“挂起(suspending)"这个状态,所谓“挂起”是指当前的线程映象保存在磁盘文件而不是内存屮。“挂起”状态是未来实现“虚拟内存管理”的重要基础。。将Nnchos平台的线程管理机制调整为“抢占式”。具体可选择“吋间片轮转”、“优先级调度”、“多级队列”等不同的调度算法。(必选)。扩充Nachos平台的现有操作命令,例如可以增加一个名为"ThreadView"的命令,执行该命令,可以在屏幕上显示H前所有存在的线程信息,包括“用户ID“、“线程ID”、“当前状态垮。。在完成以上修改后,可编写一个实例程序,来实现某个“同步一互斥”经典问题的正确解法。例如可选择“哲学家就餐”问题,实例程序会创建5个哲学家线程,这些线程拥有同样的用户ID,可以遵循“信号量”机制来正确的运行。也可以选择“生产者一消费者”问题、“睡眠理发师问题”等其他经典IPC问题。(可选)・扩充线程数据结构:在Thread类屮增加线程ID,增加整形变量tid,增加全局变量id_port对tid进行管理,tid的分配是从0开始扫描直到最大的线程数,看是否已经被分配,寻找到一个最小的未被分配的tid分配给新建的线程,可以增加一些函数來维护线程ID。因为没有理解用户ID号是什么,所以在这次的实验中没有扩充用户IDo2•扩展现有的线程状态:在ThreadStatus屮增加俩个元素STATIC_READY和STATIC_BLOCKED状态,增加了俩个成员函数Thread::suspend()和Thread::active(),分别为挂起线程和激活线程。在挂起时,判断线程的状态,若为正在运行或者就绪,则把线程状态修改为STATIC_READY;若为阻塞,则修改为STATIC_BLOCKED,并把此线程加入挂起队列屮。在activeOH1根据给定的线程的id在挂起队列屮找到指定线程并修改其状态。注:由于时间有限,如何把线程保存到磁盘文件屮的功能未实现。3•修改线程调度算法:分为时间片轮转和多级队列算法。时间片轮转算法屮要求每个进程每个进程依次按时间片轮流执行,吋间片用完则计时器触发一屮断,重新调度,在一给定的吋间内,就绪进程均能获得一吋间片的执行吋间。多级队列算法根据作业的性质或类型的不同,将就绪进程队列再分为若干个独立于队列,每个队列采用一•种算法。,为各队列分配一定的占用CPU的时间比例來处理各队列之间的关系。1)就绪队列按时间片大小划分,时间片愈小,优先权愈高;(2)进程不固定在一个队列屮,新创建进程T最高优先权队列,吋间片到尚未完成的进程T下一级优

Nachos的线程管理模块升级 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ttteee8
  • 文件大小222 KB
  • 时间2020-08-05