CS/운영체제

[OS]컴퓨터의 요소: CPU(CU, ALU, Register), DMA Controller, Memory, Timer, Device Controller

개발의 피 2023. 12. 15. 01:47

컴퓨터 : CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 구성

https://www.totalphase.com/blog/2023/05/what-is-register-in-cpu-how-does-it-work/

 

1. CPU(중앙 처리 장치, Central Processing Unit) : 산술논리연산장치, 제어장치, 레지스터로 구성되어 있는 컴퓨터 장치 

즉, 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행/처리하는 가장 핵심적인 컴퓨터의 제어 장치(기억, 해석, 연산, 제어)

인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해 실행하는 일꾼

운영체제의 커널(관리자)이 프로그램을 메모리에 올려 프로세스로 만들면, CPU(일꾼)가 처리 

 

https://www.righto.com/2017/02/reverse-engineering-surprisingly.html

 

1) 제어장치(CU, Control Unit) : 프로세스 조작을 지시하는 CPU의 한 부품

- 입출력장치 간 통신을 제어

- 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정

 

2023 12월 CPU 성능을 검색해보고, 제일 성능이 좋은 두 CPU 가격을 검색해보자... ㅇ0ㅇ 

https://nomadlap.com/desktopcpu/

 

데스크탑 CPU 성능 순위 (2023년 12월) - 노마드랩

2023년 12월 데스크탑 CPU 성능 순위를 정리했습니다. 오늘은 2023년 12월 기준 현존하는 모든 데스크탑 CPU 성능 순위에 대해 알아보도록 하겠습니다.

nomadlap.com

 

2) 레지스터(register) : CPU 안에 있는 매우 빠른 임시기억장치 

- CPU와 직접 연결 => 연산 속도가 메모리보다 수십~수백 배 빠름

- CPU는 자체적으로 데이터를 저장할 방법 x -> 레지스터를 거쳐 데이터를 전달

 

3) 산술논리연산장치(ALU, Arithmetic Logic Unit) : 두 숫자의 산술 연산, 논리 연산을 계산하는 디지털 회로

- 산술 연산 : 덧셈, 뺄셈

- 논리 연산 : 배타적 논리합, 논리곱 

 

* CPU의 연산 처리 : CPU에서 제어장치, 레지스터, 산술논리연산장치를 통해 연산하는 과정

① 제어장치(CU)가 메모리에 계산할 값을 로드 + 레지스터로 로드 

② 제어장치가 레지스터에 있는 값을 계산하라고 산술논리연산장치(ALU)에 명령

③ 제어장치가 계산된 값을 다시 '레지스터에서 메모리로' 계산한 값을 저장 

 

4) 인터럽트 : 어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것 

- 인터럽트 발생 -> 인터럽트 핸들러 함수가 모여 있는 인터럽트 벡터로 가서, 인터럽트 핸들러 함수가 실행됨 

- 인터럽트 핸들러 함수 : 인터럽트가 발생했을 때, 이를 핸들링하기 위한 함수. 커널 내부의 IRQ를 통해 호출되며 request_irq()를 통해 인터럽트 핸들러 함수를 등록할 수 있음. 

- 인터럽트 간에는 우선순위가 있고, 우선순위에 따라 실행됨. 

 

https://toshiba.semicon-storage.com/ap-en/semiconductor/knowledge/e-learning/micro-intro/chapter4/interrupt-processing-types-interrupts.html

- 인터럽트의 종류 : 하드웨어 인터럽트, 소프트웨어 인터럽트

하드웨어 인터럽트 : IO 디바이스(키보드, 마우스)에서 발생하는 인터럽트

인터럽트 라인이 설계된 이후, 순차적인 인터럽트 실행을 중지하고 운영체제에 시스템콜을 요청

-> 원하는 디바이스로 향해 디바이스에 있는 작은 로컬 버퍼에 접근하여 일을 수행 

② 소프트웨어 인터럽트(= 트랩, trap)  : 프로세스 오류 등으로 프로세스가 시스템콜을 호출할 때 발동

 

 

2. DMA 컨트롤러(Direct Memory Access) : I/O 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치 

- CPU에만 너무 많은 인터럽트 요청이 들어오기 때문에, CPU 부하를 막아주며 CPU의 일을 부담하는 보조 일꾼

- 하나의 작업을 CPU와 DMA 컨트롤러가 동시에 하는 것을 방지 

https://open4tech.com/direct-memory-access-dma-in-embedded-systems/

+) peripheral unit : 주변장치 

 

3. 메모리(memory) : 전자회로에서 데이터, 상태, 명령어 등을 기록하는 장치  

- 보통 RAM(Random Access Memory)을 메모리라고 함 

- CPU : 계산 담당, 일꾼 / 메모리 : 기억 담당 => 작업장

- 작업장이 클수록 많은 일을 할 수 있음 = 메모리가 크면 클수록 많은 일을 동시에 할 수 있음 

DDR : Double Data Rate(이중 데이터 속도) 클록 신호의 상하 지점 모두에서 사이클당 2회에 걸쳐 데이터를 프로세서에 전송한다..(이전 : SDRM)

가장 최신 출시 : DDR5

 

4. 타이머(timer) : 몇 초 안에는 작업이 끝나야 한다는 것을 정하고 특정 프로그램에 시간 제한을 다는 역할

시간이 많이 걸리는 프로그램이 작동할 때 제한을 걸기 위해 존재

 

5. 디바이스 컨트롤러(device controller) : 컴퓨터와 연결되어 있는 IO 디바이스들의 작은 CPU

'CS > 운영체제' 카테고리의 다른 글

[OS]CPU 스케줄링 알고리즘  (1) 2023.12.23
[OS]메모리 관리  (0) 2023.12.20
[OS]운영체제의 역할, 구조  (0) 2023.12.14