Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab12_Java_Vkazivky_2010_Multithreading.doc
Скачиваний:
7
Добавлен:
17.04.2019
Размер:
921.6 Кб
Скачать

3.Контрольні запитання

  1. Які два способи використовуються для реалізації потоків в Java?

  2. Як виконується зупинка або завершення потоку?

  3. Які операції над потоками визначені в Java?

  4. Як виконується переривання потоку і перевірка стану переривання?

  5. Що таке потоки-демони і чим вони відрізняються від звичайних потоків?

  6. Як задати і набути значення пріоритету для потоку?

  7. Як можна створити групу потоків і які операції визначені для групи потоків в Java?

  8. Які засоби синхронізація потоків є в Java?

  9. Як виконується синхронізація потоків за допомогою оператора synchronized?

  10. Як виконується синхронізація потоків за допомогою методів wait() і notify()?

4.Лабораторне завдання

Варіант 1. Програма моделює обслуговування трьох потоків процесів з різними параметрами трьома центральними процесорами комп'ютера без черг. Перший процесор обробляє процеси будь-якого потоку. Другий процесор обробляє процеси тільки другого потоку, а третій - тільки третього. Якщо процес, що згенерував, не може бути оброблений із-за зайнятості процесора, він знищується. Визначити відсоток знищених процесів в кожному потоці.

Варіант 2. Програма моделює обслуговування одного потоку процесів одним центральним процесором комп'ютера з чергами фіксованого розміру (буферними областями). Якщо розмір черги перевищує заданий розмір, вміст черги поступає на обробку в процесор. Якщо буферна область заповнюється до закінчення обробки процесором вмісту попередньої буферної області, створюється нова буферна область і т.д. Визначити максимальну і середню кількість буферних областей.

Варіант 3. Програма моделює обслуговування двох потоків процесів з різними параметрами одним центральним процесором комп'ютера. Для кожного потоку задається своя черга. Черга для першого потоку має фіксований розмір, і, якщо процес згенерував в той момент, коли перша черга заповнена, процес знищується. Розмір черги для другого потоку необмежений. На кожних n запитів з першої черги (n задається як початкове дане), процесор бере на обробку один запит з другої черги. Визначити відсоток знищених процесів першого потоку і максимальну довжину другої черги.

Варіант 4. Програма моделює обслуговування одного потоку процесів декількома центральними процесорами комп'ютера з декількома чергами однакового розміру. Якщо процес згенерував в той момент, коли перша черга заповнена, процес поміщається в наступну чергу, для обробки якої запускається другий процесор. Якщо і ця черга заповнена, створюється третя черга і запускається третій процесор і т.д. Визначити кількість задіяних процесорів, максимальну довжину останньої черги і відсоток від загальної кількості процесів, які були оброблені кожним процесором.

Варіант 5. Програма моделює обслуговування одного потоку процесів декількома центральними процесорами комп'ютера без черг. Якщо процес згенерував в той момент, коли перший процесор зайнятий, процес береться на обробку другим процесором, якщо і цей процесор зайнятий, запускається третій процесор і т.д. Визначити кількість задіяних процесорів і відсоток від загальної кількості процесів, які були оброблені кожним процесором.

Варіант 6. Програма моделює обслуговування одного потоку процесів одним центральним процесором комп'ютера з двома чергами. Якщо розмір першої черги перевищує заданий, процес поміщається в другу чергу (буфер переповнювання), розмір якої не обмежений. Процесор бере на обробку процес з другої черги тільки в тому випадку, якщо розмір цієї черги перевищить деяку задану величину. Визначити максимальний розмір другої черги і відсоток процесів, які були вибрані на обробку з другої черги.

Варіант 7. Програма моделює обслуговування одного потоку процесів одним центральним процесором комп'ютера з двома чергами. Процес, що згенерував, поміщається в ту чергу, розмір якої менше. У свою чергу, процесор бере на обслуговування запит з тієї черги, розмір якої більше. Визначити відсоток запитів, які були вибрані на обробку з першої черги.

Варіант 8. Програма моделює обслуговування одного потоку процесів трьома центральними процесорами комп'ютера без черги. Перший процесор обробляє процеси один, другий і третій - послідовно, причому, якщо другий процесор звільняється, він може узяти на обробку наступний процес, який чекає, поки не закінчиться обробка на третьому процесорі. Процес, що згенерував, одночасно намагається почати обробку на першому і на другому процесорі. Якщо процесор зайнятий, то процес знищується. Визначити відсоток знищених процесів окремо на першому і окремо на другому процесорі.

Варіант 9. Програма моделює обслуговування двох потоків процесів з різними параметрами двома центральними процесорами комп'ютера з однією чергою. Якщо згенерував процес другого потоку і другий процесор зайнятий, процес поступає в чергу. Якщо згенерував процес першого потоку, то, якщо перший процесор зайнятий обробкою першого потоку, то процес поступає на обробку на другий процесор. Якщо і другий процесор зайнятий, то процес знищується. Якщо у момент генерації процесу першого потоку на першому процесорі обробляється процес другого потоку, то процес уривається і повертається в чергу. Визначте максимальну довжину черги, відсоток знищених процесів для першого потоку і відсоток перерваних запитів для другого потоку.

Варіант 10. Програма моделює обслуговування двох потоків процесів з різними параметрами двома центральними процесорами комп'ютера з однією чергою. Якщо згенерував процес другого потоку і другий процесор зайнятий, процес поступає в чергу. Якщо згенерував процес першого потоку, то, якщо перший процесор зайнятий обробкою першого потоку, то процес поступає на обробку на другий процесор. Якщо і другий процесор зайнятий, то процес знищується. Якщо у момент генерації процесу першого потоку на першому процесорі обробляється процес другого потоку, процес вважається втраченим. Визначте максимальну довжину черги і відсотки знищених процесів для першого і другого потоку.

Варіант 11. Програма моделює обслуговування одного потоку процесів одним центральним процесором комп'ютера з однією чергою. Якщо черговий процес генерується в мить, коли процесор вільний, процес поступає на обробку в процесор, інакше процес поступає в чергу. Якщо процесор вільний і в черзі є процеси, процес віддаляється з черги. Визначте максимальну довжину черги.

Варіант 12. Програма моделює обслуговування одного потоку процесів одним центральним процесором комп'ютера без черги. Якщо черговий процес генерується в мить, коли процесор вільний, процес поступає на обробку в процесор, інакше процес знищується. Визначте відсоток знищених процесів.

Варіант 13. Програма моделює обслуговування одного потоку процесів двома центральними процесорами комп'ютера без черги. Якщо черговий процес генерується в мить, коли будь-який з процесорів вільний, процес поступає на обробку в даний процесор, інакше процес знищується. Визначте відсоток знищених процесів для двох однакових процесорів.

Варіант 14. Програма моделює обслуговування одного потоку процесів двома центральними процесорами комп'ютера із загальною чергою. Якщо черговий процес генерується в мить, коли будь-який з процесорів вільний, процес поступає на обробку, інакше процес стає в чергу. Якщо один з процесорів звільняється, і в черзі є процеси, процес віддаляється з черги. Визначте максимальний розмір черги для двох однакових процесорів.

Варіант 15. Програма моделює обслуговування одного потоку процесів двома центральними процесорами комп'ютера з двома чергами. Якщо черговий процес генерується в мить, коли будь-який з процесорів вільний, процес поступає на обробку у вільний процесор, інакше процес поміщається в ту з двох черг, розмір якої менше. Визначте максимальний розмір для кожної з черг для двох однакових процесорів.

Варіант 16. Програма моделює обслуговування двох потоків процесів з різними параметрами центральним процесором комп'ютера. Для кожного потоку задається своя черга. Якщо черговий процес генерується в мить, коли процесор вільний, процес поступає на обробку на процесор, інакше процес стає в свою чергу. Якщо процесор звільняється, він бере на обробку процес з першої черги і, тільки в тому випадку, якщо перша черга вільна, процесор бере на обробку процес з другої черги. Визначте максимальний розмір для кожної з черг.

Варіант 17. Програма моделює обслуговування одного потоку процесів одним центральним процесором комп'ютера з однією чергою заданого розміру. Якщо черговий процес генерується в мить, коли процесор вільний, процес поступає на обробку в процесор, інакше процес поступає в чергу. Якщо процесор вільний і в черзі є процеси, процес віддаляється з черги. Якщо розмір черги перевищує заданий розмір, процес знищується. Визначте відсоток знищених процесів.

Варіант 18. Програма моделює обслуговування одного потоку процесів двома центральними процесорами комп'ютера із загальною чергою заданого розміру. Якщо черговий процес генерується в мить, коли будь-який з процесорів вільний, процес поступає на обробку, інакше процес стає в чергу. Якщо розмір черги перевищує задане значення, процес знищується. Визначте максимальний розмір черги і відсоток знищених процесів для двох однакових процесорів.

Варіант 19. Програма моделює обслуговування двох потоків процесів з різними параметрами двома центральними процесором комп'ютера. Для кожного потоку задається своя черга. Процес з кожного потоку поступає на свій процесор, і лише у тому випадку, коли в своїй черзі немає процесу, процесор бере на обробку чужий процес. Визначте максимальний розмір для кожної з черг.

Варіант 20. Програма моделює обслуговування двох потоків процесів з різними параметрами двома центральними процесором комп'ютера. Для кожного потоку задається своя черга. Процес з кожного потоку поступає на свій процесор, і лише у тому випадку, коли довжина своєї черги не перевищує заданого для цієї черги розміру, а довжина іншої черги перевищує заданий для неї розмір, процесор бере на обробку чужий процес. Визначте максимальний розмір для кожної з черг.

Варіант 21. Програма моделює обслуговування одного потоку процесів двома центральними процесорами комп'ютера із загальною чергою. Якщо черговий процес генерується в мить, коли перший процесор вільний, процес поступає на обробку, інакше процес стає в чергу. Якщо розмір черги перевищує задане значення, процес поступає на обробку в другий процесор. Визначте загальну кількість процесів і відношення (у відсотках) оброблених процесів до загальної кількості процесів, що згенерували, для обох процесорів.

Варіант 22. Програма моделює обслуговування двох потоків процесів з різними параметрами двома центральними процесором комп'ютера. Для кожного потоку задається своя черга. Процес з кожного потоку поступає на перший процесор, і лише у тому випадку, коли довжина одній з черг перевищує задану для неї величину. Визначте загальну кількість процесів і відношення (у відсотках) оброблених процесів до загальної кількості процесів, що згенерували, для обох процесорів.

Варіант 23. Програма моделює обслуговування двох потоків процесів з різними параметрами одним центральним процесором комп'ютера без черги. Процес з кожного потоку поступає на процесор, але якщо при обробці процесу генерується процес з того ж потоку, оброблюваний процес вважається втраченим. Проте, якщо при обслуговуванні процесу з другого потоку генерується процес першого потоку, то процес знищується і починається обробка процесу з першого потоку. Визначте відсоток знищених процесів для першого і другого потоків.

Варіант 24. Програма моделює обслуговування одного потоку процесів двома центральними процесорами з однією чергою. Коли процес віддаляється з черги, він спочатку поступає на обробку в перший процесор. Як тільки процес обробки закінчується, процес обробляється на другому процесорі, а на перший процесор поступає черговий процес з черги (якщо черга не порожня). Процес на першому процесорі чекає закінчення обробки попереднього процесу на другому процесорі (якщо обробка попереднього процесу ще не закінчилася). Визначте максимальну довжину черги.

Варіант 25. Програма моделює обслуговування двох потоків процесів з різними параметрами одним центральним процесором і однією чергою. Якщо згенерував процес другого потоку і процесор зайнятий, процес поступає в чергу. Якщо згенерував процес першого потоку, то, якщо процесор обробляє процес першого потоку, то процес знищується. Якщо ж процесор обробляє процес другого потоку, то процес уривається і повертається в чергу. Визначте максимальну довжину черги, відсоток знищених процесів першого потоку і кількість перерваних процесів другого потоку.

Варіант 26. Програма моделює обслуговування двох потоків процесів з різними параметрами одним центральним процесором і трьома чергами. Якщо згенерував процес другого потоку і процесор зайнятий, процес поступає в другу чергу. Якщо згенерував процес першого потоку, то, якщо процесор обробляє процес другого потоку, процес другого потоку припиняється і поміщається в третю чергу (з часом обробки, що залишився). Якщо процесор же обробляє процес першого потоку, то процес поступає в першу чергу. При звільненні процесора черги є видимими в наступному порядку: перша черга, третя черга, друга черга. Визначте максимальні довжини черг і кількість перерваних процесів другого потоку.

Варіант 27. Програма моделює обслуговування двох потоків процесів з різними параметрами одним центральним процесором і двома чергами. Кожен процес поступає в свою чергу. При звільненні процесора обробляється запит з першої черги (якщо вона не порожня) або з другої черги, якщо час очікування першого запиту з другої черги перевищує задану величину. Визначте максимальні довжини черг і середні часи очікування запитів в чергах.

Варіант 28. Програма моделює обслуговування двох потоків процесів з різними параметрами двома центральними процесорами і двома чергами. Кожен процес поступає в свою чергу і обслуговується своїм процесором. Якщо перший процесор вільний і черга першого потоку процесів порожня, процесор вибирає процес з другої черги, проте, якщо під час обробки процесу, генерується процес першого потоку, обробка процесу уривається і він повертається в свою чергу як перший в черзі. Визначте максимальні довжини черг і кількість перерваних процесів другого потоку.

Варіант 29. Програма моделює обслуговування двох потоків процесів з різними параметрами трьома центральними процесорами і двома чергами. Кожен процес поступає в свою чергу і обслуговується своїм процесором. Третій процесор бере запит на обслуговування спочатку з першої черги або (якщо перша черга порожня) з другої. Визначте максимальні довжини черг і відсотки процесів першого і другого потоку, обслужені третім процесором.

Варіант 30. Програма моделює обслуговування трьох потоків процесів з різними параметрами двома центральними процесорами і трьома чергами. Кожен процес поступає в свою чергу. Процеси першого і другого потоків обслуговуються кожен своїм процесором. Якщо перший або другий процесор звільняються, вони спочатку проглядають чергу процесорів третього потоку і, якщо вона порожня, черги процесів свого потоку. Визначте максимальні довжини черг і відсотки процесів третього потоку, обслужені першим і другим процесором.

5. ЗМІСТ ЗВІТУ

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]