Skip to content

운영 체제란 무엇인가?

운영 체제(OS, Operating System)

하드웨어 자원을 관리하고, 프로세스·가상 메모리·파일·소켓 같은 추상화를 제공하며, 응용 프로그램이 안전하고 효율적으로 실행되도록 돕는 시스템 소프트웨어

즉, 운영체제는 단순히 "컴퓨터를 편하게 쓰게 해주는 프로그램"이 아니라, 하드웨어를 추상화하고 여러 프로그램이 충돌 없이 공존하도록 중재하는 소프트웨어 층이다.

대표 예시는 Windows, Linux, macOS, BSD, Android, iOS 등이 있다.



[ 운영체제의 역할 ]


1. 프로세스 관리
  • 프로세스, 스레드
  • 스케줄링
  • 동기화
  • IPC
2. 저장장치 관리
  • 메모리 관리
  • 가상 메모리
  • 파일 시스템
  • 블록 장치와 캐시 관리
3. 네트워킹
  • TCP/IP 스택
  • 소켓 API
  • 패킷 처리와 네트워크 장치 제어
4. 사용자 및 보안 관리
  • 계정 관리
  • 접근 권한 관리
  • 인증과 격리
5. 디바이스 관리
  • 디바이스 드라이버
  • 인터럽트 처리
  • 장치 추상화


[ 각 역할에 대한 설명 ]


1. 프로세스 관리

운영체제는 실행 중인 프로그램을 프로세스와 스레드 단위로 관리한다.

  • 어떤 태스크를 CPU에 올릴지 결정
  • 태스크 간 자원 충돌을 조정
  • 동기화와 IPC 제공
  • 종료된 태스크의 자원 정리

즉, CPU를 "누가, 언제, 얼마나" 쓸지 정하는 역할까지 포함한다.


2. 저장장치 관리

운영체제는 RAM과 SSD/HDD 같은 보조 저장장치를 함께 관리한다.

  • 메인 메모리
    • 프로세스별 가상 주소 공간 제공
    • 페이지 단위 보호와 격리
    • demand paging, swap, page cache 관리
  • 보조 저장장치
    • 파일과 디렉터리 관리
    • 공간 할당과 회수
    • 무결성과 복구 지원

현대 운영체제의 저장장치 관리는 "RAM 따로, 디스크 따로"가 아니라 가상 메모리와 파일 캐시를 함께 다루는 메모리 계층 관리에 가깝다.


3. 네트워킹

운영체제는 응용 프로그램이 네트워크를 사용할 수 있도록 네트워크 스택과 소켓 인터페이스를 제공한다.

애플리케이션은 보통 socket, bind, connect, send, recv 같은 시스템 콜/API를 통해 네트워크 기능을 사용한다.


4. 사용자 및 보안 관리

한 시스템을 여러 사용자가 함께 쓰거나, 서로 다른 프로그램이 동시에 실행될 때는 권한 분리가 중요하다.

그래서 운영체제는 다음을 관리한다.

  • 사용자/그룹 계정
  • 파일 및 시스템 자원 접근 권한
  • 프로세스 격리
  • 권한 상승 제한

5. 디바이스 관리

운영체제는 다양한 하드웨어 장치를 제어하기 위해 디바이스 드라이버를 사용한다.

디바이스 드라이버는 "하드웨어 추상화 전체" 그 자체라기보다, 특정 장치를 운영체제의 공통 인터페이스와 연결하는 소프트웨어 모듈이다.

드라이버는 장치 초기화, 명령 전달, DMA, 인터럽트 처리 등을 담당한다. 많은 OS에서 드라이버는 커널 안에 있거나 커널과 밀접하게 상호작용하며, 일부 시스템에서는 사용자 공간 드라이버도 사용한다.



[참고 자료]