OS STUDY - 컴퓨터 성능 향상 기술

조성현·2024년 3월 8일

OS study

목록 보기
2/2
post-thumbnail

교재 - 쉽게 배우는 운영 체제

0. 서론

문제 상황: 시스템 버스(FSB)의 속도 < CPU 내부버스(BSB)의 속도
즉, CPU의 속도를 주변 장치가 따라오지 못함.

1. 버퍼

1.1. 개념

버퍼(buffer): 두 장치간에 데이터를 옮길 때 일정량의 데이터를 모아 옮겨 속도 차이를 완화하는 장치
메모리, 동영상 재생, 화면 출력에도 버퍼를 사용한다.

1.2. 스풀

스풀(Simultaneous Peripheral Operations On-line): CPU와 입출력 장치가 독립적으로 동작하도록 고안된 소프트웨어적인 버퍼
ex) 프린터의 스플러: 프로그램은 인쇄작업을 스풀러에게 맡겨놓고 작업을 진행한다. 이로 인해 문서 작업과 프린터 출력 작업이 독립적으로 진행이 가능.

1.3. 캐시

캐시(cache): 메모리와 CPU 간의 속도 차이를 완화하기 위해 메모리의 데이터를 미리 가져와 저장해 두는 임시 저장소, CPU에 있는 캐시는 CPU 내부버스의 속도로 작동하기 때문에 무척 빠르다.

미리 가져오기(prefetch): CPU가 앞으로 사용할 것으로 예상되는 데이터를 미리 가져오는 행위

캐시 히트(cache hit): CPU가 메모리에 접근 전 캐시에서 원하는 데이터를 찾은 경우

캐시 미스(cache miss): CPU가 메모리에 접근 전 캐시에서 원하는 데이터를 못 찾은 경우

1.3.1 캐시 적중률을 높이는 법

  • 캐시의 크기 늘리기: 그러나 높은 비용
  • 데이터 가져오기: 현재 위치와 가까운 데이터를 가져오기 (지역성)

1.3.2. 캐시 데이터 변경 사항을 메모리에 반영

  • 즉시 쓰기(write through): 캐시에 있는 데이터가 변경되면 즉시 메모리에 반영하는 방식
    • 빈번한 데이터 전송으로 성능이 느려짐
  • 지연 쓰기(write back): 캐시에 있는 데이터가 변경되면 내용을 모았다가 주기적으로 반영하는 방식, 카피 백이라고도 함
    • 메모리와 캐시된 데이터 사이의 불일치가 발생할 수 있음

1.3.3. 캐시의 구조


L2: 일반 캐시 (명령어와 데이터의 구분 없이 모든 자료를 가져옴)
L1: 특수 캐시 (명령어와 데이터를 구분하여 가져옴)

2. 저장장치의 계층 구조


속도가 빠르고 값이 비싼 저장 장치를 CPU와 가까운 쪽에, 값이 싸고 저장장치는 CPU와 반대쪽에 배치

3. 인터럽트

3.1. 개념

상황: 기존에는 CPU가 직접 입출력 장치에서 데이터의 출입을 관리하는 폴링 방식을 사용했지만, CPU의 역할이 많아져 작업 효율이 떨어짐
인터럽트 방식: CPU의 작업과 별도로 저장장치의 데이터 이동을 담당하는 입출력 관리자를 두는 방식

3.2. 인터럽트 방식의 동작 과정

  • CPU가 입출력 관리자에게 입출력 명령을 보낸다.
  • 입출력 관리자는 명령받은 데이터를 메모리나 저장장치로 옮긴다
  • 데이터 전송이 완료되면 입출력 관리자는 CPU에 완료 신호(인터럽트)를 보낸다.

이때 완료 신호를 보낼 때 장치의 이름 대신 인터럽트 번호(윈도우에서는 IRQ)를 사용한다.
또한 여러개의 인터럽트를 하나의 배열로 만든 인터럽트 벡터가 있는데, 완료된 인터럽트 번호를 표시한다.
작업이 완료될 때 외에도 컴퓨터의 종료나 메모리 영역을 넘어서 작업하는 경우에도 인터럽트가 발생한다.

4. 직접 메모리 접근

직접 메모리 접근(Direct Memory Access): 효율성을 위해 기존에 CPU만 가지고 있던 메모리 접근 권한을 입출력 관리자가 가지게 되어 메모리에 대해 직접 접근 하는것

5. 메모리 맵 입출력

직접 메모리 접근으로 인해 CPU와 입출력 관리자가 각각 관리하는 데이터가 섞여 있으면 관리하기가 어려움. 이를 막기 위해 메모리를 CPU 작업 영역과 입출력 작업 영업으로 나누게 됨
메모리 맵 입출력(Meemory Mapped I/O): 메모리의 일정 구간을 입출력에 할당하는 기법

6. 사이클 훔치기

사이클 훔치기(cycle stealing): CPU와 입출력 관리자가 동시에 메모리에 접근 시에 조금 느린 입출력 관리자에게 CPU가 메모리 사용 권한을 양보하는 것

profile
SNU MSE 18

0개의 댓글