1. 운영체제를 공부해야 하는 이유
- 하드웨어 관리의 주체: 모든 프로그램은 하드웨어 위에서 실행되며, 운영체제는 이 자원을 배분하는 핵심 역할을 한다.
- 시스템 레벨의 최적화: OS의 동작 원리를 이해해야 내 코드가 메모리와 CPU를 어떻게 사용하는지 파악하고 최적화할 수 있다.
- 문제 해결 범위의 확장: 단순한 코드 로직의 오류를 넘어, 디스크 I/O 병목이나 메모리 스와핑 등시스템 레벨에서 발생하는 원인 불명의 성능 저하를 진단하고 해결할 수 있는 능력이 생긴다.
- 게임 개발에서의 필수성: 실시간 성능이 최우선인 게임 개발에서는 CPU 스케줄링과 메모리 관리 이해가 필수적이다.
2. 학습 로드맵
학습할 교재인 [혼자 공부하는 컴퓨터 구조+운영체제]에서 운영체제편의 흐름을 따라 전공 지식을 7단계로 정리해 나갈 계획이다.
- Step 1. 운영체제 시작하기 (Ch 9)
- 본격적인 학습 전, 운영체제가 왜 필요한지 그리고 어떤 역할을 수행하는지 전체적인 큰 그림을 그린다. - Step 2. 프로세스와 스레드 (Ch 10)
- 실행 중인 프로그램인 '프로세스'와 그 내부의 실행 흐름인 '스레드'의 개념을 파악하고, CPU가 작업을 수행하는 단위를 이해한다. - Step 3. CPU 스케줄링 (Ch 11)
- 수많은 프로세스 중 어떤 작업에 CPU를 먼저 할당할지 결정하는 운영체제의 자원 배분 전략을 학습한다. - Step 4. 프로세스 동기화 (Ch 12)
- 여러 프로세스나 스레드가 동시에 자원을 사용할 때 발생하는 데이터 충돌 문제를 방지하고, 실행 순서를 제어하는 기법을 다룬다. - Step 5. 교착 상태 (Ch 13)
- 서로 상대방이 가진 자원을 기다리며 아무것도 못 하는 '데드락' 상태의 원인과 이를 해결하는 방법을 정리한다. - Step 6. 가상 메모리 (Ch 14)
- 물리적 메모리의 한계를 넘어, 프로세스마다 독립적인 주소 공간을 부여하고 효율적으로 관리하는 메모리 관리 기법을 소개한다. - Step 7. 파일 시스템 (Ch 15)
- 보조기억장치에 데이터를 저장하고 관리하는 논리적 구조와 운영체제가 파일을 어떻게 조직화하는지 살펴본다.