- •Понятие процесс, представление процесса, управление процессом
- •Создание процесса
- •Связь между процессами
- •Критические ресурсы. Конфликты между процессами и методы их решения.
- •Выделение памяти динамическими разделами
- •Виртуальная память и способы ее реализации
- •Механизм страничной виртуальной памяти
- •Сегментная организация виртуальной памяти
- •Файловая система
- •Управление процессами windows
- •Свопинг
Создание процесса
Процесс всегда создается неким уже существующим процессом. Для этого используется системный вызов (folk). ОС создает дескриптор нового процесса, новому процессу назначается уникальный номер, получает приоритет, создается образ процесса (копия). На втором этапе происходит замена кодового сегмента образа на содержимое заданного программного файла. В последствии вновь созданный процесс может создать новый процесс. в результате возможно появление целого древа процессов. Обычно процесс завершается после выполнения всех команд, после чего ОС забирает у процесса все занятые им ресурсы. Однако, если он породил какие-то процессы то он дожидается их завершения, после чего завершается и сам. Однако в ОС есть средства для принудительного завершения процесса. В убунте это команда kill. Обычно у процесса 3 варианта реакции на такую команду: игнор, вызов программы обработчика и завершение (не дожидаясь порожденных процессов). С другой стороны информация об убитом процессе может оставаться в учетной структуре ОС. Это процессы-зомби.
Связь между процессами
Поскольку ОС изолирует влияние одного процесса на другой, то любое потенциальное взаимодействие между процессами может осуществляться только посредством самой ОС. Были предложены механизмы:
Механизм сигнала (один процесс посылает сигнал посредством ОС, а другой получает и как то реагирует)
Каналы (фактически это некоторый файл, созданный ОС и обрабатывается в дисциплине очереди (процесс-писатель посылает данные в канал, а процесс-читатель считывает данные с канала) для общения через канал процессы должны знать номер канала).
Использование участков общей памяти (почтовые ящики) (взаимодействие происходит так: процесс писатель заносит данные в участок новой памяти, а процессы-читатели считывают их.
Стратегия выделения процессорного времени.
За период развития ОС эти стратегии усложнялись. Принцип выделения в однозадачной ОС был наиболее простым. ОС запускала код программы, после чего программа полностью завершает и отдает ресурсы ОС. В последствии, с появлением многозадачных ОС принцип передачи управления работающей программе, какое то время оставался. Такого рода ОС назывались ОС с не вытесняющей многозадачностью. Примеры винда 3.1. в таких ос если программа получила управление, то она получала процессор до тех пор пока она самостоятельно не возвращала возращение ОС. Любая программа в таких ос должна вести себя цивилизованно. В случае краха активной программы происходит крах всей ОС. В ос с не вытесняющей многозадачностью есть 2 плюса: более легкое проектирование, для некоторого класса задач желательно, что бы сама активная программа определяла сама момент передачи управления обратно в ос. Примерами таких задач являются задачи реального времени, когда программа выполняет управление некоторым внешним объектом.
Второй вариант управления процессорным временем это вытесняющая многозадачность. Когда сама ОС по завершению кванта, выделенного активному процессу, снимает его с выполнения, если он ещё не завершился. Практически все современные ОС следуют этому принципу. Они обеспечивают более надежное выполнение вычислительных действий, и крах процесса не ведет к краху ос.
