Изучение ос linux и работа с процессами. Системная функция Fork. Цель лабораторной работы



бет1/2
Дата26.01.2023
өлшемі48 Kb.
#166512
  1   2
Байланысты:
Лабораторная работа №3


Изучение ОС Linux и работа с процессами. Системная функция Fork.

Цель лабораторной работы: Изучение алгоритма функции Fork в ОС Linux. Порождение процессов и потоков и их синхронизация. Программирование на языке Си в ОС Linux.
Для нормального функционирования процессов операционная система старается максимально обособить их друг от друга. Каждый процесс имеет свое собственное адресное пространство, нарушение которого, как правило, приводит к аварийной остановке процесса. Каждому процессу, по возможности, предоставляются свои собственные дополнительные ресурсы. Тем не менее, для решения некоторых задач процессы могут объединять свои усилия. Причины, по которым взаимодействуют процессы, способы их взаимодействия и возникающие при этом проблемы.
Для достижения поставленной цели различные процессы (возможно, даже принадлежащие разным пользователям) могут исполняться псевдопараллельно на одной вычислительной системе или параллельно на разных вычислительных системах, взаимодействуя между собой.
Процессы не могут взаимодействовать не общаясь. Общение процессов обычно приводит к изменению их поведения в зависимости от полученной информации. Если деятельность процессов остается неизменной при любой принятой ими информации, то это означает, что они на самом деле не нуждаются во взаимном общении. Процессы, которые влияют на поведение друг друга путем обмена информацией, принято называть кооперативными или взаимодействующими процессами, в отличие от независимых процессов, не оказывающих друг на друга никакого воздействия и ничего не знающих о взаимном сосуществовании в вычислительной системе.
Различные процессы в вычислительной системе изначально представляют собой обособленные сущности. Работа одного процесса не должна приводить к нарушению работы другого процесса. Для этого, в частности, разделены их адресные пространства и системные ресурсы, и для обеспечения корректного взаимодействия процессов требуются специальные средства и действия операционной системы. Нельзя просто поместить значение, вычисленное в одном процессе, в область памяти, соответствующую переменной в другом процессе, не предприняв каких-либо дополнительных организационных усилий. Давайте рассмотрим основные аспекты организации совместной работы процессов.
Системный вызов fork(). В операционной системе Linux новый процесс может быть порожден единственным способом - с помощью системного вызова fork(). При этом вновь созданный процесс будет являться практически полной копией родительского процесса. У порожденного процесса по сравнению с родительским процессом (на уровне уже полученных знаний) изменяются значения следующих параметров:



    • идентификатор процесса - PID;

    • идентификатор родительского процесса - PPID;

Дополнительно к ним может измениться поведение порожденного процесса по отношению к некоторым сигналам.


Достарыңызбен бөлісу:
  1   2




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет