운영체제·프로세스·IPC
프로세스 상태와 공유·독립 자원을 구별한다.
실기 학습 목표
프로세스 상태와 공유·독립 자원을 구별한다.
핵심 이론
운영체제는 프로세스·메모리·파일·장치 등 자원을 관리한다. 프로세스는 실행 중인 프로그램이며 스레드는 실행 흐름이다. 같은 프로세스의 스레드들은 주소 공간 등을 공유하지만 스택·레지스터 실행 상태는 각자 가진다.
준비는 CPU만 기다리는 상태, 실행은 CPU를 쓰는 상태, 대기는 I/O 등 사건을 기다리는 상태다. I/O 완료는 대기→준비이며 곧바로 실행을 보장하지 않는다.
PCB에는 프로세스 식별·상태·실행 문맥·스케줄링 등 관리 정보가 있다. 문맥교환은 기존 실행 문맥을 저장하고 다음 문맥을 복원한다.
IPC에는 파이프·메시지 큐·소켓·공유 메모리 등이 있다. 공유 메모리는 큰 데이터 복사를 줄이지만 경쟁 상태를 막는 동기화가 별도로 필요하다.
개념 도식
준비와 대기는 무엇을 기다리는지가 다르다
준비 상태는 실행할 조건은 갖췄지만 CPU를 기다리는 상태, 대기 상태는 입출력 완료 같은 사건을 기다리는 상태다. 실행 중 입출력을 요청하면 대기로, 입출력이 끝나면 준비로 이동한다. 입출력이 끝났다는 이유만으로 곧바로 CPU를 배정받았다고 단정하지 않는다.
| 사건 | 대표 상태 전이 |
|---|---|
| 스케줄러가 CPU 배정 | 준비 → 실행 |
| 시간 할당량 종료·선점 | 실행 → 준비 |
| 입출력 완료 대기 | 실행 → 대기 |
| 기다리던 사건 완료 | 대기 → 준비 |
프로세스는 실행 중인 프로그램과 자원·실행 상태를 포함한다. 스레드는 프로세스 안의 실행 흐름으로 같은 프로세스 자원을 공유할 수 있다. IPC는 프로세스 사이 통신을 위한 수단이며 파이프·메시지 큐·공유 메모리 등이 있다.
공유 메모리는 여러 프로세스가 같은 영역에 접근하므로 대량 데이터 복사 부담을 줄일 수 있지만 동시에 값을 바꾸면 동기화가 필요하다. 공유한다는 사실과 안전한 순서가 보장된다는 사실은 다르다. 상태 이름이나 IPC 방식을 묻는 문제는 기다리는 대상과 데이터 전달 방식을 찾아 답한다.
풀이 예시
두 프로세스가 큰 데이터 영역을 각각의 주소 공간에 매핑하여 같은 물리적 저장 내용을 직접 읽고 쓴다. 데이터 전달 때마다 전체 내용을 메시지로 복사하지 않지만, 동시 접근의 순서는 별도의 동기화로 보호해야 한다. 이 IPC 방식의 이름을 쓰시오.
예시 정답
공유 메모리
풀이 과정
공유 메모리는 여러 프로세스가 같은 저장 영역을 매핑하여 내용을 공유하는 방식이다. 영역 공유 자체가 동시 쓰기의 순서와 상호배제를 보장하지는 않으므로 별도 동기화가 필요하다.
답안 점검
위 풀이 예시의 답을 가린 뒤, 핵심 이론의 규칙을 적용해 직접 풀어 보세요. 코드와 계산 문제는 중간값·단위·최종 출력의 순서를, 용어 문제는 지문의 핵심 단서와 답의 의미를 점검하세요. 해설과 다른 부분이 있으면 어느 조건을 놓쳤는지 확인하고 연결된 실기 문제로 다시 연습하세요.