이진 세마포어 | 운영 체제 - M03 P06
3674 단어 devopscodenewbielinuxbeginners
이 기사에서는 동기화를 달성하고 경쟁 조건을 제거하기 위해 바이너리 세마포어가 무엇이며 어떻게 작동하는지 살펴보겠습니다.
바이너리 세마포어
– infinity to + infinity
이지만 이진 세마포어에는 0
및 1
두 값만 있습니다. 엔트리 섹션 의사 코드
Down(Semaphore S) {
if (Svalue = 1) {
Svalue = 0;
}
else {
Block this process and place in suspend list, Sleep();
}
}
종료 섹션 의사 코드
Up(Semaphore S) {
if(Suspend list is empty) {
Svalue = 1;
}
else {
Select a process from suspend list and wake up();
}
}
1
이고 Down 동작을 수행한 후 0
가 되면 동작이 성공한 것으로 본다. 0
이고 프로세스가 다운 작업을 실행하면 프로세스가 차단/수면 상태가 되고 일시 중지 목록으로 보내지며 실패한 작업으로 간주됩니다. 1
로 변경합니다. S 값이 무엇인지는 중요하지 않습니다. S의 값은 이전에 0
였으면 1
가 되고 1
이면 1
로 남게 됩니다. 그래서 이것은 바이너리 세마포어에 관한 것입니다. 당신이 그것을 좋아하고 그것으로부터 새로운 것을 배웠기를 바랍니다.
이 주제와 관련하여 의심, 질문, 질문이 있거나 저와 공유하고 싶은 것이 있으면 언제든지 저에게 연락하십시오.
📱 저에게 연락
Telegram
📧 메일 쓰기
[email protected]
🚀 기타 링크
GitHub
HackerRank
Reference
이 문제에 관하여(이진 세마포어 | 운영 체제 - M03 P06), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rahulmishra05/binary-semaphore-operating-system-m03-p06-2l08텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)