Back

운영체제 - 하드웨어의 구성

ORACLE DB 서브 쿼리

하드웨어의 구성

하드웨어의 구성

1. 하드웨어의 구성

CPU

  • 명령어를 처리

RAM

  • 작업에 필요한 프로그램과 데이터를 저장하는 장소
  • 바이트 단위로 분할되어 있으며 분할 공간마다 주소로 구분

입출력장치

저장장치

메인보드

  • 다양한 장치들을 bus로 연결한다

2. 폰 노이만 구조

  • CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 구조
  • 프로그램은 하드디스크 등의 저장장치에 저장
  • 하드디스크에서 프로그램을 직접 실행할 수 없고 메모리로 가져와야 실행 가능
  • 그러므로 메인 메모리의 관리가 중요한 포인트
  • 메모리가 작을수록 동시에 실행할 수 있는 프로그램이 적어지므로 컴퓨터가 느려진다

3. 하드웨어 사양 관련 용어

클럭

  • 일정 간격으로 tick을 만들어 CPU 구성요소들이 이에 맞춰 작업
  • 클록틱, 펄스라고도 함

헤르츠

  • 클록틱이 발생하는 속도를 나타내는 단위
  • 1초에 1000번이면 1000Hz (1kHz)

시스템 버스

  • 메모리와 주변 장치를 연결하는 버스, FSB Front Side Bus 라고 함

CPU 내부 버스

  • CPU 내부에 있는 장치들을 연결하는 버스. BSB Back Side Bus 라고 함

CPU와 메모리의 속도

  • CPU는 CPU 내부 버스의 속도로 작동하고 메모리는 시스템 버스의 속도로 작동
  • 일반적으로 CPU 내부 버스의 속도가 더 빠르다
  • 두 버스의 속도 차이로 인해 작업이 지연되며, 이 문제를 Cache로 해결

4. CPU의 구성과 동작

산술논리 연산장치 (ALU)

  • AND, OR과 같은 논리연산과 덧셈, 뺄셈같은 산술 연산을 수행

제어장치

  • CPU에서 작업을 지시

레지스터

  • CPU 내에 데이터를 임시로 보관

5. CPU의 명령어 처리 과정

  • 고급 언어로 스크립트를 짜서 컴파일하면 저수준 언어인 어셈블리어로 변환
  • CPU는 어셈블리어를 해석해 명령어 수행

image
image

image
image

프로그램 상태 레지스터의 역할

  • 연산 결과가 음수인지 아닌지, 0이 아닌지, 자리 올림이 있는지 등의 프로그램의 상태를 저장

image
image

  • D2-D3의 결과를 임시로 저장하고 있다가 해당 상태를 제어장치에 알려주어 다음에 몇번 행으로 이동할지를 결정

6. 버스의 종류 💥

버스의 종류와 특징, 양방향인지 단방향인지 외워둘 것

image
image

image
image

버스의 대역폭

  • 한번에 전달 가능한 데이터의 최대 크기
  • CPU가 한 번에 처리할 수 있는 데이터의 크기와 같다
  • CPU가 한 번에 처리할 수 있는 최대 데이터의 크기를 word라고 부름
  • 32bit CPU는 메모리에서 데이터를 읽거나 쓸 때 한번에 최대 32bit를 처리할 수 있음. 이 경우 레지스터의 크기32bit, 버스의 대역폭32bit.
  • 버스의 대역폭, 레지스터의 크기, 메모리에 한 번에 저장할 수 있는 데이터의 크기는 동일

7. 메모리의 종류

image
image

휘발성 메모리

  • DRAM
    • 저장된 0과 1의 데이터가 시간이 지나면 사라지므로 일정 시간마다 다시 재생시켜야 한다
  • SRAM
    • 전력이 공급되는 동안에는 데이터를 보관할 수 있어 재생할 필요 없음
  • SDRAM
    • 클록틱이 발생할 때 데이터를 저장하는 동기 DRAM

비휘발성 메모리

  • 플래시 메모리
  • SSD

롬의 종류

  • 마스크 롬
    • 데이터를 지우거나 쓸 수 없음
  • PROM
    • 전용 기게를 이용해 데이터를 한 번만 저장할 수 있음
  • EPROM
    • 데이터를 여러 번 쓰고 지울 수 있음

8. 메모리 보호의 필요성

  • 현대 운영체제는 시분할 기법을 사용해 여러 프로그램을 동시에 실행
  • 메모리를 보호하지 않으면 어떤 작업이 다른 작업의 영역을 침범해 크래시를 일으킬 수 있음

image
image

즉, 프로그램 작업영역을 한정해두고 이를 벗어나는 행동이 일어나면 운영체제가 프로그램을 강제 중단한다는 것.

9. 부팅

  • 컴퓨터를 켰을 때 운영체제를 메모리에 올리는 과정
  • Bootstraping의 약자

image
image

  • 마스터 부트 레코드에 있는 부트스크랩 코드를 올려서 실행
    • 부트스트랩 코드는 하드디스크에 있는 운영체제 프로그램을 실행

10. 버퍼

버퍼

  • 속도에 차이가 있는 두 장치에서 그 차이를 완화하는 역할을 함
  • 두 장치 사이에서 일정량의 데이터를 모아서 옮겨 속도의 차이를 완화
  • 예를들어 A장치가 빠르고 B장치가 느리다면, A장치는 B장치가 다른 작업을 하는 동안 버퍼에 데이터를 넘기고 자신도 다른 작업을 할 수 있다.

스풀

  • CPU와 입출력장치가 독립적으로 동작하도록 고안된 소프트웨어적인 버퍼
  • 예시) 프린터 스풀
    • 스풀이 없다면 예를들어 워드에서 프린팅을 할 경우 프린팅이 완료될 때 까지 워드 프로그램은 프리징 상태가 되어버릴 것이다.

캐시

  • 메모리와 CPU간의 속도 차이 (BSB, FSB 사이의) 를 완화하기 위해 메모리의 데이터를 미리 가져와 저장
  • CPU가 앞으로 사용할 것으로 예상되는 데이터를 미리 가져다놓음
  • CPU는 메모리에 접근해야 할 때 캐시를 먼저 방문해 원하는 데이터가 있는지 찾아봄

캐시의 구조

  • 캐시 히트

    • 캐시에서 원하는 데이터를 찾는 것
  • 캐시 미스

    • 원하는 데이터가 캐시에 없으면 메모리로 가서 데이터를 찾음
  • 캐시 적중률

    • 캐시 히트가 되는 비율
    • 일반적인 캐시 적중률은 약 90%

    image
    image

캐시 적용 예

  • L1 캐시만 사용 가정
  • 캐시 접근 시간 = 10
  • 메모리 접근 시간 = 100
  • 캐시 적중률 = 80%
    • 즉 캐시를 80% 사용하고 나머지 20% 경우에만 메모리에서 가져온다는 뜻
  • 메모리만 사용하는 경우 평균 접근시간 = 100
  • 캐시 사용시 평균 접근시간 = 30

$$(0.8\times10)+(0.2\times100) = 28$$

캐시의 쓰기 방식

즉시 쓰기

  • 캐시에 있는 데이터가 변경되면 이를 메모리에 즉시 반영하는 방식
  • 메모리와의 빈번한 전송으로 성능이 느려짐
  • 메모리의 최신 값이 항상 유지. 갑작스러운 정전에도 데이터를 잃어버리지 않음

지연 쓰기

  • 실시간으로 변경하지 않고, 캐시에서 변경된 내용을 주기적으로 확인해 메모리에 반영
  • 카피백 이라고도 함
  • 메모리와 데이터 전송 횟수가 줄어들어 시스템의 성능 향상
  • 메모리와 캐시된 데이터 사이의 불일치가 발생할 수 있음

L1 캐시와 L2 캐시

image
image

일반 캐시

  • 명령어와 데이터의 구분 없이 모든 자료를 가져옴
  • 메모리와 연결되기 때문에 L2 (Level 2) 캐시라고 부름

특수 캐시

  • 명령어와 데이터를 구분하여 가져옴
  • CPU 레지스터에 직접 연결되기 때문에 L1 (Level 1) 캐시라고 부름

11. 저장장치의 계층 구조

개념

  • 속도가 빠르고 값이 비싼 저장장치를 CPU 가까운 쪽에
  • 싸고 용량이 큰 저장장치를 반대쪽에 배치하여
  • 빠른 속도와 큰 용량을 적절한 가격으로 얻는 것

장점

  • CPU와 가까운 쪽에 레지스터나 캐시를 배치해 작업이 빨리 이루어지도록 함
  • 메모리에서 작업한 내용을 하드디스크같이 저렴하고 용량이 큰 저장장치에 영구적으로 저장

image
image

Built with Hugo
Theme Stack designed by Jimmy