操作系统课程设计指导书.docx

上传人:b****5 文档编号:3250769 上传时间:2022-11-21 格式:DOCX 页数:47 大小:1.10MB
下载 相关 举报
操作系统课程设计指导书.docx_第1页
第1页 / 共47页
操作系统课程设计指导书.docx_第2页
第2页 / 共47页
操作系统课程设计指导书.docx_第3页
第3页 / 共47页
操作系统课程设计指导书.docx_第4页
第4页 / 共47页
操作系统课程设计指导书.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

操作系统课程设计指导书.docx

《操作系统课程设计指导书.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计指导书.docx(47页珍藏版)》请在冰豆网上搜索。

操作系统课程设计指导书.docx

操作系统课程设计指导书

 

 

《操作系统》实习指导书

 

信息工程学院

2015年12月

《操作系统实习》教学大纲

课程编号:

B3503004学分:

1

课程英文名称:

OperatingSystemofcomputer课程类别:

专业必修课

开课学期:

第五学期开课单位(系):

计算机系

适用专业:

计算机科学与技术、计算机科学与技术(网络工程)

制定人:

宋洪军

一、制定依据

根据浙江农林大学2012版培养方案、操作系统课程教学大纲等制订本实习教学大纲。

二、目的与基本要求

1.目的

操作系统实习是操作系统课程的重要实践性环节。

通过银行排队叫号系统、请求页式管理、小型文件系统、Linux进程管理、Linux进程间通信和Linux设备管理的设计与实现,可以加深学生对课堂中所讲授内容的理解,培养学生的系统开发能力,加强学生的项目经验,使学生初步具有研究、设计、编制和调试操作系统模块的能力。

2.基本要求

根据操作系统实习任务书所确定的设计内容,每位同学根据要求选择实习题目进行设计,针对设计内容查阅相关资料、进行理论分析、确定相应算法并编程实现原型系统;完成原型系统后,按照浙江农林大学实习说明书书写规范,编写操作系统实习报告。

注意:

严禁抄袭,所提交的报告不能雷同,查出后相关同学设计成绩以零分处理。

三、实习内容

题目一:

银行排队叫号系统

题目二:

请求页式管理

题目三:

用U盘制作Windows7操作系统

题目四:

文件系统的设计与实现

题目五:

Linux文件基本操作

题目六:

Linux进程间通信

题目七:

Linux文件系统调用

题目八:

批处理的简单应用

题目九:

linux下WWW服务器的配置

题目十:

linux下FTP服务器的配置

四、组织及指导方式

1.学生的组织

本实习安排十个题目,题目6必做,其余1~8题选择四个题目,9、10选择一个题目。

2.指导方式

跟班指导。

五、成绩评定

由指导教师根据学生在设计中的表现、任务的完成情况、实习报告的质量等综合评定。

评分标准为:

1)实验表现占40%;2)设计、提交报告占20%;3)出勤率占40%。

根据以上三个标准,实习成绩按优秀、良好、中等、及格和不及格五级记分制评定。

六、教材及主要参考资料

1.教材

[1]张尧学主编.计算机操作系统教程(第三版).北京:

清华大学出版社,2006

2.主要参考书

[1]张尧学编.计算机操作系统教程(第三版)习题解答与实验指导.北京:

清华大学出版社,2006

[2]汤子瀛主编.计算机操作系统(第三版).西安:

西安电子科技大学出版社,2001

[3]张坤等编.操作系统实验教程.北京:

清华大学出版社,2008

[4]张丽芬等编.操作系统实验教程.北京:

清华大学出版社,2006

[5]AndrewS.Tanenbaum.ModernOperatingSystems,SecondEdition.EnglewoodCliffs,N.J,PrenticeHall,2001

[6]屠祁等编.操作系统基础(第三版).北京:

清华大学出版社,2000

[7]冯耀霖等编.操作系统.西安:

西安电子科技大学出版社,2001

[8]左万历.计算机操作系统教程(第二版).北京:

高等教育出版社,2004

第一章设计规范与说明

1.1设计规范

一、问题分析与系统结构的设计

充分地分析和理解问题本身。

本阶段主要解决“要作什么,限制条件是什么”。

首先从问题中抽取合适的数据结构,作为整个系统的底层,解决问题的算法作为上层。

定义数据的存储结构及其在这些结构上的操作,使得在上层的应用中可以通过这些操作完成对数据结构层的访问。

在这个过程中,要综合考虑系统功能,使所设置的操作要易于系统整体功能的实现。

最后写出每个函数的功能、自己编写的代码部分要用特别方式标记出来,列出函数间的调用关系,可以使用调用关系图表示则更加清晰,这样便完成了系统结构设计。

二、详细设计和编码

详细设计的目的是对函数的进一步求精。

用if、while和赋值语句等类语言写出算法的框架。

利用类语言的目的是避免陷入细节。

在编码时,可以对详细设计的结果进一步求精,用高级语言表示出来。

应注意以下事项。

1.程序的每一行最好不超过60个字符。

每个函数通常不要太长,以40行为宜。

函数包含的程序行数太多,易于造成阅读困难。

2.变量定义为:

名+类型。

如:

LinkList*firstLinkListPointer;其中first为名,后面的LinkListPointer说明是链表指针类。

3.控制if、while等语句的嵌套深度,最多不超过5层。

4.对每一段程序完成的作用,除非常明显的除外(如:

x=x+1;注释为x加1,没有什么意义),都应加以注释。

这会对程序的调试提供很多方便。

5.对每个数据结构和其函数要进行单元测试。

6.根据情况可以设立若干调试点,即输出若干信息,用于验证和你的设想是否一致。

另外,对于输入输出语句,必须对它们的作用加以说明。

否则,在调试程序时,无法了解系统需要输入说明,系统输出的又是什么。

1.2报告的整理与形成

在程序开发过程中,逐步形成各种必要的文档及资料。

所提交的电子版文件夹以姓名+班级+学号命名,文件夹包括:

(1)实习报告:

要求按照给出的操作系统实习报告封面及正文格式书写;

(2)试验截图:

操作过程截图;

(3)可执行文件:

带注释的源程序代码。

为每一个设计题目建立文件夹,文件夹包含以上三项内容,压缩后提交。

第二章设计内容

2.1银行排队叫号系统

一、设计目的

熟练掌握pv操作的相关知识;认识信号量的相关含义;加深对线程(进程)的认识;

二、设计内容

某银行提供10个服务窗口(7个对私服务窗口,3个对公服务窗口)和100个供顾客等待的座位。

顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。

取号机每次仅允许一位顾客使用,有对公和对私两类号,每位顾客只能选取其中一个。

当营业员空闲时,通过叫号选取一位顾客,并为其服务。

要求:

调试源程序,使之能运行。

修改程序,加入等待的另一种情况:

取了号码在叫到之前就自己离开了,为一致起见,假定凡是号码为4的倍数的客户自行离开,离开时间为叫到该客户之前的一个随机数。

当每一个客户离开时,增加一个功能:

输出客户从开始取票到离开银行的实际等待时间。

三、原理及算法

排队系统完全模拟了人群排队的全过程,通过取票进队。

排队等待、叫号服务等功能,很好的解决了客户在服务机构办理业务时所遇到的各种排队、拥挤和混乱现象,代替了人们站队的辛苦,把顾客等待的烦恼变成了一段难得的休闲时光,使客户拥有了一个自由的空间和一份美好的心情。

排队过程大致流程为:

本次的银行叫号系统由pv操作来模拟实现。

实验中用到的相关知识介绍(windows环境下)

1.同步对象

同步对象是指Windows中用于实现同步与互斥的实体,包括信号量(Semaphore)、互斥量(Mutex)、临界区(CriticalSection)和事件(Events)等。

本实验中使用到信号量、互斥量和临界区三个同步对象。

同步对象的使用步骤:

(1)创建/初始化同步对象。

(2)请求同步对象,进入临界区(互斥量上锁)。

(3)释放同步对象(互斥量解锁)。

(4)这些对象在一个线程中创建,在其他线程中都可以使用,实现同步与互斥。

2.相关API的功能及使用

利用WindowsSDK提供的API编程实现实验题目要求,而VC中包含有WindowsSDK的所有工具和定义。

要使用这些API,需要包含堆这些函数进行说明的SDK头文件——最常见的是Windows.h(特殊的API调用还需要包含其他头文件)

下面给出的是本实验使用到的API的功能和使用方法简单介绍:

(1)CreateThread

功能——创建一个在调用进程的地址空间中执行的线程

格式:

HANDLECreateThread(LPSECURITY_ATTRIBUTESlpThreadAttributes,

DWORDdwStackSize,

LPTHREAD_START_ROUTINElpStartAddress,

LPVOIDlpParamiter,DWORDdwCreationFlags,LpdwordlpThread)

参数说明:

lpThreadAttributes——指向一个LPSECURITY_ATTRIBUTES(新线程的安全性描述符)。

dwStackSize——定义原始堆栈大小。

lpStartAddress——指向

LPTHRAED_START_ROUTINE类型定义的函数。

lpParamiter——定义一个给进程传递参数的指针。

dwCreationFlags——定义控制线程创建的附加标志。

lpThread——保存线程标志符(32位)

(2)CreateMutex

功能——创建一个命名或匿名的互斥量对象

格式:

HANDLECreateMutex(LPSECURITY_ATTRIBUTESlpMutexAttributes,BOOLbInitialOwner,

LPCTSTRlpName);

参数说明:

lpMutexAttributes——必须取值NULL。

bInitialOwner——指示当前线程是否马上拥有该互斥量(即马上加锁)。

lpName——互斥量名称。

(3)CreateSemaphore

功能——创建一个命名或匿名的信号量对象

格式:

HANDLECreateSemaphore(LPSECURITY_ATTRIBUTESlpSemaphoreAttributes,

LONGlInitialCount,

LONGlMaximumCount,

LPCTSTRlpName);

参数说明:

lpSemaphoreAttributes——必须取值NULL。

lInitialCount——信号量的初始值。

该值大于0,但小于lMaximumCount指定的最大值。

lMaximumCount——信号量的最大值。

lpName——信号量名称。

(4)WaitForSingleObject

功能——使程序处于等待状态,直到信号量hHandle出现(即其值大于等于1)或超过规定的等待时间

格式:

DWORDWaitForSingleObject(HANDLEhHandle,DWORDdwMilliseconds);

参数说明:

hHandle——信号量指针。

dwMilliseconds——等待的最长时间(INFINITE为无限等待)。

(5)ReleaseSemaphore

功能——对指定信号量加上一个指定大小的量。

成功执行则返回非0值

格式:

BOOLReleaseSemaphore(HANDLEhSemaphore,

LONGlReleaseCount,

LPLONGlppreviousCount);

参数说明:

hSemaphore——信号量指针。

lReleaseCount——信号量的增量。

lppreviousCount——保存信号量当前值。

(6)ReleaseMutex

功能——打开互斥锁,即把互斥量加1。

成功调用则返回0

格式:

BOOLReleaseMutex(HANDLEhMutex);

参数说明:

hMutex——互斥量指针。

(7)InitializeCriticalSection

功能——初始化临界区对象

格式:

VOIDInitializeCritical

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 自我管理与提升

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1