■ 스래싱 (Thrashing)
- 너무 자주 페이지 교체가 일어나는 현상으로 어떤 프로세스에 지속적으로 페이지 부재가 발생하여 프로세스의 처리시간보다 페이지 교체시간이 더 많이 발생하는 현상이다
- 다중 프로그래밍의 정도가 높아질수록 CPU의 이용률은 증가하지만 너무 높으면 스래싱이 발생할 수 있다. 따라서 스래싱이 발생하면 다중 프로그래밍의 정도를 낮춰준다
★ 페이지 부재 빈도 (PFF : Page-Fault Frequency)
- 스래싱(Thrashing)이란 페이지 부재율이 높다는 것을 의미한다
- 스래싱을 막기 위해 페이지 부재 빈도(PFF)를 사용한다
- 허용할 수 있는 페이지 부재 빈도(Page Fault Rate) 구간을 설정해서 페이지 부재율이 높으면 프로세스가 더 많은 프레임을 필요로 한다는 의미이고, 페이지 부재율이 너무 낮으면 프로세스가 너무 많은 프레임을 갖고 있다는 의미이다
★ Working Set (작업 집합)
- 워킹세트 또는 작업 집합은 하나의 프로세서가 자주 참조하는 페이지들의 집합이다
- 프로그램이 효율적으로 수행되려면 그 프로그램의 워킹세트가 주기억장치에 유지되어야 한다
■ 기억장치 관리 기법의 문제점과 해결방법
ⓐ 단편화
- 다중 프로그래밍 기법에서 분할된 주기억장치에 프로그램을 할당하고 반납하는 과정을 반복하면서 사용되지 않고 남는 기억장치의 빈 공간들이 발생한다
- 연속으로 기억장치를 할당하여 사용할 경우 크기가 맞지 않아서 사용되지 못하는 공간이 생길 수 있는데, 이러한 공간을 단편화 공간이라고 한다. 내부 단편화와 외부 단편화가 있다
ⓑ 내부 단편화 (Internal Fragmentation)
- 분할된 영역에 프로그램을 사용하고 남은 빈 공간을 말한다. 예를 들어 100크기를 갖는 분할에 80크기를 갖는 프로그램을 배치하였을 경우 20의 공간이 내부 단편화 공간이 된다
ⓒ 외부 단편화 (External Fragmentation)
- 동적 분할 기법을 사용할 때 분할된 영역이 할당될 프로그램의 크기보다 작기 때문에 프로그램이 할당될 수 없어 사용되지 않고 빈 공간으로 남게 되는 현상을 외부 단편화라 한다
- 즉 분할의 크기가 프로그램의 크기보다 작아서 사용되지 못한 것을 말한다
- 예를 들어 100크기를 갖는 분할이 있을 때 120크기를 갖는 프로그램은 배치되지 못하며 100의 공간이 외부 단편화 공간이 된다
☆ 단편화 해결방안
① 통합 기법 (Coalescing) 기법 : 통합 기법은 주기억장치 내에 인접해 있는 단편화 된 공간을 하나의 공간으로 통합하는 방법이다. 주기억장치에 빈 공간이 발생할 경우, 이 빈 공간이 다른 빈 공간과 인접되어 있는지 점검한 후 결합하여 사용한다
② 압축 (Compaction) 기법 : 압축 기법은 주기억장치 내에 분산되어 있는 단편화 된 빈 공간을 결합하여 하나의 큰 공간을 만드는 작업을 의미한다. 여러 위치에 분산된 단편화 된 공간을 주기억장치의 한쪽 끝으로 옮겨서 큰 가용 공간을 만든다
■ 집약성 (Locality)
- 프로그램이 실행 도중 기억장치를 참조하는 패턴이 기억장치의 전 부분에 걸쳐 고루 나타나는 것이 아니라 어느 순간에는 일정한 한두 곳의 기억장치 부분에 집중적으로 접근하는 성질을 말한다
- 순차적인 명령 수행, 루프, 배열 접근, 스택 등에 관련된 프로그램은 집약성을 잘 나타낸다
- 이에 비해 포인터 참조, 해시표(Hash Table) 등은 집약성이 잘 나타나지 않는 예이다. 집약성은 가상 기억장치나 캐시 기억장치를 설계하는 데 중요한 역할을 한다
'정보보호론 > 시스템 보안' 카테고리의 다른 글
메모리(기억장치) 관리 (0) | 2020.10.14 |
---|---|
프로세스 동기화 (0) | 2020.10.14 |
CPU 스케줄링 (CPU Scheduling) (0) | 2020.10.13 |
프로세스 관리 (0) | 2020.10.13 |
운영체제의 기술 발전 흐름과 입ㆍ출력 방식 (0) | 2020.09.16 |