728x90
fork의 return값은 child에서 0이고 parent는 pid이다. 0인경우와 그렇지 않은 경우로 조건문을 나누었으나 child와 parent 모두 40000000이 나온것으로 보아 fork를 진행하면 child와 parent에서 모두 process가 진행됨을 알 수 있다.
deadlock 상태가 되어 아무것도 출력이 되지 않았다. 코드를 수정해보았다.
foo2 함수에서 pthread_mutex_lock 함수를 통해 뮤텍스 잠금을 요청하고 임계영역에 접근을 해야하는데
lock1과 lock2의 순서가 바뀌어서 lock1과 lock2가 얽혀서 dedlock상태가 된것으로 추정되어
그 순서를 바꾸었더니 제대로 출력이되었다.
728x90
'Quality control (Univ. Study) > Operating System' 카테고리의 다른 글
OS (File System) (0) | 2022.11.18 |
---|---|
OS (fork) (0) | 2022.11.10 |
OS(process id) (1) | 2022.11.05 |
OS(interrupt) (0) | 2022.11.05 |
OS(system_call) (0) | 2022.10.11 |