Ինչպե՞ս է օգտագործվում սեմաֆորը փոխադարձ բացառման համար:

Ինչպե՞ս է օգտագործվում սեմաֆորը փոխադարձ բացառման համար:
Ինչպե՞ս է օգտագործվում սեմաֆորը փոխադարձ բացառման համար:
Anonim

Սեմաֆորները փոխադարձ բացառման համար բոլոր սեմալիստների ենթակատեգորիան են: Դրանք սովորաբար օգտագործվում են ռեսուրսի մուտքն արգելափակելու համար: … Սկսեք բոլոր գործընթացները և մեկ անգամ ազդանշան տվեք սեմաֆորին: Սպասողական գործընթացներից մեկը կանցնի. այնուհետև դա ազդանշան կտա սեմաֆորին, և կանցնի մեկ այլ սպասող գործընթաց. և այլն։

Ինչպե՞ս է սեմաֆորն իրականացնում փոխադարձ բացառումը:

Ռեսուրսների օգտագործման փոխադարձ բացառում ապահովելու համար, ինչպիսին է կապակցված ցուցակը, գործընթացները ստեղծում են մեկ սեմալտ, որն ունի 1 նախնական հաշվարկ: Նախքան ընդհանուր ռեսուրս մուտք գործելը, գործընթացը զանգեր է տալիս սպասել սեմալիստին և ազդանշան է կանչում այն մուտքի ավարտից հետո:

Ինչպե՞ս է օգտագործվում սեմաֆորը, երբ 2 գործընթացներ, որոնք փոխադարձ բացառման կարիք ունեն:

Երկու գործընթացներ կարող են իրականացնել փոխադարձ բացառում՝ օգտագործելով երկուական սեմաֆոր: Կրիտիկական հատվածները փակագծված են P(S) և V(S): P(S) մուտքի կամ բացման փակագիծն է. V(S)-ը ելքի կամ փակման փակագիծն է: Երկուական սեմաֆոր ունեցող երկու գործընթացների համար. Եթե S=1, ապա ոչ մի պրոցես չի կատարում իր կրիտիկական հատվածը:

Կարո՞ղ է երկուական սեմաֆորը ապահովել փոխադարձ բացառում:

Այնուամենայնիվ, Երկուական սեմաֆորը խստորեն ապահովում է փոխադարձ բացառում: Այստեղ, կրիտիկական հատվածում 1-ից ավելի սլոտ ունենալու փոխարեն, կրիտիկական հատվածում կարող ենք ունենալ առավելագույնը 1 պրոցես։ Սեմաֆորը կարող է ունենալ միայն երկու արժեք՝ 0 կամ 1։ Եկեք տեսնենք ծրագրավորումըԵրկուական սեմաֆորի իրականացում։

Ո՞րն է սեմաֆորի օգտագործման նպատակը:

Սեմաֆորը ամբողջ թվով փոփոխական է, որը համօգտագործվում է բազմաթիվ գործընթացների միջև: Սեմալտի օգտագործման հիմնական նպատակն է գործընթացի համաժամացումը և մուտքի վերահսկումը ընդհանուր ռեսուրսի համար միաժամանակյա միջավայրում: Սեմաֆորի սկզբնական արժեքը կախված է խնդրից:

Խորհուրդ ենք տալիս: