没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
OS
OS
实践项目
实践项目
1
1
设计与实现文档
设计与实现文档
4p 小组
10 年 11 月 11 日
内容目录
1 小组人员组成与分工.............................................................................................1
1.1 小组成员......................................................................................................1
1.2 任务分工 .....................................................................................................1
1.3 版本控制......................................................................................................1
2 额外的参考资料....................................................................................................1
3 睡眠和唤醒..........................................................................................................1
3.1 需求分析......................................................................................................1
3.2 数据结构......................................................................................................2
3.3 算法设计......................................................................................................3
3.4 调试.............................................................................................................4
3.5 优化.............................................................................................................5
3.6 题目完成程度................................................................................................5
4 优先级调度..........................................................................................................5
4.1 需求分析......................................................................................................5
4.2 数据结构......................................................................................................6
4.3 算法.............................................................................................................7
4.4 解法描述 .....................................................................................................8
4.5 调试过程....................................................................................................11
4.6 题目完成程度..............................................................................................11
5 高级调度...........................................................................................................11
5.1 需求分析 ...................................................................................................11
5.2 设计思想....................................................................................................11
5.3 数据结构....................................................................................................12
5.4 算法设计与函数实现....................................................................................13
5.5 调试过程....................................................................................................16
5.6 题目完成程度..............................................................................................16
1 小组人员组成与分工 1
1 小组人员组成与分工
1.1 小组成员
4p 小组由 4 名 08cs 成员组成,列表如下
陈歌,C,<olivia200705@126.com>
李梦阳,L,<mayli.he@gmail.com>
王盛,W,<wstnap@gmail.com>
肖天骏,X,<xiaotj1990327@gmail.com>
开发代号是每人姓氏的首字母
1.2 任务分工
任务分工由一系列表格组成,并且有较强的松散自由度。
日期 内容 人员 结果
11.3 实验环境搭建
CLWX
0
11.5 阅读源码,理解调用关系
CLWX
0
11.7 写完第一题代码
CW
延期 11.9
11.9 部署版本控制
L
完成
11.10 完成代码提交和检查
WL
完成
11.13 完成第二题代码
L
延期 11.15
11.16 完成第三题代码
X
11.17 合并代码,提交版本
LWX
11.18 文档清理上传
CLWX
11.19 文档合并
CL
1.3 版本控制
由于多人同时贡献代码,所以决定在项目中采用版本控制。
代码托管于 googlecode,采用 SVN 进行控制,可以在以下页面找到项目信息:
http://pintosof4p.googlecode.com
2 额外的参考资料
在作业完成的过程中除了压缩包中的资料,还参考了
pintos 官方文档: http://www.scs.stanford.edu/10wics140/pintos
minix3 源码 :http://www.minix3.org/source.html
3 睡眠和唤醒
这一部分主要由 LXW 构思,W 实现,L 做出测试提出修改意见。
3 睡眠和唤醒 2
3.1 需求分析
既有的线程挂起机制,通过在 timer_sleep()中执行 while()循环实现,当前时间若不满足挂起的时
间要求,则调用 thread_yield()函数继续循环,如果满足则直接压紧就绪队列。实际上只存在两个态,
Running 和 Ready,并没有真正意义上的睡眠与唤醒。如图:
由于在 while()循环中,不断的进行 thread_yield()操作。通过查看源代码中 thread_yield()函数
的注释:
/* Yields the CPU. The current thread is not put to sleep and
may be scheduled again immediately at the scheduler's whim. */
这也验证上面所说的线程并没有真正进入睡眠,且该线程有可能又一次立即被调度,这样的结果就是产
生了忙等待。
我们需要实现的目标为,在 timer_sleep()函数中使线程进入 Block 态。系统运行一段时间后,睡眠
时间到,再对该线程进行唤醒,从 Block 态转入 Ready 态。改造后的机制为如图:
3.2 数据结构
虽然在 thread.h 文件中的 enum thread_statues{}已经提供了 thread_block 态 ,而且已
经存在 ready_list 的链表,但中在源码中,并不存在一个叫做 block_list 的 list 结构。
故添加了数据结构:
static struct list block_list;
插图 1: 睡眠与唤醒
插图 2: 3 态
剩余17页未读,继续阅读
资源评论
- hazard172012-11-264p小组的,太普遍了,挺好
- GKC1010chun2014-05-15很好,起到很大作用,不过我下载之后老师发给我们了
- dongxiaon2012-12-01满分!~非常好用
- axiulu2013-01-08还不错的资源,虽说昂贵了一点
ccssddnn55880
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 微信小程序源码 车源宝 二手车交易平台 源码下载
- 微信小程序源码 实现 城市切换 demo 根据城市首字母排序城市 选择城市 源码下载
- VMware7.0虚拟机硬盘无法编辑,无法连接到Profile-Driven Storage Service
- arm64内核的mongo镜像
- 基于stm32f103c单片机+MPU6050+0.96英寸OLED显示屏双柄遥控器硬件(原理图+PCB)工程文件.zip
- 整理的关于少儿编程的学习路径,以及如何在小升初,初升高和大学充分的利用起来编程经验的优势
- nhit完整源码+论文学习
- 足球比赛结果统计表2006-2011年大约28W场比赛
- 基于PHP+mysql的社区交流系统(源代码)
- yolov5,SSD 可能使用到的一些代码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功