운영체제(OS)란?
H/W들을 효율적으로 관리해서 사용자 또는 응용 프로그램(Application)에게 서비스를 제공하는 Software
컴퓨터 하드웨어
프로세서 (Processor) : 계산 담당
- CPU (중앙처리장치)
- 연산 수행
- 컴퓨터의 모든 장치의 동작 제어
- 레지스터, 연산장치, 제어장치로 구성
- What is Register?
- 프로세서 내부에 있는 메모리
- 컴퓨터에서 가장 빠른 메모리
- 레지스터 종류
- 용도에 따라
- 전용 레지스터, 범용 레지스터
- 사용자가 정보를 변경 가능한지에 따라
- 사용자 가시 레지스터, 사용자 불가시 레지스터
- 저장하는 정보의 종류에 따라
- 데이터 레지스터, 주소레지스터, 상태 레지스터
- 용도에 따라
- 그래픽카드(GPU) 등
- 운영체제와 프로세서, 무슨 관계?
- 프로세서에게 처리할 작업 할당 및 관리 (3장)
- 프로세스(Process) 생성 및 관리
- 프로그램의 프로세서 사용 제어 (4~5장)
- 프로그램의 프로세서 사용 시간 관리
- 복수 프로그램간 사용 시간 조율 등
- 프로세서에게 처리할 작업 할당 및 관리 (3장)
메모리 (Memory) : 저장 담당
- 레지스터
- 캐시 (CPU 내에 있음)
- 캐시의 동작
- 일반적으로 H/W적으로 관리됨
- 프로세서가 캐시한테 필요한 데이터 블록을 갖고 있는지 물어본다.
- 있다면? 캐시 히트 (Cache hit)
캐시에서 가져온다.- 워드 단위 (고속)
- 높은 대역폭
- 없다면? 캐시 미스 (Cache miss)
캐시가 메인메모리에서 데이터 블록 가져오고, 프로세서에게 전달.- 블록 단위 (저속)
- 낮은 대역폭
- 캐시 ↔ 메인 메모리
- 지역성 (Locality) : 캐시가 효과를 낼 수 있는 이유
- 공간적 지역성 (Special locality) : 참조한 주소와 인접한주소를 참조하는 특성
예) 순차적 프로그램 수행 - 시간적 지역성 (Temporal locality) : 한 번 참조한 주소를 곧 다시 참조하는 특성
예) For 문 등의 순환문 - 그러므로 지역성은 캐시 적중률(cache hit ratio)과 밀접
- 알고리즘 성능 향상을 위한 중요한 요소 중 하나
- 근데 H/W가 관리한다면서?
-
for(int i = 0; i <= n; i++){ for(int j = 0; j < m; j++){ x += a[i][j] // A or x += a[j][i] // B } }
a[0][0]
을 읽을 때, 한 블록 (a[0][0]
부터a[0][15]
)을 메인메모리로부터 캐시로 가져온다.- B같은 경우는 j값이 증가될 때마다 cache miss 발생된다.
- 공간적 지역성 (Special locality) : 참조한 주소와 인접한주소를 참조하는 특성
- 캐시의 동작
- 왜 있어야되지? CPU내에는 레지스터가 있는데??
메인메모리를 뒀지만! CPU와 메인 메모리사이에 성능차이가 아직 있다. 캐쉬를 통해 해결~
=> 메인 메모리의 입출력 병목현상 해소 - 메인 메모리
- 프로세서가 수행할 프로그램과 데이터 저장
- 주로 DRAM
- Processor ↔ Main memory ↔ Disk
이유 : CPU의 발전으로 CPU와 Disk간의 속도차이가 커졌다. Disk보다는 빠르지만 용량은 작은 어딘가에.. CPU가 일을 하는 동안 미리 필요한 데이터를 Disk에서 가져와서 두자. 어디에 ? 메인메모리에!
=> 디스크 입출력 병목현상 (I/O bottleneck) 해소
- 보조기억장치
- 프로그램과 데이터를 저장
- 프로세서가 직접 접근할수 없음. 뭔말이냐 = 메인메모리를 거쳐야한다.
- 프로그램/데이터가 주기억장치보다 용량이 더 큰 경우는??
- 가상메모리(Virtual memory)
- 용량 크고, 가격저렴
HDD, SD카드, USB
- 고속, 저용량 순서(위의 1234)
- 운영체제와 메모리, 무슨 관계?
- 메모리 할당 및 관리 (7장)
- 프로그램의 요청에 따른 메모리 할당 및 회수
- 할당된 메모리 관리
- 가상 메모리 관리 (8장)
- 가상메모리 생성 및 관리
- 논리주소 -> 물리주소 변환
- 메모리 할당 및 관리 (7장)
주변장치
- 프로세서와 메모리를 제외한 하드웨어들
- 입력 장치
- 키보드 / 마우스
- 출력 장치
- 모니터, 프린터
- 저장 장치
- 보조 기억 장치들
- 주변장치와 메모리, 무슨 관계?
- 장치드라이버 관리
- 주변 장치 사용을 위한 인터페이스 제공
- 인터럽트(Interrupt) 처리 (3장)
- 주변 장치의 요청 처리
- 파일 및 디스크 관리 (9~10장)
- 파일 생성 및 삭제
- 디스크 공간 관리 등
- 장치드라이버 관리
시스템 버스 (System Bus)
H/W들이 데이터 및 신호를 주고받는 물리적인 통로
- 데이터 버스
- 주소 버스
- 제어 버스
'Study > OS' 카테고리의 다른 글
Chapter 05. Process Scheduling (2of4) - FCFS, RR (0) | 2021.06.23 |
---|---|
Chapter 05. Process Scheduling (1of4) (0) | 2021.06.23 |
Chapter 04. Thread Management (0) | 2021.06.23 |
Chapter 03. Process Management (0) | 2021.06.17 |
Chapter 02. OS Overview (0) | 2021.06.16 |