세그멘테이션 기법

2021. 2. 26. 23:57Computer(인강)/운영체제

728x90
반응형

안녕하세요 bannavi입니다^ㅅ^

아니 여러분, 대박적인 사실을 알았어요

오늘 제 블로그 방문자수가 무려.... 무려...!!!!!!

8명인거 있죠!!!!!

 

와아아앙

 

부끄러워서 태그도 잘 안달아놨었는데

혹시 잘못된 정보를 전달해드리진 않을까

더 마음 졸이게 되네요

 

저도 배우는 입장이기때문에

틀린것같다 좀 표현이 어색하다 싶은 부분은

말씀해주시면 더 감사드릴것 같습니다 헤헤..^ㅅ^

 

그럼 이 분위기 그대루~~

오늘은 가상메모리의 매커니즘 중 하나인 세그멘테이션 기법에 대해서 살펴보도록 하겠습니다!

 

 

 

세그멘테이션(Segmentation)

가상 메모리를 서로 크기가 다른 논리적 단위인 세그먼트(Segment)로 분할

- 페이징 기법에서는 가상 메모리를 같은 크기의 블록으로 분할

- 예: x86 리얼모드(인텔 cpu를 쓰는 컴퓨터가 부팅을 할때, cpu모드를 리얼모드라고 함. 그다음 보호모드로 바뀌면서 운영체제가 구동됨)

CS(Code Segment), DS(Data Segment), SS(Stack Segment), ES(Extra Segment)로 세그먼트를 나누어(각각의 논리적 단위가 다르다), 메모리 접근

 

사실 페이징 시스템이 가장 많이 쓰이는 가상메모리 시스템이고요,

세그멘테이션 기법은 페이징 시스템과 비교해서만 알아두시면 좋을것 같아요.

 

 

세그먼트 가상주소

- v = (s,d): s는 세그먼트 번호, d는 블록 내 세그먼트의 변위

특정주소를 물리주소와 매칭시키는 것은 페이징 시스템과 거의 비슷하다.

 

세그먼트의 번호, 변위값 두개를 알면 세그먼트 테이블이라는 곳에서, 각각의 세그먼트에 대한 물리주소를 알아낼 수 있음.

베이스 물리주소에 변위를 더하면 해당 세그먼트의 베이스주소에 변위를 더한 특정 데이터 값을 얻어낼 수 있는 것이다,

 

 

세그멘테이션은 크기가 다른 segment단위로 물리 메모리에 로딩

segmentation기법과 paging기법의 차이로,

paging 기법은 일괄적으로 4KB 이런 식으로 잘게 쪼개서 각각의 페이지 번호로 물리메모리에 데이터를 넣습니다.

 

 

 

 

# 내부 단편화(페이지 기법) - 고정된 사이즈를 가짐

- 페이지 블록만큼 데이터가 딱 맞게 채워져있지 않을 때 공간 낭비

 

# 외부 단편화(세그멘테이션 기법)

- 물리 메모리가 원하는 연속된 크기의 메모리를 제공해주지 못하는 경우

 

 

# 세그멘테이션/페이징 모두 하드웨어 지원 필요

- 다양한 컴퓨터 시스템에 이식성을 중요시하는 리눅스는 페이징 기법을 기반으로 구현

 

728x90
반응형