ТОПП: независимые и взаимодействующие процессы, понятие ресурса и критического ресурса.

Процессы называются независимыми, множества переменных которых не пересекаются.
Взаимодействующие процессы совместно используют несколько общих переменных, и выполнение одного процесса может повлиять на выполнение другого.
Ресурсы, которые не допускают одновременного использования несколькими процессами называются критическими. Если нескольким вычислительным процессам необходимо пользоваться критическим ресурсом, то им следует синхронизировать свои действия т.о., чтобы ресурс всегда находился в распоряжении не более чем одного из процессов. Если ресурс используется одним из процессов, то остальные процессы, которым нужен этот ресурс должны ждать, пока он не освободиться, иначе возникают ошибки, поиск и исправление которых является одной из самых трудных задач в программировании. Синхронизация процессов может быть создана на уровне ОС, либо прикладной программы. Взаимодействующие процессы делятся на 2 класса: Конкурирующие и Сотрудничающие (работают так что действие одного передаётся другому).

Пример1: имеются 2-а процесса, х - видно обоим процессам
      1-процесс: х=0; while (х!100)х++;
      2-процесс: while (1)
                        {
                                   If(х==100)
                                               {
                                                           Printf (“%d”,х);
                                                           X++;
                                               }
                        }
По данному примеру 2-х процессов невозможно утверждать, что мы хоть что-нибудь увидим на экране, а т.ж. что 1-й процесс когда-нибудь завершиться.


Пример 2: Два процесса и односвязный список.







      



 1-й процесс осуществляет добавление и удаление данных из списка
 2-й процесс ищет данные в списке


Если эти два процесса не синхронизировать через критические секции, то это приведёт к краху (процесса 2). Список необходимо сделать критическим ресурсом. Без синхронизации процессов результат непредсказуем. Приведённые процессы рассматривают самую простую ситуацию взаимодействия только 2-х процессов.

Комментариев нет:

Отправить комментарий