운영체제 기초
운영체제(OS)는 하드웨어와 응용 프로그램 사이에서 자원을 관리하는 시스템 소프트웨어입니다. 정보처리기사에서는 프로세스, 스케줄링, 메모리, 교착상태가 핵심 출제 영역입니다.
프로세스 상태 전이
- New(생성): 프로세스 생성 중
- Ready(준비): CPU 할당 대기 중
- Running(실행): CPU에서 실행 중
- Waiting/Blocked(대기): I/O 또는 이벤트 완료 대기
- Terminated(종료): 실행 완료
PCB(Process Control Block): 각 프로세스의 상태 정보를 저장하는 커널 자료구조
CPU 스케줄링 알고리즘
선점형 (Preemptive)
- Round Robin(RR): 타임 퀀텀마다 순환, 시분할 시스템에 적합
- SRT(Shortest Remaining Time): 남은 시간이 가장 짧은 프로세스 우선
- 다단계 피드백 큐: 프로세스 실행 이력에 따라 큐 이동
비선점형 (Non-Preemptive)
- FCFS(First Come First Served): 도착 순서대로 처리, 호위 효과 발생 가능
- SJF(Shortest Job First): 실행 시간이 짧은 프로세스 우선, 기아 현상 발생 가능
- 우선순위 스케줄링: 우선순위 높은 프로세스 먼저, 에이징으로 기아 방지
메모리 관리
가상 메모리
물리 메모리보다 큰 주소 공간을 사용할 수 있도록 하는 기법. 페이지 테이블로 가상→물리 주소 변환
페이지 교체 알고리즘
- OPT(Optimal): 앞으로 가장 오랫동안 사용되지 않을 페이지 교체 (이론적 최적)
- LRU(Least Recently Used): 가장 오래 사용하지 않은 페이지 교체
- FIFO: 가장 먼저 들어온 페이지 교체, Belady의 모순 발생 가능
- LFU: 참조 횟수가 가장 적은 페이지 교체
- NUR(Not Used Recently): 최근에 사용하지 않은 페이지 교체 (참조비트, 변경비트 사용)
스래싱(Thrashing)
페이지 교체가 지나치게 빈번하여 실제 작업보다 페이지 교체에 더 많은 시간이 소요되는 현상. 워킹셋(Working Set) 기법으로 완화
교착상태 (Deadlock)
4가지 발생 조건 (모두 만족 시 교착상태 가능)
- 상호 배제(Mutual Exclusion): 자원은 한 번에 한 프로세스만 사용
- 점유 대기(Hold and Wait): 자원을 점유한 채 다른 자원 대기
- 비선점(Non-Preemption): 프로세스가 자원을 강제로 뺏길 수 없음
- 환형 대기(Circular Wait): 프로세스들이 원형으로 서로의 자원 대기
해결 방법
- 예방(Prevention): 4조건 중 하나 제거 (자원 낭비 심함)
- 회피(Avoidance): 은행가 알고리즘으로 안전 상태만 허용
- 탐지(Detection): 교착상태 발생 허용 후 탐지·복구
- 무시(Ignorance): 교착상태 무시 (일부 OS에서 채택)
시험 핵심 포인트
- Round Robin은 타임 퀀텀이 클수록 FCFS에 근접
- Belady의 모순: FIFO에서 프레임 수 증가 시 페이지 폴트 증가하는 이상 현상
- 교착상태 4조건 영어 약자: ME, HW, NP, CW
- 은행가 알고리즘: 안전 순서열이 존재하면 안전 상태
마무리
운영체제는 계산 문제(스케줄링 턴어라운드 시간, 페이지 폴트 횟수)가 자주 출제됩니다. 알고리즘별로 간단한 예제를 직접 계산해보며 학습하는 것이 가장 효과적입니다.