Skip to content

Task #9. Concurrency and Synchronization


Description

Just spam it, baby!


Guidance

Use the following names: Your.Name - as a home directory of your projects; task09 - as a directory of the current project; src - as a sources directory.

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

1) Каждое сообщение выводить в отдельном потоке.

2) Стартовать вывод - по нажатию кнопки, подключённой к выводу GPIO (или любая клавиша стандартной клавиатуры).

3) Параметры вывода каждого сообщения задавать через sysfs/procfs:

  • сообщение,
  • задержка между каждым выводом сообщения (в ms),
  • общее время вывода повторяющегося сообщения (в ms).

Extra

1⃣ Использовать фиксированный пул тредов-исполнителей и очередь заданий (списки).

2⃣ Сигнализировать начало вывода - зажечь на 500 ms светодиод, подключённый к выводу GPIO.

Project Workflow
  • Fork the repo.
  • Clone that fork to a local repository.
  • Add the repo as remote to your local clone (e.g. as main).
  • Your main branch is main/your.name, you’ll share your solutions as MRs to this branch:

    • Create a branch and add commits there. Push this branch to remote:
      git checkout -b branch_name
      # add commits here
      git push -u origin HEAD:branch_name
      
    • Create a merge request in GitLab web interface from branch_name in your fork to your.name in the repo.