Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРВ complete edition епта.docx
Скачиваний:
17
Добавлен:
24.09.2019
Размер:
488.03 Кб
Скачать

34. Какие классические задачи конкурентного программирования вы знаете?

Существует набор "классических" задач, на которых принято демонстрировать результаты применения новых разрабатываемых подходов. В числе этих задач:

Задача "Производители-Потребители" (Producer-Consumer problem);

Задача "Читатели-Писатели" (Readers-Writers problem);

Задача "Обедающие философы" (Dining Philosopher problem);

Задача "Спящий брадобрей" (Sleeping Barber problem).

35. В чём отличия тупика от livelock?

Взаи́мная блокиро́вка (англ. deadlock) — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами.

LiveLock

Это слово означает такую ситуацию: система не «застревает», а занимается бесполезной работой, её состояние постоянно меняется — но, тем не менее, она «зациклилась», не производит никакой полезной работы.

36. Основные понятия циклического исполнителя (cyclic executive)?

«Карусельная диспетчеризация (циклическое планирование)». При карусельной

диспетчеризации процесс продолжает выполнение, пока не наступит момент, когда он:

• добровольно уступает управление (т.е. блокируется);

• вытесняется процессом с более высоким приоритетом;

• использовал свой квант времени (timeslice). После того, как процесс использовал свой

квант времени, управление передается следующему процессу, который находится в

состоянии готовности и имеет такой же уровень приоритета

Временной циклический исполнитель (cyclic executive). Обработка событий привязана к временным промежуткам (таймерным слотам).

Преимущества:

- исполнимость (несложная проверка исполнимости худшего случая);

- надежность – обработчики вызываются как функции;

- небольшие расходы памяти процессора.

Недостатки:

- большие накладные расходы загрузки процессора - плохое его использование из-за

частой проверки событий - особенно редких с коротким сроком исполнения (например,

сигнала от датчика лобового удара);

- сложность модификации (при добавлении событий изменяется график, иногда нужно

разбивать обработчик на несколько более коротких);

- невозможность приоритетного вытеснения обработки для обслуживания срочного

события (по прерыванию).

37. Назовите Достоинства и недостатки способа выполнения задач в бесконечном цикле. Clock-driven scheduling

Преимущества Clock-driven scheduling:

  • простота;

  • справедливость (как в очереди покупателей во время перестройки – каждому по килограмму).

Недостатки Clock-driven scheduling:

  • если частые переключения (квант – 4мс, а время переключения равно 1мс), то происходит уменьшение производительности;

  • Если редкие переключения (квант – 100мс, а время переключения равно 1мс), то происходит увеличение времени ответа на запрос.

Циклическое планирование (cyclic / clock-driven / off-line sheduling) – применяется к набору периодических задач и некоторых спорадических.

Самый простой алгоритм планирования и часто используемый.

Каждому процессу предоставляется квант времени процессора. Когда квант заканчивается процесс переводится планировщиком в конец очереди. При блокировке процесс выпадает из очереди.

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

Эту задачу можно решить жадными алгоритмами (упаковка рюкзака).