키베이루's diary

[OS] 2. 컴퓨터의 구조와 성능 향상 본문

Computer Science/OS

[OS] 2. 컴퓨터의 구조와 성능 향상

키베이루 2023. 2. 23. 21:32

컴퓨터의 기본 구성

CPU, 메인메모리, 입출력장치, 저장장치로 구성

-> 각 구성요소가 버스로 연결된 구조를 폰 노이만 구조라고 한다.

CPU = 요리사 : 

  - 프로세스 관리 = 요리방법 결정

  - 메모리 관리 = 도마 정리

  - 저장장치 관리 = 보관 창고 정리

메모리 = 도마 : 핵심적인 작업공간, 메모리(도마)의 크기가 속도에 영향을 미친다.

저장장치 = 보관 창고

시스템 버스(FSB) : 메모리와 주변장치를 연결하는 버스 -> 메인보드의 동작속도를 의미한다

 

CPU 와 Memory

CPU - 산술논리 연산자(ALU), 제어장치(Control Unit), 레지스터(Register)

  - ALU : CPU에서 데이터를 연산하는 장치

  - Control Unit : CPU에서 작업을 지시하는 부분

  - Register : 작업에 필요한 데이터를 CPU 내부에 보관하는 곳

LOAD mem(100), register 2 // 메모리 100번지(D2) 내용을 R2로 이동
LOAD mem(120), register 3 // 메모리 120번지(D3) 내용을 R3로 이동
ADD register 5, register 2, register 3 // R2와 R3를 더한 후 R5에 임시저장
MOVE register5, mem(160) // R5 결과를 160번지(sum)에 저장

 

Register 종류

가시 레지스터 : 사용자 프로그램에 의해 변경가능

  - 데이터 레지스터(DR) : 메모리에서 가져온 데이터를 임시로 보관 -> 일반 레지스터, 범용 레지스터

  - 주소 레지스터(AR) : 명령어가 저장된 메모리의 주소는 주소 레지스터에 저장된다.

특수 레지스터 : 사용자가 임의로 변경 불가능

  - 프로그램 카운터(PC) : 다음에 실행할 명령어의 주소를 기억하고 있다가 제어장치에 알려줌

  - 명령어 레지스터(IR) : 현재 실행 중인 명령어 저장, 제어장치는 IR에있는 명령어를 해석 후 외부장치에 신호를 보낸다.

  - 메모리 주소 레지스터(MAR) : 메모리에서 데이터를 가져오거나 메모리를 데이터로 보낼 때 해당 주소 지정

  - 메모리 버퍼 레지스터(MBR) : 메모리에서 가져온 데이터나 메모리로 옮겨갈 데이터를 임시로 저장

  - 프로그램 상태 레지스터(PSR) : 연산 결과(음수,양수 등)을 저장한다.

 

버스의 종류

제어 버스 : 어떤 작업을 할지 지시하는 제어 신호의 버스, 메모리에서 데이터를 가져올 때는 READ 신호, 처리한 데이터를 메모리로 옮겨 놓을 때는 WRITE신호를 보낸다. -> CPU의 제어장치와 연결, 양방향

주소 버스 : 메모리의 데이터를 읽거나 쓸 때 어느 위치에서 작업할 것인지를 알려주는 위치 정보가 오고 간다. -> MAR과 연결, 단방향

데이터 버스 : 데이터를 날라서 목적지 까지 이동하는 버스, MBR과 연결, 양방향

 

메모리의 종류

RAM : 읽거나 쓸 수 있는 메모리 -> 무작위로 데이터를 읽어도 저장된 위치와 상관없이 같은속도로 데이터를 읽는다.

  - 휘발성 : 전력이 끊기면 데이터가 사라짐 ex) SRAM(전력이 공급되는 동안 데이터 보관), DRAM(시간이 지나면 데이터        사라짐), SDRAM(DDR4, DDR3) -> 메인 메모리

  - 비휘발성 메모리 : 전력이 없어도 데이터를 보관하는 저장장치 ex) SSD, 디지털 카메라, USB 드라이버

ROM : 읽기만 가능한 메모리 -> 전력이 끊겨도 데이터를 보관할 수 있다는 장점, 한 번 저장하면 바꿀 수 없다. ex) PROM, EPROM

 

프로그래밍 언어

어셈블리어 : 기계어를 사람들의 이해할 수 있는 문자 형태로 바꾼 것 -> 저급언어

고급언어 : 일반인이 이해 할수 있는 단어를 사용하여 만든 언어 -> 고급언어, ex) C, C++, JAVA

인터프리터 : 소스코드를 기계어로 변역하는 또 하나의 방법, ex) 자바 스크립트

 

컴퓨터 성능 향상 기술

버퍼 : 모아서 한꺼번에 전송 ex) 동영상 스트리밍, cin

스풀 : CPU와 I/O 장치가 독립적으로 동작하도록 고안된 소프트웨어적인 버퍼, 워드를 인쇄할 때 인쇄할 내용을 하드디스크의 스풀러 공간에 저장하고 워드 프로세서는 다른 작업을 할 수 있다.

캐시 : 메모리와 CPU간의 속도 차이를 완화하기 위해 메모리의 데이터를 미리 가져와 저장해 두는 임시 장소(버퍼의 일종)

  - 캐시 히트 : 캐시에서 원하는 데이터를 찾았을 때

  - 캐시 미스 : 캐시에 없으면 메모리로 가서 데이터를 찾는다.

캐시에있는 데이터 변경 : 캐시에 있는 데이터가 변경되면 메모리에 있는 원래 데이터를 변경 해야 한다.

  - 즉시 쓰기 : 캐시에 있는 데이터가 변경되면 이를 즉시 메모리에 반영하는 방식 -> 빈번한 데이터 전송으로 성능이 좋지 않다 but 메모리의 최신 값이 항상 유지되기 때문에 급작스러운 정전에도 데이터를 잃어버리지 않는다.

  - 지연 쓰기 : 캐시의 데이터가 변경되면 내용을 모아서 주기적으로 반영하는 카피백 방식 -> 시스템 성능을 향상 할 수 있으나, 메모리와 캐시 사이의 불일치 발생 가능

L1 캐시

  - 명령어 캐시 : 명령어 레지스터와 연결되어 있는 캐시

  - 데이터 캐시 : 데이터 레지스터와 연결되어 있는 캐시

L2 캐시

  - 일반 캐시 : 메모리와 연결

 

인터럽트

CPU가 모든 입출력에 관여하는 것이 아니라 보조를 두어 데이터의 입출력이 이루어지는 동안 CPU가 다른 작업을 할 수 있도록 한다.

인터럽트의 동작방식

1. CPU가 입출력 관리자에게 명령을 보낸다.

2. 입출력 관리자는 명령받은 데이터를 메모리에 가져다 놓거나 메모리에 있는 데이터를 저장장치로 옮긴다.

3. 데이터 전송이 완료되면 입출력 관리자는 CPU에 완료 신호를 보낸다.

=> 입출력 관리자가 CPU에 보내는 완료 신호를 인터럽트라고 한다.

직접 메모리 접근(DMA) : CPU의 허락없이 메모리에 접근할 수 있는 권한

메모리 맵 입출력(MMIO) : 메모리 공간과 직접 메모리 접근을 통해 들어오고 나가는 공간을 분리 하는 것.

사이클 훔치기 : CPU와 장치 관리자가 동시에 메모리에 접근했을 때 CPU가 메모리 사용 권한을 장치 관리자에게 양보하는 것

 

멀티 프로세싱

컴퓨터의 성능을 높이기 위해 프로세서를 여러개 설치하여 사용하는 시스템을 멀티 프로세서 시스템이라고 한다.

멀티코어 시스템 : 하나의 칩에 핵심이 되는 코어 여러개를 만들어 작업을 동시에 처리

스레드 : CPU가 처리할 수 있는 작업의 단위

멀티스레드 : 여러개의 스레드를 동시에 처리하는 방법

 

 

'Computer Science > OS' 카테고리의 다른 글

[OS] 1. 운영체제와 컴퓨터  (0) 2023.02.22
[OS] Computer System Overview  (0) 2022.12.21
[OS] 운영체제란?  (1) 2022.12.20
Comments