nachos实验9设计并实现具有优先级的线程调度策略分析

nachos实验9设计并实现具有优先级的线程调度策略分析

ID:31481823

大小:36.50 KB

页数:9页

时间:2019-01-11

nachos实验9设计并实现具有优先级的线程调度策略分析_第1页
nachos实验9设计并实现具有优先级的线程调度策略分析_第2页
nachos实验9设计并实现具有优先级的线程调度策略分析_第3页
nachos实验9设计并实现具有优先级的线程调度策略分析_第4页
nachos实验9设计并实现具有优先级的线程调度策略分析_第5页
资源描述:

《nachos实验9设计并实现具有优先级的线程调度策略分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、word格式精心整理版实验目的Nachos系统采用基本的先来先服务的线程调度策略,本次试验的目的:熟悉Nachos原有的线程调度策略设计并实现具有优先级的线程调度策略实验环境linux操作系统,Nachos操作系统实验分析将原有的先来先服务的线程调度策略改为按优先级调度的策略,那么每个线程需添加属性priority,决定当前线程的优先级高低。定义优先级取值范围为1-7,其中1为最高,7为最低。那么在当前线程被阻塞的时候,调度函数通过判断当前就绪队列中的线程中谁的优先级最高,就调度谁,使其运行。更为优化的办法是,每次将一个

2、线程插入的就绪队列中时,就按照线程的优先级顺序插入,让List中的等待时间片的线程依照优先级从高到低排好序,那么每次查询下一要执行的线程的时候,无需再遍历List,直接从头指针上截取即可,如此插入和移除的平均时间将节省一半。关键源代码及注释threadtest.cc改写原有的测试函数//----------------------------------------------------------------------//ThreadTest//@Lizhen11/16/09//Setupafewthreadswi

3、thprioritykeys,byforkingathread//tocalloriginalSimpleThreadtoseethethreadchoosedbypriority.//Prioritykeymustbechoosenbetween1and7.//Thelowestis7andhighestis1.//----------------------------------------------------------------------voidThreadTest(){   DEBUG('t',"En

4、teringSimpleTest");   Thread*t=newThread("1",5);//线程1,优先级为5*Thread*t2=new范文范例学习指导word格式精心整理版Thread("2",1);Thread*t3=newThread("3",3);   t->Fork(SimpleThread,1);t2->Fork(SimpleThread,2);t3->Fork(SimpleThread,3);}*优先级取值范围:1-7,1为最高,7为最低。thread.h和thread.cc为了实现根据线程thr

5、ead按照优先级进行调度,在Thread类中增加参数priority,优先级取值范围为1至7,1为最高,7为最低。因为整个系统中必然会有许多地方都使用了Thread,要将这所有的地方找出来并增加线程优先级似乎是不现实的,更改后系统的正确性和稳定性也是受质疑的,为了尽最大限度地不改动源代码,不删除原有的构造函数,改写为不给优先级赋值时默认优先级为7。.hpublic:   Thread(char*debugName,intpriority=7);//initializeaThread      //@LiZhen11/11

6、/09      //Ifdonotinitializethepriority,      //givethelowestprioritytoit.      //Priorityragefrom1to7.   voidYield();   //RelinquishtheCPUifany      //otherthreadisrunnable      //@LiZhen11/11/09.c//---------------------------------------------------------------

7、-------//Thread::Thread//Initializeathreadcontrolblock,sothatwecanthencall//Thread::Fork.////"threadName"isanarbitrarystring,usefulfordebugging.////@LiZhen11/11/09//modifiedbyLiZhenatNov11,2009//--------------------------------------------------------------------

8、--范文范例学习指导word格式精心整理版Thread::Thread(char*threadName,intp){if(p<1)priority=1;elseif(p>7)priority=7;elsepriority=p;   name=threadName;   stackTop=NULL;   stack=N

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。