+ 가상 메모리 -> 물리 메모리 Selector Offset DIR Page Segmetatation

Slides:



Advertisements
Similar presentations
1/15 16 기 장영일 Ext File System. 2/15 처음에 Minix 가 사용되었다 ( 제약사항 ) 최대로 저장할 수 있는 파일의 크기 – 64M : 16bit 정수로 블록 주소 지정 -> 1024( 블록 기본 사이즈 ) * (2^16) = 64M.
Advertisements

Family 의 개요 의 외부 Pin 기능과 내부 기능 Memory 구조 Timing 2 장 8051 의 구조.
키보드 보안 순천향대학교 정보보호학과 임강빈 교수.
ISA 심화 및 start.S code 분석 SIOR 15th 최재훈.
Basic of Buffer Over Flow
Shellcode 작성 김영성.
데이터 모델링 방법론 2003년 03월.
제8장. RISC 및 슈퍼스칼라 프로세서 8.1 RISC의 출현 동기 8.2 RISC의 발전 경위
CRT 뽀개기 신영진.
Part01. 시스템 해킹을 위한 기초 지식 Chapter01. 운영체제에 대한 이해
제 2장 컴퓨터 구조.
리눅스 커널의 이해 중에서 4장. 인터럽트와 예외 이성현 네트워크 실험실.
Hide Process
프로그램 제어 분기(branch)와 점프(jump) 명령어 PC의 값의 변경 순차적인 프로그램의 진행순서가
4장 어셈블리 프로그램 작성의 기본 어셈블러 어셈블리 언어 요소 예제 프로그램 데이터 정의
13장. 시스템 버스 다루는 내용 시스템 버스의 개념 다중버스 계층 구조 버스 중재.
마이크로프로세서 메모리 및 입출력장치 인터페이스
HP ESSO Consulting Glance Manual
Lecture #12 인터럽트 Interrupt.
AWR DB 보고서 분석.
10장 주변장치 (PIO) Slide 1 (of 28).
Lecture #7 어셈블리어 (4) 매크로 어셈블리어 시스템프로그래밍.
제 7 장 링커와 로더 설계.
System Call Linux Kernel 수업 3번째.
3장. 컴퓨터의 기억장치 학번 : 이름 : 김현화.
2 80×86 시스템에 대한 이해.
DSP와 TMS320F28x의 이해.
Software Exploit and Kernel Protection
수학 I 2. 방정식과 부등식.
Chapter 02 시스템 구조(System Structure)
Lecture #8 어셈블리어 (5) 매크로 어셈블리어 시스템프로그래밍.
버퍼 오버플로우 시스템보안 인터넷공학전공 권영락.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
Chapter 10. Interrupt.
리버스 엔지니어링 안녕하십니까? 리버스 엔지니어링 발표를 맡은 정창하입니다. 지금부터 리버스 엔지니어링 발표를
어셈블리어 및 실습 금 1,2 (314) / 금 3,4 (307) RTDCS 이 종 태
Operating System 5주차 - System Call Analysis -
Geek-OS Project 정영진
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
BOF of 2.6 Kernel ! 박수완 / Su-Wan, PARK [ L1nkC] 숭실대학교 정보보호동아리 ACK
제3장 8086 프로세서의 내부구조.
제 2장 컴퓨터동작의 기본 개념.
Xen and the Art of Virtualization
임베디드 소프트웨어 설계.
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
Computer System Architecture
명품 C++ 프로그래밍 1장. C++ 시작.
Buffer Overflow
제 장 학습내용 C 언어에서의 인터럽트 사용 레지스터를 위한 자료구조 인터럽트를 수행하기 위한 명령어
Computer System Architecture
Seoul National University
기억장치 관리(Memory Management)
운영체제 (Operating Systems) (Memory Management Strategies)
7장 메모리 관리 메모리 관리를 위한 메모리 할당 기법과 경영에 대해 알아본다. 단편화 현상의 원인과 해결 방법을 알아본다.
1. 컴퓨터 시스템 구성요소 메모리(Memory) 캐시메모리 개념 캐시메모리의 특징 적중률(hit ratio)
UNIT 21 Flash Memory Controller 로봇 SW 교육원 조용수.
Chapter 12 Memory Organization
11장. 마이크로 프로세서 내부 구조.
파일 구조의 이해 PE Format 안녕하십니까
제 3 장 운영체제와 입출력 방식 Section 1 입출력 기능 Section 2 입출력 방식 Section 3 입출력 버퍼링
3단원 디지털 세상 속으로 1. 0과 1의 비밀.
8. 리눅스의 내부 군자삼락 [君子三樂] 청출어람이청어람 [ 靑出於藍而靑於藍 ] Why Linux ?
제9장 가상 메모리 관리.
기억장치 관리(Memory Management)
제4강 학습내용 인텔프로세서의 발전 과정 8086 프로세서와 80i86프로세서 개요 인텔 펜티엄 IV프로세서 개요
제 8 장 가상 기억장치 구성 이나현.
화 일 구 조 Chapter 3 화일의 입출력 제어.
이제 태스크 스위칭에대해서만!! 한번 생각해보자!!!
가상 기억장치 (Virtual Memory)
4-1. 명령어 형식.
Presentation transcript:

+ 가상 메모리 -> 물리 메모리 Selector Offset DIR Page Segmetatation 사용자가 지정한 주소 Segment Registers Segment Descriptor Descripter Table + DIR Page Page Directory Page Table 실제 메모리 CR3 최종적인 물리 주소 Segmetatation Virtual Address (가상 메모리) Linear Address (선형 메모리) Paging physical Address (물리 메모리) 가상 메모리 -> 물리 메모리

Real Mode Segmentation 세그먼트 오프셋 목적 코드 세그먼트(CS) IP 실행되는 명령어 스택 세그먼트(SS) SP 또는 BP 스택 주소 참조 데이터 세그먼트(DS) AX, BX, CX, DX같은 범용 레지스터와 BX, DI, SI 데이터 주소 참조 보조 세그먼트(ES) 스트링 명령어를 위한 DI 스트링의 목적지 주소 16비트의 세그먼트 값 4비트 16비트의 오프셋 값 CPU로부터 출력되는 실제 주소 값 20비트

+ Protected Mode Segmentation - GDTR Segment Registers DS Descriptor Global Descripter Table + Size Base Address GDTR 47(79) 16 15 Index RPL Index : Offset TI : LDT(1) or GDT(0) 결정 RPL : 특별권한 레벨 (CS는 CPL, 메모리 Code의 실행 권한) Register Linear Address ……. Segment Descriptor CS Descriptor System Register 용도 GDTR 커널의 Descriptor Table의 Base 주소와 Limit를 저장 IDTR 인터럽트를 위한 Descriptor Table의 Base 주소와 Limit 저장 LDTR 현재 실행 중인 Task의 Desciptor Table을 가리킴 TR 현재 실행 중인 Task의 상태를 저장하는 TSS를 가리킴

Protected Mode Segmentation - LDTR Segment Registers DS Descriptor GDT Size Base Address GDTR 47(79) 16 15 Index 1 RPL Task Descriptor LDT Descriptor CS Decriptor LDT ……. Descriptor CS Descriptor + Register Linear Address Selector LDTR 15

Protected Mode Segmentation - TSS DS Descriptor GDT Size Base Address GDTR 47(79) 16 15 Task Descriptor LDT Descriptor CS Decriptor TSS Selector Task Register 15 I/O Map Base Reserved LDTR GS FS DS SS CS ES EDI ESI EBP ESP EBX EDX ECX EAX EFlags EIP SS(2~0) ESP(2~0) Prev TSS T CR3(PDBR) Selector LDTR 15 TSS의 LDTR과 이 LDTR은 같아야 함

Segment Desciptor 비트 설명 Base G D X U Limit P DPL S Type A Code/ Data Conforming Read Segment Desciptor 비트 설명 A(Accessed) 메모리 액세스시 프로세서에 의해 자동 세팅 Type (Segment Type) Code(1)/Data(0), Data : expand, write, accessd Code : conforming, read, accessed S(System) System 세그먼트(0), Code, Data, Stack(1) DPL (Descriptor Privilege Level) 메모리에 액세스되는 특권레벨(0은 커널, 1과 2는 디바이스, 3은 어플레케이션) P(Present) 디스크립터가 유효한지를 나타내는 비트, 0일시 메모리 엑세스 수행 X U(User) 프로그래머에 의해 사용 X(Intel 예약) 확장을 위한 예약 D(Default Size) 0이면 오퍼랜드에 대해 16비트 사이즈, 1이면 32비트 사이즈 G(Granularity) 0일 경우 Limit의 사이즈는 1Byte, 1일 경우 4KB

TSS Desciptor 비트 설명 Base G AVL Limit P DPL Type A 1 0 / B B AVL Limit P DPL Type A 1 0 / B TSS Desciptor 비트 설명 B Busy(현재 TSS를 사용 중을 나타냄) DPL (Descriptor Privilege Level) 메모리에 액세스되는 특권레벨(0은 커널, 1과 2는 디바이스, 3은 어플레케이션) P(Present) 디스크립터가 유효한지를 나타내는 비트, 0일시 메모리 엑세스 수행 X AVL 시스템 소프트웨어에서 사용됨 G(Granularity) 0일 경우 Limit의 사이즈는 1Byte, 1일 경우 4KB

Gate Descriptor http://egloos.zum.com/micingamja/v/3422349 Task Switching

Protected Mode Segmentation – IDTR(GDT) Task Gate Interrupt Descripter Table Size Base Address IDTR 47(79) 16 15 ……. Interrupt Gate Trap Gate DS Descriptor GDT GDTR Task Descriptor LDT Descriptor CS Decriptor Interrupt Vertor + Interrupt Handler 외부 인터럽트는 GDT를 참조 트랩은 LDT를 참조

Protected Mode Segmentation – IDTR(GDT) Task Gate Interrupt Descripter Table Size Base Address IDTR 47(79) 16 15 ……. Interrupt Gate Trap Gate DS Descriptor GDT GDTR Task Descriptor LDT Descriptor CS Decriptor Interrupt Vertor TSS 외부 인터럽트는 GDT를 참조 트랩은 LDT를 참조

Protected Mode Segmentation – IDTR(LDT) Task Gate Interrupt Descripter Table Size Base Address IDTR 47(79) 16 15 …… Interrupt Gate Trap Gate DS Descriptor GDT GDTR Task Descriptor LDT Descriptor CS Decriptor Interrupt Vertor Selector LDTR 15 LDT Descriptor CS Descriptor + Exception Handler

Protected Mode Segmentation – Call Gate DS Descriptor GDT Size Base Address GDTR 47(79) 16 15 Task Descriptor LDT Descriptor CS Decriptor Selector LDTR 15 LDT …… Call Gate Des. CS Descriptor RPL Call Gate + Procedure Entry Point 71페이지

Paging DIR Page Offset Page Directory Page Table 실제 메모리 CR3 최종적인 물리 주소

Paging Descriptor http://egloos.zum.com/anster/v/2141358

Paging Descriptor 비트 설명 P(Present) 0번째 비트로 이 페이지 디렉토리가 메모리에 존재하는지, 아니면 존재하지 않는지를 의미한다. 0이면 사용할 수 없다. R/W(Read/Write) 해당 페이지의 속성을 나타낸다. 읽기만 가능한지 ( 0 ) , 읽기 쓰기 가능한지 ( 1 ) U/S(User/SVC) 1로 세팅되어있을 경우 Ring 0, Ring 3에서 모두 접근 가능하지만 0으로 세팅 되어있을 경우 해당 페이지는 Ring 0에서만 접근 가능하다 PWT(Page-Level Write- Through) 캐시 정책과 관련이 있다. 이후에 설명한다 PCD(Page_Level Cache-Disable) A(Accessed)  해당 페이지가 선형 주소 변환, 즉 소프트웨어에 의해 접근(4MB 페이징)되었는지를 나타낸다. D(Dirty)  4KB의 경우 항상 0이며, 4MB의 경우 소프트웨어에 의해 해당 페이지가 쓰여진(Written)적 있는지를 나타낸다. G(Global) CR4.PGE 플래그와 관련있다. 캐시 정책과 관련이 있다. 이후에 설명 하겠다. PAT(Page Attribute Type) PAT 플래그가 세팅되어 있으면 메모리 타입을 결정할 수 있다.