|
|
|
|
[컴퓨터공학] OS 생산자 문제 mutex locks, semaphore를 이용해서 해결하기
|
|
|
|
REPORT
# OS 생산자 소비자 문제
- mutex locks, semaphore를 이용해서 해결하기
○ OS 세 번째 과제.
2003038062 컴퓨터공학과 김영선
문제] 생산자 - 소비자 문제
- 적당한 크기의 배열을 하나 만들어, 생산자는 이 배열에 값을 넣는 쓰레드이고, 소비자는 배열에서 값을 빼는 쓰레드일 때, 각각의 쓰레드가 공유하는 하나의 배열에 접근할 때, mutex locks와 semaphore를 이용하여 동시에 접근을 못하게 프로그래밍하여, 이 문제를 해결한다..
※window32를 이용하여 프로그래밍 할것.
1) mutex locks 을 이용하여 프로그래밍한 소스코드.
#include [iostream]
#include [iomanip]
#include [windows.h]
#include [time.h]
using namespace std;
//전역변수
int arr[10] = {0};//10칸짜리 배열
DWORD WINAPI thread_func_1(LPVOID);// consumer 수행 thread 함수,
HANDLE Mutex; // 뮤텍스
int main()
{
HANDLE Thread_1; // Thread_1선언
int produced_data; // 생성되어 배열에 들어갈 값.
int pros=0; // 생성되어 들어갈값의 배열 index
int count =0; // 실행 조절 카운트
DWORD param=1;
srand(time(0));// 생성값을 매번 달리하기 위한 srand
Mutex = CreateMutex(NULL, FALSE, NULL);// 뮤텍스 락 생성
if(Mutex == NULL) // 뮤텍스의 생성 실패시 종료.
{
cout [[ Mutex Create Fail
[[endl;
exit(1);
}
.... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|