[정보처리] 기억장치관리


01 메모리 할당 기법


메인 메모리 관리 전략

메인 메모리 관리 전략 필요

보조기억장치에서 주기억장치로 CPU가 접근해야 하는 데이터를 적재(loading)하여 동작

보조 스토리지는 느리지만 용량이 크고 저렴합니다.

메인 메모리는 빠르지만 작고 비싸다

주 메모리의 제한된 공간을 효율적으로 사용하기 위한 전략이 필요합니다.

수입 전략

데이터가 보조 기억장치에서 주 기억장치로 로드되는 시기를 결정합니다.

수요를 끌어들이는 전략과 예약을 끌어들이는 전략이 있다.

– Demand fetch 전략: 실행 중인 프로그램이 특정 데이터 참조를 요청할 때 로드하는 방법

– 예상 가져오기 전략: 실행 중인 프로그램에서 참조할 데이터를 예측하고 로드하는 방법

배치 전략

새로 가져온 데이터가 메인 메모리에 저장되는 위치를 결정합니다.

First Fit: 데이터를 배치할 수 있는 공간 중 첫 번째 공간에 배치

Best Fit: 데이터를 배치할 수 있는 영역 중 여유 공간(조각화)이 가장 적은 영역에 위치합니다.

Worst Fit: 데이터를 배치할 수 있는 영역 중 여유 공간(조각화)이 가장 많이 남는 영역에 배치합니다.

교체 전략

주 메모리의 모든 영역이 이미 점유된 경우 새 데이터를 배치하기 위해 대체할 이전 데이터를 결정하는 전략입니다.

FIFO, OPT, LRU, LFU, NUR, SCR 등

메인 메모리 할당 기법

프로그램 및 데이터를 메인 메모리에 매핑하는 기술

연속 할당 기법: 단일 파티션 할당, 다중 파티션 할당

분산 매핑 기술: 페이징, 세분화

단일 분할 할당 기술

한 명의 사용자만 메인 메모리의 사용자 공간을 사용하도록 허용하는 기술

– 오버레이 기법

프로그램을 분할하고 실행에 필요한 부분을 메인 메모리에 로드하여 프로그램을 실행합니다.

메인 메모리가 부족해지면 불필요한 프래그먼트가 겹쳐서 로드됩니다.

– 교환기법

전체 프로그램이 서로에 대해 사용된 다음 다른 프로그램으로 대체되는 기술

스왑 인: 보조 메모리의 프로그램이 메인 메모리로 이동됩니다.

Swap Out: 프로그램이 주 메모리에서 보조 메모리로 이동됩니다.

다중 파티션 할당 기술

조각화 정의

디스크 공간의 할당 및 할당 해제에 따라 조각화되어 사용할 수 없게 되는 메인 메모리의 공간

– 내부 조각화: 데이터와 프로그램 매핑 후 남은 디스크 공간

– 외부 조각화: 대용량 데이터 및 프로그램 크기로 인해 할당할 수 없는 디스크 공간

조각화 솔루션

– 통합: 인접한 공간을 하나로 합치는 과정

– 압축: 분리된 공간을 하나로 합치는 과정

– 고정 피치 매핑 기법

메인 메모리의 사용자 영역을 여러 개의 고정된 크기로 나누어 데이터를 할당하는 기술

실행할 프로그램의 크기를 미리 알고 있어야 하며 전체 프로그램이 메인 메모리에 상주해야 합니다.

조각화는 많은 공간을 낭비합니다.

– 가변 분할 할당 기법

조각화를 줄이기 위해 필요한 만큼 영역을 분할하면서 프로그램을 메인 메모리에 로드합니다.

메인 메모리를 효율적으로 사용할 수 있고 다중 프로그래밍의 정도를 높일 수 있습니다.


02 보관


가상 메모리

큰 프로그램을 실행할 수 있도록 보조 메모리의 일부를 주 메모리로 사용하는 기술입니다.

스와핑 기법에서 개발되었으며 연속 할당 방식에서 발생하는 단편화 문제를 해결할 수 있습니다.

페이징 기술과 분할 기술로 구분

페이징 기술

프로그램과 메인 메모리의 영역을 동일한 크기의 페이지와 페이지 프레임으로 나눈 후,

페이지(프로그램)를 페이지 프레임(메인 메모리)에 로드하는 기술

외부 조각화는 발생하지 않지만 내부 조각화는 발생할 수 있습니다.

실제 물리적 주소는 세그먼트의 시작 주소와 상대 주소에서 계산할 수 있습니다.

상대 주소가 세그먼트 길이보다 크면 오류(트랩)가 발생합니다.

페이지 교체 알고리즘

페이지 교체 정의

페이지 프레임이 비어 있을 때 페이지를 하나씩 로드

– 페이지 부재: 로드할 페이지가 페이지 프레임에 존재하지 않습니다.

최적 교체(OPT)

가장 오래 사용하지 않는 페이지를 교체하는 기술

– 페이지 적중률 = 1 – (페이지 부재 수/링크 수)

선입선출(FIFO)

처음 로드된(이전) 페이지 교체

최장 사용(LRU)

거의 사용하지 않는 페이지를 교체하는 기술

최근 미사용(만)

LRU와 유사한 알고리즘

참조 비트와 수정 비트는 각 페이지가 최근에 사용되었는지 확인하는 데 사용됩니다.

– 참조 비트: 호출되지 않은 경우 0, 호출된 경우 1

– 변형 비트: 변형되지 않은 경우 0, 변형된 경우 1

두 번째 기회 교환(SCR)

FIFO 기법의 단점을 보완하기 위한 기법으로, 오랫동안 메인 메모리에 있었던 페이지들 중에서

자주 사용하는 페이지 교체를 피하는 기술

페이지 관리 방법

페이지 크기의 영향

페이지 크기가 작으면 페이지 조각화가 줄어들고 이동 시간이 줄어듭니다.

– 작업 세트의 효율적인 유지 관리 및 지역 일관성 증가

– 페이지 할당 테이블 크기 증가 -> 할당 속도 및 I/O 속도 감소

페이지 크기가 크면 페이지 조각화가 증가하고 이동 시간이 늘어납니다.

– 비효율적인 Working set 및 Locality Consistency 저하

– 페이지 맵 테이블 크기 축소로 인한 매핑 속도 및 I/O 속도 향상

소재지

프로세스가 특정 페이지와 밀접하게 관련되어 있다는 속성

시간적 지역성: 특정 기간 동안 특정 페이지에 집중적으로 액세스하는 품질

공간적 조닝(Spatial Zoning): 특정 위치의 페이지에 집중적으로 접근하는 특성

작업 세트

주어진 시간 단위 동안 프로세스에서 자주 참조하는 페이지 집합

작업 세트를 메인 메모리에 저장함으로써 페이지 교체 및 누락이 줄어들어 메모리 관리 안정성이 보장됩니다.

페이지 폴트 빈도

페이지 부재율에 따라 메인 메모리의 페이지 프레임 수를 늘리거나 줄입니다.

페이지 부재율을 합리적인 수준으로 유지하는 방법

전단계

사용될 것으로 예상되는 모든 페이지를 한 프레임에 한꺼번에 로딩하여 과도한 초기 페이지 폴트를 방지하는 기술.

고동

페이지 교환에 소요되는 시간이 프로세스의 처리시간보다 길어지는 현상

이는 프로세스 중 페이지 폴트가 자주 발생하여 전체 시스템의 성능이 저하될 때 발생하는 현상입니다.

히트를 방지하는 방법

다중 프로그래밍 수준을 합리적인 수준으로 유지

페이지 오류 빈도를 조정하는 데 사용됩니다.

작업 세트 유지

희소 자원을 늘리고 일부 프로세스를 중지하십시오.

CPU 성능 데이터의 지속적인 관리 및 분석을 통해 임계값을 예상하여 작업


03 파일 구성(파일 디자인)


순차적 조직

입력 데이터의 논리적 순서에 따라 물리적으로 연속된 위치에 데이터를 기록하는 구성 방법입니다.

일괄 처리가 효율적이고 기록 밀도가 좋으며 모든 저장 매체에 정리할 수 있습니다.

임의 배열

해싱과 같은 방법을 통해 키를 변환하여 특정 순서 없이 무작위로 데이터를 쓰는 방법으로 직접 구성이라고도 합니다.

해싱은 데이터 처리에도 적용되기 때문에 저장된 데이터의 위치에 따라 처리 속도가 일정하다.

키 변환(해싱)으로 인한 지연 시간, 낭비되는 공간 및 충돌 문제를 해결해야 합니다.

인덱싱된 순차 조직

인덱싱을 통한 무작위 처리와 일반 순차 처리가 동시에 실행되도록 하는 편성 방식

그 특성은 융통성이 있고 별도의 방이 필요하지 않으며 시술 횟수가 늘어날수록 효율성이 떨어지기 때문에 개편이 필요하다.

정적 인덱스와 동적 인덱스로 구성될 수 있습니다.

– 정적 인덱스: 인덱스의 내용은 변경되지만 구조는 변경되지 않으며, 기본 데이터 영역에 공백이 없어 별도의 영역(오버플로우)이 필요합니다.

– 동적 인덱스: 추가할 데이터를 고려하여 인덱스를 생성하는 방식으로 예비 영역을 미리 구성해야 합니다.

인덱스 영역, 기본 데이터 영역, 오버플로우 영역으로 구성


04 디스크 계획


운전하다

디스크 모양의 여러 개의 디스크를 수직으로 배열한 데이터의 반영구적 저장을 위한 하드웨어

디스크는 트랙, 섹터 및 실린더로 구성되며 데이터는 액추에이터 및 헤드를 통해 입력 및 출력됩니다.

– 트랙: 디스크에 동심원 형태로 구성된 데이터 저장경로

– 섹터 : 트랙을 구성하는 가장 작은 단위와 데이터가 저장되는 단위

– 실린더: 모든 디스크의 특정 위치에 있는 트랙의 논리적 집합입니다.

– 액세스 암: 데이터 액세스를 위해 디스크 헤드를 특정 트랙(실린더)에 배치하는 장치

– Diskhead: 데이터에 접근하는 장치

하드 드라이브는 보조 저장 장치의 일종이며 가장 느린 저장 장치 중 하나입니다.

높은 처리 속도로 CPU 효율적인 데이터 처리를 위한 다양한 스케줄링 방법이 있습니다.

디스크 액세스 시간

탐색 시간: 액추에이터가 헤드를 특정 트랙(실린더)으로 이동하는 데 걸리는 시간입니다.

회전 시간(대기 시간): 디스크가 회전하고 헤드 아래에 지정된 트랙을 배치하는 데 걸리는 시간입니다.

전송 시간: 디스크에서 메인 메모리로 데이터를 전송하는 데 걸리는 시간.

파일 제어 블록(FCB)

운영체제가 특정 파일에 접근할 때 식별할 파일의 관리 정보를 저장하는 블록

파일 디스크립터라고도 함

RAID(독립 디스크의 중복 어레이)

RAID-0: 여러 하드 디스크에 분산된 데이터 입/출력, 속도 향상, 매우 낮은 안정성

RAID-1: 여러 디스크에 대한 데이터 복사 입/출력(미러링), 안정성 향상

RAID-5: 3개의 디스크 중 적어도 하나는 복구에 사용되며 안정성과 효율성이 우수합니다.

RAID-0+1 : RAID-0으로 구성된 디스크는 RAID-1로 재구성됩니다.

RAID-1+0 : RAID-1로 구성된 HDD가 다시 RAID-0으로 구성됩니다.

디스크 계획

선착순(FCFS)

입/출력 데이터 요청(큐잉)이 도착한 순서대로 처리하는 방법

단순하고 공정한 처리, 디스크 헤드의 이동 방향이 요청마다 바뀌기 때문에 비효율적

최단 검색 시간 우선(SSTF)

현재 디스크 헤드에 가장 가까운 트랙에 대한 요청이 먼저 처리됩니다.

검색 시간을 최소화하고 처리량을 최대화할 수 있습니다.

응답 시간 편차가 크고 내부 및 외부 레인의 요청이 부족할 가능성이 높아집니다.

주사

현재 디스크 헤드가 이동하는 방향의 요청을 모두 처리한 후 반대 방향의 요청을 처리합니다.

승강기 기술이라고도 하며 SSTF의 단점(헝거 현상, 반응 시간 편차)을 보호합니다.

양쪽 끝(끝)의 추적 요청에 대한 응답 시간이 지연될 수 있습니다.

C(서큘러) SCAN

항상 외부 레인에서 들어가 요청을 처리합니다.

봐, 시계 잠금

SCAN과 C-SCAN의 보완적인 방법으로 진행할 방향에 대한 요청이 없을 경우 양단 끝까지 진행하지 않고 방향을 변경하여 처리하게 됩니다.