
- •1.Лекция 1.Операционная система. Введение
- •1.1.Структура вычислительной системы
- •1.2.Что такое операционная система
- •1.2.1. Операционная система как виртуальная машина.
- •1.2.2.Операционная система как менеджер ресурсов
- •1.2.3.Операционная система как защитник пользователей и программ
- •1.2.4.Операционная система как постоянно функционирующее ядро
- •1.3.История эволюции вычислительных систем
- •1.3.1.Первый период (1945–1955 гг.). Ламповые машины. Операционных систем нет
- •1.3.2.Второй период (1955 г.–начало 60-х). Компьютеры на основе транзисторов. Пакетные операционные системы
- •1.3.3.Третий период (начало 60-х – 1980 г.). Компьютеры на основе интегральных микросхем. Первые многозадачные ос
- •1.3.4.Четвертый период (с 1980 г. По настоящее время). Персональные компьютеры. Классические, сетевые и распределенные системы
- •1.4. Функции операционной системы.
- •1.5.Основные понятия, концепции ос
- •1.5.1.Системные вызовы
- •1.5.2.Прерывания
- •1.5.3.Исключительные ситуации
- •1.5.4.Файлы
- •1.6.Архитектурные особенности ос
- •1.6.1.Монолитное ядро
- •1.6.2.Многоуровневые или слоеные системы (Layered systems)
- •1.6.3.Виртуальные машины
- •1.6.4.Микроядерная архитектура
- •1.6.5.Смешанные системы
- •1.7.Классификация операционных систем
- •1.7.1.Реализация многозадачности
- •1.7.2.Поддержка многопользовательского режима
- •1.7.3.Многопроцессорная обработка
- •1.7.4.Системы реального времени
- •2 Процессы
- •2.1.Понятие процесса
- •2.2.Состояния процесса
- •2.3.Операции над процессами и связанные с ними понятия
- •2.3.1.Набор операций
- •2.3.2.Блок управления процессом (рсв Process Control Block) и контекст процесса
- •2.3.3.Одноразовые операции
- •2.3.4.Многоразовые операции
- •2.3.5.Переключение контекста
- •2.3.7.Нити исполнения
- •2.4.Заключение
- •3. Планирование процессов
- •3.1.Уровни планирования
- •3.2.Цели планирования
- •3.4. Критерии планирования
- •3.5.Вытесняющее и не вытесняющее планирование
- •3.5.Алгоритмы планирования
- •3.5.1.Планирование по принципу fifo
- •3.5.2.Циклическое планирование)
- •3.5.3. Планирование по принципу кратчайшее задание - первым
- •3.5.4.Гарантированное планирование
- •3.5.5.Приоритетное планирование
- •3.5.6.Многоуровневые очереди (Multilevel Queue)
- •3.5.7.Многоуровневые очереди с обратной связью (Multilevel Feedback Queue)
- •3.6.Заключение
- •4. Лекция: Кооперация процессов и основные аспекты ее логической организации
- •4.1.Взаимодействующие процессы
- •4.2.Средства обмена информацией
- •4.3.Логическая организация механизма передачи информации
- •4.4.Информационная валентность процессов и средств связи
- •4.5.Особенности передачи информации с помощью линий связи
- •4.5.1.Буферизация
- •4.5.2.Поток ввода/вывода и сообщения
- •4.5.3.Надежность средств связи
- •4.5.4.Завершение связи
- •4.6.Нити исполнения
- •4.7.Заключение
3.5.Вытесняющее и не вытесняющее планирование
Существует четыре возможных случая смены состояний процесса в результате планирования:
процесс переводится из состояния «исполнение» в состояние «закончил исполнение».
процесс переводится из состояния «исполнение» в состояние «ожидание».
процесс переводится из состояния «исполнение» в состояние «готовность»
процесс переводится из состояния «ожидание» в состояние «готовность».
В первых двух случаях операционная система вынуждена выбрать новый процесс, поскольку он не может продолжить свое исполнение. Данный вид планирования называется невытесняющим. В последних двух случаях операционная система может приостановить работу процесса и выбрать новый процесс для исполнения или разрешить процессу работать дальше, поскольку процесс может без прерывания продолжить свою работу. Планирование в в случае приостановке работы процеса называется вытесняющими.
У невытесняющего алгоритма до минимума сокращены затраты на переключение контекста. Он эффективен и прост в реализации. К недостатку метода относится возможность зацикливания в результате захвата процессора одним процессом. В этом случае производится перезагрузка всей вычислительной системы.
Вытесняющее планирование используется в системах разделения времени. Операционная система использует таймер для генерации сигнала прерывания по истечении кванта времени. По сигналу прерывания процессор передается в распоряжение следующему процессу. Каждому процессу гарантируется процессорное время, что предотвращает зависание в результате зацикливания какой-либо программы.
3.5.Алгоритмы планирования
В настоящее время существует множество алгоритмов планирования. Ниже приведены наиболее распространенные алгоритмы
3.5.1.Планирование по принципу fifo
Наиболее простым и легким является алгоритм FIFO (первый пришедший обслуживается первым). По данному алгоритму из очереди процессов, находящихся в состоянии «готовность», в состояние «исполнение» выбирается процесс из начала очереди. Очередь выстраивается в порядке прихода процессов в очередь готовности. Процесс использует процессор до завершения своей работы. По окончании выбирается новый процесс из начала очереди. Используется невытесняющее планирование. Недостатком метода является то, что длинные задания заставляют ждать короткие, менее важные задания более важные. Его не рекомендуется использовать при интерактивной работе. В современных системах он редко используется самостоятельно, но часто комбинируется с другими схемами
3.5.2.Циклическое планирование)
При циклическом планирование диспетчирование процессов осуществляется по методу FIFO, однако каждый раз процессу предоставляется ограниченное количество времени, называемому квантом. Если процесс не заканчивается до истечения выделенного ему кванта времени, то процессор у него отбирается и предоставляется следующему ожидающему процессу. Процесс, у которого перехватили ЦП, переходит в конец списка готовых к выполнению процессов.
При больших величинах кванта времени, процесс может завершиться до окончания выделенного ему времени и алгоритм циклического планирования вырождается в алгоритм FIFO. При малых величинах кванта времени каждый из n процессов работает с производительностью ~ 1/n от производительности реального процессора. Это справедливо при пренебрежении времени переключения контекста процессов. Частое переключение контекста увеличивает накладные расходы системы на переключение. Производительность системы резко падает.