CS/운영체제

#0 컴퓨터의 구조

Scala0114 2021. 12. 13. 19:05

1. 프로세서(Processor) - CPU

 ① CPU(Central Processing Unit)

  • 컴퓨터의 중앙 프로세서
  • 컴퓨터의 모든 장치의 동작을 제어

 

 ② 레지스터(Register)

  • 프로세서 내부의 메모리
  • 프로세서가 사용하기 위한 데이터를 저장
  • 컴퓨터를 구성하는 메모리중 가장 빠름
  • 사용자 가시 레지스터
    • 데이터 레지스터(Data Register)
      • 함수 연산에 필요한 데이터를 저장
      • 산술/논리 연산에 사용하며 연산 결과로 플래그값 저장

    • 주소 레지스터
      • 주소나 유효 주소를 계산하기 위해 필요한 주소의 일부분을 저장
      • 주소 레지스터에 저장한 값을 사용하여 산술연산 가능

  • 사용자 불가시 레지스터
    • 프로그램 카운터(PC - Program Counter)
      • 다음에 실행할 명령어의 주소를 보관하는 레지스터
      • 실행할 명령어를 메모리에서 읽어오면 명령어 길이만큼 증가, 다음명령어를 가리킴
      • 분기명령어는 목적 주소로 갱신

    • 령어 레지스터(IR - Instruction Register)
      • 현재 실행중인 명령어를 보관하는 레지스터

    • 누산기(ACC - Accumulator)
      • 데이터를 일시적으로 저장하는 레지스터

    • 메모리 주소 레지스터(MAR - Memory Address Register)
      • 프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터

    • 메모리 버퍼 레지스터(MBR - Memory Buffered Register)
      • 프로세서가 메모리에서 읽거나 메모리에 저장할 데이터를 보관하는 버퍼 레지스터
      • 메모리 데이터 레지스터(MDR - Memory Data Register)라고도 함

  • 프로세서는 위의 다양한 레지스터들과 산술/논리 연산장치인 ALU(Arithmetic Logic Unit)
    사용하여 연산을 수행하고 시스템 버스로 연결된 입출력장치나 메모리와 데이터를 주고받는다.

  • 운영체제는 사용자가 실행한 응용프로그램들이 효율적으로 동작하도록 CPU 자원을 적절히
    할당하고 회수하는 등의 작업을 수행한다.

 

 

2. 메모리(Memory)

  • 데이터를 저장하기 위한 기억장치

  • 컴퓨터를 구성하는 메모리의 종류 - 아래로 내려갈수록 느리지만 값이 싸고 용량이 크다
    • 레지스터(Register)
      • 프로세서 내부의 가장 빠른 메모리
    • 캐시(Cache)
      • 프로세스 내부의 L1, L2 캐시 등의 메모리
      • CPU와 메인메모리 사이의 병목현상 해소

    • 메인 메모리(Main Memory)
      • 프로세서가 수행할 프로그램과 데이터 저장
      • CPU 처리속도에 비해 너무 느린 디스크 입출력 속도로 인한 병목 현상을 해소

    • 보조 기억 장치(Auxiliary Memory)
      • 데이터를 사용하기 위해서는 메인 메모리로 가져와야하는 보조 메모리
      • 디스크나 SSD 등이 대표적

  • 캐시의 동작
    • 일반적으로 하드웨어적으로 관리
    • 캐시 히트(Cache Hit)
      • 필요한 데이터 블록이 캐시메모리 내에 존재
      • 바로 가져와 사용

    • 캐시 미스(Cache Miss)
      • 필요한 데이터 블록이 캐시메모리 내에 존재하지 않음
      • 메인 메모리에서 데이터를 가져와야함

    • 지역성(Locality)
      • 공간적 지역성(Spatial Locality)
        • 참조한 주소와 인접한 주소를 참조하는 특성
        • 순차적 프로그램 수행 등

      • 시간적 지역성(Temporal Locality)
        • 한 번 참조한 주소를 곧 다시 참조하는 특성
        • 반복문 등의 순환문

      • 지역성을 고려하여 캐싱 알고리즘을 적절히 구성하면 높은 캐시 적중률을 얻을 수 있다

  • 운영체제는 응용프로그램이 필요로하는 만큼의 메모리를 효율적으로 할당해주는 작업을 수행한다.

 

 

3. 주변 장치

  • 입출력 장치(I/O Device) : 키보드, 마우스, 모니터 등 데이터를 입력, 출력하기 위한 장치

  • 저장 장치(Storage) : 하드디스크, SSD, USB, CD 등의 보조기억장치

  • 운영체제는 응용프로그램의 입출력 요청이나 저장 장치에 대한 읽고쓰기 요청 등을
    효율적으로 처리하여 그 결과를 응용프로그램에게 전달해주는 작업을 수행한다.