본문 바로가기

📜✏️노트 자리없어서 적는 IT 지식📜✏️

운영체제 공부 (9주차 - 캐시 기억장치 관리)

일단 이거는 생각날때마다 보시고..

 

 

캐시기억장치의 개념

 

■ 주기억장치에 저장되어 있는 명령어와 데이터 중의 일부를 임시적으로 복사해서 저장하는 장치로 데이터를 저장하고 인출하는 속도가 주기억장치보다 빠름

 

=> 결과적으로 캐시기억장치는 느리게 동작하는 주기억장치와 빠르게 동 작하는 중앙처리장치 사이에서 속도차이를 줄여줘서 중앙처리장치에서 의 데이터와 명령어 처리속도를 향상시킴

 

그래서, 고속 완충 기억 장치로도 불린다.

 

 

 

기억장치의 계층적으로 분류하는데.

 

넓이 : 저장 용량

높이 : 가격

둘레 : 처리 시간

 

 

 

§ 중앙처리장치 내부

• CPU의 처리속도와 비슷한 접근속도를 가진 레지스터들이 포함한다.

• 이러한 기억장치는 높은 가격 때문에 많은 용량으로 구성하기 어렵다

 

 § 캐시(Cache)기억장치

• 주기억장치에 비해 5~10배 정도 접근속도가 빠르다.

• 자주사용되는명령들을저장하고있다가중앙처리장치에빠른속도로제공한다.

• 캐시기억장치의 용량에 의해 CPU의 가격이 결정된다.

 

 

SRAM

+SRAM은 플립플롭을 기억소자로 구성하여, 집적 밀도가 높아 소용량의 기억장치에 사용

+DRAM보다 처리속도가 5배 정도 빨라서 캐시메모리에 주로 사용

+SRAM의 기억소자 구조

 

 

 

SRAM의 기억소자 구조

+SRAM의 기억소자들을 격자 구조로 배열하면 많은 비트를 저장할 수 있는 진정한 SRAM이 됨.

 

 

 

중앙처리장치는 그 속도가 저장장치에 비해서 고속이므로 저장장치의 읽기와 쓰기 동작과정 동안 기다려야 하며, 이런 문제를 극복하기 위해 중앙처리장치의 처리속도만큼 빠른 저장 장치가 필요하다.

 

캐시 기억장치가 명령어를 찾을때 hit 명령어가 존재하지않아 못 찾으면 miss

 

 

 

 

적중률

적중률은 캐시기억장치를 가진 컴퓨터의 성능을 나타내는 척도로 적중률이 높을수록 속도가 향상

 

- 평균 기억장치 접근시간 T= 캐시기억장칭 접근시간 평균 + 주기억장치 접근시간 평균

 

● 캐시기억장치의 적중률이 높아질 수록 평균 기억장치 접근시간은 캐시기억장치 접근시간에 근접하게 되어 컴퓨터의 처리 속도의 성능 향상을 가져온다.

 

● 평균 기억장치 접근시간 T = 캐시기억장치 접근시간 평균 + 주기억장치 접근시간 평균 

                                             => 적중률 X 캐시기억장치 접근시간 평균+ 실패율 X주기억장치 접근시간 평균

 

★ 캐시기억장치 설계 시 고려할 요소

 - 1 k ~ 128 k 단어(word)가 캐시기억장치의 최적의 크기이다.

 

인출 방식 - 요구 방식 - 선 인출 방식

 

쓰기 정책(Write Pillcy)

 

- cpu가 프로그램을 실행하는 동안 연산 결과를 캐시기억장치에 기록하는 경우 발생

- 데이터의 일관성을 쉽게 보장가능

- 매번 쓰기 동작이 발생할 때마다 캐시기억장치와 주기억장치간 접근이 빈번 하게 일어나고 쓰기 시간이 길어지게 된다.

 

 

즉시 쓰기(Write-though) 방식

- CPU의 연산 결과가 기억장치에 저장하는 쓰기 동작은 캐시기억장치뿐만 아니라 주기억장치에서도 동시에 발생, 데이터의 일관성을 쉽게 보장할 수 있다.

 

나중 쓰기(Write-back) 방식

- 중앙처리장치의 데이터를 캐시기억장치에만 기록하고 기록된 블록에 대한 교체가 일어날 때 주기억장치에 기록하는 방식

 

 

 블록 크기(Block size)

 

- 블록이 커질수록 캐시기억장치에 적재할 수 있는 블록의 수가 감소하기 떄문에 블록들이 더 빈번히 교체되며, 블록이 커질수록 멀리 떨어진 단어들도 같 이 읽혀오기 때문에 가까운 미래에 사용될 가능성이 낮다.

 

- 일반적인 블록의 크기는 4 ~ 8 단어가 적당하다.

 

 

캐시의 수(Number of Caches)

• 일반적인 시스템은 오직 하나의 캐시기억장치를 가지고 있었다.

 

• 최근에는 캐시기억장치들이 계층적 구조로 설치되거나 기능별로 분리된 다 수의 캐시기억장치를 사용하는 것이 보편화 되었다.

 

 

 

 

 

교체 알고리즘 

 

- 캐시기억장치의 모든 슬롯이 데이터로 채워져있는 상태에서 실패할때 캐시기억장치의 어느 슬록 데이터를 제거하는가를 결정하는 방식이 교체 알고리즘이다.

 

교체 알고리즘에는 대표적인 종류 4개가있는데.

• LRU : 최소 최근 사용 알고리즘

• LFU : 최소 사용 빈도 알고리즘

• FIFO : 선입력 선출력 알고리즘

• RANDOM : 랜덤

 

4개가있다.

 

 

 

9주차 2교시

 

 

 

 

 

스트로브 신호(Strobe)

- 송신 측에서 데이터를 전송하는 경우 전송되는 것을 수신 측에 알려주기 위해 별도의 신호를 스트로브신호라고 함.

 

 

입출력 모듈의 기능

 

 

◆ 데이터 버퍼링과 오류검출

 

데이터 버퍼링(Data Buffering)

- 입출력장치에서 컴퓨터 내부로 전달되는 저속의 데이터는 주기억장치 또는 중앙처리장치의 동작에 영향을 주지 않도록 입출력 모듈의 버퍼에고속의 데이터 전송률 될 수 있도록 저장되었다가 전송된다.

 

- 입출력 모듈은 저속의 전송률과 고속의 전송률에 모두 동작 할 수 있어야한다.

 

오류 검출

 

- 입출력장치들의 오류를 검사하고 오류가 발생하면 중앙처리장치로 보고 할 수 있어야 한다.

- 입출력장치에서 발생하는 오류는 기계 및 전기적 오류와 데이터 전송 중에 발생되는 비트 오류 등이 있다.

- 기계 및 전기적 오류에는 프린터의 종이 걸림, 하드디스크의 불량 디스크 트랙 등이 대표적이다. 그리고 전송오류를 검출하는데 사용되는 [오류-검출 코드] 는 일반적으로 패리티 비트를 사용한다.

 

 

9주차 3교시

 

 

 

 

입출력 제어 방법

 

프로그램 제어 입출력 방법

- 중앙처리장치가 프로그램을 수행하는 도중에 입출력과 관련된 명령을 만나면 해당 입출력 모듈에 명령을보냄으로써 그 명령을 실행하는 방식

 

 

프로그램 제어 입출력 방법을 폴링 Polling 방법이라고도 함.

 

§ CPU와 입출력 장치 사이의 데이터 전달이 프로그램에 의해서 제어되는 방법으로 프로그램에서 CPU가 입출력모듈의 상태 레지스터의 D와 B 플래그(flag) 상태를 검사하여 데이터를 전송 하는 방식

 

§ CPU가 계속적으로 플래그를 검사하여 입출력 전방에 걸쳐 개입하기 때문에 비효율적이며 CPU는 다른 여산을처리하지 못하는 방식

 

 

◆ 인터럽트 기반 입출력 방법

 -  CPU가 계속적으로 플래그를 검사하지 않고 입출력이 필요할 때 입출력 장치에서 CPU에게 인터럽트를요청하면그 때 CPU가 하던 일을 멈추고 입출력 장치에 데이터를 전송하게 하는 방식

 

- 프로그램에 의한 입출력 방식보다 CPU의 이용 효율이 좋음.

 

 

 

 

입출력 장치의 성질에 따라서 채널의 종류는 3가지로 나뉜다.

 

셀렉터 채널 , 멀티플렉서 채널 , 블록 멀티플렉서 채널

 

 

커널이 제공하는 입출력 관련 서비스 (컴퓨터의 효율성 증진)

+ 입출력 스케줄링

    ㄴ 입출력 요구를 스케줄링한다는 것은 요구들의 실행 순서를 결정한다는 의미.

    ㄴ 응용 프로그램은 입출력을 요청한 대로 실행 순서를 결정하기보다는 전반적인 시스템 성능을 향상 시키면서 프로세            스의 요구를 공평하게 처리할 수 있도록 실행 순서를 결정한다. = > 디스크 입출력 스케줄링 대표