-
common, segment,system Register and EFLAGSOperating System 2014. 1. 20. 22:20
범용 레지스터
EIP
Instruction pointer 레지스터는 다음 실행할 명령어가 있는 현재 code segment의 offset값을 가진다.
소프트웨어적으로 접근 할 수 없으며, Control-transfer instructin(JMP,CALL, RET)이나 interrput와 exception에 의해서 제어된다.
세그먼트 레지스터
메모리 보호용으로 사용
CS, DS, SS, ES, FS, GS
CS,SD,SS,ES는 32bit protected mode에선 GDT 인덱싱하는데 사용되고,
FS는 TEB구조체 가르치고,
GS는 ?
EFLAGS(Extended FLAGS)
저렇게 status, control ,system flag로 category가 나뉜다.
OF
SF
ZF
AF
PF
CF
just cpu가 수행한 연산의 결과를 flag bit로 나타낸다.
for example,
1111 + 0001 = 0000
연산을 하면, overflow발생했고, carry도 생겼으므로, set CF, OF
시스템 레지스터
IA-32에서 중요한 시스템 레지스터를 갖는다. MS - Windows는 가장 높은 특권 레벨(level 0)에서 수행되는 프로그램에서만 이 레지스터들의 접근을 허용한다.
- (Interrupt Descriptor Table Register : IDTR)
인터럽트 서술자 테이블(IDT)의 주소를 포함. 이 테이블은 인터럽트를 처리하는 방법을 제공한다.
- (Global Descriptor Table Register : GDTR)
전역 서술자 테이블의 주소(GDT)를 포함. 이 테이블은 태스크 상태 세그먼트와 프로그램 지역 서술자 테이블에 대한 포인터를 포함한다.
- (Local Descriptor Table Register : LDTR)
현재 실행 중인 프로그램의 코드, 데이터, 스택에 대한 포인터를 포함한다.
- 테스크 레지스터 (Task Register:TR)
현재 실행 중인 테스크에 대한 태스크 상태 세그먼트(TSS)의 주소를 포함한다.
- 디버그 레지스터 (Debug Register)
디버깅할 때에 프로그램이 brake point를 설정하게 한다.
- 제어 레지스터 (Control Register) CR0, CR2, CR3, CR4
태스크 전환, 페이징, 캐시 메모리 활성화와 같은 시스템 수준의 동작을 제어하는 상태 플래그와 데이터 필드를 포함한다.
- 모델 특정 레지스터 (Model-Specific Register)
성능 모니터링과 기계 구조의 확인과 같은 운영체제의 스템 작업에 사용. 용도는 IA - 32 프로세서의 종류에 따라 변한다.
'Operating System' 카테고리의 다른 글
SPT, NPT (0) 2015.03.06 virtualization techniques (0) 2015.03.06 concurrency (0) 2015.02.15 GDT, segment descriptor (0) 2014.01.14 Task 상태정의 (0) 2013.06.14