본문 바로가기
답안지/쉽게 배우는 운영체제

[연습문제] PART 05 프로세스 동기화

by upself 2022. 12. 4.
728x90
쉽게 배우는 운영체제

쉽게 배우는 운영체제

조성호

명쾌한 비유와 사례로 쉽게 배우는 운영체제의 구조와 원리 컴퓨터 관련 학과 학생을 대상으로 운영체제의 구조와 원리를 설명한 책이다. 주요 개념은 일상생활의 사례를 통해 쉽게 이해하고, 개념 간의 관계는 다양한 그림과 표로 명확히 정리할 수 있다. 20년 가까이 강의해온 저자의 내공이 고스란히 녹아 있어 복잡하고...

 

 

 

 

 

[연습문제]

 

1. 프로세스 간 통신에서 데이터를 양방향으로 전송 가능하지만 동시 전송은 불가능하고 특정 시점에 한쪽 방향으로만 전송할 수 있는 통신 방식은 무엇인가?

반 양방향 통신

 

 

2. 상태 변화를 살펴보기 위해 반복문을 무한 실행하며 기다리는 것은 무엇이라 하는가?

바쁜 대기(busy waiting)

 

 

3. 프로세스 간 통신에서 대기 없는 통신과 대기가 있는 통신의 예를 각각 제시하시오.
  • 대기가 있는 통신
    • 파이프, 소켓
  • 대기가 없는 통신
    • 전역 변수, 파일

 

 

4. 파이프를 이용하여 통신할 때 파이프를 2개 사용하는 이유는 무엇인가?

단방향 통신인 파이프로 양방향 통신을 하기 위해서 2개를 사용한다.

 

 

5. 공유 지원을 병행적으로 읽거나 쓰는 상황을 무엇이라 하는가?

경쟁 조건(race condition)

 

 

6. 공유 자원의 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역은 무엇인가?

임계구역(critical section)

 

 

7. 임계구역 해결 조건 중 한 프로세스가 임계구역에 들어갔을 때 다른 프로세스는 임계구역에 들어갈 수 없는 조건을 무엇이라 하는가?

상호 배제(mutual exclusion)

 

 

8. 임계구역 해결 조건 중 한 프로세스가 다른 프로세스의 진행을 방해해서는 안 된다는 조건을 무엇이라 하는가?

진행의 융통성(progress flexibility)

 

 

9. 임계구역 문제를 하드웨어적으로 해결한 방식으로, 하드웨어의 지원을 받아 명령어를 실행하는 도중에 타임아웃이 걸리지 않도록 하는 방식을 무엇이라 하는가?

검사와 지정(test and set)

 

 

10. 세마포어의 Semaphore(n)에서 n은 무엇을 가리키는가?

공유 가능한 자원의 수

 

 

11. 세마포어에서 내부 변수를 RS라고 할 때 세마포어 P()의 내무 코드를 쓰시오.
p(){
	if RS>0 then RS=RS-1;
	else block();	/* until RS>0 */
}

 

 

12. 세마포어에서 내부 변수를 RS라고 할 때 세마포어 V()의 내부 코드를 쓰시오.
V(){
	RS=RS+1;
	wake_up();
}

 

 

13. 세마포어가 제대로 작동하지 않는 경우를 설명하시오.
  • 프로세스가 세마포어를 사용하지 않고 바로 임계구역에 들어간 경우로 임계구역을 보호할 수 없다.
  • P()를 두 번 사용하여 wake_up 신호가 발생하지 않은 경우이다. 프로세스 간의 동기화가 이루어지지 않아 세마포어 큐에서 대기하고 있는 프로세스들이 무한 대기에 빠진다.
  • P()와 V()를 반대로 사용하여 상호 배제가 보장되지 않은 경우로 임계구역을 보호할 수 없다.

 

 

14. 세마포어의 내부 코드도 타임아웃이 걸리면 문제가 발생할 수 있다. 그래서 내부 코드는 무엇으로 보호받는가?

검사와 지정

 

 

15. 공유 자원을 내부적으로 숨기고 공유 자원에 접근하기 위한 인터페이스만 제공함으로써 자원을 보호하고 프로세스 간에 동기화를 시키는 것으로, 세마포어의 단점을 해결하면서 임계구역 문제를 해결한 방식은 무엇인가?

모니터

 

 

 

오랫동안 꿈을 그리는 사람은 마침내 그 꿈을 닮아 간다.

-앙드레 말로
반응형