ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴퓨터 시스템의 소개 Chapter 01
    수업 완료/운영체제 (학교 수업) 2023. 3. 30. 17:35
    728x90
    반응형

     

    01. 컴퓨터 하드웨어의 구성

     

    컴퓨터 시스템은 기계장치의 하드웨어와 어떤 작업을 지시하는 명령어로 작성한 프로그램인 소프트웨어로 구성된다. 

    운영체제는 하드웨어를 관리하는 소프트웨어이다.

     

    그러므로 운영체제를 이해하려면 먼저 하드웨어부터 알아야 한다. 

     

     

    컴퓨터시스템 = 하드웨어 + 소프트웨어 

    컴퓨터 하드웨어는 크게 프로세서, 메모리, 주변장치로 구성되고, 이들은 시스템 버스로 연결된다.

     

    1. 프로세서

    프로세서는 컴퓨터 하드웨어에 부착한 모든장치의 동작을제어하고 명령을 실행한다.

    중앙처리장치(CPU) 라고도 한다.

     

    프로세서는 연산장치, 제어장치, 레지스터로 구성되고 이들은 내부 버스로 연결한다.

    프로세서의 종류가 다양한것처럼 레지스터(프로세서 내부에 위치한 고속의 메모리)의 종류와 크기도 다양한다. 

    용도에 따라 전용 레지스터범용레지스터로구분되며

    사용자가 정보를 변경할 수 있는지에 따라 사용자 가시 레지스터와 사용자 불가시 레지스터로 구분 할 수있다. 

    정보의 종류에 따라 데이터 레지스터, 주소 레지스터, 상태 레지스터 등으로 세분화 할 수 있다. 

     

    사용자 가시 레지스터사용자가 운영체제와 사용자 프로그램을 이용하여 정보를 변경할 수 있는 레지스터이다. 

    그래서 접근이 가능한 데이터와 주소 일부 조건 코드를 보관한다.

     

    사용자 가시 레지스터

    종류 설명
    데이터 레지스터 (DR) 함수 연산에 필요한 데이터를 저장한다  산술연산이나 논리 연산에 사용한다.
    주소 레지스터 (AR) 주소나 유효주소를 계산하는데 필요한 주소의 일부분을 저장한다.
    기준 주소 레지스터 기프로그램 실행할 때 사용하는 기준주소값을 지정
    인덱스 레지스터 유효주소를 계산하는 데 사용하는 주소정보 저장
    스텍 포인터 레지스터 메모리 프로세서 스텍을 구현하는 데 사용한다.

     

    사용자 불가시 레지스터는 사용자가 정보를 변경할 수 없는 레지스터이이다. 프로세서의 상태와 제어를 관리한다.

     

    사용자 불가시 레지스터

    종류 설명
    프로그램 카운터 (PC) 다음에 실행할 명령어의 주소를 보관하는레지스터
    명령어 레지스터  (IR) 현재 실행하는 명령어를 보관하는 레지스터
    누산기 (ACC) 데이터를 일시적으로 저장 (결과값 저장)
    메모리 주소 레지스터 (MAR) 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터
    메모리 버퍼 레지스터 (MBR) 메모리에 저장할 데이터 자체를 보관하는ㅂ 버퍼 레지스터

     

    2. 메모리

    메모리는 컴퓨터의 성능과 밀접한데. 속도가 빠른 메모리의 가격은 보통 비싸서 메모리 계층구조를 구성해 속도, 용량, 접근시간, 비용을 상호보완한다.

    메모리 계층 구조는 아래에는 대용량의 자기디스크, 이동이 편리한 광디스크, 파일을 저장하는 속도가 느린자기테이프가 있다. 

    그리고 메인 메모리 위에는 메인 메모리와 프로세서의 속도차이를 보완하는 캐시가 있다.

    최상위에는프로세서가 사용한 데이터를 보관하는 가장빠른레지스터가 있다. 

     

    2.1 레지스터

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

    2.2 메인 메모리

    프로세서 외부에 있으며, 프로세서에서 즉각적으로 수행할 프로그램과 데이터를 저장하거나 프로세서에서 처리한 결과를 메인 메모리에 저장한다.

     

    주기억장치, 또는 1차 기억장치라고 하며 저장밀도가 높고 가격이 싼 DRAM을 많이 사용한다.

     

     

    프로세서 <-------------->메인메모리<----------------> 주변장치

    메인 메모리의 역할 1

     

     

    메인 메모리는 다수의 셀로 구성되며 각 셀은 비트로 구성된다. 셀이 K비트이면 셀에 2의 k 승의 값을 저장할 수 있다. 

    메인 메모리에 데이터를 저장할 때는 셀 한개나 여러 개에 나눠서 저장한다.

    셀은 주소로 참조하는데 n비트라면 주소 범위는 0~2의 n승 -1이다.

     

    이처럼 컴퓨터에 주어진 주소를 물리적 주소라 한다.

    프로그래머는 물리적 주소 대신 수식이나 변수를 사용하며 컴파일러가 프로그램을 기계 명령어로 변환할 때 변수와 명령어에 주소를 할당하는데 이를 논리적 주소라고 한다.

    컴파일로 논리적 주소를 물리적 주소로 변환하는데 이 과정을 매핑 또는 메모리 맵, 메모리 맵핑 이라고한다.

     

    메모리 매핑

     

     

    메모리 속도는 메모리 접근 시간과 메모리 사이클 시간으로 표현 할 수 있다.

    보통 사이클 시간이 접근시간보다 약간 길며, 메모리의 세부 구현방법에 따라 다르다.

     

    메인메모리는 프로세서와 보조기억장치 사이에 있으며, 여기서 발생하는 디스크 입출력 병목 현상을해결하는 역할도 한다.

    2.3 캐시

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

    메인메모리에서 데이터를 블록단위로 가져와 프로세서에 워드 단위로 전달하여 속도를 높인다.

    데이터가 이동하는 통로를 확대하여 프로세서와 메모리 속도차이를 줄인다. 

     

    캐시는 주소 영역을 한 번 읽어 들일 수 있는 크기로 나눈 후 각 블록에 번호를 부여하여 이 번호를 태그로 저장한다.

    프로세서는 메인 메모리에 접근하기 전에 캐시에 해당 주소의 자료가 있는지 먼저 확인한다.

    캐시의 성능은 작은 용량의 캐시에 프로세서가 이후 참조할 정보가 얼마나 들어있느냐로 좌우된다.

    정모가 많을경우 성능이 더 필요하다.

     

    캐시 적중 : 프로세서가 참조하려는 정보가 있을때

    캐시 실패 : 프로세서가 참조하려는 정보가 없을때

     

    공간적 지역성 : 대부분의 프로그램이 참조한 주소와 인접한 주소의 내용을 다시 참조하는 특성

    시간적 지역성 : 한번 참조한 주소를 곧 다시 참조하는 특성

     

    블록이 커지면 이에 따른 전송 부담과 캐시데이터 교체작업이 자주 일어나므로 블럭크기를 무작정 늘릴 수 는 없다.

     

    2.4 보조기억장치

    주변장치 중 프로그램과 데이터를 저장하는 하드웨어로, 2차 기억장치 또는 외부기억장치라고 한다. 

    자기디스크, 광디스크, 자기테이프 등이 있다.

     

    3. 시스템 버스

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

    컴퓨터 내부의 다양한 신호를 시스템 버스로 전달

    기능에 따라 데이터 버스, 주소 버스, 제어 버스로 구분

     

    시스템 버스의 종류

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

    4. 주변장치

    주변장치는 프로세서와 메인 메모리를 제외한 나머지 하드웨어 구성요소

     

    입력장치 : 외부에서 입력하는 장치

    출력장치 : 입력장치와 반대로 출력하는 장치

    저장장치 : 영구적으로 데이터를 저장하는 장지 (1차 기억장치를 뺀 저장장치 이다)

     

    02. 컴퓨터 시스템의 동작

    컴퓨터 작업으로 작업을 처리할 때는 다음 순서에 따라 동작하며 제어장치가 이 동작을 제어

     

    1. 입력장치로 정보를 입력받아 메모리에 저장

    2. 메모리에 저장한 정보를 프로그램 제어에 따라 인출하여 연산장치에서 처리

    3. 처리한 정보를 출력장치에 표시하거나 보조기억장치에 저장

     

    입력장치로 컴퓨터에 유입되는 정보는 명령어와 데이터로 분류

     

    명령어 : 실행할 산술, 논리 연산의 동작을 명시하는 문장

    프로그램 : 어떠한 작업을 수행하는 명령어의 집합 

     

    1. 명령어의 구조

    명령어는 실행할 연산인 연산부호와 명령어가 처리할 데이터, 데이터를 저장할 레지스터나 메모리 주소인 피연산자로 구성

    프로세서에 따라 고정 길이나 가변 길이를 구성

    연산 부호는 특별한 경우가 아니면 한 개 이나 피연산자는 여러개 일 수 있음

     

    연산 부호 (OP) : 프로세서가 실행할 동작인 연산을 지정 산술연산(+,-,*,/), 논리연산(AND, OR, NOT),시프트, 보수 등 연산을 정의한다. 연산 부호가 n 비트이면 최대 2의 n승개의 연산이 가능 

     

    피연산자 : 연산할 데이터 정보를 저장한다. 데이터는 레지스터나 메모리, 가상 기억장치, 입출력장치 등에 위치할 수 있다. 보통 데이터 자체보다는 데이터의 위치를 저장한다.

     

    명령어는 실행 전에 메인 메모리에 저장하며 한번에 하나씩프로세서에 순차적으로 전송하여 해석 실행된다.

     

     

    명령어에 피연산자의 위치를 명시하는 방법(직접 주소 또는 간접 주소)을 나타내는 모드비트를 추가하거나. 다음 명령어의 위치를 나타내는 주소를 추가할 수도 있다. 

    직접주소 : 피연산자에 데이터가 있는 레지스터나 메모리 주소를 지정한것

    간접주소 : 데이터가 있는 레지스터나 메모리 주소 정보를 지정한 것

     

    모드가 0이면 직접주소, 1이면 간접주소 이다. 

     

     

    2. 명령어의 실행

    명령어는 다음 과정을 거쳐 실행한다 

    프로세서의 제어장치가 명령어를 실행 

    명령어를 한 번에 하나씩 인출하고 해석하여 연산.

    명령어를 인출하여 연산 완료한 시점까지 인출 - 해석 - 실행 사이클 또는 인출 실행 사이클이라고 명명 

     

     

    2.1 인출 사이클

    인출사이클은 명령어 실행 사이클의 첫 번째 단계이다. 

    인출사이클은 메모리에서 명령어를 읽어 명령어 레지스터에 저장 하고 다음 명령어를 실행하려고 프로그램 카운터를 증가시킨다. 인출 사이클에 소여되는 시간을 명령어 인출 시간이라고 한다. 

     

    2.2 실행 사이클

    실행사이클에서는 인출한 명령어를 해독하고 그 결과에 따라 제어 신호를 발생시켜 명령어를 실행한다. 인단계에서 소비되는 시간을 실행시간이라고 한다. 

     

     

    2.3 간접사이클

    간접 주소 지정 방법을 사용하는 실행 사이클은 명령어를 수행하기 전에 실제 데이터가 저장된 주기억장치의 주소인 유효 주소를 한번 더 읽어온다. 

     

     

    2.4 인터럽트 사이클

    인터럽트는 프로세서가 프로그램을 수행하는 동안 컴퓨터 시스템 내부나 외부에 발생하는 예기치 못한 사건을 의미한다. 

    프로세서는 실행 사이클을 완료한 후 인터럽트 요구가 있는지 검사한다. 

     

    3. 인터럽트 명령어 

    인터럽트는 현재 실행중인 프로그램을 중단하고 다른 프로그램의 실행을 요구하는 명령어

     

    인터럽트는 컴퓨터에 설치된 입출력장치나 프로그램 등에서 프로세서로 보내는 하드웨어 신호

    인터럽트를 받은 프로그램은 실행을 중단하고 다른 프로그램을 실행한다.

     

    인터럽트를 이용하면 중간 다른 프로그램이나 명령어를 수행할 수 있다. 

    예상치 못한 입력, 갑작스런 정전, 컴퓨터 시스템에서 긴급 요청, 잘못된 명령어 수행, 입출력 작업 완료와 같은 상황을 시스템이 적절히 처리하는데 필요한다. 

     

    인터럽트는 프로그램의 정상실행을 일시 중단했다 다시 재개하는 과정이지만. 사용자가 별도로 인터럽트 조차 할 필요 없고 프로세서와 운영체제가 처리한다. 

     

    컴퓨터는 인터럽트를 외부장치의 동작과 자신의 동작을 조정하는 수단으로 사용

     

    728x90
    반응형
Designed by Tistory.