八文_文档搜索
 
设为首页   |  加入收藏夹
 八文网 - 汇聚八方文档 - 做最优秀的免费文档下载网站
 

操作系统实验指导书

文档类型: Microsoft Word 文档 文档大小:105KB
操作系统实验指导书(2006年4月5日)
一、实验内容及课时进程同步与互斥(6学时)Windows虚拟存储器管理(6学时)文件系统(6学时)
二、实验环境
操作系统:Windows 2000
参考程序所使用的程序设计语言:VC 6.0
三、说明不限制实验所使用的程序设计语言.请学生复习所使用的程序设计语言、学习Windows SDK的API.
要求:每个实验都得提交实验报告.
四、实验时间安排实验
第一次上机
第二次上机
第三次上机实验一
第8周,周一4大节
第9周,周一4大节
第10周,周一4大节实验二
第12周,周一4大节
第13周,周一4大节
第14周,周一4大节实验三
第16周,周一4大节
第17周,周一4大节
第18周,周一4大节
注:9周,地点为70510~14周,地点为2-60116~18周,地点为2-705实验一进程同步与互斥
一、实验目的掌握基本的同步与互斥算法,理解生产者消费者模型.学习使用Windows 2000XP中基本的同步对象,掌握相关API的使用方法.
了解Windows 2000XP中多线程的并发执行机制,实现进程的同步与互斥.
二、实验内容及要求实验内容以生产者消费者模型为依据,在Windows 2000环境下创建一个控制台进程,在该进程中创建n个线程模拟生产者和消费者、实现进程(线程)的同步与互斥.
实验要求学习并理解生产者消费者模型及其同步互斥规则;学习了解Windows同步对象及其特性;熟悉实验环境、掌握相关API的使用方法;设计程序,实现生产者消费者进程(线程)的同步与互斥;提交实验报告.
三、相关知识介绍同步对象同步对象是指Windows中用于实现同步与互斥的实体,包括信号量(Semaphore),互斥量(Mutex),临界区(Critical Section)和事件(Events)等.本实验中使用到信号量,互斥量和临界区三个同步对象.
同步对象的使用步骤:创建初始化同步对象.请求同步对象,进入临界区(互斥量上锁).释放同步对象(互斥量解锁).这些对象在一个线程中创建、在其他线程中都可以使用,实现同步与互斥.
相关API的功能及使用我们利用Windows SDK提供的API编程实现实验题目要求,而VC中包含有Windows SDK的所有工具和定义.要使用这些API,需要包含堆这些函数进行说明的SDK头文件最常见的是Windows.h(特殊的API调用还需要包含其他头文件).
下面给出的是本实验使用到的API的功能和使用方法简单介绍.
(1) CreateThread功能创建一个在调用进程的地址空间中执行的线程格式HANDLE CreateThread( lpThread );参数说明指向一个新线程的安全性描述符).
dwStackSize定义原始堆栈大小指向使用类型定义的函数.
lpParamiter定义一个给进程传递参数的指针定义控制线程创建的附加标志.lpThread保存线程标志符(32位)
(2) CreateMutex功能创建一个命名或匿名的互斥量对象HANDLE lpName);必须取值指示当前线程是否马上拥有该互斥量(即马上加锁).
lpName互斥量名称.
(3) 功能创建一个命名或匿名的信号量对象HANDLE lpName );必须取值信号量的初始值.该值大于0,但小于lMaximumCount指定的最大值.
lMaximumCount信号量的最大值.lpName信号量名称.
(4) 功能使程序处于等待状态、直到信号量hHandle出现(即其值大于等于1)或超过规定的等待时间DWORD hHandle, DWORD ;
hHandle信号量指针等待的最长时间(INFINITE为无限等待).
(5) 功能对指定信号量加上一个指定大小的量.成功执行则返回非0值BOOL );hSemaphore信号量指针.lReleaseCount信号量的增量保存信号量当前值.
(6) ReleaseMutex功能打开互斥锁、即把互斥量加1.成功调用则返回0BOOL hMutex);
hMutex互斥量指针.
(7) 功能初始化临界区对象VOID ;
指向临界区对象的指针.
(8) 功能等待指定临界区对象的所有权VOID ;
(9) 功能释放指定临界区对象的所有权VOID ;
四、实验示例(方法,步骤与例程)测试用例文件测试用例文件用于描述各线程的有关信息,该文件内容及格式如下:
3
说明:第一行给出的是程序中设置的临界区个数;其余各行是各进程信息.
每行中的数据之间用Tab键分隔.
第一列(除第一行外):线程号.
第二列:P生产者、C消费者.
第三列:线程在生产和消费前的休眠时间,单位为秒.
第四及以后各列:消费的产品所对应的生产者线程号.数据结构(1) 用整型数组表示缓冲区.
(2) 用自定义结构ThreadInfo记录一条线程信息,多个线程对应一个ThreadInfo数组.
(3) 通过如下同步对象实现互斥:设一个互斥量h-mutex,实现生产者在查询和保留缓冲区的下一个空位置时进行互斥.
设置h_Semaphore[MAX_THREAD_NUM]信号量数组表示相应产品已经生产,实现生产者与消费者之间的同步.同时,用表示空缓冲区树木的信号量指示是否存在空位置,实现类似的同步,以便开始下一个产品的生产.
设置临界区对象数组PC_Critical[MAX_BUFFER_NUM]实现每个缓冲区上消费者之间的互斥.
程序结构为了方便,程序结构用如下的文字予以描述.
(1) 主函数(2) 初始化缓冲区、消费请求队列及部分同步对象(3) 提取线程信息(4) 完成线程相关同步对象的初始化(5) 创建线程,模拟生产者和消费者(6) 等待所有线程结束(7) 程序结束(8) 消费者(9) 有无消费请求有、则继续(10);无,则转(16)
(10) 此请求可满足可满足,转(11);否,则阻塞,再转(10)
(11) 确定产品位置(12) 此产品正被消费是,则阻塞,再转(12);否,则转(13)
(13) 进入临界区(请求同一产品的消费者之间互斥)
(14) 消费产品、并判断是否应该释放产品所占缓冲区(15) 退出临界区、转(9)
(16) 结束消费者线程(17) 生产者(18) 存在空缓冲区有、则继续(19);无,则阻塞,再转(18)
(19) 另一生产者在写否,则转(20);是,则阻塞,再转(19)
(20) 进入临界区(请求同一产品的生产者之间互斥)
(21) 在缓冲区中为本线程产品分配空间(22) 退出临界区(23) 写入产品到分配的缓冲区空间中(24) 结束生产者线程示例程序本程序允许的最大临界区数define MAX_BUFFER_NUM 10秒到微秒的乘法因子define INTE_PER_SEC 1000生产和消费进程总数define MAX_THREAD_NUM 64定义记录在测试文件中的线程参数数据结构struct ThreadInfo{int serial;char entity;double delay;int thread_request[MAX_THREAD_NUM;
int n_request;全局变量定义临界区对象的声明,用于管理缓冲区的互斥访问 PC_Critical[MAX_BUFFER_NUM;
int Buffer_ Critical[MAX_BUFFER_NUM; 缓冲区声明HANDLE h_Thread[MAX_THREAD_NUM; 存储线程句柄的数组[MAX_THREAD_NUM; 线程信息数组HANDLE ; 信号量HANDLE h_mutex; 互斥量DWORD n_Thread=0; 实际线程数目DWORD ; 实际缓冲区临界区数目HANDLE h_semephore[MAX_THREAD_NUM; 生产者允许消费的信号量生产,消费及辅助函数的声明void Produce(void p);void Consume(void p);bool ;int ;int ;int main(void){DWORD wait_for_all;ifstream inFile;初始化缓冲区for(int i=0;iThread_Info[;
inFile>Thread_Info[;
inFile>Thread_Info[n_Thread.delay;
char c;inFile.get(c);while(c\n!inFile.eof){ inFile>Thread_Info[[Thread_Info[;
}n_Thread;回显获得的线程信息,便于确认正确性
doc文档的标签: 操作系统 指导书 实验
更多推荐标签: 业余篮球运动   检修计划书   预算个人总结   车工实习心得   劳动法简答   需求波动   资源信息   质量检测报告   沟通函格式   国际贸易毕业   远程安装   勾新鹏   转让协议样本   有法律班   学习知辱明耻   财务报告模版   英语答辩题目   精神文明报告   设计部职责   电网建设安全   电气工长   图象增强方法   月球基地   申请代理   学生社区服务   涓汉绀间华   德育工作记录   中国饮食文化   火车订票系统   旷工如何计算  
相关文档推荐
操作系统
教学系统设计实验指导书
操作系统
操作系统
操作系统实验报告
操作系统自学指导书
操作系统原理课程实验指导书
操作系统
操作系统
操作系统实验实施方案
操作系统
操作系统
操作系统课程实验报告
操作系统
操作系统
操作系统
操作系统
操作系统
操作系统
操作系统
推荐文档下载
高二数学同步辅导教程(第42讲)
课程编号:21537204
历届律考试题精选(刑法)
爱迪下载站合作协议
计算机操作系统期末复习题
2005中国绵阳科技城投资合作洽谈会暨电
首届国际开放式工业自动化大会
招商银行
2005年5月14日
游戏产业
中国职业技术教育体系建构研究博士后工作报
圣诞快乐系列订购表格
国家旅游局行政许可申请受理决定书
平政发[2003]34号
第四届基本法大使培训计划
"八荣八耻"拍手歌
天津市安全生产监督管理局文件
中国制造何时不再贴牌生产
财务规划模板
函授全部
 
文档下载提示:
·最新免费文档下载、毕业论文免费下载、Word文档下载、Excel表格下载、PDF电子书下载、PowerPoint提案下载
·所有文档均为网友上传,仅供学习参考,用作其它用途时请征得相关权益人许可.
·八文网只提供文档共享平台,不对文档内容的正确性及相关内容所引发的后果负责.
·如此文档"操作系统实验指导书"涉及您的权益,请附上网址来信告知web_8wen(#)126.com,本站将认真配合并改正。
Copyright ©2005-2008 八文网-  8Wen.com . All rights reserved.