[운영체제] 페이지 세그먼테이션 기법

[운영체제] 페이지 세그먼테이션 기법

page기법과 segmentation기법 구분
고정분할 할당방법, 가변분할 할당방법, 단일 프로그래밍 할당 기법 등은 주기억장치를 연속적으로 할당하는 방법이지만 세그먼트 기법페이징 기법은 불연속적으로 할당된다.


세그먼테이션 기법의 특징

세그먼테이션 기법
세그먼테이션 기법은 블록(Block)이 가변적이다.
페이지 프레임처럼 주기억장치의 구분하지 않고 주기억장치 전체를 비연속적으로 할당 받아 사용한다.
세그먼테이션 기법을 사용하는 가장 큰 이유는 메모리를 효율적으로 관리하기 위해 사용된다.
여러 개로 분리된 세그먼트가 주기억장치를 차지할 수 있도록 해주어야 하며, 각 세그먼트는 같은 크기일 필요는 없으나 연결된 기억장소로 구성되어야 한다.
세그멘테이션 기법에서는 기억장치 보호키가 필요하다.(A,B,C 프로그램을 구분하기 위해)
페이징 기법에 비해 물리적 개념보다는 논리적이라는 장점을 가진다.
세그먼트의 길이(크기)가 모두 다르기 때문에 세그먼트 길이에 맞는 주기억장치의 영역을 할당하지 못하면 다른 프로그램 영역을 침범하게 되는 세그먼트 오버플로우 결함(Segment Overflow Fault)이 발생한다.
외부 단편화만 발생한다.
주기적으로 압축이 필요하다.

페이지 세그먼테이션(Segmentation) 기법


페이지와 세그먼트 기법을 혼용하는 방식이다.
하나의 세그먼트를 여러 개의 동일한 크기의 페이지로 구분하여 사용할 수 있다.
주소 지정 블록은 세그먼트 번호와 페이지 번호가 존재한다.
다음과 같이 6개의 세그먼트로 구분되며, 각 세그먼트의 크기는
16K, 20K, 50K, 12K, 10K, 30K이다.
1번째 세그먼트는 16K이므로 4개의 페이지로 구분하면 4K용량으로 4개의 페이지로 분할할 수 있다.


출처

댓글

이 블로그의 인기 게시물

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?

[Python] # -*- coding: utf-8 -*-를 쓰는 이유