操作系统 进程同步和互斥代码 os 奇偶数 (具体要求请看资源描述)下载

weixin_39820780 2020-11-05 08:30:34
三个进程P1,P2,P3,以及有N(>1)个单元的缓冲区。P1调用produce()产生一个整数,调用put()将其放入缓冲区。P2调用getodd()从缓冲区取出一个奇数,然后调用countodd()计算奇数的个数;P2调用geteven()从缓冲区取出一个偶数,然后调用counteven()计算偶数的个数。用信号量机制实现进程同步

使用到的函数和信号量

HANDLE mutex;
HANDLE empty;
HANDLE full;
创建信号量
HANDLE CreateSemaphore(
__in_opt LPSECURITY_ATTRIBUTES lpSemapho
相关下载链接://download.csdn.net/download/nangongqing/2465773?utm_source=bbsseo
...全文
74 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
三个进程P1,P2,P3,以及有N(>1)个单元的缓冲区。P1调用produce()产生一个整,调用put()将其放入缓冲区。P2调用getodd()从缓冲区取出一个奇,然后调用countodd()计算奇的个;P2调用geteven()从缓冲区取出一个偶,然后调用counteven()计算偶的个。用信号量机制实现进程同步 使用到的函和信号量 HANDLE mutex; HANDLE empty; HANDLE full; 创建信号量 HANDLE CreateSemaphore( __in_opt LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,// lpSemaphoreAttributes是信号量的安全属性 可为NULL __in LONG lInitialCount,// lInitialCount是初始化的信号量 __in LONG lMaximumCount,// lMaximumCount是允许信号量增加到最大值 __in_opt LPCWSTR lpName//lpName是信号量的名称 可为NULL ); 创建互斥信号量 HANDLE CreateMutex(  LPSECURITY_ATTRIBUTES lpMutexAttributes, // 指向安全属性的指针 可为NULL  BOOL bInitialOwner, // 初始化互斥对象的所有者  LPCTSTR lpName // 指向互斥对象名的指针 ); 申一个资源 WaitForSingleObject(HANDLE full,INFINITE); 释放资源 ReleaseSemaphore( __in HANDLE hSemaphore,// hSemaphore是要增加的信号量句柄 __in LONG lReleaseCount,// lReleaseCount是增加的计。 __out_opt LPLONG lpPreviousCount//lpPreviousCount是增加前的值返回。 ); 释放互斥信号量 BOOL ReleaseMutex(HANDLE hMutex); DWORD WaitForMultipleObjects( DWORD nCount, // number of handles in array CONST HANDLE *lpHandles, // object-handle array BOOL bWaitAll, // wait option DWORD dwMilliseconds // time-out interval );

12,694

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧