1. |
|
운영체제의 개관, 역사
|
컴퓨터 시스템을 운용하기 위한 운영체제의 기술적 이슈와 역사적 발전 |
|
2. |
|
프로세스와 병행성 1
|
병행성을 획득하기 위한 소프트웨어 구조와 프로세스 개념 학습 |
|
|
|
프로세스와 병행성 2
|
병렬 프로세스를 실행하기 위한 프로그래밍 기법과 프로세스의 실행, 프로세스간 통신 |
|
3. |
|
쓰레드 1
|
쓰레드의 개념적 정의와 실행 모델, 쓰레드를 지원하기 위한 소프트웨어 구조 |
|
|
|
쓰레드 2
|
복수의 쓰레드를 병렬 실행하기 위한 운영체제의 프로그래밍 기법 |
|
4. |
|
프로세스 동기화 문제 1
|
복수의 프로세스가 병렬 실행되는 경우에 해결해야 하는 동기화 문제를 실행활에 비유된 예제를 통하여 고찰 |
|
|
|
프로세스 동기화 문제 2
|
프로세스 동기화 문제의 해결책을 관념적 수준에서 설계 |
|
5. |
|
프로세스 동기화 기법 1
|
프로세스 동기화를 위한 프로그래밍 구조로서 Lock, Semaphore, Monitor 를 이해하고 상호 배제의 개념과 응용을 학습 |
|
|
|
프로세스 동기화 기법 2
|
프로세스 동기화를 위한 프로그래밍 구조로서 Condition Variable 과 Reader-Writer Lock 을 이해하고 이들을 활용한 동기화 프로그래밍 기법을 학습 |
|
6. |
|
교착상태 1
|
교착상태가 발생하는 원인을 파악하고 교착상태 발생을 감지하기 위한 기법을 학습 |
|
|
|
교착상태 2
|
교착상태 방지 기법과 교착상태 회피 기법을 학습 |
|
7. |
|
프로세스 스케줄링 1
|
프로세스 스케줄링 문제를 정의하고, FCFS (First-Come First-Served) 스케줄링 기법과 RR (Round Robin) 스케줄링 기법을 이해, 이들의 장단점 비교 |
|
|
|
프로세스 스케줄링 2
|
프로세스 스케줄링 기법의 심화 학습으로서 SJF (Shortest Job First) 기법과 SRTF (Shortest Remaining Time First) 기법을 학습하고, 이들이 각각 최적성을 가짐을 확인 |
|
8. |
|
메모리 보호 1
|
프로세스의 주소 공간 (address space) 개념을 익히고, 커널 모드 (kernel mode) 와 상요자 모드 (user mode) 간 전환이 이루어지는 메커니즘을 학습 |
|
|
|
메모리 보호 2
|
프로세스들 사이의 메모리 보호를 위한 하드웨어 지원과 소프트웨어 지원 기법을 이해 |
|
9. |
|
주소변환 1
|
가상메모리 시스템 설계를 위한 주소 변환 기법으로서 세그멘테이션 (segmentation) 과 페이징 (paging) 기법을 학습, 이들의 장단점을 비교 |
|
|
|
주소변환 2
|
세그멘테이션 (segmentation) 과 페이징 (paging) 기법의 확장을 위한 기술을 학습하고 예제를 중심으로 실제 시스템에 적용되는 주소 변환 기법을 이해 |
|
10. |
|
캐시와 TLB 1
|
CPU 캐시의 설계와 조직, 메모리 주소 계산과 교체 알고리즘 (replacement algorithm) 학습 |
|
|
|
캐시와 TLB 2
|
변환 색인 버퍼 (TLB; translation lookaside buffer) 의 구조를 학습하고 TLB miss 를 처리하기 위한 하드웨어/소프트웨어 기법을 이해 |
|
11. |
|
가상 메모리 1
|
요구 페이징 (demand paging) 에 기반한 가상 메모리 시스템의 구조를 학습 |
|
|
|
가상 메모리 2
|
요구 페이징 (demand paging) 시스템의 성능을 향상시키기 위한 하드웨어/소프트웨어 기법을 학습 |
|
12. |
|
입출력장치 관리
|
운영체제에 의한 입출력장치 관리 기법을 익히고, 다양한 입출력장치를 컴퓨터 시스템에서 활용하기 위한 프로그래밍 구조를 학습 |
|
|
|
디스크 관리
|
보조기억장치로서의 하드디스크 운용 기법과 디스크 스케줄링 문제를 이해 |
|