Cohe

2장 컴퓨터의 구조와 성능 향상 본문

운영체제

2장 컴퓨터의 구조와 성능 향상

코헤0121 2024. 1. 10. 15:59
728x90

컴퓨터의 기본 구성

하드웨어 구성

  1. 컴퓨터의 구성
    • 필수장치: 중앙처리장치, 메인메모리(대부분의 작업이 이루어 짐)
    • 주변장치: 입력장치, 출력장치, 저장장치
  2. 용어 통일
    • 메인메모리 → 메모리
    • 보조저장장치 → 저장장치
    • 중앙처리장치 → CPU
  3. CPU와 메모리
    • CPU : 명령어를 해석하여 실행하는 장치로 인간으로 치면 두뇌에 해당
    • 메모리
      • 작업에 필요한 프로그램과 데이터를 저장하는 장소
      • 바이트 단위로 분할되어 있으며 분할 공간마다 주소로 구분
  4. 입출력장치
    • 입력장치 : 외부의 데이터를 컴퓨터에 입력하는 장치
    • 출력장치 : 컴퓨터에서 처리한 결과를 사용자가 원하는 형태로 출력하는 장치
  5. 저장장치
    • 메모리보다 느리지만 저렴하고 용량이 큼
    • 전원의 온·오프와 상관없이 데이터를 영구적으로 저장
    • 느린 저장장치를 사용하는 이유는 저장 용량에 비해 가격이 싸기 때문
    • 종류
      • 자성 이용 장치: 카세트테이프, 플로피디스크, 하드디스크 등
      • 레이저 이용 장치: CD, DVD, 블루레이디스크 등
      • 메모리 이용 장치: USB 드라이버, SD 카드, CF 카드, SSD 등
  6. 메인보드
    • CPU와 메모리 등 다양한 부품을 연결하는 커다란 판
    • 다양한 장치들을 버스(bus)로 연결 함. 버스는 데이터가 지나다니는 통로
    • 그래픽카드, 사운드카드, 랜카드 등이 기본으로 장착되어 있기도 하고, 성능을 향상하기 위해 따로 장착하기도 함

폰노이만 구조

  • Stored Program 방식이라고도 함
  • 프로그램이 실행되기 위해 메모리에 저장되어야 하고, 중앙 처리 장치(CPU)가 이를 읽어 들여 명령어를 실행하는 방식으로 동작하는 구조

💡 모든 프로그램은 메모리에 올라와야 실행할 수 있다.

기초 용어 정리

  1. 클록과 헤르쯔
    • CPU의 속도와 관련된 단위
    • 클록이 일정 간격으로 틱tick을 만들면 거기에 맞추어 CPU 안의 모든 구성 부품이 작업함
    • 틱은 펄스pulse 또는 클록틱clock tick이라고도 부름
    • 헤르츠(Hz) :클록틱이 발생하는 속도를 나타내는 단위
    • 1초에 클록틱이 한 번이면 1Hz, 1,000번이면 1kHz(1,000Hz)
  2. 시스템 버스와 CPU 버스
    • 시스템 버스(system bus)는 메모리와 주변장치를 연결하는 버스로, 메인보드의 동작 속도를 의미하며 FSB(Front-Side Bus) 혹은 전면 버스라고 부름
    • CPU 버스는 CPU 내부의 다양한 장치를 연결하는 것으로 BSB(Back Side Bus)
    • BSB 속도는 CPU 클록과 같고 FSB보다 훨씬 빠름 혹은 후면 버스라 부름
  3. 산술논리 연산장치(Arithmetic and Logic Unit; ALU)
    • 데이터의 덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산과 AND, OR 같은 논리 연산을 수행
  4. 제어장치(control unit)
    • CPU에서 작업을 지시하는 부분
  5. 레지스터(register)
    • 작업에 필요한 데이터를 CPU 내부에 보관하는 곳

 

CPU와 메모리

CPU의 구성과 동작

  1. CPU의 명령어 처리 과정
    • CPU에서는 산술논리 연산장치, 제어장치, 레지스터들이 협업하여 작업 처리
  2. 레지스터의 종류
    • 데이터 레지스터(data register; DR): 메모리에서 가져온 데이터를 임시 보관. 일반 레지스터 또는 범용 레지스터라고 부름
    • 주소 레지스터(address register; AR): 데이터 또는 명령어가 저장된 메모리의 주소를 저장하는 레지스터
    • 프로그램 카운터(program counter; PC): 다음에 실행할 명령어의 주소를 기억했다가 제어장치에 알려줌. 명령어 포인터(instruction pointer)라고도 함
    • 명령어 레지스터(instruction register; IR): 현재 실행 중인 명령어를 저장
    • 메모리 주소 레지스터(memory address register; MAR): 데이터를 메모리에서 가져오거나 보낼 때 주소를 지정하는 데 사용
    • 메모리 버퍼 레지스터(memory buffer register; MBR): 메모리에서 가져오거나 옮겨갈 데이터를 임시로 저장. 항상 메모리 주소 레지스터와 함께 동작함
  3. CPU 비트의 의미
    • 32bit CPU, 64bit CPU에서 32bit, 64bit는 CPU가 한 번에 처리할 수 있는 데이터의 최대 크기
    • 32bit CPU는 메모리에서 데이터를 읽거나 쓸 때 한 번에 최대 32bit를 처리할수 있으며 레지스터 크기도 32bit, 버스 대역폭도 32bit
    • 버스의 대역폭(bandwidth)은 한 번에 전달할 수 있는 데이터의 최대 크기로 CPU가 한 번에 처리할 수 있는 데이터의 크기와 같음
    • 버스의 대역폭, 레지스터의 크기, 메모리에 한 번에 저장할 수 있는 데이터의 크기는 항상 같음
    • CPU가 한 번에 처리할 수 있는 데이터의 최대 크기를 워드(word)라고 하며 32bit CPU에서 1워드는 32bit, 64bit CPU에서 1워드는 64bit

메모리의 종류와 부팅

  1. 휘발성 메모리(volatility memory)
    • DRAM(Dynamic RAM)
      • 저장된 0과 1의 데이터가 일정 시간이 지나면 사라지므로 일정 시간마다 다시 재생시켜야 함
    • SRAM(Static RAM)
      • 전력이 공급되는 동안에는 데이터를 보관 할 수 있어 재생할 필요가 없음
    • SDRAM(Synchronous Dynamic Random Access Memory)
      • 클록틱(펄스)이 발생할 때마다 데이터를 저장하는 동기 DRAM
  2. 비휘발성 메모리(non-volatility memory)
    • 플래시 메모리(flash memory) : 디지털카메라, MP3 플레이어, USB 드라이버같이 전력 없어도 데이터 보관
    • SSD(Solid State Drive) : 가격이 비싸지만 빠른 데이터 접근 속도, 저전력, 높은 내구성으로 많이 사용
  3. 롬의 종류
    • 마스크 롬(mask ROM): 데이터를 지우거나 쓸 수 없음
    • PROM(Programmable ROM): 전용 기계를 이용하여 데이터를 한 번만 저장할 수 있음
    • EPROM(Erasable Programmable ROM): 데이터를 여러 번 쓰고 지울 수 있음
  4. 메모리 보호
    • 현대의 운영체제는 시분할 기법을 사용하여 여러 프로그램을 동시에 실행하므로 사용자 영역이 여러 개의 작업 공간으로 나뉘어 있음
    • 메모리를 보호하기 위해 CPU는 현재 진행 중인 작업의 메모리 시작 주소를 경계 레지스터(bound register)에 저장하고 현재 진행 중인 작업이 차지하고 있는 메모리의 크기(마지막 주소까지의 차이)를 한계 레지스터(limit register)에 저장
    • 사용자 작업이 진행되는 동안 두 레지스터의 주소 범위를 벗어나는지 하드웨어 측면에서 점검함으로써 메모리 보호
  5. 부팅
    • 컴퓨터를 켰을 때 운영체제를 메모리에 올리는 과정

 

컴퓨터 성능 향상 기술

버퍼

  1. 버퍼
    • 속도에 차이가 있는 두 장치 사이에서 그 차이를 완화하는 역할을 하는 장치
    • 일정량의 데이터를 모아 옮김으로써 속도의 차이를 완화
  2. 스풀
    • [예] 스풀러
      • 인쇄할 내용을 순차적으로 출력하는 소프트웨어로 출력 명령을 내린 프로그램과 독립적으로 동작
  3. 캐시
    • 메모리와 CPU 간의 속도 차이(BSB와 FSB의 속도 차이)를 완화하기 위해 메모리의 데이터를 미리 가져와 저장해두는 임시 장소
    • 캐시 히트cache hit : 캐시에서 원하는 데이터를 찾는 것으로, 그 데이터를 바로 사용
    • 캐시 미스cache miss : 원하는 데이터가 캐시에 없으면 메모리로 가서 데이터를 찾음
    • 캐시 적중률cache hit ratio
      • 캐시 히트 되는 비율로 일반적인 컴퓨터의 캐시 적중률은 약 90%
  4. L1 캐시와 L2 캐시
    • 캐시는 명령어와 데이터의 구분 없이 모든 자료를 가져오는 일반 캐시, 명령어와 데이터를 구분하여 가져오는 특수 캐시로 구분
    • 일반 캐시: 메모리와 연결되기 때문에 L2(Level 2) 캐시라고 부름
    • 특수 캐시: CPU 레지스터에 직접 연결되므로 L1(Level 1) 캐시라고 부름

저장장치의 계층 구조

  • 속도가 빠르고 값이 비싼 저장장치를 CPU 가까운 쪽에 두고, 값이 싸고 용량이 큰 저장장치를 반대쪽에 배치해 적당한 가격으로 빠른 속도와 큰 용량을 동시에 얻는 방법

인터럽트

  1. 폴링(polling) 방식
    • CPU가 직접 입출력장치에서 데이터를 가져오거나 내보내는 방식
    • CPU가 입출력장치의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 데이터를 처리
    • CPU가 명령어 해석과 실행이라는 본래 역할 외에 모든 입출력까지 관여하므로 작업 효율 떨어짐
  2. 인터럽트(interrupt) 방식
    • 입출력 관리자가 대신 입출력을 해주는 방식
    • CPU의 작업과 저장장치의 데이터 이동을 독립적으로 운영함으로써 시스템의 효율을 높임
    • 데이터의 입출력이 이루어지는 동안 CPU가 다른 작업을 할 수 있음
  3. 인터럽트 : 입출력 관리자가 CPU에 보내는 완료 신호
  4. 인터럽트 번호
    • 많은 주변장치 중 어떤 것의 작업이 끝났는지를 CPU에 알려주기 위해 사용하는 번호
    • 윈도우 운영체제에서는 IRQ라 부름
  5. 인터럽트 벡터
    • 여러 개의 입출력 작업을 한꺼번에 처리하기 위해 여러 개의 인터럽트를 하나의 배열로 만든 것
  6. 인터럽트 방식의 동작 과정
    • CPU가 입출력 관리자에게 입출력 명령을 보낸다.
    • 입출력 관리자는 입출력 명령을 실행한다.
    • 입출력이 완료되면 입출력 관리자는 완료 신호를 CPU에 보낸다.

직접 메모리 접근

직접 메모리 접근(Direct Memory Access; DMA)

  • 입출력 관리자가 CPU의 허락 없이 메모리에 접근할 수 있는 권한
  • 메모리는 CPU 작업 공간이지만, 데이터 전송을 지시받은 입출력 관리자는 직접 메모리 접근 권한이 있어야만 작업을 처리할 수 있음

멀티 프로세싱

멀티코어 시스템

  1. 멀티 프로세서 시스템(multi processor system)
    • 컴퓨터의 성능을 높이기 위해 프로세서를 여러 개 설치하여 사용하는 시스템
    • 프로세서마다 레지스터와 캐시를 가지며, 모든 프로세서가 시스템 버스를 통하여 메인메모리를 공유
    • 장점: 많은 작업을 동시에 실행시킬 수 있음
  2. 멀티코어(multi-core) 시스템
    • 기존 시스템을 유지한 채 멀티 프로세싱을 할 수 있게 하는 시스템
    • 하나의 칩(chip)에 CPU의 핵심이 되는 코어(core)를 여러 개 만들어 여러 작업을 동시에 처리
    • 듀얼코어(dual core)는 CPU의 주요 기능을 담당하는 코어가 2개, 쿼드코어(quad core)는 4개

CPU 멀티 스레드

  1. 명령어 병렬 처리(instruction parallel processing)
    • 하나의 코어에서 여러 개의 명령어를 동시에 처리하는 것
  2. CPU 멀티스레드(multithread)
    • 여러 개의 스레드를 동시에 처리하는 방법
    • 스레드(thread)란 CPU가 처리할 수 있는 작업의 단위
  3. 현대의 CPU
    • 하나의 칩에 멀티코어와 명령어 병렬 처리 기능을 한꺼번에 구현
    • 코어가 4개이지만 명령어 병렬 처리로 논리적인 코어의 수가 8개처럼 보임
  4. CPU 관련 통용 법칙
    ① 무어의 법칙(Moore’s law)  
    • CPU 속도가 24개월마다 2배 빨라진다는 법칙
    • 요즘에는 CPU 처리 속도를 올리는 대신 멀티코어를 장착해 CPU를 여러 개 사용하는 것과 같은 효과를 얻음
    • 하나의 코어에서 여러 개의 명령어를 동시에 실행하는 멀티스레드 기술도 많이 사용
    ② 암달의 법칙(Amdahl’s law)
    1. 주변장치의 향상 없이 CPU 속도를 2GHz에서 4GHz로 늘리더라도 컴퓨터 성능이 2배 빨라지지는 않는다는 법칙
    2. CPU 속도를 올려도 메모리를 비롯한 주변장치가 CPU 발전 속도를 따라가지 못해 컴퓨터의 전반적인 성능은 CPU 성능 향상에 못미침
    3. 싱글코어 대신 듀얼코어를 사용하더라도 CPU 내 다른 부품의 병목 현상으로 CPU 성능이 2배가 되지 않음

 

'운영체제' 카테고리의 다른 글

4장 CPU 스케줄링  (1) 2024.01.10
3장 프로세스와 스레드  (0) 2024.01.10
1장 운영체제의 개요  (1) 2024.01.10
12장 네트워크와 분산 시스템  (1) 2023.06.07
11장 파일 시스템  (0) 2023.06.07