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

  • 大小: 523KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-23
  • 語言: C/C++
  • 標簽:

資源簡介

北郵操作系統第三次實驗作業,進程同步。。C語言編寫。。。windows環境下運行。。歡迎大家下載。。。↖(^ω^)↗。。附帶實驗報告哦。。親

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
using?namespace?std;

typedef?HANDLE?Semaphore;??//信號量的定義
typedef?int?size;?????????????????????????//數據大小定義
typedef?int??Boundary;???????????//緩沖區邊界定義
typedef?int?Buffer_Kind;?????//定義緩沖區數據類型
typedef?int?kind_of_request;?//請求類型
typedef?int?Time;???????????//定義時間類型
typedef?int?Process_Kind;
typedef?int?Sequence_number;
/*最大緩沖區*/
const?size?MAX_BUFFER?=?256;???
const?size?MAX_REQUEST=20;

typedef?struct?node
{
Process_Kind?con_or_prod;??//請求者的類型
Time????????????????consume_time;?//占用時間

}Pro;

??????????????????? /*緩沖區的邊界設置??實現一個循環隊列*/
Boundary?on;?????//上邊界
Boundary?off;??//下邊界?

/*定義緩沖區數組(隊列)*/
Buffer_Kind?buffer[MAX_BUFFER]?;

/*定義請求隊列(包含請求的進程類型,進程所占用的時間)*/
Pro?request[MAX_REQUEST];

/*定義三個信號量
mutex(對倉庫訪問的控制)empty(消費者消費的控制量)full(生產者生產的控制量)
*/

Semaphore?mutex?;
Semaphore?full?;
Semaphore?empty;

HANDLE?total_thread[MAX_REQUEST];??//總線程

/*定義生產者和消費者的隊列*/
DWORD?product_id[MAX_REQUEST]?;?//生產者隊列
DWORD?consume_id[MAX_REQUEST];??//消費者隊列

Sequence_number?product_number;??//生產者的標號

Process_Kind?PRODUCT?;???//生產者
Process_Kind?CONSUME;?//消費者

/*用戶輸入*/
size?BUFFER_SIZE;???//倉庫大小
size?REQUEST_NUM;//請求的個數




?/*主控制程序*/
?int?Process_Control();
?void?Initialization();

?/*系統調用的接口(生產者的系統調用)*/
?DWORD?WINAPI?producer(LPVOID?lpPara);

?/*系統調用的接口(消費者的系統調用)*/
?DWORD?WINAPI?consumer(LPVOID?lpPara);






void?Initialization()
{
????product_number=1;
on=off=0;

memset(buffer?0?sizeof(buffer))?;
?????
cout<<“ \t \t 這是一個簡單的進程(線程模擬實驗)????\t\t“< cout<<“請輸入倉庫的大小:??“< cin>>BUFFER_SIZE;

cout<<“請輸入總的線程數:“< cin>>REQUEST_NUM;

char?ch;
Time?temptime;//臨時的一個保存時間的變量
for(int?i=0;?i {
cout<<“請輸入第“< cin>>ch>>temptime;

request[i].consume_time=temptime;
request[i].con_or_prod=ch;
}
}

DWORD?WINAPI?producer(LPVOID?lpPara)
{
??WaitForSingleobject(full?INFINITE);?//等待空位
??WaitForSingleobject(mutex?INFINITE);?????//對倉庫的操作權

??/*跳過生產過程
??pa?pa?pa?pa
??*/
?????????????????????????cout<<“生產者“<<(int)lpPara<<“正在生產產品放在“<?????????????????????????buffer[on]=++product_number;
?????????????????????????on=(on+1)%BUFFER_SIZE;

?????????????????????????Sleep(5);
?cout<<“生產者“<<(int)lpPara<<“生產成功!!“<
????ReleaseMutex(mutex);??????????????????????????//釋放倉庫操作權
ReleaseSemaphore(empty?1?NULL);????//非空位加一
return?0;
}

DWORD?WINAPI??consumer(LPVOID?lpPara)
{
WaitForSingleobject(empty?INFINITE);//等待非空位
????WaitForSingleobject(mutex?INFINITE);?????//對倉庫的操作權

//開始從倉庫取出產品
????cout<<“消費者“<<(int)lpPara<<“正在進行消費第“<

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-11-16?00:05??06-龍佳-10211295\
?????文件???????33792??2012-11-16?00:04??06-龍佳-10211295\實驗2??進程管理.doc
?????文件?????????852??2012-11-16?00:01??06-龍佳-10211295\程序1.cpp
?????文件????????1029??2012-11-16?00:02??06-龍佳-10211295\程序2.cpp
?????文件????????1086??2012-11-16?00:03??06-龍佳-10211295\程序3.cpp
?????文件????????1367??2012-11-16?00:03??06-龍佳-10211295\程序4.cpp
?????文件????????1031??2012-11-16?00:04??06-龍佳-10211295\程序5.cpp
?????文件??????230120??2012-11-25?21:04??實驗三-進程同步.docx
?????文件????????5335??2012-11-25?19:30??生產者消費者問題.cpp
?????文件?????1297539??2012-11-25?21:01??生產者消費者問題.exe

評論

共有 條評論