본문 바로가기
운영체제

[OS] 운영체제 - 컴퓨터 시스템

by Seong-Jun 2021. 12. 28.
728x90
반응형
SMALL

하드웨어 : 데이터를 처리하는 물리적인 기계장치

소프트웨어 : 어떤 작업을 지시하는 명령어로 작성한 프로그램

운영체제 : 컴퓨터 하드웨어를 관리하는 소프트웨어

 

그림으로 배우는 구조와 원리 운영체제 그림 1-1 컴퓨터 하드웨어의 구성

프로세서(Processor)

  • 컴퓨터 하드웨어에 부착한 모든 장치의 동작을 제어하고 명령을 실행합니다.
  • 중앙처리장치(CPU)라고도 합니다.
  • 연산장치와 제어장치, 레지스터로 구성됩니다. 이들은 내부 버스로 연결합니다.

 

레지스터의 종류

  • 용도에 따라

전용 레지스터범용 레지스터로 구분

  • 사용자가 정보를 변경할 수 있는지에 따라

사용자가 가시(user-visible) 레지스터사용자 불가시(user-invisible) 레지스터로 구분

  • 저장하는 정보의 종류에 따라

데이터 레지스터, 주소 레지스터, 상태 레지스터 등으로 세분화할 수 있습니다.

 

사용자 가시 레지스터

  • 사용자가 운영체제와 사용자 프로그램을 이용하여 정보를 변경할 수 있는 레지스터입니다.
  • 접근이 가능한 데이터와 주소, 일부 조건 코드를 보관합니다.
종류 설명
데이터 레지스터(DR) 함수 연산에 필요한 데이터를 저장.
주소 레지스터 주소나 유효 주소를 계산하는 데 필요한 주소의 일부분을 저장.
기준 주소 레지스터 : 프로그램을 실행할 때 사용하는 기준 주소 값을 저장. 페이지나 세그먼트처럼 블록화된 정보에 접근하는 데 사용.
인덱스 레지스터 : 유효 주소를 계산하는 데 사용하는 주소 정보를 저장.
스택 포인터 레지스터 : 메모리에 프로세서 스택을 구현하는 데 사용. 반환 주소, 프로세서 상태 정보, 서브루틴의 임시 변수를 저장.

 

사용자 불가시 레지스터

  • 사용자가 정보를 변경할 수 없는 레지스터입니다.
  • 프로세서의 상태와 제어를 관리합니다.
종류 설명
프로그램 카운터 (PC) 다음에 실행할 명령어의 주소를 보관.
명령어 레지스터 (IR) 현재 실행하는 명령어를 보관하는 레지스터.
누산기 (ACC) 데이터를 일시적으로 저장하는 레지스터.
메모리 주소 레지스터 (MAR) 프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터.
메모리 버퍼 레지스터 (MBR) 프로세서가 메모리에서 읽거나 메모리에 저장할 데이터 자체를 보관하는 버퍼 레지스터. 메모리 데이터 레지스터 (MDR)라고도 한다.

 

메모리 (Memory)

그림으로 배우는 구조와 원리 운영체제 그림 1-4 메모리 계층 구조

레지스터

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

 

메인 메모리

  • 프로세서 외부에 있으며, 프로세서에서 즉각적으로 수행할 프로그램과 데이터를 저장하거나 프로세서에서 처리한 결과를 메인 메모리에 저장합니다.
  • 입출력 장치도 메인 메모리에서 데이터를 받거나 저장합니다.
  • 주기억장치 또는 1차 기억장치라고도 합니다.
  • 저장 밀도가 높고 가격이 싼 DRAM(Dynamic RAM)을 많이 사용합니다.
  • 메모리 접근시간은 명령어 발생한 후 목표 주소를 검색하여 데이터 쓰기(읽기)를 시작할 때까지 걸린 시간입니다.
  • 메모리 사이클 시간은 두 번의 연속적인 메모리 동작 사이에 필요한 최소 지연시간입니다.
  • 메인 메모리는 프로세서와 보조기억장치 사이에 있으며, 여기서 발생하는 디스크 입출력 병목 현상을 해결하는 역할도 합니다.

그림으로 배우는 구조와 원리 운영체제 그림 1-8 메모리 접근 시간과 메모리 사이클 시간

캐시

프로세서 내부나 외부에 있으며, 처리속도가 빠른 프로세서와 상대적으로 느린 메인 메모리의 속도 차이를 보완하는 고속 버퍼입니다.

캐시의 성능

  • 작은 용량의 캐시에 프로세서가 이후 참조할 정보가 얼마나 들어 있느냐로 좌우됩니다.
  • 프로세서가 참조하려는 정보가 있을 때캐시 적중(cache hit)이라 하고, 반대로 없을 때캐시 실패(cache miss)라고 합니다.
  • 이때 블록 크기는 캐시의 성능으로 좌우되는데, 실제 프로그램을 실행할 때 참조한 메모리에 대한 공간적 지역성(국부성)과 시간적 지역성(국부성)이 있기 때문입니다.
  • 공간적 지역성(spatial locality)대부분의 프로그램이 참조한 주소와 인접한 주소의 내용을 다시 참조하는 특성이고, 시간적 지역성(temporal locality)한 번 참조한 주소를 곧 다시 참조하는 특성입니다.
  • 다음 이유로 발생합니다. 
    • 프로그램이 명령어를 순차적으로 실행하는 경향이 있어 명령어가 특정 지역 메모리에 인접해 있습니다.
    • 순환(단일 순환, 중첩 순환 등) 때문에 프로그램을 반복하더라도 메모리는 일부 영역만 참조합니다.
    • 대부분의 컴파일러를 메모리에 인접한 블록에 배열로 저장합니다. 따라서 프로그램이 배열 원소에 순차적으로 자주 접근하므로 지역적인 배열 접근 경향이 있습니다.

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

 

시스템 버스

시스템 버스는 하드웨어를 물리적으로 연결하여 서로 데이터를 주고받을 수 있게 하는 통로입니다.

종류 설명
데이터 버스 프로세서와 메인 메모리, 주변장치 사이에서 데이터를 전송. 데이터 버스를 구성하는 배선 수는 프로세서가 한 번에 전송할 수 있는 비트 수를 결정하는데, 이를 워드라고 함.
주소버스 프로세서가 시스템의 구성 요소를 식별하는 주소 정보를 전송. 주소 버스를 구성하는 배선 수는 프로세서와 접속할 수 있는 메인 메모리의 최대 용량을 결정.
제어버스 프로세서가 시스템의 구성 요소를 제어하는 데 사용. 제어 신호로 연산장치의 연산 종류와 메인 메모리의 읽거나 쓰기 동작을 결정.

 

728x90
반응형
LIST

댓글