Содержание
- 2. Процесс Определения: Это программа в состоянии выполнения Объект, выполняемый на процессоре Процессы – фундаментальное понятие в
- 3. Процесс 2 Процесс состоит из трех основных компонент Исполняемого программного кода Ассоциированных с ним данных, необходимых
- 4. Образ процесса Это выделенное место в памяти Каждый процесс выполняется в собственном виртуальном адресном пространстве, которое
- 5. Структуры управления процессом Таблица процессов. Одна запись на каждый процесс Блок управления процессом: Process Control Block
- 6. Process Control Block Содержит всю информацию, необходимую для приостановки и последующего возобновления процесса Идентификатор процеса №
- 7. Диспетчеризация «Диспетчер» отправляет процессы на выполнение: выделяет время ЦП, переключает ЦП с одного процесса на другой
- 8. Модель состояний процесса 1 Можно выделить три основных состояния Выполнения (исполняется на ЦП) Готовности (временно остановлен)
- 9. Модель состояний процесса 2 Модель из пяти состояний Новый: процесс создан, но ещё не помещён операционной
- 10. Планирование процессов В ОС есть различные очереди (или списки) для планирования процессов Очередь задач: множество всех
- 11. Управление процессами Используется одна очередь «готовых» и одна очередь «заблокированных» Недостатки: При наступлении события, все ожидающие
- 12. Создание процесса Загрузка системы При инициализации системы создаются несколько процессов В Unix, это процессы «демоны» sched
- 13. Создание процесса 2 Присвоить уникальный идентификатор новому процессу Выделить место для процесса Программа, данные, стэк Инициализировать
- 14. Иерархия процессов (UNIX) Строгая иерархия между процессами: дочерний и родительский процессы всегда взаимосвязаны Группы процессов Напр.
- 15. Иерархия процессов (Windows) Её нет. Все равны. Хэндл процесса: когда новый процесс создаётся родительским, то родитель
- 16. Создание процесса (UNIX) Процессы создаются через fork() / exec() fork() создаёт точный клон вызывающего процесса, т.н.
- 17. Создание процесса (UNIX) 2 Адресное пространство родителя (код, статические данные, куча, стэк) Родительский PCB Адресное пространство
- 18. Создание процесса (UNIX) 3 Как же создать новую программу, а не ещё одну копию старой? «Легко».
- 19. Что в Linux? clone() заменяет fork() (и vfork() тоже). У clone() есть дополнительные опции. Но всё-равно
- 20. Создание процесса (NT) Процессы создаются через системный вызов NtCreateProcess().
- 21. Переключение между процессами При необходимости переключиться на другой процесс, ОС выполняет «переключение контекста» Состояние старого процесса
- 22. Переключение контекста События, вызывающие переключение контекста: Прерывания Исключения Системные вызовы
- 23. Потоки (нити) Процесс состоит как минимум из: Адресного пространства Набор инструкций (код) программы Данные для программы
- 24. Потоки, зачем они нужны Потоки – для параллелизма и одновременности. Параллелизм – это физически одновременное выполнение
- 25. Параллелизм Возьмём пример про веб-сервер со слайда 12, который должен обслуживать несколько запросов параллельно Ожидая данных
- 26. Параллелизм 2 В каждом из этих примеров параллелизма есть общее: Один код Доступ к одним данным
- 27. Параллелизм 3 Как этого достичь? Используя знания о процессах, можно fork-нуть несколько процессов Заставить каждый из
- 28. Решение – потоки! Основная мысль отделить понятие процесса (адресного пространства, ресурсов ОС) от Минимальной нити, потока
- 29. Потоки и процессы Большинство современных ОС поддерживает два объекта: Процесс, который определяет адресное пространство и общие
- 30. Потоки и процессы 2 Многопоточность полезна для: Обработки одновременных событий Построения параллельных программ Поддержка многопоточности –
- 31. Потоки и процессы 3 Раньше: «процесс» = адресное пространство + ресурсы ОС + подразумевался единственный поток
- 32. Потоки режима ядра и пользователя На уровне ядра Есть функция ядра для создания нового потока Выделяет
- 33. Потоки режима пользователя Библиотека pthreads Каждый поток представляется регистром PC, остальными регистрами ЦП, стэком и небольшим
- 34. Сравнение производительности По данным Gribble, Lazowska, Levy, Zahorjan из Университета им. Вашингтона: Создание потока режима ядра
- 36. Скачать презентацию