Содержание
- 2. Причины взаимодействия процессов Повышение скорости работы. Совместное использование данных. Модульная конструкция системы. Удобство работы пользователя
- 3. Категории средств обмена информацией Сигнальные. Используются, как правило, для извещения процесса о наступлении какого-либо события. Канальные.
- 4. Логическая организация механизма передачи информации Порядок установления связи. Адресация – прямая и непрямая Количество участников сеанса
- 5. Особенности передачи информации с помощью линий связи Буферизация -Буфер нулевой емкости или отсутствует. -Буфер ограниченной емкости.
- 6. Условия надежности средств связи Не происходит потери информации. Не происходит повреждения информации. Не появляется лишней информации.
- 7. Активности и атомарные операции Активности- последовательное выполнение ряда действий, направленных на достижение определенной цели. Атомарные, операции-
- 8. Псевдопараллельное выполнение P: x = 2 Q: x = 3 y = x-1 y = x+1
- 9. Достаточные условия Бернстайна Набор входных переменных программы - R(P) Набор выходных переменных программы - W(P) Если
- 10. Пример условий Бернстайна P: x=u+v; y=x*w; получаем R(P) = {u, v, x, w}, W(P) = {x,
- 11. Механизмы синхронизации выполнения программ упорядочивают доступ программ к данным Недетерминированный набор программ имеет race condition (состояние
- 12. Критическая секция Критическая секция – это часть программы, исполнение которой может привести к возникновению race condition
- 13. Требования, предъявляемые к алгоритмам Задача должна быть решена чисто программным способом на обычной машине, не имеющей
- 14. Запрет прерываний while (some condition) { запретить все прерывания critical section разрешить все прерывания remainder section
- 15. Переменная-замок shared int lock = 0; /* shared означает, что переменная является разделяемой */ while (some
- 16. Строгое чередование shared int turn = 0; while (some condition) { while(turn != i); critical section
- 17. Флаги готовности shared int ready[2] = {0, 0}; while (some condition) { ready[i] = 1; while(ready[1-i]);
- 18. Алгоритм Петерсона shared int ready[2] = {0, 0}; shared int turn; while (some condition) { ready[i]
- 19. Обозначения: (a,b) shared enum {false, true} choosing[n]; shared int number[n]; while (some condition) { choosing[i] =
- 20. Аппаратная поддержка взаимоисключений int Test_and_Set (int *target){ int tmp = *target; *target = 1; return tmp;
- 21. Семафоры Семафор представляет собой целую переменную, принимающую неотрицательные значения, доступ любого процесса к которой, за исключением
- 22. Решение проблемы producer-consumer с помощью семафоров Semaphore mutex = 1; Semaphore empty = N; /* где
- 23. Мьютекс (mutex, сокращение от mutual exclusion — взаимное исключение) Мьютекс — переменная, которая может находиться в
- 24. Мониторы monitor monitor_name { //описание внутренних переменных ; void m1(...){... } void m2(...){... } ... void
- 25. Решение проблемы producer-consumer с помощью мониторов 1 monitor ProducerConsumer { condition full, empty; int count; void
- 26. Решение проблемы producer-consumer с помощью мониторов 2 void get() { if (count == 0) empty.wait; get_item();
- 27. Решение проблемы producer-consumer с помощью мониторов 3 Producer: Consumer: while(1) while(1) { { produce_item; ProducerConsumer.get(); ProducerConsumer.put();
- 28. Решение проблемы производителя и потребителя с передачей сообщений 1 #define N 100 /* количество сегментов в
- 29. Решение проблемы производителя и потребителя с передачей сообщений 2 void consumer(void) { int item, i; message
- 30. Барьеры
- 31. Проблема обедающих философов
- 32. Неверное решение проблемы обедающих философов #define N 5 /* Количество философов */ void philosospher (int i)/*
- 33. Проблема читателей и писателей
- 34. Проблема спящего брадобрея
- 36. Скачать презентацию