정보보안기사 필기 (시스템 보안 - 1, 운영체제 이해 및 관리)

oolongeya

·

2021. 8. 13. 15:23

중요 학습 내용
* 캐시 메모리 사상(Mapping)
* 가상 기억 장치에서 페이징, 세그먼테이션
* 입출력 장치에 DMA
* 운영체제 발전
* 프로세스 상태 전이
* CPU 스케쥴링 기법 (선점형, 비선점형)

 

캐쉬 메모리 (Cache Memory)
- CPU와 주기억장치의 속도 차이를 극복하기 위해서 이 둘 사이에 존재하는 고속의 버퍼 메모리
- 중앙처리장치가 읽어 들인 데이터(명령, 프로그램)들로 채워지는 버퍼 형태의 고속 기억장치
- 고속 메모리를 사용하여 CPU가 작업을 빠르게 처리할 수 있다

 

* 캐쉬 메모리 사상(Mapping) 방식

 

1) 직접 사상(Direct Mapping)

2) 연관 사상(Associate Mapping)

3) 집합 연관사상(Set Associate Mapping)

 

 

직접 사상(Direct Mapping)

- Main Memory를 여러 구역으로 분할하여 Cache 슬롯과 매핑한다
장점 : 매핑 절차가 단순, 신속
단점 : 높은 캐시 미스율(같은 블록에 사상되는 데이터 캐시 적재 시 교체 발생)

 

연관 사상(Associate Mapping)

- Main Memory의 각 블록이 Cache의 어느 슬롯이든 적재 가능
장점 : 지역성 높은 접근 시 캐시 적중률 높음
단점: 구현 하드웨어가 복잡, 구현 비용 상승

 

집합 연관사상(Set Associate Mapping)

- 직접/연관 사상의 절충방식 캐시와 메모리가 M 대 1로 대응
장점 : 직접/연관 사상의 장점 수용
단점 ; 캐시 FIn/Fout 발생 증가, 구현 비용 상승

 

캐시 메모리 관리
CPU는 캐시 메모리에 접근하여 연산에 필요한 데이터를 읽어 들인다
만약, CPU가 캐시 메모리에 접근할 때 원하는 데이터가 없다면,
캐시 메모리는 주기억장치에 접근하여 데이터를 캐시 메모리에 올려야 한다
즉 캐시 메모리 관리라는 것은 CPU가 원하는 데이터가 캐시 메모리에 있을 수 있도록 하는 것을 의미한다

[ 캐쉬 메모리 인출 방식 ]
- Demand Fetch : 필요 시 캐시를 인출하는 방식
- Pre-Fetch : 예상되는 블록을 미리 패치 해 두는 방식

캐쉬 메모리 관리

캐시 메모리 교체(Replacement) 알고리즘의 종류
종류 세부 내용 특징
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 교체 실현 불가능
NUR (Not Used Recently) 참조 비트와 수정 비트로 미사용 Page 교체 최근 사용되지 않은 페이지 교체
SCR
(Second chance Replacement)
최초 참조 비트 1로 셋, 1인 경우 0으로 셋
0인 경우 교체
기회를 한 번 더 줌

 

페이지 교체 관리 시 문제점
문제점 세부 내용
Page Fault 발생
(페이지 부재)
기억장치에 적재되지 않은 Page를 사용하려 할 때 Page Fault 발생
Demand Paging
(요구 페이징)
요구될 때만 Process가 Page를 적재하는 방식
Thrashing 발생
(스레싱)
Page 부재가 너무 빈번하게 발생하여 CPU가 Process 수행보다 Page 교체에 더 많은
시간을 소요하는 비정상적인 현상
페이지 교체 관리 문제점 해결 방안
종류 세부 내용
Load Control 일정 시간동안 새로운 프로세서가 생성되는 것을 지연시키고 
Suspend Queue에 대기시켜서 Thrashing 현상을 감소시킴
Locality(구역성) 시간과 공간 지역성을 집중적으로 참조함
Working Set(워킹셋) 일정 시간 동안 참조되는 페이지 집합(Working Set)을 주기억장치에 유지
PFF
(Page Fault Frequency)
* Process의 Page Fault 빈도에 따라 Residence set을 조정
* PFF가 높으면 Residence set의 크기 증가, 낮으면 감소

 

가상 메모리 시스템
- 주기억장치의 용량이 너무 적기 때문에 보조기억장치를 마치 주기억장치처럼 사용하여 
주기억장치의 공간을 확대하는 기억장치 관리 기법

 

1) 가상 메모리(Virtual Memory)
- 물리적 메모리 크기의 한계를 극복하기 위해 실제 물리적 메모리보다 더 큰 용량의 메모리 공간을 제공하는 
메모리 관리 기법
- 가상 메모리를 사용하기 위하여 Virtual Address Space를 사용한다

 

2) 가상 메모리 관리 단위
- 페이지(Page) : 가상 기억장치 상에서 동일한 크기의 최소 논리 분할 단위로 나눈 것
- 세그먼트(Segment) : 사용자 주소 공간을 용도별로 논리적 단위로 나눈 것 
구분 Paging 기법 Segment 기법
할당 고정(Static) 분할 가변(Dynamic) 분할
적재 요구 Page만 일부 적재(On-demand) 프로그램 전체 적재(On-demand)
관점 메모리 관리 측면 파일 관리 측면
장점 - 요구 Page만 적재 Load
- 외부 단편화 해결
- 교체시간 최소
- 사용자 관점
- 개발/프로그래밍 용이
- 내부 단편화 해결
- 코드, 데이터 공유 용이
단점 - 내부 단편화(Fragmentation) 발생
- Thrashing, 잦은 디스크 I/O 유발
- 외부 단편화 심각
- 메인 메모리가 커야 함

 

3) 가상 메모리 관리 정책
종류 세부 내용 기법의 유형
할당 기법
(Allocation)
프로세스에게 할당되는 메모리 블록의 단위를 결정 고정 할당, 가변 할당, Paging, Segmentation
호출 기법
(Fetch Policy)
보조기억장치에서 주기억장치로 적재할 시점 결정 Demand Fetch, Pre Fetch
배치 기법
(Placement)
요구된 페이지를 주기억장치의 어느 곳에
적재할 것인지 를 결정
First fit, Best fit, Next fit, Worst fit
교체 기법
(Replacement)
주기억장치 공간 부족 시 교체 대상 결정 Random, FIFO, LRU, LFU, NUR, SCR, Optimal

 

4) 할당 정책(Allocation Policy)
구분 종류 세부 내용
연속 할당 고정 분할 - 고정된 크기의 단위로 메모리 할당
- 내부 단편화 발생
가변 분할 - 할당 단위를 요청마다 다른 크기로 할당
- 외부 단편화 발생
비연속 할당 Paging 가상 메모리 블록을 페이지 단위 관리, TLB와 MMU, Page Table로 관리
Segmentation 가변 크기인 세그먼트로 분할, Segment Table로 관리

 

Paging 메모리 관리 기법
- 논리주소의 고정된 페이지(Page)라고 불리는 블록들로 분할 관리하는 기법
- 각각의 페이지는 물리 메모리의 프레임(Frame)과 맵핑한다
- 페이지를 가리키는 논리주소에서 프레임을 가리키는 물리주소로 변환한다

[ TLB (Translation Look aside buffer) ]
- 페이지 테이블 접근에 따른 지연 문제를 해결하기 위한 변환 버퍼
- 가장 최근에 사용된 페이지 테이블 항목을 유지한다
- 주기억장치의 Cache Memory와 유사하게 관리된다

[ MMU (Main Memory Unit) ]
- 주기억장치와 캐시의 메모리 주소를 변환하는 역할을 수행한다
- 캐시의 통제하에 관리된다
- 캐시에 먼저 사용된 후 메모리에 쓰여진다

 

 

Segmentation 메모리 관리 기법
- 메모리를 세그먼트 세트로 나눠 관리하는 방식
- 세그먼트는 해당 세그먼트의 시작 주소인 베이스 어드레스(Base Address)와 세그먼트의 크기를 지정하는 
길이 값(Length Value)으로 구성된다
- 주소 지정은 세그먼트의 베이스 어드레스를 지시하는 Segment Selector와 세그먼트 내의 변위(Offset) 값을 통해 지정한다
- 가상 메모리 주소(Virtual Address)는 Segment 번호와 변위 값으로 구성된다
- Segment Table에서 Base Segment의 주소를 획득하고 변위 값(Offset)과 결합하여 물리 메 모리 주소를 산출한다
- Segment는 가변 공간을 할당하기 때문에 계산을 통해서 주소를 매핑한다
Virtual Address는 Segment Table주소를 매핑하고 Main Memory와 매핑한다

 

DMA (Direct Memory Access)
- CPU의 개입 없이 I/O 장치와 기억장치 사이의 데이터를 전송하는 접근 방식
- CPU의 간섭을 배제하고 메모리와 주변장치를 직접 관리하며, 속도가 빠르다

[ CPU가 DMA로 보내는 제어정보 ]
 a. 데이터 R/W용 메모리의 주소와 제어 신호
 b. 메모리 블록은 워드 수를 표시하는 워드 카운트
 c. DMA 전송을 위한 시작 제어 신호

 

DMA 동작 방식의 종류
종류 세부 내용
Cycle Stealing DMA 제어기와 CPU가 버스(Bus)를 공유, CPU가 버스를 사용하지 않는 사이클에만 접근하고
CPU보다 높은 우선순위를 가짐
Burst Mode DMA 제어기가 버스(Bus)를 점유, 동작 완료 후 버스(Bus) 해제

 


01. 인터럽트는 프로그램 실행 중 응급상태가 발생하여 CPU가 긴급처리를 위해 현재 수행 중이던 프로그램을 중단하고 이를 처리하는 것이다. 이러한 인터럽트 중에서 전원공급, 타이밍 소자 등의 요인에 의해서 발생되는 인터럽트를 무엇이라고 하는가?
1. 외부 인터럽트
2. 기계착오 인터럽트
3. 입출력 인터럽트
4. 수퍼바이저 호출

[ 해설 ]
외부 인터럽트는 타이밍 소자, 전원 공급 등 외부 요인에 의해서 발생한다

 

02. 캐시 메모리 교체 알고리즘 중에서 향후 가장 참조되지 않을 페이지를 교체하는 방법과 참조 비트의 수정 비트를 사용하는 방법은 무엇인가?
Optimal, NUR

[ 해설 ]

Optimal - 향후 가장 참조되지 않을 Page 교체
NUR - 참조 비트와 수정 비트로 미사용 Page 교체

 

03. 입출력장치 중 CPU가 버스를 사용하지 않는 사이클에만 접근하는 것을 무엇이라고 하는가?
Cycle Stealing

 

04. 캐시 메모리를 지원하는 운영체제에서 가상주소를 실제주소로 변환하는 과정인 DAT가 빠른 것은 무엇인가
연관사상 - 직접/연관 사상 - 직접사상

[ 해설 ]
연관 사상 기법은 하드웨어를 통해서 구현되었다. 그러므로 고비용이지만, 고속의 처리와 캐시 적중률이 우수하다

 

반응형