컴퓨터 아키텍쳐

라마·2023년 7월 4일

운영체제

목록 보기
3/32

※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.

컴퓨터의 계층 구조

🖥️ 응용 프로그램 ( 응용 소프트웨어 ) ↔ 운영체제 ↔ 하드웨어

응용 프로그램은 하드웨어에 직접적으로 접근할 수 없고, 반드시 운영체제를 통해 간접적으로 접근해야 합니다.

왜 이렇게 계층적 구조로 만들었는지? 하고 생각해보면.. 바로 추상화 때문이라고 볼 수 있습니다.

컴퓨터 하드웨어 구성

컴퓨터 필수장치 : CPU, 메모리 → 폰 노이만 구조

  • CPU : 명령어를 해석하여 실행하는 장치
    • Patch - Decode - Execute
  • 메모리 : 명령어들을 저장하고, 필요한 데이터들을 저장하는 곳
    • 주소를 통해 공간 구분
  • 나머지 주변 장치 : 입력장치, 출력장치, 저장장치

컴퓨터에 연결되는 모든 장치들은 최종적으로 메인보드와 연결됩니다.

버스 ( BUS )

그리고 메인보드에 연결된 각 장치들은 메인보드 내 버스 ( BUS ) 를 통해 통신합니다.

버스의 역할은 데이터를 실어나르는 것입니다.

버스가 어떻게 동작하는지에 따라 데이터 버스, 주소 버스, 제어 버스로 나눠서 볼 수 있습니다.

폰 노이만 구조

CPU 가 프로그램을 실행시키려면 메인 메모리에 적재되어 있어야 합니다.

이 적재되어 있어야 프로그램을 실행할 수 있다 라는 특징 때문에, 메인 메모리가 유일한 작업 공간이며 메모리 관리가 중요한 이슈라고 생각해볼 수 있습니다.

( 그래서 흔히들, 다다익램이라고도 이야기를 하는데, 램을 많이 끼울수록 속도가 빨라진다! 도 위의 이유때문에 나온 이야기라고 생각해볼 수도 있겠습니다. )

그러면.. 폰 노이만 구조를 이야기해봤는데, 단점은 무엇인지 한번 생각해볼 필요가 있습니다.

먼저 단점을 보기 전, 클럭과 버스의 동작 방식을 알아야 합니다.

컴퓨터의 장치들은 클럭 ( Clock ) 단위로 작업을 진행합니다.

  • 클럭 : 장치들의 작동을 동기화 해주는 타이밍
  • 클럭 1 사이클 → CPU 가 하나의 명령 처리

CPU 가 버스를 거쳐 메모리에 데이터를 읽고 / 쓰는 과정을 살펴보면..

제어 버스로 Read / Write 를 결정하고, 주소 버스에 메모리에 읽고 / 쓰고자 하는 위치의 주소를 적어두고, 다음 클럭 사이클에 데이터 버스로 해당 데이터가 입력 / 출력 됩니다.

그러면 만약 데이터의 크기가 크다면 → 데이터 버스로 나르는 길이가 길어진다 라는 뜻이고, 이 말은 즉슨 많은 클럭을 필요로 한다 라고 볼 수 있습니다.

병목현상

우리 일상에서 읽어야할 데이터의 크기가 버스의 크기보다 큰 경우는 매우 흔한 일입니다.

  • 버스의 크기는 CPU 가 한번에 처리할 수 있는 데이터의 크기인 Word 와 같은 뜻
  • 버스의 크기보다 크다면, 여러 클럭에 나눠서 데이터를 쪼개서 읽을 수 밖에 없음

만약 메모리에 갑자기 많은 입출력이 동시에 발생한다면 → 늦게 요청된 작업의 입출력은 앞의 처리를 기다릴 수 밖에 없습니다.

근데, 메모리는 원래 CPU 보다 속도가 느리니, 병목현상 이 발생합니다.

병목현상이 컴퓨터가 느려졌다! 의 원인 중 하나라고 볼 수 있습니다.

병목현상을 극복하기 위한 구조

  1. 물리적 설계
    1. 메모리를 CPU 와 제일 가까운 위치에 두기
    2. 클럭을 더 많이 쓰기
    3. 듀얼 채널
    4. 등등..
  2. 구조적 설계
    1. 버퍼 ( Buffer ) 도입!

버퍼란, 데이터 전달 간 임시로 저장하는 장치 혹은 장소를 뜻합니다.

여기서 메모리와 CPU 간 속도차이를 완화하고자, 일정량의 데이터를 모아 옮김으로써 속도차이를 완화할 수 있습니다.

예시로 5개의 짐을 옮겨야 한다 라고 생각해보면, 1개의 짐을 5번 옮길 때와 5개의 짐을 1번에 옮기는 것을 생각해보면 속도차이가 완화된다 라는 뜻을 이해해볼 수 있습니다.

메모리 계층 구조

🖥️ CPU - 캐시 - 메인 메모리 - 디스크

CPU 와 가까울수록 속도가 빠르고, 저장 용량이 작습니다.

디스크 와 가까울수록 속도가 느리고, 저장 용량이 큽니다.

CPU 에 대한 버퍼, 메모리의 메모리 라고 볼 수 있는 캐시는, 메인 메모리 ( RAM ) 보다 훨씬 빠른 메모리 입니다.

메모리와 CPU 간의 속도 차이를 완화하기 위해 ( 병목현상을 완화하기 위해 ) 메모리에서 앞으로 사용할 것으로 예상되는 데이터를 미리 가져와 임시 저장해두는 장소가 캐시 입니다.

CPU 는 메모리를 접근 해야할 때, 가까운 캐시를 우선 방문하여 데이터에 접근합니다.

만약 캐시에 접근할 때 데이터가 있을 경우를 Cache hit, 없을 경우를 Cache miss 라고 부릅니다. ( 당연히 hit 수가 높을수록 더 좋습니다. )

0개의 댓글