COMPUTER SCIENCE/OS

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

Tiny Commit 2025. 4. 15. 18:46

1. 객관식

  1. 실행을 위해 메모리에 올라온 동적인 상태를 가리키는 것은?
    → ② 프로세스
  2. 프로세스를 실행하는 데 필요한 정보를 보관하는 자료구조는?
    → ④ PCB
  3. 프로세스가 CPU를 할당받기 전에 기다리는 상태는?
    → ② 준비 상태
  4. 실행 상태의 프로세스가 입출력을 요구하면 이동하는 상태는?
    → ③ 대기 상태
  5. 대기 상태의 프로세스가 입출력이 완료되면 이동하는 상태는?
    → ② 준비 상태
  6. 실행 상태의 프로세스가 작업이 안 끝났음에도 타임 슬라이스 아웃이 걸려 이동하는 상태는?
    → ② 준비 상태
  7. PCB가 제거되는 상태는?
    → ① 완료 상태
  8. CPU 스케줄러에 의하여 디스패치(선택)되는 PCB가 이동하는 상태는?
    → ④ 실행 상태
  9. 두 프로세스의 PCB를 교환하고 작업 환경을 바꾸는 작업은?
    → ④ 문맥 교환
  10. 타임 슬라이스의 크기를 정할 때 기준이 되는 것은?
    → ① 문맥 교환
  11. 유닉스에서 프로세스 번호 1번이면서 모든 프로세스의 최고 조상에 해당하는 프로세스의 이름은?
    → ① init
  12. 새로운 프로세스를 생성하는 함수는?
    → ② fork()
  13. 프로세스는 그대로 놔둔 채 코드를 바꾸는 함수는?
    → ④ exec()
  14. 프로세스의 재사용과 가장 연관이 깊은 함수는?
    → ④ exec()
  15. 자식 프로세스가 종료되기 전에 부모 프로세스가 먼저 종료되면 자식 프로세스는 어떤 프로세스가 되는가?
    → ③ orphan 프로세스
  16. 자식 프로세스가 종료되었는데도 부모가 뒤처리를 하지 않으면 자식 프로세스는 어떤 프로세스가 되는가?
    → ② 좀비 프로세스
  17. 활성 상태가 아닌 것은?
    → ③ 완료 상태
  18. 코드에 정의된 절차에 따라 CPU에 작업을 요청하는 실행 단위는?
    → ④ 스레드
  19. 멀티스레드의 장점이 아닌 것은?
    → ① 스레드끼리 독립적이라 영향을 받지 않는다.
  20. 스레드 모델 중 라이브러리로 구현되며 커널이 멀티스레드를 지원하지 않을 때 사용되는 모델은?
    → ③ 사용자 스레드

2. 빈칸 채우기

  1. 프로세스 제어 블록(PCB)은 (커널) 영역에 만들어진다.
  2. 메모리에 있는 프로세스는 코드, 데이터, (스택) 영역으로 나뉜다.
  3. 프로세스 상태 중 (준비) 상태는 프로세스가 CPU를 할당받기 전에 기다리는 상태다.
  4. 프로세스 상태 중 (대기) 상태는 컴퓨터의 효율성을 높이기 위하여 만들어진 상태다.
  5. 프로세스 상태 중 (대기) 상태는 실행 상태의 프로세스가 입출력을 요구하면 이동하는 상태다.
  6. 프로세스 상태 중 (준비) 상태는 대기 상태의 프로세스가 입출력이 완료되면 이동하는 상태다.
  7. 프로세스 상태 중 (준비) 상태는 실행 상태의 프로세스가 타임 슬라이스 아웃으로 이동하는 상태다.
  8. 프로세스 상태 중 (완료) 상태는 PCB가 제거되는 상태다.
  9. 프로세스 상태 중 (실행) 상태는 CPU 스케줄러에 의해 디스패치되는 PCB가 이동하는 상태다.
  10. (문맥 교환)은 두 프로세스의 PCB를 교환하고 작업 환경을 바꾸는 작업이다.
  11. 타임 슬라이스의 크기를 정할 때 기준이 되는 것은 (문맥 교환)에 걸리는 시간이다.
  12. (wait())은 종료된 자원을 회수하는 작업이다.
  13. 유닉스에서 프로세스 번호 1번이면서 모든 프로세스의 최고 조상 프로세스는 (init)이다.
  14. (fork())는 새로운 프로세스를 생성하는 함수다.
  15. (exec())는 프로세스는 그대로 놔둔 채 코드를 바꾸는 함수다.
  16. (fork())는 다중 인스턴스를 만들 때 사용하는 함수다.
  17. (exec())는 프로세스의 재사용과 가장 연관이 깊은 함수다.
  18. (signal())은 wait()에게 신호를 보내는 함수다.
  19. 부모 PID=268, 자식 PID=364일 때 부모의 CPID는 (364)다.
  20. 부모 PID=268, 자식 PID=364일 때 자식의 PPID는 (268)이다.
  21. 부모 먼저 종료 → 자식은 (고아 프로세스).
  22. 부모가 처리 안 함 → 자식은 (좀비 프로세스).
  23. fork() 이후 부모 프로세스에 wait()가 없으면 (좀비) 프로세스가 만들어진다.
  24. 프로세스 상태 중 (휴식) 상태는 메모리에 남아 있지만 작업을 정지하고 있는 상태다.
  25. 프로세스 상태 중 (보류 대기) 상태는 프로세스는 살아 있지만 메모리에서 쫓겨난 상태다.
  26. (프로세스)는 프로그램이 실행을 위해 메모리에 올라온 동적 상태다.
  27. (PCB)는 프로세스를 실행하는 데 필요한 정보를 보관하는 자료구조다.
  28. 작업, 태스크, 스레드 중 가장 큰 단위는 (작업)이다.
  29. 작업, 태스크, 스레드 중 가장 작은 단위는 (스레드)다.
  30. (스레드)는 정의된 절차에 따라 CPU에 작업을 요청하는 실행 단위를 말한다.
  31. (멀티스레드)는 프로세스에서 자원을 공유하고 실행 단위만 여러 개 만드는 것을 말한다.
  32. 스레드 모델 중 (사용자 스레드)는 라이브러리로 구현된다.
  33. 스레드 모델 중 (1:1 모델)은 문맥 교환이 없어 속도가 빠른 초기 모델이다.

3. 서술형

  1. PCB에 대하여 설명하시오.
    → PCB(Process Control Block)는 운영체제가 프로세스를 관리하기 위해 유지하는 자료구조로, 프로세스 상태, 프로그램 카운터, CPU 레지스터 값, 메모리 관리 정보, 입출력 상태 등이 포함된다.
  2. 프로세스의 다섯 가지 상태에 대하여 설명하시오.
    → 생성, 준비, 실행, 대기, 완료 상태로 나뉜다. 생성은 프로세스가 만들어지는 상태, 준비는 CPU 할당을 기다리는 상태, 실행은 CPU에서 명령이 수행되는 상태, 대기는 입출력 작업을 기다리는 상태, 완료는 프로세스가 종료되어 PCB가 제거되는 상태이다.
  3. 문맥 교환에 대하여 설명하시오.
    → 문맥 교환은 현재 실행 중인 프로세스의 PCB를 저장하고, 다른 프로세스의 PCB를 불러와 CPU 자원을 전환하는 작업이다.
  4. 고아 프로세스와 좀비 프로세스에 대하여 설명하시오.
    → 고아 프로세스는 부모 프로세스가 종료되었지만 자식 프로세스가 실행 중인 경우 발생한다. 좀비 프로세스는 자식 프로세스가 종료되었지만 부모가 wait()를 호출하지 않아 PCB가 메모리에 남아 있는 상태다.
  5. 멀티태스크(프로세스)와 멀티스레드를 비교하시오.
    → 멀티태스크는 프로세스를 여러 개 실행하는 방식으로, 독립적 자원을 사용하므로 안전하지만 자원 소모가 크다. 멀티스레드는 하나의 프로세스 내부에서 여러 실행 단위를 사용하는 방식으로, 자원 공유가 가능해 효율적이지만 안정성 문제가 발생할 수 있다.
  6. 멀티스레드의 장점을 설명하시오.
    → 응답 속도가 빠르고, 자원 공유로 메모리 사용 효율이 높으며, 프로세스 간 통신보다 오버헤드가 적다.
  7. 멀티스레드 모델을 간략하게 설명하시오.
    → 사용자 수준 스레드, 커널 수준 스레드, 그리고 혼합형(M:N) 모델이 있다. 사용자 스레드는 라이브러리로 구현되며 커널 지원이 필요 없고, 커널 스레드는 운영체제가 직접 관리하며 안정적이다. 혼합형은 두 가지의 장점을 결합한 모델이다.

 

 


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