3631

Теория с вычислительных процессов

Лабораторная работа

Информатика, кибернетика и программирование

Процессы. Параллельные процессы. Последовательные процессы Цель работы: Усвоить понятие процесса. Изучить виды процессов и способы их взаимодействия. Рекомендации по выполнению работы 1. проработать материал лекции 9-14 2. При оформлении выполненног...

Русский

2012-11-04

63.5 KB

18 чел.

Процессы. Параллельные процессы. Последовательные процессы

Цель работы: Усвоить понятие процесса. Изучить виды процессов и способы их взаимодействия.

Рекомендации по выполнению работы

1. проработать материал лекции 9-14

2. При оформлении выполненного пункта задания не руководствуйтесь пословицей “краткость- сестра таланта”, расписывайте свои аргументы подробнее

Задания

1. Изложите суть проблем, возникающих в модели системы, описанной притчей о пяти обедающих философах.

2. Объясните, каким образом совокупность обычных операторов последовательного программирования может быть взята за основу структуры последовательных взаимодействующих процессов.

3. Опишите структуру и способ построения системы, в которой ограниченное число физических ресурсов, таких, как диски и печатающие устройства, разделено между большим количеством процессов с переменной потребностью в этих ресурсах.

Задание 1

Изложите суть проблем, возникающих в модели системы, описанной притчей о пяти обедающих философах.

Решение

В компьютерных науках параллелизм — это свойство систем, при котором несколько вычислений выполняются одновременно, и при этом, возможно, взаимодействуют друг с другом. Вычисления могут выполняться на нескольких ядрах одного чипа с вытесняющим разделением времени потоков вычислений на одном процессоре, либо выполняться на физически отдельных процессорах.

Поскольку вычисления в параллельных системах взаимодействуют друг с другом, число возможных путей выполнения может быть чрезвычайно велико, и результирующий итог может стать недетерминированным. Параллельное использование общих ресурсов может стать одним из источников недетерминированности, приводящей к таким проблемам, как взаимная блокировка или фатальный недостаток ресурсов.

Проблема обедающих философов — классическая проблема с параллелизмом и разделяемыми ресурсами.

Формулировка задачи, предложенная Эдсгером Дейкстрой, заключается в следующем:

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

Кроме проблемы создания модели такой системы, существуют также проблемы ее анализа. Существует вероятность того, что кто-либо из философов может так и не приступить к еде, т.к. одна из вилок или даже обе вместе могут быть постоянно заняты. А если они сядут за стол одновременно, то возникает вариант взаимной блокировки всех философов.

Решение задачи заключается в обеспечении согласованного доступа нескольких потоков к разделяемым ресурсам.

Задание 2

Объясните, каким образом совокупность обычных операторов последовательного программирования может быть взята за основу структуры последовательных взаимодействующих процессов.

Решение

Последовательным называется процесс, имеющий в алфавите символ естественно, что это событие может быть только последним в работе процесса. По этой причине мы ставим условием, что  не может служить альтернативой в конструкции выбора:

{х : В->Р{х)) неверно, если В

При проектировании процесса для решения некоторой сложной задачи часто бывает полезно разбить ее на две под­задачи, одна из которых успешно завершается до начала другой. Если Р и Q— последовательные процессы с одним и тем же алфавитом, их последовательная композиция Р; Q представляет собой процесс, ведущий себя сначала как Р, а после успешного завершения Р продолжающий вести себя как Q. Если успешного завершения Р не происходит, то не завершается и (Р; Q) .

Последовательность символов называется предложением процесса Р, если после выполнения соответствующей последовательности действий Р успешно завершается. Множество всех таких предложений называется языком, допускаемым Р. Таким образом, обозначения, введенные для описания последовательных процессов, можно использовать и для определения грамматики простого языка типа тех, что применяются при взаимодействии человека с машиной.

Законы для последовательной композиции аналогичны законам для конкатенации протоколов, а ПРОПУСК играет роль единицы:

Взаимодействие процессов между собой необходимо для синхронизации исполнения процессов между собой, обеспечению совместного использования ресурсов и т. д. Таким образом, взаимодействующие процессы представляют собой обычные совокупности операторов последовательного программирования с реализованным взаимодействием между ними.

Задание 3

Опишите структуру и способ построения системы, в которой ограниченное число физических ресурсов, таких, как диски и печатающие устройства, разделено между большим количеством процессов с переменной потребностью в этих ресурсах.

Решение

При построении системы, в которой ограниченное число физических ресурсов разделено между большим количеством процессов с переменной потребностью в этих ресурсах необходимо предусмотреть методы разрешения конфликтов при попытке совместного использования ресурсов. Для этого используют следующие решения:

  1.  Организация критических секций. В момент вхождения программы в критическую секцию, все действия, которые могут помешать ее исполнению, запрещаются. Их разрешение выполняется только по факту завершения исполнения процесса (его критической секции);
  2.  Семафоры. Механизм семафоров основан на создании некоторые виртуальных ресурсов – семафоров. Процесс, в котором необходимо получить доступ к ресурсу, первоначально обращается к семафору и если он открыт, закрывает его и выполняет требуемые действия. По факту завершения работы, семафор открывается. В случае, если при обращении к семафору он закрыт, процессе ожидает его открытия;
  3.  Планирование ресурсов. Данный метод позволяет избежать ошибки в разрешении конфликтов. Возможны ситуации, когда один и тот же процесс при разрешении конфликтов будет непрерывно получать доступ к требуемому ресурсу, тогда как прочие ресурсы будут бесконечно находиться в очереди.  Для исключения подобных ситуаций выполняется планирование ресурсов (определяется дисциплина обслуживания очереди: первым пришел – первым ушел и т. д.).
  4.  Организация очереди.  Для организации совместного использования печатающих устройств используется очередь FIFO (First In First Out – первым пришел – первым ушел). При получении заявки на печать, в то время, как печатающее устройство используется, поступившая заявка ставится в очередь и обрабатывается после освобождения печатающего устройства.


 

А также другие работы, которые могут Вас заинтересовать

17025. Робота з векторами і матрицями в системі MathCad 610.5 KB
  Лабораторна робота № 3 Тема: Робота з векторами і матрицями в системі MathCad. Мета: одержати навички обчислення векторів і матриць з використанням функцій системи MathCad. Обладнання: ПК ПЗ MathCad. Розв’язати систему рівнянь методом зворотн
17026. Аналітичні обчислення в системі MathCad 3.67 MB
  Лабораторна робота №4 Тема: Аналітичні обчислення. Мета. Ознайомитися з аналітичним обчисленням у середовищі MathCad використовуючи панель Символіка. Обладнання: ПК ПЗ MathCad. Хід роботи Завдання 1 Виконати всі можливі перетворення виразу використовуючи панель
17027. Аналітичні обчислення 48 KB
  Лабораторна робота №5 Тема: Аналітичні обчислення. Мета: ознайомитися з аналітичним обчисленням у середовищі MathCad. Обладнання: ПК ПЗ MathCad Хід роботи: Індивідуальне завдання: Використовуючи панель Калькулус для даної функції знайти: а рівняння доти...
17028. Побудова графіків в MathCad 62 KB
  Лабораторна робота № 6 Тема: Побудова графіків в MathCad Мета: Відробити прийоми побудови графіків у середовищі MathCad Обладнання: ПК ПЗ MathCad. Ход работы 1. Побудувати графіки функційтаблиця 1 у спільній системі координат а функцію з таблиці 2 що задана параметричноокр...
17029. Рішення диференціальних рівнянь в MathCad 61 KB
  Лабораторна робота № 7 Тема: Рішення диференціальних рівнянь. Мета: Відробити прийоми рішення звичайних диференціальних рівнянь використовуючи інструменти MathCad. Обладнання: ПК ПЗ MathCad. Вирішити задачу Коші використовуючи блок Given/Оd...
17030. Розв’язання задач математичної статистики в системі MathCad 37 KB
  Лабораторна робота № 8 Тема: розв’язання задач математичної статистики в системі MathCad. Мета: ознайомитися з можливостями системи MathCad для розв’язання задач математичної статистики: з убудованими функціями для знаходження параметрів регресії. Індивідуальне за
17031. Створення елементів керування на екранній формі в Visual BASIC 1.93 MB
  Лабораторна робота №9 Тема. Створення елементів керування на екранній формі в Visual BASIC. Мета: відробити прийоми створення елементів керування на екранній формі та встановлення їх властивостей в Visual BASIC 6.0 . Обладнання: ПК ПЗ Visual BASIC 6.0 Хід роботи Індивідуальне за
17032. Використання операторів умов в Visual BASIC 41.5 KB
  Лабораторна робота №10 Тема: Використання операторів умов Мета: відробити прийоми використання оператори умов в Visual BASIC 6.0 . Обладнання: ПК ПЗ VB 6.0 Хід роботи Індивідуальне завдання. Знайти значення функції використавши вікно повідомлень для вводу та виводу ...
17033. Програмування циклів з лічильником в Visual BASIC 33 KB
  Лабораторна робота № 11 Тема: Програмування циклів з лічильником Мета: відробити прийоми використання циклів з лічильником в Visual BASIC 6.0 . Обладнання: ПК ПЗ VB 6.0 Хід роботи Індивідуальне завдання. Обчислити суму або добуток використовуючи ввід та вивід даних чер