- •Операционная система. Примеры существующих ос.
- •Первые три поколения ос. Система multics, технологии применяемые в современных ос.
- •Ос четвертого поколения. Отличительные особенности от ос 3го поколения.
- •Системные вызовы. Примеры системных вызовов. Структура ос.
- •Процессы. Реализация процессов в ос Windows и Unix. Планировщик процессов
- •Ресурсы. Виды ресурсов. Примеры ресурсов.
- •Потоки. Реализация потоков в ос Windows и Unix. Планировщик потоков.
- •Межпроцессное взаимодействие. Критическая секция. Примеры межпроцессного взаимодействия.
- •Примитивы межпроцессного взаимодействия. Мьютексы. Семафоры. Мониторы. Передача сообщений. Барьеры.
- •Проблемы межпроцессного взаимодействия. Проблема обедающих философов. Проблема читателей и писателей. Проблема спящего брадобрея. Решения проблем.
- •Планирование в системах пакетной обработки данных. Планирование в системах реального времени. Примеры планирования.
- •Планирование в интерактивных системах. Примеры планирования.
- •Взаимоблокировка. Алгоритмы обнаружения и устранения взаимоблокировок. Пример работы алгоритмов.
- •Взаимоблокировка. Алгоритмы избежания взаимоблокировок. Пример работы алгоритмов.
- •Взаимоблокировка. Алгоритмы предотвращения взаимоблокировок. Пример работы алгоритмов.
- •Взаимоблокировка. Двухфазное планирование. Тупики без ресурсов. Голодание.
- •Проблемы управления памятью. Управление памятью в однозадачных системах. Управление памятью в многозадачных системах.
- •Проблемы управления памятью. Моделирование многозадачности. Примеры алгоритмов управления памятью.
- •Алгоритмы подкачки для управления памятью. Примеры работы алгоритмов.
- •Принципы управления памятью с помощью таблицы страниц. Tlb буфер. Пример страничной организации памяти.
Примитивы межпроцессного взаимодействия. Мьютексы. Семафоры. Мониторы. Передача сообщений. Барьеры.
Примитивы межпроцессного взаимодействия используются для решения таких проблем, как проблема производителя и потребителя, проблема обедающих философов, проблема читателей и писателей и проблема спящего брадобрея. Но даже при использовании примитивов необходимо отслеживать ситуации, приводящие к ошибкам и взаимоблокировкам.
Mutex-предотвращает одновременный доступ к буферу производителя и потребителя.
значение 0 – разрешает, значение 1-запрещает. На время проверки Mutex все действия запрещены.
семафор .значение семафора может быть равно 0, что будет свидетельствовать об отсутствии сохраненных активизаций или иметь какое-нибудь положительное значение, если ожидается не менее одной активизации.
Монитор-это приметива межпроцес0сорного взаимодействия, которая релизруется на уровне из программирования и не допускается более 1 процесса в теле функции.
В теле ф. находиться 1 процесс, 2-ой не начнется, пока не закончиться 1-ый.
Передача сообщений.
Send-передать
Receive- ответить
Производиться отправка в Receive, но так как сообщение может не прийти,потеряться в сети, потребитель должен ответить, при получении.
Барьер- это условие ,которое необходимо выполнить для попадения в критическую секцию.
Проблемы межпроцессного взаимодействия. Проблема обедающих философов. Проблема читателей и писателей. Проблема спящего брадобрея. Решения проблем.
Модель решения проблемы межпроцессного взаимодействия. 1. Исходные данные: - кол-во процессов, претендующих на обслуживание, произвольное; - одновременно обслуживается только 1 процесс; - число ожидающих процессов не более n;
Планирование в системах пакетной обработки данных. Планирование в системах реального времени. Примеры планирования.
«Первым пришел — первым обслужен»
Процессам предоставляется доступ к процессору в том порядке, в котором они его запрашивают. Чаще всего формируется единая очередь ждущих процессов. Как только появляется первая задача, она немедленно запускается и работает столько, сколько необходимо. Остальные задачи ставятся в конец очереди. Когда текущий процесс блокируется, запускается следующий в очереди, а когда блокировка снимается, процесс попадает в конец очереди.
Основным преимуществом этого алгоритма является то, что его легко понять и столь же легко программировать.
Недостатком является абсолютная неоптимизированность планирования.
«Кратчайшая задача — первая»
Рассмотрим еще один алгоритм без переключений для систем пакетной обработки, предполагающий, что временные отрезки работы известны заранее. Если в очереди есть несколько одинаково важных задач, планировщик выбирает первой самую короткую задачу.
Преимущество алгоритма заключается в оптимизации задачи.
Недостатком является то, что эта схема работает лишь в случае одновременного наличия задач.
Наименьшее оставшееся время выполнения
Версией предыдущего алгоритма с переключениями является алгоритм наименьшего оставшегося времени выполнения. В соответствии с этим алгоритмом планировщик каждый раз выбирает процесс с наименьшим оставшимся временем выполнения. В этом случае также необходимо заранее знать время выполнения задач. Когда поступает новая задача, ее полное время выполнения сравнивается с оставшимся временем выполнения текущей задачи. Если время выполнения новой задачи меньше, текущий процесс приостанавливается и управление передается новой задаче. Эта схема позволяет быстро обслуживать короткие запросы.
Трехуровневое планирование
Системы пакетной обработки позволяют реализовать трехуровневое планирование, как показано на рисунке. По мере поступления в систему новые задачи сначала помещаются в очередь, хранящуюся на диске. Впускной планировщик доступа выбирает задание и передает его системе. Остальные задания остаются в очереди.
Как только задание попало в систему, для него будет создан соответствующий процесс, и он может тут же вступить в борьбу за доступ к процессору. Тем не менее возможна ситуация, когда процессов слишком много и они все в памяти не помещаются, тогда некоторые из них будут выгружены на диск. Второй уровень планирования определяет, какие процессы можно хранить в памяти, а какие — на диске. Этим занимается планировщик памяти.
Системы реального времени относятся к тому разряду систем, в которых время
играет очень важную роль.
Системы реального времени обычно делятся на жесткие системы реального
времени (системы жесткого реального времени), в которых соблюдение всех
крайних сроков является обязательным, и гибкие системы реального времени
(системы мягкого реального времени), в которых нерегулярные несоблюдения
крайних сроков нежелательны, но вполне допустимы.
