운영체제 Introduction

삼식이·2022년 9월 26일
1

운영체제

목록 보기
2/8

본 자료 정리는 'Operating System Concepts'(Tenth Edition) - Abraham Silberschatz 원서에 출처합니다.
Copyright © 2020 John Wiley & Sons, Inc.

Chapter 1: Introduction

  • What Operating Systems Do
    • System view
    • User view
  • Computer-System Organization
  • Computer-System Architecture
  • Operating-System Operations
  • Resource Management

Objectives (목표)

  • 컴퓨터 시스템의 기본 구성과 interrupt의 역할 설명
  • 운영체제의 주요 구성요소에 대한 순회 여행
  • 사용자 모드에서 커널모드로의 전환 설명

What Operating Systems Do

  • 컴퓨터 하드웨어와 사용자 사이에 중재자 역할을 하는 프로그램이다.
  • 운영체제의 목적
    • 사용자가 편리하고 효율적으로 프로그램을 실행할 수 있는 환경 제공
    • 컴퓨터 하드웨어 리소스를 관리

Computer System Structure

  • 컴퓨터의 구성요소

    • 하드웨어: 기본 컴퓨팅 리소스
    • 운영체제: 사용자를 위한 다양한 응용 프로그램 간의 하드웨어 사용을 제어하고 조정한다.
    • 응용 프로그램: 시스템 리소스를 사용하여 사용자의 컴퓨팅 문제 해결
      • e.g) word processors, compilers, web browsers, database systems..
    • 사용자
  • 헷갈리는 컴퓨터 시스템 구성요소들의 정의

    • CPU: 명령을 실행하는 하드웨어
    • Processor: 하나 이상의 CPU를 포함하는 물리적 칩 (e.g. 반도체)
    • Core: CPU의 기본 계산 단위
    • Multicore: 동일한 CPU가 여러 컴퓨팅 코어를 포함하는 구조
    • Multiprocessor: 여러프로세서를 포함하는 시스템

What Operating Systems Do - User View

  • PC 사용자는 편리함, 사용의 용이성, 좋은 성능을 원한다.
    • resource 활용성에 신경 쓰지 않는다.
  • 모바일 기기 - 무선 네트워크에 연결되고 터치 스크린을 통해 상호작용하고 음성인식을 한다.
  • 가정용 기기와 자동차에 내장된 컴퓨터에는 UI가 거의 또는 전혀 없다.

What Operating Systems Do - System View

  • OS is resource allocator
    • 모든 resource를 관리한다.
    • 효과적이고 공평한 resource 사용에 대한 상충되는 요청들 사이에서 결정을 내린다.

Operating System Definition

  • 통상적으로 받아들여지는 정의가 없다.

  • 운영체제가 포함하는 것:

    • kernel: 컴퓨터에서 항상 실행되는 하나의 프로그램
    • middleware: 응용 프로그램 개발자에게 추가 서비스를 제공하는 소프트웨어 프레임워크 세트 (e.g. complier, library..)
    • system programs: 시스템 관리에 도움

Computer System Organization

  • 하나 이상의 CPU, device controller는 공유 memory에 대한 엑세스를 제공하는 common bus를 통해 연결된다.

  • CPU와 디바이스 컨트롤러는 병렬로 실행되어 메모리 사이클을 놓고 경쟁한다.

  • 위 그림에서 device controller는 disk controller, USB controller, graphics adapters이다.

  • 각각의 device controller에는 device driver(local buffer, register)가 존재한다.

  • interrupt는 위 과정에서 명령을 CPU에게 알려주는 역할을 한다.

위 과정을 설명하는 Example)

-키보드에 값을 입력했을 때, 일련의 처리 과정

  1. USB controller의 local buffer에 입력 정보를 임시저장한다.
  2. controller가 local buffer에 있는 데이터를 전송한다.
  3. 데이터 전송이 완료되면 controller의 register에 입력이 완료됐음을 알린다.
  4. controller는 interrupt를 통해 CPU에게 작업 완료 사실을 알린다.

Computer Operations

  • device controller (h/w)
    • 컴퓨터 하드웨어 장치와 상호 작용하기 위해 만들어진 하나의 컴퓨터 프로그램이다.

    • 디스크, 입출력 장치, 디스플레이 등 장치를 컨트롤한다.

    • 작은 데이터를 저장하는 local buffer와 신호를 받고 관리하기 위한 register가 있다.

    • 주변 장치와 로컬 버퍼 저장소 간에 데이터를 이동한다.

    • interrupt를 발생시켜 CPU에게 작업을 완료했음을 알린다.

      local buffer 사용이유: 시스템 버스에서 데이터를 주고 받는 속도와 입출력 장치에서 데이터를 주고 받는 속도의 차이가 심하기 때문 (병목현상) -> 각각의 장치들이 자원을 효율적으로 활용하기 위함

  • device driver (s/w)

    • 특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램이다.
    • 드라이버는 컨트롤러의 작동을 파악하며 운영체제에게 현 장치의 사용법(인터페이스)을 알려주는 역할을 한다.

Basic Interrupt Handling

( - 아래의 Interrupt Timeline 그림 참고. )

  • device controller는 interrupt-request line에서 신호를 주장한다.

  • CPU는 모든 명령을 실행하고 난 후 interrupt-request line을 감지한다.

  • CPU가 interrupt를 감지하면 interrupt 번호를 읽고 모든 서비스 루틴의 주소를 포함하는 interrupt vector를 통해 interrupt handler routine으로 점프한다.

  • Interrupt handler는 register를 저장하여 인터럽트된 상태를 저장한다. 프로그램 카운터는 interrupt의 원인을 파악하고 필요한 처리를 수행하고 인터럽트된 상태를 복원한다.

Interrupt Timeline

하드웨어는 어느 순간이든 시스템 버스를 통해 CPU에 신호를 보내 인터럽트를 발생시킬 수 있다.

  • 이때, 인터럽트는 매우 빈번하게 발생하므로 빠른 처리를 위해 여러 인터럽트 루틴의 주소를 미리 저장해두는데 이 주소의 배열인 인터럽트 벡터를 통해 인터럽트 루틴으로 이동하게 된다

CPU는 interrupt request line을 주기적으로 체크하는데 디바이스 컨트롤러가 여기에 신호를 보내면 (CPU가 interrupt되면) CPU는 하던 일을 중단하고 즉시 interrupt request line에 기록된 번호를 읽어 interrupt vector를 통해 interrupt handler (routine) 내부의 위치로 이동하여 요청된 서비스를 처리한다. 이러한 위치는 일반적으로 인터럽트를 위한 서비스 루틴이 위치한 시작 주소를 가지고 있다. 그리고 인터럽트 서비스 루틴이 실행된다. 인터럽트 서비스 루틴이 실행이 완료되면, CPU는 인터럽트 되었던 연산을 재개한다.

Interrupt-Driven I/O Cycle

  1. CPU는 요청이 오면 device driver에 입출력을 지시하고 driver는 controller에 입출력을 지시한다. 이에 따라 controller는 실제 연결된 입출력 장치에 입출력을 준비시키고 데이터를 입력받기 시작한다. 컨트롤러가 작업을 하는 중에 CPU는 다른 작업을 계속 수행하며 하나의 작업이 처리될 때마다 인터럽트 발생 여부를 확인한다.

  2. 컨트롤러에서 입력 혹은 출력 작업이 완료되거나 에러가 발생할 경우 인터럽트 신호를 발생시키고 그 인터럽트를 CPU가 전달받아 인터럽트 핸들러에 넘긴다. 인터럽트 핸들러는 해당 데이터를 처리하여 인터럽트 처리 이전의 시작지점으로 복귀시킨다.

  3. CPU는 인터럽트 핸들러에서 전달받은 시작지점부터 작업을 재개한다.

  4. 1-3번의 일련의 과정을 반복한다.

Modern Interrupt Handling

인터럽트 핸들링을 중요도에 따라 효율적으로 하기 위해 두 개의 interrupt request line을 가지고 있다.

  • Two Interrupt request lines (CPU가 interrupt 발생 체크)
    • Nonmaskable Interrupt(더 중요, 꼭 먼저 처리): 복구할 수 없는 메모리 오류와 같은 이벤트를 위해 예약됨
    • Maskable Interrupt(덜 중요, 미룰 수 있음): 중단되어서는 안되는 중요한 명령을 실행하기 전에 CPU에 의해 끌 수 있다. device controller에서 사용한다.
  • Interrupt 우선순위 기준
    • CPU는 모든 interrupt를 *마스킹하지 않고 우선순위가 낮은 interrupt 처리를 연기한다.

    • 우선 순위가 높은 interrupt는 우선순위가 낮은 interrupt의 실행을 선점한다.

      (*마스킹이란 핸들러 실행 중 다른 인터럽트가 개입할 수 있는지에 대한 것이다.)

    • 인터럽트마다 모두 마스킹을 하지 않고 미리 중요도를 지정해두고 이를 기반으로 작업한다.

Intel processor event-vector table

Storage Structure

  • Main memory(RAM: random access Memory): CPU가 유일하게 직접 접근할 수 있는 대용량 저장 메체

    • 일반적으로 휘발성이다.
    • DRAM(Dynamic Random-Access Memory)
  • Bootstrap program to load operating system

    • 운영체제를 메인메모리에 올려준다.
    • 일반적으로 firmware로 알려진 EPROM에 저장된다. (드물게 기록되고 비휘발성인 저장소)
  • Secondary storage: 대용량 비휘발성 저장용량을 제공하는 메인 메모리 확장

    • 하드디스크 드라이브(HDD)
    • 비휘발성 메모리(NVM)장치 (e.g. flash memory)
  • Tertiary storge(3차 저장장치): 백업 복사본을 저장하는데 사용

    • CD-ROM, magetic tapes

Storage-Device Hierarchy

  • 용량은 비용에 반비례한다.

Storage Definitions and Notation Review

I/O Structure

  • 인터럽트 구동 I/O는 소량의 데이터를 이동하는 데 적합하지만 NVS I/O와 같은 대량 데이터 이동에 사용할 경우 높은 오버헤드를 생성한다.

  • (e.g. CPU에서 I/O 요청을 하면 입출력 장치는 데이터를 읽어 interrupt 요청을 하고 CPU가 개입하여 데이터를 메인 메모리에 전달하는 경우를 생각해보자. 모든 입출력 장치들이 시스템 버스를 이용해 데이터를 송수신하는데 만약 대용량의 데이터를 주고받는다고하면, 리소스 처리에 부담이 생기는 오버헤드가 발생할 수 있다.)

  • 이러한 이유로 CPU가 개입하지 않고 입출력 장치와 메인 메모리가 직접 연결되어 데이터를 보낼 수 있는 DMA를 사용한다.

  • Direct Memory Access (DMA)

    • 메모리에 가까운 속도로 정보를 전송할 수 있는 고속 I/O 장치에 사용
    • 블록 단위로 데이터를 전송
    • device controller는 CPU 개입 없이 버퍼 저장소에서 main memory로 직접 데이터 블록을 전송한다.
    • 인터럽트의 경우 한 바이트마다 인터럽트가 발생하는데, 한 바이트마다 CPU에게 전송하지 않고 블럭 단위로 모두 전송하고 인터럽트를 전송한다.
    • byte당 하나의 interrupt가 아니라 블록 당 하나의 interrupt만 생성된다.

How a Modern Computer Works

Computer-System Architecture

  • Single-Processor Systems

    • 단일 범용 프로세서 사용 (one CPU with a single core)
    • 대부분의 시스템에는 특수 목적의 프로세서(e.g. device controller)도 있다.
    • 코어란 명령을 실행하고 로컬로 데이터를 저장하기 위한 레지스터를 포함하는 요소이다

  • Multiprocessor systems: 대부분의 현대 컴퓨터에서 주로 사용
    • 단일 코어 CPU에 2개(혹은 그 이상)의 프로세서
    • 주요 이점은 처리량 증가이다.
    • 단, N개의 프로세서를 사용한 속도 향상 비율은 N보다 작다. (공유 리소스에 대한 오버헤드 및 경합 때문)
      (e.g. 2개 있다고 반드시 2배 빨라지지 않는다)
      - Symmetric Multiprocessing (SMP)
      - Multicore System
      - Non-uniform Memory Access (NUMA)

Symmetric Multiprocessing (SMP)

  • 멀티 프로세서 시스템에서 가장 흔히 사용되는 시스템
  • 각 CPU 프로세서는 운영체제 기능 및 사용자 프로세스를 포함한 모든 작업을 수행한다. (각각의 CPU가 하는 일은 비슷하다.)
  • 각 프로세서에는 고유한 레지스터와 로컬 캐시가 있지만 물리적 메모리를 공유한다.

(+) 많은 프로세스가 동시에 실행 (효율증대)
(-) 하나는 놀고있고 다른 하나는 과부하 상태일 수 있다.
-> 각 프로세서가 독립적이기 때문에 하나는 대기상태가 되어 다른 프로세서에 작업이 집중되는 현상이 발생할 수 있다.

Multicore System

  • 하나의 칩(프로세서)안에 CPU코어가 여러 개 이다.

  • 여러 개의 프로세서를 묶는 것보다 하나의 프로세서에 여러 개의 코어를 넣는 것이 처리속도가 더 빠르고 전력 소모가 적어 효율이 높다. (프로세서 내에서 처리하는 것이 더 빠르기 때문)

  • SMP와 달리 코어 사이에 별도의 캐시가 존재하여 처리속도가 빠르다.

  • Windows, macOS, Linux, Android 및 iOS가 멀티코어 SMP 시스템을 지원한다.

(+) on-chip 통신이 더 빠르기 때문에 단일 코어가 있는 여러 칩보다 효율적이다.
(+) 여러 개의 단일 코어 칩보다 전력 소모가 적다.

Non-Uniform Memory Access (NUMA)

  • 각 CPU에는 고속 로컬 버스를 통해 엑세스 되는 자체 로컬 메모리가 있다.
  • CPU는 공유 시스템 상호 연결로 연결된다.
  • 서버 및 고성능 컴퓨팅 시스템에서 대중화

(+) 로컬 메모리 액세스가 빠르고 경합이 없다.
(+) 더 많은 프로세서가 추가됨에 따라 더 효과적으로 확장
(-) 시스템 상호 연결을 통해 원격 메모리에 엑세스하기 위해 대기시간이 걸린다. (멀리있는 메모리 접근이 느림)

Clustered Systems

  • 두 개 이상의 개별 시스템(노드)이 서로 연결되어 저장소를 공유한다.

  • 일반적으로 storage-area network(SAN)을 통해 저장소 공유

  • (+) 장애를 극복하는 고가용성 서비스 제공 (한 컴퓨터의 서비스가 shut down 되어도 다른 컴퓨터가 작업을 대신할 수 있다.)

  • Asymmetric clustering: 하나의 컴퓨터(시스템)가 다른 컴퓨터(시스템)을 모니터링(hot-standby)한다.

  • Symmetric clustering: 여러 컴퓨터가 동작하며 각 컴퓨터가 서로를 모니터링한다.

  • 한 클러스터가 네트워크로 연결된 다수의 컴퓨터 시스템으로 구성되므로 클러스터는 고성능 계산환경(HPC)을 제공한다.

    • 클러스터 내의 모든 컴퓨터에서 Application을 병렬 수행할 수 있으므로 Singleprocessor나 SMP(symmetric multiprocessing) 시스템보다 훨씬 큰 계산 능력을 가진다.
  • 일부는 충돌하는 작업을 피하기 위해 분산 잠금 관리자(Distributed lock manager(DLM))를 가지고 있다.

Operating System Operations

  • 전원을 켜거나 재부팅할 때 펌웨어로 저장되어있는 부트스트랩 프로그램이 운영체제 커널을 메인 메모리에 로드하고 시스템을 초기화하는 작업을 수행한다.

  • 커널이 부트스트랩에 의해 메인 메모리로 로드되어 실행되면 커널이 서비스를 실행하고 종료할 때까지 system daemons가 실행된다.
    ( *daemon- 커널이 실행되는 동안 항상 실행되는 프로그램)

  • 시스템이 완전히 부팅되면 운영체제는 이벤트(인터럽트)가 발생할 때까지 대기한다.

    • 하드웨어 인터럽트

    • 소프트웨어 인터럽트(exception or trap)

      • 소프트웨어 에러 (e.g. 0으로 나누기)
      • 사용자가 운영체제 서비스를 요청할 때 (system call)
      • 프로그램이 무한루프를 포함한 문제를 일으키거나 사용자 또는 운영체제가 심각한 문제를 일으키는 경우

Multiprogramming

  • 단일 사용자는 CPU 및 I/O 장치를 항상 사용 중인 상태로 유지할 수 없다.

  • Multiprogramming은 CPU가 입출력 장치의 작업으로 인해 대기하지 않고 항상 한 개 이상의 프로세스를 실행할 수 있도록 하여 CPU의 활용도를 높인다.

  • OS는 메모리에 여러 프로그램을 동시에 올리고 실행할 수 있다.

    • process: 실행중인 프로그램
  • OS는 하나의 프로세스를 선택하고 실행하기 시작한다.

  • 해당 프로세스가 (예를 들어 I/O를 위해) 대기상태일 때 OS는 CPU를 다른 프로세스로 전환한다.

Multitasking

  • Multitasking은 멀티프로그래밍의 논리적 확장이다.
  • CPU는 프로세스를 굉장히 자주 전환하며 여러 프로세스를 실행하여 사용자에게 빠른 응답 시간을 제공한다.
  • CPU는 각 프로세스마다 정해진 시간을 두어 작업 후 다른 프로세스로 전환하는 형식을 가진다.
  • 따라서 CPU가 여러 개의 프로세스를 번갈아가며 실행해주기 때문에 사용자가 느끼는 반응속도가 빨라진다. -> CPU 스케줄링
  • 가상 메모리는 - 적절한 응답 시간을 보장하기 위해 대용량 저장장치를 가상의 메인 메모리처럼 활용하는 것을 말한다.
  • Dual-Mode and Multimode Operation
    • 실제 물리적 메모리보다 큰 프로그램 실행 가능

Dual-Mode and Multimode Operation

  • 듀얼 모드 작동을 통해 OS는 자체 및 기타 시스템 구성 요소를 보호할 수 있다.

  • user mode, kernel mode
    (= supervisor mode, system mode, privileged mode)

  • 하드웨어에서 제공하는 Mode bit: kernel(0) or user(1)

    • Mode bit를 컴퓨터의 하드웨어에 추가하여 User Mode와 Kernel Mode를 구분한다.

    • 시스템이 System Call (trap, exception, interrupt) 을 수행할 때는 시스템은 kernel mode로 전환된다. 또, 사용자 프로그램으로 복귀할 때 user mode로 복귀한다.

    • 일부 명령은 priviledged(권한 있는) 으로 지정되어 커널 모드에서만 실행 가능하다.

      • privilieged instruction
        - 커널 모드로 전환하는 명령
        - I/O 제어
        - 타이머 관리
        - 인터럽트 관리
    • 점점 더 많은 CPU가 다중 모드 작업을 지원한다.

      • 즉, 게스트 VMs를 위한 VMM(virtual machine manageer) 모드

Transition from User to Kernel Mode

  • 컴퓨터가 부팅될 때는 kernel mode로 동작하고 운영체제의 모든 서비스가 실행되고 난 뒤, 사용자가 프로그램을 실행하면 user mode로 변경되어 사용자 프로세스가 실행된다.

    그러다 system call (exception, trap, interrupt)이 들어오면 다시 kernel mode로 바뀌며 이에 대한 작업을 처리한 후 또 다시 user mode로 복귀한다.

  • 운영체제가 컴퓨터의 제어권을 얻을 때마다 항상 kernel mode로 변경되는 것.

Timer

  • 사용자 프로그램이 무한루프를 일으키거나 시스템 서비스 호출에 실패하여 운영체제가 제어하지 못하는 상황이 생기지 않도록 방지해야한다.
  • 이를 위해 타이머는 지정된 시간 이후에 컴퓨터를 인터럽트 하도록 설정할 수 있다.
  • 프로세스가 지정된 시간을 초과하여 cpu를 사용할 수 없도록 하는 것
  • 고정된 시간 또는 가변 타이머를 사용하여 clock에 따라 counter가 감소하게 되고 counter가 0이 되면 인터럽트가 발생하게 된다.
  • 타이머가 인터럽트를 발생시키면 제어는 운영체제로 넘어간다.
  • privilieged instruction만이 타이머를 설정하고 counter를 변경할 수 있다.

Resource Management

  • Process Management
  • Memory Management
  • File-System Management
  • Mass-Storage Management
  • Cache Management
  • I/O Systems Management

Process Management

  • process : 실행 중인 프로그램, 프로그램 카운터를 가진 능동적 개체 (active entity), 한 시스템 내의 작업의 단위
  • program : 수동적 개체 (passive entity)
  • 프로세스는 일을 수행하기 위해 다음과 같은 자원을 필요로 한다.
    • CPU 시간, 메모리, 입출력 장치, 파일, 초기 데이터
  • 프로세스가 종료되면 해당 프로세스가 사용하던 자원을 다른 프로세스가 재사용할 수 있도록 할당한다.
  • 싱글 쓰레드 프로세스는 다음에 수행할 명령을 지정하는 프로그램 카운터(program counter)를 가진다.
  • 멀티 쓰레드 프로세스는 프로그램 카운터마다 쓰레드를 가진다.
  • 시스템은 프로세스의 집합으로 구성되는데, 프로세스 중 일부는 운영체제 프로세스들(시스템 코드를 수행하는 프로세스들)이며, 나머지는 사용자 프로세스들(사용자 코드를 수행하는 프로세스들)이다.

Process Management Activities

  • 운영 체제는 프로세스 관리와 관련하여 다음 활동을 담당한다.
    • 사용자 및 시스템 프로세스 생성 및 삭제
    • CPU의 프로세스 및 스레드 스케줄링
    • 프로세스 일시 중지 및 재개
    • 프로세스 동기화를 위한 메커니즘 제공
    • 프로세스 통신을 위한 메커니즘 제공

Memory Management

  • CPU가 디스크에서 가져온 데이터를 처리하려면 이들 데이터는 CPU가 생성된 입출력 호출에 의해 먼저 메인 메모리로 전송되어야 한다. 또, CPU가 명령을 수행하기 위해서는 명령이 주 메모리 내에 있어야 한다.
  • 프로그램이 수행되기 위해서는 반드시 Absolute Address로 매핑(Mapping) 되고 메모리에 적재되어야 한다.
  • 프로그램을 수행하면서, 이 Absolute Address를 생성하여 메모리의 프로그램 명령어와 데이터에 접근한다.
  • 프로그램이 종료된 뒤에, 프로그램이 차지하던 메모리 공간은 가용 공간으로 선언되고, 다음 프로그램에 적재되어 수행될 수 있다.

운영체제는 메모리 관리와 관련하여 다음과 같은 일을 담당해야 한다.

  • 메모리의 어느 부분이 현재 사용되고 있으며 어느 프로세스에 의해 사용되고 있는지를 추적해야 한다.
  • 필요에 따라 메모리 공간을 할당하고 회수해야 한다.
  • 우선순위에 따라 어떤 프로세스(또는 그 일부)들을 메모리에 적재하고 제거할 것인가를 결정해야 한다.

File-System Management

  • 운영체제는 저장 장치의 물리적 특성을 추상화하여 논리적인 저장단위인 파일을 정의하여 제공한다.
  • 운영체제는 여러 타입의 물리적 매체에 정보를 저장할 수 있고 각 매체는 저장 장치에 의해 제어된다. ( disk drive, tape drive 등 )
  • 파일은 사용하기 쉽도록 통상 디렉터리들로 구성된다.
  • 운영체제는 대량 저장 매체와 그것을 제어하는 장치를 관리함으로써 파일의 추상적인 개념을 구현한다.

운영체제는 파일 관리를 위하여 다음과 같은 일을 담당한다.

  • 파일의 생성 및 제거
  • 디렉터리 생성 및 제거
  • 파일과 디렉터리를 조작하기 위한 프리미티브의 제공
  • 파일을 보조저장장치로 매핑
  • 안정적인(비휘발성) 저장 매체에 파일을 백업

Mass-Storage Management

(대용량 저장 장치 관리)

  • 일반적으로 HDD, NVM 디바이스는 프로그램과 데이터를 위한 주요 온라인 저장 미디어로 사용된다.

운영체제는 보조저장장치 관리와 관련하여 다음 활동을 책임진다.

  • 마운팅과 언마운팅
  • 사용 가능 공간(free-space)의 관리
  • 저장장소 할당
  • 디스크 스케줄링
  • 저장장치 분할
  • 보호

( * 마운팅(Mounting) : 해당 파일 시스템이 디렉토리(마운트 지점)에 연결되어 시스템에서 사용될 수 있게 만드는 작업 )

( * 언마운팅(Unmounting) : 해당 파일 시스템의 마운트 지점 연결을 끊어 시스템에서 사용할 수 없게 하는 작업. )

Cache Management

  • 정보는 일반적으로 어떤 저장장치에 보관되고 정보가 사용됨에 따라 더 빠른 장치인 캐시에 일반적으로 복사되고 또, 빠르게 접근하기 위해 캐시 메모리를 확인하여 정보를 읽는다
  • 느린 저장소에 있는 정보를 임시로 더 빠른 저장공간에 복사하는 것을 말하기도 한다.
  • 특정한 정보가 필요한 경우 우선 캐시에 해당 정보가 있는지 확인한 후 있다면 직접 가져와 사용하며 없는 경우에는 메인 메모리로부터 가져와 사용한다. 이 때, 해당 정보가 다음에 다시 사용될 가능성이 높은 경우에는 캐시에 복사한다.
  • 캐시는 다른 저장 장치에 비해 공간이 작기 때문에 캐시 관리는 프로그램 설계에서 중요하다.

Characteristics of Various types of Storage

주 메모리는 보조 메모리를 위한 빠른 캐시로 볼 수 있다. 이는 보조 메모리의 데이터를 사용하기 위해서는 주 메모리에 복사되어야 하고 반대로 안전하게 정보를 보관하기 위해 보조 메모리로 이동되기 전에는 반드시 주 메모리가 있어야 하기 때문이다.

Migration of data "A" from Disk to Register

  • 멀티태스킹 환경은 스토리지 계층 구조의 어디에 저장되어 있든 가장 최근 값을 사용하도록 주의해야 한다.

복사된 데이터 간의 일관성을 유지하기 위한 (cache coherency)

  • CPU가 내부 레지스터를 사용하고 Local Cache도 가지고 있는 멀티 프로세서 환경에서는 더욱 캐시 값에 유의해야 하는 경우가 생길 수 있다.

=> 예를 들어, A의 복사본이 동시에 여러 캐시에 존재한다고 가정하자. 이때 여러 개의 CPU가 모두 동시에 실행되는 경우, 한 캐시에 있는 A 값이 갱신될 때 A가 존재하는 모든 캐시에 즉각적으로 반영되어야 한다. 이러한 상황을 캐시 일관성(Cache Coherency) 문제라고 한다.

I/O Systems Management

  • 운영체제 목적 중의 하나는 사용자에게 특정 하드웨어 장치의 특성을 숨기는 것이다. 단지 장치 드라이버만이 자신에게 지정된 특정 장치의 특성을 알고 있어야만 한다. 입출력 시스템은 다음과 같이 구성되어 있다.
    • 버퍼링, 캐싱, 스풀링을 포함한 메모리 관리 구성요소
    • 버퍼링 : 입출력 장치 간의 속도 차이를 보완하기 위해 전송 데이터를 일시적으로 메모리에 저장하는 것
    • 스풀링 : 데이터를 일시적으로 메모리에 저장한 후 전송하는 것 (e.g.) 프린터 )
    • 일반적인 장치 드라이버 인터페이스
    • 특정 하드웨어 장치들을 위한 드라이버

수정해야될 사항이 있거나 잘못 번역된 문장이 있을경우 댓글로 알려주세요 :)

profile
I want to be coool and chilll developer...

3개의 댓글

comment-user-thumbnail
2023년 10월 12일

즈후,영어 못하능데.. 우녕체제 수업 듣능다.. 삼시기 눙나껄로 겅부한다.. 이제 행보카다..

2개의 답글