컴퓨터 하드웨어
프로세서 (Processor)
- CPU
- 그래픽 카드 (GPU)
- 응용 전용 처리장치 등 (특별한 목적을 위해서 계산하는 녀석)
컴퓨터의 두뇌 (중앙 처리 장치)
레지스터 (Register)
- 프로세서 내부에 있는 메모리
- 프로세서가 사용할 데이터 저장
- 컴퓨터에서 가장 빠른 메모리
레지스터의 종류
- 용도에 따른 분류
- 전용 레지스터(정해진 용도로 사용), 범용 레지스터(일반적으로 사용 가능)
- 사용자가 정보 변경 가능 여부에 따른 분류
- 사용자 가시 레지스터 (변경 가능, 볼 수 있는 것), 사용자 불가시 레지스터 (반대)
- 저장하는 정보의 종류에 따른 분류
- 데이터 레지스터, 주소 레지스터, 상태 레지스터
운영체제와 프로세서
메모리 (Memory)
데이터를 저장하는 장치 (기억장치)
- 프로그램(OS, 사용자SW 등), 사용자 데이터 등
메모리의 종류
주 기억장치 (Main memory)
- 프로세서가 수행할 프로그램과 데이터 저장
- DRAM을 주로 사용
- 용랑이 크고, 가격이 저렴
- 디스크 입출력 병목현상 (I/O bottleneck) 해소
캐시 (Cache)
- 프로세서 내부에 있는 메모리 (L1, L2 캐시 등)
- 속도가 빠르고, 가격이 비쌈
- 메인 메모리의 입출력 병목현상 해소
캐시의 동작
- 일반적으로 HW적으로 관리 됨
- 캐시 히트 (Cache hit)
- 필요한 데이터 블록이 캐시에 존재
- 캐시 미스 (Cache miss)
- 필요한 데이터 블록이 캐시에 없는 경우
지역성 (Locality)
공간적 지역성 (Spatial locality)
- 참조한 주소와 인접한 주소를 참조하는 특성
- 예) 순차적 프로그램 수행
시간적 지역성 (Temporal locality)
- 한 번 참조한 주소를 곧 다시 참조하는 특성
- 예) For문 등의 순환 문
지역성은 캐시 적중률(cache hit ratio)과 밀접
- 알고리즘 성능 향상 위한 중요한 요소 중 하나
위의 상황일 떄, A가 효율적이다. 👍
보조기억 장치 (Auxiliary memory / secondary memory / sotrage )
- 프로그램과 데이터를 저장
- 프로세서가 직접 접근할 수 없음 (주변장치)
- 주 기억장치를 거쳐서 접근
- (프로그램/데이터 > 주기억장치)인 경우는? (가상 메모리(Virtual memory))
- 용랑이 크고, 가격이 저렴
메모리와 운영체제
메모리 할당 및 관리
- 프로그램의 요청에 따른 메모리 할당 및 회수
- 할당된 메모리 관리
가상 메모리 관리
- 가상 메모리 생성 및 관리
- 논리주소 -> 물리주소 변환
시스템 버스 (System Bus)
하드웨어들이 데이터 및 신호를 주고받는 물리적인 통로
주변장치
- 키보드/마우스
- 모니터, 프린터
- 네트워크 모뎀 등
프로세서와 메모리를 제외 하드웨어들
주변장치와 운영체제
장치드라이버 관리
인터럽트 (Interrupt) 처리
파일 및 디스크 관리