Junior — Middle
Ի՞նչ է նվազագույն քանակը հոսանքների, որոնք անհրաժեշտ են փոխադարձ փակման (Deadlock) առաջացման համար։
sobes.tech AI
Պատասխան AI-ից
Deadlock-ի առաջացման համար անհրաժեշտ նվազագույն հոսքերի թիվը երկու է:
Միջմիջային փակման դեպքում երկու կամ ավելի հոսքերը միաժամանակ պահում են ռեսուրսներ և սպասում են, որ մյուս հոսքը ազատի այն ռեսուրսը, որը պահում է։ Օրինակ՝
- Հոսք A-ն փակել է ռեսուրս 1-ը և սպասում է ռեսուրս 2-ին։
- Հոսք B-ն փակել է ռեսուրս 2-ը և սպասում է ռեսուրս 1-ին։
Երկուսն էլ անսահման ժամանակով փակված են, քանի որ յուրաքանչյուրն սպասում է մյուսի ռեսուրսի ազատմանը։
Պսևդոկոդի օրինակ՝
// Հոսք 1
lock(ռեսուրս1)
wait()
lock(ռեսուրս2)
// Հոսք 2
lock(ռեսուրս2)
wait()
lock(ռեսուրս1)
Այսպիսով, deadlock-ի համար բավարար է երկու հոսք և երկու ռեսուրս։