날마다 새롭게 또 날마다 새롭게

메모리 이야기 본문

H/W/memory

메모리 이야기

아무유 2013. 6. 25. 23:07

메모리 이야기


메모리 영역

운영체제와 사용자 프로그램이 조화롭게 공존할 수 있도록 사용자 공간과 커널공간으로 나눈다.

리눅스 32비트 환경에서는 사용자 영역을 3G, 커널 영역을 1G로 나누어 사용한다.


특권 레벨

메모리 공간에 접근할 수 있는 권한을 말한다. CPU에서 특권 레벨은 0~3까지 4가지 레벨을 제공한다.

특권 레벨 0 : Core

특권 레벨 1,2 : 서브시스템

특권 레벨 3 : 사용자 응용프로그램


세그먼트 디스크립터(Segment Descriptor)

운영체제가 해당 레벨에 사용할 메모리 영역을 지정하기 위한 특별한 자료구조를 말한다.


GDT(Global Descriptor Table)

메모리 전체의 사용 영역을 서술하는 테이블이다.

(IA-32 Intel(R) Architecture Software Developer's Manual 에서 자세한 구조를 볼 수 있다.)

이 자료구조에는 DPL과 Type필드가 있다.

DPL(Descriptor Privilege Level) : 특권 레벨 지정에 쓰임

Type 필드 : 코드 영역인지 데이터 영역인지 읽기/쓰기 권한, 실행 권한을 지정하는데 쓰임


시스템 호출

사용자 영역에서 커널 영역에 있는 함수를 호출하는 것을 말한다.


CALL  명령

CPU가 하위 레벨에서 상위 레벨로 접근할 수 있는 콜게이트를 제공하는 명령어


CPL(Current Privilege Level)

CPU에서 현재 실행 중인 특권레벨을 저장하는데 쓰임


RPL(Requested Privilege Level)

CPU  내에서 요청하는 쪽의 권한을 기록하고 추적하기 위한 용도로 사용함

Comments