Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 07.12.2001, 22:13
Countach вне форума Посмотреть профиль Отправить личное сообщение для Countach Найти все сообщения от Countach
  № 1  
Countach
 
Аватар для Countach

Регистрация: Mar 2001
Адрес: Cyprus, Nicosia
Сообщений: 795
Отправить сообщение для Countach с помощью ICQ
По умолчанию Блин не слишком ли нагружено для флешки?? :(

Есть прога, не законченая, но алгоритм виден
Код:
//##### BANKER'S ALGORITHM SOURCE CODE ##### 

//Declaration of data structures
NoResources=6;
NoProcesses=5;

//total number of resources
AvailI = new Array();
AvailI [NoResources];
AvCons = new Array();
AvCons [4,5,16,2,12,64];

//fill up the array for the number of max resources
MaxI=new Array();
for (i=0; i<NoProcesses; i++) {
MaxI[i]=new Array();
   for (j=0; j<NoResources; j++) {
      MaxI[i][j]=Random(AvailI[j]);
   }
}

//fill up the array with the allocated resources
AllocI=new Array();
for (i=0; i<NoProcesses; i++) {
AllocI[i]=new Array();
   for (j=0; j<NoResources; j++) {
      AllocI[i][j]=Random(Max[j][i]);
   }
}

//fill up the array with how many resources each process may request
NeedI=new Array();
for (i=0; i<NoProcesses; i++) {
NeedI[i]=new Array();
   for (j=0; j<NoResources; j++) {
      NeedI[j][i]=MaxI[j][i]-AllocI[j][i];
   }
}



//Main
AvailI=AvCons; //initialization of available resources in the system

// Request
Row=Random(NoProcesses);
Column=Random(NoResources);
Cell=Random(Need[Row][Column]);
Request=Random(Cell); 

if ((Request<=NeedI[Row][Column]) && (Request<=AvailI[Column])) {
   AvailI[Column]=AvailI[Column]-Request;
   AllocI[Row][Column]=AllocI[Row][Column]+Request;
   NeedI[Row][Column]=NeedI[Row][Column]-Request;
}

Finish = new Array();
Finish [NoResources];
for (i=0; i<NoResources; i++) {
   Finish[i]=false;
}

Status = new Array();
Status [NoProcesses];
for (i=0; i<NoProcesses; i++) {
   Status[i]=false;
}

counter=0;
precounter=0;
repeat
   for (Row=0; Row<NoProcesses; Row++) {
      for (Column=0; Column<NoResources; Column++) {
         if ((NeedI[Row][Column]<=AvailI[Column]) && (Status[Row]==false)) {
            AvailI[Column]+=AllocI[Row][Column];
            Finish[Column]=True;
         }
      }
      Pid=true;
      for(Column=0; Column<NoResources; Column++) {
         if (Finish[Column]==false) {
            Pid=false;
         }
      }
      Status[Row]=Pid;
      if (Pid==true) {
         counter++;
      }
   }
   Pst=true;
   for (Row=0; Row<NoProcesses; Row++) {
      if (Status[Row]==false) {
         Pst=false;
      }
   }
   if Pst==true {
      gotoAndPlay ("SAFE");
   }
   Signal=false;
   if counter>precounter {
      precounter=counter;
      signal=true;
   }
until signal==false;
// You are in the UNSAFE state
Блин просто на флешке не превычно такое видеть, кто-нить еще этим страдал )
__________________
Кто рано встает, тому... спать весь день хочется.

Создать новую тему   Часовой пояс GMT +4, время: 00:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:36.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.