- 18
- 0
- 约6.62千字
- 约 9页
- 2016-08-08 发布于河南
- 举报
nachos01
实验一 体验Nachos下的并发程序设计
一、小组成员及分工
汪于波(23020078104116):main.cc的修改、threadtest.cc的修改和实验报告
潘羽龙(23020078104100):dllist.cc的实现
吴道裕(23020078104132):dllist-driver.cc的实现和实验报告的完成
谭原(23020078104111):dllist.h的实现和Mmon的修改
二、实验目的
对nachos进行熟悉,并初步体验nachos下的并发程序设计。
三、实验内容
1.安装nachos;
2.用C++实现双向有序链表;
3.在nachos系统中使用你所写的链表程序并演示一些并发错误
四、实验步骤
1.首先明确Nachos各部分的关系
在~/nachos/nachos-3.4/code/下有一个Mmon,在code/的各个子目录下的Makefile都继承这个Mmon。通过阅读main.cc知道,main函数一旦启动,立即调用Initialize,进行初始化的操作,然后对相应的参数进行处理,之后在分模块进行相应模块下的函数调用,执行相应的功能。
2.编写相应的函数
实验要求利用对双向链表的操作来演示并发程序可能出现的错误,首先需要实现双向链表dllist,包括dllist.h,dllist.cc。当DLList类实现后,需要编写链表驱动函数Insert和Remove来对链表进行驱动。通过改写threadtest.cc,使得多个线程在没有进行任何互斥操作的情况下对同一数据结构进行操作,在这个过程中就可能出现并发错误。改写Mmon和main.cc。
3.详细设计
a)dllist.h(~/nachos/nachos-3.4/code/threads/)
类DLList的声明
class DLLElement {
public:
DLLElement(void *itemPtr,int sortKey);//initialize a list element
DLLElement *next;//next element on list
DLLElement *prev;//previous element on list
int key;
void *item;
};
class DLList {
public:
DLList();//initialize the list
DLList(int type);
~DLList();//de-allocate the list
void Prepend(void *item);//add to head of list
void Append(void *item);//add to tail of list
void *Remove(int *keyPtr);//remove frome head of list
bool IsEmpty();//return true if list has elements
void SortedInsert(void *item,int sortKey);
void *SortedRemove(int sortKey);//remove first item with key==sortKey
private:
DLLElement *first;
DLLElement *last;
int yield_type;//different yield positon
};
b) dllist.cc(~/nachos/nachos-3.4/code/threads/)
类DLList方法的实现,其中核心操作Remove,SortedInsert。
//----------------------------------------------------------------------
// DLList::Remove
// Remove the first item from the front of the dllist.
//
// Returns:
// Pointer to removed item, NULL if nothing on the list.
//----------------------------------------------------------------------
void *
DLList::Remove(int *keyPtr)
{
DLLElement *temp;
void *tempitem = NULL;
if(IsEmpty()) {
keyPt
您可能关注的文档
- 2014年三明建宁县招聘幼儿园新任教师5人公告.doc
- 2014年下学期《电动机》教学设计.doc
- 2014年公务员考试申论技巧:如何拟好申论文章标题.doc
- 2014年全国各地最低工资标准统计表【2014年4月更新】.doc
- 2014年公务员面试热点:叫停考察出访.doc
- 2014年即将过去,2015年就要到来,给大家送上新年礼物--辞旧迎新50M流量,请笑纳!.doc
- 2014年安徽安庆教师招聘考试:物理《安全用电》说课稿.doc
- 2014年宿州福利彩票发行中心招聘工作人员公告-安庆中公教育.doc
- 2014年建宁县事业单位公开招聘工作人员体检结果(一)公布和工作安排的通告.doc
- 2014年建宁县初中毕业班质量检测英语试卷.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 电商数据分析(微课版)课件全套 第1--10章 电商数据分析概述---数据分析报告与看板制作.pptx
- 异常子宫出血的护理查房.pptx
- 2025年中医执业医师个人工作计划范文.docx VIP
- 2024《中班幼儿饮食行为现状调查—以S幼儿园为例》12000字.docx VIP
- 2025年美容美发十年行业数据洞察报告.docx
- 护理交接班制度.pptx VIP
- 初中电学总复习初中电学总复习.doc VIP
- 北京邮电大学《机器学习》2023-2024学年期末试卷.doc VIP
- 照顾老人保姆合同范本10篇.docx VIP
- 2024年锡林郭勒职业学院单招职业倾向性考试题库必考题.docx VIP
原创力文档

文档评论(0)