Содержание
- 2. Содержание курса Процессы Модель процесса Создание, завершение процесса Иерархии, состояния, реализации процессов Потоки Применение потоков Классическая
- 3. Процесс Процесс – абстрактное понятие, описывающие работу программы. В современных ОС многозадачность реализована за счет предоставления
- 4. Модель процесса Все ПО исполняемое на компьютере, а иногда и операционная система, организовано в виде последовательных
- 5. Модель процесса (2) Концептуальная модель четырех независимых друг от друга последовательных процессов. Четыре программы, работающие в
- 6. Модель процесса (3) Центральный процессор переключается между процессами, следовательно, скорость вычислений процесса всегда будет разной. Процессы
- 7. Создание процесса В универсальных системах определенные способы создания и прекращения процессов по мере необходимости. Способы создания
- 8. Создание процесса. Инициализация операционной системы. При загрузке ОС создается несколько процессов. Процессы, обеспечивающие взаимодействие с пользователями
- 9. Создание процесса (системный вызов) Новый процесс формируется на основании системного запроса от текущего процесса. В роли
- 10. Создание процесса (системный вызов) В UNIX существует только один системный запрос: fork (ветвление). Этот запрос создает
- 11. Завершение процесса Завершение процесса: Обычный выход (преднамеренно); Выход по ошибке (преднамеренно); Выход по неисправимой ошибке (непреднамеренно);
- 12. Иерархия процессов В некоторых системах родительский и дочерний процессы остаются связанными между собой определенным образом. Дочерний
- 13. Иерархия процессов (2). Пример. В образе загрузки присутствует специальный процесс init. При запуске этот процесс считывает
- 14. Иерархия процессов (3). Пример. В Windows не существует понятия иерархии процессов, и все процессы равноправны. Единственное,
- 15. Состояние процессов
- 16. Состояние процессов Несмотря на самостоятельность каждого процесса, наличие собственного счетчика команд и внутреннего состояния, процессам зачастую
- 17. Состояние процессов (2) Возможны два вида блокировки процесса: Процесс блокируется с точки зрения логики приложения (из-за
- 18. Состояние процессов (диаграмма состояния) Три возможных состояния процесса: Работающий Готовый к работе Заблокированный
- 19. Переходы 2 и 3 вызываются планировщиком процессов Состояние процессов (диаграмма состояния)
- 20. Реализация процессов Для реализации модели процессов операционная система содержит таблицу процессов. В таблице содержится информация –
- 21. Реализация процессов (таблица процессов)
- 22. Реализация процессов (работа с внешними устройствами) С каждым классом устройств ввода-вывода связана область памяти называемая вектором
- 23. Реализация процессов (схема обработки прерываний) Аппаратное обеспечение сохраняет в стеке счетчик команд и т. п. Аппаратное
- 24. Моделирование многозадачности При использовании многозадачности повышается эффективность загрузки центрального процессора. Грубо говоря, если средний процесс выполняет
- 25. Моделирование многозадачности
- 26. Моделирование многозадачности (пример) Предположим, что компьютер имеет 2 Гб памяти, 1 Гб отдано операционной системе, а
- 27. Анализ производительности многозадачных систем
- 28. Поток
- 29. Потоки В обычных операционных системах каждому процессу соответствует адресное пространство и одиночный управляющий поток. Фактически это
- 30. Использование потоков Основной причиной использование потоков является выполнение большинством приложений существенного числа действий. В случае параллельных
- 31. Использование потоков (пример) Пользователь пишет книгу. С точки зрения автора проще всего хранить книгу в одном
- 32. Использование потоков (пример) (2)
- 33. Использование потоков. Пример. WEB-сервер. Способ организации web-сервера: Один поток, называемый диспетчером, считывает приходящие по сети запросы;
- 34. Использование потоков. Пример. WEB-сервер.
- 35. Использование потоков. WEB-сервер. Модель сервера. сервер создается в виде набора последовательных потоков. Программа диспетчера состоит из
- 36. Использование потоков. Пример (3) Сервер обработки данных. Способы конструирования сервера:
- 37. Классическая модель потоков
- 38. Модель потока Модель процесса, базируется на двух независимых концепциях: группирование ресурсов; выполнение программы.
- 39. Модель потока. Группировка ресурсов. Процесс можно рассматривать как способ объединения родственных ресурсов в одну группу. У
- 40. Модель потока. Выполнение программы. Процесс можно рассматривать как поток исполняемых команд или просто поток. Компоненты потока:
- 41. Модель потока (2)
- 42. Модель потока (3) Различные потоки в одном процессе не так независимы, как различные процессы. У всех
- 43. Модель потока (4)
- 44. Модель потока (5) Каждый поток обладает собственным стеком
- 45. Потоки в POSIX IEEE standard 1003.1с — стандарт создания переносимых многопоточных программ. Пакет Pthreads, реализует работу
- 46. Потоки в POSIX Функции пакета Ptheads
- 47. Реализация потоков Есть два основных способа реализации пакета потоков: в пространстве пользователя и ядре.
- 48. Реализация потоков (смешанная реализация)
- 49. Активация планировщика Цель активации планировщика заключается в имитации функциональных возможностей потоков на уровне ядра, но при
- 50. Активация планировщика При использовании активации планировщика ядро назначает каждому процессу определенное количество виртуальных процессоров, а системе
- 51. Всплывающие потоки Потоки часто используются в распределенных системах. Пример: обработка входящих сообщений. При поступлении сообщения система
- 52. Всплывающие потоки Создание нового потока при поступлении сообщения
- 53. Межпроцессорное взаимодействие
- 54. Межпроцессорное взаимодействие Процессам часто бывает необходимо взаимодействовать между собой. Например, в конвейере ядра выходные данные первого
- 55. Состояние состязания В некоторых операционных системах процессы, работающие совместно, могут сообща использовать некое общее хранилище данных.
- 56. Состояние состязания (2) Процессы находятся в состязательной ситуации. Пример №2. Студент в столовой.
- 57. Критические области. Состязания между процессами. Основным способом предотвращения любой ситуации, связанной с совместным использованием памяти, файлов
- 58. Критические области. Состязания между процессами. Формулировка состояния состязания: Некоторый промежуток времени процесс занят внутренними расчетами и
- 59. Критические области Для правильной совместной работы параллельных процессов и эффективного использования общих данных необходимо выполнение четырех
- 60. Критические области Взаимное исключение использования критических областей
- 61. Взаимное исключение с активным ожиданием Запрещение прерываний Переменные блокировки Строгое чередование Алгоритм Петерсона Команда TSL Семафоры
- 62. Взаимное исключение с активным ожиданием способы реализации
- 63. Запрещение прерываний Запрет всех прерываний при входе процесса в критическую область и разрешение прерываний по выходе
- 64. Запрещение прерываний (пример) Пример: процесс пользователя отключил все прерывания и в результате какого-либо сбоя не включил
- 65. Переменные блокировки Рассмотрим одну совместно используемую переменную блокировки, изначально равную 0. Если процесс хочет попасть в
- 66. Переменные блокировки (недостатки) Один процесс считывает переменную блокировки, обнаруживает, что она равна 0, но прежде, чем
- 67. Строгое чередование Третий метод реализации взаимного исключения.
- 68. Строгое чередование Переменная turn=0 отслеживает, чья очередь входить в критическую область. Вначале процесс 0 проверяет значение
- 69. Алгоритм Петерсона
- 70. Команда TSL Рассмотрим решение, требующее участия аппаратного обеспечения. Многие компьютеры, особенно разработанные с расчетом на несколько
- 71. Команда TSL
- 72. Примитивы межпроцессного взаимодействия Оба решения - Петерсона и с использованием команды TSL - корректны, но они
- 73. Примитивы межпроцессного взаимодействия. Пример. Этот алгоритм не только бесцельно расходует время процессора, но, кроме этого, он
- 74. Примитивы межпроцессного взаимодействия Теперь рассмотрим некоторые примитивы межпроцессного взаимодействия, применяющиеся вместо циклов ожидания, в которых лишь
- 75. Семафоры В 1965 году Дейкстра (Е. W. Dijkstra) предложил использовать целую переменную для подсчета сигналов запуска,
- 76. Семафоры. Операции: down и up. Операция down сравнивает значение семафора с нулем. Если значение семафора больше
- 77. Мьютексы Иногда используется упрощенная версия семафора, называемая мьютексом (mutex, сокращение от mutual exclusion - взаимное исключение).
- 78. Мьютексы Мьютекс - переменная, которая может находиться в одном из двух состояний: блокированном или неблокированном. Для
- 79. Мониторы В 1974 году Хоар (Ноаге) и Бринч Хансен (Brinch Hansen) предложили примитив синхронизации более высокого
- 80. Передача сообщений Этот метод межпроцессного взаимодействия использует два примитива: send и receive, которые скорее являются системными
- 81. Барьеры Последний из рассмотренных нами механизмов синхронизации предназначался скорее для групп процессов, нежели для ситуаций с
- 82. Планирование
- 83. Поведение процесса Практически все процессы чередуют периоды вычислений с операциями ввода-вывода. Обычно процессор некоторое время работает
- 84. Когда планировать ? Ключевым вопросом планирования является выбор момента принятия решений. Оказывается, существует множество ситуаций, в
- 85. Когда планировать ? (2) Алгоритмы планирования можно разделить на две категории согласно их поведению после прерываний.
- 86. Категории алгоритмов планирования В различных средах требуются различные алгоритмы планирования. Это связано с тем, что различные
- 87. Категории алгоритмов планирования В системах пакетной обработки нет пользователей, сидящих за терминалами и ожидающих ответа. В
- 88. Категории алгоритмов планирования В интерактивных системах необходимы алгоритмы планирования с переключениями, чтобы предотвратить захват процессора одним
- 89. Категории алгоритмов планирования В системах с ограничениями реального времени приоритетность, как это ни странно, не всегда
- 90. Задачи алгоритмов планирования Все системы Равнодоступность — предоставление каждому процессу справедливой доли времени центрального процессора. Принуждение
- 91. Планирование в системах пакетной обработки заданий «Первым пришел – первым ушел»
- 92. «Первым пришел – первым ушел» Алгоритм без переключений «первым пришел - первым обслужен» является, пожалуй, самым
- 93. «Кратчайшая задача - первая» Рассмотрим еще один алгоритм без переключений для систем пакетной обработки, предполагающий, что
- 94. Наименьшее оставшееся время выполнения Версией предыдущего алгоритма с переключениями является алгоритм наименьшего оставшегося времени выполнения. В
- 95. Трехуровневое планирование Системы пакетной обработки позволяют реализовать трехуровневое планирование. По мере поступления в систему новые задачи
- 96. Трехуровневое планирование (2)
- 97. Планирование в интерактивных системах Циклическое планирование Приоритетное планирование Несколько очередей «Самый короткий процесс – следующий» Гарантированное
- 98. Циклическое планирование Одним из наиболее старых, простых, справедливых и часто используемых является алгоритм циклического планирования. Каждому
- 99. Приоритетное планирование Необходимость принимать во внимание подобные внешние факторы приводит к приоритетному планированию. Основная идея проста:
- 100. Приоритетное планирование (2)
- 101. Несколько очередей Один из первых приоритетных планировщиков был реализован в системе CTSS (compatible time-shared system -
- 102. «Самый короткий процесс – следующий» Поскольку алгоритм «Кратчайшая задача – первая» минимизирует среднее оборотное время в
- 103. Гарантированное планирование Принципиально другим подходом к планированию является предоставление пользователям реальных обещаний и затем их выполнение.
- 104. Лотерейное планирование Хотя идея обещаний пользователям и их выполнения хороша, но ее трудно реализовать. Для более
- 105. Справедливое планирование До сих пор мы предполагали, что каждый процесс управляется независимо от того, кто его
- 106. Планирование в системах реального времени Системы реального времени делятся на жесткие системы реального времени, что означает
- 107. Планирование в системах реального времени (2) Внешние события, на которые система должна реагировать, можно разделить на:
- 109. Скачать презентацию