수업계획서#

수업 설명#

이 수업에서는 컴퓨터 시스템의 작동에 필수적인 운영체제의 설계, 기능, 관리에 대해 포괄적으로 다룹니다. 프로세스 관리, 메모리 관리, 파일 시스템 등 운영체제의 이론적・실질적 측면과 리눅스 운영체제에 대한 깊은 이해를 얻게 됩니다. 강의, 실습, 프로젝트를 통해 운영체제의 작동 방식, 하드웨어 및 소프트웨어와의 상호 작용, 운영체제 리소스의 효율적인 관리 방법을 배울 것입니다.

학습 목표#

이 수업을 성공적으로 마치면 학생들은 다음을 할 수 있습니다:

  • 운영체제의 기본 구성 요소와 상호 작용에 대한 이해.

  • 프로세스 관리, 메모리 관리, 교착 상태 (deadlock) 관리 정책의 선택 및 적용.

  • 파일, 장치, 디스크 저장소 관리의 기초 이해.

  • 기본 명령어, 프로세스 관리, 시스템 호출 등 리눅스 운영체제를 활용한 실질적인 경험.

전제 조건#

  • 컴퓨터 시스템의 기초

  • 프로그래밍 입문

수업 개요#

1주차: 운영체제 소개#

개요:

  • 운영체제 개념, 구성 요소, 작업에 대한 개요.

  • 운영체제에서의 보호와 보안.

  • 컴퓨팅 환경과 운영체제의 추상적 관점.

주요 학습 성과:

  • 운영체제의 역할 및 목적 이해.

  • 운영체제의 구성 요소와 작동 파악.

  • 컴퓨팅 환경에서 보호 및 보안의 필요성 인식.

2주차: 운영체제 아키텍처#

개요:

  • 컴퓨터 시스템 아키텍처: 단일 프로세서 및 멀티 프로세서 시스템.

  • 운영체제 유형: 배치, 다중 프로그램, 시분할, 실시간, 분산.

주요 학습 성과:

  • 다양한 컴퓨터 시스템 아키텍처 이해.

  • 다양한 유형의 운영체제와 그 응용 분야 구분.

3주차: 프로세스 관리#

개요:

  • 프로세스 개념, 프로세스 연산, 협력 프로세스, 프로세스 간 통신, 스레드.

  • Linux OS 소개 및 기본 명령어.

주요 학습 성과:

  • 운영체제에서 프로세스의 개념 및 관리 이해

  • Linux OS 명령어 활용한 초기 실습 경험.

4주차: 프로세스 동기화#

개요:

  • 임계 영역 문제, 동기화 하드웨어, 세마포어, 고전적인 동기화 문제.

  • 기본 Linux 프로세스 관리 명령어 및 시스템 호출.

주요 학습 성과:

  • 프로세스 동기화 및 임계 영역 문제에 대한 해결책 이해.

  • 프로세스 관리를 위한 Linux 명령어 적용.

5주차: CPU 스케줄링#

개요:

  • 스케줄링 기준, 스케줄링 알고리즘, 다단계 큐 스케줄링, 다단계 피드백 큐 스케줄링.

주요 학습 성과:

  • CPU 스케줄링의 원리 이해.

  • 다양한 CPU 스케줄링 알고리즘 평가.

6주차: 교착 상태 (Deadlock)#

개요:

  • 교착 상태의 특징, 예방, 회피, 감지 및 복구.

  • 은행가 알고리즘 (Banker’s algorithm) 소개.

주요 학습 성과:

  • 교착 상태와 이를 처리하는 방법 이해.

  • 교착 상태 회피를 위한 은행가 알고리즘 적용.

7주차: 메모리 관리#

개요:

  • 연속 메모리 할당, 단편화, 페이징, 세그먼테이션.

  • 가상 메모리 개념 소개.

주요 학습 성과:

  • 메모리 관리 전략의 이해.

  • 페이징 및 세그먼테이션의 개념 이해.

8주차: 가상 메모리#

개요:

  • 요구 페이징, 페이지 교체 알고리즘, 프레임 할당, 스래싱(thrashing).

주요 학습 성과:

  • 가상 메모리의 작동 방식 이해.

  • 페이지 교체 알고리즘 평가.

9주차: 파일 시스템 인터페이스#

개요:

  • 파일 시스템 인터페이스의 개념, 접근 방법, 디렉터리 및 디스크 구조.

주요 학습 성과:

  • 파일 시스템 인터페이스와 접근 방법 이해.

  • 디렉터리 및 디스크 구조 인식.

10주차: 파일 시스템 구현#

개요:

  • 파일 시스템 구조, 구현, 디렉토리 구현, 할당 방법, 여유 공간 관리.

주요 학습 성과:

  • 파일 시스템의 구현 이해.

  • 할당 방법 및 여유 공간 관리 기술 이해.

11주차: 보조 저장소 관리#

개요:

  • 대용량 저장소 구조, 디스크 구조, 디스크 스케줄링 알고리즘, 디스크 관리, RAID 구조.

주요 학습 성과:

  • 보조 저장소 관리의 원리 이해.

  • 다양한 디스크 스케줄링 알고리즘 평가.

12주차: 장치 및 I/O 시스템#

개요:

  • 장치의 종류, 채널 및 제어 장치, 다중 경로, 블록 멀티플렉싱.

주요 학습 성과:

  • 장치 및 I/O 시스템의 관리 이해.

  • 채널, 제어 장치, 블록 멀티플렉싱의 개념 이해.

13주차: 심화 Linux 시스템 관리#

개요:

  • Linux의 메모리 관리 명령어 및 시스템 호출.

  • Linux의 파일 관리 명령어 및 시스템 호출.

주요 학습 성과:

  • Linux 시스템 관리에 대한 고급 기술 습득.

  • 메모리 및 파일 관리를 위한 Linux 명령어 적용.

14주차: 사례 연구 및 실제 적용#

개요:

  • 실제 운영체제 사례 연구 분석.

  • 실제 시나리오에서 운영체제 개념의 적용에 대한 논의.

주요 학습 성과:

  • 실제 운영체제 구성 및 관리 전략 분석.

  • 이론적 개념을 실제 운영체제 문제에 적용.

15주차: 복습 및 최종 프로젝트#

개요:

  • 강의에서 다룬 핵심 개념 복습.

  • 운영체제 관리 및 적용에 중점을 둔 기말 프로젝트 완료 및 발표.

주요 학습 성과:

  • 수업을 통해 습득한 지식 강화.

  • 포괄적인 기말 프로젝트를 통해 운영체제 관리에 대한 실질적인 기술 입증.

성적 평가#

  • 수업 참여: 20%

  • 과제: 40%

  • 기말 프로젝트: 40%

교재 및 참고 자료#

이 수업에 필수 교재는 없지만, 추가 자료를 원할 경우 다음 책을 권장합니다:

Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (University of Wisconsin-Madison)