Share to: share facebook share twitter share wa share telegram print page

 

메모리 세그먼트

메모리 세그먼트 방식(Memory segmentation)은 메모리 보호를 수행하는 가장 일반적인 방법 가운데 하나이다. 또다른 방식으로는 페이징이 있다. 세그먼트를 사용하는 컴퓨터 시스템에서 메모리 위치를 참조하는 명령어 피연산자는 세그먼트와 그 세그먼트 안의 오프셋을 증명하는 값을 포함하고 있다.

이러한 이용은 인텔 8086, 인텔 8088과 같은 초기 x86 프로세서에 쓰인 메모리 세그먼트의 이용과 혼동해서는 안 된다. 왜냐하면 이들은 어떠한 보호 기능도 제공하지 않았기 때문이다. (어떠한 프로그램도 제한 없이 세그먼트에 쉽게 접근할 수 있었고 세그먼트는 64 KiB라는 고정 길이와 시작 위치로만 구성되어 있었다.) 인텔 80286 이후의 메모리 세그먼트 방식에는 보호 기능이 제공된다.

세그먼트 번역

프로세서가 Logical Address를 번역하여 원하는 Linear Address에 참조하기 위해 사용하는 자료구조는 다음과 같다:

  • Descriptors
  • Descriptor Tables
  • Selectors
  • Segment Registers

Descriptors

세그먼트에 대한 정보를 가지고 있는 64비트 크기의 자료구조이며, 세그먼트의 시작 주소, 세그먼트의 크기, 접근 권한, 세그먼트의 유형 등의 정보를 담고 있다. 전체 64비트 중 32비트는 세그먼트의 시작 주소(0~0xFFFFFFFF)를 가리킨다. 20비트는 세그먼트의 크기(0~4GiB)를 가리키며, 옵션에 따라 단위를 1Byte로 설정할 경우 최대 1MiB, 단위를 4KiB로 설정할 경우 최대 4GiB까지 설정할 수 있다.

Descriptor Tables

8192(213)개의 Descriptors를 모아 둔 테이블이며, 이 테이블의 시작 주소는 GDTR(Global Descriptor Table Register) 또는 LDTR(Local Descriptor Table Register)에 저장된다.

Selectors

Descriptor를 가리키는 16비트 크기의 자료구조이며, 전체 16비트 중 13비트는 Descriptor의 Index를 가리킨다. 1비트는 GDT(Global Descriptor Table)인지 LDT(Local Descriptor Table)인지를 결정한다(1이면 LDT, 0이면 GDT). 2비트는 접근 권한을 가리킨다. Segment Registers에 저장된다.

Linear Address에 접근

Descriptors, Descriptor Tables, Selectors를 이용해 프로세서가 Linear Address에 접근하는 과정은 다음과 같다:

  1. Selector에 있는 Descriptor의 Index에 8을 곱한 후 GDTR 또는 LDTR 값을 더해 Descriptor의 주소를 얻는다.
  2. Descriptor에 있는 Base Address(세그먼트의 시작 주소)를 사용해 세그먼트의 시작 주소를 얻는다.
  3. 세그먼트의 시작 주소에 Offset을 더해 원하는 데이터 주소를 얻는다.
  4. (페이징이 활성화되어 있는 경우 페이지 해석을 추가로 실행한다. 비활성화되어 있는 경우 바로 데이터에 접근한다.)

참고 문헌

  • IA-32 Intel Architecture Software Developer’s Manual Volume 3A: System Programming Guide

Copyright © 1997–2008 Intel Corporation http://www.intel.com/products/processor/manuals/index.htm

  • Intel 80386 Programmer's Reference Manual 1986
  • Operating Systems: Internals and Design Principles by William Stallings

Publisher: Prentice Hall ISBN 0-13-147954-7 ISBN 978-0-13-147954-8

같이 보기

Kembali kehalaman sebelumnya


Index: pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve 
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9