1. 객관식
- 실행을 위해 메모리에 올라온 동적인 상태를 가리키는 것은?
→ ② 프로세스 - 프로세스를 실행하는 데 필요한 정보를 보관하는 자료구조는?
→ ④ PCB - 프로세스가 CPU를 할당받기 전에 기다리는 상태는?
→ ② 준비 상태 - 실행 상태의 프로세스가 입출력을 요구하면 이동하는 상태는?
→ ③ 대기 상태 - 대기 상태의 프로세스가 입출력이 완료되면 이동하는 상태는?
→ ② 준비 상태 - 실행 상태의 프로세스가 작업이 안 끝났음에도 타임 슬라이스 아웃이 걸려 이동하는 상태는?
→ ② 준비 상태 - PCB가 제거되는 상태는?
→ ① 완료 상태 - CPU 스케줄러에 의하여 디스패치(선택)되는 PCB가 이동하는 상태는?
→ ④ 실행 상태 - 두 프로세스의 PCB를 교환하고 작업 환경을 바꾸는 작업은?
→ ④ 문맥 교환 - 타임 슬라이스의 크기를 정할 때 기준이 되는 것은?
→ ① 문맥 교환 - 유닉스에서 프로세스 번호 1번이면서 모든 프로세스의 최고 조상에 해당하는 프로세스의 이름은?
→ ① init - 새로운 프로세스를 생성하는 함수는?
→ ② fork() - 프로세스는 그대로 놔둔 채 코드를 바꾸는 함수는?
→ ④ exec() - 프로세스의 재사용과 가장 연관이 깊은 함수는?
→ ④ exec() - 자식 프로세스가 종료되기 전에 부모 프로세스가 먼저 종료되면 자식 프로세스는 어떤 프로세스가 되는가?
→ ③ orphan 프로세스 - 자식 프로세스가 종료되었는데도 부모가 뒤처리를 하지 않으면 자식 프로세스는 어떤 프로세스가 되는가?
→ ② 좀비 프로세스 - 활성 상태가 아닌 것은?
→ ③ 완료 상태 - 코드에 정의된 절차에 따라 CPU에 작업을 요청하는 실행 단위는?
→ ④ 스레드 - 멀티스레드의 장점이 아닌 것은?
→ ① 스레드끼리 독립적이라 영향을 받지 않는다. - 스레드 모델 중 라이브러리로 구현되며 커널이 멀티스레드를 지원하지 않을 때 사용되는 모델은?
→ ③ 사용자 스레드
2. 빈칸 채우기
- 프로세스 제어 블록(PCB)은 (커널) 영역에 만들어진다.
- 메모리에 있는 프로세스는 코드, 데이터, (스택) 영역으로 나뉜다.
- 프로세스 상태 중 (준비) 상태는 프로세스가 CPU를 할당받기 전에 기다리는 상태다.
- 프로세스 상태 중 (대기) 상태는 컴퓨터의 효율성을 높이기 위하여 만들어진 상태다.
- 프로세스 상태 중 (대기) 상태는 실행 상태의 프로세스가 입출력을 요구하면 이동하는 상태다.
- 프로세스 상태 중 (준비) 상태는 대기 상태의 프로세스가 입출력이 완료되면 이동하는 상태다.
- 프로세스 상태 중 (준비) 상태는 실행 상태의 프로세스가 타임 슬라이스 아웃으로 이동하는 상태다.
- 프로세스 상태 중 (완료) 상태는 PCB가 제거되는 상태다.
- 프로세스 상태 중 (실행) 상태는 CPU 스케줄러에 의해 디스패치되는 PCB가 이동하는 상태다.
- (문맥 교환)은 두 프로세스의 PCB를 교환하고 작업 환경을 바꾸는 작업이다.
- 타임 슬라이스의 크기를 정할 때 기준이 되는 것은 (문맥 교환)에 걸리는 시간이다.
- (wait())은 종료된 자원을 회수하는 작업이다.
- 유닉스에서 프로세스 번호 1번이면서 모든 프로세스의 최고 조상 프로세스는 (init)이다.
- (fork())는 새로운 프로세스를 생성하는 함수다.
- (exec())는 프로세스는 그대로 놔둔 채 코드를 바꾸는 함수다.
- (fork())는 다중 인스턴스를 만들 때 사용하는 함수다.
- (exec())는 프로세스의 재사용과 가장 연관이 깊은 함수다.
- (signal())은 wait()에게 신호를 보내는 함수다.
- 부모 PID=268, 자식 PID=364일 때 부모의 CPID는 (364)다.
- 부모 PID=268, 자식 PID=364일 때 자식의 PPID는 (268)이다.
- 부모 먼저 종료 → 자식은 (고아 프로세스).
- 부모가 처리 안 함 → 자식은 (좀비 프로세스).
- fork() 이후 부모 프로세스에 wait()가 없으면 (좀비) 프로세스가 만들어진다.
- 프로세스 상태 중 (휴식) 상태는 메모리에 남아 있지만 작업을 정지하고 있는 상태다.
- 프로세스 상태 중 (보류 대기) 상태는 프로세스는 살아 있지만 메모리에서 쫓겨난 상태다.
- (프로세스)는 프로그램이 실행을 위해 메모리에 올라온 동적 상태다.
- (PCB)는 프로세스를 실행하는 데 필요한 정보를 보관하는 자료구조다.
- 작업, 태스크, 스레드 중 가장 큰 단위는 (작업)이다.
- 작업, 태스크, 스레드 중 가장 작은 단위는 (스레드)다.
- (스레드)는 정의된 절차에 따라 CPU에 작업을 요청하는 실행 단위를 말한다.
- (멀티스레드)는 프로세스에서 자원을 공유하고 실행 단위만 여러 개 만드는 것을 말한다.
- 스레드 모델 중 (사용자 스레드)는 라이브러리로 구현된다.
- 스레드 모델 중 (1:1 모델)은 문맥 교환이 없어 속도가 빠른 초기 모델이다.
3. 서술형
- PCB에 대하여 설명하시오.
→ PCB(Process Control Block)는 운영체제가 프로세스를 관리하기 위해 유지하는 자료구조로, 프로세스 상태, 프로그램 카운터, CPU 레지스터 값, 메모리 관리 정보, 입출력 상태 등이 포함된다. - 프로세스의 다섯 가지 상태에 대하여 설명하시오.
→ 생성, 준비, 실행, 대기, 완료 상태로 나뉜다. 생성은 프로세스가 만들어지는 상태, 준비는 CPU 할당을 기다리는 상태, 실행은 CPU에서 명령이 수행되는 상태, 대기는 입출력 작업을 기다리는 상태, 완료는 프로세스가 종료되어 PCB가 제거되는 상태이다. - 문맥 교환에 대하여 설명하시오.
→ 문맥 교환은 현재 실행 중인 프로세스의 PCB를 저장하고, 다른 프로세스의 PCB를 불러와 CPU 자원을 전환하는 작업이다. - 고아 프로세스와 좀비 프로세스에 대하여 설명하시오.
→ 고아 프로세스는 부모 프로세스가 종료되었지만 자식 프로세스가 실행 중인 경우 발생한다. 좀비 프로세스는 자식 프로세스가 종료되었지만 부모가 wait()를 호출하지 않아 PCB가 메모리에 남아 있는 상태다. - 멀티태스크(프로세스)와 멀티스레드를 비교하시오.
→ 멀티태스크는 프로세스를 여러 개 실행하는 방식으로, 독립적 자원을 사용하므로 안전하지만 자원 소모가 크다. 멀티스레드는 하나의 프로세스 내부에서 여러 실행 단위를 사용하는 방식으로, 자원 공유가 가능해 효율적이지만 안정성 문제가 발생할 수 있다. - 멀티스레드의 장점을 설명하시오.
→ 응답 속도가 빠르고, 자원 공유로 메모리 사용 효율이 높으며, 프로세스 간 통신보다 오버헤드가 적다. - 멀티스레드 모델을 간략하게 설명하시오.
→ 사용자 수준 스레드, 커널 수준 스레드, 그리고 혼합형(M:N) 모델이 있다. 사용자 스레드는 라이브러리로 구현되며 커널 지원이 필요 없고, 커널 스레드는 운영체제가 직접 관리하며 안정적이다. 혼합형은 두 가지의 장점을 결합한 모델이다.
출처 : 조성호 , 『IT CookBook, 쉽게 배우는 운영체제(2판)』한빛아카데미(2023).
'COMPUTER SCIENCE > OS' 카테고리의 다른 글
| [쉽게 배우는 운영체제 2판] 4장 연습문제 (0) | 2025.04.16 |
|---|---|
| [쉽게 배우는 운영체제 2판] 4. CPU 스케줄링 (0) | 2025.04.16 |
| [쉽게 배우는 운영체제 2판] 3. 프로세스와 스레드 (0) | 2025.04.15 |
| [쉽게 배우는 운영체제 2판] 2장 연습문제 (0) | 2025.04.14 |
| [쉽게 배우는 운영체제 2판] 1장 연습문제 (0) | 2025.04.14 |