Member 14040234 Ответов: 4

Нужно написать код на языке Си


Task 3: Send a series of messages between producer and consumer (30 marks) Copy your code from Task 2 into a new directory named task3. Stage 1 Modify your producer so it can handle a series of messages. 1. Read a 20 character message from stdin and write it to the shared memory segment as per Task 2. 2. Print the message to stdout. 3. Sleep for 10 seconds. 4. Repeat steps 1–3 until EOF (end of file). 5. Detach and destroy the segment. Stage 2 Modify your consumer so it can read each message written by the producer. 1. Implement busy waiting to test for an available message. 2. Read the message from the shared memory segment and print it to stdout. 3. Clear the contents of the segment by writing a NULL termination character to every location. 4. Repeat steps 1–3 until there are no more messages. 5. Detach the segment and exit. You will need to determine how the consumer can detect when a new message is available. If it reads the message too early, it may only get part of it; if it reads it too late, the producer may have started writing the following message. Furthermore, you also need to determine how the consumer will know when there are no more messages. As the shared memory segment size is 32 bytes and you are only required to read messages up to 20 characters (bytes) in length, you have 12 bytes available to use for other information. Describe your strategy in your report. As with Task 2, test your solution using two terminal sessions. Stage 3 Once your producer and consumer are passing messages between one another, use the top command to monitor the CPU usage of both processes. On the VirtualBox Ubuntu VM, you can execute the following command to sort the list of processes by CPU utilisation and filter to those running as the current user. This should make it easier to monitor the producer/consumer. Discuss your observations in your report, noting the differences between the producer and consumer. $ top -u cnos -o %CPU

Что я уже пробовал:

У меня возникли проблемы с написанием этого кода. Мне нужна подсказка

Richard MacCutchan

Все подсказки находятся в вопросе, попробуйте прочитать его еще раз.

4 Ответов

Рейтинг:
1

OriginalGriff

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

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

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!


Рейтинг:
1

Patrice T

Цитата:
У меня возникли проблемы с написанием этого кода. Мне нужна подсказка

Вы не показываете никаких попыток решить проблему самостоятельно, у вас нет вопросов, ваше главное усилие-вставить требование, вы просто хотите, чтобы мы сделали вашу домашнюю работу.
Домашние задания-это упрощенные версии тех задач, которые вам придется решать в реальной жизни. цель это обучение и практикующий.
Мы не делаем вашу домашнюю работу.
Домашнее задание не предназначено для проверки ваших навыков просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, которые вы испытываете при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по исправлению положения.
Любая ваша неудача поможет вам узнать, что работает, а что нет, это называется "методом проб и ошибок".
Так что попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.


Рейтинг:
0

W∴ Balboos, GHB

Это не означает, что я должен быть подлым ответом на ваш вопрос. Это, однако, будет казаться суровым.

Найдите себе другую область изучения. Если бы у вас был хоть какой - то шанс преуспеть в написании компьютерных программ, у вас было бы решение - даже если бы в нем были ошибки- показать нам вашу работу. И что еще важнее: показать вам вашу работу!

Найдите что - то, в чем вы хороши и что вам нравится-или, по крайней мере, одно из этих двух.
Сделай себе одолжение - жизнь слишком коротка, чтобы тратить ее впустую.


Leo Chapiro

Слова мудрости!

Рейтинг:
0

KarstenK

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