현대 컴퓨터 구조
- 현대 컴퓨터 구조에서 메인보드 내 메모리와 주변장치는 시스템 버스로 연결되어 있고, CPU 내 레지스터, 연산장치, 제어장치는 CPU 내부 버스로 연결되어 있다.
- 즉, 메모리의 속도는 시스템 버스의 속도와 같고, CPU의 속도는 CPU 내부 버스의 속도와 같다.
- 따라서 CPU 내부 버스의 속도가 시스템 버스의 속도보다 빠르기 때문에, 메모리를 비롯한 주변장치의 속도가 CPU의 속도를 따라가지 못하는 문제가 발생한다.
버퍼와 스풀러
- 버퍼는 속도에 차이가 있는 두 장치 사이에서 그 차이를 완화하는 역할을 하는 장치로, 일정량의 데이터를 모아 롬김으로써 속도의 차이를 완화한다.
- 스풀은 CPU와 입출력장치가 독립적으로 동작하도록 고안된 소프트웨어적인 버퍼로, 대표적인 예로 프린터에 사용되는 스풀러가 있다.
- 스풀러는 인쇄할 내용을 순차적으로 출력하는 소프트웨어로, 출력 명령을 내린 프로그램과 독립적으로 동작한다.
- 스풀러를 사용하면 인쇄할 내용을 하드디스크의 스풀러 공간에 저장하고, 워드 프로세스는 다른 작업을 할 수 있다.
캐시
- 캐시는 메모리와 CPU 간의 속도 차이를 완화하기 위해 메모리의 데이터를 미리 가져와 저장해두는 임시 장소로, CPU가 앞으로 사용할 것으로 예상되는 데이터를 미리 가져다 놓는다. (prefetch)
- 캐시는 CPU 안에 있으며 CPU 내부 버스의 속도로 작동하며, 빠른 속도로 작동하는 CPU와 느린 속도로 작동하는 메모리 사이에서 두 장치의 속도 차이를 완화해준다.
- 캐시는 메모리 내용 중 일부를 미리 가져오고, CPU는 메모리에 접근해야 할 때 캐시를 먼저 방문하여 원하는 데이터가 있는지 찾아본다.
- 캐시에서 원하는 데이터를 찾았다면 데이터를 바로 사용하고 (캐시 히트), 원하는 데이터가 캐시에 없으면 메로리로 가서 데이터를 찾는다. (캐시 미스)
- 캐시 히트가 되는 비율을 캐시 적중률이라고 하며, 일반적인 컴퓨터의 캐시 적중률은 90%이다.
지역성 이론
- 캐시 적중률을 높이려면 앞으로 많이 사용될 데이터를 가져와야 하므로, 캐시는 지역성 이론을 바탕으로 앞으로 CPU에서 사용할 것이라고 예상되는 데이터를 미리 가져온다.
- 지역성 이론이란 현재 위치에 가까운 데이터가 멀리 있는 데이터보다 사용될 확률이 더 높다는 것을 의미한다.
즉시 쓰기와 지연 쓰기
- 캐시는 메모리에 있는 데이터를 임시로 가져온 것이기 때문에, 캐시에 있는 데이터가 변경되면 메모리에 있는 원래 데이터를 변경해야 한다.
- 캐시의 변경된 데이터를 메모리에 반영하는 방식으로는 즉시 쓰기와 지연 쓰기 방식이 있다.
즉시 쓰기 | - 캐시에 있는 데이터가 변경되면 이를 즉시 메모리에 반영하는 방식 - 메모리와의 빈번한 데이터 전송으로 인해 성능이 느려지지만, 메모리의 최신 값이 항상 유지되기 때문에 급작스러운 정전에도 데이터를 잃지 않는다. |
지연 쓰기 | - 캐시에 있는 데이터의 변경된 내용을 모아서 주기적으로 반영하는 방식 - 메모리와의 데이터 전송 횟수가 줄어들어 시스템의 성능을 향상시킬 수 있지만, 메모리와 캐시된 데이터 사이의 불일치 문제가 발생할 수 있다. |
L1 캐시와 L2 캐시
- 프로그램의 명령어는 크게 어떤 작업을 할지 나타내는 명령어 부분과, 작업 대상인 데이터 부분으로 나눌 수 있다.
- 캐시는 명령어와 데이터의 구분없이 모든 자료를 가져오는 일반 캐시와, 명령어와 데이터를 구분하여 가져오는 특수 캐시라는 두 가지 레벨로 구분된다.
- 명령어 캐시는 명령어 레지스터와 연결되어 있고, 데이터 캐시는 데이터 레지스터와 연결되어 있다.
- 명령어 캐시나 데이터 캐시는 CPU 레지스터에 직접 연결되기 때문에 L1 캐시라고 부르며, 일반 캐시는 메모리와 연결되기 때문에 L2 캐시라고 부른다.
메모리 계층 구조
- 메모리 계층 구조는 속도가 빠르고 값이 비싼 저장장치를 CPU 가까운 쪽에 두고, 값이 싸고 용량이 큰 저장장치를 반대쪽에 배치하여 적당한 가격으로 빠른 속도와 큰 용량을 동시에 얻는 방법이다.
- CPU와 가까운 쪽에 레지스터나 캐시를 배치하여 CPU가 작업을 빨리 진행할 수 있게 하고, 메모리에서 작업한 내용을 하드디스크와 같이 저렴하고 용량이 큰 저장장치에 영구정으로 저장한다.
- 저장장치의 계층 구조는 사용자가 저렴한 가격으로 용량은 하드디스크처럼 사용하고 작업 속도는 레지스터처럼 빠르도록 만들어 준다.
'Computer Science > Operating System' 카테고리의 다른 글
프로세스 제어 블록과 문맥교환 (0) | 2022.03.15 |
---|---|
프로세스와 스레드 (0) | 2022.03.15 |
병렬 처리 (0) | 2022.03.15 |
컴퓨터 구조 (0) | 2022.03.14 |
운영체제 개요 (0) | 2022.03.14 |