[Operating System ①] 운영체제와 컴퓨터 하드웨어의 관계

4 분 소요

[Operating System ①] 운영체제와 컴퓨터 하드웨어의 관계

HPC Lab 김덕수 교수님의 운영체제 강의를 정리한 내용입니다. :+1:

강의링크


목차

:point_right: 운영체제란?

:point_right: 주요 컴퓨터 하드웨어

:point_right: 프로세서 : 계산장치

  • 레지스터
  • 프로세스의 동작
  • 운영체제와 프로세서의 관계

:point_right: 메모리 : 저장장치

  • 메모리 종류
    • 주기억장치
    • 캐시
    • 보조기억장치
  • 메모리와 운영체제

:point_right: 시스템 버스 : 통신 통로

:point_right: 주변장치

  • 주변장치와 운영체제



운영체제란

컴퓨터 게임을 하기 위해서 어떤 것들이 필요할까? 컴퓨터 내의 하드웨어들이 필요하다.

  • CPU
  • GPU
  • MOM(Memory)
  • HDD/SSD
  • LAN(Network 장치)

운영체제는 위와 같은 컴퓨팅 자원들을 효율적으로 관리할 수 있게 하는 시스템을 말하며, 사용자와 응용프로그램에 서비스를 제공한다.


주요 컴퓨터 하드웨어

운영체제가 관리하는 컴퓨터 하드웨어는 크게 3가지로 나뉜다.

  1. 프로세서(Processor) : 계산하는 장치
    • CPU
    • GPU/GPGPU
    • 응용 전용 처리장치: 특별한 목적을 위해 개발된 장치
  2. 메모리(Memory) : 기억하는 장치
    • DRAM : 주기억장치
    • Disk : 보조기억장치
  3. 주변장치
    • 키보드/마우스 : 입력장치
    • 모니터, 프린터: 출력장치
    • 네트워크 모뎀 : 네트워크 장치


1. 프로세서 : 계산하는 장치

  • 연산 수행
  • 컴퓨터 내 장치의 동작 제어

프로세서 구조



1-A) 레지스터(Register)

  • 프로세서(CPU) 내부에 있는 메모리
    • 프로세서가 사용할 데이터를 저장
    • 컴퓨터에 존재하는 다양한 메모리 중 가장 빠른 메모리
  • 종류
    • 용도에 따라 분류 : 전용 레지스터(정해진 용도로만), 범용 레지스터(일반적으로 사용 가능)
    • 사용자가 변경 가능한지에 따라 분류 : 가시 레지스터(사용자가 보고 변경 가능), 불가시 레지스터
    • 저장하는 정보 종류에 따라 분류 : 데이터 레지스터, 주소 레지스터, 상태 레지스터

사용자 가시 레지스터

  • 데이터 레지스터: 데이터 저장
  • 주소 레지스터: 주소 저장
  • C언어에서 사용자의 register 조작


사용자 불가시 레지스터

  • 대부분 전용 레지스터이다.
  • 프로그램 카운터(PC, Program Counter) : 다음에 실행할 명령어의 위치/라인의 메모리상 주소를 가르키는 레지스터
  • 명령어 레지스터(IR, Instruction Register) : PC를 통해 가져온 명령어가 저장되는 레지스터
  • 누산기(ACC, ACCumulator) : 계산과정에서의 값을 임시적으로 저장하는 레지스터



1-B) 프로세서의 동작

프로그램이 동작할 때 다양한 레지스터를 통해 연산이 이루어진다.


1-C) 운영체제와 프로세서의 관계

  • 프로세서에게 처리할 작업 할당 및 관리
    • 프로세스(Process) 생성 및 관리
  • 프로그램의 프로세서 사용 제어
    • 프로그램의 프로세서 사용시간 관리
    • 복수 프로그램간 사용시간 조율 등



2. 메모리 : 데이터를 저장하는 장치

  • 데이터를 저장하는 장치 (기억장치)
    • 저장 대상: 프로그램, 사용자 데이터 등
  • 종류 (피라미드형 구조. 위부터 속도 빠르고 가격 비싸고 용량 적음)
    • 레지스터 (CPU)
    • 캐시 (CPU)
    • 메인 메모리 (DRAM)
    • 보조기억장치 (HDD)
    • 왜 나눠 놓았느냐? 최소한의 비용으로 최고의 효율을 내기 위해서, 각 메모리를 적당히 섞어서 최고의 성능을 얻기 위해


2-A) 메모리 종류 - 주기억장치(Main Memory)


  • 주기억장치(Main Memory) : 흔히 말하는 메모리 - DRAM,DDR4
    • 프로세서가 수행할 프로그램과 데이터가 해당 메모리 안에 반드시 존재해야 함
  • Disk로 바로 접근하지 않는 이유?
    • Disk 속도 개선 느림. CPU 속도 개선 빠름 => gap 커짐. CPU는 빠른데 메모리가 느려서 생기는 문제
    • Disk보다 용량은 작지만 접근 속도는 빠른 것을 중간에 놓고, CPU가 일을 하는 동안 다음에 필요한 데이터를 미리 준비해놓자. 이것을 통해 문제를 개선하려는 목적.
    • 즉, Disk 속도가 느린 것이 프로그램이 동작하는 데에 방해요소(디스크 입출력 병목현상, I/O bottleneck)으로 작용을 하기 때문에, main memory를 중간에 두어 문제를 해소


2-A) 메모리 종류 - 캐시 (Cache)


  • 레지스터와 마찬가지로 CPU 안에 존재
  • 하지만, 레지스터보다 코어에 멀리 떨어져있고, 속도 느리며, 사이즈는 크다
  • 존재이유
    • 메인 메모리 존재 이유와 같은 맥락
    • 메인 메모리를 두어 디스크 병목현상 해소했지만, 여전히 CPU와 performance gap 큼
    • 따라서 main memory보다 속도 빠른 cache를 두어 메인메모리 병목현상을 해소


2-A) 메모리 종류 - 캐시 (Cache) 의 동작


  • 기본적으로 HW적으로(CPU가 알아서) 관리
  • 프로세서 -> 캐시에 접근해서 필요한 데이터 있는지 확인 -> 메인메모리로 가서 필요 데이터 캐시에 가져옴 -> 캐시에 가져온 데이터를 프로세서에 전달
  • 캐시 히트(Cache hit) : 필요한 데이터블록이 캐시에 존재하는 상황
  • 캐시 미스(Cache miss) : 필요한 데이터블록이 캐시에 존재하지 않는 상황


2-A) 메모리 종류 - 캐시의 지역성 (Locality)


  • 첫번째, 공간적 지역성(Spatial Locality) : 어떤 주소를 참조하면, 다음 번에 해당 주소 주변을 참조할 가능성이 높다는 특성
    • 데이터를 읽는 경우, 해당 데이터 블록만 가져오는 것이 아니라 일부분을 다 가져오게 됨. => cache line (spatial locality)
  • 두번째, 시간적 지역성(Temporal locality) : 어떤 주소를 참조하면, 이후 해당 주소를 다시 참조할 가능성이 높다는 특성 ex)for문 등의 순환문
  • 즉, 이러한 지역성 때문에 캐시 히트의 가능성이 높다.
    • 따라서, 128kb의 적은 용량의 캐시라도 메인 메모리의 병목현상을 해소하는 데 유의미한 영향을 끼침.


2-A) 메모리 종류 - 캐시의 지역성 (Locality) 2


for i in range(n):
   for j in range(n):
      x = x + a[i][j] # A
      x = x + a[j][i] # B
  • B의 경우 : cache miss 계속 발생 => cache 없는 편이 더 빠름
  • A의 경우 : cache miss 한번 발생 후, cache hit 발생 => cache 덕에 더 빠르게 처리
  • 즉, cache를 이해한다면, 프로그램 더 효율적으로 짤 수 있음
    • A 속도 »» B 속도


2-A) 메모리 종류 - 보조기억 장치(Disk) HDD/USB/CD/SD카드..


프로세서가 직접 접근 할 수 없음 (따라서 주변장치로 분류됨) 따라서, 데이터 사용을 원하는 경우 Disk의 데이터를 Memory에 올려놓고 사용해야 한다.

  • 용량이 크고, 가격이 저렴하다
  • 의문점?
    • 실행하려는 게임(Disk) 메모리가 20GB일 때, Memory가 5GB밖에 없을 경우는?
    • 가상메모리로 해결 : Disk의 일부를 Memory처럼 사용


2-B) 메모리와 운영체제 : 메모리도 OS가 관리하는 중요자원 중 하나


  • 메모리 할당 및 관리 방법
  • 가상메모리 관리 방법



3. 시스템 버스


다양한 자원/리소스들(프로세서, 메모리, 주변장치)이 함께 일을 하려면 통신이 필요.
이 통신의 통로를 시스템 버스라 일컫음
즉, 하드웨어들이 데이터 및 신호를 주고 받는 물리적 통로

  • 각각의 리소스들을 정류장으로 가지는 버스
  • 종류
    • 데이터 버스 : 데이터를 나르는 통로
    • 주소 버스 : 주소를 나르는 통로
    • 제어 버스 : 제어 신호를 나르는 통로

시스템 버스의 작업 흐름




4. 주변 장치


  • 프로세서/메모리(계산)에 직접적으로 필요하지 않은 나머지 장치들
    • 입력장치
    • 출력장치
    • 저장장치 : 보조기억장치..


4-A) 주변장치와 운영체제


  • 장치드라이버 관리 : HW를 사용하기 위해 제공하는 API(인터페이스).
    • 주변 장치 사용을 위한 인터페이스 제공
    • 장치드라이버란? OS가 모든 HW에 대한 인터페이스를 알 수 없기 때문에, 장치 벤더들이 자신들의 장치를 쉽게 사용할 수 있도록 인터페이스를 제공. OS는 인터페이스를 통해 해당 장치를 사용하게 됨.
  • 인터럽트 처리
    • 주변 장치의 요청 처리
    • 인터럽트의 예시 : 키보드 입력을 할 때, 입력이 들어왔다는 사실을 System에 알려주는 것 => 키보드 인터럽트
  • 파일 및 디스크 관리 : 대표적인 SW자원인 파일과 그것을 담고 있는 Disk의 관리
    • 파일 생성 및 삭제
    • 디스크 공간 관리 등

태그:

카테고리:

업데이트:

댓글남기기