인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

릴뭐뭐님의 프로필 이미지

작성한 질문수

개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제

동기화 기법

모니터

해결된 질문

작성

·

64

·

수정됨

0

  1. signal()을 호출한 프로세스의 실행을 일시 중단하고 자신이 실행된 뒤 다시 signal()을 호출한 프로세스의 수행을 재개 방식은 선점형 방식이랑 유사한것같고

wait()를 호출햇떤 프로세스는 signal()을 호출한 프로세스가 모니터를 떠난뒤에 수행을 재개 하는 방식은 비선점형이랑 유사한것같네요.
2. 상호배재를 위한 큐와 우선순위를 위한 조건변수 큐는 순서로 봣을떄 연속배치되는 형식의 그림이 더 자연스러울거같은데 우선순위를 위한 조건변수 큐 는 모니터 위에 있도록 그림이 그려진 이유가 잇을가요 ?
3. pcb의를 대기큐, 준비큐에 삽입하는것이 전에 봣던 강의중 명령어 사이클의 연장선이라고 생각해도될까요 ?

가령 pcb안에 잇는 프로세스 상태의 값을 변경하는것이라고 봐도되는걸까요

답변 2

0

강민철님의 프로필 이미지
강민철
지식공유자

안녕하세요

  1. 비선점은 해당 프로세스만 (주로 CPU) 자원을 이용할수 있음을 의미하는데 wait을 해도 문맥교환은 발생할 수 있습니다. 별개의 개념으로 봐 주시면 좋겠습니다.

  2. 상호배재를 위한 큐와 우선순위를 위한 조건변수 큐는 독립적인 것이기 떄문입니다. 상호배제를 위한 큐에 있다가도 우선순위를 위한 조건변수 큐에 들어갈 수 있고 , 조건변수가 적용되지 않으면 조건변수 큐에 한번도 들어가지 않고 끝날 수도 있습니다.

  3. '하나의 프로세스의 상태가 변화되는 구조'와 '하나의 명령어가 처리되는 과정'는 조금 다릅니다. 별개의 개념이라 보아 주세요 :)

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 신승찬님. 인프런 AI 인턴입니다.

여러 가지 질문을 주셔서 하나씩 답변 드리겠습니다.

1. signal()과 wait()에 대한 비유

  • signal()과 wait() 작업 방식에서 언급하신 것처럼, signal()을 호출한 프로세스의 실행을 일시 중단하고 자신의 동작을 마친 후 다시 원래의 signal() 호출 프로세스를 재개하는 방법은 선점형 방식과 유사하게 느껴질 수 있습니다. 반면, wait()를 호출한 프로세스가 일시 중단 상태에 머물다가 signal()이 호출되고 모니터를 떠난 후 재개되는 방식은 비선점형 방식과 비슷합니다. 이는 두 메커니즘이 어떻게 리소스를 관리하는지를 설명하는 데 도움이 됩니다.

2. 상호 배제 큐와 조건 변수 큐

  • 상호 배제 큐와 조건 변수 큐가 그림상에서 어떻게 배치되어 있는지에 대한 이유는 큐들이 서로 다른 목적을 가지고 있어 시각적 구분을 주기 위한 경우가 많습니다. 조건 변수 큐는 대기 중인 프로세스들이 특정 조건이 만족할 때까지 기다리기 때문에 모니터의 위쪽에 배치되는 경우가 있습니다. 이는 이를 사용하는 과정에서의 로직을 명확히 하고, 모니터의 인터페이스 설계를 직관적으로 이해할 수 있게 하려는 의도입니다.

3. PCB와 큐

  • PCB를 대기 큐와 준비 큐에 삽입하는 개념은 프로세스 상태 전환과 관련이 있습니다. 이는 CPU 스케줄링의 일부로 보는 것이 맞고, 명령어 사이클과 관련되어 있습니다. PCB에 기록된 프로세스의 상태가 대기 중에서 준비 상태로, 혹은 반대로 변할 때 큐의 삽입과 제거 작업이 발생하며, 이는 예약된 명령어 실행 흐름의 일부입니다.

이와 관련해 도움이 될 수 있는 답변글을 아래 링크에서 확인하실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.