COMPUTER SCIENCE/OS

[쉽게 배우는 운영체제 2판] 5장 연습문제

Tiny Commit 2025. 4. 16. 22:21

1. 객관식

  1. 통신 방식 중 동기화를 지원하는 단방향 통신 방식은?
    → ② 파이프
  2. 서로 다른 컴퓨터에 있는 프로세스 간 통신에 사용하는 방식은?
    → ④ 소켓
  3. 통신 기기 중 반양방향(half duplex) 통신에 해당하는 것은?
    → ① 무전기
  4. 파일 관련 함수에서 파일에 접근할 수 있는 권한을 주는 함수는?
    → ① open()
  5. 파일 관련 함수에서 파일에 접근할 수 있는 권한을 돌려주는 함수는?
    → ② close()
  6. 인터넷에서 하나의 포트를 여러 프로세스가 공유할 수 있도록 만든 장치는?
    → ② 소켓
  7. 소켓 관련 함수에서 데이터를 보내는 함수는?
    → ④ send()
  8. 2개 이상의 프로세스가 공유 자원을 병행해서 읽거나 쓰는 상황은?
    → ③ 경쟁 조건
  9. 동시에 접근해서는 안 되는 공유 영역은?
    → ④ 임계구역
  10. 임계구역을 보호하기 위해 사용하는 가장 기본적인 방법은?
    → ① 잠금(lock)
  11. 임계구역 보호 조건과 거리가 먼 것은?
    → ④ 우선순위 상속
  12. 임계구역 보호 조건 중 하나의 프로세스만 들어가야 한다는 것은?
    → ① 상호 배제
  13. 임계구역 보호 조건 중 다른 프로세스 진행을 방해하지 않는 것은?
    → ③ 진행의 융통성
  14. 임계구역 보호 조건 중 무한히 기다리는 프로세스가 없어야 한다는 것은?
    → ② 한정 대기
  15. 임계구역 보호를 위해 하드웨어 도움으로 실행되는 코드는?
    → ① 검사와 지정(Test-and-Set)
  16. 임계구역 보호 도구 중 P(), V()를 사용하고 여러 자원에 적용 가능한 것은?
    → ④ 세마포어
  17. 공유 자원을 숨기고 접근 인터페이스만 제공하여 보호·동기화를 처리하는 방식은?
    → ② 모니터
  18. 세마포어에서 내부 변수 RS라 했을 때, 초기화 코드에 가까운 것은?
    → ① RS = n
  19. 세마포어에서 2개의 공유 자원에 대해 3개의 스레드가 작업하는 경우 올바른 초기화 함수는?
    → ② Semaphore(2)

2. 빈칸 채우기

  1. 공유 메모리나 공유 파일, 파이프, 소켓 중 동기화를 지원하며 부모-자식 간 단방향 통신에 사용하는 방식은 (파이프)다.
  2. 공유 메모리나 공유 파일, 파이프, 소켓 중 동기화를 지원하지 않는 것은 (공유 메모리)다.
  3. (모르스 부호)는 대표적인 단방향(simplex) 통신 기기다.
  4. (무전기)는 대표적인 반양방향(half duplex) 통신 기기다.
  5. (open()) 함수는 파일 접근 권한을 부여한다.
  6. (close()) 함수는 파일 접근 권한을 회수한다.
  7. (send()) 함수는 데이터를 보낼 때 사용한다.
  8. 파이프 관련 함수에서 (read())는 데이터를 받을 때 사용한다.
  9. (포트 번호)란 한 컴퓨터 내 서로 다른 프로세스를 구분하기 위한 주소다.
  10. 소켓 관련 함수에서 (recv())는 데이터를 읽어오는 함수다.
  11. (임계구역)은 동시에 접근해서는 안 되는 공유 영역이다.
  12. (동기화)은 프로세스가 임계구역 사용 후 다른 프로세스에 사용을 알리는 것이다.
  13. (잠금)은 임계구역을 보호하기 위한 기본 방법이다.
  14. 임계구역 보호 조건은 (상호 배제, 진행의 융통성, 한정 대기)다.
  15. (상호 배제)는 임계구역에 하나의 프로세스만 들어가야 한다는 조건이다.
  16. (진행의 융통성)은 다른 프로세스 진행을 방해하지 않는 조건이다.
  17. (한정 대기)는 무한 대기가 없어야 한다는 조건이다.
  18. (검사와 지정)은 하드웨어 도움을 받아 임계구역 보호에 사용하는 코드다.
  19. 임계구역 보호 도구 중 (세마포어)는 P(), V()를 사용하고 여러 자원에 적용 가능하다.
  20. 임계구역 보호 도구 중 (모니터)는 lock/unlock, 동기화를 자동 처리한다.
  21. 세마포어에서 2개의 공유 자원에 대해 3개의 프로세스가 작업하는 경우 올바른 초기화 함수는 (Semaphore(2))다.

🔹 서술형

  1. 프로세스 간 통신
    프로세스들이 데이터를 주고받기 위한 기법으로, 공유 메모리·파이프·소켓 등이 있다. 같은 시스템 내 통신은 파이프, 다른 컴퓨터 간 통신은 소켓을 주로 사용한다.
  2. 임계구역과 조건
    임계구역은 둘 이상의 프로세스가 동시에 접근하면 문제를 일으키는 공유 자원 영역이다. 이를 해결하기 위한 조건은 상호 배제, 진행의 융통성, 한정 대기이다.
  3. 코드 문제점
    주어진 코드에서는 busy-waiting(바쁜 대기) 현상이 발생한다. P1과 P2가 동시에 lock 값을 확인하는 경우 상호 배제 조건이 깨져 임계구역 동시 진입이 가능하다.
  4. 세마포어 내부 코드
    세마포어는 정수 변수와 P(wait), V(signal) 연산으로 구성된다. P는 자원이 없을 경우 대기, V는 자원을 해제하며, 원자적 실행을 보장한다.
  5. 모니터의 배경과 특징
    세마포어의 복잡성을 줄이고 효율적으로 동기화를 구현하기 위해 고안됨. 공유 자원은 모니터 내부에 숨기고 접근 인터페이스만 제공, lock/unlock과 동기화를 자동으로 처리한다.

 

 


출처 : 조성호 , 『IT CookBook, 쉽게 배우는 운영체제(2판)』한빛아카데미(2023).