R&D 556

[Gate] Task Gate, Trap Gate, Interrupt Gate, Call Gate

OS에 대해서 심도있게 내려가다 보면, Ring, Privilege Level, Gate라는 단어를 만나게 된다. ㅇ Gate 란?- 현재의 낮은 특권(Privileges Level, ex Ring 3) 에서 높은 특권(Ring 0)로 전환할 수 있는 통로 ㅇ Gate의 종류- Task Gate- Trap Gate- Interrupt Gate- Call Gate ㅇ 특징* Gate를 통과하기 않고, 낮은 특권에서 높은 특권으로 전환시, General-Protection Exception(#GP)가 발생한다.* 모든 gate descriptor는 2bit 의 DPL(Descriptor Privilege Level) field를 가지고 있으며, gate를 통한 전환시 DPL을 통해서 access right를..

R&D/OS 2013.12.05

[x86] PIC 구조

PIC은 Uniprocessor 에서 CPU로 Interrupt를 전달하기 위한 intel 8259 chip 이다. Master 와 Slave 구조로 되어 있으며, Master가 CPU와 연결되어 있다. 하나의 8259 chip에는 8개의 input line 을 가지고 있고, 1개는 slave chip과 연결되어 있다. 따라서 총 15개의 interrupt line을 받을 수 있다. Multi-processor에서는 PIC을 사용할 수 없기 때문에 Advanced PIC (APIC)이 나왔고, 이는 CPU chip 내장되어 있는 Local APIC과 motherboard에 붙어 있는 I/O APIC으로 발전하였다. --> 다음 시간에는 PIC에서 발생하는 IRQ가 IDT(Interrupt Descript..

R&D/OS 2013.11.21

Page table & address translation

Linux 의 메모리 관리를 이해하기 위해서는 2단계 address translation에 대해서 이해해야 한다.1단계 전환(GDT/LDT) : Logical Address --> Linear Address2단계 전환(Page Table): Linear Address --> Physical Address 다음으로 구분을 해야 하는 것이 virtual address 와 Linear address의 관계이다. Process 별로 page table을 관리함 Context switching이 일어나면, mm_struct->pgd 의 값이 CR3로 로드되어, cpu는 virtual address를 physical address로 MMU를 이용해서 변환할 수 있다.또한 CR3에 새로운 값이 로드되면, x86에서는..

R&D/OS 2013.11.15

GDT vs .LDT

ㅇ GDT 란GDT(global descriptor table)란 Real Mode 에서 Protected Mode 로 변화되면서 추가된 테이블로써 해당 세그먼트의 베이스 주소와 세그먼트 제한 길이 등의 정보가 들어있다. 제한 길이가 들어있기 때문에 보호기능이 제공되며, 베이스 주소를 제공하기 때문에 16bit에서 24-31bit까지의 베이스 주소를 확장시킬수 있다. 그럼으로써 1b에서 4g까지 자유롭게 설정이 가능하게 된다. 또한 이 테이블에 권한설정까지 적어 넣을 수 있기 때문에 메모리에 대한 권한까지 부여할 수 있게 된다. ㅇ GDT vs LDT - GDT(Global Descriptor Table) : 커널모드에서 사용하는 테이블 / 커널모드용 하나 생성 / 전체내용 - LDT(Local desc..

R&D/OS 2013.11.08
728x90
반응형