Організація багатозадачності. Введення декількох об’єктів з різними алгоритмами поведінки
Мета: Засвоїти методи одночасного виконання декількох процесів з розподіленням часу.
Щоб забезпечити паралельне виконання декількох процесів нам потрібно буде внести незначні зміни в основну програму, що керує віртуальним світом. Фактично, все що нам потрібно забезпечити, це виклик процедури інтерпретатора кожен раз з новим параметром, що буде відповідати номеру процесу, черга якого настала виконуватися.
Для забезпечення цього механізму нам потрібно створити нову структуру – чергу процесів. Роль такої структури може виконувати звичайний масив. Наша основна програма розміщує в цьому масиві ідентифікатори процесів в тій послідовності, в якій останні з’являються в системі. Далі програма вибирає перший елемент масиву і передає його в якості параметра процедурі інтерпретатора. Коли місце першого елементу звільняється, на його місце ми записуємо другий, на місце другого – третій і так зсуваємо весь масив. Після виконання чергової команди цього процесу, його ідентифікатор розміщується в кінці черги. Таким чином ми забезпечуємо постійний обертання процесів.
|
|
Увага! Керування такими структурами, як черги процесів можна виконувати різним чином. Спробуєте запропонувати більш ефективне рішення.
Крім чергування процесів, нам потрібно продумати заходи при створенні нового процесу і при його знищенні. Коли ці питання будуть вирішені і в нашій основні програмі з’являться відповідні процедури, ми можемо перейти до створення нових об’єктів. Рекомендується створити як мінімум 4 об’єкти з різною логікою (можна провести конкурс на найбільш оптимальну стратегію), і як мінімум 2 різних типів об’єктів. Наприклад, тип 1 – травоїдні, тип 2 – хижаки.
На цьому етапі вам надається можливість знову виявити свою фантазію та творчі здібності, а також свої здібності як програміста – створення оптимальної стратегії поведінки є досить нетривіальною задачею.
ЕТАП V