android系统定制开发Nachos操作系统实验二:具有优先级的线程调度

Nachosandroid系统定制开发操作系统实验二:android系统定制开发具有优先级的线程调度

注意

所有单独修改部分均在其后方注释add here
整体修改部分均在其上下注释add here
实验提供的文件应该是支持在原代码上直接修改的,所以如果要移动代码到新的文件夹,请自行修改makefile文件。

实验目的

1.熟悉Nachos原有的线程调度策略;
2.设计并实现具有静态优先级的非抢占式线程调度策略。

实验思路

实验要求实现具有静态优先级的非抢占式线程调度策略,首先找到线程调度的相关位置,为code/threads/scheduler类。ReadyToRun(),用于将线程放入就绪队列;FindNextToRun(),用于选择下一个运行的进程;Run()用于将进程运行。选择其中的一个修改来实现线程调度,我采用ReadyToRun()来实现线程调度。

实验过程

1.要先有优先级才能实现按照优先级的调度,所以先设置优先级。

(1)在thread.h中,在private修饰符后添加int priority存储优先级,然后在public修饰符后添加int getPriority()获取优先级。同时由于老师要求的测试样例,所以增加一种构造方法,即public修饰符后面的Thread(const…,int priority),至此thread.h文件修改完毕,无需多余处理。
修改情况:
(2)在thread.cc中做同步修改,给出方法的具体实现。由此实现了优先级的大部分修改(在结果输出中还要打印一下优先级,后面会说)。thread.cc处理完毕,无需多余修改。
修改情况:

2.获得优先级后即可开始控制调度,此处在scheduler.cc中修改ReadyToRun()方法控制调度。由此调度相关全部完成。

修改情况:

3.按照README中的要求修改threadtest.cc中的ThreadTest()方法,同时为了和答案保持一致,对threadtest.cc中的SimpleThread(_int which)方法做出一定修改。至此全部修改完毕。

修改情况:

4.进行编译,查看结果。

结果:

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发