컴퓨터의 요소
하드웨어 구성
- 크게 연산을 담당하는 CPU, 기억을 담당하는 메모리, 입출력 장치로 나눌 수 있음
- 시스템 버스는 각 요소들과 연결되어 있고 데이터와 명령 제어 신호를 각 장치로 실어 나름
데이터 접근 방식
- 순차접근
- 데이터를 순차적으로 접근하는 방식
- 데이터의 위치에 따라 접근 시간이 달라짐
- 임의접근
- 어디든 접근할 수 있다고 하여 임의접근, 랜덤접근이라 불림
- 기억 장소에 관계없이 동일한 접근 시간이 소요됨
- 임의접근이 잘 되도록 만든 장치가 바로 RAM
중앙처리장치(CPU, Central Processing Unit)
CPU의 역할
- 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행하는 일꾼
- 운영체제의 커널이 프로그램을 메모리에 올려 프로세스로 만들면 일꾼인 CPU가 이를 처리함
- 주기억장치에서 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어함
CPU의 구성
- CPU는 산술논리연산장치, 제어장치, 레지스터로 구성됨
- 산술논리연산장치(ALU): 비교와 연산을 담당
- 제어 장치: 명령어의 해석과 실행을 담당
- 레지스터: 속도가 빠른 데이터 기억장소
제어 장치(CU, Control Unit)
- 명령어를 순서대로 실행할 수 있도록 제어하는 장치
- 컴퓨터를 구성하는 모든 장치들은 제어장치의 제어를 받음
- 명령어 레지스터에서 프로그램 명렁어를 꺼내 해독하고, 그 결과에 따라 필요한 제어 신호를 연산장치, 기억장치, 입출력장치로 보냄
- 또한 장치가 보낸 신호를 받아 다음에 수행할 동작을 결정함
레지스터
- CPU 안에 있는 고속 임시 기억장치
- CPU와 직접 연결되어 있어 연산 속도가 메모리보다 수십~수백 배 빠름
- CPU는 자체적으로 데이터를 저장할 방법이 없기 때문에 레지스터를 거쳐 데이터를 전달함
- 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장
- 기능에 따라 다양한 종류로 나눠짐
산술논리연산장치(ALU, Arithmetic Logic Unit)
- 제어장치의 명령에 따라 실제로 연산을 수행하는 장치
- 덧셈, 뺄셈 같은 두 숫자의 산술 연산과 배타적 논리합, 논리곱 같은 논리 연산을 계산
- 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보냄
CPU의 동작 과정
- 제어장치가 메모리와 레지스터에 계산할 값을 로드함
- 제어장치가 레지스터에 있는 값을 계산하라고 산술논리연산장치에 명령함
- 제어장치가 계산된 값을 다시 레지스터에서 메모리로 저장함
기억 장치(Memory)
정의 및 특징
- CPU는 계산을 담당하고, 메모리는 기억을 담당함
- 메모리가 크면 클수록 많은 일을 동시에 할 수 있음
- 주기억장치와 보조기억장치로 분류됨
주기억장치(Main Memory)
- 물리적인 디스크가 아니라 컴퓨터 내부에서 현재 CPU가 처리하고 있는 내용을 저장하고 있는 기억장치
- 보조 저장장치보다 저장 용량이 적지만, 속도가 빨라 실행되는 프로그램이 적재되어 있음
- CPU는 store과 load의 방식으로 기억장치에 엑세스
- ROM(Read Only Memory)
- 전원이 끊겨도 기록된 데이터가 소멸되지 않는 비휘발성 메모리
- 오직 기억된 데이터를 읽기만 가능한 장치
- RAM(Random Access Memory)
- 읽고 쓰기가 가능하며 임의 접근이 가능함
- 응용 프로그램, 운영체제 등을 불러와 CPU가 작업할 수 있도록 하는 기억장치
- 전원을 끄면 데이터가 사라지는 휘발성 메모리이나 속도가 빠름
보조기억장치(Secondary Memory)
- 물리적인 디스크가 연결되어 있는 기억 장치
- 주기억장치보다 속도는 느리지만 가격이 저렴하고 저장 용량이 더 큼
- 컴퓨터의 전원을 끄더라도 저장된 데이터가 사라지지 않는 비휘발성을 가짐
- HDD(Hard Disk Driver)
- 물리적인 디스크를 고속으로 회전시켜 데이터를 저장하는 장치
- SSD의 등장으로 많이 소멸되는 추세
- SSD(Solid-State Driver)
- 흔히 쓰는 USB가 발전된 형태
- 물리적으로 회전하거나 움직이는 요소가 없으며, 전기적으로 데이터를 저장함
- 속도가 HDD보다 훨씬 빠르나 가격이 비쌈
데이터 적재/저장
- 니모닉: 기계어를 인간이 인식할 수 있는 것으로 바꾸어주는 것
- 적재(Load)
- 기억장치에 저장된 데이터를 읽어 CPU의 레지스터로 적재
- 주소 버스를 통해 CPU가 요구하는 데이터의 주소값과 제어 버스를 통해 Read 신호가 전달
- 저장(Store)
- CPU이 레지스터에서 기억장치의 특정 주소에 데이터를 저장
- 주소 버스를 통해 특정 주소와 제어 버스를 통해 Write 신호가 전달
- 워드(Word)
- CPU가 한 번에 접근하는 데이터를 의미
- CPU가 지원하는 비트 수와 크기가 같음
- 32bit CPU에서는 32bit, 64bit CPU에서는 64bit
기타
시스템 버스(System Bus)
- 컴퓨터의 각 구성요소 간 데이터, 신호를 전달하기 위한 데이터 전달 통로
- 데이터 버스: CPU와 기억장치/입출력장치 사이에서 데이터를 전달하는 ‘양방향’ 버스
- 주소 버스: CPU가 기억장치/입출력장치에게 데이터를 보내기 위해 주소를 전달하는 ‘단방향’ 버스
- 제어 버스: 데이터 버스와 주소 버스를 제어하기 위한 신호를 전달하는 ‘양방향’ 버스로, CPU가 Memory를 Read할지, Write할지에 대한 정보를 전달
⇒ 몇 번지에 데이터가 존재하는지 주소를 싣고 다니고(address bus), 해당 번지수의 데이터를 받아 싣고 다니며(data bus), 이 데이터를 보낼건지 받을건지의 신호를 싣고 다님(control bus)
DMA 컨트롤러
- IO 디바이스가 메모리에 직접 접근할 수 있도록 하는 하드웨어 장치
- CPU에만 너무 많은 인터럽트 요청이 들어오기 때문에 CPU 부하를 막아주며 CPU 의 일을 부담하는 보조 일꾼
- 하나의 작업을 CPU와 DMA 컨트롤러가 동시에 하는 것을 방지함
타이머
- 몇 초 안에는 작업이 끝나야 한다는 것을 정하고 특정 프로그램에 시간 제한을 다는 역할
- 시간이 많이 걸리는 프로그램이 작동할 때 제한을 걸기 위해 존재
디바이스 컨트롤러
- 컴퓨터와 연결되어 있는 IO 디바이스들의 작은 CPU를 말함
References
'Computer Science > 운영체제' 카테고리의 다른 글
[운영체제] 페이지 테이블(TLB, 계층/해시/역페이지 테이블) (0) | 2023.03.20 |
---|---|
[운영체제] 메모리 분할(연속/불연속 할당, 단편화) (0) | 2023.03.14 |
[운영체제] 가상 메모리, 스와핑, 페이지 폴트 (0) | 2023.03.13 |
[운영체제] 메모리 계층(캐시히트, 지역성, 캐시 매핑) (0) | 2023.03.13 |
[운영체제] 운영체제란?(운영체제의 구조, 시스템콜) (0) | 2023.03.11 |