운영체제 기말고사 과제: 스케줄링, 교착상태, 페이징
본 내용은
"
아주대학교 정보통신대학원 운영체제 과제 (기말고사)
"
의 원문 자료에서 일부 인용된 것입니다.
2023.01.31
문서 내 토픽
-
1. 프로세스 스케줄링 전략FCFS, SJF(Non-preemptive), SJF(Preemptive), Round Robin 등 다양한 CPU 스케줄링 알고리즘을 Gantt chart로 표현하고 평균 대기시간과 반환시간을 계산하는 방법을 다룬다. 각 스케줄링 전략의 성능을 비교하여 SJF Preemptive가 가장 낮은 평균 대기시간(3ms)과 반환시간(6.5ms)을 보여준다.
-
2. 교착상태(Deadlock) 감지 및 회피자원할당그래프(RAG)의 그래프 축소 방법을 이용한 교착상태 판별, Banker's Algorithm을 통한 교착상태 회피, Deadlock detection 및 recovery 기법, Resource Preemption과 Rollback 메커니즘을 설명한다. 교착상태 복구 시 프로세스 종료 기준과 체크포인트 기반 복구 방법을 제시한다.
-
3. 요구페이징과 페이지 교체 전략Demand paging 기법에서 지역성(locality)을 고려한 페이지 교체 전략이 FIFO 교체 전략보다 효과적임을 설명한다. FIFO의 이상현상(Belady's anomaly)을 언급하며, 프레임 수 증가가 반드시 페이지 결함 감소로 이어지지 않는 현상을 다룬다.
-
4. 저널링 파일 시스템(Journaling File System)JFS, XFS, ext3 등 저널링 파일 시스템의 개념과 특징을 설명한다. 시스템 crash 발생 시 WAL, 버퍼 캐시, 메타데이터를 이용한 복구 과정을 다루며, 동기화(Synchronization) 명령어를 통한 데이터 일관성 유지 방법을 제시한다.
-
1. 프로세스 스케줄링 전략프로세스 스케줄링은 운영체제의 핵심 기능으로, CPU 자원을 효율적으로 배분하는 데 매우 중요합니다. FCFS, SJF, Round Robin 등 다양한 알고리즘이 있으며, 각각 장단점이 있습니다. 현대 시스템에서는 우선순위 기반 스케줄링과 멀티레벨 피드백 큐를 결합하여 대화형 작업과 배치 작업을 모두 효율적으로 처리합니다. 특히 컨텍스트 스위칭 오버헤드를 최소화하면서도 공정성을 유지하는 것이 중요하며, 실시간 시스템에서는 예측 가능성이 우선되어야 합니다. 적절한 스케줄링 전략 선택은 시스템 성능과 사용자 만족도에 직접적인 영향을 미칩니다.
-
2. 교착상태(Deadlock) 감지 및 회피교착상태는 시스템 자원 할당에서 발생하는 심각한 문제로, 예방, 회피, 감지 및 복구 등 다양한 대응 방법이 있습니다. 은행가 알고리즘을 통한 회피는 안전하지만 자원 활용도가 낮을 수 있으며, 감지 및 복구 방식은 자원 활용도는 높지만 복구 비용이 큽니다. 실제 시스템에서는 교착상태 발생 가능성이 낮다고 가정하고 감지 메커니즘을 구현하는 것이 실용적입니다. 타임아웃 기반 감지나 리소스 그래프 분석 등의 기법이 효과적이며, 시스템 특성에 맞는 전략을 선택하는 것이 중요합니다.
-
3. 요구페이징과 페이지 교체 전략요구페이징은 가상 메모리 구현의 핵심으로, 필요한 페이지만 메인 메모리에 로드하여 메모리 효율성을 극대화합니다. LRU, FIFO, LFU 등 다양한 페이지 교체 알고리즘이 있으며, LRU가 일반적으로 좋은 성능을 제공합니다. 페이지 폴트율을 최소화하는 것이 시스템 성능에 중요하며, 워킹셋 개념을 활용한 적응형 알고리즘도 효과적입니다. 다만 페이지 교체 결정에 따른 오버헤드와 디스크 I/O 비용을 고려해야 하며, 실제 구현에서는 하드웨어 지원과 소프트웨어 정책의 균형이 필요합니다.
-
4. 저널링 파일 시스템(Journaling File System)저널링 파일 시스템은 시스템 장애 시 데이터 무결성을 보장하는 중요한 기술입니다. 메타데이터 저널링과 데이터 저널링 방식이 있으며, 메타데이터 저널링이 성능과 안정성의 균형을 잘 맞춥니다. ext3, ext4, NTFS 등 현대 파일 시스템에서 널리 사용되고 있으며, 크래시 복구 시간을 크게 단축시킵니다. 저널 크기와 커밋 주기 설정이 성능에 영향을 미치므로 신중한 튜닝이 필요합니다. 저널링으로 인한 추가 I/O 오버헤드가 있지만, 데이터 손실 방지의 이점이 훨씬 크므로 현대 시스템에서 필수적인 기능입니다.
