1. sema-down(wait🥹)
- 남자는 여자에게 물어본다. 너 남자친구 있니?
- 있다면 - 그녀의 곁에서 남자친구가 없어질 때까지 대기
- 없다면 - 고백을 갈긴다. 나랑 사귀자!
고백을 거절하는 경우는 없다
- 세마포어의 value를 확인한다. 0보다 큰가?
- 크다면 - waiting list에 진입한다
- 0이면 - 세마포어를 먹고 value--를 한다
2. sema-up(signal😘)
- 여자가 이별한다. waiting-list에서 대기 중인 남자 중 우선순위가 가장 높은 남자에게 시그널을 보낸다. '나 헤어졌어'
- 위장남사친-list에 elem이 있다면 - 술을 한 잔 하고 새로운 역사를 쓴다.
- 위장남사친-list에 elem이 없다면 - '나 솔로임. 소개팅 받습니다'를 broadcast한다.
- 세마포어를 먹은 스레드의 작업이 끝났다. value++ 하고 시그널을 보낸다.
- waiting-list에 elem이 있다면 - 우선순위가 가장 높은 스레드가 세마포어를 먹고 value-- 한다.
- waiting-list에 elem이 없다면 - value가 1인 상태로 유지된다.
'컴퓨터 > 운영체제 OS' 카테고리의 다른 글
Virtual Memory 가상메모리, 메모리 가상화 (0) | 2024.06.13 |
---|---|
[OSTEP] 프로그램이란? 가상화? 병행성? 영속성? (0) | 2024.05.30 |
UNIX Process States (0) | 2024.05.27 |
리눅스 런타임 메모리 이미지 (0) | 2024.05.27 |
운영체제OS - SW계의 수령님 - SW인데 추상화를 곁들인.. HW를 보호.. 간단하고 일관된 인터페이스를 app에 제공.. (0) | 2024.05.27 |