Microsoft/Core

Microsoft/Core

User Mode, Kernel Mode

윈도우즈의 메모리는 User 모드와 Kernel모드로 나뉘어져 있으며 주소별로 역할이 정해져 있다. [그림 1] X86 레이아웃 그림 1을 보면 간단하게 User Space와 Kernel Space를 구분하여 사용하는 것을 알 수 있다. 일반적으로 User Mode는 일반 Application의 영역이며 Kernel Mode는 OS관련 프로그램과 디바이스 드라이버가 위치를 하게 된다. Kernel 메모리에는 OS가 로드되면서 OS와 관련있는 함수(API)와 디바이스 드라이버 등과 같이 OS 구동에 필요한 데이터들이 올라가 있다. 인텔 X86 프로세서는 특권계층이라는 것을 두어 계층별로 접근할 수 있는 영역을 구분하여 사용하고 있다. [그림 2] 특권레벨 그렇다면 User Mode에 올라간 Applicat..

Microsoft/Core

Windows 충돌

윈도우즈 충돌로 인한 Blue Screen에 대해 알아보도록 하자. Windows 충돌 이유 1) 커널 모드에서 실행하는 장치 드라이버 or 운영체제 함수가 메모리 액세스 위반(허용된 메모리가 아닌 메모리에 쓰거나 읽는 경우)와 같은 처리되지 않는 예외 초래시 발생 2) 시스템이 손상되어 계속 실행 시 데이터 손상의 위험이 있는 경우 3) 하드웨어 에러 발생시 * IRQL이나 DPC는 학습하지 않았으므로 해당 내용은 제외한다. [그림 1] 충돌 원인 그림 1과 같이 충돌원인의 대부분은 서드파티 디바이스 드라이버다. 얼마전 Tool 에서 설명한 verifier를 사용하여 각 서버의 인증되지 않은 드라이버에 대해 확인한 후 해당 드라이버 버전에 대해 MS에 요청을하여 장애 포인트를 줄일 수 있다. 위와 같은..

Microsoft/Core

사용 계획

윈도우에는 두가지 사용 계획이 있다. 프로세서와 메모리에 대해서 계획을 미리 세팅할 수 있으며 향후 서버의 사용 용도에 따라 미리 설정하여 최적의 성능을 제공할 수 있다. [내 컴퓨터 -> 속성 -> 고급 -> 성능 -> 설정]에 들어가면 다음 화면을 볼 수 있다. [그림 1] 시스템 등록 정보 (1) 프로세서 사용 계획 - 프로그램 : 실제 화면을 띄워서 사용하는 프로그램(Tomcat, 일반 사무프로그램)들이 많은 경우 설정한다. - 백그라운드 서비스 : Default 이며 백그라운드(실제로 화면을 띄워서 사용하지 않는 일반 서비스에 등록된 서비스) 프로그램이 많은 경우 설정한다. [레지스트리 위치] HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Prior..

Microsoft/Core

메모리 체크 관련 툴

1. Pooltag.txt rem rem Pooltag.txt rem rem This file lists the tags used for pool allocations by kernel mode components rem and drivers. rem rem The file has the following format: rem - - rem rem Pooltag.txt is installed with Debugging Tools for Windows (in %windbg%\triage) rem and with the Windows DDK (in %winddk%\tools\other\platform\poolmon, where rem platform is amd64, i386, or ia64). rem Ad..

Microsoft/Core

페이지 처리 및 Paged Memory

(1) 요구 페이지 처리 Segmentation -> paging을 배우면서 Virtual memory와 Physical memory를 mapping하는 방법에 대해 배웠다. 해당 방법을 요구 페이지 처리라고 한다. 즉, 필요한 메모리를 모두 올리는 것이 아닌 요구한 페이지만 메모리에 올리는 방식을 의마한다. [그림 1] 요구 페이지처리 그림 1을 참고하여 처리방법에 대해 알아보도록 하자. 1) 프로세서는 해당 명령어에 필요한 Data가 메모리에 올라가 있는지 확인하기 위해 페이지 테이블의 유효 비트를 살펴본다. 2) 유효하지 않은 경우 Page Fault 인터럽트를 발생시킨다. 3) 인터럽트를 받은 OS는 Physical Memory의 빈공간을 찾아보고 빈공간이 없는 경우에 페이지 교체작업을 통해 메모..

Microsoft/Core

Paging

Segmentation 에 의해 생성된 32 bit의 Linear Address는 4GB까지 지정할 수 있다. 이런 Linear Address를 사용하여 페이징 절차를 거치면 Memory의 Physical 주소를 얻을 수 있다. 그럼 이런 Paging은 어떤 단계로 이루어지는지 알아보도록 하자 [그림 1] Paging Paging을 하는 단계는 다음과 같다. 1) 32 bit의 선형주소를 Page Directory Index, Page Table Index, Offset의 3부분으로 나눈다. 2) CPU의 CR3 레지스터가 가리키고 있는 페이지 디렉토리와 선형주소로 부터 얻은 페이지 디렉토리 인덱스를 사용하여 페이지 테이블의 포인터를 얻는다. 3) 페이지 테이블의 포인터와 선형 주소의 페이지 테이블 인덱..

Microsoft/Core

Segmentation

Windows 운영체제에서 프로그램이 접근하는 메모리는 가상 메모리이며 가상메모리의 내용을 물리적 메모리에 쓰거나 읽는 과정은 80x86 인텔 프로세서에서 지원하는 Segmentation과 Paging 과정에 의해서 이다. 이번 장에서는 두가지 내용 중 Segmentation 내용에 대해 알아보도록 하겠다. [그림 1] Segmentation 1. Segmentation Segmentation이란 마이크로프로세서에서 명시적 혹은 암시적으로 지시되는 세그먼트 레지스터와 사용자가 지정한 메모리(가상 메모리)를 조합하여 Linear Address를 생성하는 과정을 말한다. 그림 1을 보면 간단한 원리를 알 수 있다. 세그먼트 레지스터와 가상 논리 주소를 통해 얻어지는 주소는 Linear Address이다. 이..

Microsoft/Core

Intel 80x86 메모리 처리 기법

윈도우의 메모리를 알아 보기 전 Intel 80x86 계열에서의 메모리 처리 기법에 대해 먼저 알아보기로 하자. 1. 가상 주소 운영 체제에서 제공하는 메모리 관리기법으로 실제 메모리와 운영체제의 도움으로 하드디스크까지 메모리의 보조적인 기억장치(Paging Space)를 포함하는 주소를 의미한다. [그림1] 메모리의 가상 주소 및 실제 주소(출처 : 위키백과) 그림 1에서 보는 바와 같이 가상 메모리 주소는 실제 메모리 주소와 메핑되어 있으며 page 단위로 나누어져 있다. page는 다음에 알아보기로 하며 해당 page는 process가 사용하고 있는 page와 process가 사용하고 있지 않는 page로 나뉘어져 있다. process에 속해 있다는 의미는 해당 page가 process가 구동되는 ..

Microsoft/Core

snapman.sys 오류로 인한 windows 2008 부팅 실패

다음과 같이 Windows2008과 TI 충돌 이슈 공유합니다. TrueImage의 경우 Windows2008에서 Echo Version 이상에 대해서만 지원하고 있습니다. 만일 지금 깔고 있는 9.1 Version을 설치하는 경우 다음과 같은 오류를 발생합니다. (그림을 뜰 수 없어 내용을 적어 드리오니 비슷한 내용이면 참고 바랍니다.) C:\Windows\system32\drivers\snapman.sys 해당 드라이버를 신뢰할 수 없다는 메시지와 함께 안전 모드 부팅 or Repair 하라는 메시지가 발생합니다. 이럴 경우 다음과 같이 조치 하시면됩니다. 조치방법 1. Windows 2008 Cd Insert 2. 서버 리부팅 3. CD Booting 4. Repair Computer 5. 명령 프..

Microsoft/Core

AD Sid 오류관련(가상화 머신 사용시)

AD 구성 테스트를 하는 도중 다음과 같은 내용이 발견되어 해결방법에 대해 공유합니다. 현재 구성은 AD의 Active - Sub 로 두대의 AD 관련 컨트롤러 서버로 구성되어 있습니다. 향후 Cluster Test를 위해 2대의 서버가 구성되어 있습니다. Cluster 서버를 AD에 등록하기 위한 작업을 완료 후 Cluster 서버에서 AD를 사용하여 로그인을 하는 경우 다음과 같은 메시지가 발생하였습니다. 해당 서버들은 Vmware I 에 올라가 있으며 하나의 OS 구성후 vmdk File Copy를 사용하여 이미지들을 만들었습니다. Copy를 통해 OS를 만드는 경우 SID가 각 서버마다 같아지는 문제점이 있습니다. 그럼 SID는 무엇이냐~? Sid는 Security Identity(보안 식별자)라..

로멘틱가이
'Microsoft/Core' 카테고리의 글 목록 (3 Page)