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

  • 大小: 58KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-13
  • 語言: 其他
  • 標簽: 臨界區(qū)??

資源簡介

① 實現(xiàn)UP、DOWN原語 ② 產生3個進程,兩個進程模擬需要進入臨界區(qū)的用戶進程。 當需要進入臨界區(qū)時,顯示:“進程x請求進入臨界區(qū)…”,同時向管理進程提出申請; 申請返回,表示進入了臨界區(qū)。在臨界區(qū)中等待一段隨機時間,并顯示:“進程x正在臨界區(qū)…”; 當時間結束,顯示:“進程x退出臨界區(qū)…”,同時向管理進程提出退出申請; 當申請返回,顯示:“進程x已退出臨界區(qū)?!?③ 一個進程作為原語的管理進程,接受其他進程的臨界區(qū)進入請求: 如果允許進入,則根據(jù)DOWN 原語的操作步驟設置相應變量,然后返回; 如果不允許進入,則進入循環(huán)等待,直到允許為止; 退出時模擬UP 操作。 ④ 進程間通信

資源截圖

代碼片段和文件信息

#include??????
#include??????
#include????
#include
#include
DWORD?WINAPI?Th1Proc(LPVOID?lpParameter);??//聲明進程1
DWORD?WINAPI?Th2Proc(LPVOID?lpParameter);??//聲明進程2 ?
DWORD?WINAPI?Th3Proc(LPVOID?lpParameter);??//聲明進程3
DWORD?WINAPI?th3manager(LPVOID?lpParameter);//聲明管理進程
void?getbiandan_1();
void?getbiandan_2();
void?gettongzi_1();
void?gettongzi_2();
void?getbiandan_3();
void?gettongzi_3();
void?display();
int?biandan=2;
int?tongzi=3;
int?flag_t3=0;//聲明定義flag變量,防止出現(xiàn)死鎖
int?flag_t2=0;
int?flag_t1=0;
int?flag_b3=0;
int?flag_b2=0;
int?flag_b1=0;
int?a[4][2]={{00}{00}{00}{biandantongzi}};
int?b[2];
void?main()
{
HANDLE?hThread1;
????HANDLE?hThread2;
HANDLE?hThread3;
????HANDLE?Manager;
hThread1=CreateThread(NULL0Th1ProcNULL0NULL);
????hThread2=CreateThread(NULL0Th2ProcNULL0NULL);
hThread3=CreateThread(NULL0Th3ProcNULL0NULL);
Manager=CreateThread(NULL0th3managerNULL0NULL);
srand(???(unsigned)time(???NULL???)???);???
Sleep(10000);
}
DWORD?WINAPI?Th2Proc(LPVOID?lpParameter)
{
????while(TRUE)????????????????//進程2:生成一個隨機數(shù),判斷扁擔與桶子的優(yōu)先取得
{
for(int?i=0;i<2;i++)???
{?
b[i]=rand();
}
???if(b[0]>=b[1])
{
if(a[1][0]<1)????????
{
getbiandan_2();
// display();
}
else
{
Sleep(150);
}
}
else?
{
if(a[1][1]<2)
{
gettongzi_2();

// display();

}
else
{
Sleep(150);
}
}
}
}
DWORD?WINAPI?Th3Proc(LPVOID?lpParameter)??//進程3:生成一個隨機數(shù),判斷扁擔與桶子的優(yōu)先取得
{
while(TRUE)
{
for(int?j=0;j<2;j++)???
{?
b[j]=rand();
}
if(b[0]>=b[1])
{
if(a[2][0]<1)????????
{
getbiandan_3();
// display();
}
else
{
Sleep(150);
}
}
else?
{
if(a[2][1]<2)
{
gettongzi_3();

//display();
}
else
{
Sleep(150);
}
}
}
}
DWORD?WINAPI?Th1Proc(LPVOID?lpParameter)//進程1:生成一個隨機數(shù),判斷扁擔與桶子的優(yōu)先取得
{
while(TRUE)
{
for(int?k=0;k<2;k++)???
{?
b[k]=rand();
}
if(b[0]>=b[1])
{
if(a[0][0]<1)????????
{
getbiandan_1();
// display();
}
else
{
Sleep(150);
}
}
else?
{
if(a[0][1]<2)
{
gettongzi_1();
//display();
}
else
{
Sleep(150);
}
}
}
}

DWORD?WINAPI?th3manager(LPVOID?lpParameter)//管理進程:定義i變量,當i=0時,進程1為和尚甲;
{??????????????????????????????????????????//當i=1時,進程2為和尚乙;
while(TRUE)????????????????????????????//當i=2時,進程3為和尚丙;
{
for(int?i=0;i<3;i++)
{???
if(a[i][0]==1&&a[i][1]==2)
{
if(i==0)
{
cout<<“和尚甲正在挑水....“< a[0][0]=0;
a[0][1]=0;
a[3][0]++;
a[3][1]+=2;
cout<<“和尚甲挑水完畢,還回工具,休息片刻,繼續(xù)挑水。。。“< display();
?????????????????? // Sleep(1000);
}
if(i==1)

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

?????文件???????6618??2010-03-21?17:58??200717030221歐陽佳\ouyang.cpp

?????文件?????138240??2010-03-22?11:21??200717030221歐陽佳\200717030221歐陽佳.doc

?????目錄??????????0??2010-03-22?14:57??200717030221歐陽佳

-----------?---------??----------?-----??----

???????????????144858????????????????????3


評論

共有 條評論