
- •Операционная система. Примеры существующих ос.
- •Первые три поколения ос. Система multics, технологии применяемые в современных ос.
- •Ос четвертого поколения. Отличительные особенности от ос 3го поколения.
- •Системные вызовы. Примеры системных вызовов. Структура ос.
- •Процессы. Реализация процессов в ос Windows и Unix. Планировщик процессов
- •Ресурсы. Виды ресурсов. Примеры ресурсов.
- •Потоки. Реализация потоков в ос Windows и Unix. Планировщик потоков.
- •Межпроцессное взаимодействие. Критическая секция. Примеры межпроцессного взаимодействия.
- •Примитивы межпроцессного взаимодействия. Мьютексы. Семафоры. Мониторы. Передача сообщений. Барьеры.
- •Проблемы межпроцессного взаимодействия. Проблема обедающих философов. Проблема читателей и писателей. Проблема спящего брадобрея. Решения проблем.
- •Планирование в системах пакетной обработки данных. Планирование в системах реального времени. Примеры планирования.
- •Планирование в интерактивных системах. Примеры планирования.
- •Взаимоблокировка. Алгоритмы обнаружения и устранения взаимоблокировок. Пример работы алгоритмов.
- •Взаимоблокировка. Алгоритмы избежания взаимоблокировок. Пример работы алгоритмов.
- •Взаимоблокировка. Алгоритмы предотвращения взаимоблокировок. Пример работы алгоритмов.
- •Взаимоблокировка. Двухфазное планирование. Тупики без ресурсов. Голодание.
- •Проблемы управления памятью. Управление памятью в однозадачных системах. Управление памятью в многозадачных системах.
- •Проблемы управления памятью. Моделирование многозадачности. Примеры алгоритмов управления памятью.
- •Алгоритмы подкачки для управления памятью. Примеры работы алгоритмов.
- •Принципы управления памятью с помощью таблицы страниц. Tlb буфер. Пример страничной организации памяти.
Ресурсы. Виды ресурсов. Примеры ресурсов.
Ресурс-это все что потребуется для работы программы.
Ресурсы бывают двух видов: выгружаемые и невыгружаемые. К выгружаемым относятся такие ресурсы, которые могут быть безболезненно отобраны у процесса, который ими обладает. Примером такого ресурса может послужить память.
Примером такого ресурса может послужить память.
Рассмотрим систему, имеющую 256 Мбайт пользовательской памяти, один принтер и два процесса по 256 Мбайт, каждый из которых хочет что-то вывести на печать.Процесс А запрашивает и получает принтер, а затем начинает вычислять значение, предназначенное для вывода на печать. Но до завершения вычисления истекает выделенный ему квант времени, и он выгружается на диск. 6.1. Ресурсы 509 Теперь запускается процесс В, безуспешно пытаясь завладеть принтером. Потенциально возникает ситуация взаимоблокировки, поскольку у процесса А есть принтер, а у процесса В — память, и ни один из них не может продолжить свою работу без ресурса, удерживаемого другим процессом. К счастью, есть возможность отобрать память у процесса В, выгрузив этот процесс на диск, и загрузить оттуда процесс А. Теперь А может возобновить свою работу, выполнить распечатку и высвободить принтер. И никакой взаимоблокировки не возникнет.
А вот невыгружаемый ресурс нельзя отобрать у его текущего владельца, не
вызвав сбоя в вычислениях. Если у процесса, который уже приступил к записи на компакт-диск, внезапно отобрать пишущий привод и отдать его другому процессу, то это приведет к порче компакт-диска. Пишущие приводы компакт-дисков нельзя отобрать в произвольный момент.
Потоки. Реализация потоков в ос Windows и Unix. Планировщик потоков.
Потоки - это отдельно выделенная подзадача .
потоки реализуются в 3 вариантах на уровне пользователя, смешанный вариант, ядро операционной системы. Это значит , что ос знает, что такое поток,потоки создаются, удаляютсяв зависимости от системных вызовов
(так работает Windows)
Пданирование происходит на уровне процессов при этом время выделяется на все потоки одновременно.
Реализация потоков на уровне пользователей(так устроен Unix).Считается, что пользователь лучше знает, сколько времени нужно выделить на поток.
Планировщик потоков содержит очереди потоков, готовых к выполнению. Для каждого приоритета - своя очередь. Когда поток готов к выполнению (ready for execution) - то есть не находится внутри Sleep() или WaitForObject() - система помещает его в очередь потоков соответствующего приоритета. Планировщик просматривает все очереди, начиная с самого высокого приоритета. Как только находит непустую очередь, он выдает один time slice первому потоку, перемещает его в конец очереди, и начинает просмотр сначала. Планировщик даже не будет просматривать очереди с меньшим приоритетом, пока есть непустые очереди с большим приоритетом.
Межпроцессное взаимодействие. Критическая секция. Примеры межпроцессного взаимодействия.
Связанные процессы, совместно работающие над выполнением какой-нибудь задачи, зачастую нуждаются в обмене данными друг с другом и в синхронизации своих действий. Такая связь называется
межпроцессным взаимодействием.
Та часть программы, в которой используется доступ к общей памяти, называется критической областью или критической секцией.
Временами возникает потребность в передаче информации запущенному
процессу, который не находится в состоянии ожидания этой информации. Можно привести в пример процесс, который обменивается информацией с другим процессом, запущенным на другом компьютере, и посылает удаленному процессу сообщение по сети. Чтобы обезопаситься от возможной утраты сообщения или ответа на него, отправитель может запросить свою собственную операционную систему уведомить его по истечении определенного интервала времени, чтобы он мог повторно отправить сообщение, если ранее не получит подтверждения его получения. После установки такого таймера программа может продолжить
выполнение другой работы.