- •11.Понятие многозадачности
- •12.Процессы и потоки. Понятия, связанные с процессами и потоками.
- •13.Алгоритмы планирования. Планирование в Windows.
- •14. Моменты перепланировки. Пример перепланировки в Windows.
- •15.Механизм прерываний в Windows, обработка прерываний, приоритеты прерываний
- •16.Синхронизация потоков. Способы синхронизации потоков.
- •17.Взаимоблокировки. Условия возникновения блокировок.
- •18.Взаимоблокировки. Варианты решения проблемы блокировок в ос
- •20.Адресация памяти. Виртуальное адресное пространство в Windows
- •19.Функции ос по управлению памятью. Типы систем управления памятью.
- •21.Реализация страничной виртуальной памяти
- •22. Управление памятью в Windows
- •Vad диапазон отображаемых адресов // файл подкачки// смещение в файле// режим доступа// каталог таблиц страниц//
- •23.Порядок доступа к памяти. Типы страничных прерываний
- •24.Рабочий набор процесса. Алгоритм замещения станиц в Windows
- •25.Управление физической памятью в Windows
21.Реализация страничной виртуальной памяти
Виртуальные страницы располагаются в виртуальной памяти.
Они могут находиться в одном из состояний:
- свободная - страница не используется, обращение к ней приводит к страничному прерыванию
- фиксированная – страница используется для хранения кода программы или данных, обращение к ней приводит к получению адреса
соответствующего страничного блока. Если в памяти этой страницы нет
– страничное прерывание и загрузка страницы с диска.
- зарезервированная – страница зарезервированная для определенного потока, доступ к ней запрещен, пока резервирование не будет снято.
Теневые страницы располагаются на диске.
Теневые страницы – все фиксированные страницы имеют копию на диске.
Теневые страницы создаются только для фиксированных страниц.
- Теневые страницы для изменяемых страниц (данные, стек) находятся в файлах подкачки. Файлов подкачки может быть до 16 штук.
- Теневые страницы неизменяемых данных (код программы, библиотеки) располагаются в файлах этих программ и библиотек.
Расположение теневых страниц на диске
22. Управление памятью в Windows
Управление памятью осуществляет менеджер виртуальной памяти – VMM (Virtual Memory Manager).
За каждым процессом закрепляется собственная виртуальная память – 4 Гигабайта. При выделении области памяти процессу создается описатель виртуальной памяти: VAD – Virtual Address Descriptor, который помещается в список описателей. VAD диапазон отображаемых адресов// файл подкачки// смещение в файле// режим доступа//каталог таблиц страниц
Vad диапазон отображаемых адресов // файл подкачки// смещение в файле// режим доступа// каталог таблиц страниц//
Формат записи в таблице страниц
G - глобальная страница
L - большая страница (4 М)
D - грязная страница
A - к странице были обращения
C - кэширование разрешено/запрещено
Wt- сквозная запись (без кэширования)
U - к странице возможен доступ в режиме пользователя
W - запись в страницу разрешена
V - действительная запись в таблице (страница в памяти)
23.Порядок доступа к памяти. Типы страничных прерываний
Порядок доступа к памяти:
1.Процесс обращается к VMM с виртуальным адресом
2.VMM по значению виртуального адреса из таблицы станиц берет запись о соответствующей странице виртуальной памяти
3.Анализирует права по доступу к данной странице памяти
4.Анализирует бит присутствия (V)
5.Если V=1, то преобразует адрес в физический и дает доступ процессу
6.Если V=0, то генерируется страничное прерывание.
7.Соответствующий поток переводится в состояние ожидания
8.Обработчик страничных прерываний находит образ страницы на диске и пытается его загрузить его в память
9.Если в памяти есть место, то образ загружается, модифицируется таблица страниц и к странице предоставляется доступ процессу
10.Если в памяти места нет, то необходимо первоначально выгрузить какую то страницу из памяти и на ее место загрузить требуемую.
Типы страничных прерываний:
1.Страница, к которой обращаются – не фиксирована. – фатальная ошибка.
.2Произошло нарушение защиты – фатальная ошибка.
3.Попытка записи в совместно используемую страницу – копирование при записи.
4.Стеку требуется дополнительная память – необходимо выделить процессу новый страничный блок, при этом – обнуленный.
5.Страница, к которой обращаются – фиксирована, но не находится в памяти – необходимо загрузить эту страницу из образа на диске.
