Microsoft Network Monitor

tips 2009. 10. 2. 01:31 |
Microsoft의 패킷캡쳐/ 분석 프로그램이다. 
프로세스별로 패킷을 나누어 볼 수 있다.

'tips' 카테고리의 다른 글

Apache DefaultCharset  (0) 2009.12.04
IE 8.0에서 세션공유기능 해제  (0) 2009.11.17
DbgView  (0) 2009.10.23
WireShark의 부가기능  (0) 2009.10.01
Open Command Line on this Location  (0) 2009.09.30
Posted by applicationlayer
:

context switch

windows 2009. 10. 1. 22:56 |

Windows 유저모드(User Mode) 커널모드(Kernel Mode) 구분되어 프로세스가 실행된다. 커널 모드에서 동작하는 프로세스만이 컴퓨터에 장착된 모든 메모리와 하드웨어에 대한 직접적인 접근이 가능하며 디바이스 드라이버가 가장 대표적인 예라고 있다. 일반적인 윈도우 프로그램의 경우 유저모드 프로세스가 작동하는 것이므로 직접 하드웨어 장치나 메모리에 접근할 수는 없다. 하드웨어 장치나 메모리에 접근하기 위해서는 유저모드 프로그램은 시스템 서비스(API라고 이해바람) 호출하게 되고 운영체제는 TRAP 발생시켜 커널 모드로의 스위칭을 위한 스레드를 호출 하게 . 스레드에서 하드웨어 장치 또는 메모리에 접근하게 된다. 이를 context switch라고 .

'windows' 카테고리의 다른 글

PIMAGE_IMPORT_DESCRIPTOR  (0) 2010.05.24
WinNT.h  (0) 2010.05.24
GetModuleHandle과 LoadLibrary  (0) 2010.05.11
Toolhelp32를 이용한 프로세스ID얻기  (0) 2009.10.02
세그먼트 레지스터  (0) 2009.10.01
Posted by applicationlayer
:

세그먼트 레지스터

windows 2009. 10. 1. 22:48 |

과거 8086시대의 16bit시스템에서는 1MB의 물리메모리에 접근하기 위하여 세그먼트레지스터를 사용하였다. 16bit로 이루어진 세그먼트레지스터(CS,SS,DS,ES...)는 16bit의 범용레지스터와 함께 사용되어 원하는 메모리범위에 접근할 수 있었다.

80386시대(32bit)에 오면서 범용레지스터는 더이상 용량의 한계로 세그먼트레지스터의 도움을 받을 필요가 없었으나 여전히 세그먼트레지스터는 범용레지스터와 함께 주소표시방법에 사용된다. 다만 권한, 영역제한, 메모리보호등의 목적으로 사용될 뿐이다.

세그먼테이션
세그먼트레지스터와 사용자가 지정한 메모리를 조합하는 과정을 세그먼테이션이라고 한다.

CPU는 부트과정 초기에 메모리에 GDT(Global Discriptor Table)와 LDT(Local Discriptor Table)를 생성후 CPU의 GDTR(Global Discriptor Table Register)과 LDTR(Local Discriptor Table Register)에 해당 테이블의 주소를 저장한다.
디스크립터 테이블은 세그먼트 디스크립터의 목록이라고 볼 수 있으며,
세그먼트 디스크립터는 메모리에 대한 속성 권한 영역등의 정보를 가지고 있다.
세그먼트레지스터는 세그먼트디스크립터의 위치에 대한 정보를 가지고 있고
세그먼트레지스터와 메모리오프셋의 조합(세그먼테이션)과정으로 해당 메모리에 대한 보호가 이루어지게 된다.

 

세그먼트디스크립터

8byte의 세그먼트디스크립터는 여러가지 보호정보를 가지고 있으며
세그먼트레지스터는 세그먼트 디스크립터의 인덱스정보만을 저장하고 있을 뿐이다.


디스크립터 테이블
디스크립터 테이블은 세그먼트디스크립터의 목록이며 GDT와 LDT가 있다.
GDT란 모든프로그램이 참조할 수 있는 세그먼트 디스크립터의 모임이며 운영체제 제작시 반드시 만들어 주어야 하는 디스크립터 테이블이다.
LDT란 테스크 단위로 정의할 수 있는 테이블이며 윈도우NT의 일반적인 경우 이 LDT를 정의하지 않는다. 이 둘은 각각 CPU의 GDTR과 LDTR에 의해 지시된다.


세그먼트 셀렉터
보호모드에서의 세그먼트레지스터는 과거의 메모리확장 용도가 아닌 세그먼트디스크립터를 지시하는 용도로 사용되기 때문에 이를 세그먼트 셀렉터라 부르기도 한다.

 

 

 

'windows' 카테고리의 다른 글

PIMAGE_IMPORT_DESCRIPTOR  (0) 2010.05.24
WinNT.h  (0) 2010.05.24
GetModuleHandle과 LoadLibrary  (0) 2010.05.11
Toolhelp32를 이용한 프로세스ID얻기  (0) 2009.10.02
context switch  (0) 2009.10.01
Posted by applicationlayer
: