рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Проецируемые файлы.

Проецируемые файлы. - раздел История, Определение ОС. Функции ОС. Процессы и потоки. Классификация ОС. История развития “Как И Виртуальная Память, Проецируемые Файлы Позволяют Резервировать Регион ...

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

(Джеффри Рихтер. Windows для профессионалов.)

Файлы, проецируемые (отображаемые) в память, - это один из самых замечательных сервисов, которые Win32 предоставляет программисту. Его существование стирает для программиста грань между оперативной и дисковой памятью. Действительно, с точки зрения классической теории кэш, оперативная память и дисковое пространство - это три вида памяти, отличающиеся скоростью доступа и размером. Но если заботу о перемещении данных между кэшем и ОП берут на себя процессор и ОС, то перемещение данных между ОП и диском обычно выполняет прикладной процесс с использованием функций read() и write().

Win32 действует иначе: ОС берет на себя заботу о перемещении страниц адресного пространства процесса, находящихся в файле подкачки, причем в качестве файла подкачки может быть использован любой файл. Иначе говоря, страницы ВП любого процесса могут быть помечены как выгруженные, а в качестве места, куда они выгружены, может быть указан файл. Теперь при обращении к такой странице VMM произведет ее загрузку, используя стандартный механизм свопинга. Это позволяет работать с произвольным файлом как с регионом памяти.

 

Применение проецируемых файлов:

- Для запуска исполняемых файлов (EXE) и динамически связываемых библиотек (DLL).

- Для работы с файлами.

- Для одновременного использования одной области данных двумя процессами.

 

Запуск процесса:

  1. Создать виртуальное адресное пространство процесса (размером 4Gb).
  2. Резервировать в ВАП регион размером, достаточным для размещения исполняемого файла. Начальный адрес региона определяется в заголовке EXE-модуля. Обычно он равен 0x00400000.
  3. Отобразить исполняемый файл на зарезервированное адресное пространство.
  4. Таким же образом отобразить на ВАП процесса необходимые ему динамически связываемые библиотеки. Информация о необходимых библиотеках находится в заголовке EXE-модуля. Желательное расположение региона адресов описано внутри библиотеки.

Запуск EXE-файлов и DLL-библиотек

 

 

Одновременное использование одной области данных двумя процессами

Файлы данных, проецируемые в память

Проецирование файла данных в память:

1. Создается объект ядра “файл”. Для создания объекта “файл” используется функция CreateFile.

2. С помощью функции CreateFileMapping создается объект ядра “проецируемый файл”. При этом используется дескриптор файла, возвращенный функцией CreateFile.

3. Производится отображение объекта “проецируемый файл” или его части на адресное пространство процесса. Для этого применяется функция MapViewOfFile.

Завершение проецирования файла данных:

1. Выполняется открепление файла от адресного пространства процесса с помощью функции UnmapViewOfFile.

2. Выполняется уничтожение объектов “файл” и “проецируемый файл” с помощью функции CloseHandle.

Обеспечение когерентности:

Если один процесс меняет разделяемую область данных, то она меняется и для другого процесса.

Операционная система обеспечивает когерентность разделяемой области данных для всех процессов. Но для обеспечения когерентности процессы должны работать с одним объектом “проецируемый файл”, а не с одним файлом.

 

Создание объекта «проецируемый файл»:

HANDLE CreateFileMapping (

HANDLE hFile, // дескриптор файла

LPSECURITY_ATTRIBUTES lpAttributes, // атрибуты защиты объекта

DWORD flProtect, // атрибуты защиты

DWORD dwMaximumSizeHigh, // старшее слово размера

DWORD dwMaximumSizeLow, // младшее слово размера

LPCTSTR lpName // имя объекта

);

 

Открытие объекта «проецируемый файл»:

HANDLE OpenFileMapping (

DWORD dwDesiredAccess, // режим доступа

BOOL bInheritHandle, // флажок наследования

LPCTSTR lpName // имя объекта

);

 

Функция проецирования области:

LPVOID MapViewOfFile (

HANDLE hFileMappingObject, // дескриптор объекта проецируемый файл

DWORD dwDesiredAccess, // режим доступа

DWORD dwFileOffsetHigh, // старшее DWORD смещения

DWORD dwFileOffsetLow, // младшее DWORD смещения

SIZE_T dwNumberOfBytesToMap // число отображаемых байтов

);

 

 

Функция проецирования области по определенному адресу:

LPVOID MapViewOfFileEx (

HANDLE hFileMappingObject, // дескриптор отображаемого объекта

DWORD dwDesiredAccess, // режим доступа

DWORD dwFileOffsetHigh, // старшее DWORD смещения

DWORD dwFileOffsetLow, // младшее DWORD смещения

SIZE_T dwNumberOfBytesToMap, // число отображаемых байтов

LPVOID lpBaseAddress // начальный адрес

);

Параметр dwDesiredAccess:

Параметр dwDesiredAccess определяет требуемый режим доступа для страниц ВП, используемых для отображения:

FILE_MAP_WRITE– доступ к операциям чтения-записи, проецируемый файл должен быть создан с защитой PAGE_READWRITE.

FILE_MAP_READ – доступ только для чтения, проецируемый файл должен быть создан с защитой PAGE_READWRITE или PAGE_READONLY.

FILE_MAP_ALL_ACCESS – то же самое, что и FILE_MAP_WRITE.

FILE_MAP_COPY – копирование при доступе для записи, проецируемый файл должен создаваться с флажком защиты PAGE_WRITECOPY.

FILE_MAP_EXECUTE – доступ к исполнению кода из отображаемой памяти , проецируемый файл должен быть создан с доступом PAGE_EXECUTE_READWRITE или PAGE_EXECUTE_READ.

 

Функция отмены проецирования области:

BOOL UnmapViewOfFile (

LPCVOID lpBaseAddress // начальный адрес

);

 

Создание и использование проецируемых файлов:

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

Другой процесс открывает уже созданный объект “проецируемый файл” по глобальному имени.

Теперь два процесса могут совместно использовать объект “проецируемый файл”. При этом, при помощи функции MapViewOfFile каждый процесс проецирует этот объект на свое ВАП и используют эту часть адресного пространства как разделяемую область данных.

 

– Конец работы –

Эта тема принадлежит разделу:

Определение ОС. Функции ОС. Процессы и потоки. Классификация ОС. История развития

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

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Проецируемые файлы.

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Машинный язык.
Микропрограмма действует просто как интерпретатор, который получает машинные команды, такие как MOVE, JUMP или ADD, и выполняет их в несколько маленьких шагов. Набор интерпретируемых инструкций опр

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

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

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

Состояния процессов и потоков.
Выделяют 3 основных дискретных состояния процесса (потока): - Готов к выполнению – ждет ЦП; - Выполняется – выделен ЦП; - Приостановлен (блокирован) – ждет некоторого соб

Поддержка многозадачности.
По числу одновременно выполняемых задач ОС могут быть разделены на два класса: - однозадачные (например, MS-DOS, MSX); - многозадачные (OC EC, UNIX, Windows 9х, NT и выше).

Многозадачность.
Способ распределения процессорного времени между несколькими одновременно существующими в системе задачами (процессами или потоками) в режиме мультипрограммирования во многом определяет специфику О

Дисциплины обслуживания.
Бесприоритетные дисциплины – выбор из очереди производится без учета относительной важности задач и времени их обслуживания. Приоритетное обслуживание – отдельным задачам пре

Поддержка многопользовательского режима.
По числу “одновременно” работающих пользователей ОС делятся на: - однопользовательские (MS-DOS, Windows 3.x, Windows 9x); - многопользовательские (UNIX, Windows NT, 2000-2007).

Многопроцессорная обработка.
Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки. Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.

Особенности алгоритмов управления ресурсами.
Выше были рассмотрены характеристики ОС, связанные с управлением только одним типом ресурсов – процессором. Важное влияние на облик операционной системы в целом, на возможности ее использования в т

Системы пакетной обработки.
Системы пакетной обработки (batch processing) предназначались для решения задач в основном вычислительного характера, не требующих быстрого получения результатов. Главной целью и критерием

Системы пакетной обработки.
  Для одновременного выполнения выбираются задачи, предъявляющие отличающиеся требования к р

Системы реального времени.
Системы реального времени применяются для управления различными техническими объектами, такими, (станок, научная экспериментальная установка) или технологическими процессами (гальв

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

Монолитное ядро.
Наиболее распространенным и классическим вариантом реализации ядерного подхода является моноли́тное ядро́. Монолитность ядер усложняет их отладку, понимание кода

Модульное ядро.
Cовременная, усовершенствованная модификация архитектуры монолитных ядер ОС. В отличие от «классических» монолитных ядер, считающихся ныне устаревшими, модульные ядра, как правило, не треб

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

Появление ОС.
Так как ОС появились и развивались в процессе конструирования компьютеров, то эти события исторически тесно связаны. Поэтому чтобы представить, как выглядели ОС, мы кратко рассмотрим следующие друг

Этап (1940-60).
Середина 40-х XX-века – первые ламповые вычислительные устройства. ОС еще не появились, все задачи организации вычислительного процесса решались программистом вручную с пульта управления.

Этап (1965-75).
1965-1975 годы переход к ИС, новое поколение ЭВМ – IBM/360, многопроцессорная ЭВМ для централизованных вычислений. Реализованы основные концепции, присущие современным ОС: - мульт

Этап (1970-80).
Начало 70-х годов – первые сетевые ОС, которые в отличие от многотерминальных ОС позволяли не только рассредоточить пользователей, но и организовать распределенное хранение и обработку данных между

Этап (1980-90).
Постоянное развитие версий ОС UNIX для ЭВМ различных архитектур. Начало 80-х годов – появление персональных компьютеров (ПК), которые стали мощным катализатором для бурног

Операционная система MS Windows 2000 и выше. Общая характеристика и основные функции. Структура MS Windows 2000-2003. Объекты в MS Windows 2000-2003.
  2.2 Основная характеристика Windows 2000-2008.   Система Windows 2000-2008 не является дальнейшим развитием ранее существовавших пр

Краткая характеристика.
  l Многоуровневая ОС. l Ядро работает в защищенном режиме. l Присутствует микроядро, но оно дополнительно не защищено от остальных фрагментов ядра (т.е. по сути при

Структура ядра.
l Исполняющая система, которая включает управление памятью, процессами, потоками, безопасностью, вводом/выводом, межпроцессорными обменами; Важные для производительности О

Типы объектов Windows 2000-2008.
Объекты исполнительной системы (executive object) представляются различными компонентами исполнительной системы. Они доступны программам пользовательского режима (защищенным

Структура объектов Windows 2000-2003.
Имя объекта Делает объект видимым другим процессам для совместного использования Каталог объектов Обеспечивает иерархичес

Защита объектов.
ОС Windows 2000 поддерживает два вида контроля доступа к объектам: - управление избирательным доступом (discretionary access control) – основной механизм контроля д

Избирательный доступ.
Основан на списках контроля доступа (access control list, ACL), которые описывают каким пользователям можно выполнять какие операции. При отсутствии ACL объект является незащищенным, и сис

Кэширование диска.
Перехват запросов к внешним блочным ЗУ, промежуточным программным слоем – подсистемой буферизации (ПБ). ПБ представляет собой буферный пул, располагающийся в ОЗУ, и комплекс программ, упра

RAID - 0.
Представляет собой дисковый массив, в котором данные разбиваются на блоки, и каждый блок записываются (или же считывается) на отдельный диск. Таким образом, можно осуществлять несколько оп

RAID - 1.
Зеркалирование - традиционный способ для повышения надежности дискового массива небольшого объема. В простейшем варианте используется два диска, на которые записываетс

RAID - 4.
Данные разбиваются на блочном уровне. Каждый блок данных записывается на отдельный диск и может быть прочитан отдельно. Четность для группы блоков генерируется при записи и проверяется при чтении.

Сравнение RAID-систем.
  Составные RAID системы: l RAID 0+1 / RAID 1+0 l RAI

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

Long File Names.
FAT32 преодолела ограничение прежней системы наименования файлов "8.3". В VFAT имя файла может содержать до 255 символов. К счастью, FAT32 воспринимает файлы, которые уже существовали на

Перечень метафайлов
$MFT список содержимого тома NTFS $MFTmirr копия первых 4 записей таблицы MFT $LogFile

Заголовок атрибута
Смещение, байт Размер, байт Описание 0x00 Тип атрибута 0x04

Атрибуты файлов NTFS - 1
Standard Information (стандартная информация) Стандартный атрибут. Дата и время создания и последнего изменения файла, дата и время последнего доступа к файлу

Атрибуты файлов NTFS - 2
Volume Version версия тома, используется только в системных файлах тома Volume Information (информация о томе) Использует

Страничное распределение.
Виртуальное адресное пространство (ВАП) каждого процесса делится на части одинакового, фиксированного для данной ОС размера, называемые виртуальными страницами. Размер страницы кратен степени двойк

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

Сегментно-страничное распределение.
Данный метод представляет собой комбинацию страничного и сегментного распределения памяти и, вследствие этого, сочетает в себе достоинства обоих подходов. ВАП процесса делится на сегменты,

Архитектура API управления памятью.
    Адресное пространство процесса:

Взаимодействие процессов через общую область данных
      Для обеспечения когерентности процессы должны работ

Объекты Windows .
Основные понятия: Задание – набор процессов, управляемых как единое целое, с общими квотами и лимитами Процесс – контейнер для ресурс

Процессы.
Процесс – это совокупность системных ресурсов, задействованная для выполнения определенной работы. Понятие "процесс" включает следующее: - исполняемый код;

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

Волокна (fibers).
Введены в Windows 2000 для переноса существующих серверных приложений из UNIX. Реализованы на уровне кода пользовательского режима. В потоке может быть одно или несколько волокон. Для ядра

Планирование загрузки однопроцессорной системы.
  Планирование загрузки процессорного времени: - В Windows реализована вытесняющая многозадачность, при которой ОС не ждет, когда поток сам захочет освободит

Граф состояний потоков в MS Windows 2000-2003. Поток простоя. Принципы адаптивного планирования.
16.1 Граф состояний потоков в MS Windows 2000.

Граф состояний потоков в MS Windows 2000-2003. Особенности планирования в многопроцессорных системах.
17.2 Особенности планирования в многопроцессорных системах.   Управление потоками в МПС: Операционные системы Wind

Граф состояний потоков в MS Windows 2000-2003. Особенности планирования в ОС MS Windows Vista и Server 2008.
18.2 Особенности планирования в ОС MS Windows Vista и Server 2008.   Проблема неравномерного распределения ресурсов процессора:

Планирование загрузки процессорного времени в MS WINDOWS 2000-2003. Функции WIN 32 API создания и завершение процессов и потоков, управление потоками
  Планирование загрузки процессорного времени: В Windows реализована вытесняющая многозадачность, при которой ОС не ждет, когда поток сам захочет освободить

Параметры создания потока
Параметр psa является указателем на структуру SECURITY_ATTRIBUTES. Если Вы хотите, чтобы объекту ядра "поток" были присвоены атрибуты за

Функция CreateRemoteThread
Функция CreateRemoteThread создает поток, который запускается в виртуальном адресном пространстве другого процесса.   HANDLE Cre

Приоритеты потоков
Приоритет Назначение THREAD_PRIORITY_ABOVE_NORMAL Приоритет на 1 пункт выше класса приоритета. TH

Функция TerminateThread
Вызов этой функции также завершает поток: BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode); В параметр dwExitCode помещается код завершения потока.

Засыпание и переключение потоков
VOID Sleep ( DWORD dwMilliseconds ); Эта функция приостанавливает поток па dwMilliseconds миллисекунд. Отметим несколько важных моментов, с

BOOL SwitchToThread();
Функция SwitchToThread позволяет подключить к процессору другой поток (если он есть). Вызов SwitchToThread аналогичен вызову Sleep с передачей в dwMilliseconds

DWORD SuspendThread(HANDLE hThread);
Засыпание и переключение потоков VOID Sleep ( DWORD dwMilliseconds ); Эта функция приостанавливает поток па dwMilliseconds миллисекунд. Отметим несколько важных моментов, с

Межпроцессорное взаимодействие. Передача информации в MS Windows 2000-2003. Анонимные каналы. Почтовые ящики. Функции WIN 32 API.
  Анонимные каналы Анонимные каналы не имеют имен. Не пригодны для обмена через сеть. Главная цель – служить каналом между родительским и дочерним процессом

Межпроцессорное взаимодействие. Передача информации в MS Windows 2000-2003. Именованные каналы. Почтовые ящики. Функции WIN 32 API.
  Виды межпроцессорного взаимодействия (IPC) Предотвращение критических ситуаций Синхронизация процессов Передача информации от одного процесса другому

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги