Post

[OS] 운영체제 개요

운영체제의 정의와 목적, 컴퓨터 시스템 구조, 인터럽트 메커니즘, I/O 구조, DMA, 스토리지 계층, OS 주요 기능, 컴퓨팅 환경 발전까지 정리

[OS] 운영체제 개요

1. 운영체제의 의미

  • 일반 사용자, 사용자 프로그램컴퓨터 하드웨어 사이의 인터페이스

2. 운영체제의 목적

  • 사용자 프로그램을 실행시켜 사용자의 문제를 쉽게 해결할 수 있도록 지원
  • 컴퓨터 시스템을 효율적이고 편리하게 사용할 수 있도록 하드웨어 자원을 관리

3. 컴퓨터 시스템의 구조

컴퓨터 시스템 계층 구조 사용자 → 애플리케이션 → 시스템 프로그램 → 운영체제 → 하드웨어

  • 하드웨어: CPU, 메모리, I/O 장치 등 눈에 보이는 물리적 자원 전체
  • 운영체제: 다양한 애플리케이션 및 사용자들 사이에서 하드웨어를 제어·관리하는 인터페이스
  • 시스템 프로그램: 컴파일러, 어셈블러, 텍스트 에디터 등 프로그램 개발·실행 도구
  • 애플리케이션 프로그램: 워드 프로세서, 웹 브라우저, 데이터베이스, 비디오 게임 등
  • 사용자: 사람, 기계, 다른 컴퓨터 등

4. 운영체제의 정의

  • 자원 할당자 (Resource Allocator)
    • 모든 자원들을 관리하고, 공평하고 효율적으로 사용하게 한다.
  • 프로그램 제어 (Control Program)
    • 프로그램의 에러를 방지하고 부적절한 사용을 통제한다.
  • 관점에 따른 정의
    • 넓은 의미: 운영체제를 주문할 때 공급 업체가 제공하는 모든 것
    • 좁은 의미: 컴퓨터를 켰을 때 항상 돌아가고 있어야 하는 것 → 커널
    • 이 외의 프로그램은 시스템 프로그램 또는 애플리케이션 프로그램

5. 컴퓨터 스타트업 (Bootstrap)

컴퓨터의 전원이 켜지는 순간부터 운영체제가 메모리에 로드되어 사용자가 입력 장치를 사용할 수 있게 되기까지의 과정을 부팅(booting)이라 한다.

부트스트랩 프로그램:

  • ROM 또는 EEPROM에 저장된 펌웨어(firmware)
  • 마더보드(motherboard)에 탑재되어 공장 출하 시 이미 내용이 기록되어 있음

부팅 순서:

  1. 전원 버튼 입력 → 부트스트랩 프로그램 실행
  2. 컴퓨터 시스템의 모든 구성 요소 초기화(initialization)
  3. 디스크에서 커널을 메모리에 로딩
  4. 로딩 완료 후 사용자가 마우스·키보드로 작업 가능한 상태로 전환

6. 컴퓨터 시스템의 하드웨어 구성

컴퓨터 시스템 하드웨어 구성 CPU, 공유 메모리, 디스크·USB·그래픽 컨트롤러가 버스로 연결된 구조

주요 구성 요소:

구성 요소역할
CPU메모리에서 명령어·데이터를 가져와 실행
공유 메모리하나 이상의 CPU가 공동으로 사용
디스크 컨트롤러디스크↔메모리 간 데이터 전송, 로컬 버퍼 보유
USB 컨트롤러USB 장치 제어, 로컬 버퍼 보유
그래픽 어댑터모니터 출력 담당

CPU 작업 vs. I/O 작업의 동시 실행:

  • CPU 작업: 메모리 ↔ CPU 사이에서 명령어·데이터 처리
  • I/O 읽기: 디스크 → 디스크 컨트롤러 로컬 버퍼
  • I/O 쓰기: 로컬 버퍼 → 디스크
  • 두 작업은 독립적으로 동시에 진행 가능

7. Interrupt 메커니즘

인터럽트 메커니즘 I/O 완료 시 CPU에 신호를 보내 현재 작업을 중단시키는 과정

인터럽트는 I/O 작업 완료, 오류 발생, 사용자 요청 등 다양한 이벤트를 CPU에 알리는 핵심 메커니즘이다. 현대 운영체제는 인터럽트 드리븐(interrupt-driven) 방식으로 동작한다.

인터럽트 처리 절차

  1. 인터럽트 발생 → CPU가 모든 레지스터 값 및 PC(프로그램 카운터) 값 저장
  2. 인터럽트 벡터 테이블을 참조하여 해당 ISR(인터럽트 서비스 루틴) 위치 파악
  3. ISR 실행 (인터럽트 처리)
  4. 저장해 둔 PC 값으로 복귀 → 중단된 프로그램의 다음 명령어부터 재개

프로그램 카운터(PC): 다음 실행할 명령어의 주소를 저장하는 레지스터. 인터럽트 처리 후 복귀 주소로 활용된다.

인터럽트 벡터 (Interrupt Vector)

  • 시스템 부팅 후 메모리 앞부분에 위치하는 테이블
  • 각 인터럽트 유형(ID)과 해당 ISR의 메모리 주소를 쌍으로 저장

인터럽트 유형 식별 방식

방식설명
폴링 (Polling)CPU가 각 I/O 디바이스에 순서대로 질의
벡터드 인터럽트인터럽트 벡터 테이블을 직접 조회 (더 효율적)

기타 개념

  • 트랩(Trap): 소프트웨어적으로 발생하는 인터럽트 (0으로 나누기, 사용자 요청 등)
  • 인터럽트 중첩 처리: 우선순위(priority) 기반으로 더 높은 인터럽트를 먼저 처리

인터럽트 타임라인

인터럽트 타임라인 CPU와 I/O 디바이스의 동작 타임라인

  • CPU: 사용자 프로세스 실행 → 인터럽트 감지 → ISR 실행 → 사용자 프로세스 재개 반복
  • I/O 디바이스: 유휴(idle) → I/O 전송 → 완료 시 인터럽트 발생 반복

8. I/O Structure

I/O 구조 — 동기식 vs 비동기식

Synchronous I/O (동기식)

  • I/O 작업 시작 후 CPU가 완료될 때까지 대기
  • 대기 방법 ①: wait 명령어로 다음 인터럽트까지 CPU 정지
  • 대기 방법 ②: 웨이트 루프로 인터럽트 발생까지 대기
  • 단점: CPU가 다른 작업 불가 → 동시에 최대 1개의 I/O만 진행 가능

Asynchronous I/O (비동기식)

  • I/O 시작 후 CPU는 즉시 다른 프로세스 실행으로 전환
  • I/O를 요청한 프로세스는 결과가 올 때까지 대기 상태
  • 장점: 여러 I/O 작업 동시 진행 가능
  • 동일 디바이스 대상 요청은 큐에서 순차 처리

디바이스 상태 테이블

디바이스 상태 테이블 각 디바이스의 상태·작업 정보를 관리하는 테이블

  • 카드 리더, 프린터, 디스크 유닛 등 각 장치가 개별 작업 정보를 관리
  • 현재 작업 완료 후 다음 작업을 대기 큐에서 순차 처리
  • 모든 디바이스는 유휴/작업 중 상태 정보를 개별적으로 유지

디바이스 드라이버

  • 특정 I/O 디바이스를 구동하는 커널 레벨 프로그램
  • 사용자 프로세스 → 커널 → 디바이스 드라이버 → 인터럽트 핸들러 → 하드웨어 순으로 처리

9. Direct Memory Access (DMA)

DMA 구조 DMA 컨트롤러가 CPU 개입 없이 메모리에 직접 접근하는 구조

DMA는 디바이스 컨트롤러 내부의 DMA 칩이 CPU를 거치지 않고 메모리에 직접 접근하는 구조이다.

  • 과거: 한 바이트씩 전송 후 매번 인터럽트 발생
  • 현재: 블록 단위 전송 후 블록당 1개의 인터럽트만 발생
  • 인터럽트 빈도 감소 → 시스템 성능 향상
  • DMA 컨트롤러 내의 IC 칩이 CPU 개입 없이 독립적으로 메모리↔디스크 간 데이터 이동 관리

10. Storage Hierarchy

스토리지 계층 구조 CPU에 가까울수록 빠르고 비싸며, 멀수록 느리고 저렴하다

스토리지 계층 구조는 삼각형 형태로 표현되며, 핵심 특성은 휘발성(volatility)이다.

특성위쪽 (레지스터·캐시)아래쪽 (디스크·테이프)
속도나노초(ns) 단위밀리초(ms) 단위
비용비트당 단가 높음동일 비용으로 대용량
휘발성전원 차단 시 소멸비휘발성, 보존

계층 구성 (위→아래): 레지스터 → 캐시 → 메인 메모리 → 전자식 디스크 → 마그네틱 디스크 → 옵티컬 디스크 → 마그네틱 테이프

스토리지 접근 시간 비교

  • Level 3(메인 메모리) vs Level 4(디스크): 접근 시간 수천 배, 대역폭 수십~수백 배 차이
  • 디스크는 기계적 동작을 수반하기 때문에 접근 시간이 크게 차이남
  • CPU가 원하는 데이터를 메모리 수준에서 만족시키면 성능이 좋다

캐시 (Cache) 개념

캐시는 두 가지 의미를 가진다:

고유 명사 — 하드웨어 캐시:

  • CPU 내부 L1 캐시(1차)와 외부 L2 캐시(2차)
  • 컴퓨터 사양 표기 시 캐시 크기를 명시

일반 명사 — 캐싱:

  • 느린 저장 매체의 데이터를 빠른 매체에 미리 올려두는 개념
  • 메인 메모리 → 마그네틱 디스크의 캐시 역할
  • 마그네틱 디스크 → 마그네틱 테이프의 캐시 역할

캐시 일관성 문제 (Cache Coherency):

  • 멀티태스킹: 한 프로세스가 데이터를 변경했으나 다른 프로세스는 이전 값을 참조
  • 멀티프로세서: 버스를 통해 변경 사항을 브로드캐스트하여 일관성 유지
  • 분산 환경: 일관성 유지가 훨씬 복잡

11. Storage Structure

마그네틱 디스크·옵티컬 디스크 구조

마그네틱 디스크 구조:

구성 요소설명
플래터유리/금속 표면에 자성 코팅, 스핀들 축에 고정
트랙플래터당 1만 개 이상의 동심원
섹터각 트랙을 분할한 단위
실린더모든 플래터의 동일 번호 트랙 집합
헤드암(arm)에 연결, 모든 헤드 동기화 이동
  • 데이터 표현: 자기장 수직(90°) → 1, 수평 → 0
  • 헤드 크래시: 헤드와 플래터 사이에 먼지 유입 시 발생하는 오류

옵티컬 디스크:

  • 초기: 레이저로 표면을 태워 반사 여부로 1/0 구분 (1회 쓰기)
  • 발전: 레이저로 온도를 높여 자기장 형성 → 읽기·쓰기 반복 가능, 밀도 향상

12. Migration of Data (Disk → Register)

디스크에서 레지스터까지 데이터 이동

  • 큰 저장매체부터 순차적으로 해당 섹터를 호출하여 점차 작은 단위로 데이터를 CPU에 전송
  • 각 프로세스의 여러 복사본이 존재하며, 최신본을 유지하기 위해 복사본 간 업데이트 필요

멀티프로세서 환경의 캐시 구조 각 CPU가 개별 캐시를 가지고 버스를 통해 공유

  • 멀티프로세서: CPU마다 각각의 Cache를 가지고 Bus를 통해 공유
  • 데이터 변경 시 Bus를 통해 변경된 값을 브로드캐스트
  • 분산 환경: 여러 서버가 연동되어 데이터 처리를 분담, 복사본도 여러 곳에 존재

13. OS Structure

운영체제는 자원 이용률을 극대화하기 위해 멀티프로그래밍타임셰어링 기법을 사용한다.

멀티프로그래밍

  • 디스크의 다수 프로그램 중 일부를 작업 스케줄링으로 선정하여 메모리에 적재
  • CPU는 I/O 발생 시 다른 프로세스로 전환 → CPU·I/O 이용률 향상
  • 프로그램(수동적 개체, 디스크에 설치) vs 프로세스(능동적 개체, 실행 중)

타임셰어링 (시분할)

  • CPU 시간을 극히 짧은 단위(μs~ms)로 분할하여 다수 사용자에게 순차 할당
  • 응답 시간 목표: 1초 이내 (사용자가 전용 사용 느낌을 받음)
  • 스왑(Swap): 메모리 부족 시 프로세스를 디스크로 내보내고 새 프로세스를 적재
  • 가상 메모리: 실제 메모리보다 큰 주소 공간을 제공, 스왑과 연계

유저 모드 vs 커널 모드

유저 모드와 커널 모드 전환

모드 비트상태설명
1유저 모드사용자 프로세스 실행
0커널 모드시스템 콜 처리 중
  • 시스템 콜: 사용자 프로세스가 운영체제에 서비스를 요청하는 인터페이스
  • 하드웨어 인터럽트, 소프트웨어 인터럽트(트랩), 타이머 인터럽트(무한 루프 방지)

14. 운영체제 주요 기능

운영체제 주요 기능 개요

프로세스 관리

  • 프로세스·스레드 생성·제거·중지·재개
  • 프로세스 간 통신(IPC), 동기화, 데드락 처리
  • 싱글 스레드: PC 1개 / 멀티 스레드: 독립적인 PC 다수

메모리 관리

  • 실행을 위해 모든 인스트럭션·데이터가 메모리에 적재되어야 함
  • 메모리 할당·회수·점유 현황 관리
  • CPU 이용률 및 응답 시간 최적화

스토리지 관리

  • 파일 시스템: 파일·디렉토리 생성·삭제·접근 권한 관리
  • 매스 스토리지: 빈 공간 관리, 디스크 스케줄링
  • 백업: 주기적 실행이 중요, 주로 야간 수행

I/O 서브시스템

기법설명
버퍼링빠른 → 느린 디바이스 전달 시 임시 저장
캐싱느린 디스크 데이터를 미리 읽어 빠르게 전달
스풀링 (SPOOL)한 작업의 출력을 다른 작업의 입력으로 연계

보호 vs 보안

  • 보호(Protection): OS가 정의한 자원에 대한 접근 제어
  • 보안(Security): DDoS, 바이러스, 악성 코드 등 내·외부 공격 방어
  • 사용자 ID·그룹 ID 부여 및 Privilege Escalation 모델 적용

15. 컴퓨팅 환경의 발전

단계특징
배치 처리작업 제출 후 완료까지 사용자 개입 불필요
타임셰어링메인프레임에 다수 사용자 동시 접속
클라이언트-서버파일/DB/컴퓨트 서버 등 역할 분리
P2P동등한 피어 간 통신, 중앙 서버 불필요
웹 기반로드 밸런싱, 웹 서버 다중화
클라우드공유 자원을 사용한 만큼 비용 지불

클라이언트-서버 구조 클라이언트-서버 및 P2P 네트워크 구조

클라우드 컴퓨팅

  • SaaS (Software as a Service): 소프트웨어를 온라인으로 사용
  • PaaS (Platform as a Service): SaaS 개발을 위한 플랫폼·툴 제공
  • IaaS (Infrastructure as a Service): 서버·인프라 자원 임대
  • XaaS (Everything as a Service): 모든 것을 서비스로 제공
This post is licensed under CC BY 4.0 by the author.