본문 바로가기
개인 공부/OS (쉽게 배우는 운영체제)

쉽게 배우는 운영체제 : 컴퓨터의 구조와 성능 향상 (2장)

by 희조당 2021. 10. 29.
728x90

■ 컴퓨터의 기본 구성

 · 필수장치 : CPU, 메인 메모리

 · 주변장치 : 입력장치, 출력장치, 저장장치

 

 하드웨어의 구성

 · CPU : 명령어를 해석하고 실행

 · 메인 메모리 : 프로그램, 데이터를 저장 / byte 단위, 주소로 구분

 · 저장장치 : 메모리에 비해 속도↓, 가격↓, 용량↑ / 데이터 영구 저장

 · 메인 보드 : 다양한 부품을 연결하는 판 / 버스로 연결

 

 폰 노이만 구조

 · 프로그램을 메모리에 위치시킴, 버스로 장치들이 연결된 구조

   → 메모리가 유일한 작업 공간, 모든 프로그램이 메모리에 올라와야 실행 가능

 

 관련 용어

 · 클록(clock) : CPU의 속도와 관련 / 클록에 맞춰 CPU가 작업

 · 헤르츠(Hz) : 클록 틱이 발생하는 속도 단위

 · 시스템 버스(FSB) : 메모리와 주변장치를 연결

 · CPU 내부 버스(BSB) : CPU 내부 장치를 연결

 

 CPU의 기본 구성

 · 산술논리 연산장치(ALU) : 데이터의 산술 연산과 논리 연산을 수행

 · 제어장치 : 작업을 지시하는 장치

 · 레지스터 : 임시 저장소

 

 레지스터의 종류

 · 데이터 레지스터(DR) : 명령어에 필요한 데이터 저장

 · 주소 레지스터(AR) : 데이터 또는 명령어의 주소 저장

 · 프로그램 카운터(PC) : 다음 명령어의 위치 정보 저장

 · 명령어 레지스터(IR) : 실행 중인 명령어 저장

 · 메모리 주소 레지스터(MAR) : 메모리 관리자가 접근해야 할 주소 저장

 · 메모리 버퍼 레지스터(MBR) : 메모리 관리자가 가져온 데이터를 임시로 저장

 · 프로그램 상태 레지스터(PSR) : 연산 결과를 저장

 

 버스의 종류

 · 시스템 버스(FSB)

   → 제어 버스 : 제어장치와 연결 / 제어 신호를 보냄 / 양방향

   → 주소 버스 : 메모리 주소 레지스터와 연결 / 위치 정보를 보냄 / 단방향

   → 데이터 버스 : 메모리 버퍼 레지스터와 연결 / 데이터 이동 / 양방향

※ 버스의 대역폭 = CPU가 한번에 처리 가능한 데이터의 크기

 

 메모리의 종류와 부팅

 · 램(RAM) : 읽고 쓸 수 있음

   → 휘발성 : DRAM, SRAM, SDRAM

   → 비휘발성 : SSD, 플레시 메모리, FRAM, PRAM 등

 · 롬(ROM) : 읽기만 가능 / 전력이 끊겨도 데이터를 보관 / BIOS 저장

 · 메모리 보호 : 주소를 이용해 하드웨어적으로 검사

   → 경계 레지스터(해당 작업의 시작 주소)와 한계 레지스터(작업의 크기)에 주소를 저장해 비교

 · 부팅 : 운영체제를 메모리에 올리는 과정

       BIOS 실행 (하드웨어 점검) → 메모리에 부트스트랩 코드 실행 → OS 실행

 

 컴퓨터 성능 향상 기술

 · 버퍼 : 속도 차이가 있는 두 장치의 차이를 완화하는 역할

 · 스플 : 하드웨어에 있는 버퍼 / CPU와 입출력 장치가 독립적으로 작동하게 함

※ 버퍼 vs 스플 : 버퍼는 프로그램이 공유, 스플은 배타적 (공유 X)

 · 캐시(Cache) : CPU와 메모리의 속도 차이를 완화 → 예상되는 데이터를 미리 가져와 임시로 저장

   → 캐시 히트 : 캐시에 원하는 데이터 O ↔ 캐시 미스 : 원하는 데이터 X, 메모리로 찾으러 감

   → 즉시 쓰기 : 캐시의 데이터가 변경되면 바로 메모리에 반영 / 성능↓ but 항상 최신값

   → 지연 쓰기 : 캐시의 데이터가 변경되면 일정한 주기마다 메모리에 반영 / 성능↑ but 데이터 불일치 가능성 O

   → L1 캐시(특수) : 명령어 캐시 + 데이터 캐시, 빠르다 / L2 캐시(일반)

 

 인터럽트

 · 폴링 : CPU가 직접 입출력 장치에서 데이터를 가져오거나 내보냄

   → 주기적으로 검사해 일정한 조건을 만족할 때 데이터를 처리 / 효율↓

 · 인터럽트 : 입출력 관리자가 CPU에게 알려주는 신호 / 구분을 위해 인터럽트 번호를 사용

       입출력 요청 → 데이터 전송 → 인터럽트 발생

 · 직접 메모리 접근(DMA) : 입출력관리자가 CPU 관여 없이 메모리에 접근할 수 있는 권한

   → 메모리는 CPU의 영역이기 때문에

 · 메모리 매핑 : 메모리의 일정 공간을 입출력에 할당하는 기법

 

병렬 처리

 · 병렬 처리 : 동시에 여러 개의 명령을 처리해 효율을 올리는 방법

   → 고려 사항 : 상호 의존성이 X, 단계별로 시간이 일정해야 함, 단계를 잘 나눠야 함

   → 명령어 처리 : 명령어 패치(IF) - 명령어 해석(ID) - 실행(EX) - 쓰기(WB)

· 슈퍼스칼라 : 파이프라인을 처리하는 코어를 여러 개 구성하여 명령어 처리

· VLIW : CPU가 명령어 처리를 지원하지 않을 때 → SW적으로 병렬 처리 / 성능↓

댓글