[OS] 운영체제 개요 - 1

개요

운영체제란?

운영체제 정의

운영체제는 바라보는 관점에 따라 다르게 정의될 수 있다.

  • 시스템 관점에서의 정의
    • 운영체제는 자원 할당자이다.
      • 모든 자원을 관리한다. (CPU, Memory 등)
      • 자원의 공정하고 효율적인 사용을 위해 상충하는 요청을 조정한다.
    • 운영체제는 제어 프로그램이다.
      • 에러를 방지하고 컴퓨터의 부적절한 사용을 방지하기 위해 프로그램의 실행을 제어한다.
  • 일반적인 관점에서의 정의
    • 운영체제는 컴퓨터에서 항상 실행하는 한 개의 프로그램으로 커널(Kernel)이라 한다.
      • 커널: 운영체제의 핵심 요소

      Untitled

  • 운영체제는 응용 프로그램을 로딩시켜주는 로더이다.


운영체제 목표

  • 사용자 프로그램을 실행하고 사용자 문제를 쉽게 해결하는 것
  • 컴퓨터 시스템을 사용하기 쉽게 만드는 것
  • 컴퓨터 하드웨어를 효율적으로 사용하기



컴퓨터 시스템

컴퓨터 시스템의 구성 요소

  • 하드웨어
  • 운영체제
  • 응용(Application) 프로그램
  • 사용자

Untitled


컴퓨터 시작과정

  • 부트스트랩 프로그램 (bootstrap program)을 통해, 컴퓨터가 시작된다.
  • 부트스트랩 프로그램
    • 전원을 키거나 재부팅 될 때, 가장 먼저 실행되는 프로그램
    • 보통 ROM이나 EPROM에 저장되는 Firmware이다.
    • 시스템의 모든 장치를 초기화한다.
    • 운영체제의 커널을 메모리에 적재하고 실행한다.

Untitled


컴퓨터 시스템 동작

  • 한 개 이상의 CPU와 장치제어기가 공유 메모리에 접근 할 수 있는 공통 버스를 통해 연결되어 있다.

    Untitled

  • 메모리 사이클을 얻고자 경쟁하는 CPU와 디바이스가 동시에 실행한다.


입출력 장치와 컴퓨터 시스템 동작

  • 입출력 장치
    • 입출력 장치도 하나의 컴퓨터로 생각할 수 있다. (실제로 작은 CPU를 가지고 있다.)
    • 따라서, 입출력 장치도 하나의 독립 객체이다.
      • 즉, 컴퓨터의 CPU에 종속되지 않는다.


  • 장치제어기
    • 해당 장치를 관리한다.
    • 지역 버퍼를 가지고 있다.
    • 입출력 작업을 마친 후, 인터럽트를 발생시켜 CPU에게 작업 종료를 알린다.


  • 입출력 장치와 CPU는 동시에 실행이 가능하다.

    위에서 설명했듯이, 입출력 장치도 하나의 독립 객체이므로

Untitled

  • CPU
    • ‘주저장장치’와 ‘장치제어기의 지역버퍼’ 간의 자료 이송
  • 입출력 장치
    • ‘입출력장치’와 ‘장치제어기의 지역버퍼’ 간의 자료 이송



인터럽트

인터럽트란?

  • 운영체제는 인터럽트(Interrupt) 기반으로 동작한다.
  • H/W 나 S/W 에서 어떤 사건(Event)가 발생하면, 인터럽트를 사용하여 시스템에 알린다.
  • CPU가 인터럽트되면, CPU는 하던 일을 멈추고 즉시 고정된 위치로 실행을 옮겨 인터럽트를 처리한다.

Untitled


인터럽트 핸들링

  • 인터럽트는 인터럽트 벡터를 사용하여 제어를 인터럽트 서비스 루틴으로 넘긴다.
    • 인터럽트 벡터: 인터럽트를 요청한 서비스(ex. 프린터, HDD 등) 처리의 주소를 저장하는 곳
      • 인터럽트 벡터는 모든 서비스 루틴의 주소를 가지고 있다.

    Untitled


인터럽트 원리

  • 인터럽트 구조에서 ‘인터럽트 당한 명령의 주소’는 저장되어야 한다.
  • 인터럽트 처리가 끝나면 ‘인털버트 당한 명령어’로 실행이 다시 옮겨갈 수 있다.

Untitled


인터럽트와 CPU 상세 원리

  • 인터럽트가 처리되고 있는 동안에는 인터럽트의 유실을 방지하기 위해 다른 인터럽트는 억제된다.
  • 트랩(응용 App 개발자의 실수) 또는 예외(Exception)는 ‘에러’나 ‘사용자 요청에 의해 발생한 소프트웨어’가 생성한 인터럽트이다.
  • 운영체제는 인터럽트에 의해 구동된다.

Untitled


인터럽트 처리

  • 운영체제는 인터럽트를 처리하기 이전에, 현재 CPU의 상태(레지스터와 프로그램 카운터 등)를 보존한다.
  • CPU 상태를 보존한 후, 인터럽트 서비스를 수행한다.
  • Context
    • CPU 상태를 의미한다.
  • Context Switching
    • Context 저장 후, 인터럽트 서비스를 수행하는 것을 의미한다.


인터럽트 TimeLine

Untitled



저장장치

주 저장장치

  • Main Memory
  • CPU가 직접 접근할 수 있는 유일한 채형 저장장치
  • RAM(휘발성)
  • ROM(비휘발성)


보조 저장장치

  • 자기 디스크
    • 자기 기록 물질을 입힌 금속 또는 유리판으로 구성

      Untitled

      Untitled

    • 반도체 디스크(SSD: Solid-State Disks)

      • 반도체를 사용하여 자기 디스크보다 빠르다.


저장장치 계층구조

Untitled

  • 캐싱
    • 빠른 저장장치에 정보를 복사하는 일을 말한다.
    • 주저장장치는 보조저장장치의 캐시로 볼 수 있다.
  • 장치 구동기

    Untitled

    • 장치 제어기(device controller) 마다 있으며 입출력을 관리한다.
    • 제어기(controller)와 커널(kernel) 간에 일관된 인터페이스를 제공한다.



메모리 직접 접근(DMA)

DMA란?

  • Direct Memory Access 의 약자
  • 고속의 입출력 장치가 메모리 속도에 근접하는 속도로 정보를 전송할 때 사용한다.
  • 장치 제어기가 버퍼 스토리지에서 주저장 장치에 직접 데이터 블록을 전송한다. 이때 CPU 관여는 없다.


구조

  • 기존 방식 (PIO)

    Untitled

    • HDD와 CPU간의 속도 차이가 크다. 따라서, 성능이 낮다.
  • DMA

    Untitled



처리기 구조

단일 처리기 시스템

  • 옛날에 사용되던 시스템으로, 한 개의 범용 프로세서를 사용한다.


다중 처리기 시스템

  • 다중 처리기 시스템 = 병렬시스템 = 강결합 시스템


  • 주요 장점
    • 향상된 처리량
    • 경제적
    • 향상된 신뢰성
      • 우아한 성능저하: CPU 코어 하나가 문제여도, 나머지 CPU 코어가 커버한다.
      • 결함 허용: 그렇기 때문에, 결함이 생겨도 시스템 유지가 가능하다.


  • 종류
    • 비대칭적 다중처리
      • 주 처리기가 시스템 제어한다.
      • 주 처리기가 나머지 처리기에 특정 테스크를 할당한다.
      • 주종관계
    • 대칭적 다중처리(SMP: Symmetric Multiprocessiong)
      • 모든 처리기가 대등하다.


대칭적 다중처리 구조 (SMP 구조)

Untitled

  • 구조가 모두 동일하며, 모두 독립적인 객체로서 활동한다.


다중처리기 칩

  • 최근 경향으로 하나의 칩에 여러 개의 코어(core)를 포함시킨다.
  • 단일-코어 칩

    Untitled

  • 이중-코어 칩

    Untitled





  • 성결대학교 컴퓨터 공학과 강영명 교수님 (2021)
  • Siberschatz et. al., 『Operating System Concepts 10th Ed.』
본 게시글은 위 강의 및 교재를 기반으로 정리한 글입니다.