CS/운영체제
#0 컴퓨터의 구조
Scala0114
2021. 12. 13. 19:05
1. 프로세서(Processor) - CPU
① CPU(Central Processing Unit)
- 컴퓨터의 중앙 프로세서
- 컴퓨터의 모든 장치의 동작을 제어
② 레지스터(Register)
- 프로세서 내부의 메모리
- 프로세서가 사용하기 위한 데이터를 저장
- 컴퓨터를 구성하는 메모리중 가장 빠름
- 사용자 가시 레지스터
- 데이터 레지스터(Data Register)
- 함수 연산에 필요한 데이터를 저장
- 산술/논리 연산에 사용하며 연산 결과로 플래그값 저장
- 주소 레지스터
- 주소나 유효 주소를 계산하기 위해 필요한 주소의 일부분을 저장
- 주소 레지스터에 저장한 값을 사용하여 산술연산 가능
- 데이터 레지스터(Data Register)
- 사용자 불가시 레지스터
- 프로그램 카운터(PC - Program Counter)
- 다음에 실행할 명령어의 주소를 보관하는 레지스터
- 실행할 명령어를 메모리에서 읽어오면 명령어 길이만큼 증가, 다음명령어를 가리킴
- 분기명령어는 목적 주소로 갱신
- 명령어 레지스터(IR - Instruction Register)
- 현재 실행중인 명령어를 보관하는 레지스터
- 현재 실행중인 명령어를 보관하는 레지스터
- 누산기(ACC - Accumulator)
- 데이터를 일시적으로 저장하는 레지스터
- 데이터를 일시적으로 저장하는 레지스터
- 메모리 주소 레지스터(MAR - Memory Address Register)
- 프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터
- 프로세서가 참조하려는 데이터의 주소를 명시하여 메모리에 접근하는 버퍼 레지스터
- 메모리 버퍼 레지스터(MBR - Memory Buffered Register)
- 프로세서가 메모리에서 읽거나 메모리에 저장할 데이터를 보관하는 버퍼 레지스터
- 메모리 데이터 레지스터(MDR - Memory Data Register)라고도 함
- 프로그램 카운터(PC - Program Counter)
- 프로세서는 위의 다양한 레지스터들과 산술/논리 연산장치인 ALU(Arithmetic Logic Unit)를
사용하여 연산을 수행하고 시스템 버스로 연결된 입출력장치나 메모리와 데이터를 주고받는다. - 운영체제는 사용자가 실행한 응용프로그램들이 효율적으로 동작하도록 CPU 자원을 적절히
할당하고 회수하는 등의 작업을 수행한다.
2. 메모리(Memory)
- 데이터를 저장하기 위한 기억장치
- 컴퓨터를 구성하는 메모리의 종류 - 아래로 내려갈수록 느리지만 값이 싸고 용량이 크다
- 레지스터(Register)
- 프로세서 내부의 가장 빠른 메모리
- 캐시(Cache)
- 프로세스 내부의 L1, L2 캐시 등의 메모리
- CPU와 메인메모리 사이의 병목현상 해소
- 메인 메모리(Main Memory)
- 프로세서가 수행할 프로그램과 데이터 저장
- CPU 처리속도에 비해 너무 느린 디스크 입출력 속도로 인한 병목 현상을 해소
- 보조 기억 장치(Auxiliary Memory)
- 데이터를 사용하기 위해서는 메인 메모리로 가져와야하는 보조 메모리
- 디스크나 SSD 등이 대표적
- 레지스터(Register)
- 캐시의 동작
- 일반적으로 하드웨어적으로 관리
- 캐시 히트(Cache Hit)
- 필요한 데이터 블록이 캐시메모리 내에 존재
- 바로 가져와 사용
- 캐시 미스(Cache Miss)
- 필요한 데이터 블록이 캐시메모리 내에 존재하지 않음
- 메인 메모리에서 데이터를 가져와야함
- 지역성(Locality)
- 공간적 지역성(Spatial Locality)
- 참조한 주소와 인접한 주소를 참조하는 특성
- 순차적 프로그램 수행 등
- 시간적 지역성(Temporal Locality)
- 한 번 참조한 주소를 곧 다시 참조하는 특성
- 반복문 등의 순환문
- 지역성을 고려하여 캐싱 알고리즘을 적절히 구성하면 높은 캐시 적중률을 얻을 수 있다
- 공간적 지역성(Spatial Locality)
- 운영체제는 응용프로그램이 필요로하는 만큼의 메모리를 효율적으로 할당해주는 작업을 수행한다.
3. 주변 장치
- 입출력 장치(I/O Device) : 키보드, 마우스, 모니터 등 데이터를 입력, 출력하기 위한 장치
- 저장 장치(Storage) : 하드디스크, SSD, USB, CD 등의 보조기억장치
- 운영체제는 응용프로그램의 입출력 요청이나 저장 장치에 대한 읽고쓰기 요청 등을
효율적으로 처리하여 그 결과를 응용프로그램에게 전달해주는 작업을 수행한다.