Етап іv

Організація багатозадачності. Введення декількох об’єктів з різними алгоритмами поведінки

Мета: Засвоїти методи одночасного виконання декількох процесів з розподіленням часу.

Щоб забезпечити паралельне виконання декількох процесів нам потрібно буде внести незначні зміни в основну програму, що керує віртуальним світом. Фактично, все що нам потрібно забезпечити, це виклик процедури інтерпретатора кожен раз з новим параметром, що буде відповідати номеру процесу, черга якого настала виконуватися.

Для забезпечення цього механізму нам потрібно створити нову структуру – чергу процесів. Роль такої структури може виконувати звичайний масив. Наша основна програма розміщує в цьому масиві ідентифікатори процесів в тій послідовності, в якій останні з’являються в системі. Далі програма вибирає перший елемент масиву і передає його в якості параметра процедурі інтерпретатора. Коли місце першого елементу звільняється, на його місце ми записуємо другий, на місце другого – третій і так зсуваємо весь масив. Після виконання чергової команди цього процесу, його ідентифікатор розміщується в кінці черги. Таким чином ми забезпечуємо постійний обертання процесів.

Увага! Керування такими структурами, як черги процесів можна виконувати різним чином. Спробуєте запропонувати більш ефективне рішення.

Крім чергування процесів, нам потрібно продумати заходи при створенні нового процесу і при його знищенні. Коли ці питання будуть вирішені і в нашій основні програмі з’являться відповідні процедури, ми можемо перейти до створення нових об’єктів. Рекомендується створити як мінімум 4 об’єкти з різною логікою (можна провести конкурс на найбільш оптимальну стратегію), і як мінімум 2 різних типів об’єктів. Наприклад, тип 1 – травоїдні, тип 2 – хижаки.

На цьому етапі вам надається можливість знову виявити свою фантазію та творчі здібності, а також свої здібності як програміста – створення оптимальної стратегії поведінки є досить нетривіальною задачею.

ЕТАП V


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: