일반적으로 가장 접하기 쉬운 운영체제는 windows일 것이다.
운영체제(OS, Operating System)란 말 그대로 컴퓨터를 운영하기 위한 체계적인 시스템이다.
즉, 컴퓨터의 총관리자라고 생각하면 이해하기 쉽다.
이러한 관리시스템의 종류가 여러가지가 있다.
그 중 가장 대표적인 것이 windows,
그리고 맥북에서는 macOS라는 운영체제를 선택하여 사용하는 것이다.
그 외에도 리눅스, 안드로이드 등이 있다.
좀 더 깊이 들어가서 생각해보면, 컴퓨터는 단순히 하나의 기계가 아니다.
여러 하드웨어 부품들(CPU, 메모리, 디스크, 키보드 등)이 모여 있고, 그 위에서 프로그램이 실행된다.
그런데 이 모든 것들을 사용자가 직접 일일이 제어하기는 어렵고 위험하다.
사용자가 일일이 제어한다는 말은,
TV를 볼 때 리모컨 없이 전자 회로를 직접 만져야 하는 것과 같다.
운영체제는 사용자가 이러한 하드웨어를 직접 건드리지 않아도,
버튼 클릭 몇 번만으로도 프로그램 실행, 파일 저장, 인터넷 연결 같은 일을 가능하게 해주는 것이다.
운영체제는 컴퓨터라는 복잡한 기계를 사람이 쉽게 사용할 수 있도록 도와주는 총괄 매니저이다.
대표적인 역할은 크게 네 가지로 나눌 수 있다.:
1️⃣ 프로그램을 실행시켜준다
2️⃣ 사용자에게 편리한 UI(화면 인터페이스)를 제공한다
3️⃣ 파일, 메모리 등 자원을 효율적으로 관리한다
4️⃣ 하드웨어(CPU, 디스크 등)를 제어하고 연결해준다.
사용자는 그저 프로그램을 더블 클릭하거나 아이콘을 누르지만,
그 뒤에서 OS는 엄청나게 바쁘게 움직이고 있다.
사용자가 프로그램 하나를 실행하면,
🌀 쉴틈이 없다.
이제, 운영체제가 어떻게 구성되어 있는지 알아보자.
그래서 운영체제는 프로그램을 실행할 때 두 개의 공간(모드)을 구분해서 사용한다.
유저모드는 일반 프로그램이 실행되는 공간이다.
우리가 사용하는 크롬, 게임, 메모장 같은 앱들은 전부 유저모드에서 돌아간다.
반면, 커널모드는 컴퓨터의 핵심 기능이 작동하는 운영체제 전용 공간이다.
사용자가 실수로 이 영역을 건드리면 시스템 전체가 멈출 수 있기 때문에,
보안을 위해 접근이 제한되어 있다.
유저모드는 사용자 친화적인 놀이터,
커널모드는 운영체제만 들어갈 수 있는 조종실이다.
그렇다고 사용자가 커널모드에 전혀 접근 못 하는 건 아니다.
유저모드에서 커널모드로 들어갈 때 보내는 요청이 있다.
그게 바로 시스템 호출(System Call)이다.
운영체제는 크게 아래 네 가지 역할을 수행하며,
각 역할 안에는 구체적인 기능들과 개념들이 들어 있다.
프로세스(Process)
→ 실행 중인 프로그램의 단위. CPU, 메모리 등의 자원을 할당받음
스레드(Thread)
→ 프로세스 안에서 실행되는 작업 흐름. 여러 개 존재 가능
컨텍스트 스위칭(Context Switching)
→ CPU가 실행 중인 프로세스를 바꾸는 과정
CPU 스케줄링(Scheduling)
→ 어떤 프로세스가 CPU를 사용할지 결정
💡 “실행 중인 프로그램을 효율적으로 관리하는 일”
이 파트가 운영체제의 핵심 중 하나이다.
CLI (Command Line Interface)
→ 터미널에서 명령어 입력으로 조작
GUI (Graphical User Interface)
→ 창, 버튼, 아이콘 등 그래픽으로 조작
쉘(Shell)
→ 사용자와 커널 사이의 중간 다리 역할
💡 "사용자가 명령을 입력하고, 그 결과를 눈으로 확인하는 공간"을 구성하는 역할
메모리 관리 (Memory Management)
가상 메모리
페이징 / 세그먼테이션
페이지 교체 알고리즘
파일 시스템 (File System)
디렉터리, 파일 구조
파일 이름, 위치, 속성 관리
저장장치 관리 (Disk Management)
디스크 스케줄링 알고리즘 (e.g., FCFS, SSTF, LOOK 등)
💡 "누가 얼만큼 메모리를 쓰는지, 파일이 어디 저장됐는지 등을 책임지는 똑똑한 관리자 역할"
장치 드라이버(Device Driver)
→ OS와 하드웨어(프린터, 마우스 등)를 이어주는 코드
입출력 시스템 (I/O System)
→ 하드웨어와 데이터 주고받는 방법 관리
인터럽트 (Interrupt)
→ 예외 상황이 발생했을 때 즉시 처리
DMA (Direct Memory Access)
→ CPU 개입 없이 장치가 메모리 접근할 수 있게 해줌
💡 “하드웨어와 소통하고, 예외 상황에 대처하는 조정자 역할”
덕분에 운영체제 마스터했네요