본문 바로가기

Study/OS

Chapter 01. Computer System Overview

운영체제(OS)란?

H/W들을 효율적으로 관리해서 사용자 또는 응용 프로그램(Application)에게 서비스를 제공하는 Software

컴퓨터 하드웨어

프로세서 (Processor) : 계산 담당

  • CPU (중앙처리장치)
    • 연산 수행
    • 컴퓨터의 모든 장치의 동작 제어
    • 레지스터, 연산장치, 제어장치로 구성
    • What is Register?
      • 프로세서 내부에 있는 메모리
      • 컴퓨터에서 가장 빠른 메모리
      • 레지스터 종류
        • 용도에 따라
          • 전용 레지스터, 범용 레지스터
        • 사용자가 정보를 변경 가능한지에 따라
          • 사용자 가시 레지스터, 사용자 불가시 레지스터
        • 저장하는 정보의 종류에 따라
          • 데이터 레지스터, 주소레지스터, 상태 레지스터
  • 그래픽카드(GPU) 등
  • 운영체제와 프로세서, 무슨 관계?
    • 프로세서에게 처리할 작업 할당 및 관리 (3장)
      • 프로세스(Process) 생성 및 관리
    • 프로그램의 프로세서 사용 제어 (4~5장)
      • 프로그램의 프로세서 사용 시간 관리
      • 복수 프로그램간 사용 시간 조율 등

메모리 (Memory) : 저장 담당

  1. 레지스터
  2. 캐시 (CPU 내에 있음)
    • 캐시의 동작
      • 일반적으로 H/W적으로 관리됨
      • 프로세서가 캐시한테 필요한 데이터 블록을 갖고 있는지 물어본다.
      • 있다면? 캐시 히트 (Cache hit)
        캐시에서 가져온다.
        • 워드 단위 (고속)
        • 높은 대역폭
      • 없다면? 캐시 미스 (Cache miss)
        캐시가 메인메모리에서 데이터 블록 가져오고, 프로세서에게 전달.
        • 블록 단위 (저속)
        • 낮은 대역폭
      • 캐시 ↔ 메인 메모리
    • 지역성 (Locality) : 캐시가 효과를 낼 수 있는 이유
      • 공간적 지역성 (Special locality) : 참조한 주소와 인접한주소를 참조하는 특성
        예) 순차적 프로그램 수행
      • 시간적 지역성 (Temporal locality) : 한 번 참조한 주소를 곧 다시 참조하는 특성
        예) For 문 등의 순환문
      • 그러므로 지역성은 캐시 적중률(cache hit ratio)과 밀접
        • 알고리즘 성능 향상을 위한 중요한 요소 중 하나
      • 근데 H/W가 관리한다면서?
      • for(int i = 0; i <= n; i++){
            for(int j = 0;  j < m; j++){
                x += a[i][j] // A
                    or
                x += a[j][i] // B
            }
        }
      • a[0][0] 을 읽을 때, 한 블록 (a[0][0]부터 a[0][15])을 메인메모리로부터 캐시로 가져온다.
      • B같은 경우는 j값이 증가될 때마다 cache miss 발생된다.
  3. 왜 있어야되지? CPU내에는 레지스터가 있는데??
    메인메모리를 뒀지만! CPU와 메인 메모리사이에 성능차이가 아직 있다. 캐쉬를 통해 해결~
    => 메인 메모리의 입출력 병목현상 해소
  4. 메인 메모리
    • 프로세서가 수행할 프로그램과 데이터 저장
    • 주로 DRAM
    • Processor ↔ Main memory ↔ Disk
      이유 : CPU의 발전으로 CPU와 Disk간의 속도차이가 커졌다. Disk보다는 빠르지만 용량은 작은 어딘가에.. CPU가 일을 하는 동안 미리 필요한 데이터를 Disk에서 가져와서 두자. 어디에 ? 메인메모리에!
      => 디스크 입출력 병목현상 (I/O bottleneck) 해소
  5. 보조기억장치
    • 프로그램과 데이터를 저장
    • 프로세서가 직접 접근할수 없음. 뭔말이냐 = 메인메모리를 거쳐야한다.
    • 프로그램/데이터가 주기억장치보다 용량이 더 큰 경우는??
      • 가상메모리(Virtual memory)
    • 용량 크고, 가격저렴
      HDD, SD카드, USB
  • 고속, 저용량 순서(위의 1234)
  • 운영체제와 메모리, 무슨 관계?
    • 메모리 할당 및 관리 (7장)
      • 프로그램의 요청에 따른 메모리 할당 및 회수
      • 할당된 메모리 관리
    • 가상 메모리 관리 (8장)
      • 가상메모리 생성 및 관리
      • 논리주소 -> 물리주소 변환

주변장치

  • 프로세서와 메모리를 제외한 하드웨어들
  • 입력 장치
    • 키보드 / 마우스
  • 출력 장치
    • 모니터, 프린터
  • 저장 장치
    • 보조 기억 장치들
  • 주변장치와 메모리, 무슨 관계?
    • 장치드라이버 관리
      • 주변 장치 사용을 위한 인터페이스 제공
    • 인터럽트(Interrupt) 처리 (3장)
      • 주변 장치의 요청 처리
    • 파일 및 디스크 관리 (9~10장)
      • 파일 생성 및 삭제
      • 디스크 공간 관리 등
시스템 버스 (System Bus)

H/W들이 데이터 및 신호를 주고받는 물리적인 통로

  • 데이터 버스
  • 주소 버스
  • 제어 버스

'Study > OS' 카테고리의 다른 글

Chapter 05. Process Scheduling (2of4) - FCFS, RR  (0) 2021.06.23
Chapter 05. Process Scheduling (1of4)  (0) 2021.06.23
Chapter 04. Thread Management  (0) 2021.06.23
Chapter 03. Process Management  (0) 2021.06.17
Chapter 02. OS Overview  (0) 2021.06.16