공부 흔적남기기

컴퓨터 구조와 성능 향상 본문

책 읽기/쉽게 배우는 운영체제

컴퓨터 구조와 성능 향상

65살까지 코딩 2024. 1. 14. 12:56
728x90
반응형

컴퓨터의 기본 구성

하드웨어의 구성

 

CPU와 메모리

컴퓨터는 컴퓨터의 중요한 작업의 대부분을 맡아서 처리하는 필수장치 CPU와 메인메모리 

그리고 그외의 부품인 주변장치로 나뉜다.

대표적인 주변장치로는 입력장치 출력장치 저장장치 등이 있다.

CPU는 명령어를 해석하고 실행하는 장치

메모리는 작업에 필요한 프로그램과 데이터를 저장하는 장소로 바이트 단위로 분할되어 있으며

주소로 구분한다.

 

저장장치

저장장치는 크게 휘발성메모리인 메인 메모리와 비휘발성메모리인 하드 디스크가 있다.

메인메모리는 전기신호로 데이터를 주고 받기 때문에 속도가 빠르며 하드디스크에서 일부 데이터를 가져와 
CPU에서 처리할수 있게 해준다. 메인 메모리는 RAM이라 불리며 Random Acess Memory이다.
RAM의 의미는 저장공간에서 데이터를 순차적으로 찾아서가져오는게 아니라
임의로 접근해서 한번에 가져오는 걸 의미한다.
하드디스크는 데이터의 저장에 중점을 두고 있고 디스크의 회전을 통해서 데이터를 가져오기 때문에 속도가 느리다.

하디드스크는 데이터를 가져올때 순차적으로 찾아서 가져온다.

 

메인보드

메인보드는 CPU와 메모리 등 다양한 부품을  연결하고 전원을 공급해주는 판이다.
각 장치를 연결하여 데이터가 지나다니는 통로를 버스라고 한다.

 

폰노이만 구조

폰노이만 구조는 오늘날 우리가 사용하는 컴퓨터의 가장 기본적인 구조이다.
폰노이만 이전에는 작업을 변경할때마다 회로를 새로구성해 전선을 새롭게 연결해야하는 하드와이어링 형태였다.
하지만 폰노이만은 CPU와 메인메모리를 이용하여 회로를 변경하지 않고 메모리에 올리는 프로그램과 데이터를 변경하여 프로그램을 실행시크는 방식을 구안했다.
한마디로 정리하면 폰노이만 구조의 컴퓨터에서 프로그램을 실행시키기 위해선 무조건적으로 메모리에 프로그램과 데이터를 올려야한다.

 

기초 용어 정리 

크기의 단위 

B : 1
KB : 1 * 2^10 천
MB: 1 * 2^20 백만
GB: 1 * 2^30 십억
TB: 1 * 2^40 조

PB: 1 * 2^50 천조

 

클록과 헤르츠

컴퓨터에서 일정 작업 단위를 만들어 내는 것을 클록이라고한다.
만들어낸 일정 작업 단위를 펄스 혹은 클록 틱이라 부른다.

1초에 몇번의 펄스가 진행되는지 횟수를 나타내는 것이 헤르츠이다

CPU의 기본적인 성능은 헤르츠로 판단한다.
예를 들어 5.0GHZ면 1초에 50십억번 펄스가 발생하는 것이다. 

 

시스템 버스와 CPU 버스 

시스템 버스는 메인보드의 동작 속도이다.
FSB라고 부르며 주변장치들의 속도를 결정한다.
예를들어 메인보드의 속도가 3200MHZ라면 메모리도 3200MHZ의 속도로 작동한다.

CPU 버스는 CPU 내부에 장치들이 데이터를 주고받는 속도로
CPU의 클록 속도와 같다. BSB라고 부르며 FSB보다 훨씬빠르다.

 

 

CPU와 메모리

CPU의 구성과 동작

CPU의 구성 요쇼

산술 논리 연산 장치: 데이터를 연산하는 장치

제어장치: CPU가 주변 장치들에게 작업을 지시하는 장치
레지스터: CPU가 작업할때 필요한 데이터를 보관하는 저장장치

 

레지스터 종류

DR: 메모리에서 가져온 데이터와 이 데이터를 ALU에 처리한 후 저장해 놓는 장소 

AR: 데이터 또는 명령어가 저장된 메모리의 주소를 저장해 놓는 장소

PC: 다음 실행할 명령어를 저장하는 장소

IR: 현재 진행중인 명령어를 저장하는 장소

MAR: 메모리에서 주소를 읽어오거나 저장하기 전에 거치는 메모리와 가시 레지스터를 잇는 장소

MBR: 메모리에서 값을 가져오거나 저장할때 거치는 임시 저장소 

 

CPU의 동작 방식

예를들어 int a=3; int b=1; int c = a+b;를 연산한다고 가정 
1.  IR에 LOAD 명령어를  저장하고 레지스터 MAR에 a의 주소를 올리고 이를 통해 MBR에 a의 값을 가져와 데이터 레지스터에 값을 저장 PC에는 LOAD가 들어가있음 
2. b도 a와 같은 방식으로 데이터 레지스터에 값을 저장 PC에는 ADD가 들어가있음 
3. IR은 ADD가 되고 a와 b를 더해서 데이터 레지스터에 저장 PC에는 LOAD 들어가있음
4. MBR에 a+b의 값을 올리고 MAR에 c의 주소를 올려 주소에 값을 LOAD함

 

버스의 종류

CPU와 메모리 주변장치 간 데이터 버스를 주고 받을때는 FSB 시스템 버스를 사용한다.

시스템 버스는 제어버스 주소 버스 데이터 버스로 나뉜다. 

제어버스는 다음에 어떤 작업을 할지 시히나느 제어 신호가 오간다.

주소버스는 메모리의 데이터를 읽거나 쓸때 어느 위치에서 작업할 것인지 알려주는 주소 값이 오간다. 

데이터버스는 데이터 값이 오가는 버스이다. 

 

CPU 비트의 의미

버스 대역폭은 CPU가 한번에 처리 할 수 있는 데이터의 크기와같다.

버스의 대역폭은 한 번에 전달 할 수 있는 데이터의 최대 크기이다.
버스의 대역폭, 레지스터의 크기, 메모리에 한 번에 저장할 수 있는 크기는 항상 같다. 

 

메모리의 종류와 부팅 

DRAM: 휘발성 메모리로 일정 시간이 지나면 값이 사라진다.

SRAM: 전원이 공급되는 동안에는 값이 사라지지 않는다( 캐시)
SDRAM: 휘발성 메모리로 펄스가 발생할때마다 데이터를 동기화 시킨다.

 

메모리 보호

운영체제도 소프트웨어이기 때문에 CPU를 점유하지 못할 때도 있다. 이 때 메모리 보호를 하지 못한다.
메모리 자체적으로 보호하기 위해 경계 주소값과 한계 주소값을 설정해 CPU가 작업할 때 이를 확인하고 
해당 범위를 넘기면 프로그램을 종료하는 인터럽트를 발생한다. 

 

부팅

컴퓨터를 켰을 때 운영체제를 메모리에 올리는 과정을 부팅이라고 한다.
컴퓨터의 롬에는 바이오스가 저장되어 있어 실행시키면 바이오스가 제일 먼저 실행되고 주변장치를 검사하게된다.

검사 후에 하드디스크의 마스터 부트 레코드에서 프로그램을 메모리로 가져와 실행한다.
이 작은 프로그램을 부트스트랩 코드라고한다.

 

컴퓨터 성능 향상 기술

 

버퍼 

버퍼는 컴퓨터의 장치간 속도차이를 극복하기 위한 기술이다.
상위 계층인 메모리가 하위 계층인 하드디스크에서 정보를 읽을때 
하드디스크에서 가져온 값을 하나 하나 메모리에서 한번씩 처리하지 않고 버퍼에 쌓아두었다가 
한번에 이를 처리합니다.
메모리가 하드디스크에 정보를 저장할 때에는 디스크에 저장할 데이터들을 메모리의 버퍼에 쌓았다가 
한번에 하드디스크가 저장할 수 있도록 합니다.

 

스풀

독립된 버퍼 공간을 가져 특정 입출력이 다른 입출력에 영향을 받지 않도록 하는 것이다 .

 

캐시

캐시는  필요한 데이터를 모아 한꺼번에 전달하는 버퍼의 일종으로 CPU가 앞으로 사용할 것으로 예상되는 데이터를 미리 가져다 놓는다. 

캐시 히트 : 미리 가져온 값을 상위 계층에서 사용함

캐시 미스: 미리 가져온 값을 상위 계층에서 사용하지 않음.

 

즉시쓰기: 캐시에 값이 만약 변경된다면 바로 캐시의 값도 변경함 -> 비용이 높음

지연쓰기: 캐시에 값이 변경되더라도 바로 바꾸지 않고 특정 주기나 이벤트에 의해 변경함 -> 데이터 반영이 되지 않아 문제 생길 수 있음 

메모리의 값이 변경되면 즉시 쓰기를 사용하여 메모리와 캐시 간의 일관성을 유지하고, 값을 연산하는 경우에는 조건부 지연 쓰기를 사용하여 쓰기 성능을 최적화합니다.


인터럽트

인터럽트 이전에는 CPU가 주기마다 입출력 장치를 직접제어해서 데이터를 읽거나 저장했다.

 

주변장치가 점점 많아지면서 입출력에대한 관리를 입출력 관리자에게 위임하고 입출력 이벤트를 알려주는 것이 인터럽트이다.

입출력 장치들은 각자의 IRQ를 가지며 인터럽트는 이를 이용해 IRQ에 입출력이 완료되었음을 알린다.
CPU는 입출력 IRQ 벡터를 가지고 있어 입출력에 대한 동시처리를 가능하게 한다. 
입출력 장치는 메모리에 직접 접근 DMA 권한을 얻었고 이에 때라 메모리도 운영체제영역/ CPU 작업영역/ 입출력 영역으로 나뉜다.
메모리가 입출려과 CPU 작업을 동시에 요청 받는다면 CPU가 주로 양보한다. 이를 사이클 훔치기 라고한다. 


멀티 프로세싱

최신 CPU 는 멀티코어와 병렬 처리 기법을 사용하여 CPU 성능을 높였다.

멀티 코어 시스템에서 CPU의 핵심이 되는 코어를 여러개 만들어 작업을 동시에 처리할 수 있게하고 
하나의 코어에서 여러 개의 스레드를 동시에 처리하는 하이퍼 스레딩 기법을 활용한다.

 

 

728x90
반응형

'책 읽기 > 쉽게 배우는 운영체제' 카테고리의 다른 글

프로세스 동기화  (0) 2024.01.26
CPU 스케줄링  (0) 2024.01.19
프로세스와 스레드에 대한 이해  (0) 2024.01.16
프로세스와 스레드  (0) 2024.01.14
운영체제 개요  (0) 2024.01.03