Nachos_Project_1_2014-操作系统实验

合集下载

Nachos实验报告10

Nachos实验报告10

计算机科学与技术学院实验报告:10

实验题目:具有二级索引的文件系统姓名:李威

日期:2013-12-1 学号:201100300259

Email:sduliwei@

实验目的:

Nachos的文件系统中保存文件内容所在扇区索引的“文件头“目前只占用一个扇区,

为了可以使Nachos文件系统创建较大的文件,将”文件头”扩大到两个扇区,也就是实现二级索引。

硬件环境:

软件环境:

Linux操作系统,Nachos操作系统

实验步骤:

1,通过实验5的扩展文件大小的实验,了解了nachos 系统的对文件系统的管理。本次实验的目的主要是扩大Nachos系统可以创建的文件的大小,使用两个扇区来保存文件头的信息。

为了达到这个目的,首先了解nachos 自带的文件系统的文件头的结构:

保存在一个扇区中,第一个int保存了文件的字节数(numBytes),第二个int保存了使用的扇区数(numSectors),第三个数据结构是文件所在的各个扇区号(dataSectors[NumDiresct])。

也就是说,Nachos系统采用的是索引式的文件管理方式。

因而,要实现nachos文件系统的二级索引,可以使第一个索引节点(也就是原有的文件头那个扇区)的dataSectors数组的最后一个元素保留第二个索引节点(也就是第二个扇区)的引用(也就是扇区号)。

如果文件大小不超过一个索引节点可以保留的内容,则这个最后一个元素的值为-1。

2,通过分析可知,需要修改中的内容。

代码如下:

bool

FileHeader::Allocate(BitMap *freeMap, int fileSize)

Nachos实验报告9

Nachos实验报告9

计算机科学与技术学院实验报告:9

实验题目:设计并实现具有优先级的线程调度策略姓名:李威

日期:2013-12-1 学号:201100300259 班级:11级软件3班Email:sduliwei@

实验目的:

Nachos系统采用基本的FCFS的线程调度策略,修改成为具有优先级的线程调度策略

硬件环境:

软件环境:

linux操作系统,Nachos操作系统

实验步骤:

1.修改Thread类的构造函数,加入优先级priority属性,并且加入getPrioty方法。以便在线程的

等待队列中找到优先级最高的线程。其中,线程优先级的范围从1到7,默认为7,即最低优先级。

修改代码如下:(,thread.h)

class Thread {

……………………………………

public:

Thread(char* debugName, int priority=7);// initialize a Thread …………………………………………………

int getPriority(){return this->priority;

}

Thread::Thread(char* threadName, int p)

{

if(p<1) priority = 1;

else if(p>7) priority = 7;

else priority = p;

name = threadName;

stackTop = NULL;

stack = NULL;

status = JUST_CREATED;

#ifdef USER_PROGRAM

操作系统nachos课程设计实验报告

操作系统nachos课程设计实验报告

一题目

project1:实现nachos操作系统的project1中的join()方法,condition2 类,Alarm类,Communicator类,PriorityScheduler类和Boat类

project2:实现nachos操作系统的project2中的creat open read write close unlink 文件系统调用,修改UserProcess.readVirtualMemory和UserProcess.writeVirtualMemory使操作系统能够运行多用户程序,实现exec join exit系统调用,实现LotteryScheduler类

二实验目的

熟悉nachos操作系统,深入理解操作系统内核

了解用户程序的加载过程以及多用户进程的内存分配机制

三实验要求

完成nachos,提交设计文档和你的代码

四实验说明,程序代码及测试结果

Project1:

1 join()

要求实现join()方法,注意,其他线程没必要调用join函数,但是如果它被调用的话,也只能被调用一次。join()方法第二次调用的结果是不被定义的,即使第二次调用的线程和第一次调用的线程是不同的。无论有没有被join,一个进程都能够正常结束

(a)设计思想

当线程B执行A.join()时,将B放入A的等待队列,直到A完成时,唤醒在等待队列中的所有线程,因此需要实现join()方法和修改finish方法(b)源代码

public void join(){

Lib.debug(dbgThread, "Joining to thread:" + toString());

操作系统实验报告1

操作系统实验报告1

软件学院实验报告

实验题目:Installation of Nachos System学号:201100300144

日期:2013-11-1班级:11级3班姓名:刘桂良

Email:61536799@

实验目的:

安装Nachos和Mips gcc交叉编译

了解基本Nachos系统组织结构

硬件环境:Ubuntu12.04

软件环境:gcc

实验步骤:

将gcc- 2.8.1-mips.tar.gz和nachos-3.4-2011.tar.gz拷贝到主文件夹中,解压nachos。

$tar xzvf nachos-3.4-2011.tar.gz

输入su,输入密码,进入root用户下,

cp gcc-2.8.1-mips.tar.gz/usr/local

$tar xzvf gcc-2.8.1-mips.tar.gz

在普通用户下,转到threads目录下,

cd/nachos3.4/code/threads

之后输入make之后,测试nachos系统

测试成功结果如下:

结论分析与体会:

通过这次实验,熟悉了C++语言和系统开发调试,理解Nachos系统的Makefile,掌握重构Nachos系统的方法。

操作系统实验

操作系统实验

操作系统实验

一、实验背景

操作系统实验是计算机科学与技术专业中非常重要的一门实践课程,旨在帮助学生加深对操作系统原理的理解,并且通过实际操作,提高

学生的实际动手能力。本文将介绍我在操作系统实验中所进行的一项

实验内容和实验结果。

二、实验目的

本次实验的目的是通过模拟操作系统的一些核心功能和概念,加深

对操作系统内部工作原理的理解,掌握操作系统的调度算法、程序设

计和系统优化等技能。

三、实验步骤

1. 实验环境准备

为了进行本次实验,首先需要搭建相应的实验环境。我选择使用Linux操作系统作为实验环境,并确保已经安装了必要的工具和软件,

如gcc编译器和相关的调试工具。

2. 实验代码编写

在实验开始之前,我阅读了相关的文档和教材,理解了实验的要求

和任务。然后,我按照要求开始编写实验所需的代码。在代码编写过

程中,我需要对操作系统内核进行修改和扩展,并且针对具体的实验

要求,实现相关的功能和算法。

3. 实验测试与调试

完成代码编写后,我进行了一系列的测试和调试工作。通过编写测试用例,模拟各种场景和输入情况,验证代码的正确性和稳定性。如果发现错误或问题,我会使用调试工具进行定位和修复。

4. 实验结果分析

在完成测试和调试后,我对实验结果进行了详细的分析。通过比较和统计实验数据,我得出了一些结论,并对实验结果进行了评估和总结。

四、实验结果与讨论

通过实验,我成功完成了操作系统实验的任务,并获得了一些有价值的实验结果。在实验过程中,我遇到了一些挑战和困难,但通过不断努力和学习,最终克服了这些困难,并获得了令人满意的成果。

实验三-操作系统实验Nacho

实验三-操作系统实验Nacho

实验内容 利用事

实验三 操作系统实验Nacho

、实验人员:

、实验目的:

本次实验的目的在于掌握使用 nachos 中的线程序解决较为复杂的并发问题。 分三部分:实现事件栅栏原语并进行正确性测试; 实现闹钟原语并进行正确性测试; 件栅栏和闹钟原语来解决电梯问题(详细内容请看 nachos-labs.pdf )。

三、实验内容:

1. 实现事件栅栏原语

2. 实现闹钟原语

3. 解决电梯问题

四、实验步骤:

1. 实现事件栅栏原语

#ifndef EVENTBARRIER_H

#defi ne EVENTBARRIER_H

#in clude "syn ch-sem.h"

#defi ne SIGNALED 1

#defi ne UNSIGNALED 0 class Eve ntBarrier{ public:

Eve ntBarrier();

~Eve ntBarrier();

void Wait();

void Sig nal();

void Complete。;

int Waiters。; private:

bool state;

Con diti on *waits;

Con diti on *waitc;

Lock *barrier;

Lock *in barrier;

int waiter;

};

#en dif

#i nclude "Eve ntBarrier.h"

#in clude "thread.h"

Even tBarrier::Eve ntBarrier()

waits=new Con diti on ("waitsig nal");

操作系统实验Nachos64位开发境建立

操作系统实验Nachos64位开发境建立

***

四川大学计算机学院、软件学院

实验报告

学号:姓名:专业:班级:软件第周

课程名称操作系统实验课时 2

实验项目Nachos 64 位开发境建立实验时间90 分钟

1. Ubuntu 下搭建Nachos开发环境

实验目的

x86,Windows10,

VMware Workstation Pro, 实验环境

SSHSecureShellClient-3.2.9

任务:Ubuntu 下搭建Nachos开发环境

步骤:

1.C 言编译环境的搭建

1)下载源码

实验内容

(算法、程

序、步骤和

方法)

2)gcc 版本管理:sudo apt-get install gcc-5 g++-5

3)安装gcc 和g++ 多平台库sudo apt-get install gcc-multilib

g++-multilib

2. NachOS编译、修改与测试

(1) 将NachOS源码压缩包放置在桌面/cd 进入桌面目录

(2) 解压NachOS源码压缩:tar -xzvf 0.gz

(3) cd NachOS-4.1 进入到解压目录

(4) 修改sysdep.h 文件: cd code/lib/ vi sysdep.h

(5) 建立依赖关系

cd ./code/build.linux

make depend

(6) 修改Makefile

根据错误提示删除203 行的-fwritable-strings 选项

(7)执行make会出现错误:

(8)修改NachOS-4.1/code/lib/, 将编译出错中的凡是

包含numInList, first, last, IsEmpty(), IsInList 的方法或属性修改为this->numInList, this->first, this->last,

操作系统实验-2014(DOC)

操作系统实验-2014(DOC)

许昌学院

《操作系统》实验报告手册

学号: 1101120207

姓名:孙萍

班级:计科2班

成绩:

2014年02月

实验一 Linux操作系统的安装与配置

实验时间:实验地点:计科楼107 成绩:

【实验目的】

1.了解Linux操作系统的发展历史,熟悉Linux发行版和Linux内核的区别。

2.了解Linux操作系统安装的软硬件条件,熟悉Linux系统的安装方法,特别

是如何在虚拟机上安装、配置该操作系统。

3.了解在多操作系统环境下如何本地安装(光盘安装)Linux系统。

4.了解Linux操作系统的文件系统结构及其特点,熟悉Linux系统的登入和登

出过程

【实验内容】

1、安装并配置vmware虚拟机,设置运行环境,特别要启动NAT和USB支持。

2、在vmware上安装Red Hat Linux 9.0,指定最大空间为20G以上(具体视硬盘剩余空间而定)。当对虚拟磁盘空间分区时,需至少指定10G给“/”(主目录),分区格式为ext3,还需指定与内存容量相同的swap(交换)区。

3、安装完Red Hat Linux 9.0系统后,需配置硬件(如网卡、显卡等)和软件(如编程开发软件等)。

4、启动Linux系统和退出Linux系统

【实验步骤和结果】

1、启动VMware,建立Linux虚拟机,完成后的结果如下图所示。

2、在vmware上安装Red Hat Linux 9.0

【实验总结和体会】

通过安装虚拟机等操作让我认识到Linux这系统一些基本特点,有别于我们机器上使用的系统,发现原来通过虚拟机这个软件还可以在已有系统的基础上使用其他操作系统。这有利于我们学习。

Nachos平台操作系统上机实践指南

Nachos平台操作系统上机实践指南

目录

第一章试验环境介绍 (4)

1.1 引言 (4)

1.2 Nachos平台的功能特点简介 (4)

1.2.1 什么是Nachos (4)

1.2.2 Nachos的特点功能介绍 (4)

1.3 Nachos平台的搭建与配置 (5)

1.3.1 Nachos试验环境文件列表 (5)

1.3.2 Nachos试验环境搭建步骤 (6)

1.3.3 Nachos的功能模块组成结构 (22)

1.3.4 Nachos的编译运行开发环境 (22)

第二章Nachos平台技术实现说明 (24)

2.1 Nachos的机器模拟机制概述 (24)

2.1.1 Sysdep模块实现机制分析 (24)

2.1.2 中断处理模块实现机制分析 (27)

2.1.3 时钟中断模块实现机制分析 (28)

2.1.4 终端设备模块实现机制分析 (29)

2.1.5 磁盘设备模块实现机制分析 (29)

2.1.6 系统运行情况统计 (30)

2.2 Nachos中的进程/线程管理 (30)

2.2.1 相关知识点回顾 (30)

2.2.2 功能概述 (30)

2.2.3 具体模块实现介绍 (31)

2.3 Nachos中的文件系统管理 (33)

2.3.1 相关知识点回顾 (33)

2.3.2 功能概述 (34)

2.3.3 具体模块实现介绍 (34)

2.4 Nachos中的存储系统管理 (36)

2.4.1 相关知识点回顾 (36)

2.4.2 功能概述 (36)

2.4.3 具体模块实现介绍 (37)

2.5 Nachos中的网络系统管理 (37)

2.5.1 相关知识点回顾 (37)

操作系统原理上机实践指南_Nachos

操作系统原理上机实践指南_Nachos

单位:南开大学机器智能研究所

Institute of Machine Intelligence

日期:二零零七年十月

修订记录

目录

第一章试验环境介绍 (4)

1.1引言 (4)

1.2Nachos平台的功能特点简介 (4)

1.2.1 什么是Nachos (4)

1.2.2 Nachos的特点功能介绍 (4)

1.3Nachos平台的搭建与配置 (5)

1.3.1Nachos试验环境文件列表 (5)

1.3.2Nachos试验环境搭建步骤 (6)

1.3.3Nachos的功能模块组成结构 (22)

1.3.4Nachos的编译运行开发环境 (22)

第二章Nachos平台技术实现说明 (24)

2.1Nachos的机器模拟机制概述 (24)

2.1.1Sysdep模块实现机制分析 (24)

2.1.2中断处理模块实现机制分析 (27)

2.1.3时钟中断模块实现机制分析 (28)

2.1.4终端设备模块实现机制分析 (29)

2.1.5磁盘设备模块实现机制分析 (29)

2.1.6系统运行情况统计 (30)

2.2Nachos中的进程/线程管理 (30)

2.2.1相关知识点回顾 (30)

2.2.2功能概述 (30)

2.2.3具体模块实现介绍 (31)

2.3Nachos中的文件系统管理 (33)

2.3.1相关知识点回顾 (33)

2.3.2功能概述 (34)

2.3.3具体模块实现介绍 (34)

2.4Nachos中的存储系统管理 (36)

2.4.1相关知识点回顾 (36)

2.4.2功能概述 (36)

2.4.3具体模块实现介绍 (37)

利用Nachos操作系统研究和实验虚拟内存

利用Nachos操作系统研究和实验虚拟内存

利用Nachos操作系统研究和实验虚拟内存

摘要:本文分析和论述了如何利用教学指导型操作系统Nachos研究和实验虚拟内存。通过详细的实例设计与分析,阐述了在Nachos操作系统中如何构建虚拟内存,如何实现虚拟内存的各种调度算法;如何实验和分析虚拟内存的工作过程和性能。对虚拟内存的教学和科研具有一定的指导辅助作用。

关键词:操作系统;虚拟内存;实践教学;Nachos

1引言

虚拟内存的实现和运行同时涉及到内存管理、调度与中断、文件系统等内核诸多方面的问题。因此在操作系统的教学和实验中虚拟内存的讲解和实验是较为棘手和困难的一个问题。为了能够讲清虚拟内存的基本构造和工作原理或想独立实践一下虚拟内存的构造和各种虚拟内存策略,我们可以利用一下教学指导型操作系统Nachos。由于Nachos提供了一个自由构造虚拟内存的框架,可让我们在其上开发和构造自主设计的虚拟内存,辅助我们更好的开展好虚拟内存的教学和研究。

2内存管理和虚拟内存构造机制

Nachos在它的页表机制中仅提供了可让用户构造虚拟内存的基本机制。页表结构是由TranslationEntry 类定义的,该定义在文件machine/translation.h中: class TranslationEntry {

public:

int virtualPage; //逻辑页号

int physicalPage; //物理页号

bool valid; //有效位

bool readOnly; //只读位

bool use; //引用位

bool dirty; //修改位

Nachos系统调用实习报告

Nachos系统调用实习报告

Nachos系统调用实习报告

在本次实习中,我参与了Nachos系统的开发与优化工作。Nachos是一款开源的嵌入式操作系统,旨在提供安全、高效和可靠的计算环境。通过实习,我希望能够更深入地理解操作系统的内部机制,提升我的系统编程技能,并且在实际项目中运用所学知识。

在进行系统调用设计时,遇到了参数传递的问题。经过研究,我们决定采用寄存器传递参数,并优化了寄存器的使用方式,提高了调用效率。

在实现文件系统时,遇到了读写性能的问题。我们通过对文件系统进行优化,包括缓存机制、文件分割等手段,有效地提高了读写性能。在多任务调度中,遇到了任务优先级冲突的问题。我们通过引入任务调度器,实现了任务的动态优先级调整,解决了冲突问题。

团队合作:在实习期间,我与团队成员积极沟通,共同解决了许多问题。我们经常进行技术讨论,分享解决方案,共同优化系统性能。这种团队合作的方式让我收获颇丰。

在实习过程中,我运用了所学的操作系统知识,如进程管理、文件系统、设备驱动等,对Nachos系统进行优化。同时,我还学习了汇编

语言、C语言以及嵌入式开发的相关知识,并将其应用到实际项目中。这些知识的应用让我对操作系统有了更深入的理解。

通过实习,我更加深入地理解了操作系统的内部机制和实现方法。

我学会了如何在实际项目中运用所学知识,提高了我的系统编程技能。我认识到团队合作的重要性,学会了如何与他人协作解决问题。

我认识到自我学习和持续进步的重要性,需要在工作中不断学习和提升。

对某些专业知识掌握不够深入,需要进一步学习。

在解决问题时,有时过于急躁,需要更加耐心地思考和分析问题。

nachos 实验报告

nachos 实验报告

nachos 实验报告

《Nachos 实验报告》

在计算机科学领域,操作系统是一个非常重要的概念。它是计算机系统的核心组成部分,负责管理计算机的资源并提供用户和应用程序之间的接口。为了更好地理解操作系统的工作原理,我们进行了一项名为Nachos的实验。Nachos是一个用于教学目的的操作系统内核。它是在加州大学伯克利分校开发的,旨在帮助学生学习操作系统的基本概念和原理。在这个实验中,我们使用Nachos来深入了解操作系统的各个方面,包括进程管理、内存管理、文件系统和网络通信等。

首先,我们学习了Nachos的基本结构和架构。它由多个模块组成,每个模块负责不同的功能。通过阅读Nachos的源代码和文档,我们逐渐理解了操作系统内核的组成和工作原理。

接着,我们进行了一系列的实验,来探索Nachos的各种功能。我们实现了进程管理模块,通过创建和调度多个进程来理解进程的概念和调度算法。我们还实现了内存管理模块,通过分配和释放内存来了解内存管理的重要性。此外,我们还实现了文件系统和网络通信模块,以便更好地理解操作系统对外部设备和网络的支持。

通过这些实验,我们不仅加深了对操作系统的理解,还提高了编程和调试的能力。Nachos实验让我们从理论知识转化为实际操作,让我们更加深入地理解了操作系统的工作原理。

总的来说,Nachos实验为我们提供了一个宝贵的学习机会,让我们对操作系统有了更深入的了解。通过这个实验,我们不仅学到了知识,还培养了解决问题

的能力和团队合作精神。希望未来能够继续深入研究操作系统,为计算机科学领域做出更多的贡献。

Nachos操作系统部分实验说明

Nachos操作系统部分实验说明
以上设计实验输出结果的分析:
主线程首先执行后放弃CPU,T1优先级最高排在队首先被选中。主线程由于优 先级最低被排在队列尾。
T1 线程放弃 CPU,当前 T2 在队首先被选中。T1 优先级最高又被排在队首。 T2线程放弃CPU,当前T1在队首先被选中。T2被排在队首。 如此重复5次,T1和T2线程执行结束,队列中仅有主线程了。主线程连续执行 4次后结束工作。
2、修改../labe 中的 Makefile.local 文件如下: INCPATH += -I- -I ../lab2 –I ../threads ……….
3、在线程类中说明一个私有成员 Priority 放线程优先数。在 thread.h 的 Thread 类中修改如下。class Thread{ public: Thread(char * debugName,int priority); //设置线程优先数 ……….. int GetKey(){return Priority;}//取线程优先数
调度类 Scheduler 管理着一个就绪队列 list。它的成员函数 ReadyToRun(currentThread)将当前线程挂入该队列的队尾: Scheduler::ReadyToRun (Thread *thread) {
DEBUG('t', "Putting thread %s on ready list.\n", thread>getName());

操作系统第一次试验报告

操作系统第一次试验报告

甘肃政法学院

本科生实验报告

(一)

姓名:***

学院: ***学院

专业: 信息管理与信息系统

班级: **级***班

实验课程名称:操作系统实验

实验日期: 2014 年 10 月日

指导教师及职称:**

实验成绩:

开课时间: 2014 - 2015 学年第一学期甘肃政法学院实验管理中心印制

2、windows下DOS命令的练习:windows+R键输入CMD进入DOS窗口;

3、你虚拟机中,进入系统工具,进入终端用户,进入了Linux的DOS命令窗口。

四、实验过程与分析

1、V Mware10的安装和下载,步骤如下:

(1)、直接去官网下载程序。

(2)、双击程序自动解压,解压完成后进入安装向导。

(3)、安装向导,点击下一步;

(4)、选择设置类型,分典型、自定义2种;点击更新修改路径。

(5)、配置组件-改你的共享主机存储路径(最好和VM安装到同一目录下方便以后更新或者删除);点击更改修改保存路径。

(6)、点击下一步,设置好后点击继续,软件安装中,这个需要几分钟时间。

(7)、输入许可证秘钥:JV2XE-AY0D5-4Z1K9-NAAQH-XXXXX 点击输入,提示安装完成;

并在桌面生成快捷方式。点击运行:

(8)、软件安装完成后的界面。

2、新建Linux虚拟机步骤如下:

(9)、创建虚拟机MyLinux:运行VMware Workstation 10软件,单击“创建新

的虚拟机”在弹出的“新建虚拟机向导”中,选择“自定义”,单击“下一步”

3(10)、硬件兼容性选择“Workstation 10.0”,选择“下一步”

操作系统实验报告

操作系统实验报告

操作系统实验报告

操作系统是计算机科学中十分重要的一门课程,本次实验是关于操作系统的,通过实验,我们可以更深入地了解操作系统的相关知识和操作。本篇文章将着重介绍本次操作系统实验的内容和实验过程中的收获。

一、实验内容

本次实验内容主要涉及操作系统的进程、线程和进程同步三部分。具体内容包括:

1. 进程的创建和管理

2. 线程的创建和管理

3. 进程同步的实现

在实验过程中,我们将分别使用C语言和Linux操作系统实现上述功能。

二、实验过程

1. 进程的创建和管理

在这一部分实验中,我们要创建多个进程,实现进程的调度和管理功能。我们采用了Linux系统下的fork()函数,用于创建子进程。在程序运行时,首先创建一个父进程,然后使用fork()函数创建四个子进程,每个子进程都有自己的进程号(pid),并在屏幕上输出该进程号以示区分。为了实现进程的调度功能,我们在代码中加入了sleep()函数,用于将进程挂起一段时间,然后再轮流执行其他进程。

2. 线程的创建和管理

在这一部分实验中,我们使用了C语言的POSIX线程库pthread.h,实现多线程的功能。同样地,我们采用了Linux系统下的fork()函数来创建线程。在代码运行时,我们创建了两个线程,并在屏幕上输出线程号(tid)以示区分。为了实现线程的调度和管理功能,我们在代码中加入了pthread_join()函数,用于等待线程的执行完成。

3. 进程同步的实现

在这一部分实验中,我们使用了Linux系统下的进程同步工具——信号量(semaphore)。在代码中,我们使用sem_init()函数创建信号量,使用sem_wait()函数阻塞进程或线程,使用sem_post()函数释放进程或线程。为了更好地理解信号量的工作原理,我们将代码分为生产者和消费者两部分,其中生产者用于向缓冲区添加数据,消费者则用于删除数据。在这个过程中,我们需要使用信号量控制生产者和消费者的数量,避免出现生产过多或消费过多的情况。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Nachos实验项目

本实验项目采用纽约大学计算机系相关课程的实验设计。这些实验的内容以及nachos 的完整介绍请参考相关文档。

Nachos实验项目将采用分组方式完成。每4人为一组(个别组除外)。分组确定后,未经特别批准,不得变更。请各组组长在自己的起始目录下创建试验结果提交目录“nachos”(不含引号,均为小写字母)。

每次实验,我们都将指定需要提交的内容和截止时间,第一次试验的提交内容放在起始目录下的“nachos/1”目录内,第二次的放在“nachos/2”内,依次类推。请大家关注,并严格按要求操作。一个小组只要提交一份实验报告即可。对未按实验提交要求操作而造成提交失败的,将被视为实验未完成(提交内容由程序自动收集)。

从第4周起,双周的周二下午2:30~5:30为试验时间并兼做理论课程答疑时间。实验地点在404。

实验一体验Nachos下的并发程序设计

(实验指导:os_lab.ppt)

1内容简述

本次实验的目的在于对nachos进行熟悉,并初步体验nachos下的并发程序设计。实验内容分三部分:安装nachos;用C++实现双向有序链表;在nachos系统中使用你所写的链表程序并演示一些并发错误。

2实验内容(详见英文文档nachos-lab.pdf文档3.1章)

2.1安装nachos

2.2实现双向有序链表(50%)

如对c++不很熟悉,可以参考nachos-3.4/c++example/中的有关实现。

2.3体验nachos线程系统(50%)

需要做的更改有:

1)将dllist.h, , 等文件拷贝到nachos-3.4/code/threads/目录中。

2)修改mon中的THREAD_H、THREAD_C、THREAD_O以保证新的文件确

实被编译了。

3)根据实验内容,,等文件可能需要改动。

3实验结果的提交

本实验应提交的内容:

mon

dllist.h

nachos01.doc

其中,nachos01.doc为实验报告。

4 实验的提交截止时间:2014年4月7日

相关文档
最新文档