- •Классификация ос.
- •Концептуальная схема компьютера.
- •Приоритеты и маскирование прерываний.
- •Методы доступа к файлам: последовательный доступ, прямой доступ, индексно-последовательный доступ.
- •Директории fat, unix и ntfs.
- •Закрытие
- •Операции над процессами в unix (fork, exec, exit).
- •Вытесняющее и невытесняющее планирование.
- •Оценки среднего времени ожидания и среднего полного времени выполнения.
- •Гарантированное планирование.
- •Алгоритм «Кратчайшее задание - первое» sjf, прогноз длительности интервала cpu.
- •Приоритетное планирование.
- •Статические и динамические приоритеты.
- •1 И 2 примерно равны по исп памяти, но 1 быстрее
- •Защита памяти.
- •Защита памяти.
- •Сегментная организация памяти.
- •Преимущества сегментной организации памяти.
- •Логические адреса.
- •Вычисление физического адреса.
- •Оптимальный алгоритм.
- •Fifo алгоритм «Первым пришел - первым обслужен
Операции над процессами в unix (fork, exec, exit).
Fork – единственный способ создания пользователем нового процесса
Возвращает родительскому процессу идентификатор порождённого процесса, а дочернему – 0.
Нулевой процесс, возникающий внутри ядра при загрузке системы, является единственным не создаваемым с пом-ю форк
Выполнение:
Отводит место в таблице процессов под новый процесс
Присваивает порождаемому процессу уникальный код идентификации
Делает логическую копию родительского контекста(иногда вместо копии увелич значение счетчика ссылок на область)
Увелич значение счетчика числа файлов, связанных с процессом, как в таблице ф-лов, так и в таблице индексов.
Возвращает родительскому процессу идентификатор порождённого, а порождённому ноль.
Exec-изменение пользовательского контекста процесса
Проверка наличия, формата и прав доступа к файлу
Отсоединение областей памяти, ранее присоединённых к процессу
Выделяются и присоединяются к процессу области команд и данных, а затем загружается в оп содержимое исполняемого файла
Выделяется и присоединяется к процессу область стека и отводит пространство памяти для хранения параметров функции exec
В пространстве процесса стираются адреса пользовательских функций обработки сигналов. Рекомендации игнорирования остаются в силе.
Ядро устанавливает начальные значения в регистрах для режима задания значения из сохранённого регистрового контекста
При выходе из функции процесс исполняет текст новой программы. Процесс остаётся тем же() ид и место в иерархии то же)
Exit – процесс завершает своё выполнение
Ядро отменяет обработку всех сигналов, посылаемых процессу
Ядро просматривает дескрипторы открытых файлов, закрывает каждый из этих файлов
Освобождает индексы текущего каталога и корня(если он изменялся)
Ядро освобождает всю выделенную задаче память вместе с соответствующими областями и переводит процесс в состояние прекращения существования
Ядро сохраняет в таблице процессов код возврата и суммарное время исполнения процесса и его потомков в режиме ядра и режиме задачи.
Переключение контекста.
-сохранение/восстановление работоспособности процесса
Нити исполнения.
процесс представляет собой совокупность выделенных ему ресурсов и набора нитей исполнения. Нити процесса разделяют его программный код, глобальные переменные и системные ресурсы, но каждая нить имеет собственный программный счетчик, свое содержимое регистров и свой стек.
Модель потока и понятие нити исполнения.
Поток исполняемых команд определяется значением счетчика команд, текущим значением регистров и состоянием стека, содержащего отдельную запись на каждую вызванную, но еще не завершившуюся процедуру. Поток является частью процесса. Нити – дополнительные управляющие потоки в рамках одного процесса.
Состояния нитей и их связь с состояниями процесса.
Аналогичны состояниям процесса.
Из состояния «создание» процесс возвращается содержащим 1 нить, остальные нити – потомки первой.
Процесс в состоянии ГОТОВ если хотя бы одна из нитей в состоянии ГОТОВ и ни одной в состоянии ВЫПОЛНЯЕТСЯ. Процесс в состоянии ВЫПОЛНЯЕТСЯ, если одна из его нитей в состоянии ВЫПОЛНЯЕТСЯ. Процесс в ОЖИДАНИЕ, если все его нити в сост ОЖИДАНИЕ. Процесс в сост ЗАВЕРШЕН, если все его нити в ЗАВЕРШЕН
Методы реализации нитей.
В пространстве пользователя
Ядро управляет обычными однопоточными процессами. Система поддержки нитей, содержащая набор процедур для управления. Необходим каждому процессу свой планировщик и таблица нитей
В ядре
2 управляющих блока.
Блок управления нити в ядре. Содержит регистры, состояние и другую инф-цию о кажд нити
Единая таблица потоков всей системы
Преимущества и проблемы различных методов реализации
На уровне пользователя(+)
Можно реализовать в ос, котор не поддерживает нити
Переключение состояний нити быстрее
Каждый процесс может иметь собств алгоритм планирования
На уровне пользователя(-)
Проблема реализации блокирующих системных запросов
При запуске одной нити ни одна другая не будет запущена, пока первая не отдаст проц
Нити использ в приложениях, где они часто блокируются
На уровне ядра(+)
Когда нить блокируется, ядро запускает другую
Управление потоков не требует новых неблокирующих системных запросов
На уровне ядра(-)
Существенные затраты на системные запросы
Планирование процессов
Планирование – упорядоченное распределение ограниченных ресурсов, необходимость в котором возникает при наличии нескольких конкурирующих потребителей.
Уровни планирования.
3 вида планирования:
Заданий – выбор очередного задания для загрузки в память и порождение соотв процесса. Долгосрочное планирование.
Подкачки – регулировка загрузки памяти путем временной выгрузки выполняющегося процесса из оп на диск (свопинг). Среднесрочное планирование.
Использования процессора – процедура выбора одного процесса, который будет переведен в состояние исполнение. Краткосрочное планирование.
Требования к алгоритмам.
Справедливость(невозможность захвата 1 процессом непропорционально большого интервала процессорного времени)
Эффективность(повышение степени загрузки процессора)
Сокращение полного времени выполнения(уменьшение времени между стартом процесса или постановкой задания в очередь и его завершением)
Сокращение времени ожидания(уменьшение времени , которое процессы проводят в состоянии ГОТОВ и задания в очереди для загрузки)
Сокращение времени отклика(минимизация времени для ответа на запрос пользователя)
Желательно:
Предсказуемость
Минимальные накладные расходы, связ с работой алгоритма
Равномерная загрузка ресурсов
Обладание масштабируемостью(нормальная работа при увеличении нагрузки)
Параметры планирования.
Характеристики процессов в системе, заданий в очереди и состояния вычислит системы
Статические и динамические параметры планирования и их использование при краткосрочном и долгосрочном планировании.
Статические – не изменяются в процессе работы вычисл системы. Предельные значения ресурсов системы
Динамические – изменяются. Количество свободных ресурсов в данный момент времени
Стат параметры:
Пользователь запистивший процесс или сформировавший задание
Степень важности задачи(приоритет)
Количество процессорного времени, запрошенного пользователем
Соотношение процессорного времени и времени на ввод-вывод
Требования к ресурсам выч системы
Алгоритмы долгосрочного планирования используют статические и динамические параметры выч системы и статические параметры процессов
Алгоритмы краткосрочного и среднесрочного планирования дополнительно учитывают и динамические хар-ки процессов. Для среднесрочного планирования динамич хар-ки:
Время с момента выгрузки процесса на диск или его загрузки в оп
Объём оп для работы процесса
Кол-во процессорного времени, выделенного процессу к моменту планирования
Для краткосрочного еще 2 динамич параметра:
Промежуток времени непрерывного использования процессора
Промежуток времени непрерывного ожидания ввода-вывода
