공부 자료/운영체제

운영체제 CH1. 컴퓨터 시스템의 소개

뚜루뚜루세니 2021. 4. 13. 21:26
728x90

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

컴퓨터 시스템은 데이터를 처리하는 물리적인 기계장치인 하드웨어와 어떤 작업을 지시하는 명령어로 작성한 소프트웨어로 구성된다. 운영체제는 하드웨어를 관리하는 소프트웨어이다. 하드웨어는 프로세서, 주변장치, 메모리로 구성되어 있고, 이들은 시스템 버스로 연결된다.

 

1. 프로세서

프로세서란 모든 하드웨어에 부착된 장치들의 작업을 제어하고 명령을 실행한다. 중앙처리 장치(CPU)라고도 한다.

프로세서는 제어장치, 연산장치 레지스터로 구성되고, 이들은 내부 버스에 의해 연결된다. 레지스터의 종류도 다양한데 여러 관점을 통해 구분할 수 있다.

용도에 따라 관용 레지스터, 범용 레지스터로 구분할 수 있다. 사용자의 정보 변경 여부에 따라서 구분 가능한데 사용자가 정보를 변경할 수 있으면 사용자 가시 레지스터이고, 사용자가 변경 불가능하면 사용자 불가시 레지스터라고 한다. 

 

사용자 가시 레지스터는 사용자가 운영체제와 사용자 프로그램을 통해 정보를 변경할 수 있는데, 따라서 접근이 가능한 데이터, 주소, 일부 조건 코드를 보관하게 된다. 그 종류에는 데이터 레지스터, 주소 레지스터가 있다. 데이터 레지스터는 함수의 연산에 필요한 데이터를 저장한다. 주소 레지스터는 일부 주소를 보관하는데 기존 주소 레지스터, 인덱스 레지스터, 스택 포인터 레지스터로 또 구분할 수 있다.

 

사용자 불가시 레지스터는 사용자가 변경할 수 없는 레지스터를 의미한다. 프로세서의 상태와 제어를 관리하게 된다. 그 예로는 다음 수행할 명령어의 주소를 보관하는 프로그램 카운터 (PC), 현재 수행중인 명령어를 보관하는 명령어 레지스터(IR), 일시적으로 데이터를 저장하는 누산기(ACC), 프로세서가 참조하려는 데이터의 주소를 명시하여 데이터에 접근하는 버퍼 레지스터인 메모리 주소 레지스터 (MAR), 마지막으로 프로세서가 메모리에서 읽거나 메모리에 저장할 데이터 자체를 보관하는 버퍼 레지스터인 메모리 버퍼 레지스터 (MBR)이 있다.

 

2. 메모리

메모리는 계층 구조를 가지고 있다. 레지스터 --> 캐시 --> 메인메모리 --> 보조 기억 장치 순으로 가격이 저렴하고 저장 용량이 크고 속도가 느린 메모리라고 할 수 있다. 

 

1) 레지스터: 프로세서 내부에 위치하고 프로세서가 사용할 데이터를 보관하는 가장 빠른 메모리이다. 

 

2) 캐시 : 프로세서 내, 외부에 위치하고 처리 속도가 빠른 레지스터와 속도가 상대적으로 느린 메인 메모리 사이에서의 속도 차이를 보완하기 위한 고속 버퍼이다. 메인 메모리에서 데이터를 블록 단위로 가져와서 프로세서에 워드 단위로 전달하여 속도 차이를 줄일 수 있고, 데이터가 이동하는 통로(대역폭)를 확장하여 프로세서와 메모리의 속도 차이를 줄이게 된다.

캐시의 성능은 작은 용량의 캐시에 얼마나 프로세서가 이후에 참조할 데이터가 있는지에 따라 좌우된다.

프로세서가 참조하려는 데이터가 있을 때, 캐시 적중(캐시 히트), 데이터가 없을 때 캐시 실패(캐시 미스)라고 한다.

블록의 크기는 캐시의 성능에 의해 좌우되는데, 이는 실제 프로그램을 실행할 때 참조한 메모리에 대한 공간적 지역성, 시간적 지역성 때문이다.

 

공간적 지역성 : 프로그램이 참조한 데이터 주소에 인접한 주소의 내용을 다시 참조하려는 특성

시간적 지역성 : 프로그램이 참조한 데이터의 주소를 곧 다시 참조하는 특성

위의 지역성이 발생하는 원인은 크게 3가지가 있다.

- 프로그램이 명령어를 순차적으로 실행하는 경향이 있어서 명령어들은 특정 지역 메모리에 인접해있다.

- 순환 때문에 프로그램이 반복되어도 메모리는 일부 영역만 참조한다.

- 컴파일러를 메모리에 인접한 블록에 배열로 저장한다. 프로그램이 배열 원소에 순차적으로 자주 접근하므로 지역적인 배열 접근 경향이 있다.

 

지역성은 블록의 크기가 커질수록 캐시의 히트율이 올라감을 의미하지만 , 블록의 크기가 커질 수록 전송 부담과 캐시 데이터 교체 작업이 빈번해져서 무작정 늘릴 수는 없다. 

 

3) 메인 메모리 : 프로세서 외부에 위치하고, 프로세서에서 즉각적으로 수행할 프로그램과 데이터를 보관하거나, 프로세서에서 처리한 결과를 저장한다. 입출력 장치도 메인 메모리에서 데이터를 주고받고. 저장한다. 저장 밀도가 높고 가격이 저렴한 DRAM을 주로 사용하며, 주기억장치, 1차 저장 장치라고 불린다.

메인 메모리는 다수의 셀로 구성되고, 셀은 다수의 비트로 구성된다. 셀이 K비트라고 하면 셀에는 2^K 값을 저장할 수 있다. 셀은 또한 주소를 참조하게 되는데 주소의 범위는 n비트라고 했을 때 0~2^n-1 으로 구성된다. 이 처럼 컴퓨터에 주어진 주소를 물리적 주소라고 한다. 프로그래머는 물리적 주소를 사용하는 대신 수식과 변수를 사용한다. 컴파일러가 기계어로 명령어를 변환할 때 변수에 주소를 할당하게 되는 이 주소를 논리적 주소라고 한다. 컴파일로 논리적 주소에서 물리적 주소로 변환하는 것을 사상(매핑)이라고도 한다.

메모리 속도는 메모리 접근 시간과 메모리 사이클 시간으로 표현할 수 있다. 메모리 접근 시간은 명령이 발생한 부터 목표 주소를 검색하여 데이터 쓰기(읽기)를 시작할 때 걸린 시간을 의미하고, 메모리 사이클 시간은 두 번의 연속적인 메모리 동작을 하는데 필요한 최소 지연 시간을 의미한다. 

메인 메모리는 프로세서와 보조 기억 장치 사이에 존재하고, 따라서 여기에서 발생하는 디스크 병목 현상을 해결하는 역할을 한다. 프로세서와 메인 메모리 사이의 속도 차이로 인한 메인 메모리의 부담을 줄이기 위하여 캐시를 구현하기 시작했다. 

 

4) 보조 기억 장치

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

 

3. 시스템 버스

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

기능에 따라 제어버스, 데이터 버스, 주소 버스로 구분할 수 있다.

1) 데이터 버스: 프로세서, 주변장치, 메인 메모리 사이에서 데이터를 전송한다. 데이터 버스를 구성하는 배선은 프로세서가 한 번에 전송할 수 있는 비트 수를 결정하는데 이를 워드라고 한다.

 

2) 주소 버스: 프로세서가 시스템 구성요소를 식별하는 주소 정보를 전송한다. 주소 버스를 구성하는 배선은 프로세서와 접속할 수 있는 메인 메모리의 최대 용량을 결정한다.

 

3) 제어 버스: 프로세서가 시스템 구성요소를 제어하는 데 사용한다. 제어 신호로 연산 장치의 연산 종류와 메인 메모리의 읽기, 쓰기 동작을 결정한다, 

 

4. 주변 장치

프로세서와 메인 메모리를 제외한 모든 하드웨어 구성 요소이다. 단순히 입출력 장치라고도 한다. 크게 입력 장치, 출력장치, 저장 장치로 구분한다.

입력장치: 컴퓨터에서 처리할 데이터를 외부에서 입력

출력장치: 입력장치와 반대로 컴퓨터에서 처리한 데이터를 외부로 보내는 것

저장장치: 메인 메모리와 달리 거의 영구적으로 데이터를 저장. 데이터를 입력하여 저장하고, 저장한 데이터를 출력하는 공간이므로 입출력 장치에 포함되기도 한다.

 

728x90