Code Monkey home page Code Monkey logo

oc_hw_04's Introduction

Задание № 4 «Сетевые взаимодействия с применением транспортного протокола UDP»

Фирсов Федор БПИ219.

Условие задачи:

Задача 15. O клумбе – 1. На клумбе растет 40 цветов, за ними непрерывно следят два процесса–садовника и поливают увядшие цветы, при этом оба садовника очень боятся полить один и тот же цветок, который еще не начал вянуть.
Создать приложение, моделирующее состояния цветков на клумбе и действия садовников. Для изменения состояния цветов создать отдельный процесс (а не 40 процессов для каждого цветка), который может задавать одновременное начало увядания для нескольких цветков.

  • На момент начала моделирования все цветы политы.
  • Каждое утро каждый политый цветок с вероятностью 1/2 начинают увядать.
  • Во избежание траура будем считать, что увядший цветок просто некрасивый и никогда не умрет
  • Днем два Садовника Alice и Bob просыпаются и идут слева направо вдоль клумбы и поливают увядшие цветы.
  • У садовником могут быть лейки разных размеров (задается как параметр) стандартно у Alice для 5-ти цветов, а у BOb-a только 4.
  • Если цветок поливается одним садовникам, то другой не будет его поливать благодаря pthread семафору.
  • Садовники не стареют, а цветы никогда не умрут - процесс может длиться вечность)

Запуск и тестирование:

По сравнению с ИДЗ-3 тут ничего не поменялось Для простоты запуска в каждой папке есть Make файл и Bash скрип.

Скрипт компилирует и запускает всех клиентов и сервер с перенаправлением вывода в файл.

При запуске Bash скрипта процесс начинается автоматически, но для появления выходных файлов необходимо его прервать. (CTRL + C)

В папке sample лежат примеры работы

Решение:

В этот раз я начал делать с конца)

8:

  1. Код клиента-клумбы
  2. Код клиента-садовника
  3. Код клиента-принтера
  4. Код сервера
  5. Код скрипта запуска
  6. Код Makefile

Все соединения между клиентом и серверами - UDP. Для различия сервером первая буква запроса - тип.

  1. A/B - запрос полива цветов от Алисы или Боба соответственно.
  2. N - Запрос "начало нового дня", те обновление информации у садовников о завядших цветах.
  3. F - Запрос от цветника, те обновление информации о завядших цветах на сервере.

Есть возможность для подключения до 10 "принтеров" выводящих все сообщения в одной консоли.

6-7:

  1. Код клиента-клумбы
  2. Код клиента-садовника
  3. Код клиента-принтера
  4. Код сервера
  5. Код скрипта запуска
  6. Код Makefile

Для добавления только 1 принтера меняем константу количества на 1.

4-5:

  1. Код клиента-клумбы
  2. Код клиента садовника
  3. Код сервера
  4. Код скрипта запуска
  5. Код Makefile

Меняем константу на 0))

Скрины запуска:

9 9 9

В виде файла

oc_hw_04's People

Contributors

firsov179 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.