CPU
cpu (Central Processing Unit, 중앙처리장치)의 구조적 이해
입력장치로부터 자료를 받아 연산하고 그 결과를 출력장치로 보내는 일련의 과정을 제어 및 조정하는 핵심장치
CPU의 구성요소
ALU | 각종 산술연산 (+, -, * , /)과 논리연산 (AND, OR, NOT, XOR)을 수행하는 회로 |
Register | CPU 내부 소규모 데이터나 중간값을 일시적으로 기억하는 고속 전용 영역 * 컴퓨터 기억장치중 Access 속도가 가장 빠르다. |
Control Unit | 프로그램 코드(명령어)를 해석하고, 그것을 실행하기 위한 제어 신호 발생 |
내부 CPU 버스 | ALU와 레지스터간 데이터 이동 경로 |
Register 종류
PC (Program Counter) | 다음에 수행할 명령어가 저장된 주기억장치 번지 지정 |
MAR (Memory Address Register) | 주기억장치에 접근하기 위한 주기억장치 번지 기억 |
MBR (Memory Buffer Register) | 주기억장치에 입/출력할 자료 기억 |
IP (Instruction Register) | 주기억장치에서 인출할 명령코드 기억 |
Bus System
시스템에 많은 장치를 공유해 데이터, 주소, 제어 정보를 전달하는 전송라인
(한정된 자원, 사용방식에 따라 입출력 성능에 영향을 줌)
종류 | 설명 |
데이터 버스 (Data Bus) | 시스템 컴포넌트 간 처리 데이터 전송 |
주소 버스 (Address Bus) | 기억장소 위치 또는 장치 식별 지정 (라인의 비트 수에 따라 접속 가능한 장치의 용량을 결정) |
제어 버스 (Control Bus) | CPU와 기어장치 또는 I/O 장치 사이 제어 신호 전송 |
Instruction Cycle (CPU 명령 실행 주기)
하나의 명령어 실행이 끝난 후, 다음 명령어 수행이 시작되어 끝날 때까지 걸리는 시간
단계 | 설명 |
인출 (Instruction Fetch) | 메모리에서 데이터를 로드하여 CPU에 있는 레지스터에 적재 |
간접 (Indirect) | 메모리 참조 시 간접주소 방식을 사용하는 경우 (간접주소: CPU가 메몰를 참조했을 때 데이터가 아닌 주소가 존재, 메모리 내에서 한번 더 조회해서 데이터를 얻는 것) |
실행 (Execution) | 명령과 데이터로 CPU가 산술 및 논리연산 수행 |
인터럽트 (Interrupt) | 컴퓨터 작동 중 문제가 발생한 경우에도 업무 처리가 계속되도록하는 기능 - SVC H/W 입터럽트 : 기계착오 인터럽트, 외부 인터럽트, 입출력 인터럽트, 프로그램 검사 인터럽트 - S/W 인터럽트 : CPU 내부에서 자신이 실행한 명령이나 CPU 명령 실행에 관련된 모듈이 변화하는 경우 발생 |
Memory System
기억장치 계층구조 (Memory Hierarchy)
크기, 속도, 가격당 성능에 따라 분류된 기억장치를 계층적으로 구성한 설계 아키텍처
→ 평균 기억장치 액세스 속도↑, 가격 대비 성능비 적절히 유지 { (용량↑) → (가격↓, 액세스 속도 ↓) }
캐시 메모리 (Cache Memory)
중앙처리장치가 읽어 들인 데이터 (명령, 프로그램)들로 채워지는 버퍼 형태의 고속 기억장치
(CPU와 주기억장치의 속도 차이를 극복하기 위해 CPU와 주 기억장치 사이에 존재함)
사상(Mapping) 방식
메인메모리에 있는 값을 매핑 방법에 의거해 캐시에 올리는 것
● 태그 크기 : 메모리를 2n개의 구역으로 나눈 경우, n개의 태그 필요
● Cache 주소 결정 :
sol. 1 : (메모리 블록 주소) mod (캐시 전체 블록 수)
sol. 2 : 캐시 블록 수가 2n개일 경우, 메모리 주소의 하위 n비트
[Index] [Valid Bit] [Tag]
- Index (색인) : Cache의 순서 번호 ( 순차 주소이므로 별도 공간을 차지하지 않음)
- Valid bit (유효) : 저장 데이터의 유효성 비트
- Tag (태그) : 맵핑된 메모리 주소의 Cache 식별을 위한 Index bit로 사용되는 하위비트를 제외한 상위 비트
1. 직접사상 (Direct Mapping)
Main Memory를 여러 구역으로 분할하여 Cache 슬롯과 매핑
2. 연관사상 (Associcate mapping)
main Memory의 각 블록이 Cache의 어느 슬롯이든 적재 가능
3. 직접 연관사상 (Set Associcate Mapping)
직점사상 / 연관사상 절충 방식으로 캐시와 메모리가 n:1로 대응함.
캐시 메모리 관리 방식
캐시 메모리 인출 방식
- Demand Fetch : 필요시 캐시 인출
- Pre-Fetch : 예상되는 블록 미리 인출
캐시 메모리 교체 알고리즘
종류 | 설명 | 특징 |
Random | 교체될 Page 임의 선정 | Overhead가 적다 |
FiFO (First in First OUT |
캐시 내 오래 있었던 Page 교체 | 자주 사용되는 Page가 교체될 우려 있음 |
LFU (Least Frequently Used) |
사용 횟수가 가장 적은 Page 교체 | 최근 적재된 Page가 교체될 우려 있음 |
LRU (Least Recently Used) |
가장 오랫동안 사용되지 않은 Page 교체 | Time stamping에 의한 overhead가 있을 수 있음 |
Optimal | 향후 가장 참조되지 않을 Page 교체 | 실현 X |
NUR (Not Used Recently) |
참조 비트와 수정 비트로 미사용 Page 교체 | 최근 사용되지 않을 Page 교체 |
SCR (Second Chance Replacement) |
최초 참조 비트 1로 셋, 1인 경우 0으로 셋, 0인경우 교체 |
기회 제공 |
문제점
- Page Fault (페이지 부재) : 기억장치에 적재되지 않은 Page를 사용해야 할 때
- Demand Paging(요구 페이징) : 요구될 때에만 Process가 Page를 적재
- Thrashing(스레싱) : CPU가 Process 수행보다 Page 교체에 더 많은 시간을 소요
해결 방안
- Load Control : 일정시간 동안 새로운 프로세서가 생성되는 것을 지연시키고 Suspend Queue에 대기
→ Thrashing 현상 감소 - Locality : 시공간 지역성을 집중적으로 참조
- Working Set : 일정시간 동안 참조되는 페이지 집합 (Working Set)을 주기억장치에 유지
- PFF(Page Fault Frequency) : Process의 Page Fault 빈도에 따라 Residence set 조정
캐시 메모리 일관성
멀티 프로세서 환경, 각 프로세서가 캐시 보유 && 캐시에 로드된 데이터 변경
→ 주 기억장치의 데이터와 동일하게 유지
ex) Cpu가 Cache와 메모리에 데이터를 기록하는 방식은 Write-Through와 Write-back 두 가지다.
- Write-through 정책 사용
프로세서 P1이 X값을 110으로 갱신, 주기억장치의 값이 110으로 갱신, 그러나 P2, P3캐시는 100 → 일관성이 깨짐 - Write-back 정책 사용
데이터를 Cache에만 기록하고, 차후 메모리에 저장 메모리에 기록하기 전까지는 캐시와 주기억장치 값이 서로 다름
→ 일관성이 깨짐
가상 메모리 시스템
용량이 적은 주기억장치 대신 보조기억장치를 주기억장치처럼 사용하는 기억장치 관리 방법
→ 물리적 메모리 크기의 한계를 극복하기 위해 실제 물리적 메모리보다 더 큰 용량의 메모리 공간을 제공함
관리단위
- Page : 가상 기억장치 상에서 동일한 크기의 최소 논리 분할 단위로 나눈 것
- Segment: 사용자 주소 공간을 용도별로 논리적 단위로 나눈 것
Page 기법 | Segmentation 기법 | |
할당 | 고정 (Static) 분할 | 가변(Dynamic) 분할 |
적재 | 요구 Page만 일부 적재 (On-demand) | 프로그램 전체 적재 (On-demand) |
관점 | 메모리 관리 | 파일 관리 |
장점 | - 요구 Page만 적재 Load - 외부 단편화 해결 - 교체시간 최소 |
- 사용자 관점 - 내부 단편화 해결 - 코드, 데이터 공유 용이(개발/프로그래밍 용이) |
단점 | - 내부 단편화 발생 - Thrashing, 잦은 디스크 I/O 유발 |
- 외부 단편화 심각 - 메인 메모리가 커야 함 |
관리 정책
종류 | 설명 | 유형 |
Allocation 할당 기법 | 프로세스에게 할당되는 메모리 블록 단위 결정 | 고정 할당, 가변 할당, Paging, Segmentation |
Fetch Policy 호출 기법 | 보조기억장치에서 주기억장치로 적재할 시점 결정 | Demand Fetch, Pre Fetch |
Placement 배치 기법 | 요구된 페이지를 주기억장치 어느 곳에 적재할지 결정 | First fit, Best fit, Next fit, Worst fit |
Replacement 교체 기법 | 주기억장치 공간 부족 시 교체 대상 결정 | Random, FIFO, LRU, LRU, NUR, SCR, Optimal |
'자격증 > 정보보안기사' 카테고리의 다른 글
[정보보안기사] 1과목 운영체제 구조 정리 및 요약 Part (1) (0) | 2024.10.11 |
---|