1-1. 하드웨어의 구성
컴퓨터의 구성
필수장치: CPU, 메인메모리
주변장치: 입력장치, 출력장치, 보조기억장치
저장장치
- 메인메모리보다 느리지만 저렴하고 용량이 큼
- 데이터를 영구적으로 저장
- 종류
- 자성 이용: 카세트테이프, 플로피디스크, 하드디스크 등
- 레이저 이용: CD, DVD, 블루레이디스크 등
- 메모리(램) 이용: USB 메모리, SD 카드, CF 카드, SSD 등
속도: 레지스터 > 캐시 메모리 > 메인메모리 > 버퍼 > 보조기억장치
메인보드
CPU와 메모리 등의 다양한 부품을 연결하는 판
장치들을 bus로 연결함
1-2. 폰노이만 구조
CPU, 메인메모리, 입출력장치, 보조기억장치가 버스로 연결되어 있는 구조
보조기억장치에서 메인메모리로 가지고 올라와야 실행 가능 → 병목현상 발생
1-3. 기초 용어
8bit = 1Byte, 1B에서 000 붙이면 KB, MB, GB, TB, PB
클록과 헤르츠
클록: 일정한 박자를 만들어 내는 것, 일정한 간격으로 만들어지는 틱을 펄스 or 클록 틱
클록이 만든 펄스에 맞추어 컴퓨터의 부품들이 작업을 진행
CPU의 성능 단위 헤르츠(Hz), 1초 동안 몇 번의 펄스가 발생하는 가?
시스템 버스, CPU 버스
시스템 버스: 메인메모리와 주변장치 연결, FSB(Front Side Bus)라고도 함(주소 버스, 데이터 버스, 제어 버스가 존재)
CPU 버스: CPU 내부의 장치를 연결, BSB(Back Side Bus)라고도 함
BSB 속도는 CPU 클록과 같고 FSB보다 빠르다.
프로그래밍과 언어
기계어: 컴퓨터가 이해할 수 있는 언어
어셈블리어: 기계어를 사람이 이해할 수 있는 문자 형태로 바꾼 언어(어려움) → 저급언어
일반인이 사용하기 쉬운 언어 → 고급언어
고급언어 → 기계어 번역 과정 = 컴파일, 컴파일을 하는 프로그램 = 컴파일러
인터프리터: 소스코드를 기계어로 한 번에 한 문장씩 번역
자료구조
큐: FIFO 구조
스택: FILO 구조
배열: 데이터를 메모리에 연속으로 저장, 공간의 삽입과 삭제같은 관리가 어려움
연결리스트: 데이터를 포인터로 연결
2-1. CPU 구성과 동작
산술논리 연산장치(ALU)
데이터 덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술연산, AND OR 같은 논리연산 수행
제어장치(control unit)
CPU에서 작업을 지시
레지스터
작업에 필요한 데이터를 CPU 내부에 보관하는 곳
종류
- 데이터 레지스터: 메모리에서 가져온 데이터를 임시 보관
- 주소 레지스터: 데이터 또는 명령어가 저장된 메모리의 주소를 저장
- 프로그램 카운터: 다음에 실행할 명령어의 주소를 기억했다가 알려줌
- 명령어 레지스터: 현재 실행 중인 명령어를 저장
- 메모리 주소 레지스터: 데이터를 메모리에서 가져오거나 보낼 때 주소 지정
- 메모리 버퍼 레지스터: 메모리에서 가져오거나 옮겨갈 데이터를 임시로 저
- 프로그램 상태 레지스터(프로그램 상태 워드): 연산 결과를 저장
메모리 사상 I/O
입출력 장치가 메인 메모리인 것처럼 CPU를 속여서 동작
메인 메모리의 주소 공간 일부분을 입출력 장치에 할당
버스의 특징
제어 버스: CPU가 메모리와 주변 장치에 제어 신호를 보내기 위해 사용, 양방향
주소 버스: MAR과 연결된 버스, 단방향
데이터 버스: MBR과 연결된 버스, 양방향
CPU 비트
32bit CPU는 CPU가 한번에 32bit를 처리할 수 있다는 뜻 → 한번에 처리할 수 있는 크기 = 워드
레지스터 크기와 버스의 대역폭도 32bit, 항상 3개는 같다
버스의 대역폭 = 한 번에 전달할 수 있는 데이터 최대 크기
2-2. 메모리 종류
램(휘발성 메모리)
DRAM: 메인 메모리, 저장된 데이터가 일정시간 후 사라져서 다시 재생시켜야 함
SRAM: 캐시 메모리, 전력이 공급되는 동안에는 데이터 보관 가능
SDRAM: 클록틱(펄스)가 발생할 때마다 데이터를 저장하는 동기 DRAM
램(비휘발성 메모리)
플래시 메모리: 전력 없어도 데이터 보관
SSD
롬
마스크롬: 데이터를 지우거나 쓸 수 없음
PROM: 전용 기계로 데이터를 한 번 저장 가능
EPROM: 데이터를 여러번 쓰고 지울 수 있음
EEPROM: 전기적으로 쓰고 지울 수 있는 EPROM
메모리 보호
CPU는 진행 중인 작업의 메모리 시작 주소를 경계 레지스터에 저장
진행 중인 작업이 차지하고 있는 메모리 크기를 한계 레지스터에 저장
부팅
운영체제를 메모리에 올리는 과정
바이오스 → 하드웨어 점검 + 메모리에 부트스트랩 코드를 올려 실행 → 운영체제 프로세스 실행
3-1. 버퍼
버퍼
속도 차이가 있는 두 장치 사이의 차이를 완화하는 장치
데이터를 일정량 모아서 옮김으로 속도 차이 완화
스풀
CPU와 입출력 장치가 독립적으로 동작하도록 고안된 소프트웨어적인 버퍼
캐시
메모리와 CPU 간의 속도차이(BSB와 FSB의 속도차이)를 완화하기 위해 데이터를 미리 가져와 저장해두는 임시 장소
CPU는 메모리에 접근하기 전 캐시를 방문하여 그 데이터가 있는 지 찾아봄
캐시의 구조
캐시 히트(cache hit): 원하는 데이터를 찾은 것, 바로 사용
캐시 미스(cache miss): 원하는 데이터가 없을 때, 메모리로 찾으러 감
캐시 적중률(cache hit ratio): 캐시 히트의 비율
즉시 쓰기, 지연 쓰기
즉시 쓰기: 캐시에 있는 데이터가 변경되면 즉시 메모리에 반영
성능 느려짐
지연 쓰기: 변경된 내용을 모아서 주기적으로 반영
성능 향상, 메모리와 캐시된 데이터 사이의 불일치 발생 가능성
L1 캐시, L2 캐시
일반 캐시: 메모리와 연결(L2), 명령어와 데이터의 구분 없이 모든 자료를 가져옴
특수 캐시: CPU 레지스터에 직접 연결(L1), 명령어와 데이터를 구분하여 가져옴
3-2. 저장장치의 계층 구조
개념
속도가 빠르고 비싼 저장 장치를 CPU와 가까운 쪽으로 배치
→ CPU가 작업을 빨리 진행, 작업한 내용을 저렴하고 용량이 큰 장치에 영구 저장
3-3. 인터럽트
폴링 방식
CPU가 직접 입출력장치에서 데이터를 가져오거나 내보내는 방식
CPU가 명령어 해석과 실행 외에 입출력까지 관여하므로 효율 떨어짐
인터럽트 방식
입출력 관리자가 대신 입출력을 해주는 방식
CPU의 작업과 저장장치의 데이터 이동을 독립적으로 운영 → 효율 높음
데이터 입출력 동안 CPU가 다른 작업 가능
- 인터럽트: 입출력 관리자가 CPU에 보내는 완료 신호
- 인터럽트 번호(Interrupt ReQuest): 어떤 장치의 작업이 끝났는 지를 CPU에게 알려주기 위한 번호
- 인터럽트 벡터: 한번에 여러 작업을 처리하기 위해 여러 인터럽트를 하나의 배열로 만든 것
- 동작 과정: CPU가 입출력 관리자에 입출력 요청 → 메모리와 입출력 관리자 사이의 데이터 전송 → 인터럽트 발생
3-4. 직접 메모리 접근
직접 메모리 접근(Direct Memory Access)
입출력 관리자가 CPU의 허락없이 메모리에 접근할 수 있는 권한
3-5. 사이클 훔치기
CPU와 직접 메모리 접근이 동시에 메모리에 접근하면 보통 CPU가 사용 권한을 양보
CPU보다 입출력 장치가 느리기 때문에, 이를 ‘사이클 훔치기’라고 함
4-1. 멀티코어 시스템
멀티 프로세서 시스템
성능을 높이기 위해 프로세서를 여러개 설치하여 사용하는 시스템
프로세서마다 레지스터와 캐시를 가짐, 모든 프로세서가 시스템 버스를 통해 메인메모리를 공유
많은 작업을 동시에 실행 가능
멀티 코어 시스템
기존 시스템을 유지한 채 멀티 프로세싱 가능
하나의 칩에 코어를 여러개 만들어 여러 작업을 동시에 처리
4-2. CPU 멀티스레드
명령어 병렬 처리 - 파이프 라이닝
하나의 코어에서 여러 개의 명령어를 동시에 처리
CPU 멀티 스레드
여러 개의 스레드를 동시에 처리
스레드 = CPU가 처리할 수 있는 작업의 단위
현대의 CPU
멀티 코어와 명령어 병렬 처리(하이퍼 스레딩) 기능을 모두 가짐
- 무어의 법칙: CPU 속도가 24개월마다 2배 빨라진다는 법칙
- 암달의 법칙: CPU의 속도를 2GHz에서 4GHz로 늘려도 컴퓨터 성능이 2배 상승하지는 않는다는 법칙, 주변 장치의 향상도 필요하다.
'Computer Science > 운영체제' 카테고리의 다른 글
5. 프로세스 동기화 (0) | 2024.08.01 |
---|---|
4. CPU 스케줄링 (0) | 2023.10.16 |
3. 프로세스와 스레드 (0) | 2023.10.16 |
1. 운영체제 개요 (0) | 2023.10.16 |