컴퓨터 시스템 - 운영체제와 하드웨어
1. 운영체제란
컴퓨터 시스템 자원울 효율적으로 관리하여 사용자 및 응용프로그램에 서비스 제공
2. 하드웨어의 종류
분류 | 예 |
프로세서 (Processor) | CPU, GPU(그래픽카드), 응용 전용 처리장치 등 |
메모리 (Memory) | 주기억장치, 보조기억장치 등 |
주변장치 | 키보드/마우스, 모니터, 프린터, 네트워크 모뎀 등 |
3. 프로세서 (CPU)
# 컴퓨터의 두뇌 (중앙처리장치)
# 연산수행 및 컴퓨터 장치의 동작제어
// 레지스터 (Register)
# 프로세서 내부에 있는 메모리
# 프로세서가 사용할 데이터를 저장
# 컴퓨터에서 가장 빠른 메모리
// 주요 레지스터의 예
# 프로그램 카운터 (Program Counter)
다음에 실행할 명령어의 메모리상 주소를 보관.
실행할 명령어를 메모리에서 읽으면 명령어의 길이만큼 증가하여 다음 명령어를 가리킴 (계수기)
# 명령어 레지스터 (Instruction Register)
현재 실행하는 명령어를 보관.
# 누산기 (ACCumulator)
계산 과정에서 데이터를 일시적으로 저장
4. 메모리 (Memory)
# 데이터를 저장하는 기억장치
// 메모리의 종류
# 주기억장치 (Main memory)
프로세서가 수행할 프로그램과 데이터 저장
주로 DRAM (프로세서가 직접 접근할 수 있는 것들중에 용량↑가격↓)
디스크 입출력 병목현상 (I/O bottleneck) 해소
-> CPU의 속도가 Disk의 입출력 속도를 앞지르면서 그 사이의 갭이 발생하여 문제
-> Disk보다 용량은 작지만 접근속도가 빠른 메모리 도입 (Main memory)
# 캐시 (Cache)
프로세서 내부에 있는 메모리 (L1, L2 ..)
레지스터보다 CPU Core에서 조금 더 떨어져 있음
속도는 빠르지만 가격이 비쌈
메인 메모리의 입출력 병목현상 해소
-> 메인 메모리로도 해결되지 않는 속도차이를 해결하고자 도입
-> 현재는 Cash 또한 여러 단계로 나누어져 있음
** 동작방식 (HW적으로 관리)
프로세서가 Cash에 데이터 요청 -> 해당 데이터 블록이 Cash 에 있을경우(Cash hit) 가져옴 -> 없을 경우(Cash miss) Cash가 Main memory 로부터 데이터를 가져와서 프로세서에 전달
** 이걸로 효과가 있을까?
- 공간적 지역성 (Spatial locality) : 참조한 주소와 인접한 주소를 참조
(Cash는 요청 데이터의 주변 데이터까지 같이 가져옴 <- 데이터블록 단위)
- 시간적 지역성 (temporal locality) : 한 번 참조한 주소를 곧 다시 참조 ( ex. 반복문 등 )
-> 지역성 덕분에 Cache hit ratio 가 높아짐
-> 즉, 적은 Cash 용량으로도 충분한 효과
# 보조기억 장치 (Auxiliary memory / secondary memory / storage)
프로그램과 데이터를 저장 (주기억장치보다 용량↑가격↓)
프로세서 직접 접근 X (주기억장치를 거쳐야함)
** 만약 Main memory용량보다 더 큰 프로그램을 실행하고 싶으면?
-> 가상 메모리 (Virtual memory) : 하드디스크의 일부를 마치 Main memory인 것처럼 사용
5. 시스템 버스 (System Bus)
하드웨어들이 데이터 및 신호를 주고 받는 물리적인 통로
(데이터버스 / 주소버스 / 제어버스)
** 동작과정
Program Counter가 저장한 주소를 프로세서 내부 버스를 통해 MAR에 전달 -> MAR은 memory 에게 어느 주소를 읽어야 하는지 전달(주소버스) -> 이와 동시에 제어장치가 메모리에 저장된 내용을 읽도록 하는 제어신호 발생(제어버스) -> 메모리가 데이터를 MBR에 전달(데이터버스) -> 최종적으로 명령어가 IR에 저장됨
참고자료
HPC Lab. KOREATECH [OS} Lecture 1. Computer System Overview
'ComputerScience > OS' 카테고리의 다른 글
프로세스의 상태 - 프로세스 관리 (Process Management) (0) | 2021.07.08 |
---|---|
운영체제 작업수행방식 - 일괄처리/시분할/분산처리/병렬처리/실시간 시스템 (0) | 2021.07.07 |