■ 컴퓨터의 기본 구성
· 필수장치 : 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적으로 병렬 처리 / 성능↓
'개인 공부 > OS (쉽게 배우는 운영체제)' 카테고리의 다른 글
쉽게 배우는 운영체제 : 가상 메모리 관리 (9장) (0) | 2021.10.29 |
---|---|
쉽게 배우는 운영체제 : 운영체제의 개요 (1장) (0) | 2021.09.26 |
댓글