Операционная система Windows NT — КиберПедия 

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Операционная система Windows NT

2017-09-30 164
Операционная система Windows NT 0.00 из 5.00 0 оценок
Заказать работу

NT 5.x: 5.0 – Windows 2000, 5.1 – Windows XP, 5.2 – Server 2003.

 
 

 


CALLS (запросы)
User mode

Подсистема Win32    
Инструкции кольца 3

 

Основной API

(набор системных функций)

 
 

 

 


Kernel mode

Инструкции кольца 0.

 
 


Уровень аппаратных абстракций
Драйверы устройств
Диспетчер виртуальной памяти Mm
Средства вызова процедур LPC
Диспетчер процессов PS
Диспетчер объектов Ob
Диспетчер ввода-вывода IO
Сервис исполняющей системы (> 30 служб)

 

 
 

 

 


Любой поток имеет свой

контекст (окружение)

 

 

HAL

Аппаратные средства
(набор макросов)

 

Рис.7. Структура операционной системы Windows.

Прикладные программы могут вызвать сервисы ОС только с помощью функций API. Для драйверов, осуществляющих управление аппаратурой и функционирующих в режиме ядра, предоставляется возможность непосредственного обращения к сервисам ОС, а также возможность использования макросов (процедур) для доступа к портам ввода и вывода. Например, в HAL имеются такие макросы:

Ассемблер x86 Аналог HAL Описание
IN AL, DX READ_PORT_UCHAR Чтение 1 байта из порта ввода/вывода
OUT DX, AL WRITE_PORT_UCHAR Запись 1 байта в порт ввода/вывода

 

Объектами в ОС выступают: файлы, процессы, потоки, события, секции памяти, разделы системного реестра, хранящие информацию об аппаратуре и ОС.

Процесс – это среда (адресное пространство, исполняемый код и т.п.) в которой выполняются потоки. При создании процесса автоматически создается первичный поток, который может порождать дочерние потоки. Для работы с процессами и потоками в ОС существует множество функций.

В DOS основным средством передачи управления программам служит механизм прерывания. В Windows прерывания используются только для системных нужд. Для программных приложений используется механизм событий, уведомления (сообщения) о которых помещаются в системную очередь. Например, нажатие клавиши на клавиатуре – это событие, сообщение о котором помещается в системную очередь. Из системной очереди сообщения пересылают в очередь к конкретным программным приложениям. Каждое приложение имеет хотя бы одно окно, которое является визуальным интерфейсом между пользователем и создавшим окно программным приложением. Сообщение адресуется конкретному окну.

Любое программное приложение выполняет цикл обработки сообщений. Цикл состоит из ожидания сообщения, приема появившегося сообщения, выявления действия, предписанного в сообщении, выполнения действия по обработке сообщения и перехода в режим ожидания. Прикладная программа должна иметь процедуру для обработки распознанного сообщения. Цикл обработки сообщений реализуется в главной функции WinMain.

ОС Windows имеет 3 отличительные особенности:

1) GUI (Graphic User Interface).

2) Многозадачность. Несколько приложений могут работать одновременно. Каждое приложение представлено окном на экране. При активизации программы, а следовательно окна, ранее выполняемая программа освобождает процессор и он предоставляется программе с активным окном.

3) ОС обеспечивает независимость программ от аппаратных средств. К аппаратуре имеют доступ ядро и драйверы. Независимость от аппаратуры (внешних устройств) выражается в том, что ОС предоставляет набор типовых функций взаимодействия с аппаратурой.

Организация файлов в DOS

Файл – это поименованная последовательность байтов, организованных в виде так называемых записей. Записи могут быть переменной или постоянной длины. В DOS не поддерживается информация о длине записи. Для файлов с постоянной длиной записи используется прямой или последовательный доступ к записям. Для указания текущей записи используется файловый указатель File Pointer (FP). FP хранит смещение либо от начала файла, либо от конца (FP задается с помощью функции 42h прерывания int 21h).

Информация в виде файлов организуется обычно для внешних запоминающих устройств. Физически информация размещается на поверхности диска, который покрыт магнитным материалом. При изготовлении на диске создаются дорожки (треки), которые программно разбиваются на секторы. Для доступа к сектору задается физический адрес следующим образом:

№ трека№ считывающей головки№ сектора.

Распределение дискового пространства для файлов задается в таблице с именем FAT (File Allocation Table). Файловая система также имеет имя FAT. Существуют другие файловые системы, например, NTFS – New Type File System, используемая в ОС семейства Windows NT. VFHT – виртуальная файловая система. HPFS – высокопроизводительная файловая система.

Таблица FAT хранится на диске, начиная со второго сектора. Файлы организованы в виде совокупности порций – кластеров. Размер кластера составляет 2n секторов (размер сектора 512 байт). Таблица состоит из элементов, имеющих размер 16 бит. Каждый m-ый элемент, за исключением нулевого и первого, описывает m-ый кластер области данных. Нумерация кластеров начинается с номера два. Каждый m-ый элемент FAT содержит либо номер следующего кластера, принадлежащего файлу, либо специальный код.

 
 

 

 


0 1 2 3 4

0-й элемент описывает тип накопителя (F8 – жесткий диск).

2-й элемент указывает номер кластера, с которого начинается первый файл данных. Специальный код 0000 обозначает свободный кластер, а FFFF обозначает кластер, являющийся последним в файле.

Логически информация на диске разделяется на 4 области:

BIOS FAT 1,2 Корневой каталог  

Область файлов и

Подкаталогов

 

Корневой каталог отличается от подкаталога:

· Корневой каталог содержит метку диска (тома).

· Длина его фиксирована.

· Фиксировано местоположение каталога.

· Фиксировано имя каталога. “\” – Microsoft.

· Корневой каталог нельзя стереть.

Для описания каждого файла (и подкаталога) используется 32-байтный элемент каталога, представляющий следующую информацию:

  • Имя – 8 байт.
  • Расширение – 3 байта.
  • Атрибут файла, определяющий его тип.
  • Резерв.
  • Время создания или изменения файла.
  • Дата создания или изменения файла.
  • Адрес начала файла (номер начального кластера).
  • Размер файла в байтах.

Нулевой размер файла используется при описании подкаталога. Для каждого файла в соответствующем элементе каталога задан номер начального кластера, который соответствует номеру элемента в таблице FAT.

Корневой каталог можно считать корнем графического дерева, у которого ветвями служат подкаталоги, а файлы соответствуют листьям. При создании подкаталога (с помощью функций DOS) создаются 2 дополнительных элемента с фиксированными именами “.” и ”..”. Имя “.” служит для описания текущего файла, т. е. для описания создаваемого подкаталога. Имя “..” описывает родительский каталог. Многократное описание подкаталога упрощает его поиск. Описание подкаталога хранится в трех местах:

  • В родительском каталоге.
  • В текущем каталоге (в самом себе).
  • В подчиненном каталоге.

Структура взаимосвязей хранимой файловой информации и набор операций над файлами составляют файловую систему.

Для манипулирования созданными файлами требуется информация, характеризующая обрабатываемый файл. Эта информация формируется в виде FCB – блока управления файлом (48 байт). Блок управления создается динамически перед началом обработки файла. Для создания FCB используется функция DOS, позволяющая открыть файл. При открытии файла формируется FCB. Открыть файл означает: обнаружить файл с заданным именем в каталоге, выделить в ОЗУ место для хранения формируемого FCB, перенести из каталога нужную информацию в FCB, возвратить программе, которая с помощью функции DOS открывает файл с заданным именем логический номер файла, который используется для последующего доступа к файлу. Логический номер файла называют также файловым манипулятором. Файловый манипулятор (FM) идентифицирует FCB и файл.

В прикладной программе можно использовать стандартные устройства как файлы, которые не требуется открывать. Стандартным устройствам сопоставлены фиксированные FM (номера).

STDIN 0 – обозначается CON (консоль). Стандартное входное устройство, обычно

клавиатура.

STDOUT 1 – Обозначается CON. Стандартное выходное устройство (монитор).

STDERR 2 – Обозначается CON. Стандартное выходное устройство для сообщения

об ошибках, обычно на экран.

3 – Обозначается AUX. Стандартное внешнее устройство ввода-вывода.

Используется последовательный адаптер COM-порт.

4 – Обозначается PRN, LPT1. Стандартное устройство печати.

5,6,7 – Выделяются для пользовательских нужд. Количество выделяемых

номеров можно увеличить

При обращении к функциям DOS для выполнения записи (или чтения) используется FM. После завершения записи (или чтения) файл нужно закрыть. При закрытии файла осуществляются следующие действия:

1) разрывается связь между FCB и файлом (FCB удаляется) и освобождается FM.

2) Информация из FCB переносится в каталог, актуализируя описание обработанного файла.

3) Содержимое всех буферов, выделенных в ОЗУ для организации записи или чтения файла, перемещается на диск. Этим обеспечивается целостность данных.

Передача файловой информации осуществляется секторами через буферы, выделенные в специальных областях оперативной памяти, контролируемых DOS. Для приема информации необходимо в прикладной программе выделить буфер.

Пример чтения из последовательного файла в буфер, созданный в программе.

Пусть на диске создан файл, местоположение которого следующее: D:\GR\text.txt

Пусть требуется прочесть из файла 100 байт. Алгоритм программы чтения из файла предусматривает следующие действия:

  • Необходимо выделить буфер памяти размером 100 байт.
  • Выделить два байта для хранения FM (номера файла).
  • В сегменте данных определить переменную, содержащую описание местоположения файла на диске.
  • Открыть файл (функция 3D DOS вызывается командой int 21h).
  • Задать режим доступа к файлу (чтение).
  • Осуществить чтение данных (функция 3F DOS вызывается командой int 21h).
  • Закрыть файл (функция 3E DOS вызывается командой int 21h).
  • Обработать возможные ошибки манипулирования файлом.
  • Завершить программу обработки файла.

TITLE file

.model small

.stack 100h

.data

buf db 100 dup(?)

FM dw?;для хранения номера файла, получаемого от DOS

Name1 db ‘D:\group\text.txt’, 0; местоположение файла, заданное в формате

file proc; ASCII

mov ax, @data

mov ds, ax

mov ax, 3D00h; в ah задан номер функции открытия файла, в al задан режим

; доступа.

lea dx, Name1;в ds:dx размещается адрес строки, содержащей идентификацию

;файла.

int 21h; вызов функций открытия файла.

mov dl,'O'; символ для идентификации ошибки, которая могла возникнуть

; при открытии файла

jc _ERR; если ошибка возникает при открытии файла, то осуществляется

; переход (ближний) к обработке ошибки.

;выполнение дальнего перехода осуществляется так: jnc mm

;jmp _ERR

;mm:

mov FM, ax; если нет ошибок, то FM сохраняется.

;чтение данных из файла.

mov ah, 3Fh; в ah задан номер функции чтения из файла.

mov bx, FM; регистр bx должен содержать логический номер файла.

mov cx, 100; в cx количество читаемых байтов.

lea dx, buf; в ds:dx указывается адрес буфера для ввода данных из файла.

int 21h; вызов функции чтения.

mov dl, ‘R’

jc _ERR

; закрытие файла

mov ah, 3Eh;в ah задан номер функции закрытия файла.

mov bx, FM

int 21h

mov dl, ‘C’

jc _ERR

jmp exit

_ERR: mov ah, 02h; вывод символа, идентифицирующего возможную ошибку.

int 21h

exit: ret

file endp

end


Поделиться с друзьями:

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.