- •Часть 1
- •1. Что такое ос? Основная задача и основные функции.
- •2. Базовые понятия ос
- •3. Понятие Виртуальной Машины (вм).
- •9. Образ процесса
- •10. Базовые функции ос и функции ядра
- •11. Что представляет собой ядро ос
- •12. Вспомогательные модули.
- •13. Классификация ос по назначению и по режиму обработки задач
- •14. Классификация ос по способу взаимодействия с системой
- •15. Классификация ос по способу построения ос
- •22. Монолитная ос
- •23. Структура монолитной ос Структура монолитной ос
- •24. Классическая структура ос
- •27. Системный вызов
- •28. Понятие процесса
- •29. Режимы функционирования процессов.
- •30. Системная таблица процессов.
- •31. Создание процесса.
- •32. Состояния процесса
- •33. Иерархия процессов.
- •34. Завершение процесса.
- •Плановый выход по известной ошибке
- •Выход по неисправимой ошибке
- •Уничтожение другим процессом
- •35. Основные характеристики процесса.
- •36. Понятие потока. Модель потока
- •37. Преимущества использования потоков.
- •38. Реализация потоков в пространстве пользователя
- •39. Реализация потоков в пространстве ядра.
- •40. Различия между процессами и потоками.
- •41. Преимущества процессов над потоками
33. Иерархия процессов.
В UNIX-подобных системах заложена жесткая иерархия процессов. Новый процесс создается системным вызовом fork и является дочерним процессом предыдущему процессу. Дочернему процессу достается от родительского переменные, регистры и т. д. После вызова fork, как только родительские данные скопированы, последующие изменения в первом процессе не влияют на другой, но процессы «помнят» о том, какой процесс являлся для него родительским. В UNIX существует прародитель всех процессов – процесс init.
В отличие от UNIX-подобных систем, в WINDOW’s нет понятия иерархии процессов, но в этой системе можно задать специальный маркер родительскому процессу, который будет контролировать дочерний процесс и таким образом искусственно создать некое подобие иерархии в процессах.
34. Завершение процесса.
Для завершения процесса используется системный вызов EXIT, EXITPROCESS, при котором освобождаются все используемые ресурсы, т. е. память, структуры таблиц ядра, завершаются процессы-потомки, порожденные данным процессом.
Из памяти удаляются сегменты кода и данных, а сам процесс переходит в состояние «зомби». Это состояние отражается в таблице процессов в поле stat буквой Z. Такие процессы не занимают процессорного времени, но строка в таблице процессов остается, и соответствующие структуры ядра не освобождаются.
После завершения родительского процесса зомби на некоторое короткое время становится потомком процесса init, а затем уже окончательно умирает.
После этого родительский процесс должен очистить все ресурсы, занимаемые дочерними процессами.
Если родительский процесс по какой-либо причине завершится раньше дочернего, то дочерний процесс становится «сиротой». Такие процессы автоматически «усыновляются» программой init, которая выполняется самой первой и принимает сигналы о завершении этих процессов. Процесс может «впасть в сон», который невозможно прервать. В поле stat это состояние обозначается буквой D. Процесс, который находится в таком состоянии, не реагирует на системные запросы и может быть уничтожен только перезагрузкой системы.
События, приводящие к остановке процесса.
Плановое завершение процесса
Плановый выход по известной ошибке
Выход по неисправимой ошибке
Уничтожение другим процессом
Приостановленный процесс состоит из собственного адресного пространства (образа памяти) и компонентов таблицы процессов.
35. Основные характеристики процесса.
-Процесс владеет определенными ресурсами, он размещен в некотором виртуальном адресном пространстве, содержащем образ процесса, и управляет другими ресурсами.
-Процесс подвержен диспетчеризации, т. е. определяется порядок выполнения одной или нескольких программ, при этом каждый процесс имеет состояние выполнения и приоритет диспетчеризации.
Для многозадачной системы реальный процессор переключается с процесса на процесс, но для упрощения модели рассматривается набор процессов, идущих параллельно и называются псевдопараллельными процессами.
В каждый момент времени работает только один процесс.
Параллельная модель независимых последовательных процессов.
Для каждого процесса существует 4 счетчика команд ( на самом деле физический счетчик команд существует один единственный и переключения происходят по времени:
Когда время, отведенное текущему процессу, заканчивается, физический счетчик команд сохраняется в памяти в логическом счетчике команд процесса.