
- •Билет №30 Организация файлов. Функции файловой системы. Распределение внешней памяти.
- •Билет №31 Файловая система. Методы поблочного отображения.
- •Билет №32 hpfs, ntfs и cdfs. Управление доступом к файлам.
- •Билет №33 Устройство нмд. Управление дисками. Критерии планирования.
- •Билет №34 Управление дисками. Основные стратегии управления.
- •Билет №35 Пути повышения производительности дисковых накопителей. Raid0, raid1
- •Билет №36 Пути повышения производительности дисковых накопителей. Raid5, raid6.
- •Билет №37 Пути повышения производительности дисковых накопителей. Raid7, matrix raid.
- •Билет №38 Параллельные асинхронные процессы. Проблемы управления.
- •Билет №39 Программное решение задачи взаимного исключения.
- •40.Способы синхронизации процессов.
- •41. Семафоры. Синхронизация и взаимоисключение при помощи семафоров.
- •42.Межпроцесная коммуникация. Разделяемая память, сообщения.
- •43.Межпроцесная коммуникация. Pipes и sockets.
- •44. Защита операционных систем. Цели и методы. Методы идентификации пользователей.
- •45.Защита от вирусов. Методы.
- •46. Особенности работы операционных систем в сетях.
- •47.Кластерные вычислительные системы типа CoPc.
- •48. Параллельные вычисления. Метод Монте-Карло.
- •50. Методы распределения нагрузки в параллельных системах.
- •51.Основные направления развития ос.
- •52. Прерывания. Обработчики прерываний. Маскирование прерываний.
- •Типы прерываний
№1 Типы и поколения ОС. Эволюция ОС и ее связь с развитием аппаратных ресурсов ЭВС.
Характеристики |
поколения |
|||
|
I |
II |
III |
IV |
Период |
1945-1955 |
1955-1964 |
1964-1980 |
1980-... |
Основной элемент |
Эл. лампа |
Транзистор |
ИС |
БИС, СБИС |
Количество ЭВМ в мире (шт) |
Сотни |
Тысячи |
Десятки тысяч |
Миллионы |
Примеры |
БЭСМ-1,2, Стрела, IBM 701 |
Минск-2, Урал-14, Мир, Наири |
IBM 360 |
Иллиак, Эльбрус |
Быстродействие (оп/сек) |
10-20 тыс. |
до 1 млн |
100 тыс – 1 млн |
2*10^7 |
Носитель информации |
Перфокарта |
Магнитная лента |
Диск |
Гибкий диск |
Особенности:Программирование на машинном языке. Организация вычислительного процесса вручную каждым программистом с пульта управления.Загрузка программы с помощью панели переключателей, либо перфокар. ВС выполняет одновременно только одну операцию (ввод-вывод, либо собственно вычисления).Возникают первые компиляторы Fortran, Assembler для IBM-701 (Строго последовательная обработка данных !)
2. Второй период (1955г. – начало 60-х гг.)Транзисторные машины.(Лампы заменяются транзисторами)
Особенности: Повышение надежности. Снижение потребления электроэнергии . Уменьшение размеров. Снижение стоимости(Появляются первые системы пакетной обработки !)
3. Третий период (начало 60-х – 1980г.) Компьютеры на основе интегральных микросхем.
Особенности: ВС становится более надежной и дешевой. Повышается производительность процессоров. Растёт сложность и количество решаемых задач.( Мультипрограммирование - пока одна программа выполняет операцию ввода-вывода, процессор выполняет другую программу)
4. Четвертый период (с 1980г. по настоящее время)Персональные компьютеры.Классические сетевые и распределенные системы
Особенности: Резкое возрастание интеграции и снижение стоимости микросхем. Массовость, общедоступность. Первоначально персональные компьютеры предназначались для использования одним пользователем в однопрограммном режиме, что повлекло за собой деградацию архитектуры этих ЭВМ и их ОС (например пропала необходимость защиты файлов памяти, планирования заданий) (В середине 80-х развитие сетей компьютеров => развитие сетевых и распределенных ОС)
5. Пятый период. Суперкомпьютеры. Параллельные вычисления и системы искусственного интеллекта
Особенности: В то время как предыдущие поколения совершенствовались за счёт увеличения количества элементов на единицу площади (миниатюризации), компьютеры пятого поколения должны были для достижения сверхпроизводительности интегрировать огромное количество процессоров.
№2 Понятие об операционной системе, ее функциях и составе.
ОС(операционная система)- о виртуальная машина, с которой работает пользователь (интерфейс между пользователем и компьютером). Это менеджер ресурсов. Это постоянно функционирующее ядро. Это защитник пользователей и программ.
Типы ОС
1. Однозадачные (MS-DOS)
2. Многозадачные (Unix, OS/2, Windows)
Пакетные системы - запуск одной программы из пакета за другой
Системы разделения времени (time-sharing) – процессор переключается между задачами не только на время операций ввода – вывода но и по прошествии определенного времени, что позволяет пользователю интерактивно взаимодействовать с программой
Системы реального времени – для управления различными технологическими процессами – система должна обрабатывать данные быстрее, чем они могут поступать, причем от разных источников => влияние на архитектуру, например может не быть виртуальной памяти, так как она дает непредсказуемые задержки в выполнении программ
3. Многопользовательские (Windows NT, Unix) –механизмы защиты персональных данных каждого пользователя
4. Однопользовательские (MS-DOS, Windows 3.x)
Основная задача ОС- управление процессами!
Состав ОС: 1.Ядро 2.Драйверы 3. Файловая система 4.Командный процессор(command.com)
Функции ОС:1.Управление процессами. 2.Интерфейс 3.Поддержка устройств(Device Support) 4.Безопасность 5.Поддержка файловой системы
№3 Концепция процесса. Состояния процесса.
Процесс – программа во время исполнения или объект, которому выделяются ресурсы ВС (процессор, память и..)
Процесс – динамический объект
Процесс характеризует: 1.Набор исполняемых команд 2.Выделенная для исполнения память (адресное пространство) 3.Адрес и состояние стеков 4.Используемые файлы 5.Устройства ввода-вывода 6.Значения регистров 7.Программный счетчик 8.Значение переменных
Состояния процесса: 1.Порождение – создаются условия для первого запуска 2.Готовность – у процесса есть все необходимые ресурсы, кроме ЦП 3.Активное – выделение процессора 4.Ожидание – (блокировка) нужный ресурс занят, процесс ждет его освобождения 5.Завершение – штатное или аварийное окончание работы программы
№4 Описание процесса в ОС. Операции над процессами.
ОС должна обеспечить контроль над процессами в любом из возможных состояний.
Текущее состояние процесса описывается в системе с помощью PCB (Process Control Block)
PCB –хранит информацию:
Уникальный идентификатор процесса, пользователь
Состояние в котором находится процесс
Текущий приоритет
Программный счетчик процесса - IP (адрес команды которая должна быть выполнена для него следующей)
Содержимое регистров процесса
Адресное пространство (и стеки)
Связанные устройства ввода-вывода (файлы)
Область хранения регистров (для рестарта)
Операции над процессами: 1.Создание(образование процесса) 1)Присваивание имени процесса, включение этого имени в список имён известных системе 2)Опр-ние начального приоретета процесса 3) Формирование PCB 4)выделение процессу начальных ресурсов.
2.Уничтожение процесса
3.Возобновление процесса - Подготовка процесса к зупуску с той точки, на котором он был остановлен
4.Изменение приоретета
5.Блокирование
6.Разблокировка
7.Запуск
№5 Граф состояний процесса. Управление переходами.
№6 Процессы и потоки.
Первое, что надо усвоить – процесс состоит хотя бы из одного потока. В ОС каждому процессу соответствует адресное пространство и одиночный управляющий поток. Фактически это и определяет процесс.
С одной стороны, процесс можно рассматривать как способ объединения родственных ресурсов в одну группу.
С другой стороны, процесс можно рассматривать как поток исполняемых команд или просто поток. У потока есть счетчик команд, отслеживающий порядок выполнения действий. У него есть регистры, в которых хранятся текущие переменные. У него есть стек, содержащий протокол выполнения процесса, где на каждую процедуру, вызванную, но еще не вернувшуюся, отведен отдельный фрейм. Хотя поток должен исполняться внутри процесса, следует различать концепции потока и процесса. Процессы используются для группирования ресурсов, а потоки являются объектами, поочередно исполняющимися на центральном процессоре.
Любой поток состоит из двух компонентов:
1)объекта ядра, через который операционная система управляет потоком. Там же хранится статистическая информация о потоке(дополнительные потоки создаются также ядром); 2)стека потока, который содержит параметры всех функций и локальные переменные, необходимые потоку для выполнения кода.
Поток (thread) определяет последовательность исполнения кода в процессе.
Процесс ничего не исполняет, он просто служит контейнером потоков.
Потоки всегда создаются в контексте какого-либо процесса, и вся их жизнь проходит только в его границах.
Потоки могут исполнять один и тот же код и манипулировать одними и теми же данными, а также совместно использовать описатели объектов ядра, поскольку таблица описателей создается не в отдельных потоках, а в процессах.
№7 Архитектуры ОС. Функции ядра.
Ядро – часть ОС основной функцией которого является работа с процессами.
Ядро, как правило, резидентно. Остальные части могут подгружаться по мере надобности
Различают ОС: Микроядерные, Монолитные, Гибридные (большинство современных)
Основные функции ядра ОС
Обработка прерываний
Создание и уничтожение процессов
Диспетчирование (выбор текущего процесса из очереди)
Синхронизация процессов
Организация взаимодействия между процессами
Поддержка PCB
Поддержка операций I/O
Поддержка распределения памяти
Поддержка файловой системы
Вызов процедур и возврат из них
Остальные переходы на графе состояний
№8 Управление потоками. Многопоточное программирование.
Управление потоками.-????
Многопоточная программа содержит две и более частей, которые могут выполняться одновременно, конкурируя друг с другом.
Каждая часть такой программы называется потоком, а каждый поток определяет отдельный путь выполнения (в последовательности операторов программы).
Многопоточность — это специализированная форма многозадачности.
В многозадачной среде, основанной на потоках, самой мелкой единицей диспетчеризации является поток. Это означает, что отдельная программа может исполнять несколько задач одновременно. Например, текстовый редактор может форматировать текст одновременно с печатью документа, поскольку эти два действия выполняются двумя отдельными потоками.
Многозадачные потоки требуют меньших накладных расходов по сравнению с многозадачными процессами. Процессы — это тяжеловесные задачи, которым требуются отдельные адресные пространства. Связи между процессами ограничены и стоят не дешево. Переключение контекста от одного процесса к другому также весьма дорогостоящая задача.
С другой стороны, потоки достаточно легковесны. Они совместно используют одно и то же адресное пространство и кооперативно оперируют с одним и тем же тяжеловесным процессом, межпоточные связи недороги, а переключение контекста от одного потока к другому имеет низкую стоимость.
Многопоточность дает возможность писать очень эффективные программы, которые максимально используют CPU, потому что время его простоя можно свести к минимуму.
Скорость передачи данных по сети намного меньше, чем скорость, с которой компьютер может их обрабатывать.
В традиционной однопоточной среде ваша программа должна ждать окончания каждой своей задачи, прежде чем она сможет перейти к следующей (даже при том, что большую часть времени CPU простаивает).
Многопоточность позволяет получить доступ к этому времени простоя и лучше его использовать.
№9 Проблема тупиков в ОС. Необх условия возникновения тупиков
Тупик – состояние мультипрограммной системы, которого ждет процесс, и которое никогда не реализуется (клинч, дедлок).
Задачи ОС: Предотвращение; Обход; Обнаружение.
Примеры тупиков: транспортная пробка, Кольцевая цепь запросов.
Бесконечное ожидание – состояние системы, которого ждет процесс, является возможным, но оно откладывается на неопределенное время. Например, из-за приоритета.
Условия возникновения тупиков (необходимые):
Монопольное управление выделенными ресурсами (взаимоисключение);
Удержание ресурсов на время ожидания следующего;
Ресурсы у процесса нельзя отобрать, отдает их сам (неперераспределение);
Существование кольцевой цепи запросов.
№10 Предотвращение тупиков. Принципы Хавендера.
Хавендер показал, что для предотвращения тупика необходимо нарушить одно из необходимых условий его возникновения.
Принципы Хавендера:
Процесс запрашивает все нужные ресурсы сразу. До выделения – ждет.
Нарушается условие возникновения тупиков - Удержание ресурсов на время ожидания следующего;
Плюс: простота реализации.
Минусы:
Как определить набор всех необходимых процессу ресурсов?
Простой свободных ресурсов.
Накапливание ресурсов приводит к высоким издержкам.
Если процессу не выделяется очередной ресурс, он должен отдать уже выделенные.
Нарушается условие возникновения тупиков- Ресурсы у процесса нельзя отобрать, отдает их сам (неперераспределение);
Минусы:
Как сохранить промежуточные результаты работы процесса?
Возможность бесконечного откладывания (дефицитный ресурс).
Вводим линейную упорядоченность на типы ресурсов. Процесс может запросить ресурсы только в порядке увеличения номера ресурса.
Нарушается условие возникновения тупиков - Существование кольцевой цепи запросов.
Плюс: кажущаяся простота реализации.
Минусы:
Сложно вводить в систему новые ресурсы (ОС).
Кто знает «правильную» последовательность ресурсов?
Трансляторы тоже должны знать номера ресурсов, а это сложно и снижает мобильность систем.
Условие монопольного управления Хавендер не нарушает
№11 Обнаружение тупиков
Обнаружение тупика – установление факта наличия в системе процессов ожидающих «нереализуемое» состояние.
Основной подход к решению – построение графа распределения ресурсов и нахождение в нем циклов. (Чрезвычайно затратный подход. На практике в чистом виде не используется.)
Восстановление работы системы – продолжение работы некоторых процессов после устранения причины тупика.
Сложности решения:
Неочевидность тупика.
Трудно остановить процесс в произвольной точке кода.
Большие накладные расходы на реализацию сохранения результатов.
В системах с большим числом разноприоритетных процессов трудно удалить процессы с высоким приоритетом.
Виртуализация ресурсов – средство борьбы с тупиками
Система не устраняет условий возникновения тупиков – при возникновении конкурирующих запросов ВСЕ ресурсы могут быть заменены на «виртуальный аналог».
Особенности решения:
Алгоритмически простое решение.
Формально, не боится большого числа процессов.
Сложность возврата из «виртуального мира» в реальный в случае иерархической виртуальности.
№12 Обход тупиков. Алгоритм банкира.
Алгоритм банкира – ресурсы процессу можно выдавать только в том случае, если состояние системы останется надежным.
Надежное состояние – ОС гарантирует всем процессам завершение в конечное время.
Введем следующие обозначения:
M(i) – максимальная потребность i-го процесса в ресурсе;
L(i) – текущая величина ресурса, выделенного i-му процессу;
С(i) – текущая потребность в ресурсе, C(i)=M(i)-L(i);
Т – суммарный ресурс, имеющийся в системе;
а – остаточный ресурс, а=Т-L(i);
Пусть в некоторый момент времени в системе существуют три процесса.
|
L(i) |
M(i) |
C(i) |
Process 1 |
1 |
4 |
3 |
Process 2 |
4 |
6 |
2 |
Process 3 |
5 |
8 |
3 |
a |
2 |
Решение примера
№13 Прерывания ОС и BIOS. Обработка прерываний.
Прерывание - это событие, при котором меняется последовательность команд, выполняемых процессором.
Что происходит после прерывания?
Управление передается ОС
ОС запоминает состояние прерванного процесса (например в PCB)
Передача управления соответствующей программе обработчику прерывания
Типы прерываний.
SVC прерывание (super visor call instruction) - программа вызывает супервизор – ОС, то есть требует системную услугу.
то есть SVC – механизм не позволяет получать программе пользователя системные ресурсы без контроля со стороны ОС (механизм доступа, паролей и так далее)
I/O прерывание: инициатор – устройство ввода-вывода (изменение его состояния)
Внешнее прерывание (оператор, другой процессор)
Прерывание по рестарту (при сигнале рестарт процессору)
Прерывание по ошибке программы Прерывание по ошибке ЭВМ
Обработчики прерываний.
Для каждого типа прерывания существует свой IH (interrupt handler) = обработчик прерываний.
Система передает управление IH способом
PSW (program status word) - слово состояния программы – управляет порядком выполнения команд и содержит информацию о процессе.
PWS бывает: текущее(current), новое(new), старое(old).
Новое PSW = содержит адрес по которому резидентно размещается IH.
При прерывании текущее PSW становится старым, а новое PWS становится текущим. После выполнения IH управление будет передано либо прерванному процессу (OLD PSW), либо более приоритетному из очереди (перехват ЦП).
№14. Организация оперативной памяти. Однопрограммные системы. Оверлеи.
Организация памяти это способ представления и использования основной памяти
Способы организации основной памяти (DRAM)
Однопрограммные системы
Мультипрограммные системы с фиксированными разделами с трансляцией и загрузкой в абсолютных адресах
Мультипрограммные системы с фиксированными разделами с трансляцией и загрузкой перемещаемых модулей
Мультипрограммные системы с переменными разделами
Системы со свопингом (SWAP)
О
днопрограммные
системы
Защита области памяти процесса
Однозадачные OS могут работать только с одной (в данный момент времени) программой, т.е. выполняют функцию предоставления пользователю виртуальной машины. Пример - MS-DOS.
Оверлеи представляют собой части программы, которые совместно используют общую область памяти. В один и тот же момент времени резидентно размещаться в памяти может та или иная часть программы, необходимая для выполнения заданной функции. В процессевыполнения эти части программы могут замещать друг друга.
Оверлеи полезны только в программах DOS реального режима. Поскольку для программ Windows памятью управляет сама Windows, а для программ защищенного режима - администратор этапа выполнения (RTM.EXE), эти средства включают в себя полный механизм обслуживания оверлеев, и в программах Windows и программах защищенного режима необходимость использования оверлеев отпадает.
Оверлеи могут значительно сократить объем памяти, необходимый для выполнения программы. Фактически, так как в любой момент времени в памяти резидентно размещаются только части программы, с помощью оверлеев вы можете выполнять программы, значительно превосходящие по объему доступную память.
№15. Организация оперативной памяти. Мультипрограммные системы.
Организация памяти это способ представления и использования основной памяти
Способы организации основной памяти (DRAM)
Однопрограммные системы
Мультипрограммные системы с фиксированными разделами с трансляцией и загрузкой в абсолютных адресах
Мультипрограммные системы с фиксированными разделами с трансляцией и загрузкой перемещаемых модулей
Мультипрограммные системы с переменными разделами
Системы со свопингом (SWAP)
Мультипрограммные системы.
Многозада́чность (англ. multitasking) — свойство операционной системы или среды программирования обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких процессов. Истинная многозадачность операционной системы возможна только в распределенных вычислительных системах.
Схема с фиксированными разделами.
Трансляция и загрузка в абсолютных адресах (раздельные очереди процессов)
Плюсы: простота организации работы, высокая скорость загрузки
Минусы: число одновременно загруженных процессов ограничено и не зависит от занимаемой ими памяти; переход в свободный раздел невозможен.
Трансляция и загрузка перемещаемых модулей (общая очередь процессов)
Плюс: простое управление очередью.
Минус: сложный загрузчик.
Схема с переменными разделами
Стратегии выбора разделов:
first fit - первый подходящий по размеру
best fit - наиболее подходящий по размеру
worst fit - наименее подходящий по размеру
Плюс: эффективное использование памяти
Минус: необходимость периодической дефрагментации.
№
16
Основные функции
системы управления памятью.
Основные функции системы управления памятью (Memory Manager)
отображение адресного пространства процесса на конкретные области физической памяти (размещение);
распределение памяти между конкурирующими процессами (выборка);
контроль доступа к адресным пространствам процессов;
выгрузка процессов (целиком или частично) во внешнюю память, когда в оперативной памяти недостаточно места (замещение);
учет свободной и занятой памяти.
№17 Организация оперативной памяти. Основные способы.
Организация памяти это способ представления и использования основной памяти
Способы организации основной памяти (DRAM)
Однопрограммные системы
Мультипрограммные системы с фиксированными разделами с трансляцией и загрузкой в абсолютных адресах
Мультипрограммные системы с фиксированными разделами с трансляцией и загрузкой перемещаемых модулей
Мультипрограммные системы с переменными разделами
Системы со свопингом (SWAP)
№18 Организация оперативной памяти. Системы со свопингом.
Организация памяти это способ представления и использования основной памяти
Способы организации основной памяти (DRAM)
Свопинг
Один из механизмов реализации виртуальной памяти, при котором отдельные запущенные процессы (обычно неактивные) перемещаются из ОЗУ на жёсткий диск, освобождая ОЗУ для загрузки других процессов. Основное отличие этого механизма от страничного заключается в том, что процессы перемещаются между ОЗУ и жестким диском целиком, поэтому иногда некоторые процессы могут полностью отсутствовать в ОЗУ. При наступлении условий активизации процесса он возвращается диспетчером памяти в ОЗУ. Существуют различные алгоритмы выбора процессов на загрузку и выгрузку, а также различные способы выделения оперативной и дисковой памяти загружаемому процессу.
Мультипрограммные системы с фиксированными разделами и переменными разделами требуют, чтобы задание оставалось в памяти до момента завершения. При свопинге задание можно «вталкивать» до завершения во внешнюю память.
Основная идея – держать в памяти только те инструкции программы, которые нужны в данный момент.
№19. Виды памяти вычислительных систем.
Различают два основных вида памяти — внутреннюю и внешнюю.
В состав внутренней памяти входят оперативная память, кэш-память и специальная память.
Внешняя память (ВЗУ) предназначена для длительного хранения программ и данных, и целостность её содержимого не зависит от того, включен или выключен компьютер. В отличие от оперативной памяти, внешняя память не имеет прямой связи с процессором.
В состав внешней памяти компьютера входят:
накопители на жёстких магнитных дисках;
накопители на гибких магнитных дисках;
накопители на компакт-дисках;
накопители на магнитной ленте (стримеры);
накопители на магнитно-оптических дисках;
№20 Виртуальная память, назначение, основные проблемы. Методы организации.
Виртуальная память – организация памяти, которая позволяет процессу адресовать пространство памяти намного большее, чем имеется в системе.
Основная проблема
Процесс работает с виртуальными адресами V, а процессор с реальными R. Необходимо уметь быстро преобразовывать V в R.
1. Преобразование каждого адреса V в реальный R. Совершенно нереальный механизм. Таблица преобразований займет всю память и вытеснит процесс. Если ее попытаться хранить во внешней памяти, то скорость работы процесса очень существенно снизится.
2. Преобразование блока виртуальных адресов V в блок реальных адресов R. Реальный механизм. Таблица преобразований компактна и может храниться в КЭШ. Требует двухкомпонентного адреса V(S,d) Где S – номер блока, а d смещение от начала блока
Методы организации виртуальной памяти:
СТРАНИЧНАЯ – все блоки одинаковые по размеру
СЕГМЕНТНАЯ – все блоки разные по размеру
СЕГМЕНТНО-СТРАНИЧНАЯ – все сегменты разные по размеру, но состоят из целого числа одинаковых блоков
№21 Задачи менеджера виртуальной памяти.
Менеджер виртуальной памяти (далее просто «менеджер памяти») — часть операционной системы, благодаря которой можно адресовать память большую, чем объем физической памяти (ОЗУ).
Основные задачи:
1)Подкачка – когда и какую страницу из ВМ перевести в ОЗУ
По запросу
Достоинства:
- самый дешевый вариант (низкие накладные расходы)
- исключает ненужные подкачки
Недостатки:
- простой процесса в ожидании нужного набора страниц
С упреждением
Достоинства:
при правильном предсказании увеличение производительности
при «большом» ОЗУ снижается урон от промаха
Недостатки:
любит ОЗУ
некоторое увеличение накладных расходов
2)Выталкивание - какую страницу можно «убрать» из ОЗУ
1. Принцип оптимальности.
Надо выталкивать ту страницу, к которой дольше всего не будет обращений. Как это можно определить? Никак!
Стратегия не реализуется.
2. Выталкивание случайной страницы.
Достоинство: быстрое решение с маленькими накладными расходами.
Недостатки: может возрасти частота прерываний (выталкиваем нужную страницу).
Используется крайне редко.
3)Размещение – куда поместить загружаемую в ОЗУ страницу
Куда разместить страницу?
Если есть свободное место в ОЗУ, то используем его.
Если все занято, то решаем задачу замещения или выталкивания.
№22 Страничная организация виртуальной памяти.
В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Операционная система преобразует виртуальный адрес в физический, при необходимости подгружая страницу с жёсткого диска в оперативную память. При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются той части, которая отвечает за использование файла подкачки).
В семействе операционных систем Microsoft Windows место для хранения страниц на жёстких дисках должно быть выделено заранее. Пользователь может положиться на автоматический механизм или самостоятельно указать размер области виртуальной памяти на каждом из разделов диска. На указанных разделах операционной системой создаётся файл pagefile.sys требуемого размера, который и хранит «сброшенные» из оперативной памяти страницы.
№23 Сегментная организация виртуальной памяти.
Механизм организации виртуальной памяти, при котором виртуальное пространство делится на части произвольного размера — сегменты. Этот механизм позволяет, к примеру, разбить данные процесса на логические блоки.[1] Для каждого сегмента, как и для страницы, могут быть назначены права доступа к нему пользователя и его процессов. При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре. Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту.
Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g — номер сегмента, а s — смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.
Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.
№24 Сегментно-страничная организация виртуальной памяти.
При сегментно-страничной организации виртуальной памяти происходит двухуровневая трансляция виртуального адреса в физический. В этом случае виртуальный адрес состоит из трех полей: номера сегмента виртуальной памяти, номера страницы внутри сегмента и смещения внутри страницы. Соответственно, используются две таблицы отображения - таблица сегментов, связывающая номер сегмента с таблицей страниц, и отдельная таблица страниц для каждого сегмента.
Сегментно-страничная организация виртуальной памяти позволяла совместно использовать одни и те же сегменты данных и программного кода в виртуальной памяти разных задач (для каждой виртуальной памяти существовала отдельная таблица сегментов, но для совместно используемых сегментов поддерживались общие таблицы страниц).
№25 Концепция локальности и теория рабочего множества.
Если процесс перешел в фазу «взрослый», в памяти надо держать страницы относящиеся к его «рабочему множеству».
Локальность (по Деннингу) бывает:
Временная – процесс может вернуться к текущей ячейке,
т.к. в программе присутствуют циклы.
Пространственная – процесс переходит к следующей ячейке
благодаря своей последовательной структуре.
Некоторые выводы:
Чем меньше размер страницы, тем больше объем Page Table
Чем больше объем страницы, тем больше доля «лишней» информации
Чем больше объем страницы, тем быстрее пройдет загрузка программы
Чем меньше объем страницы, тем легче составить «правильное» рабочее множество.
Оптимальны страницы относительно небольшого объема – 1 килобайт
№26 Стратегии решения задачи замещения страниц при управлении виртуальной памятью.
1. Принцип оптимальности.
Надо выталкивать ту страницу, к которой дольше всего не будет обращений. Как это можно определить? Никак!
Стратегия не реализуется.
2. Выталкивание случайной страницы.
Достоинство: быстрое решение с маленькими накладными расходами.
Недостатки: может возрасти частота прерываний (выталкиваем нужную страницу).
Используется крайне редко.
3. Принцип FIFO. (первая партия на приход — первая в расход first in, first out)
Красивое решение, обоснования нет.
Достоинство: достаточно быстрое решение.
Недостатки: возможна т.н. аномалия FIFO.
Используется достаточно часто.
4. Выталкивание дольше всего не использовавшейся страницы.
LRU (Least Recently Used)
Достоинство: временной анализ.
Недостатки: - накладные расходы на поддержку временных меток
- смотрит назад, а не вперед.
Используется достаточно редко.
5. Выталкивание реже всего использовавшейся страницы.
LFU (Least Frequently Used)
Будем считать число обращений к странице на заданном интервале.
Достоинство: временной анализ.
Недостатки: - накладные расходы на поддержку временных меток;
- можно вытолкнуть «свежую» страницу;
- трудно вытолкнуть «заслуженного ветерана», страницу которая сразу набрала много обращений
Используется достаточно редко.
6. Выталкивание не использовавшейся в последнее время страницы.
NUR (Not Used Recently)
Будем периодически обновлять счетчик обращений.
Достоинство: устраняем недостаток LFU.
Недостатки:- можно вытолкнуть «свежую» страницу;
- Используется достаточно редко.
Билет №27 Управление процессами, переключение контекста, приоритеты.
Планирование загрузки процессоров – это распределение процессоров (или процессорного времени) между процессами.
Дисциплины планирования делятся на:
- ДИСЦИПЛИНЫ БЕЗ ПЕРЕКЛЮЧЕНИЯ. После выделения процессу ЦП его нельзя отобрать до завершения.
- ДИСЦИПЛИНЫ С ПЕРЕКЛЮЧЕНИЕМ. У процесса можно отобрать ЦП используя таймер или с приходом другого процесса.
Приоритеты бывают:
- СТАТИЧЕСКИЕ – не меняются при работе процесса, жесткий алгоритм управления, низкая эффективность.
- ДИНАМИЧЕСКИЕ – могут учитывать показания системных «сенсоров» , гибкое управление, высокие издержки на обслуживание.
- ПОКУПНЫЕ – изменяется (повышается) по инициативе пользователя. Экзотика.
Контекст процесса включает в себя содержимое адресного пространства задачи, выделенного процессу, а также содержимое относящихся к процессу аппаратных регистров и структур данных ядра. С формальной точки зрения, контекст процесса объединяет в себе пользовательски контекст, регистровый контекст и системный контекст. Ядро разрешает производить переключение контекста в четырех случаях: когда процесс приостанавливает свое выполнение, когда он завершается, когда он возвращается после вызова системной функции в режим задачи, но не является наиболее подходящим для запуска, или когда он возвращается в режим задачи после завершения ядром обработки прерывания, но так же не является наиболее подходящим для запуска.
Механизм переключения контекста:
1. Принять решение относительно необходимости переключения контекста и его допустимости в данный момент.
2. Сохранить контекст "прежнего" процесса.
3. Выбрать процесс, наиболее подходящий для исполнения, используя алгоритм диспетчеризации процессов.
4. Восстановить его контекст.
Билет №28 Управление процессами. Основные стратегии.
- Планирование по сроку завершения. Все процессы должны закончиться к указанному сроку.
Трудности: надо точно указать какие ресурсы нужны процессу (как узнать?), нельзя дискриминировать отдельные процессы, как учесть приход различных запросов во время выполнения процесса(как?), если процессов с «жесткими» сроками завершения несколько(как выбрать?), стратегия требует активного управления, а это дорого.
На практике редко используется, только для «закрытых» систем.
- Планирование по принципу FIFO(First Input First Output). Из очереди выбирается тот процесс, который раньше пришел в систему. БЕЗ ПЕРЕКЛЮЧЕНИЯ.
Особенности: простота реализации ( + ), длинные процессы блокируют ЦП( - ), нельзя использовать в интерактивных системах( - ).
Пусть задан поток запросов Порядок выполнения запросов
- Планирование по принципу SJF(Shortest Job First). Из очереди выбирается процесс с наименьшим временем выполнения. БЕЗ ПЕРЕКЛЮЧЕНИЯ.
Особенности: сижает длину очереди( + ), сложно оценить время выполнения ( - ).
Пусть задан поток запросов Порядок выполнения запросов
- Планирование по принципу SRTF(Shortest Remaining Time First ). Из очереди выбирается процесс с наименьшим временем завершения. С ПЕРЕКЛЮЧЕНИЕМ.
Особенности: минимальное время ожидания( + ), сложно оценить время выполнения( - ).
Пусть задан поток запросов Порядок выполнения запросов
- Циклическое планирование (RR)(Round Robin). Каждый квант времени из очереди выбирается очередной процесс. Работавший процесс становится последним в очереди (цикл). С ПЕРЕКЛЮЧЕНИЕМ.
Особенности: для интерактивных систем( + ), любит ОЗУ( - ), размер кванта( - ).
Пусть задан поток запросов Порядок выполнения запросов
- Планирование по принципу HRN(Highest Response ratio Next). Каждый квант времени из очереди выбирается процесс c наибольшим приоритетом. С ПЕРЕКЛЮЧЕНИЕМ.
Особенности: приоритет процесса – динамический. ПРИОРИТЕТ=(время ожидания +время обслуживания)/(время обслуживания) . Справедливая стратегия( + ), не определить размер кванта( - ).
- Многоуровневые очереди с обратными связями. Отношение системы к процессу зависит от его поведения. Адаптивная стратегия. Требует значительных ресурсов системы. Самая «правильная». С ПЕРЕКЛЮЧЕНИЕМ.
Билет №29 Управление процессами. Цели и критерии.
Цели:
Быть справедливой ко всем процессам.
Повышать производительность системы (число процессов/время)
Уменьшать время реакции системы для пользователей
Быть предсказуемой (время решения задания не должно зависеть от нагрузки)
Минимизировать потери ресурсов
Загружать простаивающие ресурсы
Исключать бесконечное откладывание
Учитывать приоритеты
Выделять процессы, занимающие ключевые ресурсы (не прерывать)
Создавать хорошие условия для «правильных» процессов
Балансировать между min(время реакции) – max(загрузка ресурсов)
Иметь плавную зависимость параметров от нагрузки
Критерии:
Лимитируется ли процесс I/O операциями
Освобождает ли процесс ЦП до окончания кванта времени
Режим работы процесса – пакетный или интерактивный
Необходимость «немедленной» реакции на события (real time)
Приоритет процесса
Частоту прерываний из-за отсутствия страниц в памяти (раб. множество)
Частоту прерываний из-за низкого приоритета
Выделенное время
Время ожидания в очереди
Время, необходимое для завершения процесса
Билет №30 Организация файлов. Функции файловой системы. Распределение внешней памяти.
Файл – поименованная совокупность данных.
Файловая система – часть ОС, отвечающая за работу с файлами.
Функции:
Создание, удаление, модификация файлов
Разделение файлов друг от друга, поддержание целостности
Совместная работа нескольких процессов с файлами
Изменение структуры файла
Восстановление после стирания
Обеспечение разных методов доступа и режима секретности
Обращение к файлу по символическому имени
Дружественный интерфейс.
Физическая запись или блок – единица информации, которую можно считать с носителя или записать на него.
Организация файлов:
- Последовательная – записи в файле располагаются в физическом порядке. Магнитные ленты, перфоленты, перфокарты. Возможно и на дисках.
- Индексно-последовательная – записи в файле располагаются в логическом порядке в соответствии со значением ключей, содержащихся в каждой записи. Имеется специальный файл – индексный, где расположены адреса записей, упорядоченные по значению ключа. Диски.
- Прямая – доступ к записям осуществляется прямо по их адресам. ЗУ прямого доступа.
- Библиотечная – файл представляется суммой последовательных подфайлов.
Распределение памяти:
Связное – каждому файлу выделяется непрерывная область памяти.
Достоинства: высокая скорость доступа, простая директория.
Недостатки: файл можно записать на диск только при наличии подходящей по размеру непрерывной области. Необходимо использовать трудоемкую операцию «сжатие» (sque, а не defrag).
Несвязное – носитель разбивается на области (сектора). Файл представляется. Последовательностью секторов, может быть и не связанных.
Достоинства: не требует операции сжатия.
Недостатки: сложная директория, необходимость в операции defrag.
* Указатели на предыдущий и последующий секторы
Билет №31 Файловая система. Методы поблочного отображения.
Диск разбивается на блоки. Блок объединяет несколько последовательных секторов. Файл состоит из блоков (в общем случае несмежных).
Цепочка блоков.
AAA= K+1+5
Достоинства: не требует операции сжатия.
Недостатки: долго, но можно ускорить
Цепочка индексов.
AAA= 5+3+25+100+88+32+103+71
Достоинства: быстрее цепочки блоков.
Недостатки: фиксированное число файлов, сложность вставки блоков.
Таблица поблочного распределения – FAT (File Allocation Table)
Достоинства: быстрее цепочки блоков.
Недостатки: фиксированное число файлов, сложность вставки блоков.
Билет №32 hpfs, ntfs и cdfs. Управление доступом к файлам.
HPFS
Структура раздела HPFS
Основные особенности HPFS:
- Диск разбивается на блоки по 512 байт, а адрес кодируется 4 байтами, что позволяет адресовать диски до 2 ТБ и эффективно использовать дисковое пространство.
- Информация о местонахождении файлов хранится в B-деревьях, информация о каталогах хранится в центральной полосе диска.
- Информация в каталоге хранится в B-дереве, записи в котором отсортированы по алфавиту
- Имя файла не должно превышать 255 символов, а общая длина пути 260.
- Максимальный размер файла – до 7,68 Гбайт, но практически не более 2 Гбайт.
Позднее на основе HPFS была создана JFS – журналируемая файловая система, использующая транзакции. В настоящее время JFS - одна из самых быстрых файловых систем.
NTFS
Структура раздела NTFS
Отличия NTFS от FAT
- служебная информация хранится в файлах, а жестко определенным является положение только первых 16 записей MFT и их копии.
- наличие журнала операций над файлами, позволяющее эффективно устранять ошибки
- возможность создания нескольких потоков данных для файла
- NTFS 5.0 и 5.1 динамически изменяет ярлык при перемещении или переименовании файла
- управление избирательным доступом, позволяющее управлять правами доступа
- возможность аудита действий пользователя и квотирования пространства диска
- создание жестких связей и точек перехода
- шифрование и сжатие средствами на уровне файловой системы
CDFS
Структура диска с несколькими сессиями
Существующие файловые системы для CD:
- ISO 9660 – стандартная файловая система для записи данных на CD.
El Torito – расширение для возможности загрузки с диска.
Joilet – расширение, разрешающее длинные имена файлов (до 128 символов), символы unicode в названия файлов и директорий, вложенность директорий больше 8.
- UDF (Universal Disk Format или ISO 13346 ) – файловая система, поддерживающая длинные имена файлов (до 255) и файлы большого размера (более 2 Гбайт), длину пути до 1024 символов
- HFS – файловая система используемая в MacOS