이 글은 KOCW에 공개되어있는 '반효경 교수님'의 운영체제 강의 및 강의 교재 Operation System Concepts(a.k.a 공룡책🦕)의 내용을 취합하여 작성할 예정입니다
코린이(!) 가 쓴 글이기 때문에 부디 너그러운 마음으로 읽어주시면 감사하겠습니다
운영체제 개요
컴퓨터 시스템의 구조
프로세스 관리
CPU 스케쥴링
병행 제어
데드락
메모리 관리
가상 메모리
파일 시스템
입출력 시스템
디스크 관리
컴퓨터 하드웨어 바로 위에 설치되어있는 사용자 또는 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
정의를 보면 알 수 있듯이 운영체제 또한 소프트웨어이다.
그러나 하드웨어, 소프트웨어 자원들을 모두 관리한다는 점에서 차별점이 있는 소프트웨어라 할 수 있다
운영체제는 두가지 측면의 상호작용을 신경써야한다
1 ) 운영체제 <-> 사용자 상호작용
하나의 컴퓨터에서 여러개의 프로그램이 돌아가고 있고, 하나의 컴퓨터를 여러명의 사용자가 사용하고 있지만, 위 상호작용을 통해 사용자/프로그램이 각각 독자적 컴퓨터에서 사용되고 있다는 환상을 제공할 수 있다
2 ) 운영체제 <-> 컴퓨터 하드웨어 상호작용
위 상호작용을 통해 컴퓨터 시스템의 자원을 효율적으로 관리할 수 있다
자원 : 프로세서(cpu), memory, 기억장치, 입출력장치 등을 말한다
대표적은 자원들은 다음과 같다
여러 프로그램이 실행되면, 하나의 cpu가 아주 짧은 시간동안 번갈아가며 여러 프로그램을 실행한다.
이러한 작업을 가능하게 하는 것이 운영체제의 cpu 스케쥴링이다
여러 프로그램이 동시에 실행되어야하기 때문에 메모리를 쪼개서 여러 프로그램이 올려놓게 된다.
이 때 각 프로그램마다 얼마 만큼의 메모리를 주어야하는지 정하는 것도 운영체제가 할 일이다