일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- fabric-sdk-java
- convert
- Exception
- fabic
- Hyperledger
- web3js
- porterduff
- firebase
- 스트리밍
- error
- vuepress
- log
- C
- dataginding
- hardwareacceleration
- null safety
- quick-start
- LAYER_TYPE_SOFTWARE
- 컴파일
- 안드로이드
- test
- Android
- ethereum
- kotlin
- 다윈
- bigquery
- Glide
- coroutines
- Gradle
- Realm
- Today
- Total
날마다 새롭게 또 날마다 새롭게
메모리 이야기 본문
메모리 이야기
메모리 영역
운영체제와 사용자 프로그램이 조화롭게 공존할 수 있도록 사용자 공간과 커널공간으로 나눈다.
리눅스 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 내에서 요청하는 쪽의 권한을 기록하고 추적하기 위한 용도로 사용함