Алгоритм 2


Скачать 449.39 Kb.
НазваниеАлгоритм 2
страница5/5
Дата публикации06.05.2013
Размер449.39 Kb.
ТипДокументы
userdocs.ru > Информатика > Документы
1   2   3   4   5

Состояния страниц

^ Состояния страниц в диспетчере памяти

- Свободная (free). (не выделен)

- Зарезервированная (reserved). (вкл. в адр. пр-во, но не найден страничный кадр)

- Переданная (committed). (выделена, можно пользоваться)

^ Последовательность работы со страницами

1 Резервирование (reserving).

2 Передача (committing).

3 Возврат (decommitting).

4 Освобождение (freeing).

Выделение памяти

^ LPVOID WINAPI VirtualAlloc(

__in_opt LPVOID lpvAddress, //не обяз., с какого

__in SIZE_T dwSize, //Размер

__in DWORD flAllocationType, //Тип размещения

__in DWORD flProtect //Те же флаги, что при отобр. файла в память

);

flAllocationType

MEM_RESERVE – резервирование

MEM_COMMIT - передача

MEM_RESERVE | MEM_COMMIT (одновременно)

MEM_LARGE_PAGES – большие страницы

MEM_RESERVE | MEM_PHYSICAL – физ. страницы

Освобождение памяти

Windows API VirtualFree()

BOOL WINAPI VirtualFree(

__in LPVOID lpvAddress,

__in SIZE_T dwSize,

__in DWORD dwFreeType

);

dwFreeType Ограничения

MEM_DECOMMIT — (вернуть)

MEM_RELEASE dwSize == 0 (полное освобождение)

Адресное пространство процесса в 32-битном режиме



1я половина – дост. процессу

верх. 2 Гб – в том случае, если выз. функция ядра

64 Кб – охранные зоны, доступ запрещен.

Напр., указатель NULL -> Попытка доступа -> ошибка доступа к странице

Доступность 3 (4) Гбайт для процесса

Условия доступности более 2 Гбайт для 32-разрядного процесса

- Флаг IMAGE_FILE_LARGE_ADDRESS_AWARE в образе исполняемого файла.

- Настройка 32-разрядной системы (BCDEdit /set increaseuserva 3072) или 64-разрядная система.

^ Размер адресного пространства для 64-разрядного процесса

- 8 Тбайт для платформы AMD64 (x86-64).

Сеанс

Сеанс: (session)—средство удалённой работы при помощи служб терминалов (Terminal Services) и быстрого переключения пользователей.

Win должна позволять многопольз. режим. Сеанс – средство для этого.

^ Оконная станция: (window station)—объект, содержащий буфер обмена, таблицу атомов один или несколько рабочих столов и имеющий атрибуты безопасности и права доступа.

^ Данные сеанса

Оконная станция;

Пространство имён; (имя станции\имя сеанса\имя процесса…) . . .

Системные пулы памяти

Пул неподкачиваемой памяти: (nonpaged pool)—диапазон системных виртуальных адресов, присутствующих и доступных всё время (=> без ошибок страниц).

^ Пул подкачиваемой памяти: (paged pool)—диапазон системных виртуальных адресов, которые система может выгружать в страничный файл/загружать из файла.

Структура виртуального адресного пространства

Виды данных в адресном пространстве

- Принадлежащие процессу (код/данные);

- Принадлежащие сеансу (код/данные);

- Принадлежащие системе (код/данные);

Код ядра;

Драйверы;

Таблицы страниц процесса; (нах. в памяти)

Области системной подкачиваемой/неподкачиваемой памяти.

. . . (мн-во всевозм. вспомог. данных)

Использование PSE

Большие страницы – тот код и данные, к которым нужно обращ. быстрее.

При уст-ке с-мы копируются те библиотеки, которые больше подходят для к-ра.

^ Возможности использования больших страниц

- Базовые образы ОС (ntoskrnl.exe и hal.dll);

- Базовые системные данные (структуры, описывающие состояния страничных кадров, . . . );

- Запросы большого ввода/вывода;

- Для приложений закрытые области памяти, выделенные VirtualAlloc() с использованием флага MEM_LARGE_PAGE;

- Другие заданные драйверы при настройке в реестре.

Использование PAE

Расширение физ. адресов.

Расширения оконного доступа к адресам: (Address Windowing Extensions, AWE)—часть Windows API для доступа к памяти обычным процессам с использованием PAE.

^ Порядок работы с памятью

1 Выделение физической памяти (AllocateUserPhysicalPages());

2 Создание окна (VirtualAlloc() с флагом MEM_PHYSICAL);

3 Проецирование части физической памяти на окно (MapUserPhysicalPages(), MapUserPhysicalPagesScatter()).
Адресное пространство процесса в 32-битном режиме

Адресное пространство процесса в Linux



1 Гбайт – ядро физ. памяти. Проецируется в верхний Гбайт для каждого процесса.

Особенности распределения адресного пространства

Каталог страниц явл. частью контекста процесса, т.е. сущ-ет по 1 экз. для каждого процесса.

^ Организация виртуального адресного пространства процессов

- Ядро сохраняет регистр cr3 в дескрипторе процесса => каждый процесс имеет собственный глобальный каталог таблиц.

- Первые 3 ГБайт адресного пространства доступны для процессов, различны.

- Последний 1 ГБайт доступен в режиме ядра, отображается в одну область памяти.

- Потоки ядра работают в 3–4 Гбайтном диапазоне верхних адресов, не ссылаясь ниже => неважно, какой таблицей страниц они пользуются. Для избежания лишних сбросов TLB-буферов используется таблица дескрипторов последнего процесса.

Управление динамической памятью

Организация управления. Особенность, влияющая на разработку программ.

^ Виды оперативной памяти

- постоянно выделенная ядру;

- динамическая.

Запросы на выделение памяти со стороны ядра

Удовлетворяются немедленно:

- ядро является приоритетным компонентом;

- ядро доверяет самому себе.

^ Запросы на выделение памяти со стороны пользовательского процесса

- процессу сразу выделяется диапазон ячеек, само выделение откладывается до момента обращения (лениво);

- код процесса может содержать ошибки.

Исключения при обращении к памяти

Причины

- Адреса, указанные вследствие программных ошибок;

- Адреса принадлежат отсутствующей странице, хотя принадлежат адресному пространству процесса => соответствующий кадр должен быть выделен.

Обработка исключения обращения к странице

если адрес принадлежит адресному пространству процесса, то

если вид доступа ~ правам доступа к области, то

допустимое обращение, выделить страничный кадр;

иначе - недопустимое обращение, послать SIGSEGV;

иначе

если исключение в режиме пользователя, то

недопустимое обращение, послать SIGSEGV;

иначе - ошибка ядра, уничтожить процесс;

«Жадное» выделение памяти

Старая реализация функции fork()

1 Выделение страничных кадров под таблицы страниц потомка.

2 Выделение страничных кадров под страницы потомка.

3 Инициализация таблиц страниц потомка

4 Копирование страниц родителя в страницы потомка.

«Ленивое» выделение памяти

Особенности реализации функции fork()

- Страничные кадры не копируются, а используются совместно родителем и потомком;

- Страничные кадры помечаются недоступными для записи;

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

- Если потом произойдёт попытка записи в исходную страницу, ядро проверит, является ли процесс единственным владельцем её (поле дескриптора страницы _count == 0). Да => пометит её как доступную на запись.

- _count == -1 ) страница считается свободной.

Выделение страниц по требованию

Пример (проверка выделения памяти)

int main()

{ try

{ char *pchData = new char[100000000];

// . . . }

catch (const std::bad_alloc &)

{ // . . . }

}

Утилизация страничных кадров

Особенности работы с памятью

ОС Linux не делает проверок размеров доступной памяти => кеши диска и т. д. растут неограниченно.

^ Алгоритм утилизации страничных кадров: (Page Frame Reclaiming Algorithm, PFRA)—выбирает занятые страничные кадры для выгрузки на диск.

Выгрузка страниц

Виды страниц

- Неутилизируемые (динамически выделенные ядру, временно заблокированные, . . . )

- Выгружаемые (анонимные в АП режима пользователя)

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

- На выброс (неиспользуемые, в кэшах памяти).

^ Случаи утилизации

- Дефицит памяти в системе;

- Гибернация;

- Периодическая утилизация.

Работа с файлами

Адресация данных на аппаратном уровне

Сектор: (sector)—аппаратно адресуемый блок данных носителя (512 байт).

Кластер: (cluster)—адресуемый блок, используемый файловой системой, содержит несколько секторов.

Метаданные: (metadata)—данные, хранящиеся в томе, необходимые для поддержания работы файловой системы (не принадлежат пользовательским данным в файлах).

Способы адресации секторов

- Cylinder-Head-Sector (CHS).

- Logical Block Address (LBA).

Разделы дисков

организация разделов физического диска



Дескрипторы разделов

Главная загрузочная запись: (Master Boot Record, MBR)—находится в первом физическом секторе (секторах), содержит:

- код загрузки (bootstrap code);

- таблицу разделов (partition table)—до 4;

- сигнатуру; . . .

^ Загрузочная запись тома: (Volume Boot Record, VBR)—находится в начале неразделённого диска или раздела диска, содержит код загрузки.

Расширенная загрузочная запись: (Extended Boot Record, EBR)—находится в начале логического раздела, структура, как у MBR, но запись для II раздела указывает на следующую EBR.

^ Таблица разделов GUID

Таблица разделов GUID: (GUID Partition Table, GPT)—стандарт формата размещения разделов на диске.

Особенности

- Открытый стандарт (часть Unified Extensible Firmware Interface —UEFI);

- Ограничение на размер диска: 8 Збайт - 512 байт (у MBR: 2Tбайт - 512 байт);

- Заголовок GPT и таблица разделов хранятся в начале и конце диска;

- «Защитный MBR» в начале диска; (дублируется)

- Таблица разделов содержит контрольные суммы (CRC32) и GUID диска;

- Элементы таблицы разделов содержат GUID типов разделов и разделов.

FAT (12, 16, 32)

Система / Кластеров / Размеры кластера / Максимальный размер тома

FAT12 / 4 096 / 512 байт – 8Кбайт / 32Мбайт

FAT16 / 65 536 / 512 байт – 64Кбайт / 4 Гбайт

FAT32 / 268 435 456 / 4Кбайт – 32Кбайт / 8Тбайт

Для большого диска нужны большие кластеры.

Организация FAT

организация метаданных системы FAT



Запись FAT

Информация записи таблицы размещения файлов (file allocation table)

- Номер следующего кластера цепочки;

- Отметка конца цепочки (0xFFFF);

- Отметка плохого кластера;

- Отметка неиспользуемого кластера (0).

Запись каталога

Информация записи таблицы каталогов (directory table)

Массив из записей – имя файла. Если 1й символ 0 – удален

- Короткое имя «8.3» (DATA TXT), I символ имеет особые значения;

- Атрибуты:

«только для чтения» (read only);

«скрытый» (hidden);

«системный» (system); (нежелательно перемещать при дефраг-ии)

«метка тома» (volume label);

«подкаталог» (subdirectory);

«архивный» (archive);

- Дата/время последнего изменения файла;

- Номер кластера начала файла;

- Размер файла в байтах.

^ Таблица размещения файлов и каталог


Особенности системы FAT

Преимущества

- широкая распространённость;

- простота реализации;

- высокая скорость на небольших носителях;

- малый объём метаданных.

Недостатки

- ограничения по размеру томов и файлов;

- невысокая надёжность;

- нагрузка на небольшую часть диска;

- фрагментация;

- отсутствие поддержки

- безопасности и других возможностей;

- патенты (FAT32, длинные имена).
NTFS

Особенности системы NTFS

- индексирование файлов по атрибутам;

- защита файлов и каталогов;

- дисковые квоты; (на ур-не файл. с-мы – о макс. объеме для каждого польз-ля)

- сжатие файлов; (на ур-не файл. с-мы)

- жёсткие связи;

- символьные ссылки (точки соединения);

- шифрование.

Ext2. Индексный дескриптор

Индексный дескриптор: (inode)—структура файловой системы, содержащая всю информацию о файле в файловой системе, используется для его идентификации.

Информация в индексном дескрипторе

номер (уникален); тип; количество жёстких ссылок; длина в байтах;

идентификатор пользователя-владельца;

идентификатор группы-владельца;

отметки времени:

изменения состояния индексного дескриптора;

последнего обращения к файлу;

оследнего изменения файла;

права доступа и режим файла. . . .

Журналируемая файловая система

Журналируемая файловая система: (journaling file system)—ФС, ведущая журнал транзакций перед их исполнением в выделенной области диска в циклическом буфере.

Запись обо всех изменениях (транзакциях), сначала запис., потом изм.

Примеры: NTFS; Ext3; Ext4 (отключается).

Концепция виртуальной файловой системы

Через общий интерфейс обращ. к разл. ФС.

взаимодействие приложения с файлами

приложение -> виртуальна файловая система -> (Ext2; FAT16)

Специальная файловая система

Специальная файловая система: (special file system)—предоставляет доступ к данным и особым возможностям ядра через интерфейс VFS. (Другой фариант физ. ФС)

^ Точка монтирования: (mount point)—путь в виртуальной файловой системе (текущей доступной физической файловой системе), отображающий содержимое другой файловой системы.

Примеры специальных файловых систем (Linux)

Название / Точка монтирования / Описание

pipefs / — / Каналы

proc / /proc / Структуры данных ядра

shm / /dev/shm / Общая память

sockfs / — / сокеты

sysfs / /sys / Системные данные

tmpfs / любая / Временные файлы

Файлы виртуальной файловой системы

Принадлежащие дисковой или сетевой файловой системе

- обычный файл;

- каталог;

- символьная ссылка;

^ Принадлежащие специализированной файловой системе

- файл блочного устройства;

- файл символьного устройства;

- именованный канал (FIFO);

- сокет.

Монтирование файловых систем в процессе загрузки

Пример (/etc/fstab)

# f i l e sys mount point type options dump pass

proc /proc proc nodev,noexec,nosuid 0 0

/dev/sda5 / ext4 errors=remount-ro 0 1

/dev/sda2 none swap sw 0 0

/dev/sdb2 /mnt/disk_d ntfs auto,defaults,fmask=003,uid=1000 0 0

# . . .

Открытый файл

Открытый файл: структура ядра, определяющая параметры работы процесса с файлом.

Информация в открытом файле

- режим;

- позиция;

- идентификаторы пользователя и группы;

- таблица файловых операций;

. . .
1   2   3   4   5

Похожие:

Алгоритм 2 iconАлгоритм
Ш 55 Разгром Японии и самурайская угроза. — М.: Изд-во Алгоритм; Изд-во Эксмо, 2005. — 512 с, ил
Алгоритм 2 iconРазрешение записи
Для уменьшения объема хранимой видеоинформации в видеорегистраторах применяются различные алгоритмы ее компрессии. В сетевых видеорегистраторах...
Алгоритм 2 iconАннотация Слово «алгоритм»
Слово «алгоритм» не случайно введено в название книги: мне представляется, что есть возможность «разложить по полочкам» самые сложные...
Алгоритм 2 iconСтатья «Алгоритм решения изобретательских задач» в Википедии Это...
Алгоритм решения изобретательских задач[1][2][3][4][5][6][7][8][9][10] раздел теории решения изобретательских задач (триз), разработаной...
Алгоритм 2 iconПрограмма упорядоченное множество ко­манд, реализу­ющих алгоритм решения задачи
Алгоритм упорядоченное множе­ство фор­ма­ль­ных предписаний, выпол­нение которых приводит к решению задачи. Команда элементарная...
Алгоритм 2 iconАлгоритм работы системы

Алгоритм 2 icon6. задача о рюкзаке
Циклический алгоритм целочисленного программирования
Алгоритм 2 iconУкрупненный алгоритм программы для исследования случайных величин приведен на рисунке 12. 1
Укрупненный алгоритм программы для исследования случайных величин приведен на рисунке 12
Алгоритм 2 iconЗаконодательное обоснование
Алгоритм действий граждан в случае обнаружения несанкционированных раскопок – с. 6
Алгоритм 2 iconПризрак толпы / Карл Ясперс, Жан Бодрийар. М.: Алгоритм, 2007. 272 с. Философский
Призрак толпы / Карл Ясперс, Жан Бодрийар. — М.: Алгоритм, 2007. — 272 с. — Философский
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2020
контакты
userdocs.ru
Главная страница