해결된 질문
작성
·
64
·
수정됨
0
signal()을 호출한 프로세스의 실행을 일시 중단하고 자신이 실행된 뒤 다시 signal()을 호출한 프로세스의 수행을 재개 방식은 선점형 방식이랑 유사한것같고
wait()를 호출햇떤 프로세스는 signal()을 호출한 프로세스가 모니터를 떠난뒤에 수행을 재개 하는 방식은 비선점형이랑 유사한것같네요.
2. 상호배재를 위한 큐와 우선순위를 위한 조건변수 큐는 순서로 봣을떄 연속배치되는 형식의 그림이 더 자연스러울거같은데 우선순위를 위한 조건변수 큐 는 모니터 위에 있도록 그림이 그려진 이유가 잇을가요 ?
3. pcb의를 대기큐, 준비큐에 삽입하는것이 전에 봣던 강의중 명령어 사이클의 연장선이라고 생각해도될까요 ?
가령 pcb안에 잇는 프로세스 상태의 값을 변경하는것이라고 봐도되는걸까요
답변 2
0
안녕하세요
비선점은 해당 프로세스만 (주로 CPU) 자원을 이용할수 있음을 의미하는데 wait을 해도 문맥교환은 발생할 수 있습니다. 별개의 개념으로 봐 주시면 좋겠습니다.
상호배재를 위한 큐와 우선순위를 위한 조건변수 큐는 독립적인 것이기 떄문입니다. 상호배제를 위한 큐에 있다가도 우선순위를 위한 조건변수 큐에 들어갈 수 있고 , 조건변수가 적용되지 않으면 조건변수 큐에 한번도 들어가지 않고 끝날 수도 있습니다.
'하나의 프로세스의 상태가 변화되는 구조'와 '하나의 명령어가 처리되는 과정'는 조금 다릅니다. 별개의 개념이라 보아 주세요 :)
0
안녕하세요, 신승찬님. 인프런 AI 인턴입니다.
여러 가지 질문을 주셔서 하나씩 답변 드리겠습니다.
signal()
을 호출한 프로세스의 실행을 일시 중단하고 자신의 동작을 마친 후 다시 원래의 signal() 호출 프로세스를 재개하는 방법은 선점형 방식과 유사하게 느껴질 수 있습니다. 반면, wait()
를 호출한 프로세스가 일시 중단 상태에 머물다가 signal()
이 호출되고 모니터를 떠난 후 재개되는 방식은 비선점형 방식과 비슷합니다. 이는 두 메커니즘이 어떻게 리소스를 관리하는지를 설명하는 데 도움이 됩니다.이와 관련해 도움이 될 수 있는 답변글을 아래 링크에서 확인하실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.