1. 폰노이만 구조
모든 프로그램은 메인 메모리에 올라와야 실행할 수 있다.
2. 컴퓨터 하드웨어 구성
2-1. CPU (Central Processing Unit)
컴퓨터의 두뇌로, 명령어를 해석하고 실행(메모리를 읽어들이고 해석하고 실행하고..)
구성요소
- Control Unit(제어장치): CPU 내 작업을 지시하는 장치
- ALU(산술 논리 장치): CPU에서 데이터를 연산하는 장치 (계산기)
- Register(레지스터): 작업에 필요한 데이터를 CPU 내부에 보관하는 장치
CPU 비트 크기
- 32비트/64비트: CPU가 한 번에 처리할 수 있는 데이터의 최대 크기
2-2. 메모리
데이터를 저장하고 처리하기 위한 계층적 구조를 갖추고 있음
a. 메모리 계층
- 메모리 계층은 가격 최소화, 빠른 접근 속도, 대용량 저장을 균형 있게 제공하기 위해 설계
캐시 계층
- CPU와 메인 메모리 사이의 속도 차이를 완화, CPU와 하드디스크 사이에 존재
데이터 일관성과 보안
- 데이터 접근 및 전송의 신뢰성 제공
b. 주요 메모리 구성
레지스터
- CPU내부에 위치, 가장 빠름
- 속도가 빠르지만 용량이 작고 비용이 높음
- 값 & 연산결과를 일시적으로 저장하는 공강
- 연산제어, 디버깅
캐시
- CPU와 메인메모리 사이의 속도차이를 줄이기 위해 메모리의 데이터를 미리 가져와 저장해 두는 임시 저장소
- 데이터의 참조 지역성의 원리를 기반으로 동작
- 시간 지역성: 최근 사용한 데이터에 다시 접근 ex) 반복분
- 공간 지역성: 인접한 데이터에 접근 ex) 배열과 링크드 리스트의 차이
Bus Interface
- CPU의 외부와 연결되어 있으며 외부에서 들어오는 데이터를 받거나, 데이터를 보내는 역할을 담당
- 외부와 데이터를 주고받는 통로
입출력 버스(Input / Output Bus)
- 다른 구성요소의 사이에서 데이터를 교환하기 위해 거치는 통로
주기억장치(메인메모리)
- CPU만이 직접 접근할 수 있는 메모리
- 데이터와 명령어 저장
- RAM과 ROM이 해당
RAM(Random Access Memory)
- 휘발성 메모리
- 소프트웨어에서 메모리라고 하면 RAM을 의미
-SRAM, DRAM
ROM(Read-Only Memory)
- 비휘발성 메모리
- BIOS(Basic Input-Output System) or 하드웨어 제어를 위한 펌웨어들이 저장
- 컴퓨터 전원이 켜지면?
1. CPU는 ROM에 저장된 BIOS 실행
2. BIOS는 컴퓨터의 주요 하드웨어가 정삭적으로 동작하는지 검사
3. 검사가 완료되면 BIOS는 BootStrap이라는 프로그램을 RAM에 올려놓고 실행
4. Bootstrap은 보조저장장치에 저장되어 있는 운영체제를 RAM에 올려놓고 실행
CPU의 레지스터와의 비교
- 레지스터는 실행중인 명령어의 처리에 대한 기억장치
- 메인 메모리는 현재 실행중인 프로그램의 처리에 대한 기억장치
보조기억장치(저장장치)
- HDD, SSD
- 실행되지 않은 프로그램들이나 파일 등이 저장
- 보관할 수 있는 데이터 크기가 큼 but 가장 느림
2-3. 입출력 장치
CPU, 메인메모리는 필수장치, 입출력 장치는 외부장치, 데이터 송수신 담당
ex) 모니터, 키보드, 스피커, 등
폴링(Polling)
- 작업 완료를 CPU가 주기적으로 확인
- 작업의 완료를 주기적으로 확인하느라 다른 작업을 수행하지 못함
- 초기 컴퓨터 시스템에서의 방식 > 비효율적
인터럽트(Interrupt)
- 이벤트 발생 시, 인터럽트 신호를 CPU에 보내고 CPU는 현재 작업 중단 후, 이벤트 처리 작업에 응답
- 현대 시스템에서 기본적으로 사용
3. 인터럽트를 위한 여러가지 방식
a. 직접 메모리 접근(DMA)
- 메모리는 CPU만 접근 권한을 갖고 있는 공간이기에 입출력 관리자는 접근 불가능
- 인터럽트 방식에서 사용, CPU는 메모리접근 권한을 DMA 컨트롤러에 양보
- 관계성: 메모리 <-> 입출력장치
- 입출력 장치가 CPU의 관여 없이 메모리에 직접 데이터를 읽고쓰는 방식
b. 메모리 맵 입출력 (MMIO: Memory Mapped I/O)
- 직접적인 메모리 접근은 인터럽트 방식에 있어 필수적이나, 메모리가 복잡해지는 상황 발생
- CPU가 입출력장치의 데이터를 읽고 쓰기위해 별도의 명령어 없이 메모리 주소처럼 처리
- 관계성: CPU <-> 입출력 장치
c. 사이클 훔치기
- CPU와 직접 메모리 접근이 동시에 이루어지는 경우, CPU작업 속도가 입출력장치의 속도보다 더 빠르기 때문에 CPU가 메모리 권한 양보
- CPU, DMA 동시에 메모리 접근 시, DMA가 더 우선
- 관계성: DMA -> CPU 작업의 일부 자원 잠시 차용
'운영체제' 카테고리의 다른 글
동시성 처리 (1) | 2024.12.28 |
---|---|
스레드의 등장 (0) | 2024.12.21 |
프로세스와 운영체제의 이해 (1) | 2024.12.15 |
운영체제의 역할과 구조 (2) | 2024.12.14 |