도입
그런데 이 모든 작업은 결국 CPU, 메모리, 디스크, 입출력 장치 같은 한정된 하드웨어 자원을 사용합니다.
하드웨어는 비싸고(비용), 제한적이며(물리적 한계), 동시에 여러 프로그램이 경쟁합니다(복잡성).
그래서 우리는 자원을 효율적이고 안전하게 분배해주는 “중간 관리자”가 필요합니다.
운영체제는 그 역할을 합니다.
“운영체제는 개발자가 하드웨어를 직접 다루지 않아도 되게 만들고,
시스템을 보호하면서 자원을 공정하게 배분하는 실행 플랫폼이다.”
정의
운영체제는 컴퓨터 시스템의 자원을 효율적으로 관리하고, 사용자(또는 응용 프로그램)와 하드웨어 사이에 표준 인터페이스를 제공하는 시스템 소프트웨어입니다. 한 문장으로 정리하면, 하드웨어와 소프트웨어의 중개자입니다.
만약 운영체제가 없다면 개발자/사용자는 하드웨어와 직접 통신하는 저수준 코드를 매번 작성해야 하고, 프로그램 간 충돌/자원 낭비를 막을 방법도 사라집니다.
💡 TIP / “OS가 없다면?”을 백엔드 관점으로 말하면
파일/소켓/메모리/CPU 스케줄링/보안 권한 같은 걸 프레임워크가 아니라 “앱 코드”가 직접 처리해야 합니다. 즉, 비즈니스 로직을 작성하기 전에 시스템 구현부터 시작해야 하고, 서비스 운영은 사실상 불가능해집니다.
기능
자원 할당 및 관리
CPU/메모리/디스크/네트워크/입출력 장치 같은 자원을 응용 프로그램이 “공정하고 안전하게” 쓰도록 배분합니다. 예를 들어 웹 서버는 요청이 몰려도 OS의 스케줄링과 메모리 관리 덕분에 안정적으로 동작합니다.
프로세스 및 스레드 관리
실행 중인 프로그램(프로세스)과 실행 흐름(스레드)을 관리해 “동시에 실행되는 것처럼” 보이게 합니다. 실무에서 말하는 응답 지연(P99), 스레드 풀 고갈 같은 문제도 결국 “대기(Ready/Blocked)가 누적되는 구조”에서 시작됩니다.
시스템 콜과 이중 모드
운영체제도 프로그램이기 때문에 메모리에 적재되어 실행됩니다. 다만 일반 앱과 달리 커널 영역(Kernel Space)이라는 보호된 공간에서 동작합니다. 반대로 웹/게임/서버 같은 일반 응용 프로그램은 사용자 영역(User Space)에서 실행됩니다.
커널 영역 vs 사용자 영역
시스템 콜(System Call)의 흐름
💡 TIP / 왜 “이중 모드”가 중요한가
앱이 메모리/디스크/CPU를 마음대로 건드리면 시스템 전체가 망가질 수 있습니다. 그래서 OS는 사용자 모드(제한)와 커널 모드(특권)를 분리하고, 시스템 콜을 통해서만 “안전하게” 자원 접근을 허용합니다.
정리
✅ 핵심 요약
- ✔️ OS는 하드웨어 자원을 효율적으로 관리하는 “중간 관리자”입니다.
- ✔️ 핵심 기능은 자원 할당/관리와 프로세스/스레드 관리입니다.
- ✔️ 시스템 콜은 OS 기능을 “요청”하는 통로이고, 이중 모드는 시스템을 “보호”하는 장치입니다.
- ✔️ 백엔드에서 발생하는 지연/장애/OOM은 결국 OS의 자원·대기·보호 모델과 연결됩니다.