91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

1。生產者消費者問題(信號量+mutex) 參考教材中的生產者消費者算法,創建5個進程,其中兩個進程為生產者進程,3個進程為消費者進程。一個生產者進程試圖不斷地在一個緩沖中寫入大寫字母,另一個生產者進程試圖不斷地在緩沖中寫入小寫字母。3個消費者不斷地從緩沖中讀取一個字符并輸出。為了使得程序的輸出易于看到結果,仿照閱讀材料中的實例程序,分別在生產者和消費者進程的合適的位置加入一些隨機睡眠時間。 可選的實驗:在上面實驗的基礎上實現部分消費者有選擇地消費某些產品。例如一個消費者只消費小寫字符,一個消費者只消費大寫字母,而另一個消費者則無選擇地消費任何產品。消費者要消費的產品沒有時,消費者進程被阻塞。注意緩沖的管理。 2。用信號量和mutex方式實現睡覺的理發師問題 3。讀者寫者問題 教材和相關的閱讀材料中對讀者寫者問題算法均有描述,但這個算法在不斷地有讀者流的情況下,寫者會被阻塞。編寫一個寫者優先解決讀者寫者問題的程序,其中讀者和寫者均是多個進程,用信號量作為同步互斥機制。

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
#define?nSize?5

int?main(int?argcchar?*?argv[])
{
//printf(“%s\n“argv[1]);
int?id;
if(strcmp(argv[1]“0“)==0)
id=0;
else?if(strcmp(argv[1]“1“)==0)?id=1;
else?id=2;

printf(“Consumer?%d?is?working...\n“id);
//Sleep(rand()%100);

HANDLE?hofempty=OpenSemaphore(SEMAPHORE_ALL_ACCESSTRUE“empty“);

if(hofempty?==?false?)
{
printf(“Consumer?%d?open?empty?failed...\n“id);
exit(1);
}
HANDLE?hoffull=OpenSemaphore(SEMAPHORE_ALL_ACCESSTRUE“full“);
if(hoffull?==?false?)
{
printf(“Consumer?%d?open?full?failed...\n“id);
exit(1);
}
HANDLE?hofmutex=OpenMutex(MUTEX_ALL_ACCESSTRUE“mutex“);
if(hofmutex?==?false?)
{
printf(“Consumer?%d?open?mutex?failed...\n“id);
exit(1);
}
while(1)
{
HANDLE?hbuffer=OpenFileMapping(FILE_MAP_ALL_ACCESS?FALSE“Buffer“);
if(hbuffer?==?NULL?)
{
printf(“Consumer?%d?Open?Buffer?failed...\n“id);
}
char*?buffer=(char?*)MapViewOfFile(hbufferFILE_MAP_ALL_ACCESS00nSize*sizeof(char));

HANDLE?hiter?=?OpenFileMapping(FILE_MAP_ALL_ACCESS?FALSE“Iter“);
if(hiter?==?NULL?)
{
printf(“Consumer?%d?Open?Iter?failed...\n“id);
}
UINT?*?iter=(UINT?*)MapViewOfFile(hiterFILE_MAP_ALL_ACCESS00sizeof(UINT));

printf(“Consumer?%d?is?applying?for?a?char...\n“id);
WaitForSingleobject(hoffullINFINITE);
Sleep(rand()%2000);

printf(“Consumer?%d?is?trying?to?enter?buffer\n“id);
WaitForSingleobject(hofmutexINFINITE);
Sleep(rand()%2000);

printf(“Consumer?%d?has?entered?the?buffer?and?is?working...\n“id);
printf(“Consumer?%d?has?got?a?char????????......????]?%c?[%d?\n“idbuffer[*iter]*iter);
*iter?-=1;

Sleep(rand()%2000);

UnmapViewOfFile(hiter);
UnmapViewOfFile(hbuffer);

printf(“Consumer?%d?is?leaving?the?Buffer...\n“id);

ReleaseSemaphore(hofempty1NULL);
ReleaseMutex(hofmutex);

}

return?0;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????735580??2009-11-07?20:31??_1p&c\consumer\bin\Debug\consumer.exe

?????目錄??????????0??2009-11-07?20:31??_1p&c\consumer\bin\Debug

?????目錄??????????0??2009-11-05?11:18??_1p&c\consumer\bin

?????文件???????1030??2009-11-05?12:47??_1p&c\consumer\consumer.cbp

?????文件???????1986??2009-11-07?18:58??_1p&c\consumer\consumer.cpp

?????文件????????166??2009-11-09?00:48??_1p&c\consumer\consumer.depend

?????文件????????246??2009-11-09?01:12??_1p&c\consumer\consumer.layout

?????文件?????718172??2009-11-07?20:31??_1p&c\consumer\obj\Debug\consumer.o

?????目錄??????????0??2009-11-07?20:31??_1p&c\consumer\obj\Debug

?????目錄??????????0??2009-11-05?11:18??_1p&c\consumer\obj

?????目錄??????????0??2009-11-09?01:12??_1p&c\consumer

?????文件?????733577??2009-11-09?00:48??_1p&c\pc_problem\bin\Debug\pc_problem.exe

?????目錄??????????0??2009-11-09?00:48??_1p&c\pc_problem\bin\Debug

?????目錄??????????0??2009-11-05?00:58??_1p&c\pc_problem\bin

?????文件?????717528??2009-11-09?00:48??_1p&c\pc_problem\obj\Debug\pc_problem.o

?????目錄??????????0??2009-11-09?00:48??_1p&c\pc_problem\obj\Debug

?????目錄??????????0??2009-11-04?21:33??_1p&c\pc_problem\obj

?????文件???????1038??2009-11-05?01:09??_1p&c\pc_problem\pc_problem.cbp

?????文件???????2464??2009-11-05?15:56??_1p&c\pc_problem\pc_problem.cpp

?????文件????????144??2009-11-05?15:58??_1p&c\pc_problem\pc_problem.depend

?????文件????????246??2009-11-09?01:12??_1p&c\pc_problem\pc_problem.layout

?????目錄??????????0??2009-11-09?01:12??_1p&c\pc_problem

?????文件?????734044??2009-11-05?15:52??_1p&c\producer\bin\Debug\producer.exe

?????目錄??????????0??2009-11-05?15:52??_1p&c\producer\bin\Debug

?????目錄??????????0??2009-11-04?20:03??_1p&c\producer\bin

?????文件?????717102??2009-11-05?15:52??_1p&c\producer\obj\Debug\producer.o

?????目錄??????????0??2009-11-05?15:52??_1p&c\producer\obj\Debug

?????目錄??????????0??2009-11-04?20:03??_1p&c\producer\obj

?????文件???????1030??2009-11-05?01:09??_1p&c\producer\producer.cbp

?????文件???????2097??2009-11-05?15:52??_1p&c\producer\producer.cpp

............此處省略54個文件信息

評論

共有 條評論