1 / 40
文档名称:

操作系统实验报告实验一.doc

格式:doc   大小:213KB   页数:40页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统实验报告实验一.doc

上传人:雾里行舟 2019/5/9 文件大小:213 KB

下载得到文件列表

操作系统实验报告实验一.doc

文档介绍

文档介绍:薂计算机操作系统实验报告螁一、实验一“生产者-消费者”问题膁二、实验目的:袆通过对“生产者-消费者”问题编程实现,了解线程创建、同步信号量、互斥信号量、临界区的创建和使用。蚂了解线程互斥和同步机制。膂了解PV原语和信号量在线程互斥和同步机制中的运用。虿薅三、实验内容蚂有界缓冲区内设有5个存储单位,放入/取出的数据项设定为1~5这5个整形数。要求每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容、当前生产者/消费者标识符薃四、分析设计莁实验陈述:蚈1、基础知识:螂本实验用到几个API函数:螀CreatThread,CreatMutex,CreatSemaphore,WaitForSingleObject,ReleaseSemaphore,ReleaseMutex,InitializeCriticalSection,EnterCriticalSection,LeaveCriticalSection螈这些函数的作用:莇      CreatThread:创建一个线程,该线程在调用进程的地址空间中执    袂 CreatMutex:产生一个命名的或者匿名的互斥量对象。WaitForSingleObject(对应p操作)锁上互斥锁,ReleaseMutex(对应v操作)打开互斥锁。膀   CreateSemaphore:创建一个命名的或者匿名的信号对象。信号量可以看作是在互斥量上的一个扩展。薀  WaitForSingleObject:使程序处于等待状态,直到信号量(或互斥量)hHandle出现或者超过规定的等待最长时间,信号量出现指信号量大于或等于1,互斥量出现指打开互斥锁。在返回之前将信号量减1或者锁上互斥锁。膅  ReleaseSemaphore:将所指信号量加上指定大小的一个量,执行成功,则返回非0值。芆  ReleaseMutex:用来打开互斥量,即将互斥量加1。成功调用则返回0。薁  InitializeCriticalSection:该函数初始化临界区对象。羈  EnterCriticalSection:该函数用于等待指定临界区对象的所有权。当调用线程被赋予所有权时,该函数返回。       膈 LeaveCriticalSection:该函数释放指定的临界区对象的所有权。芆五、测试数据设计及测试结果分析羂已知测试用例文件输入的文件时: 6 开始在缓冲区 0 6 完成生产过程:袁缓冲区【0】:6莈生成者 3 3 开始在缓冲区 1 3 完成生产过程:节缓冲区【1】: 3肀消费者 7请求消费 1 产品莇消费者 7请求消费 1 产品螅生产者 2开始在缓冲区 2生产产品蒇生产者 2完成生产过程:肆缓冲区【2】:2袅生产者 1开始在缓冲区 1完成生产过程:袄缓冲区【3】:1袅消费者 7开始消费 1产品膀消费者 7成功消费 1:蚇缓冲区【3】:-1袇消费者 7请求消费 3产品羅消费者 7开始消费 3产品薁消费者 7成功消费3:荿缓冲区【1】:-1蚆消费者 7请求消费 2产品肅消费者 7开始消费 2产品肂消费者 7成功消费2:袇缓冲区【2】:-1蒅消费者4请求消费 5产品膄生产者 5 开始在缓冲区1生产产品蕿生产者5完成生产过程蒈缓冲区【1】:5芄消费者 4请求消费 5产品薀消费者4请求消费 5产品芁缓冲区【1】:-1芇消费者 4请求消费 6产品莄消费者4开始消费 6产品羁消费者4成功消费 6:蝿缓冲区【0】:-1