OS ch01. Introduction

김민성·2026년 3월 18일

운영체제(OS) 

목록 보기
1/6
post-thumbnail

운영체제 (Operating System)

운영체제란?

사용자와 컴퓨터 하드웨어 사이의 인터페이스 역할을 하는 프로그램이다.


운영체제의 목적

  • 프로그램을 실행시켜 사용자의 문제를 해결하게 도와준다.
  • 사용자가 컴퓨터 시스템을 편리하게 사용하게 해준다.
  • 컴퓨터 하드웨어를 효율적인 방법으로 관리한다.

컴퓨터 시스템의 4가지 구성요소

컴퓨터 시스템은 다음 4가지 요소로 구성된다.

1. Hardware

컴퓨터의 물리적 장치

예)

  • CPU
  • Memory
  • I/O 장치 등

2. Operating System (OS)

하드웨어 사용을 제어하고 조정하는 역할

예)

  • Windows
  • Linux
  • macOS
  • iOS

3. Application Programs

사용자가 사용하는 프로그램

예)

  • 워드 프로세서
  • 컴파일러
  • 웹 브라우저 등

4. Users

컴퓨터를 사용하는 주체

예)

  • 사람
  • 기계
  • 다른 컴퓨터 등

운영체제 정의 (두 가지 관점)

운영체제는 관점에 따라 다음 두 가지 방식으로 정의할 수 있다.

1. Resource Allocator (자원 할당자)

자원이란 프로그램, 데이터 등 컴퓨터 시스템의 모든 것을 의미한다.

운영체제는 이러한 자원을 효율적이고 공평하게 사용할 수 있도록 관리한다.


2. Control Program (제어 프로그램)

운영체제는 다음과 같은 역할도 수행한다.

  • 프로그램의 오류를 예방
  • 부적절한 사용을 통제

참고

운영체제의 정의는 관점에 따라 달라질 수 있다.

  • 운영체제를 제공할 때 그 안에 들어간 모든 것이 운영체제라고 볼 수도 있다.
    (예: Windows 10)

  • Kernel만 운영체제라고 정의하기도 한다.
    Kernel을 제외한 프로그램은

    • 시스템 프로그램
    • 어플리케이션 프로그램
      으로 구분된다.

컴퓨터 시스템 구조

컴퓨터 시스템은 다음 요소들로 구성된다.

  • CPU (한 개 또는 여러 개)
  • Device
  • Device Controller
  • Memory
  • Shared Bus

주요 특징

  • I/O device와 CPU는 동시에 실행될 수 있다. 즉 CPU가 어떤 프로그램을 실행하는 동안 disk는 disk대로 데이터를 읽고 쓸 수 있다.

  • 각각의 controller 안에는 local buffer라는 작은 메모리가 있다.

  • I/O 작업은 device → device controller의 local buffer 로 이루어진다.

  • CPU는 memory와 local buffer 사이에서 데이터를 이동시킨다. 이때 데이터 이동은 shared bus를 통해 이루어진다.

  • device controller는 작업이 끝나면 interrupt를 발생시켜 CPU에게 알린다.


Shared Bus를 통한 데이터 흐름 (Data Flow)

모든 데이터 전송은 shared bus라는 공용 통로를 통해 이루어진다.

예시: 키보드 입력 과정

  1. 사용자가 키보드에서 'A' 키 입력
  2. keyboard controller가 이 신호를 받아 local buffer에 저장
  3. keyboard controller가 shared bus를 통해 CPU에게 신호 전달
  4. CPU는 하던 일을 멈추고 ISR (Interrupt Service Routine) 실행

위 예시에서 ISR 흐름

  • CPU는 데이터를 가져오기 위해 shared bus의 제어권을 확보
  • shared bus를 통해 keyboard controller의 local buffer 접근
  • 'A' 데이터를 읽어옴
  • 다시 shared bus를 통해 main memory의 특정 위치에 저장

즉 CPU 작업은 기본적으로

CPU ↔ Memory

간 이루어지는 작업이다.


인터럽트 (Interrupt)

인터럽트를 이해하기 위해 먼저 CPU가 프로그램을 실행하는 과정을 알아야 한다.

CPU는 프로그램을 한 번에 실행하는 것이 아니라 명령어 하나씩 실행한다.

이때 명령어 하나를 실행하는 단위를

Instruction Cycle

이라고 한다.


Instruction Cycle

Instruction cycle은 다음 단계로 이루어진다.

  1. Fetch
    → memory에서 명령어 가져옴

  2. Decoding
    → 명령어 해석

  3. Execution
    → 명령 실행


Instruction cycle이 끝나면 다음 instruction cycle로 들어가기 전에 항상 interrupt check를 수행한다.

즉 CPU 동작 흐름은 다음과 같다.

Fetch → Decode → Execute
          ↓
     Interrupt Check
          ↓
Interrupt 존재 → Interrupt Cycle
Interrupt 없음 → 다음 Instruction Cycle

CPU가 명령어 실행에 필요한 두 가지 정보

CPU가 명령어를 실행하려면 다음 정보가 필요하다.

1. Program Counter (PC)

다음에 실행할 명령어가 메모리 어디에 있는지 알려주는 값

2. Register

계산 중인 값들을 저장하는 공간


PC & Register

Program Counter (PC)

특별한 종류의 레지스터이며
다음에 실행할 명령어의 주소가 들어 있다.


Register

CPU 내부에 있는 아주 작은 초고속 저장공간

RAM은 CPU보다 훨씬 느리기 때문에 CPU는 계산을 할 때 메모리에서 바로 계산하지 않는다.

따라서 CPU 안에 register라는 작은 저장공간을 두고 여기에 데이터를 가져와 계산한다.


인터럽트 종류를 알아내는 방법

인터럽트가 발생했을 때 어떤 장치에서 발생했는지 확인하는 방법은 두 가지가 있다.


1. Polling

인터럽트 원인을 CPU가 직접 조사하는 방식

동작 방식

  • 각 장치의 상태 레지스터를 차례대로 검사
  • 어떤 장치에서 인터럽트가 발생했는지 확인
  • 해당 ISR 실행

2. Vectored Interrupt System

인터럽트 발생 시 해당 device가 자신의 고유 번호 (vector) 를 함께 보낸다.

CPU는

Interrupt Vector Table

을 조회하여 해당 ISR 주소를 찾는다.


ISR (Interrupt Service Routine)

각 인터럽트에 맞는 실제 처리를 담당하는 코드


인터럽트 처리 예시

예시 상황

  • CPU가 100번지 작업 처리 중
  • 다음 명령어는 101번지

인터럽트 발생 시 흐름

  1. 100번지 instruction cycle 완료
  2. interrupt check
  3. 인터럽트 종류 확인
    (polling / vectored interrupt system)
  4. 해당 ISR 주소로 점프
  5. ISR 수행
  6. ISR 종료
  7. 원래 작업으로 복귀

전체 흐름

PC = 100
↓
Fetch 100 → PC = 101
Execute 100
↓
Interrupt 발생
↓
Stack ← 101
PC ← 3000
↓
Fetch 3000 → PC = 3001
Execute ISR
↓
...
↓
ISR 종료
↓
PC ← 101
↓
Fetch 101

I/O 인터럽트 처리 흐름

위 그림의 시나리오는 다음과 같다.

  1. CPU가 사용자 프로그램을 실행하다가 I/O 장치에게 명령을 내린다. 명령 이후 CPU는 다시 원래 하던 작업을 계속 수행한다.
  1. 명령을 받은 I/O 장치는 CPU가 다른 일을 하는 동안 데이터 전송 작업을 수행한다. 즉 이때 CPU 작업과 I/O 작업이 동시에 진행된다.

  2. I/O 장치가 일을 다 마치면 CPU에게 신호를 보낸다. = Interrupt

  3. CPU는 해당 ISR로 점프하여 인터럽트 처리를 수행한다. 처리가 끝나면 다시 멈췄던 사용자 프로세스 위치로 돌아가 작업을 계속한다.

  4. 이후 두 번째 I/O request가 발생하면서 위 과정이 반복된다.


profile
JUST DO IT

0개의 댓글