[1. CPU 구성요소]
1. ALU
- 사칙 연산
- 논리 연산: AND, OR, XOR, NOT
2. Register
- General Purpose Register
- Special Purpose Register
- Program Counter: 다음에 수행 할 명령어의 주소를 저장
- Memory Address Register: 메모리에 접근하기 위한 주기억장치의 주소를 저장
- Memory Buffer Register: 주기억장치에 입/출력 할 데이터를 저장
- Instruction Register: 현재 수행 할 명령어를 저장
3. Control unit
4. Bus
- 데이터, 주소, 제어 정보등을 전달하며, 각 유형에 따른 버스가 존재
- Bus 를 획득하기 위한 자원 경쟁이 발생
[2. Instruction Cycle]
1. Fetch
- 수행 할 명령어를 적재
2. Indirect
- 메모리 참조 시 간접 주소 방식을 사용하는 경우에 발생
- 메모리에 저장 된 주소를 확인 후, 해당 주소에서 데이터를 가져오는 것
3. Execution
4. Interrupt
- Hardware Interrupt
- Software Interrupt
[3. Memory hierarchy]
1. 레지스터
2. 캐시
- 직접 사상 (Direct Mapping)
- 주기억장치를 여러 구역으로 분할 후 각 구역을 캐시와 바로 매핑
- 장점=> 매핑 절차가 단순, 속도도 빠름
- 단점=> Cache miss 가 높음
- 연관 사상 (Associated Mapping)
- 주기억장치의 각 블록은 캐시에 어느 슬롯이든 적재가 가능함
- 장점=> 지역성이 높은 데이터 접근 시 Cache hit 가 높음
- 단점=> 구현 난이도가 높음
- 집합연관사상 (Set Associate Mapping)
- 캐시와 메모리가 M 대 1 로 대응 됨
- 직접 사상과 연관 사상에 하이브리드 형태
- 장점=> 직접 사상과 연관 사상에 장점을 수용
- 단점=> 구현 난이도가 높음
- 캐시 메모리 관리 방식
- Demand Fetch => 필요 시 패치 함
- Pre-Fetch => 예상되는 블록을 미리 패치 함
- 교체 알고리즘
- Random => 무작위로 교체 할 Page 를 선정. Overhead 가 적음.
- FIFO => 가장 오래 존재 한 Page 를 교체. 자주 사용 된 Page 가 교체 될 수 있다.
- LFU => 사용 횟수가 가장 적은 Page 를 교체. 최근 적재된 Page 가 교체될 수 있다.
- LRU => 가장 오랫동안 사용되지 않은 Page 를 교체. 시간 체크를 위한 Overhead 가 존재
- 교체로 인한 문제점
- Page Fault => 적재되지 않은 Page 사용 시 발생
- Demand Paging => Page 요구 시에만, 프로세스가 Page 를 적재
- Thrashing 발생 => CPU 수행보다 Page 교체에 더 많은 시간을 소요하는 비정상적인 현상
- 해결 방안
- Load Control
- Locality
- Working Set
- Page Fault Frequency
- Cache Coherence
- 멀티프로세서 환경에서 각 프로세서가 보유한 캐시에 로드된 데이터가 변경된 경우, 메인메모리의 데이터와 동일하게 유지시키는 메커니즘으로 Write-through 와 Write-back 두가지 메커니즘이 존재
- Write-through
1. 데이터를 캐시와 메모리 모두에 저장.
2. 멀티 프로세서인 경우 모든 프로세서간 캐시가 완전히 일치 하지 않을 수 있다. - Write-back
1. 데이터를 캐시에만 기록하고, 차후에 메모리에 저장
3. 메모리
- 가상메모리
- 주기억장치의 용량이 너무 적어 보조기억장치를 주기억장치처럼 사용
- 가상메모리 사용을 위해 Virtual Addresss Space 를 사용함.
- Page
- 가상 기억장치 상에서 동일한 크기(=4 KB)의 최소 논리 분할 단위로 나눈 것
- 고정 분할
- 장점 => 요구 Page 만 적재, 외부 단편화 해결
- 단점 => 내부 단편화 발생, Thrashing / 잦은 Disk IO 를 유발
- Paging 메모리 관리 기법
- Page 는 물리 메모리의 Frame 에 매핑한다.
- Page 를 가리키는 논리주소에서 Frame 을 가리키는 물리주소로 변환한다.
TLB (=Translation Look a side Buffer) 를 통해 이루어짐.
MMU (=Main Memory Unit) 하드웨어 내 존재하므로 빠르게 매핑이 가능함.
TLB 에 매핑 정보가 없으면, Page Table 에서 매핑을 수행 함.
- Segment
- 사용자 주소 공간을 용도별로 논리적 단위로 나누 것.
- 가변 분할
- 장점 => 내부 단편화를 해결
- 단점 => 외부 단편화가 심각
- Segmentation 메모리 관리 기법
- 메모리를 Segment Set 로 나누어 관리
- Segment = Base address (=시작주소) + Length Value (=Segment 크기)
- Segment Table 에서 Base Segment 의 주소를 획득하고 Offset 과 결합하여 물리 메모리 주소를 산출한다.
- Paged Segmentation 기법
- 논리주소는 Segment No, Page No, Offset 으로 구성된다.
- 외부 단편화는 제거되지만, 내부 단편화가 발생할 가능성이 있다.
4. 디스크
[4. I/O Interface]
- 프로그램에 의한 입출력 관리
- CPU 가 입출력 장치를 감시하는 Polling 방식
- CPU 는 이 시간 동안 다른 작업을 할 수 없음.
- 인터럽트에 의한 입출력 관리
- CPU 의 관여가 적지만, 그래도 CPU 는 입출력을 대기해야 하는 문제가 존재
=> DMA 를 통해 주기억장치와 입출력장치를 직접 연결하여 CPU 의 개입을 최소화 함
- CPU 의 관여가 적지만, 그래도 CPU 는 입출력을 대기해야 하는 문제가 존재
- DMA (=Direct Memory Access)
- CPU 의 개입 없이 I/O 장치와 주기억장치 사이의 데이터를 전송하는 접근 방식
- CPU 의 간섭을 배제하며, 속도가 빠름
- CPU 는 DMA 로 제어 정보를 보냄
1. 데이터 Read/Write 용 메모리의 주소와 제어신호
2. 메모리 블록은 워드 수를 표시하는 워드 카운트
3. DMA 전송을 위한 시작 제어 신호
=== - 동작 방식
1. Cycle Stealing
2. Burst Mode
- I/O Processor
- Selector channel
한 번에 한 개씩 데이터를 전송
=== - Mulitplexer channel
동시에 많은 데이터를 전송
=== - 채널이 입출력을 수행하는 동안 CPU 는 다른 일을 처리 할 수 있음.
- Selector channel
[5. 기타]
모든 프로세스는 PCB(=Program Control Block) 이라는 메모리 영역을 갖고 있으며, 여기에는
PID, PC, Priority 등 프로세스 제어을 위한 데이터가 저장된다.
'정보보안기사 > 필기' 카테고리의 다른 글
시스템 보안 - 운영체제 구조 (0) | 2022.02.06 |
---|