Post

[OS] 운영체제란 무엇인가?

3줄 요약
운영체제는 자원을 효율적으로 관리하며 프로그램을 실행하게 하는 핵심 소프트웨어
사용자 모드커널 모드를 구분하여 자원 보호 및 시스템 안정성 확보
자원 접근은 커널 모드로 전환하는 시스템 호출을 통해 수행됨

💻 컴퓨터 구조 & 운영체제 시리즈

이 시리즈는 『혼자 공부하는 컴퓨터 구조+운영체제』 (강민철 저)
+ 인프런 강의를 기반으로 개인적으로 복습 및 정리한 기록입니다.


📌 운영체제란?

프로그램을 위한 프로그램
→ 사용자가 실행하는 모든 프로그램이 올바르게 동작하도록 하드웨어와의 연결을 중개해주는 역할
→ 즉, 하드웨어와 소프트웨어 사이의 다리 역할을 하는 필수 시스템 소프트웨어

  • 자원 / 시스템 자원
    → 프로그램 실행에 있어 마땅히 필요한 요소
    → 컴퓨터의 네 가지 핵심 부품 포함

  • 실행할 프로그램에 필요한 자원을 할당
  • 프로그램이 올바르게 실행되도록 돕는 프로그램
  • 프로그램이기 때문에 메모리에 적재되어 실행
    → 운영체제가 적재되는 부분을 커널 영역이라고 함
    → cf) 응용 프로그램은 사용자 영역에 적재 → 사용자 영역과 커널 영역을 나누는 이유는 시스템 자원을 보호하고, 오류나 공격으로부터 시스템을 안전하게 지키기 위함

  • 메모리 관리
  • CPU 관리
  • 입출력장치 관리

운영체제 없이 개발하는 일은 절대 없어야 한다. 끔찍하다.
하드웨어를 직접 조작해야 한다? 말도 안 됨.


🧠 커널 (≒운영체제, Kernel)

운영체제의 핵심 서비스를 담당하는 부분
cf) 운영체제에는 속하지만 커널에는 속하지 않는 것 → UI (User Interface)

  • 사용자가 사용하는 프로그램이 자원에 직접 접근하는 것은 위험
  • 운영체제가 중간에서 자원을 보호하고, 간접적으로 접근하도록 제어
  • 응용 프로그램은 자원 접근 시 운영체제 코드를 반드시 실행해야 함

🔐 이중 모드 (Dual Mode)

CPU가 명령어를 실행하는 모드를 사용자 모드커널 모드로 구분

사용자 모드

  • 운영체제 서비스를 제공받을 수 없음
  • 커널 영역 코드 실행 불가
  • 자원 접근 불가

커널 모드

  • 운영체제 서비스 제공 가능
  • 자원 접근 및 모든 명령어 실행 가능

🔁 시스템 호출 (System Call)

  • 커널 모드로 전환하여 OS 기능을 수행하기 위한 호출
  • 일종의 소프트웨어 인터럽트 → 하드웨어 인터럽트 처리 방식과 유사
  • 시스템 호출은 파일 열기, 데이터 읽기/쓰기, 프로세스 생성, 종료 등의 작업에서 사용됨
  • 예: read(), write(), fork(), exec(), exit() 등

📂 운영체제의 주요 역할

  • 프로세스 관리
    → CPU를 사용할 수 있도록 프로세스를 생성, 실행, 종료하는 전 과정을 관리

  • 자원 접근 및 할당
    → 메모리, CPU 시간, 입출력 장치 등 시스템 자원을 각 프로그램에 적절히 분배

  • 파일 시스템 관리
    → 데이터를 디스크에 저장하고, 읽고, 쓰는 파일 관련 기능을 제공


✅ 마무리 정리

운영체제는 단순히 프로그램을 실행하는 게 아니라,
자원을 효율적으로 관리하고 보호하며,
모든 프로그램이 안전하게 돌아갈 수 있도록 중재자 역할을 수행함


📚 참고 자료


읽어주셔서 감사합니다 🙌
내용이 도움이 되었거나, 틀린 부분이 있다면 댓글이나 GitHub Issue로 알려주세요 😊

This post is licensed under CC BY 4.0 by the author.