운영체제

운영체제(OS)란 무엇일까? 컴퓨터 시스템의 핵심 파헤치기 ✌️

잔잔한 흐름 2025. 4. 17. 02:22

 

안녕하세요! 오늘은 컴퓨터 시스템의 심장과도 같은 운영체제(Operating System, OS) 에 대해 알아보려고 합니다. 우리가 매일 사용하는 컴퓨터, 스마트폰 속에는 어떤 비밀이 숨어있을까요? 운영체제의 역할부터 컴퓨터 시스템의 구조까지 알아보자.😊 (운영체제 공룡책 기반으로 작성되었습니다)

1. 운영체제(OS)?🤔

컴퓨터 시스템은 크게 하드웨어, 운영체제, 응용 프로그램, 사용자 4가지 요소로 구성됩니다. 

  • 하드웨어: CPU, 메모리, 입출력 장치 등 눈에 보이는 기계 장치들 
  • 응용 프로그램: 워드 프로세서, 웹 브라우저 등 우리가 특정 작업을 하기 위해 사용하는 소프트웨어
  • 사용자: 😄
  • 운영체제: 바로 이 하드웨어와 응용 프로그램 사이에서 모든 것을 관리하고 조율하는 핵심 소프트웨어입니다! 

운영체제의 주요 역할:

  1. 중개자 역할: 사용자가 컴퓨터 하드웨어를 쉽고 효율적으로 사용할 수 있도록 돕습니다. 
  2. 자원 할당자 (Resource Allocator): CPU 시간, 메모리 공간, 저장 공간 등 한정된 시스템 자원을 여러 프로그램과 사용자에게 효율적이고 공정하게 배분합니다. 
  3. 제어 프로그램 (Control Program): 프로그램이 오류 없이 실행되도록 제어하고, 하드웨어 및 입출력 장치의 작동을 관리하며 부적절한 사용을 방지합니다. 
  4. 실행 환경 제공: 응용 프로그램이 원활하게 실행될 수 있는 기반 환경을 마련해 줍니다. 

간단히 말해, 운영체제 자체는 특별한 기능을 하지 않지만, 다른 프로그램들이 제 역할을 할 수 있도록 판을 깔아주는 아주 중요한 존재라고 할 수 있습니다. 

운영체제의 구성 요소:

  • 커널 (Kernel): 운영체제의 핵심! 부팅 후 항상 메모리에 상주하며 시스템을 총괄 관리합니다.
  • 미들웨어 (Middleware): (주로 모바일 OS에서) 앱 개발자에게 데이터베이스, 멀티미디어 지원 등 추가 서비스를 제공하는 프레임워크입니다.
  • 시스템 프로그램: 커널은 아니지만, 시스템 관리 및 운영을 돕는 유틸리티 프로그램들입니다. 

2. 컴퓨터 시스템은 어떻게 돌아갈까? ⚙️ (시스템 구성)

현대 컴퓨터 시스템은 어떻게 구성되어 있고, 운영체제는 이들을 어떻게 관리할까요?

  • 기본 구조: 하나 이상의 CPU, 메모리, 다양한 입출력 장치 컨트롤러들이 **공통 버스(Bus)**를 통해 연결되어 데이터를 주고받습니다. 
  • 장치 컨트롤러 & 드라이버: 각 하드웨어 장치(키보드, 디스크 등)는 장치 컨트롤러가 관리합니다. 운영체제는 이 컨트롤러와 통신하기 위해 장치 드라이버라는 소프트웨어를 사용합니다.

  • 인터럽트 (Interrupts): 중요! ✨
    • CPU는 매우 빠르지만, 입출력 장치들은 상대적으로 느립니다. 장치가 CPU의 도움이 필요할 때 (예: 키보드 입력 완료, 디스크 읽기 완료), CPU에게 "나 좀 봐줘!" 하고 신호를 보냅니다. 이것이 바로 인터럽트입니다. 
    • 인터럽트가 발생하면, CPU는 하던 일을 잠시 멈추고 해당 인터럽트를 처리하기 위한 인터럽트 서비스 루틴(ISR) 또는 인터럽트 핸들러를 실행합니다. 
    • 처리가 끝나면 CPU는 원래 하던 작업으로 복귀합니다.
    • 운영체제는 인터럽트 벡터, 마스킹 (중요 작업 중 인터럽트 잠시 무시), 우선순위  등을 이용해 인터럽트를 효율적으로 관리합니다.

  • 저장장치 구조 (Memory Hierarchy):
    • 메인 메모리 (RAM): CPU가 직접 접근하여 명령어를 실행하는 작업 공간. 빠르지만 휘발성(전원 꺼지면 내용 사라짐)이고 용량이 제한적입니다. 
    • 보조 저장장치 (Secondary Storage): 하드 디스크(HDD), SSD 등. 대용량 데이터를 비휘발성(전원 꺼져도 유지됨)으로 저장합니다. 
    • 캐시 (Cache): CPU와 메인 메모리 사이의 속도 차이를 줄이기 위한 고속 임시 저장 공간. 
    • 기타: 레지스터(CPU 내 최고속 메모리), EEPROM/펌웨어(부팅 정보 등 저장, 비휘발성) 
    • 메모리 계층 구조: 속도가 빠르고 비쌀수록 CPU 가까이(레지스터, 캐시), 느리고 저렴하며 용량이 클수록 멀리(메인 메모리, 보조 저장장치) 배치됩니다. 

  • 입출력 구조 (I/O Structure):
    • 대량의 데이터를 효율적으로 전송하기 위해 직접 메모리 접근(DMA - Direct Memory Access) 방식을 사용합니다. 
    • DMA는 CPU의 개입 없이 장치 컨트롤러가 직접 메인 메모리와 데이터를 주고받게 하여 CPU의 부담을 덜어줍니다. 

3. 다양한 컴퓨터 시스템 구조 🏗️

컴퓨터 시스템은 필요에 따라 다양한 구조로 설계됩니다.

  • 단일 처리기 시스템 (Single-Processor Systems): 하나의 CPU 코어를 가진 가장 기본적인 형태입니다. 
  • 다중 처리기 시스템 (Multi-Processor Systems):
  • SMP (Symmetric Multiprocessing - 대칭적 다중 처리): 두 개 이상의 동일한 프로세서(코어)가 메모리와 주변 장치를 공유하며 모든 작업을 대등하게 처리합니다. 처리량 증가가 장점입니다.

  • NUMA (Non-Uniform Memory Access): 여러 개의 CPU가 각자 로컬 메모리를 가지면서도, 서로의 메모리에 접근할 수 있는 구조입니다. 로컬 메모리 접근은 빠르지만, 다른 CPU의 메모리(원격 메모리) 접근은 느릴 수 있습니다.          

 

  • 클러스터형 시스템 (Clustered Systems):
    • 둘 이상의 독립적인 시스템(노드, 보통 다중 코어 시스템)을 네트워크(LAN, InfiniBand 등)로 연결하여 마치 하나의 시스템처럼 작동하게 만든 구조입니다. 
    • 주요 목적:
      • 고가용성 (High Availability): 일부 노드에 장애가 발생해도 다른 노드가 작업을 이어받아 서비스 중단을 최소화합니다 (Failover). 
      • 고성능 컴퓨팅 (High Performance Computing): 여러 노드가 작업을 병렬로 처리하여 계산 능력을 극대화합니다. 
    • 구성 방식:
      • 비대칭형 (Asymmetric): 한 노드는 대기(Standby) 상태로 있다가 활성 노드 고장 시 작업을 넘겨받습니다. 
      • 대칭형 (Symmetric): 모든 노드가 작업을 처리하면서 서로를 감시합니다. 자원 활용률이 높습니다. 
    • 병렬 클러스터 (Parallel Cluster): 여러 노드가 공유 스토리지의 동일 데이터에 접근. 동시 접근 제어를 위해 분산 잠금 관리자(DLM) 등이 필요합니다. 
    • SAN (Storage Area Network): 클러스터링 환경에서 여러 호스트가 여러 저장 장치에 효율적으로 연결될 수 있도록 지원합니다.

<클러스터 시스템의 일반적 구조>

맺음말 ✨

오늘은 운영체제의 기본적인 역할과 정의, 그리고 컴퓨터 시스템이 어떻게 구성되고 작동하는지에 대해 살펴보았습니다. 우리가 무심코 사용하는 기술 뒤에는 이렇게 복잡하고 정교한 원리들이 숨어있답니다! 운영체제는 컴퓨터 하드웨어를 효율적으로 관리하고 사용자에게 편리한 환경을 제공하는, 정말 없어서는 안 될 존재임을 다시 한번 느낍니다.