西电计算机操作系统课程设计(共6页).docx
《西电计算机操作系统课程设计(共6页).docx》由会员分享,可在线阅读,更多相关《西电计算机操作系统课程设计(共6页).docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上西安电子科技大学操作系统课程设计(2016年度)实验报告实验名称: Alarm-Clock 班 级: 姓 名: 学 号: 一、实验内容重新实现timer_sleep()函数,避免“忙等待”的发生二、分析及设计Timer_sleep 函数原型:Void timer_sleep (int64_t ticks) /ticks为等待的时间长度int64_t start = timer_ticks (); /记录开始时的系统时间ASSERT (intr_get_level () = INTR_ON);while(timer_elapsed(start) =ticks时就返回。t
2、hread_yield (); /否则将持续占用 cpu。Timer_sleep函数使用忙等待的方法,用一个while循环不断地请求CPU来判断是否经过了足够的时间长度。如果elapse足够的时间长度后则返回。timer_interrupt 函数原型static voidtimer_interrupt (struct intr_frame *args UNUSED)/UNUSED是一个宏,表示参数没用enum intr_level old_level; /和先前一样,记录原来的中断状态old_level=intr_disable(); /forreach函数要求关中断。ticks+;threa
3、d_foreach (block_check, 0);intr_set_level (old_level); /恢复中断thread_tick (); /交给操作系统出发中断并且调度新的线程进驻 cpu。pintos在每次时间中断时(即每一个时间单位(ticks)调用一次timer_interrupt,将cpu强制交换操作系统,即返还内核状态。timer_sleep()中执行while()循环实现,当前时间若不满足挂起的时间要求,则调用thread_yield()函数继续循环,如果满足则直接压入就绪队列。实际上只存在两个态,Running和Ready,并没有真正意义上的睡眠与唤醒 如图:Run
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 课程设计
限制150内