-
Strupceļu jēdziens un cīņa ar tiem
Turēšanas un gaidīšanas nosacījumu iespējams novērst piespiežot procesam atbrīvot visus resursus, kad tas pieprasa nepieejamus resursus. To var izdarīt izmantojot kādu no diviem veidiem:
1) process var pieprasīt resursus tikai tad, kad tam pilnībā nav resursu;
2) process var pieprasīt resursus soli pa solim tādā veidā, ka process no sākuma atbrīvo iepriekšējos resursus un tikai tad pieprasa tos, kas pieejami.
Nepārdaāmības nosacījumu iespējams novērst sistēmai atsaucot resursa īpašumtiesības no procesa
Strupceļi var tikt novērsti jau programmas rakstīšanas stadijā. Programmai būtu jābūt uzrakstītai tā, lai strupceļi nevarētu rasties
Vienkāršākais un lietderīgākais paņēmiens paredz, ka katrs process paredz maksimālo viena veida resursu skaitu, kas tam varētu būt nepieciešams. Pastāv arī strupceļu izvairīšanās algoritms. Tas dinamiski analizē resursu piešķiršanas stāvokli, lai nodrošinātu, ka nekad neradīsies cirkulārās gaidīšanas stāvoklis. Resursu piešķiršanas stāvoklis definē pieejamo un piešķirto resursu skaitu.
…
Strupceļš ir situācija datu apstrādes sistēmā, kad divi vai vairāki procesi, kas pieprasa vienus un tos pašus resursus, bloķē viens otru. Strupceļu gadījumā abi procesi gaida viens otra uzdevuma pabeigšanu, lai varētu turpināt. Tam rezultātā abi procesi „uzkaras”. Strupceļi ir viena no galvenajām problēmām vairākuzdevumu sistēmā, paralēlajā skaitļošanā un dalītajās sistēmās, jo tur programmatūras un aparatūras atslēgas tiek izmantotas, lai pārvaldītu koplietojamos resursus un īstenotu procesu sinhronizāciju. Ideālā gadījumā programmai vai operētājsistēmai, kurā rodas strupceļš, pašai vajadzētu to atrisināt, taču tā ne vienmēr notiek.



