|
Linux의 system call을 사용하여 아래의 역할을 하는 myipc program을 작성하시오.
1. 프로그램 실행 예는 아래와 같다.
%myipc infile outfile
2. infile과 outfile은 각각 text file이다.
3. myipc program은 producer와 consumer라는 두 개의 프로세스로 구성된다. 반드시 하나의 실행 파일로 만들어져야 한다.
4. producer process와 consumer process는 각각 5개의 thread를 생성한다.
5. producer process로부터 생성된 각각의 thread(producer thread)는 infile로부터 한 줄을 읽은 후 0~4의 integer
random number를 발생 시킨 후 그 random number에 해당되는 consumer process의
thread(consumer thread)에게 읽은 문장을 전송한다.
6. consumer thread는 producer thread로부터 받은 문장을 0~3 second 사이의 random number를 발생시켜
그 random number에 해당되는 만큼 대기한 후에 outfile에 쓴다. 이때 문장 시작 부분에 producer thread number와 consumer thread number를 기록해야 한다.
7. infile은 한 순간에 하나의 thread 만 읽을 수 있어야 한다. outfile은 한 순간에 하나의 thread 만 쓸 수 있어야 한다.
8. 파일에 대한 모든 입출력은 system call level function을 사용하여야 한다.
9. producer와 consumer 간의 ipc는 아래의 방법을 모두 사용하여야 한다.
A. Shared memory with semaphore
B. Message queue
이런 프로그램을 작성해 오라는 숙제를 받았는데요..
C문법도 모르는 저에게 이건 너무도 가혹한 숙제라서..
혹시나 하는 마음에 이프로그램 작성해 주실분 계신가요.....
이틀동안 밤새 해봤는데 안되네요..
|