[컴퓨터공학] OS 생산자 문제 mutex locks, semaphore를 이용해서 해결하기

1. [컴퓨터공학] OS 생산자 문제 mutex lo.hwp
2. [컴퓨터공학] OS 생산자 문제 mutex lo.pdf
[컴퓨터공학] 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);
}

....