2025-09-06 22:30

Tags: 소프트웨어 공학

운영체제

  • 컴퓨터 하드웨어를 관리하고 응용 프로그램에 기반을 제공하는 핵심 시스템 소프트웨어

  • 커널은 운영체제의 심장으로, 프로세스, 메모리, 저장장치 등 시스템의 모든 것을 제어

  • 커널의 역할

역할설명비유
프로세스 관리CPU에 여러 프로세스(실행 중인 프로그램)를 번갈아 할당하여 동시에 여러 작업이 처리되는 것처럼 보이게 합니다.레스토랑의 유능한 매니저가 여러 테이블의 주문을 효율적으로 처리하는 것
메모리 관리각 프로세스가 필요로 하는 메모리 공간을 할당하고, 다른 프로세스의 영역을 침범하지 않도록 보호합니다.도서관 사서가 각 이용자에게 필요한 책을 찾아주고 반납받는 것
파일 시스템 관리하드디스크나 SSD 같은 저장장치에 파일을 생성, 읽기, 쓰기, 삭제하는 기능을 제공하고, 디렉터리 구조로 파일을 관리합니다.거대한 창고의 물품을 체계적으로 정리하고 재고를 파악하는 관리인
입출력(I/O) 관리키보드, 마우스, 모니터, 프린터 등 다양한 입출력 장치와 컴퓨터 간의 데이터 전송을 제어합니다.공항의 관제탑이 수많은 비행기의 이착륙을 안전하게 통제하는 것
프로세스 간 통신(IPC) 관리여러 프로세스가 서로 데이터를 주고받고 협력할 수 있도록 돕습니다.회사의 다른 부서들이 프로젝트를 위해 협업하도록 조율하는 것
  • 멀티태스킹:

    • 대부분 컴퓨터는 한순간에 한가지 일만 처리 가능
    • 운영체제는 아주 짧은 시간을 여러 프로세스 에 번갈아 할당
    • 전환 속도가 너무 빨라서 사용자 입장에선 동시에 모두 실행되는 것으로 보임
    • 이를 시분할 시스템 이라고 함
  • 가상 메모리

    • 운영체제는 각 프로그램에게 실제 물리 메모리(RAM)보다 훨씬 큰 가상의 메모리 공간을 할당
    • 당장 실행에 필요한 부분만 물리 메모리에 올려놓고, 나머지는 하드디스크의 특정 공간(스왑 공간 또는 페이지 파일)에 저장
    • 만약 하드디스크에 저장된 부분이 필요해지면, 물리 메모리에 있는 내용 중 당장 쓰이지 않는 부분을 하드디스크로 내리고 필요한 부분을 가져옴(스와핑)
  • 시스템 호출 (System Call)과 모드 전환

    • 사용자 모드: 일반 응용 프로그램이 실행되는 모드. 하드웨어에 직접 접근하는 등 민감한 작업은 제한됩니다.
    • 커널 모드: 운영체제 커널이 실행되는 모드. 모든 시스템 자원에 접근할 수 있는 무소불위의 권한을 가집니다.”
  • 종류

    • 데스크톱 OS: Windows, macOS, Linux
    • 모바일 OS: Android, iOS
    • 서버 OS: Linux (CentOS, Ubuntu Server), Windows Server
    • 임베디드 OS: 자동차, 가전제품, 산업용 로봇 등에 내장되는 실시간 운영체제(RTOS)