1. 세그먼테이션 기법
1) 세그먼테이션
• 가변 분할 방식을 이용한 가상 메모리 관리 기법으로, 물리 메모리를 프로세스 크기에 따라 가변적으로 나누어 사용함.
• 페이징 기법과 마찬가지로 세그먼테이션 기법도 테이블을 사용하는데, 이를 세그먼테이션 테이블 또는 세그먼테이션 매핑 테이블이라고 함.
2) 세그먼테이션 테이블 (Segmentation Table)
• Limit: 세그먼트의 크기를 나타냄.
• Address: 물리 메모리상의 시작 주소를 나타냄.
• 페이징 기법에서는 메모리를 같은 크기의 페이지 단위로 분할하기 때문에 크기 정보를 유지할 필요가 없지만, 세그먼테이션 기법에서는 프로세스 크기에 따라 • 메모리를 분할하기 때문에 크기 정보를 포함함.
• 각 세그먼트가 주어진 메모리 영역을 넘어가면 안 되므로, 크기를 뜻하는 size 대신 limit를 사용.
• 세그먼테이션 기법에서도 물리 메모리가 부족할 때 스왑 영역을 사용.
• 예시: 크기가 100B인 프로세스 D(세그먼트 3)가 스왑 영역에 있고, 세그먼테이션 테이블의 Address에 I(invalid)라고 표시됨.
3) 세그먼테이션 기법의 장단점
• 장점: 메모리를 프로세스 단위로 관리하기 때문에 세그먼테이션 테이블이 작고 단순함.
• 단점: 물리 메모리의 외부 단편화로 인해 관리가 복잡해짐.
2. 세그먼테이션 기법의 주소 변환
가상 주소(VA) = <S, D>로 표현
• S: 세그먼트 번호 (Segment Number)
• D: 세그먼트 시작 지점에서 해당 주소까지의 거리 (Distance)
• 가상 메모리 시스템에서 사용자에게 보이는 메모리는 항상 0부터 시작하므로, 페이징 기법이든 세그먼테이션 기법이든 D는 사용자가 지정한 주소 그 자체임.
예시: 프로세스 A의 32번 주소 접근 과정
(1) 가상 주소 VA = <0, 32>를 구함. (프로세스 A는 세그먼트 0이므로 S=0, D=32)
(2) 세그먼테이션 테이블에서 세그먼트 0의 시작 주소가 120임을 확인하고, 120 + 32를 계산하여 물리 주소 152를 구함.
• 이때 메모리 관리자는 거리가 세그먼트 크기를 초과하는지 점검함.
• 만약 초과하면 메모리 오류 발생 후 프로세스를 강제 종료.
• 초과하지 않으면 정상적으로 물리 주소를 구함.
(3) 물리 주소 152번에 접근하여 원하는 데이터를 읽거나 씀.
3. 캐시 매핑 기법
1) 캐시 직접 매핑 (Direct Mapping)
• 메모리를 일정 크기로 나누고, 이를 **페이지(P)**라고 부름.
• CPU가 메모리에 접근할 때 주소를 <P, D>로 표현
- P: 페이지 번호
- D: 페이지 내에서의 거리
• 메모리 블록과 캐시 매핑 과정
- 메모리는 N개의 페이지, 캐시는 M개의 페이지로 구성됨. (N > M)
- N을 M으로 나눈 값을 **블록(block)**이라 부름.
- 메모리의 페이지가 캐시로 올라올 때 항상 같은 위치에 저장됨.
• CPU가 메모리에 접근하는 방식
- 주소 <P, D>를 <tag, bd, D>로 변환하여 캐시에 접근.
- 태그(tag): 캐시에 저장된 블록 번호.
- bd(block distance): 블록 내 거리.
예시: 캐시 직접 매핑 과정
• CPU가 메모리 1101번지의 cobra 데이터를 필요로 하는 경우:
(1) 캐시의 01 위치(주소 뒷자리)로 이동.
(2) 태그 값이 11인지 확인 → 캐시 히트 발생.
• CPU가 메모리 0111번지의 crow 데이터를 필요로 하는 경우:
(1) 캐시의 11 위치로 이동.
(2) 태그 값이 01인지 확인 → 태그가 00이므로 캐시 미스 발생.
(3) 메모리에서 crow 데이터를 가져옴.
2) 캐시 연관 매핑 (Fully Associative Mapping)
• 메모리의 모든 주소를 캐시에서 자유롭게 배치 가능
• 장점: 캐시 메모리를 자유롭게 사용 가능
• 단점: 특정 주소가 캐시에 있는지 확인하기 위해 모든 캐시를 검색해야 하므로 속도가 느림
3) 캐시 집합-연관 매핑 (Set-Associative Mapping)
• 캐시 직접 매핑과 연관 매핑의 장점을 결합한 방식
• 캐시를 K개의 집합(Set)으로 나누고, 각 집합에서 직접 매핑을 사용
장점
• 직접 매핑을 사용하므로 모든 캐시를 검색할 필요 없음.
• 같은 끝자리를 가진 데이터들이 K개의 집합 중 하나로 배분되므로 자리다툼 문제 완화
예시
• 캐시를 K=2개의 집합으로 나누고, 각 집합에 2개의 페이지를 저장.
• 주소 P의 4비트 중 마지막 1비트는 bd, 앞의 3비트는 태그로 사용.
• 주소의 끝이 0인 페이지는 첫 번째 위치, 1인 페이지는 마지막 위치에 저장.
이 내용은 휴넷사회복지평생교육원의 운영체제 강의를 듣고 정리한 것입니다.
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 15. 가상 메모리와 페이징 기법 (0) | 2025.04.24 |
---|---|
[운영체제] 14. 메모리 할당 (1) | 2025.04.23 |
[운영체제] 13. 메모리 관리 (0) | 2025.04.23 |
[운영체제] 12. 교착 상태 해결 방법 (0) | 2025.04.10 |
[운영체제] 11. 교착 상태 (0) | 2025.04.09 |