- •Основные понятия и концепции ос
- •Классификация ос
- •Управление процессами
- •Операции над процессом
- •13092012 Лекция 2
- •Алгоритмы планирования
- •Средства взаимодействия и синхронизации процессов
- •Синхронизация процессов
- •20092012 Лекция 3 Взаимоблокировки
- •Ликвидация взаимоблокировок
- •Неделимые транзакции
- •04102012 Лекция 4 Архитектура и управление процессами в ос семейства Windows
- •11102012 Лекция 5 Синхронизация потоков
- •Архитектура и процессы unix
- •Управление процессами
- •Создание новых процессов
- •18102012 Лекция 6 Межпроцессное взаимодействие
- •Файловая система
- •Структуризация файлов
- •25102012 Лекция 7 Адресация доступа к файлам
- •Операции над файлами
- •Обобщенная модель файловой системы
- •Отображаемые в память файлы
- •Современная архитектура файловых систем
- •Файловые системы Windows
- •01112012 Лекция 8 Файловая система fat
- •Файловая система ntfs
- •081112 Лекция 9
- •Файловые системы unix Традиционная фс s5
- •Виртуальная фс vfs (Virtual File System)
- •Монтирование файловых систем vfs
- •15112012 Лекция 10 Управление вводом/выводом
- •Драйверы устройств
- •Система ввода/вывода unix
- •29112012 Лекция 11 Подсистема ввода/вывода Windows
- •06122012 Лекция 12 Основные процедуры драйверов устройств
- •Процедуры обслуживания прерывания isr (interrupt Service Routine)
- •Дерево устройств
- •Диспетчер электропитания
- •13122012 Лекция 13 Основные требования ос
- •Множественные прикладные среды
- •Способы построения множественных прикладных сред
- •Реализация множества прикладных средств в Windows системах
Управление процессами
Процесс – это абстракция, описывающая выполняющую программу. Для ОС процесс – это единица работы и заявка на потребление системных ресурсов.
В многозадачной среде процесс может находиться в нескольких основных состояниях: ожидание, выполнение и готовности.
Жизненный цикл начинается с готовности, затем выполнения, а потом остальное.
Состояние операционной среды процессов отражается состояние регистров и программного счетчика, режимом работы процессора, указателями на открытые файлы, информации о незавершенных операциях ввода\вывода, кодами ошибок выполняемых системных вызовов. Оно хранится в специальной структуре, называемой контекстном процессов. Структура хранения, поля и реализация зависит от ОС.
В совокупности структура данных, в которой хранится вся информация, необходимая для выполнения процесса, называется блок выполнения процесса или PCB – Process Control Block. Делится на две части:
1.Содержимое всех регистров (или регистровый контекст процессов)
2.Всё остальное (или системный контекст процессов).
Код и данное, находящиеся в адресном пространстве процесса, называется его пользовательским контекстом.
Дескриптором процессов (handle) называется структура, включающая идентификатор процесса, состояние, привилегии и место нахождения кодовых процессов. Дескриптор – описатель процесса.
Очереди процессов представляют собой списки их дескрипторов.
Операции над процессом
Операция создания процессов. Создать процесс значит : создать информационные структуры его описывающие – включить дескриптор нового процесса в очередь готовых – загрузить кодовый сегмент в ОП.
Приостановка процесса. Переход из состояния исполнения в состояние готовности. При этому сохраняется счётчик команд и регистр стека исполняемого процесса.
Запуск процесса – обратное приостановке процесса.
Блокировка процесса (переход из исполнения в ожидание). При этом возникает системный вызов, при необходимости сохраняется контекст и происходит смена процесса на выполнение.
Разблокировка – обратное блокировке (из ожидания в готовность).
Завершения процесса – уничтожение описывающих структур и освобождение памяти.
13092012 Лекция 2
Рисунок 1 – Переключение процессов
Алгоритмы планирования
Планирование включает в себя решение задач:
Определение момента времени для смены выполняемого процесса
Выбор процесса на выполнение из очереди готовых
Переключение контекстов
Классификация алгоритмов планирования:
Бесприоритетные – на квантование
Линейные
В порядке очереди
Случайно
Циклические
Приоритетные
С фиксированными приоритетами
Относительные приоритеты
Абсолютные приоритеты
Адаптивное обслуживание
С динамическими приоритетами
Приоритет зависит от времени ожидания
Приоритет зависит от времени обслуживания
Алгоритм, основанный на квантовании, меняет выполняющийся процесс при его завершении, ошибке, переходе в состояние ожидания или завершении кванта времени, отведенному ему.
Кванты могут быть одинаковыми для всех процессов или различными, фиксированными или динамическими.
Приоритетные алгоритмы могут снимать процесс с выполнения при появлении более приоритетной заявки (абсолютный приоритет). Относительный приоритет влияет только на порядок выбора из очереди.
Приоритет может назначаться директивно или вычисляться ОС по заданными правилам. Может быть фиксированным или динамическим.
Потоки
Thread (поток) – это часть процесса, способная выполняться квазипараллельно с другими потоками одного процесса. Каждый поток имеет свой собственный программный счётчик, стек, регистры, потомков и состояния. В рамках процесса потоки разделяют адресное пространство, глобальные переменные, открытые файлы, таймеры, семафоры и статистическую информацию.
Как может быть организован вычислительный процесс с помощью потоков:
Модель «Диспетчер»
Модель «Команда»
Модель «Конвейер»
Потоки могут быть реализованы статически, когда их количество и задачи определяются на этапе написания программы, или динамически, по ходу выполнения. Завершаются потоки по своей инициативе или извне (например, породивший их процесс завершен).
Многопоточная обработка может быть реализована в пользовательском пространстве или в пространстве ядра.
