„Strupceļu novēršanas politikas – „Baņķiera algoritms” ”
Uzdevuma nostādne
Strupceļu novēršanas politikas – „Baņķiera algoritms”
Izstrādāt programmu (programmēšanas valoda būs noteikta uzdevuma variantā), kas realizē „Baņķiera algoritmu” un konstatē sistēmas stāvokli – drošs vai nedrošs. Uzdevuma variantā būs noteikti sekojošie dati:
• Procesu skaits, kas izpildās sistēmā vienlaicīgi – n
• Resursa vienību skaits, ko nodrošina sistēma – t
• Katra izpildāma procesa maksimāla vajadzība pēc resursa – m(i), kur i – procesa numurs.
Programmā dialogā tiek ievadīti dati par katra procesa pieprasījumiem resursa iedalīšanai vai atbrīvošanai (resursi tiek iedalīti un atbrīvoti pa vienai vienībai) un programma konstatē var vai nē apmierināt pieprasījumus, izejot no tā, ka sistēmas stāvoklis jāpaliek drošs. Ja var, tad sistēma fiksē jauno stāvokli (katram procesam izdalītie resursi), ja nē – izdod paziņojumu „Nevar apmierināt pieprasījumus” un paliek iepriekšējais sistēmas stāvoklis (katram procesam izdalītie resursi nemaina savu vērtību). Programmas izpildes gaitā sistēmai obligāti vajag paiet variantā uzrādītus stāvokļus A un B, kuriem tabulās ir uzrādīts arī, cik resursa vienības jau ir piešķirtas katram procesam. Parādīt, kā nedrošs stāvoklis (A vai B?) var novest pie strupceļa un kā pēc droša stāvokļa (A vai B?) visi procesi var pabeigt savu darbu (ar to arī beidzas programmas izpilde).