<<
>>

Контрольные вопросы и упражнения 1.

Реализуйте механизм семафора на языке Ada. Напишите программу с двумя параллельными процессами, в которой семафор обеспечивает режим взаимного исключения.

2. На языке Ada напишите программу с двумя параллельными процессами, в которой семафор обеспечивает условную синхронизацию.

3. Реализуйте механизм монитора на языке Ada. Напишите программу с двумя параллельными процессами, в которой используется монитор.

4. Положим, что режим широковещания поддерживается следующим типом защищенного объекта:

614

Глава 19. Основные понятия параллельного программирования

protected type Broadcast is

entry Receive(M : out message); procedure Send(M : message); private

New_Message : Message;

Message_Arrived : Boolean := False; end Broadcast;

Каждый из очереди к Receive должен получить сообщение, посылаемое при вызове send. Напишите реализацию этого типа и прикладную программу, использующую его.

5. На языке Ada напишите программу, реализующую модель мультиплексора на четыре входа с использованием задач.

6. Возможно ли реализовать операции wait и signal семафора с помощью сообщений send и receive из четвертого упражнения? Напишите две процедуры signal(P) и wait(P), которые взаимодействуют с помощью сообщений, но семантически имеют тот же смысл, что и операции семафора wait и signal. Какие проблемы с атомарностью возникают при таком решении? Операции wait и signal могут использоваться множеством задач, применяющих один и тот же семафор. Как можно обобщить сообщения send и receive, чтобы они могли использоваться более чем одной посылающей и одной принимающей задачей?

<< | >>

Еще по теме Контрольные вопросы и упражнения 1.:

  1. Контрольные вопросы
  2. Контрольные вопросы
  3. Контрольные вопросы
  4. Контрольные вопросы
  5. Контрольные вопросы
  6. Контрольные вопросы
  7. Контрольные вопросы
  8. Контрольные вопросы
  9. Контрольные вопросы
  10. Контрольные вопросы
  11. Контрольные вопросы
  12. Контрольные вопросы
  13. Контрольные вопросы
  14. Контрольные вопросы
  15. Контрольные вопросы