Download presentation
Presentation is loading. Please wait.
1
实验一 体验Nachos下的并发程序设计 陈毅东 2006年春
2
提纲 结束 实验内容 注意事项 建议的实验步骤 提交要求
3
实验内容 本次实验的目的在于对nachos进行熟悉,并初步体验nachos下的并发程序设计。 具体实验内容: 安装nachos;
返回 本次实验的目的在于对nachos进行熟悉,并初步体验nachos下的并发程序设计。 具体实验内容: 安装nachos; 用C++实现双向有序链表; 在nachos系统中使用你所写的链表程序并演示一些并发错误
4
注意事项(1) 仔细阅读nachos-labs.pdf中的如下部分 2.1 Installing and Building Nachos
2.2 Tracing and Debugging Nachos Programs 2.3 Controlling the Order of Execution in Nachos 3.1 Lab 1: The Trouble with Concurrent Programming
5
注意事项(2) 返回 注意:把nachos看成一个操作系统(加上一个虚拟硬件平台),本实验的第三个内容实质上是在修改操作系统代码,而不是编写用户程序!
6
建议的实验步骤(1) 阅读nachos-3.4/code/Makefile nachos-3.4/code/Makefile.dep nachos-3.4/code/Makefile.common nachos-3.4/code/threads/Makefile 初步了解各Makefile的构成和相互关系。 阅读nachos-3.4/code/threads/main.cc了解nachos如何开始。 阅读nachos-3.4/code/threads/system.cc的Initialize函数中与debug相关的部分及nachos-3.4/code/threads/utility.cc了解DEBUG的实现与使用,以此进一步熟悉nachos系统。 阅读nachos-3.4/code/threads/threadtest.cc,了解nachos中线程的概念及其运作方式。
7
建议的实验步骤(2) 返回 将必要的链表文件拷贝到nachos-3.4/code/threads/中,修改nachos-3.4/code/Makefile.common中的THREAD_H、THREAD_C、THREAD_O,在nachos-3.4/code/threads/目录中依次执行make depend和make 修改nachos-3.4/code/threads/threadtest.cc和nachos-3.4/code/threads/main.cc实现两个线程调用链表功能,重新编译threads子系统 修改nachos-3.4/code/threads/threadtest.cc,在适当位置插入currentThread->Yield()调用以强制线程切换(注意相应文件中应该包含对外部变量currentThread的声明并include thread.h),重新编译threads子系统
8
提交要求 本实验应提交的内容和应出现的位置(~表示各组长的主目录): 其中,nachos01.doc为实验报告。
返回 本实验应提交的内容和应出现的位置(~表示各组长的主目录): ~/nachos/nachos-3.4/code/Makefile.common ~/nachos/nachos-3.4/code/threads/main.cc ~/nachos/nachos-3.4/code/threads/threadtest.cc ~/nachos/nachos-3.4/code/threads/dllist.h ~/nachos/nachos-3.4/code/threads/dllist.cc ~/nachos/nachos-3.4/code/threads/dllist-driver.cc ~/nachos/nachos01.doc 其中,nachos01.doc为实验报告。 本实验的提交截止时间:2006年04月01日12:00。
Similar presentations