Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
os_a_win.doc
Скачиваний:
15
Добавлен:
17.11.2019
Размер:
715.26 Кб
Скачать

Операционные системы Windows32

В этом разделе мы рассмотрим, как получить доступ к основным функциям операционной системы Windows. Мы начнем с рассмотрения понятия объект ядра Windows, которое нам будет необходимо для осуществления многих операций. Далее мы рассмотрим функции позволяющие управлять процессами и потоками, синхронизовать их выполнение, работать с виртуальной памятью.

Необходимо отметить, что в пособии описаны только самые основные и наиболее часто используемые функции ядра Windows. Многие функции и редко используемые параметры функций не будут описаны. Пособие показывает только наиболее распространенные способы работы с функциями ядра Windows. Рекомендуем вам при использовании этих функций обращаться к справке, в которой можно найти полное описание всех параметров и возвращаемых значений.

Рассмотренные функции имеются во всех 32-х разрядных операционных системах Windows, включая Windows 95, 98, Me, NT, 2000, XP. Наиболее простые способы работы с этими функциями могут быть без проблем использованы во всех этих операционных системах. В случае больших разночтений это будет указано в пособии, с небольшими особенностями реализации всех функций можно ознакомиться в справке.

Работа с сетью (протоколами TCP/IP) будет описана позднее в отдельном разделе.

Объекты ядра Windows

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

  • маркеры доступа / access token

  • события / event

  • файлы / file

  • проекции файлов / file mapping

  • порты завершения ввода-вывода / I/O completion port

  • задания / Job

  • почтовые ящики / mailslot

  • мъютексы / mutex

  • каналы / pipe

  • процессы / process

  • семафоры / semaphore

  • потоки / thread

  • ожидаемые таймеры / waitable timer

Каждый объект ядра представляет собой блок памяти, выделенный ядром ОС и доступный только ему. В элементах этой структуры содержится информация, необходимая для управления объектом каждого типа. Часть этой информации является общей для всех типов объектов (например, права доступа), а часть – специфична для каждого конкретного объекта (например, смещение для объекта файл).

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

Пользователи объектов ядра

Объекты ядра принадлежат ядру, а не процессу. Это позволяет, в случае необходимости, использовать один объект одновременно в нескольких процессах. Для обеспечения такого режима работы операционная система хранит счетчик использования объекта. При создании объекта ядра этот счетчик устанавливается в единицу. При открытии этого же объекта из другого процесса или при передаче объекта другому процессу (о том, как это сделать будет рассказано ниже), счетчик использования увеличивается на 1. Когда пользовательская программа «закрывает» объект, операционная система уменьшает счетчик на 1. Однако объект при этом не уничтожается – другие процессы могут продолжать его использовать. Уничтожение объекта ядра происходит только в том случае, когда счетчик использования принимает значение 0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]