DevKim
[OS] 장치 간 속도 차 개선1 - 버퍼 , 스풀 ,캐시 cache 본문
[ 문제점 ]
* cpu는 cpu 내부 버스의 속도를 따르고 (더 빠름) ,
메모리&주변장치는 시스템 버스의 속도를 따르기 때문에
둘 사이의 작업속도의 차이가 문제가 된다
이러한 장치 간 속도의 차를 개선하기위한 여러가지 기능이있다.
[1] 버퍼 buffer
= 바구니
ex. 귤 5개를 하나씩 도마로 옮기기 <<< 바구니에 담아서 한번에 옮기기
- 일정량의 data를 모아서 옮김으로써 속도 차이를 완화하는 장치이다.
*하드디스크 버퍼, 동영상 스트리밍
[2] 스풀 SPOOL
- cpu와 입출력장치가 독립적으로 동작하도록 고안된 sw적인 버퍼
* 프린터기의 스풀러 (문서작업,출력 작업이 독립적으로 동작하도록)
[3] 캐시 cache
1) 정의
- 메모리 & cpu의 속도 차이의 완화를 위해서,
메모리의 데이터를 미리 가져와, 저장해두는 임시 장소
- cpu가 앞으로 사용할 것으로 예상되는 data를 미리 가져다놓음
원하는 데이터 적중 ! -> cache hit !
<-> cache miss
* 컴퓨터의 성능을 향샹시키려면 캐시 적중률이 높아야한다.
2 ) 만약 cache에 있는 데이터가 변경된다면 ?
메모리에 있는 원본 데이터도 변경되어야한다!
방법 #1. 즉시 쓰기
Write through
= 캐시에 있는 data가 변경되면 이를 즉시! 메모리에 반영
*단점*
계속 왔다갔다 해야해서 성능이 느려짐
*장점*
갑작스런 정전에도 데이터를 잃어버리지않음
방법 #2. 지연 쓰기
write back
=변경된 내용을 모아서 주기적으로 반영
+) 캐시 상에서 컴퓨터의 성능을 향상시키는 방법 1
[ 방법 1 ]
캐시의 크기 늘리기
= but 이 방법은 비쌈
[ 방법 2 ]
locality 이론
앞으로 많이 사용될 데이터 가져오기
= 가까운 데이터가 사용될 확률이 높겠지..?
+) 컴퓨터의 성능을 향상시키는 다른 방법 2
[ 방법 1 ] 저장장치로 느린 하드디스크 대신 SSD 사용
[ 방법 2 ] 메모리를 하드디스크만큼 확장
[ 방법 3 ] 캐시를 늘려서 캐시 적중률을 높임
.
.
하지만 이것은 비싸다
빠른 속도와 큰 용량을 적당한 가격으로 어떻게 성능을 향상시킬 수 있을까?
.
.
"저장장치의 계층구조"
1) 정의
- 속도가 빠르고, 비싼 저장장치
= cpu와 가까운 쪽에 두자 (ex. 레지스터와 캐시)
- 싸고, 용량이 큰 저장장치는 반대쪽에 두자 (ex. 하드디스크)
2) 문제점
계층구조는 중복되는 데이터의 일관성을 유지하는 것이 문제이다.
CPU가 캐시에 저장된 데이터를 변경하면 메모리의 해당 주소에 있는 데이터도 갱신되어야하는데,
이때 지연쓰기의 경우 문제가 된다.
'운영체제' 카테고리의 다른 글
[OS] 장치 간 속도 차 개선2 - 인터럽트(interrupt) 방식, 병렬 처리 (0) | 2021.07.20 |
---|---|
[하드웨어] 하드웨어의 구성, CPU,메모리 정리 (0) | 2020.12.29 |
[OS] 운영체제의 구조 - kernel & interface & system call &driver (0) | 2020.12.29 |
[OS] 운영체제의 다양한 system (0) | 2020.12.29 |
[OS] 운영체제 remind (0) | 2020.12.19 |