Computer Science/OS
2021. 10. 19.
세마포
이것을 사용해서 하면 들어갈 때 true로 만들고 나올 때 false가 나옵니다. 누군가는 계속 시도만 하고 들어가지 못하는 문제는 여기에서 어떻게 해결할 까요? 위 알고리즘으로 기아문제(=계속 기다림)를 해결했습니다. 기다리는 놈들 풀어주는 것 입니다. waiting[j] 하는 놈을 풀어주는 것입니다. 즉, lock을 풀지않고 Pj를 임계영역으로 들어가게 만들어 줍니다. 만약 임계영역에 P5가 들어가 있고 P7이 들어가려고 합니다. P7은 3번 문장, while(waiting[i] && key)에 걸려있습니다. j=7일 때 waiting[7] = false로 만듭니다. 프로세스가 0~9까지 있다고 합시다. 프로세스 4,7,9가 동시에 들어가게 된다면 어떻게 될까요? 3개중에 2개는 3번 문에 걸쳐있고 ..