Soft Ware/Windows System 6

파일 시스템 드라이버

1. 파일 시스템 드라이버는 I/O를 요청한 스레드 컨텍스트에서 호출 되어야 한다. 2. 파일 시스템 드라이버는 메모리 관리자와 캐시 관리자와 자주 통신한다. 그래서 일반 디바이스 드라이버와 구분하는 가장 큰 특징은 캐시 관리자와 통신한다는 사실이다. 3. 파일 시스템 드라이버가 Fast I/O를 사용하여 I/O 요청을 처리할때 데이터는 항상 캐쉬된 상태에 있어야 한다. 4. I/O 처리에 필요한 데이터가 시스템 캐시에 없으면 캐시 관리자는 페이지 오류를 발생시키고 제어를 메모리 관리자에 넘긴다. 5. 파일 시스템 드라이버는 I/O 관리자 및 오브젝트 관리자와 민접한 관계에 있다. 6. 오직 파일 시스템 드라이버만이 데이터를 읽거나 저장하기 위한 Fast I/O함수를 제공한다. --------------..

MDL , 커널 버퍼

I/O를 요청하는 스레드나 프로세스의 데이터 버퍼에 대한 정보는 IRP 구조체에 저장되어 있다. 드라이버에 I/O 요청과 관련된 스레드나 프로세스의 데이터 버퍼를 설명하기 위한 세가지 서로 다른 방법을 제공 MDL(Memory Descriptor List) 메모리 기술자 리스트 MDL은 가상 메모리 정보외에 가상메모리가 어떤 물리메모리와 연결되어 있는지를 보여주는 기능을 한다. 또한 하나의 MDL은 복수 개의 불연속적인 가상 메모리들을 모두 서술하는 부가적인 기능을 가지고 있다. Direct I/O : MDL(Memory Descriptor List) MDL 이라 불리는 구조체를 사용하여 I/O를 요청한 스레드의 물리 주소 공간에 위치한 데이터 영역을 가리키는 방식 MDL(구조체) 사용 ---------..

스레드 컨텍스트

멀티 스레드는 동시에 실행되는것처럼 흉내내는 방법으로 구현되고 스레드를 어떤 순서로 얼마큼의 간격으로 실행할것인가를 결정하는 정책을 스케줄링이라고 한다. 시간을 얼마나 잘게 쪼갤것인가는 운영체제 버전과 목적 설정 상태에 따라 달라지는데 대략 0.02초 정도로 시간을 분할하며 이때 분할된 시간 조각 하라는 퀸텀이라고 한다. 멀티 스레딩은 사실 동시에 실행되는것이 아니라 빠른 속도로 스레드를 번갈아 가며 실행하는것인데 이러한 방식을 라운드 로빈 방식아라고 한다. 예를 들어 어떠한 작업을 하다가 다른 작업을 시작하였다 그리고 다시 처음 작업을 해야되는데 어디까지 작업을 하다 말았는지를 알수 없을것이다. 이러한 스레드 실행 상태에 대한 정보를 스레드 컨텍스트 라고한다.

파일 시스템 드라이버의 특징

I/O 관리자는 유저모드에서 동작하는 프로그램으로부터 I/O 요청에 맞는 I/O 요청 패킷을 구성하고 생성된 IRP를 I/O 요청을 처라하는 드라이버에 직접 전달 하지 않고 디바이스 스택에서 상위 레벨 드라이에 초함된 파일 시스템 드라이버에 전달한다. 파일 시스템 드라이버는 전달된 IRP를 조사하여 I/O 요청을 처리할 디바이스 오프젝트를 확인하고 IoCallDriver()함수를 통하여 I/O 요청을 처리할 적절한 드라이버에 IRP를 전달한다. 파일 시스템 드라이버는 I/O 를 요청한 스레드 컨텍스트에서 호출되어야한다. 여기서 컨텍스트란 ?? 문맥이란 뜩으로 프로그래밍 환경에서 말하는 컨텍스트라는 말은 해당 코드가 바인딩 되어 실행되는 환경을 일컫는다.

HAL 이란??(hardware abstraction layer) 하드웨어 추상화 계층

입출력 인터페이스,interrupt 제어, 다중 프로세서 통신을 구현하는 데 필요한 하드웨어 종속적인 세부 사항을 처리하는 루틴들의 집합체. 컴퓨터에서, HAL은 컴퓨터 운영체계가 자세한 하드웨어 계층이 아닌 일반적이거나, 추상적인 계층에서 하드웨어 서비스와 상호 작용할 수 있게 해주는 프로그램 계층이다. HAL은 운영체계의 커널이나 장치 드라이버로부터 호출될 수 있다. 추상화(abstraction) : 주어진 문제나 시스템 중에서 중요하고 관계있는 부분만을 분리하여 간결하고 이해하기 쉽게 만드는 작업 가상메모리 : 운영체제의 기본적인 메모리 관리 기법으로서 소프트웨어가 물리 메모리에 직접 접근해서 사용하는 대신에 프로세서가 운영체제와 조합해서 소프트웨어와 물리 메모리 사이에 가상의 계층을 만드는것 프로..

0~3 까지의 특권 레벨 , Context switching

1. 특권 수준이 낮은 코드 세그먼트는 특권수준이 높은 데이터 세그먼트에 접근 할수 없다. 2. 특권 수준이 낮은 코드 세그먼트는 특권수준이 높은 코드 세그먼트로 프로그램을 실행 할수 없다. 이에 대해서는 특별한 방법이 필요하다. 3. 특권 수준이 높은 코드 세그먼트에서 특권 수준이 낮은 코드 세그먼트로의 제어 이동은 불가능하다. -------------------------------------------------------------------------------------------- 멀티 프로세스 운영체제에서, 실행중인 프로세스가 변경되면 CPU에 올라와있던 레지스터들의 값이 다음 변경될 프로세스의 정보로 변경되어야 한다. 먼저 실행중이던 프로세스가 아예 끝났다면 모르겠지만, 프로세스의 실행이..