[OS] 1-1. 컴퓨터 시스템

공부 스파이럴·2024년 2월 13일
0

운영체제

목록 보기
3/27

컴퓨터 시스템

  • 데이터를 처리하는 물리적인 기계장치하드웨어와 어떤 작업을 지시하는 명령어로 작성한 프로그램소프트웨어로 구성

컴퓨터 하드웨어

프로세서(CPU, 중앙처리장치)

  • 컴퓨터 하드웨어 구성 요소 중 운영체제와 가장 밀접한 부분으로, 컴퓨터의 모든 장치의 동작을 제어하고 연산 수행
  • 중앙처리장치(CPU: Central Processing Unit)라 하며 레지스터, 산술 논리 연산장치, 제어장치 등으로 구성되며, 마이크로프로세서(Micoprocessor) 라고도 불림
    • 주기억장치를 제외한 레지스터, 산술 논리 연산장치, 제어장치를 칩 하나로 구성
    • 개인용 컴퓨터(PC: Personal Computer)에서 주로 이용

프로세스의 레지스터

  • 용도
    • 전용 레지스터
    • 범용 레지스터
  • 정보 변경 가능 여부
    • 사용자 가시(user-visible) 레지스터
    • 사용자 불가시(user-invisible) 레지스터
  • 저장하는 정보의 종류
    • 데이터 레지스터
    • 주소 레지스터
    • 상태 레지스터

사용자 가시 레지스터

  • 사용자가 운영체제와 사용자 프로그램을 이용해 정보 변경 가능
  • 데이터 레지스터
    • 함수 연산에 필요한 데이터를 저장
    • 값, 문자 등을 저장하므로 산술 연산이나 논리 연산에 사용하며, 연산 결과로 플래그 값을 저장함
  • 주소 레지스터
    • 주소나 유효 주소를 계산하는 데 필요한 주소의 일부분을 저장
    • 주소 레지스터에 저장한 값을 사용하여 산술 연산을 할 수 있음
    • 기준 주소 레지스터
      • 프로그램을 실행할 때 사용하는 기준 주소 값을 저장
      • 기준 주소는 하나의 프로그램이나 일부처럼 서로 관련 있는 정보를 저장하며, 연속된 저장 공간을 지정하는 데 참조할 수 있는 주소
      • 기준 주소 레지스터는 페이지나 세그먼트처럼 블록화된 정보에 접근하는 데 사용
    • 인덱스 레지스터
      • 유효 주소를 계산하는 데 사용하는 주소 정보를 저장
    • 스택 포인터 레지스터
      • 메모리에 프로세서 스택을 구현하는 데 사용
      • 많은 프로세서와 주소 레지스터를 데이터 스택 포인터와 큐 포인터로 사용
      • 보통 반환 주소, 프로세서 상태 정보, 서브루틴의 임시 변수를 저장함

사용자 불가시 레지스터

  • 사용자가 정보를 변경할 수 없는 레지스터
  • 프로세서의 상태와 제어를 관리
  • 프로그램 카운터(PC : Program Counter)
    • 다음에 실행할 명령어의 주소를 보관하는 레지스터
    • 계수기로 되어 있어 실행할 명령어를 메모리에서 읽으면 명령어의 길이만큼 증가하여 다음 명령어를 가리키며, 분기 명령어는 목적 주소로 갱신할 수 있음
  • 명령어 레지스터(IR : Instruction Register)
    • 현재 실행하는 명령어를 보관하는 레지스터
  • 누산기(ACC : Accumulator)
    • 데이터를 일시적으로 저장하는 레지스터
  • 메모리 주소 레지스터
    • 프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터
  • 메모리 버퍼 레지스터
    • 프로세서가 메모리에서 읽거나 메모리에 저장할 데이터 자체를 보관하는 버퍼 레지스터
    • 메모리 데이터 레지스터라고도 함

메모리

메모리 계층 구조

  • 1950~1960년대 너무 비싼 메인 메모리의 가격 문제 때문에 제안한 방법
  • 메모리를 계층적으로 구성하여 비용, 속도, 용량, 접근시간 등을 상호 보완

  • 레지스터 : 프로세서가 사용하는 데이터를 보관하는 가장 빠른 메모리
  • 캐시 : 프로세서의 속도 차이를 보완하는 메모리
  • 레지스터, 캐시, 메인 메모리
    -> 합쳐서 메인 메모리라고도 함
    -> 프로세서가 프로그램과 데이터에 직접 접근 가능
  • 보조기억장치
    -> 프로그램과 데이터를 메인 메모리에 옮겨야 실행 가능

레지스터

  • 프로세서 내부에 있으며, 프로세서가 사용할 데이터를 보관하는 가장 빠른 메모리

메인 메모리

  • 프로세서 외부에 있으면서 프로세서에서 수행할 프로그램과 데이터를 저장하거나 프로세서에서 처리한 결과 저장
  • 주기억장치 또는 1차 기억장치라고도 함
  • 저장 밀도가 높고 가격이 싼 DRAM(Dynamic RAM)을 많이 사용
    • RAM, ROM, Cache Memory

  • 다수의 셀(cell)로 구성되며, 각 셀은 비트로 구성
  • 셀이 K비트이면 셀에 2k2^k 값 저장 가능
  • 메인 메모리에 데이터를 저장할 때는 셀 한 개나 여러 개에 나눠서 저장
  • 셀은 주소로 참조하는데, n비트라면 주소 범위는 00~2n12^{n-1}
  • 물리적 주소 공간
    • 컴퓨터에 주어진 주소 공간을 말하며, 프로그래머는 직접 사용하지 않고 수식, 변수를 이용
  • 논리적 주소 공간
    • 컴파일러에 의해 기계어로 변환된 변수와 명령어에 할당되는 주소
    • 별도의 주소 공간에 나타남
  • 컴파일
    • 원시 프로그램을 기계 명령어로 변환하는 처리 과정으로 이때 컴파일러가 논리적 주소를 물리적 주소로 변환

  • 프로세서와 보조기억장치 사이에 있으며, 여기서 발생하는 디스크 입출력 병목 현상을 해결하는 역할 수행
  • 프로세서와 메인 메모리 간의 속도 차이의 부담을 줄이려고 프로세서 내부나 외부에 캐시를 구현하기도 함

  • 메모리 매핑
    • 컴파일로 논리적 주소를 물리적 주소로 변환하는 과정
  • 메모리 속도
    • 메모리 접근 시간과 메모리 사이클 시간으로 표현
      • 메모리 접근 시간 : 명령 발생 후 목표 번지를 검색하여 데이터 쓰기(읽기)를 시작할 때까지의 시간
      • 메모리 사이클 시간 : 두 번의 연속적인 메모리 동작 사이에 필요한 최소 지연 시간

캐시

  • 프로세서 내부나 외부에 있으며, 처리 속도가 빠른 프로세서와 상대적으로 느린 메모리 속도 차이를 보완하는 고속 버퍼
    • 메인 메모리에서 데이터를 블록 단위로 가져와 프로세서에 워드 단위로 전달하여 속도를 높임
    • 데이터가 이동하는 통로(대역폭)를 확대하여 프로세서와 메모리의 속도 차이를 줄임

  • 캐시의 기본 동작

  • 캐시의 성능은 작은 용량의 캐시에 프로세서가 이후 참조할 정보가 얼마나 들어있냐로 좌우 됨
    • 캐시 적중(cache hit) : 프로세서가 참조하려는 정보가 있을 때
    • 캐시 실패(cache miss) : 프로세서가 참조하려는 정보가 없을 때
  • 블록의 크기는 캐시의 성능으로 좌우되는데, 실제 프로그램을 실행할 때 참조한 메모리에 대한 공간적 지역성과 시간적 지역성이 있기 때문
    • 공간적 지역성(spatical locality) : 대부분의 프로그램이 참조한 주소와 인접한 주소의 내용을 다시 참조하는 특성
    • 시간적 지역성(temporal locality) : 한 번 참조한 주소를 곧 다시 참조하는 특성

  • 공간적 지역성과 시간적 지역성의 발생 원인
    • 프로그램이 명령어를 순차적으로 실행하는 경향이 있어 명령어가 특정 지역 메모리에 인접해 있음
    • 순환(단일 순환, 중첩 순환) 때문에 프로그램을 반복하더라도 메모리는 일부 영역만 참조
    • 대부분의 컴파일러를 메모리에 인접한 블록에 배열로 저장
      • 프로그램에 배열 원소에 순차적으로 접근하므로 지역적인 배열 접근 경향

-> 지역성은 블록이 크면 캐시의 히트율이 올라갈 수 있음을 의미하지만, 블록이 커지면 이에 따른 전송 부담과 캐시 데이터 교체 작업이 자주 일어나므로 블록 크기를 무작정 늘릴 수는 없음

보조기억장치

  • 주변장치 중 프로그램과 데이터를 저장하는 하드웨어
  • 2차 기억장치 또는 외부기억장치라고도 함
  • 자기디스크, 광디스크, 자기테이프 등이 있음

시스템 버스

  • 하드웨어를 물리적으로 연결하여 서로 데이터를 주고받을 수 있게 하는 통로
  • 컴퓨터 내부의 다양한 신호(데이터 입출력 신호, 프로세서 상태 신호, 인터럽트 요구와 허가 신호, 클록 신호 등)를 시스템 버스로 전달
  • 기능에 따라 데이터 버스, 주소 버스, 제어 버스로 구분

  • 데이터 버스
    • 컴퓨터 시스템에서 데이터(자료), 명령어 등의 정보를 교환하는 전송로
    • 프로세서에서 메모리나 입출력 장치로 데이터 출력 또는 반대로 데이터를 입력 받을 때 사용하는 양방향 버스
    • 데이터 버스 신호선의 수가 해당 프로세서의 워드 길이와 같으므로 프로세서 성능을 결정
  • 주소 버스
    • 하나의 시스템 장치에서 다른 장치로 주소 정보를 전송하기 위해 사용
    • 신호(주소)선의 수에 따라 최대 사용 가능한 메모리 용량이나 입출력장치 수를 결정
  • 제어 버스
    • 프로세서가 저장장치와 입출력장치에 데이터를 전송할 때, 현재 수행중인 작업 종류나 상태를 다른 장치에 알릴 때 이용하는 단방향 버스

주변장치

  • 프로세서와 메인 메모리를 제외한 나머지 하드웨어 구성 요소
  • 크게 입력장치, 출력장치, 저장장치로 구분
  • 입력장치 : 컴퓨터에서 처리할 데이터를 외부에서 입력하는 장치
  • 출력장치 : 입력장치와 반대로 컴퓨터에서 처리한 데이터를 외부로 보내는 장치
  • 저장장치 : 메인 메모리와 달리 영구적으로 데이터를 저장하는 장치. 데이터를 입력하여 저장하며, 저장한 데이터를 출력하는 공간이므로 입출력장치에 포함하기도 함

0개의 댓글