운영체제 프로세스·스레드 핵심정리
프로세스 상태, 문맥교환, 스케줄링, 교착상태를 한 흐름으로 연결해 정리합니다.
관련 시험 9급 컴퓨터일반정보처리기사리눅스마스터
프로세스와 스레드
프로세스는 독립된 주소 공간과 자원을 가진 실행 단위이고, 스레드는 프로세스 안에서 코드·데이터·힙을 공유하면서 스택과 레지스터를 따로 갖는 실행 흐름입니다.
- 스레드 전환은 일반적으로 프로세스 전환보다 가볍다.
- 공유 메모리는 빠르지만 동기화 문제가 생긴다.
- PCB는 프로세스 상태와 문맥 정보를 보관한다.
스케줄링 판단
선점형은 실행 중인 프로세스의 CPU를 회수할 수 있고, 비선점형은 자발적 반납이나 종료까지 기다립니다. 평균 대기시간 계산에서는 도착시간과 실행 순서를 먼저 시간축에 표시해야 합니다.
- RR은 시간 할당량이 지나면 준비 큐 뒤로 이동한다.
- SJF는 평균 대기시간에 유리하지만 긴 작업의 기아가 가능하다.
- 다단계 피드백 큐는 행동에 따라 큐 사이를 이동한다.
교착상태
상호배제·점유대기·비선점·환형대기의 네 조건이 동시에 성립할 때 교착상태가 가능합니다. 예방은 조건 하나를 깨고, 회피는 안전상태를 유지하며, 탐지는 발생 후 찾아 복구합니다.
- 은행원 알고리즘은 회피 기법이다.
- 자원 할당 그래프의 사이클은 자원 유형 수에 따라 의미가 달라진다.
- 기아는 무기한 대기이고 교착상태와 원인이 다르다.
자주 틀리는 판단
- 스레드가 모든 메모리를 독립적으로 가진다고 판단
- 교착상태의 필요조건 하나만 성립해도 발생한다고 판단
- 응답시간과 반환시간을 혼동
개념을 확인했다면 실제 문제에서 판단 기준을 적용해보세요.
분야별 문제 풀기