본문 바로가기
IT Auditor Study/운영체제

[Part2-공룡책] 8. 가상 메모리 - Operating System(OS)

by latteart 2024. 6. 6.
반응형

 

 

 

 

Operating System(OS)에 이어서 Part2에는  다음과 같은 순서*로 알아보겠습니다. 

*공룡책 기반

 [프로세스 관리]

 1. 프로세스 

2. 스레드와 병행성 

3. CPU 스케줄링

 [프로세스 동기화] 

4. 프로세스동기화 

5. 동기화 예제 

6. 교착상태

 [메모리 관리] 

7. 메인 메모리 

8. 가상 메모리

[저장장치 관리]

9. 대용량 저장장치 구조

10. 입출력 시스템

[파일시스템]

11. 파일시스템 

12. 파일시스템 구현

 

 

삼성전자 DDR4 32G PC4-25600 데스크탑 메모리 램32기가 RAM 램 -FYC

COUPANG

www.coupang.com

* 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받을 수 있습니다.


Operating System(OS) Part2 -  8. 가상 메모리

 

1. 가상 메모리(Virtual Memory)
- 정의: 가상 메모리는 물리적인 메모리(RAM)의 용량을 넘어서는 프로그램의 메모리 요구를 지원하기 위한 기술로, 실제 메모리보다 큰 공간을 프로세스에 제공합니다.
- 장점: 물리적 메모리의 용량 한계를 극복할 수 있습니다.
여러 프로세스 간에 메모리를 공유하거나, 대규모의 프로세스를 실행할 수 있습니다.


2. Demand Paging
Demand Paging은 프로세스가 실행될 때 필요한 페이지만 메모리에 올리는 기법으로, 메모리 효율성을 높이고 시스템 성능을 향상시킵니다.
요구 페이징을 통해 페이지가 메모리에 적재되는 방법

프로세스가 실행될 때 해당 페이지가 실제로 필요한 경우에만 해당 페이지를 메모리로 가져옵니다.

3. Page Replacement Algorithm
1) OPT(Optimal Algorithm)
 - 내용: OPT 알고리즘은 이상적인 상황에서 가장 오래된 페이지를 교체하는 알고리즘입니다.
 - 장점: 최적의 성능을 보장합니다.
 - 단점: 실제로 구현하기 어려우며, 예측이 필요한 경우가 많습니다.


2) FIFO(First In First Out) Algorithm
 - 내용: FIFO 알고리즘은 가장 먼저 들어온 페이지를 교체하는 간단한 알고리즘입니다.
 - 장점: 구현이 간단하며, 예측이 필요하지 않습니다.
 - 단점: Thrashing이 발생할 수 있으며, 최적한 결과를 보장하지 않습니다.


3) LRU(Least Recently Used) Algorithm
 - 내용: LRU 알고리즘은 최근에 사용되지 않은 페이지를 교체하는 알고리즘입니다.
 - 장점: 페이지 접근 패턴을 고려하여 최적의 성능을 제공합니다.
 - 단점: 페이지 접근 패턴을 추적하기 위한 추가 비용이 발생합니다.


4) LFU(Least Frequently Used) Algorithm
 - 내용: LFU 알고리즘은 가장 적게 사용된 페이지를 교체하는 알고리즘입니다.
 - 장점: 사용 빈도를 고려하여 최적의 성능을 제공합니다.
 - 단점: 작은 참조 횟수의 변화에 민감할 수 있습니다.


5) Second Chance Algorithm (Clock Algorithm)
 - 내용: Second Chance 알고리즘은 FIFO 알고리즘을 개선한 알고리즘으로, 페이지에 참조 비트를 사용하여 교체 대상을 선정합니다.
 - 장점: FIFO 알고리즘보다 더 나은 성능을 제공합니다.
 - 단점: 구현이 복잡하고, LRU 알고리즘보다 성능이 떨어질 수 있습니다.


4. Thrashing
Thrashing은 지속적인 페이지 부재로 인해 프로세스가 실제로 수행되는 것보다 페이지 교체로 인해 시스템이 느려지는 현상을 의미합니다.

1) Thrashing이 일어나는 과정
   (1) page가 부족하여 page fault가 증가
   (2) Swapping(I/O) 작업이 증가하여 CPU 효율성 감소
   (3) 운영체제는 degree of Multiprogramming을 높여야 한다고 판단하고, 또 다른 프로세스를 시스템에 추가
   (4) 프로세스당 할당되는 page frame이 더욱 감소하여 page fault가 더 증가
   (5) 프로세스는 Swapping때문에 바빠지고, CPU는 한가해짐

 

2) Thrashing 예방
프로세스에게 frame을 필요한 만큼 제공할 수 있어야 합니다. Thrahing 예방 모델들은 아래와 같습니다.

  (1) Working-Set Model
: 최대한의 degree of Multiprogramming을 유지하면서 Thrashing을 막는 방법입니다. 운영체제는 지속적으로 각 프로세스의 Working set을 확인하면서 충분한 frame을 할당해줍니다. Working-Set 집합들이 차지하는 frame의 총 수가 사용 가능한 frame 수보다 클 경우, 프로세스 중 하나를 종료시키고, 다른 프로세스들에게 할당해줍니다.

 - Lacality of reference(참조 지역성의 원리) : 프로세스가 특정 시간 동안 일정 장소를 집중적으로 참조하는 성질입니다.
 - Working set : 참조 지역성의 원리에 기반하여 프로세스가 일정 시간 동안 원활하게 수행되기 위해 메모리에 한번에 올라와야 하는 page 집합입니다.

 (2) PFF(Page-Fault Frequency) Scheme
page fault의 상한 값과 하한 값을 두고, 상한 값을 넘을 경우 frame을 더 할당하고 하한 값보다 낮아지면 할당된 frame 수를 줄입니다.

 

 

 


5. 커널 메모리의 할당
1) 메모리 압축
- 내용: 메모리 압축은 물리적 메모리의 공간을 확보하기 위해 사용되는 기법입니다. 프로세스들 사이의 빈 공간을 압축하여 메모리를 최적화합니다.
- 장점: 더 많은 프로세스를 실행할 수 있으며, 메모리의 효율성이 향상됩니다.
- 단점: 압축하는 데에 추가적인 시간이 소요될 수 있으며, 압축 작업이 프로세스 실행에 영향을 미칠 수 있습니다.


2) 커널 메모리 할당
- 내용: 커널은 운영 체제의 핵심 부분이므로 항상 메모리에 상주해야 합니다. 따라서 시스템이 시작될 때 커널에 충분한 메모리 공간을 할당해야 합니다.
- 장점: 시스템의 안정성과 성능을 보장합니다.
- 단점: 커널에 할당된 메모리가 과도하게 많으면 사용 가능한 메모리가 부족해질 수 있습니다.


3) 커널 프로세스에 할당되는 메모리 관리 기법
- 내용: 커널 프로세스는 시스템의 안정성을 유지하기 위해 특별히 관리되어야 합니다. 이를 위해 메모리 보호 및 권한 설정이 필요합니다. 또한 커널 메모리 할당을 위한 적절한 메커니즘을 사용하여 메모리 누수를 방지해야 합니다.
- 장점: 시스템의 보안을 유지하고, 안정성을 확보합니다.
- 단점: 관리하기 복잡하고, 잘못된 설정은 시스템의 불안정성을 초래할 수 있습니다.

 

반응형