Процессы

В роли задач в UNIX выступают процессы. Процесс - это программа, запущенная пользователем, которая находится в памяти и, как полагается задаче, потребляет ресурсы: выполняется, требует памяти, обменивается данными с системой, внешними устройствами и другими процессами. При запуске процесс получает уникальный идентификатор процесса (Process IDentifier, PID), по которому он становится доступен другим процессам и планировщику. Планировщик процессов в UNIX устроен сложнее, чем описано в лекции 4. Наше описание предельно упрощено, а полностью разобраться в планировании процессов поможет [ 6 ]. Главное отличие планировщика UNIX заключается в том, что каждая задача из очереди работает в течение всего отведенного ей промежутка времени, только если ей есть чем заняться. Если задача к этому времени работать не может (например, ожидает завершения операции ввода/вывода, или сигнала, или освобождения какого-либо ресурса), она из начала очереди перемещается в конец "очереди для тех, кто без очереди" или очереди "спящих" задач. Как только какая-нибудь задача из очереди спящих просыпается, ей тут же отводится место в начале обычной очереди. Таким образом максимально сокращается время простоя (idle) системы, если, конечно, выполняемых задач достаточно для того, чтобы полностью ее загрузить. Сверх того процессы в UNIX могут иметь разные приоритеты, сообразно которым идет планирование очередного запуска процесса (например, полностью отработав свой промежуток времени, процесс может помещаться не в конец очереди).

Между собой процессы могут обмениваться данными не только стандартными пользовательскими средствами (посредством файлов, каналов или сокетов (о двух последних читайте в [ 35 ]), но и с помощью более быстрых системных, именуемых средствами межпроцессного взаимодействия (Interprocess Communication, IPC). Процессы могут заказать у системы общую память (тогда часть адресного пространства каждого будет ссылаться на один и тот же кусок реальной памяти), для индикации занятости ресурса использовать семафор (система гарантирует, что запрошенный ресурс действительно будет свободен, пока процесс не откроет семафор) и посылать друг другу сигналы и сообщения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: