일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 운영체제와 정보기술의 원리
- 인터럽트
- 백엔드
- 갤럭시 S24
- SQL
- 쉬운 코드
- 김영한
- 코딩애플
- 반효경
- 시스템프로그래밍
- 운영체제
- BreadcrumbsComputer-Networking_A-Top-Down-Approach
- 온디바이스AI
- 개발남노씨
- 트랜잭션
- CPU 스케줄링
- SDK
- 코딩테스트 [ ALL IN ONE ]
- 데이터베이스
- Extendable hashing
- 네트워크
- concurrency control
- 쉬운코드
- 커널 동기화
- recoverability
- 프로세스 주소 공간
- Git
- B tree 데이터삽입
- vite
- 시그널 핸들러
- Today
- Total
티끌모아 태산
Memory Management(4) 본문
저번 시간에 이어 불연속할당 방식 중 segmentation에 대해 배워보도록 하겠습니다. 앞서 프로세스의 주소 공간을 동일한 크기 단위로 나누어 물리적 메모리에 올리는 페이징 기법에 대해서 배웠다. 지금부터는 의미 단위의 세그먼트로 나누어 물리적 메모리에 올리는 세그멘테이션 기법에 대해서 알아보도록 하겠습니다.
불연속 할당 기법
- page
- segmentation
- paged segmentation
Segmentation
하나의 프로세스를 구성하는 주소 공간은 일반적으로 코드, 데이터, 스택 등의 의미 있는 단위들로 구성된다. 세그먼트는 이와 같이 주소 공간을 기능 단위 또는 의미 단위로 나눈 것을 말한다. 여기서 주의할 점은 세그먼트가 특정 크기 단위로 나눈 것이 아니라 의미를 가질 수 있는 논리적인 단위로 나눈 것이기 때문에 그 크기가 균일하지 않다는 것이다. 따라서 부가적인 관리 오버헤드가 발생한다. -> 물리적 메모리 관리에서 외부조각이 발생하게 되며, 세그먼트를 어느 가용 공간에 할당할 것인지 결정하는 문제가 발생한다.(이는 앞서 살펴본 연속할당 메모리 관리의 가변분할 방식에서의 문제와 동일한 범주) first fit, best fit...
세그먼테이션 기법에서는 주소 변환을 위해 세그먼트 테이블을 사용한다. 이때 세그먼트 테이블의 각 항목은 기준점(base)과 한계점(limit)을 사용한다. 또한 페이징 기법에서는 모든 페이지의 길이가 동일하므로, 페이지 테이블의 항목에 기준점이라 할 수 있는 프레임 위치만 유지하고 있으면 된다. 하지만 세그먼테이션 기법에서는 세그먼트의 길이가 균일하지 않기때문에 세그먼트의 위치 정보뿐만 아니라 길이 정보를 함께 보관하고 있어야 한다.
세그먼테이션 기법에서 주소 변환시 세그먼트 테이블 기준 레지스터, 세그먼트 테이블 길이 레지스터를 사용하게 된다.
- Segment-table base register (STBR): Points to the segment table’s location in memory
- Segment-table length register (STLR): Indicates number of segments used by a program
세그먼트는 의미 단위로 나누어져 있기 때문에 공유와 보안의 측면에서 페이징 기법에 비해 훨씬 효과적이다. 예를들어, 페이징 기법의 경우 주소 공간을 동일한 크기로 나누다 보면 공유하려는 코드와 사유 데이터 영역이 동일 페이지에 공존하는 경우가 발생한다. -> 세그먼테이션 기법에서는 이런 현상이 발생하지 않는다.
Segmentation with Paging
페이지드 세그먼테이션기법은 페이징 기법과 세그먼테이션 기법의 장점만을 취하는 주소 변환 기법으로 세그먼테이션 기법과 마찬가지로 프로그램을 의미 단위의 세그먼트로 나눈다. 이때 세그먼트가 임의의 길이를 가질 수 있는 것이 아니라 반드시 동일한 크기 페이지들의 집합으로 구성되어야 한다. 그리고 물리적 메모리에 적재하는 단위는 페이지 단위로 한다.
따라서 하나의 세그먼트 크기를 페이지 크기의 배수가 되도록 함으로써 세그먼테이션 기법에서 외부조각의 문제점을 해결하며, 동시에 세그먼트 단위로 프로세스간의 공유나 프로세스 접근 권한 보호가 이루어지도록 함으로써 페이징 기법의 약점을 보완한다.
주소 변환을 위해 외부의 세그먼트 테이블과 내부의 페이지 테이블을 사용한다.
'CS 지식 > 운영체제' 카테고리의 다른 글
OS for Beginner(1) (0) | 2023.06.14 |
---|---|
Memory Management(3) (2) | 2023.06.13 |
Memory Management(2) (0) | 2023.06.11 |