운영체제 프로세스·스레드 핵심정리
프로세스 상태, 문맥교환, 스케줄링, 교착상태를 한 흐름으로 연결해 정리합니다.
프로세스와 스레드
프로세스는 독립된 주소 공간과 자원을 가진 실행 단위이고, 스레드는 프로세스 안에서 코드·데이터·힙을 공유하면서 스택과 레지스터를 따로 갖는 실행 흐름입니다.
- 스레드 전환은 일반적으로 프로세스 전환보다 가볍다.
- 공유 메모리는 빠르지만 동기화 문제가 생긴다.
- PCB는 프로세스 상태와 문맥 정보를 보관한다.
스케줄링 판단
선점형은 실행 중인 프로세스의 CPU를 회수할 수 있고, 비선점형은 자발적 반납이나 종료까지 기다립니다. 평균 대기시간 계산에서는 도착시간과 실행 순서를 먼저 시간축에 표시해야 합니다.
- RR은 시간 할당량이 지나면 준비 큐 뒤로 이동한다.
- SJF는 평균 대기시간에 유리하지만 긴 작업의 기아가 가능하다.
- 다단계 피드백 큐는 행동에 따라 큐 사이를 이동한다.
교착상태
상호배제·점유대기·비선점·환형대기의 네 조건이 동시에 성립할 때 교착상태가 가능합니다. 예방은 조건 하나를 깨고, 회피는 안전상태를 유지하며, 탐지는 발생 후 찾아 복구합니다.
- 은행원 알고리즘은 회피 기법이다.
- 자원 할당 그래프의 사이클은 자원 유형 수에 따라 의미가 달라진다.
- 기아는 무기한 대기이고 교착상태와 원인이 다르다.
상태 전이와 계산 문제를 함께 푸는 법
프로세스 문제는 준비·실행·대기 상태를 먼저 구분한 뒤 어떤 사건이 전이를 일으켰는지 추적해야 합니다. 스케줄링 계산에서는 도착시간, CPU 사용시간, 선점 시점과 시간 할당량을 시간축에 적고 대기시간·반환시간·응답시간을 각각 계산하면 용어 혼동을 줄일 수 있습니다.
- I/O 요청은 실행에서 대기로, I/O 완료는 대기에서 준비로 이동한다.
- 반환시간은 완료시간-도착시간, 대기시간은 반환시간-실행시간으로 계산한다.
- 공유 자원 문제가 나오면 임계구역·상호배제·진행·한정대기 조건을 함께 확인한다.
동기화·메모리 관리까지 연결하기
프로세스와 스레드 문제는 실행 순서뿐 아니라 공유 데이터 보호와 메모리 배치까지 연결됩니다. 임계구역에서는 상호배제를 보장하되 진행과 한정대기 조건을 만족해야 하며, 가상메모리에서는 페이지 부재와 교체 횟수를 참조열 순서대로 계산해야 합니다.
- 뮤텍스는 소유권을 전제로 한 상호배제, 세마포어는 정수값으로 사용 가능한 자원 수를 표현할 수 있다.
- LRU는 가장 오래 참조되지 않은 페이지를, FIFO는 가장 먼저 들어온 페이지를 교체한다.
- Belady의 모순은 프레임을 늘려도 FIFO의 페이지 부재가 증가할 수 있는 현상이다.
- 공유 메모리는 빠르지만 별도 동기화가 필요하고 메시지 전달은 주소 공간을 직접 공유하지 않는다.
파일 시스템·입출력·보호 영역 마무리
파일 시스템은 파일의 논리 구조와 디스크 블록 배치, 디렉터리 탐색, 빈 공간 관리를 함께 봐야 합니다. 입출력은 CPU가 장치를 직접 확인하는 프로그램 I/O, 완료를 알리는 인터럽트, 블록 전송을 맡기는 DMA를 구분하고 사용자 모드와 커널 모드의 보호 경계를 연결합니다.
- 연속 할당은 순차·직접 접근이 빠르지만 외부 단편화와 파일 확장 문제가 있고, 연결 할당은 순차 접근에 적합하지만 직접 접근이 불리하다.
- 인덱스 할당은 인덱스 블록으로 파일 블록 위치를 관리하며 작은 파일에도 인덱스 공간이 필요하다.
- 버퍼링은 속도 차이를 완화하고 스풀링은 디스크를 중간 저장소로 이용해 장치를 여러 작업이 공유하게 한다.
- 시스템 호출은 사용자 프로그램이 커널 기능을 요청하는 통제된 진입점이며 인터럽트·예외와 발생 원인을 구분한다.
시험에 바로 쓰는 비교표
| 구분 | CPU 회수 | 대표 방식 | 출제 함정 |
|---|---|---|---|
| 선점형 | 실행 중 회수 가능 | RR, SRT, 선점 우선순위 | 응답성은 좋지만 문맥교환 비용 증가 |
| 비선점형 | 종료·대기 전환까지 유지 | FCFS, SJF, HRN | 짧은 작업이 늦게 도착해도 즉시 끼어들 수 없음 |
| 교착상태 회피 | 안전상태를 유지 | 은행원 알고리즘 | 예방처럼 필요조건을 반드시 제거하는 방식이 아님 |
지문 표현을 판단 기준으로 바꾸기
- 시간 할당량이 지나 준비 큐의 뒤로 이동한다 → RR
- 시스템이 안전상태를 유지하도록 자원을 배분한다 → 회피
- 최근 사용한 페이지가 다시 쓰일 가능성 → 시간 지역성
자주 틀리는 판단
- 스레드가 모든 메모리를 독립적으로 가진다고 판단
- 교착상태의 필요조건 하나만 성립해도 발생한다고 판단
- 응답시간과 반환시간을 혼동
개념을 확인했다면 실제 문제에서 판단 기준을 적용해보세요.
분야별 문제 풀기