Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

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

частей которой создаются и запускается потоки выполнения, а для

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

объекты ОС. Результат выполнения выводится на терминал/консоль.

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

вводу. Функционирование программы, если это не оговаривается особо, может

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

В большинстве вариантов заданий решаются классические задачи

синхронизации. Приостановка выполнения потока на заданный промежуток

времени может выполняться вызовом функции nanosleep().

«Обедающие философы 11 ». В пансионе отдыхают и предаются

размышлениям 5 философов (потоки), пронумерованные от 1 до 5. В столовой

расположен круглый стол, вокруг которого расставлены 5 стульев, также

пронумерованные от 1 до 5. На столе находится одна большая тарелка со

спагетти, которая пополняется бесконечно. Также там расставлены 5 тарелок,

куда накладываются спагетти, и 5 вилок (разделяемые ресурсы), назначение

которых очевидно.

Для того чтобы пообедать, философ входит в столовую и садится на

стул со своим номером. При этом есть философ сможет только в том случае,

если свободны две вилки – справа и слева от его тарелки. При выполнении

этого условия философ поднимает одновременно обе вилки и может поглощать

пищу в течение какого-то заданного времени. В противном случае философу

приходится ждать освобождения обеих вилок.

Пообедав, философ кладет обе вилки на стол одновременно и уходит.

Величина временного промежутка для поглощения пищи устанавливается

пользователем при старте приложения, а появление философа в столовой

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

2 года назад
guest_16746639411773
2 года в сервисе
Был
2 года назад

Заявки фрилансеров

Олег
 
44 года
11 лет в сервисе
Был
год назад
2 года назад
Денис
 
29 лет
2 года в сервисе
Был
2 года назад
2 года назад
  • Похожие заказы

  • Необходимо разработать 3 лабораторные работы по C#. ЛР1 включает 12 подзаданий, ЛР2 и ЛР3 содержат по 2 подзадания каждая. Ожидается качественное выполнение всех заданий.

    Закрыт
    2 года назад
  • Необходима помощь в выполнении лабораторной работы в среде программирования Octave с использованием графического интерфейса (GUI). Ожидается выполнение заданий в соответствии с требованиями курса.

    Закрыт
    2 года назад
  • Необходимо выполнить лабораторные работы по MS SQL Server. Требуется создать или скачать готовую базу данных и выполнить задания на ее основе. Убедитесь, что база данных соответствует требованиям для выполнения всех задач.

    Закрыт
    2 года назад
  • Термінова розробка перших 3 лабораторних робіт з теми мікросервісів для DevOps. Робота повинна бути виконана на операційній системі Mac або Windows. Завершити до 27-28 січня. Ціна за домовленістю.

    Закрыт
    2 года назад
  • Необходимо разработать лабораторную работу, посвященную принципу работы протокола STP в Cisco 11. Ожидается подробное описание работы протокола и его применение в сетевых технологиях.

    Закрыт
    2 года назад
  • Требуется реализовать код и подготовить отчет по лабораторной работе на C++ в соответствии с заданием №6. В приложенных файлах содержится пример отчета и исходные требования. Необходимо внести изменения в уже существующий код для завершения задания как можно быстрее.

    Закрыт
    2 года назад
  • Необхідно виконати лабораторну роботу з предмету Бази Данних, дотримуючись інструкцій, які прикріплені до замовлення. Опис проекту також є обов'язковим. Інструкція на польській мові.

    Закрыт
    2 года назад
  • Выполните лабораторную работу по физике технических объектов, вариант №3. Ознакомьтесь с требованиями к оформлению и подробно опишите физические процессы и закономерности, которые будут исследоваться в ходе работы. Все необходимые материалы находятся в отдельных файлах.

    Закрыт
    2 года назад