본문 바로가기
CS 지식/운영체제 (OS)

[운영체제] OS의 개념과 구조, 컴퓨터 시스템 아키텍처 소개

by 코딩하는 동현 2025. 4. 13.

운영체제란?

운영체제는 실행되는 프로그램이다. OS도 실행되는 프로그램이며, 일반적인 응용프로그램과는 논리적인 위치 관계에서 차이가 있다.

OS는 사용자와 하드웨어 사이에 위치하여 다음과 같은 역할을 수행한다.

  1. 리소스 할당자: 시스템 리소스를 사용자 및 프로세스에게 효율적으로 할당한다.
  2. 제어 프로그램: 애플리케이션의 실행을 제어하며, 비정상적인 리소스 사용을 방지한다. (예: 프로그램 강제 종료)

운영체제가 하고자 하는 바

  1. 사용자 프로그램을 실행시킨다. 즉, OS 위에서 동작한다.
  2. 컴퓨터 시스템 리소스를 쉽게 사용할 수 있도록 돕는다.
  3. 자원(Resource) 관리:  운영체제의 핵심 기능 중 하나이다.

리소스를 관리해주는 OS

응용프로그램이 직접 리소스에 접근하지 않고, 반드시 OS를 통해 요청하도록 설계된다.

만약 OS가 없다면, 리소스를 효율적으로 사용하고 보호하는 모든 로직을 응용프로그램이 처리해야 한다.

OS는 하드웨어와 소프트웨어 리소스를 효율적이고 안전하게 관리한다.

프로세스 또한 소프트웨어적 리소스이며, OS는 이를 포함한 하드웨어+소프트웨어 리소스를 관리한다.


OS가 돌아가는 환경

OS는 하드웨어 위에서 동작한다. 컴퓨터 시스템은 다음과 같은 4개의 계층(레이어)으로 구성된다.

  1. 컴퓨터 시스템(HW): CPU, 메모리, I/O 기기(HDD 포함)
  2. 운영체제(OS)
  3. 응용 프로그램
  4. 사용자: 사람, 장치, 다른 컴퓨터

스토리지 디바이스도 모두 I/O 장치에 포함된다.

 

운영체제의 역할은 관점에 따라 다르다

  1. 일반 사용자: 리소스를 쉽게 사용하고, 좋은 성능을 기대한다.
  2. 공유 컴퓨터: 여러 사용자의 프로세스를 원활하게 실행하도록 한다.
  3. 전용(dedicated) 시스템: 특정 목적을 위한 리소스 제어를 수행한다.
  4. 모바일 디바이스: 배터리, 메모리 등 제한된 리소스를 효율적으로 관리한다.

시스템 프로그램과 응용프로그램의 OS 포함되는 여부는 모호할 수 있다.

Kernel

컴퓨터 전원이 켜져 있는 동안 지속적으로 실행되는 하나의 핵심 프로그램이다.

부팅 과정

컴퓨터를 부팅하면 OS가 실행된다.

OS를 실행해주는 것은 부트스트랩 프로그램이며, 이는 ROM 등에 저장되어 있다.

부트스트랩 프로그램은 시스템을 초기화하고 커널을 실행시킨다.


컴퓨터 시스템의 구조

  • 컴퓨터 시스템에서는 CPU(중앙처리장치)device controller(입출력 장치를 제어하는 장치)가 존재한다.
  • 이들은 공통적인 버스(bus)에 연결되어 있다.
  • 이 버스를 통해 공유 메모리(shared memory)에 접근한다.
  • 즉, CPU나 장치 컨트롤러가 메모리에서 데이터를 읽거나 쓸 때, 이 공통 버스를 통해 이루어진다는 구조이다.

  • CPU와 I/O 장치는 동시에 동작하려 한다.
  • I/O 대기 중에는 CPU가 놀지 않도록, OS는 다른 프로세스를 실행시킨다.
  • 각 디바이스 컨트롤러는 각 기기를 관리하며, 각각 local buffer를 가진다.
  • CPU는 데이터를 main memory에서 local buffer로 옮기며, 작업이 끝나면 컨트롤러는 interrupt를 통해 완료 사실을 알린다.

 

OS는 비동기 이벤트 처리를 위해 interrupt 기반(Interrupt-driven) 으로 동작한다.

  • 인터럽트를 수신하면 OS는 해당 이벤트를 처리하는 event service routine으로 분기한다.
  • Interrupt Vector<id, service routine 주소>에는 각 인터럽트의 ID 및 해당 서비스 루틴의 주소가 저장된다.

Software Interrupt

  • trap 또는 exception: 소프트웨어가 생성한 인터럽트
  • OS는 interrupt-driven 아키텍처이다.
    • interrupt 아키텍처는 인터렙트가 방해하기전에 하고 있던 인스트럭션의 주소를 무조건 저장해야된다.

Interrupt Handling

OS는 인터럽트 발생 시 CPU 상태를 저장하며, Program Counter(다음 실행할 명령어 주소)도 함께 저장한다.

  • Polling: 인터럽트 발생만 인지하며, 어떤 디바이스인지 확인하기 위해 모두 조사함
  • Vectored Interrupt: 어떤 종류의 인터럽트인지 ID를 알고, 즉시 해당 서비스 루틴을 실행함

컴퓨터에서 사용하는 데이터 단위

  • 컴퓨터에서 사용하는 최소 단위: bit (0 또는 1)
  • OS가 저장하는 기본 단위: byte (8 bits)
  • word: 아키텍처에 따라 다름 (예: 64-bit 시스템에서는 1 word = 8 bytes)

컴퓨터 저장 단위는 일반적으로 2의 제곱 단위로 표현되지만, 네트워킹에서는 bit 단위 표현을 유지하며 24 등을 기준으로 자르지 않는다.


스토리지 구조

아래와 같은 기준으로 계층을 구분할 수 있다

  • speed
  • cost
  • volatility

메인 메모리 (Main Memory)

  • CPU가 직접 접근 가능한 유일한 대용량 메모리
  • CPU는 메모리에서 인스트럭션을 가져오고, 데이터를 저장하거나 읽는다
  • 랜덤 엑세스 메모리(Random Access): 중간 위치에도 접근 가능
  • 휘발성(Volatile) 메모리로 전원이 꺼지면 데이터 손실됨

세컨더리 스토리지 (Secondary Storage)

  • 비휘발성 메모리로 메인 메모리의 확장
  • 대표: 하드 디스크(HDD), SSD

하드 디스크

  • 기계적으로 메탈 또는 글라스 원판이 회전 장치로 자성 정보를 저장해서 정보를 다룬다.
  • 표면은 트랙(Track), 섹터(Sector)로 논리적 구분
  • 디스크 컨트롤러가 OS와 디스크 사이의 논리 인터페이스를 제어함

SSD (Solid-State Disk)

  • 전자 신호로 작동하는 장치로, 하드디스크보다 빠르고 기계 부품이 없음
  • 점점 수명과 용량 향상 중

테르셔리 스토리지 (Tertiary Storage)

  • 보조 저장장치(Secondary Storage)보다 접근 속도는 느리지만, 대용량 데이터를 장기간 저장하는 데 적합
  • 비휘발성 저장장치
  • 디스크 라이브러리: 자동화된 장치가 디스크나 테이프를 로딩/언로딩하며 데이터를 접근함
  • 자동화된 로봇 장치가 매체(예: 테이프)를 장치에 삽입하여 데이터를 읽고 쓸 수 있도록 함
  • 접근 시간이 수 분 이상 걸릴 수 있음 (로딩/언로딩, 탐색 시간 등 포함)
  • 매우 저렴한 비용으로 대용량 저장 가능
  • 쓰기/읽기 횟수가 적고, 주기적 접근이 필요한 데이터에 적합

광 디스크(Optical Discs): CD, DVD, Blu-ray 등

자기 테이프(Magnetic Tape): 테이프 라이브러리 시스템에서 사용됨 (압도적인 가성비)


스토리지 계층 (Storage Hierarchy)

  • Register < Cache < Main Memory < SSD < HDD < Tape
  • 분류 기준: 속도(Speed), 비용(Cost), 휘발성(Volatility)

캐싱(Caching): 더 빠른 계층(예: 캐시 메모리)에 임시로 데이터를 저장하여 접근 성능 향상


디바이스 드라이버

  • OS의 일부 모듈로, IO 디바이스를 제어
  • 유니폼한 인터페이스 제공: 새로운 디바이스도 동일한 방식(api)으로 접근 가능 (controller - kernel)

캐시 관리

  • 캐시의 존재 여부에 따라 캐시 히트(Cache Hit), 캐시 미스(Cache Miss)가 발생
  • 성능은 캐시 히트 비율(Cache Hit Ratio) 등으로 평가
  • 관리 오버헤드가 존재하며, 크기  교체 정책에 따라 성능에 영향
  • 원본과 캐시 간 불일치 발생 시 동기화 정책 필요

DMA (Direct Memory Access) 구조

  • CPU를 거치지 않고 IO 장치 ↔ 메모리 간 직접 전송
  • 하이스피드 IO 장치의 데이터 접근 성능을 향상
  • IO는 dma기술을 사용하여 직접 로드하도록 하고, CPU는 다른 태스크를 하도록 한다. 동시 진행 기술 = DMA

동작 방식

  1. CPU가 IO 요청을 디바이스 컨트롤러에게 전달
  2. device 컨트롤러는 DMA 기술을 사용하여 데이터를 메모리에 직접 전송
  3. 작업 완료 시 컨트롤러가 interrupt로 CPU에 알림
  4. CPU는 인터럽트를 받고 하던 일을 중단하고 해당하는 데이터를 메모리에서 직접 가져와서 동작을 수행한다.

컴퓨터 시스템 아키텍처

멀티프로세서 시스템

Symmetric Multiprocessing Architecture

  • CPU 여러 개 보유 → Parallel System, Tightly-coupled System

장점:

  1. 향상된 처리 속도
  2. 자원 공유로 인한 경제성
  3. 향상된 신뢰성 (가용성)

구조 유형:

  • Asymmetric 멀티프로세싱: 각 CPU가 특정 작업 담당
  • Symmetric 멀티프로세싱: 모든 CPU가 동일한 역할 수행, 공통 메모리 접근

듀얼코어 디자인 (Dual-Core Design)

  • 하나의 칩에 코어 2개 탑재
  • 각 코어는 레지스터 및 캐시 보유 → 멀티프로세서 아키텍처와 유사

클러스터드 시스템 (Clustered System)

  • 여러 컴퓨터가 loose couple되어 동작 → 하나의 시스템처럼 작동

구조:

  • 각각의 노드: CPU, 메모리 포함
  • 공통 저장소: Storage Area Network (SAN) 활용

유형:

  • Asymmetric 클러스터링: 한 머신은 대기 모드 (Hot-standby)
  • Symmetric 클러스터링: 여러 노드가 동시에 동작, 상호 모니터링

활용:

  • 고가용성 시스템
  • 병렬 처리(HPC) → 병렬 프로그래밍 필요
  • 분산 락 매니저(DLM)를 가지고 있다.

운영체제의 전체 구조

멀티프로그래밍 (Multiprogramming = 배치 시스템)

  • 메모리에 여러 개의 프로세스를 적재
  • Ready Queue에 다수의 프로세스가 대기
  • CPU는 언제나 실행할 프로세스가 있도록 유지됨

프로세스는 메모리에 인스트럭션이 로드된 상태이며, 처음 생성된 프로세스는 실행되기 전까지는 Ready 상태이다.

jobs(code + data) 프로세스 여러개를 구성해서 CPU가 항상 실행할 잡이 있도록 하도록한다.

 

  • 전체 잡의 부분집합이 메모리에 적재가 된다.
  • I/O 요청 등으로 인해 대기 상태가 되면 다른 프로세스를 즉시 실행 (스위칭)

타임쉐어링 (Time Sharing = 멀티태스킹)

  • 프로세스 스위칭을 매우 빠르게 수행
  • 사용자 입장에서 여러 프로세스가 동시에 실행되는 것처럼 보임
  • 반응 시간 < 1초

메모리에 여유 공간이 없을 경우 Swapping을 수행:

  • Swap-out: 프로세스 일부를 Secondary Storage로 이동
  • Swap-in: Secondary Storage에서 메모리로 적재

또한, 가상 메모리 기술로 프로세스 전체가 아닌 일부만 메모리에 적재해도 실행 가능하다.

반응형

댓글