Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Операционные среды АСОИУ / L12
.TXT я_я13.6. ЏаЁ¬ЁвЁўл бЁеа®Ё§ жЁЁ Їа®жҐбб®ў
я13.6.1. Џа®б⥩訥 ЇаЁ¬ЁвЁўл, Ґ гзвҐлҐ ў Є« ббЁдЁЄ жЁЁ
ќв® ЇаЁ¬ЁвЁўл ЏаЁ®бв ®ўЁвм_Џа®жҐбб Ё ‚®§®Ў®ўЁвм_Џа®жҐбб.
„«п ®ЇЁб Ёп нвЁе ЇаЁ¬ЁвЁў®ў ўбЇ®¬Ё¬ 2-© ўлў®¤ ЇаҐ¤л¤г饣®
Ї а Ја д ®Ў ®зҐаҐ¤пе.
„«п ॠ«Ё§ жЁЁ нвЁе ЇаЁ¬ЁвЁў®ў ᮧ¤ Ґвбп бЇҐжЁ «м п ®зҐаҐ¤м
ЇаЁ®бв ®ў«Ґле Їа®жҐбб®ў.
’®Ј¤ бвагЄвга ЇаЁ¬ЁвЁў®ў Ўг¤Ґв Ё¬Ґвм б«Ґ¤гойЁ© ўЁ¤:
Procedure ЏаЁ®бв ®ўЁвм_Џа®жҐбб(P : Process);
Begin
ЏђЋ‹Ћѓ;
ЉЋЌ’ђЋ‹њ;
<
‚뢥бвЁ Їа®жҐбб ђ Ё§ ®зҐаҐ¤Ё, ў Є®в®а®© ® 室Ёвбп;
‚ўҐбвЁ Їа®жҐбб ђ ў ®зҐаҐ¤м ЇаЁ®бв ®ў«Ґле Їа®жҐбб®ў;
>
Џ…ђ…ЌЂ‡ЌЂ—€’њ_ЏђЋ–…‘‘Ћђ;
End {ЏаЁ®бв ®ўЁвм_Џа®жҐбб};
Procedure ‚®§®Ў®ўЁвм_Џа®жҐбб(P : Process);
Begin
ЏђЋ‹Ћѓ;
ЉЋЌ’ђЋ‹њ;
<
‚뢥бвЁ Їа®жҐбб ђ Ё§ ®зҐаҐ¤Ё ЇаЁ®бв ®ў«Ґле Їа®жҐбб®ў;
‚ўҐбвЁ Їа®жҐбб ђ ў ®зҐаҐ¤м Ј®в®ўле Їа®жҐбб®ў;
>
Џ…ђ…ЌЂ‡ЌЂ—€’њ_ЏђЋ–…‘‘Ћђ;
End {‚®§®Ў®ўЁвм_Џа®жҐбб};
‡ ¬Ґз Ёп
1) ‚Ё¤ нвЁе ЇаЁ¬ЁвЁў®ў ॠ«Ё§гҐв ®Ўйго Ё¤Ґо
ЇаЁ®бв ®ў /ў®§®Ў®ў«ҐЁп, Є®в®а п ¬®¦Ґв Ўлвм ॠ«Ё§®ў
Ї®-а §®¬г.
2) ќв б ¬ п Їа®б⥩и п д®а¬ ЇаЁ¬ЁвЁў®ў ¤«п б«гз п
Ґ¤«ЁвҐ«мле § ¤Ґа¦ҐЄ. ЏаЁ ¤«ЁвҐ«мле ЇаЁ®бв ®ўЄ е Ґ®Ўе®¤Ё¬®
®бў®Ў®¤Ёвм аҐбгабл, Є®в®ал¬Ё ў« ¤ҐҐв Їа®жҐбб.
3) ‚ ҐЄ®в®але Ћ‘ ЇаЁ ЇаЁ®бв ®ўЄҐ Їа®жҐбб ђ Ґ®Ўе®¤Ё¬®
ЇаЁ®бв ў«Ёў вм Ё ўбҐе ҐЈ® Ї®в®¬Є®ў. „агЈ®© ў аЁ в б®бв®Ёв ў
⮬, зв® в®«мЄ® бў®Ёе Ї®в®¬Є®ў Ё ¬®¦Ґв ЇаЁ®бв ў«Ёў вм Їа®жҐбб.
‚ᥠнвЁ ®Ја ЁзҐЁп гзЁвлў овбп ®Ўа Ў®вЄ®© Ї®«Ґ© ¤ҐбЄаЁЇв®а
Їа®жҐбб .
4) ђ бЇа®бва Ґл¬ бЇ®б®Ў®¬ ЁбЇ®«м§®ў Ёп нвЁе ЇаЁ¬ЁвЁў®ў
пў«пҐвбп ЇаЁ®бв ®ўЄ Їа®жҐбб , ®иЁЎ®з® ў®иҐ¤иҐЈ® ў ЎҐбЄ®Ґзл©
жЁЄ«. ЏаҐаў л© в ЄЁ¬ ®Ўа §®¬ Їа®жҐбб ЇҐаҐ¤ Ґвбп ў бЇҐжЁ «мго
®зҐаҐ¤м ҐЇа ўЁ«м® а Ў®в ойЁе Їа®жҐбб®ў, Є®в®а п ®Ўа Ў влў Ґвбп
бЇҐжЁ «мл¬ ®Ўа Ў®взЁЄ®¬ ®иЁЎ®Є. ‚ҐиҐ ॠЄжЁп Ї®е®¦
ЁбЄ«о票Ґ.
5) ЏаЁўҐ¤ҐлҐ ЇаЁ¬ЁвЁўл ¬®¦® а бб¬ ваЁў вм Є Є ЇҐаўго
Ї®ЇлвЄг бЁеа®Ё§Ёа®ў Ёп ¤Ґ©бвўЁ© ҐбЄ®«мЄЁе Їа®жҐбб®ў.
я13.6.2. ЏаЁ¬ЁвЁўл ўаҐ¬Ґ®© бЁеа®Ё§ жЁЁ
ЏаЁ ўаҐ¬Ґ®© бЁеа®Ё§ жЁЁ я2‚ђ…Њџя0 ўлбвгЇ Ґв ў Є зҐб⢥ ¬Ґал
¤«ЁвҐ«м®бвЁ пў«ҐЁ©. ‡ ЎҐЈ п ўЇҐаҐ¤, бЄ ¦Ґ¬, зв® ў ¤агЈЁе
б«гз пе Ґ ў ¦ Ўб®«ов п ¤«ЁвҐ«м®бвм пў«ҐЁ©, ў ¦л в®«мЄ®
б®®в®иҐЁп ђЂЌњ…/ЏЋ‡†….
Џа®Ў«Ґ¬л ўаҐ¬Ґ®© бЁеа®Ё§ жЁЁ аҐи овбп б Ї®¬®ймо
ЇаЁ¬ЁвЁў ‡ ¤Ґа¦ вм_Џа®жҐбб(ђ : Process; T : Integer). ‡¤Ґбм ’
а бб¬ ваЁў Ґвбп Є Є 楫®Ґ зЁб«®, в.Є. ўаҐ¬п ў ¬ иЁҐ Ё§¬ҐапҐвбп
Є®«ЁзҐбвў®¬ "вЁЄ®ў" - ЁвҐаў «®ў ўаҐ¬ҐЁ ¬Ґ¦¤г ЇаҐалў Ёп¬Ё ®в
в ©¬Ґа .
‚ ®¤®§ ¤ зле бЁб⥬ е «®Ј®¬ ¤ ®Ј® ЇаЁ¬ЁвЁў пў«пҐвбп
ўл§®ў Їа®жҐ¤гал Delay(T), Є®в®а п ¬®¦Ґв Ўлвм ЁбЇ®«м§®ў Ё ў
¬®Ј®§ ¤ з®© б।Ґ. Њ®¤Ґ«мо нв®© § ¤Ґа¦ЄЁ пў«пҐвбп жЁЄ«
б«Ґ¤го饣® ўЁ¤ :
... ...
Delay(T); For k := 0 To N Do ;
... ...
‚®Їа®б б®бв®Ёв в®«мЄ® ў ўлЎ®аҐ Ї®¤е®¤п饣® N.
‚ «оЎ®¬ б«гз Ґ нв®в ў аЁ в ॠ«Ё§гҐв " ЄвЁў®Ґ ®¦Ё¤ ЁҐ",
в.Ґ. § ¤Ґа¦Ёў Ґ¬л© в ЄЁ¬ ®Ўа §®¬ Їа®жҐбб ўбҐ а ў® ўлЇ®«пҐвбп,
§ Ё¬ п Їа®жҐбб®а, е®вп Ё ЁзҐЈ® Ґ ¤Ґ« Ґв Ї®«Ґ§®Ј®.
‚ ¬®Ј®§ ¤ з®© бЁб⥬Ґ в Є®¬г Їа®жҐббг, ўлЇ®«по饬г
"Їгбвго" а Ў®вг в Є¦Ґ, Є Є Ё ¤агЈЁ¬ Їа®жҐбб ¬, ¤ЁбЇҐвзҐа ўл¤Ґ«пҐв
Єў вл ўаҐ¬ҐЁ ўлЇ®«ҐЁҐ.
Џ®н⮬㠤«п бЁбвҐ¬л ў 楫®¬ Ј®а §¤® ўлЈ®¤ҐҐ бпвм в Є®©
Їа®жҐбб б ўлЇ®«ҐЁп ( Ё¬Ґ® Ё§ ®зҐаҐ¤Ё Ј®в®ўле Їа®жҐбб®ў)
ўаҐ¬п § ¤Ґа¦ЄЁ Ё Ґ ЇаҐ¤®бв ў«пвм Ґ¬г Їа®жҐбб®а®Ґ ўаҐ¬п, ⥬
б ¬л¬ г«гзиЁў гб«®ўЁп ўлЇ®«ҐЁп ¤агЈЁе Їа®жҐбб®ў.
’.Ґ. ®Їпвм § ¤Ґа¦Є Їа®жҐбб - нв® бпвЁҐ ҐЈ® Ё§ ®зҐаҐ¤Ё
Ј®в®ўле Їа®жҐбб®ў Ё ЇҐаҐў®¤ ҐЈ® ў ¤агЈго, бЇҐжЁ «м®
ЇаҐ¤ § зҐго ¤«п § ¤Ґа¦ҐЄ ўаҐ¬п ®зҐаҐ¤м.
‘®ўҐа襮 Ї®пв®, Є Є Ї®бв ўЁвм Їа®жҐбб ў ®зҐаҐ¤м. ‚бв Ґв
ў®Їа®б, Є®Ј¤ ҐЈ® Ё§ нв®© ®зҐаҐ¤Ё Ё§ў«Ґзм Ё ЇҐаҐўҐбвЁ ў ®зҐаҐ¤м
Ј®в®ўле Їа®жҐбб®ў.
…б«Ё Їа®жҐбб бв ўЁвбп ў ®зҐаҐ¤м ў ⥪гйЁ© ¬®¬Ґв ўаҐ¬ҐЁ ’в,
Ё ўаҐ¬п, Є®в®а®Ґ ® бв ўЁвбп ў ®зҐаҐ¤м, а ў® ’, в®
ЄвЁўЁ§Ёа®ў вм ҐЈ® ¤® ў ⥪гйЁ© ¬®¬Ґв ўаҐ¬ҐЁ ’ = ’ + ’.
Ќ б奬Ґ ’ = 6.
і і і і і і і і
ДДЕДДДДДДДБДДДДДДДБДДДДДДДБДДДДДДДБДДДДДДДБДДДДДДДЕДДДДДДДБДД>t
’в ’в+1 ’в+2 ’в+3 ’в+4 ’в+5 ’в+6 ’ = ’в+’
‘в ўЁ¬ €§ў«ҐЄ Ґ¬
ў ®зҐаҐ¤м Ё§ ®зҐаҐ¤Ё
‚ п¤аҐ Ёд®а¬ жЁҐ© ® ⥪г饬 ўаҐ¬ҐЁ ў« ¤ҐҐв ¤ЁбЇҐвзҐа, в.Є.
нв® ®Ўа Ў®взЁЄ ЇаҐалў Ё© ®в в ©¬Ґа - бзҐвзЁЄ ўаҐ¬ҐЁ.
„ЁбЇҐвзҐа Ї®¤бзЁвлў Ґв ўаҐ¬п ў ўЁ¤Ґ "вЁЄ®ў", Ї®н⮬г
Ё§ў«ҐЄ вм Їа®жҐббл Ё§ ®зҐаҐ¤Ё § ¤Ґа¦ ле ўаҐ¬п Їа®жҐбб®ў
«гзиҐ ўбҐЈ® ¤ЁбЇҐвзҐаг. „Ґ« вм нв® ¤® в®Ј¤ , Є®Ј¤ ⥪г饥
ўаҐ¬п б®ўЇ ¤Ґв б ўаҐ¬ҐҐ¬ ЄвЁўЁ§ жЁЁ Їа®жҐбб .
‚аҐ¬п ЄвЁўЁ§ жЁЁ Їа®жҐбб ўлзЁб«пҐвбп Ї® д®а¬г«Ґ ’ := ’в+’
ў ¬®¬Ґв Ї®бв ®ўЄЁ ў ®зҐаҐ¤м § ¤Ґа¦ ле ўаҐ¬п Їа®жҐбб®ў Ё
§ ЇЁблў Ґвбп ў бЇҐжЁ «м®Ґ Ї®«Ґ ў ¤ҐбЄаЁЇв®аҐ Їа®жҐбб .
ЌҐ ®бв Ґвбп ЁзҐЈ® Ё®Ј®, Є Є Є ¦¤®¬ ЇаҐалў ЁЁ ®в
в ©¬Ґа ЇаЁ ўл§®ўҐ ¤ЁбЇҐвзҐа ў б ¬®¬ ўл§®ўҐ ¤ЁбЇҐвзҐа
Їа®б¬ ваЁў вм ўбо ®зҐаҐ¤м § ¤Ґа¦ ле Їа®жҐбб®ў Ё ᢥапвм ⥪г饥
ўаҐ¬п б ўаҐ¬Ґ ¬Ё ЄвЁўЁ§ жЁЁ Їа®жҐбб®ў, бв®пйЁе ў нв®© ®зҐаҐ¤Ё.
ЏаЁ б®ўЇ ¤ҐЁЁ ⥪г饣® ўаҐ¬ҐЁ б ўаҐ¬ҐҐ¬ ЄвЁўЁ§ жЁЁ, Їа®жҐбб
Ё§ў«ҐЄ Ґвбп Ё§ ®зҐаҐ¤Ё § ¤Ґа¦ ле Ё ЇҐаҐў®¤Ёвбп ў ®зҐаҐ¤м
Ј®в®ўле Їа®жҐбб®ў.
(‘гйҐбвўгҐв «®ЈЁп б гЁз⮦ҐЁҐ¬ Їа®жҐбб®ў. ЏаЁ¬ЁвЁў
“Ёз⮦Ёвм_Џа®жҐбб ЇҐаҐў®¤Ёв Їа®жҐбб ў ®зҐаҐ¤м гЁз⮦ Ґ¬ле
Їа®жҐбб®ў, ¤ЁбЇҐвзҐа Є ¦¤®¬ ⠪⥠®зЁй Ґв нвг ®зҐаҐ¤м.
‡¤Ґбм: ЇаЁ¬ЁвЁў ‡ ¤Ґа¦ вм_Џа®жҐбб ЇҐаҐў®¤Ёв Їа®жҐбб ў
®зҐаҐ¤м § ¤Ґа¦ ле Їа®жҐбб®ў, ¤ЁбЇҐвзҐа Є ¦¤®¬ ⠪⥠нвг
®зҐаҐ¤м «Ё§ЁагҐв Ё ЄвЁўЁ§ЁагҐв Їа®жҐббл, ¤«п Є®в®але б®ўЇ «®
⥪г饥 ўаҐ¬п б ўаҐ¬ҐҐ¬ ЄвЁўЁ§ жЁЁ.)
‚ ᮮ⢥вбвўЁҐ б Ё§«®¦Ґл¬ бвагЄвга ЇаЁ¬ЁвЁў®ў § ¤Ґа¦ЄЁ Ё
ЄвЁўЁ§ жЁЁ Ўг¤Ґв Ё¬Ґвм б«Ґ¤гойЁ© ўЁ¤:
Procedure ‡ ¤Ґа¦ вм_Џа®жҐбб(P : Process; T : Integer);
Begin
ЏђЋ‹Ћѓ;
ЉЋЌ’ђЋ‹њ;
<
‚뢥бвЁ Їа®жҐбб ђ Ё§ ®зҐаҐ¤Ё, ў Є®в®а®© ® 室Ёвбп;
‚ўҐбвЁ Їа®жҐбб ђ ў ®зҐаҐ¤м § ¤Ґа¦ ле ўаҐ¬п Їа®жҐбб®ў;
“бв ®ўЁвм Ї®«Ґ ¤ҐбЄаЁЇв®а Їа®жҐбб ђ ў ᮮ⢥вбвўЁҐ б
д®а¬г«®© ’ := ’в + ’;
>
Џ…ђ…ЌЂ‡ЌЂ—€’њ_ЏђЋ–…‘‘Ћђ;
End {‡ ¤Ґа¦ вм_Џа®жҐбб};
Procedure ЂЉ’€‚€‡Ђ–€џ_‡Ђ„…ђ†ЂЌЌ›•_ЌЂ_‚ђ…Њџ_ЏђЋ–…‘‘Ћ‚;
Begin
„«п ўбҐе Їа®жҐбб®ў Ё§ ®зҐаҐ¤Ё § ¤Ґа¦ ле ¤Ґ« вм б«Ґ¤го饥:
…б«Ё ‚аҐ¬п ЄвЁўЁ§ жЁЁ Їа®жҐбб а ў® ⥪г饬㠢६ҐЁ, в®
1) ‚뢥бвЁ Їа®жҐбб Ё§ ®зҐаҐ¤Ё § ¤Ґа¦ ле ўаҐ¬п Їа®жҐбб®ў;
2) ‚ўҐбвЁ Їа®жҐбб ў ®зҐаҐ¤м Ј®в®ўле Їа®жҐбб®ў;
End {ЂЉ’€‚€‡Ђ–€џ_‡Ђ„…ђ†ЂЌЌ›•_ЌЂ_‚ђ…Њџ_ЏђЋ–…‘‘Ћ‚};
Џа®жҐ¤гаг ЂЉ’€‚€‡Ђ–€џ_‡Ђ„…ђ†ЂЌЌ›•_ЌЂ_‚ђ…Њџ_ЏђЋ–…‘‘Ћ‚
Ґ®Ўе®¤Ё¬® Ї®¬ҐбвЁвм ў „ЁбЇҐвзҐа:
Procedure Dispatcher; Interrupt;
Begin
ЂЉ’€‚€‡Ђ–€џ_‡Ђ„…ђ†ЂЌЌ›•_ЌЂ_‚ђ…Њџ_ЏђЋ–…‘‘Ћ‚;
Ћ—€‘’€’њ_Ћ—…ђ…„њ_“Ќ€—’Ћ†Ђ…Њ›•_ЏђЋ–…‘‘Ћ‚;
Џ…ђ…ЌЂ‡ЌЂ—€’њ_ЏђЋ–…‘‘Ћђ;
End;
…б«Ё ®зҐаҐ¤м § ¤Ґа¦ ле ўаҐ¬п Їа®жҐбб®ў ®вб®авЁа®ў Ї®
ў®§а бв Ёо ўаҐ¬ҐЁ ЄвЁўЁ§ жЁЁ, бЄ®а®бвм «Ё§ ®зҐаҐ¤Ё ¬®¦®
㢥«ЁзЁвм, зв® ў ¦®, в.Є. ®зҐаҐ¤м «Ё§ЁагҐвбп ў ®Ўа Ў®взЁЄҐ
ЇаҐалў Ё©.
я13.6.3. ЏаЁ¬ЁвЁўл б®ЎлвЁ©®© бЁеа®Ё§ жЁЁ Їа®жҐбб®ў
Њл 㦥 § Ґ¬, зв® бгйҐбвўгов б«Ґ¤гойЁҐ Ї®пвЁп:
1) ЄаЁвЁзҐбЄЁ© аҐбгаб - а §¤Ґ«пҐ¬л© аҐбгаб, б Є®в®ал¬ ¬®Јгв
а Ў®в вм ҐбЄ®«мЄ® Ї а ««Ґ«мле Їа®жҐбб®ў;
2) ЄаЁвЁзҐбЄЁ© гз бв®Є - гз бв®Є Їа®Ја ¬¬л Їа®жҐбб , ў
Є®в®а®¬ ®ЇЁб л ¤Ґ©бвўЁп б ЄаЁвЁзҐбЄЁ¬ аҐбгаᮬ;
3) ०Ё¬ ў§ Ё¬®Ј® ЁбЄ«о票п - ०Ё¬ ўлЇ®«ҐЁп
ЄаЁвЁзҐбЄ®Ј® гз бвЄ ЎҐ§ ЇҐаҐ¤ зЁ гЇа ў«ҐЁп ®в ®¤®Ј® Їа®жҐбб Є
¤агЈ®¬г.
‚ ¦®, зв® Їа®Ў«Ґ¬ ¤®бвгЇ Є ЄаЁвЁзҐбЄ®¬г аҐбгабг бўп§
Ґ б зЁб«®¬ Їа®жҐбб®а®ў, Є®в®але ўлЇ®«повбп Їа®жҐббл,
Ё¬Ґ® б ®ЎйЁ¬ аҐбгаᮬ.
ЏаЁ¬Ґа: N - бзҐв ў жҐва «м®¬ Ў ЄҐ. ‘ ¤ўге вҐа¬Ё «®ў
¤Ґ« Ґвбп Ї®ЇлвЄ ҐЈ® Ё§¬ҐЁвм.
ЉаЁвЁзҐбЄЁ© аҐбгаб
ЪДДДДДї/
P1 ЪДДДДДДДДДДДДД>ґ N Г<ДДДДДДДДДДДДДДї P2
v АДДДДДЩ v
ЪДДДДДДБДДДДДДї ЪДДДДДДБДДДДДДї
і R := N; і і R := N; і
і R := R + S1;і ЉаЁвЁзҐбЄЁ© гз бв®Є і R := R + S2;і
і N := R; і і N := R; і
АДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДЩ
Ћ¦Ё¤ Ґ¬ १г«мв в: N = N + S1 + S2;
Њ®¦Ґ¬ Ї®«гзЁвм: N = N + S1; Ё«Ё N = N + S2.
ЋЎй п Ё¤Ґп аҐиҐЁп нв®© Їа®Ў«Ґ¬л б®бв®Ёв ў ⮬, зв® в®«мЄ®
®¤Ё Їа®жҐбб ¤®«¦Ґ а Ў®в вм ў ЄаЁвЁзҐбЄ®¬ гз бвЄҐ, ўбҐ
®бв «млҐ, Ї®¤®©¤п Є бў®Ё¬ ЄаЁвЁзҐбЄЁ¬ гз бвЄ ¬, ¤®«¦л †„Ђ’њ,
Є®Ј¤ аҐбгаб ®бў®Ў®¤Ёвбп. ’.Ґ., Ґб«Ё ®¤Ё Їа®жҐбб ў®иҐ« ў
ЄаЁвЁзҐбЄЁ© гз бв®Є, в® ЁЄ Є®© ¤агЈ®© Їа®жҐбб Ґ ¬®¦Ґв ў ҐЈ®
ў®©вЁ. Љ®Ј¤ Їа®жҐбб, Є®в®ал© а Ў®в « ў ЄаЁвЁзҐбЄ®¬ гз бвЄҐ,
ўл©¤Ґв Ё§ ҐЈ®, ¬®¦Ґв ўе®¤Ёвм ў бў®© ЄаЁвЁзҐбЄЁ© гз бв®Є ¤агЈ®©
Їа®жҐбб.
Џа®Ў«Ґ¬ ®аЈ Ё§ жЁЁ в Є®© ®зҐаҐ¤®бвЁ ўе®¦¤ҐЁп Їа®жҐбб®ў ў
ЄаЁвЁзҐбЄЁҐ гз бвЄЁ пў«пҐвбп Є«о祢®© Їа®Ў«Ґ¬®© Ї а ««Ґ«м®Ј®
Їа®Ја ¬¬Ёа®ў Ёп.
‚室 ў ЄаЁвЁзҐбЄЁ© гз бв®Є Ё ўл室 Ё§ ҐЈ® а бб¬ ваЁў овбп
Є Є б®ЎлвЁп. Џ®н⮬г б।бвў аҐиҐЁп нв®© Їа®Ў«Ґ¬л Ё §лў овбп
б।бвў ¬Ё б®ЎлвЁ©®© бЁеа®Ё§ жЁЁ.
‘гйҐбвўгов ЇЇ а влҐ Ё Їа®Ја ¬¬лҐ бЇ®б®Ўл аҐиҐЁп нв®©
Їа®Ў«Ґ¬л ў § ўЁбЁ¬®бвЁ ®в «®ЈЁзҐбЄ®Ј® га®ўп, Є®в®а®¬
а бб¬ ваЁў Ґвбп нв Їа®Ў«Ґ¬ .
„ ¤Ё¬ Ёе Єа вЄЁ© ®Ў§®а.
я21) ЏҐаў®Ґ б।бвў®,я0 Є®в®а®Ґ Їа иЁў Ґвбп б ¬® б®Ў®© -
§ ЇаҐв ЇаҐалў Ё© ўе®¤Ґ ЄаЁвЁзҐбЄ®Ј® гз бвЄ Ё а §аҐиҐЁҐ
ЇаҐалў Ё© ўл室Ґ Ё§ ҐЈ®.
P1: P2:
cli cli
ЉаЁвЁзҐбЄЁ© гз бв®Є; ЉаЁвЁзҐбЄЁ© гз бв®Є;
sti sti
ќв®в бЇ®б®Ў Ё¬ҐҐв б«Ґ¤гойЁҐ Ґ¤®бв вЄЁ:
- § Єалў овбп ўбҐ ЇаҐалў Ёп; бЁб⥬ бв ®ўЁвбп "б«ҐЇ®©" Ё
"Ј«ге®©" ¤«п ўбҐе ўҐиЁе ў®§¤Ґ©бвўЁ© ўаҐ¬п ўлЇ®«ҐЁп
ЄаЁвЁзҐбЄ®Ј® гз бвЄ ; Ї®н⮬г нв®в бЇ®б®Ў ¬®¦Ґв Ўлвм ЁбЇ®«м§®ў
в®«мЄ® ¤«п Є®а®вЄЁе ЄаЁвЁзҐбЄЁе гз бвЄ®ў, Ё ® в Є Ё
ЁбЇ®«м§гҐвбп; ® нв® - Ў §®ў®Ґ б।бвў®, Ї®н⮬㠮® ў ⮬ Ё«Ё
Ё®¬ ўЁ¤Ґ ЇаЁбгвбвўгҐв ў® ўбҐе ®бв «мле б।бвў е.
- ЇаЁ®бв ў«Ёў Ґвбп ўлЇ®«ҐЁҐ ўбҐе Їа®жҐбб®ў, Єа®¬Ґ,
ҐбвҐб⢥®, ЄвЁў®Ј®, ¤ ¦Ґ вҐе, Є®в®алҐ Ё Ґ б®ЎЁа овбп
ЁбЇ®«м§®ў вм ЄаЁвЁзҐбЄЁ© аҐбгаб.
я22) ‚в®а®© бЇ®б®Ў.я0 ‡ ЇаҐв Ґ ўбҐе ЇаҐалў Ё©, ¬ бЄЁа®ў ЁҐ
ЇаҐалў Ё© в®«мЄ® ®в в ©¬Ґа .
ќв® Ў®«ҐҐ в®ЄЁ© ¬Ґв®¤. Ћ гбва пҐв ЇҐаўл© Ё§ Ґ¤®бв вЄ®ў
ЇҐаў®Ј® бЇ®б®Ў ®аЈ Ё§ жЁЁ ў§ Ё¬®Ј® ЁбЄ«о票п, б®бв®пйЁ© ў
⮬, зв® бЁб⥬ ЇҐаҐбв Ґв ॠЈЁа®ў вм «оЎлҐ ўҐиЁҐ бЁЈ «л.
Ќ® ўв®а®© Ґ¤®бв в®Є, б®бв®пйЁ© ў ⮬, зв® Їа®жҐббл, Ґ
Ё¬ҐойЁҐ ®в®иҐЁп Є ¤ ®¬г ЄаЁвЁзҐбЄ®¬г аҐбгабг, ⮦Ґ
ЇаЁ®бв ў«Ёў овбп, в Є Ё Ґ гбва Ґ.
я23) ’аҐвЁ© бЇ®б®Ў.я0 “бв ў«Ёў Ґвбп д« Ј § пв®бвЁ аҐбгаб .
Ќ ЇаЁ¬Ґа:
Flag = 0 - аҐбгаб бў®Ў®¤Ґ;
Flag = 1 - аҐбгаб § пв.
Џа®жҐбб ЇҐаҐ¤ ўе®¤®¬ ў ЄаЁвЁзҐбЄЁ© гз бв®Є Їа®ўҐапҐв
§ 票Ґ д« Ј . …б«Ё д« Ј а ўҐ г«о, в® Їа®жҐбб гбв ў«Ёў Ґв
д« Ј ў б®бв®пЁҐ 1 (§ пв) Ё ўе®¤Ёв ў ЄаЁвЁзҐбЄЁ© гз бв®Є. …б«Ё
д« Ј а ўҐ Ґ¤ЁЁжҐ, в® Їа®жҐбб б®ў ЇҐаҐе®¤Ёв Їа®ўҐаЄг
§ 票п д« Ј .
ЏаЁ ўл室Ґ Ё§ ЄаЁвЁзҐбЄ®Ј® гз бвЄ Їа®жҐбб гбв ў«Ёў Ґв
д« Ј ў б®бв®пЁҐ 0 (бў®Ў®¤Ґ).
‚ аЁ в ЎҐ§ ¬ҐвЄЁ:
M: If Flag = 1 Then GoTo M; => While Flag = 1 Do ;
Flag := 1;
ЉаЁвЁзҐбЄЁ© гз бв®Є;
Flag := 0;
ЋЄ §лў Ґвбп, зв® нв®в бЇ®б®Ў Ґ бЁ¬ Ґв Їа®Ў«Ґ¬л.
"ЋвЄ®¬ЇЁ«Ёа㥬" ЇаҐ¤л¤гйЁ© Є®¤:
M: cmp Flag, 1
jz M
mov Flag, 1
ЉаЁвЁзҐбЄЁ© гз бв®Є;
mov Flag, 0
ЏаҐ¤Ї®«®¦Ё¬, зв® Flag = 0 Ё ЇҐаҐ¤ з гЇа ў«ҐЁп Їа®Ёб室Ёв
ба §г ¦Ґ § ЁбвагЄжЁҐ© я2cmp Flag, 1я0, Ё ўв®а®© Їа®жҐбб ўлЇ®«пҐв
ЁбвагЄжЁо я2cmp Flag, 1я0. „«п ®Ў®Ёе Їа®жҐбб®ў Flag ®Є ¦Ґвбп а ўл¬
г«о Ё ®Ё ®Ў ў®©¤гв ў ЄаЁвЁзҐбЄЁ© гз бв®Є.
ќв® Їа®Ёб室Ёв Ї®в®¬г, зв® Flag б ¬ пў«пҐвбп ЄаЁвЁзҐбЄЁ¬
аҐбгаᮬ Ё ¤®бвгЇ Є Ґ¬г ¤® ®аЈ Ё§®ўлў вм ў ०Ё¬Ґ ў§ Ё¬®Ј®
ЁбЄ«о票п:
M1 : cli Ё«Ё M1 : sti
cmp Flag, 1 cli
jnz M2 cmp Flag, 1
sti jz M1
jmp M1 mov Flag, 1
M2 : mov Flag, 1 sti
sti ЉаЁвЁзҐбЄЁ© гз бв®Є;
ЉаЁвЁзҐбЄЁ© гз бв®Є; mov Flag, 0
mov Flag, 0
’аҐвЁ© ў аЁ в б ЁбвагЄжЁҐ© "®Ў¬Ґпвм" - xchg:
mov ax, 1
M: xchg ax, Flag
cmp ax, 1
jz M
ЉаЁвЁзҐбЄЁ© гз бв®Є;
mov Flag, 0
…б«Ё Flag = 0, в® Flag гбв ®ўЁвбп ў 1, ax гбв ®ўЁвбп ў
0, Ё Їа®жҐбб ў®©¤Ґв ў ЄаЁвЁзҐбЄЁ© гз бв®Є.
…б«Ё Flag = 1, в® ® ®бв Ґвбп ў 1 Ё ax ®бв Ґвбп ў 1, Ё
Їа®жҐбб ЇҐаҐ©¤Ґв ¬ҐвЄг Њ, в.Ґ. Ўг¤Ґв ¦¤ вм гбв ®ўЄЁ Flag ў 0.
—⥨Ґ Ё гбв ®ўЄ д« Ј Їа®Ё§ў®¤пвбп § ®¤г ЁбвагЄжЁо,
нв® - Ґ¤Ґ«Ё¬®Ґ ¤Ґ©бвўЁҐ Ї® ®ЇаҐ¤Ґ«ҐЁо.
Ћв¬ҐвЁ¬, зв® §¤Ґбм зЁ ов дЁЈгаЁа®ў вм ®зҐм
Ё§Є®га®ўҐўлҐ, Їа ЄвЁзҐбЄЁ, ЇЇ а влҐ б।бвў . Љ в ЄЁ¬
ЇЇ а вл¬ б।бвў ¬ ®в®бЁвбп Ў«®ЄЁа®ўЄ ¬ ЈЁбва «Ё, Є®в®а®©
¬®¦® ®ЎҐбЇҐзЁў вм Ґ¤Ґ«Ё¬®бвм ҐЄ®в®але ЁбвагЄжЁ©. Ѓ«®ЄЁа®ўЄ
¬ ЈЁбва «Ё ЇаЁ ўлЇ®«ҐЁЁ ЁбвагЄжЁЁ XCHG ®бгйҐбвў«пҐвбп Ї®
㬮«з Ёо.
‚ў®¤п ў Їа®Ја ¬¬Ґ ЇаҐдЁЄб LOCK, ¬®¦® ®ЎҐбЇҐзЁвм Ў«®ЄЁа®ўЄг
¬ ЈЁбва «Ё ЇаЁ ўлЇ®«ҐЁЁ ҐЄ®в®але ¤агЈЁе ЁбвагЄжЁ©: INC, DEC,
ADD, SUB, AND, OR.
‡ Јаг§Є TSS ®бгйҐбвў«пҐвбп ЇаЁ Ў«®ЄЁа®ўЄҐ ¬ ЈЁбва «Ё.
я_‚лў®¤л Ї® ваҐв쥬г бЇ®б®Ўг ®ЎҐбЇҐзҐЁп ў§ Ё¬®Ј® ЁбЄ«о票п
1) ‘Ї®б®Ў Ё¬ҐҐв ¤®бв®Ёбвў®, б®бв®п饥 ў ⮬, зв®
ЄаЁвЁзҐбЄЁ© гз бв®Є б д« Ј®¬ Ё¬ҐҐв ¬ «ҐмЄго Ё дЁЄбЁа®ў го
¤«Ёг.
2) ‘Ї®б®Ў Ё««обваЁагҐв ў ¦го Ё¤Ґо ®ЎҐбЇҐзҐЁп ў§ Ё¬®Ј®
ЁбЄ«о票п, б®бв®пйго ў ⮬, зв® ¤«п ¤®бвгЇ Є ®¤®¬г - ®б®ў®¬г
аҐбгабг Ґ®Ўе®¤Ё¬® § еў вЁвм ¤агЈ®© - ¤®Ї®«ЁвҐ«мл© аҐбгаб.
3) ‘Ї®б®Ў Ґ Ё§Ў ў«пҐв ®в " ЄвЁў®Ј® ®¦Ё¤ Ёп" - жЁЄ«
®Їа®б д« Ј ¤® ҐЈ® ®бў®Ў®¦¤ҐЁп.
4) ‘Ї®б®Ў, Є Є Ё ¤ў ЇаҐ¤л¤гйЁе Ё««обваЁагҐв ®Ўйго бвагЄвгаг
гз бвЄ Їа®Ја ¬¬л, а Ў®в о饣® б ЄаЁвЁзҐбЄЁ¬ аҐбгаᮬ - нв®
«ЁзЁҐ «®ЈЁзҐбЄЁе бЄ®Ў®Є - я1ўе®¤я0 ў ЄаЁвЁзҐбЄЁ© гз бв®Є Ё я1ўл室я0 Ё§
ЄаЁвЁзҐбЄ®Ј® гз бвЄ :
‚室;
ЉаЁвЁзҐбЄЁ© гз бв®Є;
‚л室;
‘в६«ҐЁҐ гбва Ёвм Ї®б«Ґ¤Ё© Ґ¤®бв в®Є ЇаЁўҐ«® Є
Ї®пў«ҐЁо ¤агЈЁе, Ў®«ҐҐ ўлб®Є®га®ўҐўле б।бвў, Є®в®алҐ ¬л Ё
Ўг¤Ґ¬ бзЁв вм ЇаЁ¬ЁвЁў ¬Ё п¤а ¤«п б®ЎлвЁ©®© бЁеа®Ё§ жЁЁ
Їа®жҐбб®ў.
я2‘Ґ¬ д®ал Є Є ЇаЁ¬ЁвЁўл п¤а Ё б।бвў® бЁеа®Ё§ жЁЁ
ЋЎй п Ё¤Ґп ўбҐе Ї®б«Ґ¤гойЁе бЇ®б®Ў®ў б®бв®Ёв ў ⮬, зв® Ґб«Ё
Їа®жҐббг ЇаЁе®¤Ёвбп ¦¤ вм ®бў®Ў®¦¤ҐЁп аҐбгаб , в® Їгбвм ® ¦¤Ґв
нв®Ј® ў бЇҐжЁ «м®© ®зҐаҐ¤Ё.
’ Є Ї®пўЁ«Ёбм ¤ў®Ёзл© Ё ®ЎйЁ© ᥬ д®а „Ґ©Єбвал.
„ў®Ёзл© бҐ¬ д®а ᮤҐа¦Ёв д« Ј, Є®в®ал© бўЁ¤ҐвҐ«мбвўгҐв ®
§ пв®бвЁ Ё«Ё Ґ§ пв®бвЁ аҐбгаб , Ё ®зҐаҐ¤м, ў Є®в®а®© 室Ёвбп
Їа®жҐбб, Ґб«Ё аҐбгаб § пв.
ЏаЁ ЁЁжЁ «Ё§ жЁЁ д« Ј 室Ёвбп ў б®бв®пЁЁ "бў®Ў®¤Ґ",
®зҐаҐ¤м Їгбв .
Ќ ¤ ᥬ д®а®¬ ўлЇ®«повбп ¤ўҐ ®ЇҐа жЁЁ, ᮮ⢥вбвўгойЁҐ
ўе®¤г ў ЄаЁвЁзҐбЄЁ© гз бв®Є Ё ўл室㠨§ ҐЈ®.
‚室:
‡ ЇаҐв_ЇаҐалў Ё©;
If Flag = ‡ пв Then Begin
‚бв вм ў ®зҐаҐ¤м;
Џ…ђ…ЌЂ‡ЌЂ—€’њ_ЏђЋ–…‘‘Ћђ;
End {If};
Flag := ‡ пв;
ђ §аҐиҐЁҐ_ЇаҐалў Ё©;
‚л室:
‡ ЇаҐв_ЇаҐалў Ё©;
Flag := ‘ў®Ў®¤Ґ;
If ЋзҐаҐ¤м Ґ Їгбв Then Begin
ЏҐаҐўҐбвЁ ЇҐаўл© Їа®жҐбб Ё§ нв®© ®зҐаҐ¤Ё
ў ®зҐаҐ¤м Ј®в®ўле Їа®жҐбб®ў;
Џ…ђ…ЌЂ‡ЌЂ—€’њ_ЏђЋ–…‘‘Ћђ;
End {If};
ђ §аҐиҐЁҐ_ЇаҐалў Ё©;
Ћб®ЎҐ®б⨠ᥬ д®а :
1) ўбв ў п ў ®зҐаҐ¤м ᥬ д®а ¤® ®бў®Ў®¦¤ҐЁп аҐбгаб ,
Їа®жҐбб а §Јаг¦ Ґв Їа®жҐбб®а;
2) Є ¦¤л© аҐбгаб 㦥 бў®© ᥬ д®а, § зЁв, бў®п
®зҐаҐ¤м, Ї®н⮬㠢 п¤аҐ Ё ¬®Ј® ®зҐаҐ¤Ґ©;
3) ᥬ д®а - н⮠⮦Ґ а §¤Ґ«пҐ¬л© аҐбгаб, § зЁв ¤Ґ©бвўЁп
б Ё¬ ¤®«¦л ўлЇ®«пвмбп ў ०Ё¬Ґ ў§ Ё¬®Ј® ЁбЄ«о票п; Ў®«ҐҐ
в®Ј®, Ґб«Ё а бб¬ ваЁў вм ᥬ д®а Є Є ЇаЁ¬ЁвЁў п¤а , ў¬Ґбв®
®ЇҐа жЁЁ ‡ ЇаҐв_ЇаҐалў Ё© Ґ®Ўе®¤Ё¬® бв ўЁвм ®ЇҐа жЁЁ ЏђЋ‹Ћѓ,
ЉЋЌ’ђЋ‹њ.
я13.6.1. Џа®б⥩訥 ЇаЁ¬ЁвЁўл, Ґ гзвҐлҐ ў Є« ббЁдЁЄ жЁЁ
ќв® ЇаЁ¬ЁвЁўл ЏаЁ®бв ®ўЁвм_Џа®жҐбб Ё ‚®§®Ў®ўЁвм_Џа®жҐбб.
„«п ®ЇЁб Ёп нвЁе ЇаЁ¬ЁвЁў®ў ўбЇ®¬Ё¬ 2-© ўлў®¤ ЇаҐ¤л¤г饣®
Ї а Ја д ®Ў ®зҐаҐ¤пе.
„«п ॠ«Ё§ жЁЁ нвЁе ЇаЁ¬ЁвЁў®ў ᮧ¤ Ґвбп бЇҐжЁ «м п ®зҐаҐ¤м
ЇаЁ®бв ®ў«Ґле Їа®жҐбб®ў.
’®Ј¤ бвагЄвга ЇаЁ¬ЁвЁў®ў Ўг¤Ґв Ё¬Ґвм б«Ґ¤гойЁ© ўЁ¤:
Procedure ЏаЁ®бв ®ўЁвм_Џа®жҐбб(P : Process);
Begin
ЏђЋ‹Ћѓ;
ЉЋЌ’ђЋ‹њ;
<
‚뢥бвЁ Їа®жҐбб ђ Ё§ ®зҐаҐ¤Ё, ў Є®в®а®© ® 室Ёвбп;
‚ўҐбвЁ Їа®жҐбб ђ ў ®зҐаҐ¤м ЇаЁ®бв ®ў«Ґле Їа®жҐбб®ў;
>
Џ…ђ…ЌЂ‡ЌЂ—€’њ_ЏђЋ–…‘‘Ћђ;
End {ЏаЁ®бв ®ўЁвм_Џа®жҐбб};
Procedure ‚®§®Ў®ўЁвм_Џа®жҐбб(P : Process);
Begin
ЏђЋ‹Ћѓ;
ЉЋЌ’ђЋ‹њ;
<
‚뢥бвЁ Їа®жҐбб ђ Ё§ ®зҐаҐ¤Ё ЇаЁ®бв ®ў«Ґле Їа®жҐбб®ў;
‚ўҐбвЁ Їа®жҐбб ђ ў ®зҐаҐ¤м Ј®в®ўле Їа®жҐбб®ў;
>
Џ…ђ…ЌЂ‡ЌЂ—€’њ_ЏђЋ–…‘‘Ћђ;
End {‚®§®Ў®ўЁвм_Џа®жҐбб};
‡ ¬Ґз Ёп
1) ‚Ё¤ нвЁе ЇаЁ¬ЁвЁў®ў ॠ«Ё§гҐв ®Ўйго Ё¤Ґо
ЇаЁ®бв ®ў /ў®§®Ў®ў«ҐЁп, Є®в®а п ¬®¦Ґв Ўлвм ॠ«Ё§®ў
Ї®-а §®¬г.
2) ќв б ¬ п Їа®б⥩и п д®а¬ ЇаЁ¬ЁвЁў®ў ¤«п б«гз п
Ґ¤«ЁвҐ«мле § ¤Ґа¦ҐЄ. ЏаЁ ¤«ЁвҐ«мле ЇаЁ®бв ®ўЄ е Ґ®Ўе®¤Ё¬®
®бў®Ў®¤Ёвм аҐбгабл, Є®в®ал¬Ё ў« ¤ҐҐв Їа®жҐбб.
3) ‚ ҐЄ®в®але Ћ‘ ЇаЁ ЇаЁ®бв ®ўЄҐ Їа®жҐбб ђ Ґ®Ўе®¤Ё¬®
ЇаЁ®бв ў«Ёў вм Ё ўбҐе ҐЈ® Ї®в®¬Є®ў. „агЈ®© ў аЁ в б®бв®Ёв ў
⮬, зв® в®«мЄ® бў®Ёе Ї®в®¬Є®ў Ё ¬®¦Ґв ЇаЁ®бв ў«Ёў вм Їа®жҐбб.
‚ᥠнвЁ ®Ја ЁзҐЁп гзЁвлў овбп ®Ўа Ў®вЄ®© Ї®«Ґ© ¤ҐбЄаЁЇв®а
Їа®жҐбб .
4) ђ бЇа®бва Ґл¬ бЇ®б®Ў®¬ ЁбЇ®«м§®ў Ёп нвЁе ЇаЁ¬ЁвЁў®ў
пў«пҐвбп ЇаЁ®бв ®ўЄ Їа®жҐбб , ®иЁЎ®з® ў®иҐ¤иҐЈ® ў ЎҐбЄ®Ґзл©
жЁЄ«. ЏаҐаў л© в ЄЁ¬ ®Ўа §®¬ Їа®жҐбб ЇҐаҐ¤ Ґвбп ў бЇҐжЁ «мго
®зҐаҐ¤м ҐЇа ўЁ«м® а Ў®в ойЁе Їа®жҐбб®ў, Є®в®а п ®Ўа Ў влў Ґвбп
бЇҐжЁ «мл¬ ®Ўа Ў®взЁЄ®¬ ®иЁЎ®Є. ‚ҐиҐ ॠЄжЁп Ї®е®¦
ЁбЄ«о票Ґ.
5) ЏаЁўҐ¤ҐлҐ ЇаЁ¬ЁвЁўл ¬®¦® а бб¬ ваЁў вм Є Є ЇҐаўго
Ї®ЇлвЄг бЁеа®Ё§Ёа®ў Ёп ¤Ґ©бвўЁ© ҐбЄ®«мЄЁе Їа®жҐбб®ў.
я13.6.2. ЏаЁ¬ЁвЁўл ўаҐ¬Ґ®© бЁеа®Ё§ жЁЁ
ЏаЁ ўаҐ¬Ґ®© бЁеа®Ё§ жЁЁ я2‚ђ…Њџя0 ўлбвгЇ Ґв ў Є зҐб⢥ ¬Ґал
¤«ЁвҐ«м®бвЁ пў«ҐЁ©. ‡ ЎҐЈ п ўЇҐаҐ¤, бЄ ¦Ґ¬, зв® ў ¤агЈЁе
б«гз пе Ґ ў ¦ Ўб®«ов п ¤«ЁвҐ«м®бвм пў«ҐЁ©, ў ¦л в®«мЄ®
б®®в®иҐЁп ђЂЌњ…/ЏЋ‡†….
Џа®Ў«Ґ¬л ўаҐ¬Ґ®© бЁеа®Ё§ жЁЁ аҐи овбп б Ї®¬®ймо
ЇаЁ¬ЁвЁў ‡ ¤Ґа¦ вм_Џа®жҐбб(ђ : Process; T : Integer). ‡¤Ґбм ’
а бб¬ ваЁў Ґвбп Є Є 楫®Ґ зЁб«®, в.Є. ўаҐ¬п ў ¬ иЁҐ Ё§¬ҐапҐвбп
Є®«ЁзҐбвў®¬ "вЁЄ®ў" - ЁвҐаў «®ў ўаҐ¬ҐЁ ¬Ґ¦¤г ЇаҐалў Ёп¬Ё ®в
в ©¬Ґа .
‚ ®¤®§ ¤ зле бЁб⥬ е «®Ј®¬ ¤ ®Ј® ЇаЁ¬ЁвЁў пў«пҐвбп
ўл§®ў Їа®жҐ¤гал Delay(T), Є®в®а п ¬®¦Ґв Ўлвм ЁбЇ®«м§®ў Ё ў
¬®Ј®§ ¤ з®© б।Ґ. Њ®¤Ґ«мо нв®© § ¤Ґа¦ЄЁ пў«пҐвбп жЁЄ«
б«Ґ¤го饣® ўЁ¤ :
... ...
Delay(T); For k := 0 To N Do ;
... ...
‚®Їа®б б®бв®Ёв в®«мЄ® ў ўлЎ®аҐ Ї®¤е®¤п饣® N.
‚ «оЎ®¬ б«гз Ґ нв®в ў аЁ в ॠ«Ё§гҐв " ЄвЁў®Ґ ®¦Ё¤ ЁҐ",
в.Ґ. § ¤Ґа¦Ёў Ґ¬л© в ЄЁ¬ ®Ўа §®¬ Їа®жҐбб ўбҐ а ў® ўлЇ®«пҐвбп,
§ Ё¬ п Їа®жҐбб®а, е®вп Ё ЁзҐЈ® Ґ ¤Ґ« Ґв Ї®«Ґ§®Ј®.
‚ ¬®Ј®§ ¤ з®© бЁб⥬Ґ в Є®¬г Їа®жҐббг, ўлЇ®«по饬г
"Їгбвго" а Ў®вг в Є¦Ґ, Є Є Ё ¤агЈЁ¬ Їа®жҐбб ¬, ¤ЁбЇҐвзҐа ўл¤Ґ«пҐв
Єў вл ўаҐ¬ҐЁ ўлЇ®«ҐЁҐ.
Џ®н⮬㠤«п бЁбвҐ¬л ў 楫®¬ Ј®а §¤® ўлЈ®¤ҐҐ бпвм в Є®©
Їа®жҐбб б ўлЇ®«ҐЁп ( Ё¬Ґ® Ё§ ®зҐаҐ¤Ё Ј®в®ўле Їа®жҐбб®ў)
ўаҐ¬п § ¤Ґа¦ЄЁ Ё Ґ ЇаҐ¤®бв ў«пвм Ґ¬г Їа®жҐбб®а®Ґ ўаҐ¬п, ⥬
б ¬л¬ г«гзиЁў гб«®ўЁп ўлЇ®«ҐЁп ¤агЈЁе Їа®жҐбб®ў.
’.Ґ. ®Їпвм § ¤Ґа¦Є Їа®жҐбб - нв® бпвЁҐ ҐЈ® Ё§ ®зҐаҐ¤Ё
Ј®в®ўле Їа®жҐбб®ў Ё ЇҐаҐў®¤ ҐЈ® ў ¤агЈго, бЇҐжЁ «м®
ЇаҐ¤ § зҐго ¤«п § ¤Ґа¦ҐЄ ўаҐ¬п ®зҐаҐ¤м.
‘®ўҐа襮 Ї®пв®, Є Є Ї®бв ўЁвм Їа®жҐбб ў ®зҐаҐ¤м. ‚бв Ґв
ў®Їа®б, Є®Ј¤ ҐЈ® Ё§ нв®© ®зҐаҐ¤Ё Ё§ў«Ґзм Ё ЇҐаҐўҐбвЁ ў ®зҐаҐ¤м
Ј®в®ўле Їа®жҐбб®ў.
…б«Ё Їа®жҐбб бв ўЁвбп ў ®зҐаҐ¤м ў ⥪гйЁ© ¬®¬Ґв ўаҐ¬ҐЁ ’в,
Ё ўаҐ¬п, Є®в®а®Ґ ® бв ўЁвбп ў ®зҐаҐ¤м, а ў® ’, в®
ЄвЁўЁ§Ёа®ў вм ҐЈ® ¤® ў ⥪гйЁ© ¬®¬Ґв ўаҐ¬ҐЁ ’ = ’ + ’.
Ќ б奬Ґ ’ = 6.
і і і і і і і і
ДДЕДДДДДДДБДДДДДДДБДДДДДДДБДДДДДДДБДДДДДДДБДДДДДДДЕДДДДДДДБДД>t
’в ’в+1 ’в+2 ’в+3 ’в+4 ’в+5 ’в+6 ’ = ’в+’
‘в ўЁ¬ €§ў«ҐЄ Ґ¬
ў ®зҐаҐ¤м Ё§ ®зҐаҐ¤Ё
‚ п¤аҐ Ёд®а¬ жЁҐ© ® ⥪г饬 ўаҐ¬ҐЁ ў« ¤ҐҐв ¤ЁбЇҐвзҐа, в.Є.
нв® ®Ўа Ў®взЁЄ ЇаҐалў Ё© ®в в ©¬Ґа - бзҐвзЁЄ ўаҐ¬ҐЁ.
„ЁбЇҐвзҐа Ї®¤бзЁвлў Ґв ўаҐ¬п ў ўЁ¤Ґ "вЁЄ®ў", Ї®н⮬г
Ё§ў«ҐЄ вм Їа®жҐббл Ё§ ®зҐаҐ¤Ё § ¤Ґа¦ ле ўаҐ¬п Їа®жҐбб®ў
«гзиҐ ўбҐЈ® ¤ЁбЇҐвзҐаг. „Ґ« вм нв® ¤® в®Ј¤ , Є®Ј¤ ⥪г饥
ўаҐ¬п б®ўЇ ¤Ґв б ўаҐ¬ҐҐ¬ ЄвЁўЁ§ жЁЁ Їа®жҐбб .
‚аҐ¬п ЄвЁўЁ§ жЁЁ Їа®жҐбб ўлзЁб«пҐвбп Ї® д®а¬г«Ґ ’ := ’в+’
ў ¬®¬Ґв Ї®бв ®ўЄЁ ў ®зҐаҐ¤м § ¤Ґа¦ ле ўаҐ¬п Їа®жҐбб®ў Ё
§ ЇЁблў Ґвбп ў бЇҐжЁ «м®Ґ Ї®«Ґ ў ¤ҐбЄаЁЇв®аҐ Їа®жҐбб .
ЌҐ ®бв Ґвбп ЁзҐЈ® Ё®Ј®, Є Є Є ¦¤®¬ ЇаҐалў ЁЁ ®в
в ©¬Ґа ЇаЁ ўл§®ўҐ ¤ЁбЇҐвзҐа ў б ¬®¬ ўл§®ўҐ ¤ЁбЇҐвзҐа
Їа®б¬ ваЁў вм ўбо ®зҐаҐ¤м § ¤Ґа¦ ле Їа®жҐбб®ў Ё ᢥапвм ⥪г饥
ўаҐ¬п б ўаҐ¬Ґ ¬Ё ЄвЁўЁ§ жЁЁ Їа®жҐбб®ў, бв®пйЁе ў нв®© ®зҐаҐ¤Ё.
ЏаЁ б®ўЇ ¤ҐЁЁ ⥪г饣® ўаҐ¬ҐЁ б ўаҐ¬ҐҐ¬ ЄвЁўЁ§ жЁЁ, Їа®жҐбб
Ё§ў«ҐЄ Ґвбп Ё§ ®зҐаҐ¤Ё § ¤Ґа¦ ле Ё ЇҐаҐў®¤Ёвбп ў ®зҐаҐ¤м
Ј®в®ўле Їа®жҐбб®ў.
(‘гйҐбвўгҐв «®ЈЁп б гЁз⮦ҐЁҐ¬ Їа®жҐбб®ў. ЏаЁ¬ЁвЁў
“Ёз⮦Ёвм_Џа®жҐбб ЇҐаҐў®¤Ёв Їа®жҐбб ў ®зҐаҐ¤м гЁз⮦ Ґ¬ле
Їа®жҐбб®ў, ¤ЁбЇҐвзҐа Є ¦¤®¬ ⠪⥠®зЁй Ґв нвг ®зҐаҐ¤м.
‡¤Ґбм: ЇаЁ¬ЁвЁў ‡ ¤Ґа¦ вм_Џа®жҐбб ЇҐаҐў®¤Ёв Їа®жҐбб ў
®зҐаҐ¤м § ¤Ґа¦ ле Їа®жҐбб®ў, ¤ЁбЇҐвзҐа Є ¦¤®¬ ⠪⥠нвг
®зҐаҐ¤м «Ё§ЁагҐв Ё ЄвЁўЁ§ЁагҐв Їа®жҐббл, ¤«п Є®в®але б®ўЇ «®
⥪г饥 ўаҐ¬п б ўаҐ¬ҐҐ¬ ЄвЁўЁ§ жЁЁ.)
‚ ᮮ⢥вбвўЁҐ б Ё§«®¦Ґл¬ бвагЄвга ЇаЁ¬ЁвЁў®ў § ¤Ґа¦ЄЁ Ё
ЄвЁўЁ§ жЁЁ Ўг¤Ґв Ё¬Ґвм б«Ґ¤гойЁ© ўЁ¤:
Procedure ‡ ¤Ґа¦ вм_Џа®жҐбб(P : Process; T : Integer);
Begin
ЏђЋ‹Ћѓ;
ЉЋЌ’ђЋ‹њ;
<
‚뢥бвЁ Їа®жҐбб ђ Ё§ ®зҐаҐ¤Ё, ў Є®в®а®© ® 室Ёвбп;
‚ўҐбвЁ Їа®жҐбб ђ ў ®зҐаҐ¤м § ¤Ґа¦ ле ўаҐ¬п Їа®жҐбб®ў;
“бв ®ўЁвм Ї®«Ґ ¤ҐбЄаЁЇв®а Їа®жҐбб ђ ў ᮮ⢥вбвўЁҐ б
д®а¬г«®© ’ := ’в + ’;
>
Џ…ђ…ЌЂ‡ЌЂ—€’њ_ЏђЋ–…‘‘Ћђ;
End {‡ ¤Ґа¦ вм_Џа®жҐбб};
Procedure ЂЉ’€‚€‡Ђ–€џ_‡Ђ„…ђ†ЂЌЌ›•_ЌЂ_‚ђ…Њџ_ЏђЋ–…‘‘Ћ‚;
Begin
„«п ўбҐе Їа®жҐбб®ў Ё§ ®зҐаҐ¤Ё § ¤Ґа¦ ле ¤Ґ« вм б«Ґ¤го饥:
…б«Ё ‚аҐ¬п ЄвЁўЁ§ жЁЁ Їа®жҐбб а ў® ⥪г饬㠢६ҐЁ, в®
1) ‚뢥бвЁ Їа®жҐбб Ё§ ®зҐаҐ¤Ё § ¤Ґа¦ ле ўаҐ¬п Їа®жҐбб®ў;
2) ‚ўҐбвЁ Їа®жҐбб ў ®зҐаҐ¤м Ј®в®ўле Їа®жҐбб®ў;
End {ЂЉ’€‚€‡Ђ–€џ_‡Ђ„…ђ†ЂЌЌ›•_ЌЂ_‚ђ…Њџ_ЏђЋ–…‘‘Ћ‚};
Џа®жҐ¤гаг ЂЉ’€‚€‡Ђ–€џ_‡Ђ„…ђ†ЂЌЌ›•_ЌЂ_‚ђ…Њџ_ЏђЋ–…‘‘Ћ‚
Ґ®Ўе®¤Ё¬® Ї®¬ҐбвЁвм ў „ЁбЇҐвзҐа:
Procedure Dispatcher; Interrupt;
Begin
ЂЉ’€‚€‡Ђ–€џ_‡Ђ„…ђ†ЂЌЌ›•_ЌЂ_‚ђ…Њџ_ЏђЋ–…‘‘Ћ‚;
Ћ—€‘’€’њ_Ћ—…ђ…„њ_“Ќ€—’Ћ†Ђ…Њ›•_ЏђЋ–…‘‘Ћ‚;
Џ…ђ…ЌЂ‡ЌЂ—€’њ_ЏђЋ–…‘‘Ћђ;
End;
…б«Ё ®зҐаҐ¤м § ¤Ґа¦ ле ўаҐ¬п Їа®жҐбб®ў ®вб®авЁа®ў Ї®
ў®§а бв Ёо ўаҐ¬ҐЁ ЄвЁўЁ§ жЁЁ, бЄ®а®бвм «Ё§ ®зҐаҐ¤Ё ¬®¦®
㢥«ЁзЁвм, зв® ў ¦®, в.Є. ®зҐаҐ¤м «Ё§ЁагҐвбп ў ®Ўа Ў®взЁЄҐ
ЇаҐалў Ё©.
я13.6.3. ЏаЁ¬ЁвЁўл б®ЎлвЁ©®© бЁеа®Ё§ жЁЁ Їа®жҐбб®ў
Њл 㦥 § Ґ¬, зв® бгйҐбвўгов б«Ґ¤гойЁҐ Ї®пвЁп:
1) ЄаЁвЁзҐбЄЁ© аҐбгаб - а §¤Ґ«пҐ¬л© аҐбгаб, б Є®в®ал¬ ¬®Јгв
а Ў®в вм ҐбЄ®«мЄ® Ї а ««Ґ«мле Їа®жҐбб®ў;
2) ЄаЁвЁзҐбЄЁ© гз бв®Є - гз бв®Є Їа®Ја ¬¬л Їа®жҐбб , ў
Є®в®а®¬ ®ЇЁб л ¤Ґ©бвўЁп б ЄаЁвЁзҐбЄЁ¬ аҐбгаᮬ;
3) ०Ё¬ ў§ Ё¬®Ј® ЁбЄ«о票п - ०Ё¬ ўлЇ®«ҐЁп
ЄаЁвЁзҐбЄ®Ј® гз бвЄ ЎҐ§ ЇҐаҐ¤ зЁ гЇа ў«ҐЁп ®в ®¤®Ј® Їа®жҐбб Є
¤агЈ®¬г.
‚ ¦®, зв® Їа®Ў«Ґ¬ ¤®бвгЇ Є ЄаЁвЁзҐбЄ®¬г аҐбгабг бўп§
Ґ б зЁб«®¬ Їа®жҐбб®а®ў, Є®в®але ўлЇ®«повбп Їа®жҐббл,
Ё¬Ґ® б ®ЎйЁ¬ аҐбгаᮬ.
ЏаЁ¬Ґа: N - бзҐв ў жҐва «м®¬ Ў ЄҐ. ‘ ¤ўге вҐа¬Ё «®ў
¤Ґ« Ґвбп Ї®ЇлвЄ ҐЈ® Ё§¬ҐЁвм.
ЉаЁвЁзҐбЄЁ© аҐбгаб
ЪДДДДДї/
P1 ЪДДДДДДДДДДДДД>ґ N Г<ДДДДДДДДДДДДДДї P2
v АДДДДДЩ v
ЪДДДДДДБДДДДДДї ЪДДДДДДБДДДДДДї
і R := N; і і R := N; і
і R := R + S1;і ЉаЁвЁзҐбЄЁ© гз бв®Є і R := R + S2;і
і N := R; і і N := R; і
АДДДДДДДДДДДДДЩ АДДДДДДДДДДДДДЩ
Ћ¦Ё¤ Ґ¬ १г«мв в: N = N + S1 + S2;
Њ®¦Ґ¬ Ї®«гзЁвм: N = N + S1; Ё«Ё N = N + S2.
ЋЎй п Ё¤Ґп аҐиҐЁп нв®© Їа®Ў«Ґ¬л б®бв®Ёв ў ⮬, зв® в®«мЄ®
®¤Ё Їа®жҐбб ¤®«¦Ґ а Ў®в вм ў ЄаЁвЁзҐбЄ®¬ гз бвЄҐ, ўбҐ
®бв «млҐ, Ї®¤®©¤п Є бў®Ё¬ ЄаЁвЁзҐбЄЁ¬ гз бвЄ ¬, ¤®«¦л †„Ђ’њ,
Є®Ј¤ аҐбгаб ®бў®Ў®¤Ёвбп. ’.Ґ., Ґб«Ё ®¤Ё Їа®жҐбб ў®иҐ« ў
ЄаЁвЁзҐбЄЁ© гз бв®Є, в® ЁЄ Є®© ¤агЈ®© Їа®жҐбб Ґ ¬®¦Ґв ў ҐЈ®
ў®©вЁ. Љ®Ј¤ Їа®жҐбб, Є®в®ал© а Ў®в « ў ЄаЁвЁзҐбЄ®¬ гз бвЄҐ,
ўл©¤Ґв Ё§ ҐЈ®, ¬®¦Ґв ўе®¤Ёвм ў бў®© ЄаЁвЁзҐбЄЁ© гз бв®Є ¤агЈ®©
Їа®жҐбб.
Џа®Ў«Ґ¬ ®аЈ Ё§ жЁЁ в Є®© ®зҐаҐ¤®бвЁ ўе®¦¤ҐЁп Їа®жҐбб®ў ў
ЄаЁвЁзҐбЄЁҐ гз бвЄЁ пў«пҐвбп Є«о祢®© Їа®Ў«Ґ¬®© Ї а ««Ґ«м®Ј®
Їа®Ја ¬¬Ёа®ў Ёп.
‚室 ў ЄаЁвЁзҐбЄЁ© гз бв®Є Ё ўл室 Ё§ ҐЈ® а бб¬ ваЁў овбп
Є Є б®ЎлвЁп. Џ®н⮬г б।бвў аҐиҐЁп нв®© Їа®Ў«Ґ¬л Ё §лў овбп
б।бвў ¬Ё б®ЎлвЁ©®© бЁеа®Ё§ жЁЁ.
‘гйҐбвўгов ЇЇ а влҐ Ё Їа®Ја ¬¬лҐ бЇ®б®Ўл аҐиҐЁп нв®©
Їа®Ў«Ґ¬л ў § ўЁбЁ¬®бвЁ ®в «®ЈЁзҐбЄ®Ј® га®ўп, Є®в®а®¬
а бб¬ ваЁў Ґвбп нв Їа®Ў«Ґ¬ .
„ ¤Ё¬ Ёе Єа вЄЁ© ®Ў§®а.
я21) ЏҐаў®Ґ б।бвў®,я0 Є®в®а®Ґ Їа иЁў Ґвбп б ¬® б®Ў®© -
§ ЇаҐв ЇаҐалў Ё© ўе®¤Ґ ЄаЁвЁзҐбЄ®Ј® гз бвЄ Ё а §аҐиҐЁҐ
ЇаҐалў Ё© ўл室Ґ Ё§ ҐЈ®.
P1: P2:
cli cli
ЉаЁвЁзҐбЄЁ© гз бв®Є; ЉаЁвЁзҐбЄЁ© гз бв®Є;
sti sti
ќв®в бЇ®б®Ў Ё¬ҐҐв б«Ґ¤гойЁҐ Ґ¤®бв вЄЁ:
- § Єалў овбп ўбҐ ЇаҐалў Ёп; бЁб⥬ бв ®ўЁвбп "б«ҐЇ®©" Ё
"Ј«ге®©" ¤«п ўбҐе ўҐиЁе ў®§¤Ґ©бвўЁ© ўаҐ¬п ўлЇ®«ҐЁп
ЄаЁвЁзҐбЄ®Ј® гз бвЄ ; Ї®н⮬г нв®в бЇ®б®Ў ¬®¦Ґв Ўлвм ЁбЇ®«м§®ў
в®«мЄ® ¤«п Є®а®вЄЁе ЄаЁвЁзҐбЄЁе гз бвЄ®ў, Ё ® в Є Ё
ЁбЇ®«м§гҐвбп; ® нв® - Ў §®ў®Ґ б।бвў®, Ї®н⮬㠮® ў ⮬ Ё«Ё
Ё®¬ ўЁ¤Ґ ЇаЁбгвбвўгҐв ў® ўбҐе ®бв «мле б।бвў е.
- ЇаЁ®бв ў«Ёў Ґвбп ўлЇ®«ҐЁҐ ўбҐе Їа®жҐбб®ў, Єа®¬Ґ,
ҐбвҐб⢥®, ЄвЁў®Ј®, ¤ ¦Ґ вҐе, Є®в®алҐ Ё Ґ б®ЎЁа овбп
ЁбЇ®«м§®ў вм ЄаЁвЁзҐбЄЁ© аҐбгаб.
я22) ‚в®а®© бЇ®б®Ў.я0 ‡ ЇаҐв Ґ ўбҐе ЇаҐалў Ё©, ¬ бЄЁа®ў ЁҐ
ЇаҐалў Ё© в®«мЄ® ®в в ©¬Ґа .
ќв® Ў®«ҐҐ в®ЄЁ© ¬Ґв®¤. Ћ гбва пҐв ЇҐаўл© Ё§ Ґ¤®бв вЄ®ў
ЇҐаў®Ј® бЇ®б®Ў ®аЈ Ё§ жЁЁ ў§ Ё¬®Ј® ЁбЄ«о票п, б®бв®пйЁ© ў
⮬, зв® бЁб⥬ ЇҐаҐбв Ґв ॠЈЁа®ў вм «оЎлҐ ўҐиЁҐ бЁЈ «л.
Ќ® ўв®а®© Ґ¤®бв в®Є, б®бв®пйЁ© ў ⮬, зв® Їа®жҐббл, Ґ
Ё¬ҐойЁҐ ®в®иҐЁп Є ¤ ®¬г ЄаЁвЁзҐбЄ®¬г аҐбгабг, ⮦Ґ
ЇаЁ®бв ў«Ёў овбп, в Є Ё Ґ гбва Ґ.
я23) ’аҐвЁ© бЇ®б®Ў.я0 “бв ў«Ёў Ґвбп д« Ј § пв®бвЁ аҐбгаб .
Ќ ЇаЁ¬Ґа:
Flag = 0 - аҐбгаб бў®Ў®¤Ґ;
Flag = 1 - аҐбгаб § пв.
Џа®жҐбб ЇҐаҐ¤ ўе®¤®¬ ў ЄаЁвЁзҐбЄЁ© гз бв®Є Їа®ўҐапҐв
§ 票Ґ д« Ј . …б«Ё д« Ј а ўҐ г«о, в® Їа®жҐбб гбв ў«Ёў Ґв
д« Ј ў б®бв®пЁҐ 1 (§ пв) Ё ўе®¤Ёв ў ЄаЁвЁзҐбЄЁ© гз бв®Є. …б«Ё
д« Ј а ўҐ Ґ¤ЁЁжҐ, в® Їа®жҐбб б®ў ЇҐаҐе®¤Ёв Їа®ўҐаЄг
§ 票п д« Ј .
ЏаЁ ўл室Ґ Ё§ ЄаЁвЁзҐбЄ®Ј® гз бвЄ Їа®жҐбб гбв ў«Ёў Ґв
д« Ј ў б®бв®пЁҐ 0 (бў®Ў®¤Ґ).
‚ аЁ в ЎҐ§ ¬ҐвЄЁ:
M: If Flag = 1 Then GoTo M; => While Flag = 1 Do ;
Flag := 1;
ЉаЁвЁзҐбЄЁ© гз бв®Є;
Flag := 0;
ЋЄ §лў Ґвбп, зв® нв®в бЇ®б®Ў Ґ бЁ¬ Ґв Їа®Ў«Ґ¬л.
"ЋвЄ®¬ЇЁ«Ёа㥬" ЇаҐ¤л¤гйЁ© Є®¤:
M: cmp Flag, 1
jz M
mov Flag, 1
ЉаЁвЁзҐбЄЁ© гз бв®Є;
mov Flag, 0
ЏаҐ¤Ї®«®¦Ё¬, зв® Flag = 0 Ё ЇҐаҐ¤ з гЇа ў«ҐЁп Їа®Ёб室Ёв
ба §г ¦Ґ § ЁбвагЄжЁҐ© я2cmp Flag, 1я0, Ё ўв®а®© Їа®жҐбб ўлЇ®«пҐв
ЁбвагЄжЁо я2cmp Flag, 1я0. „«п ®Ў®Ёе Їа®жҐбб®ў Flag ®Є ¦Ґвбп а ўл¬
г«о Ё ®Ё ®Ў ў®©¤гв ў ЄаЁвЁзҐбЄЁ© гз бв®Є.
ќв® Їа®Ёб室Ёв Ї®в®¬г, зв® Flag б ¬ пў«пҐвбп ЄаЁвЁзҐбЄЁ¬
аҐбгаᮬ Ё ¤®бвгЇ Є Ґ¬г ¤® ®аЈ Ё§®ўлў вм ў ०Ё¬Ґ ў§ Ё¬®Ј®
ЁбЄ«о票п:
M1 : cli Ё«Ё M1 : sti
cmp Flag, 1 cli
jnz M2 cmp Flag, 1
sti jz M1
jmp M1 mov Flag, 1
M2 : mov Flag, 1 sti
sti ЉаЁвЁзҐбЄЁ© гз бв®Є;
ЉаЁвЁзҐбЄЁ© гз бв®Є; mov Flag, 0
mov Flag, 0
’аҐвЁ© ў аЁ в б ЁбвагЄжЁҐ© "®Ў¬Ґпвм" - xchg:
mov ax, 1
M: xchg ax, Flag
cmp ax, 1
jz M
ЉаЁвЁзҐбЄЁ© гз бв®Є;
mov Flag, 0
…б«Ё Flag = 0, в® Flag гбв ®ўЁвбп ў 1, ax гбв ®ўЁвбп ў
0, Ё Їа®жҐбб ў®©¤Ґв ў ЄаЁвЁзҐбЄЁ© гз бв®Є.
…б«Ё Flag = 1, в® ® ®бв Ґвбп ў 1 Ё ax ®бв Ґвбп ў 1, Ё
Їа®жҐбб ЇҐаҐ©¤Ґв ¬ҐвЄг Њ, в.Ґ. Ўг¤Ґв ¦¤ вм гбв ®ўЄЁ Flag ў 0.
—⥨Ґ Ё гбв ®ўЄ д« Ј Їа®Ё§ў®¤пвбп § ®¤г ЁбвагЄжЁо,
нв® - Ґ¤Ґ«Ё¬®Ґ ¤Ґ©бвўЁҐ Ї® ®ЇаҐ¤Ґ«ҐЁо.
Ћв¬ҐвЁ¬, зв® §¤Ґбм зЁ ов дЁЈгаЁа®ў вм ®зҐм
Ё§Є®га®ўҐўлҐ, Їа ЄвЁзҐбЄЁ, ЇЇ а влҐ б।бвў . Љ в ЄЁ¬
ЇЇ а вл¬ б।бвў ¬ ®в®бЁвбп Ў«®ЄЁа®ўЄ ¬ ЈЁбва «Ё, Є®в®а®©
¬®¦® ®ЎҐбЇҐзЁў вм Ґ¤Ґ«Ё¬®бвм ҐЄ®в®але ЁбвагЄжЁ©. Ѓ«®ЄЁа®ўЄ
¬ ЈЁбва «Ё ЇаЁ ўлЇ®«ҐЁЁ ЁбвагЄжЁЁ XCHG ®бгйҐбвў«пҐвбп Ї®
㬮«з Ёо.
‚ў®¤п ў Їа®Ја ¬¬Ґ ЇаҐдЁЄб LOCK, ¬®¦® ®ЎҐбЇҐзЁвм Ў«®ЄЁа®ўЄг
¬ ЈЁбва «Ё ЇаЁ ўлЇ®«ҐЁЁ ҐЄ®в®але ¤агЈЁе ЁбвагЄжЁ©: INC, DEC,
ADD, SUB, AND, OR.
‡ Јаг§Є TSS ®бгйҐбвў«пҐвбп ЇаЁ Ў«®ЄЁа®ўЄҐ ¬ ЈЁбва «Ё.
я_‚лў®¤л Ї® ваҐв쥬г бЇ®б®Ўг ®ЎҐбЇҐзҐЁп ў§ Ё¬®Ј® ЁбЄ«о票п
1) ‘Ї®б®Ў Ё¬ҐҐв ¤®бв®Ёбвў®, б®бв®п饥 ў ⮬, зв®
ЄаЁвЁзҐбЄЁ© гз бв®Є б д« Ј®¬ Ё¬ҐҐв ¬ «ҐмЄго Ё дЁЄбЁа®ў го
¤«Ёг.
2) ‘Ї®б®Ў Ё««обваЁагҐв ў ¦го Ё¤Ґо ®ЎҐбЇҐзҐЁп ў§ Ё¬®Ј®
ЁбЄ«о票п, б®бв®пйго ў ⮬, зв® ¤«п ¤®бвгЇ Є ®¤®¬г - ®б®ў®¬г
аҐбгабг Ґ®Ўе®¤Ё¬® § еў вЁвм ¤агЈ®© - ¤®Ї®«ЁвҐ«мл© аҐбгаб.
3) ‘Ї®б®Ў Ґ Ё§Ў ў«пҐв ®в " ЄвЁў®Ј® ®¦Ё¤ Ёп" - жЁЄ«
®Їа®б д« Ј ¤® ҐЈ® ®бў®Ў®¦¤ҐЁп.
4) ‘Ї®б®Ў, Є Є Ё ¤ў ЇаҐ¤л¤гйЁе Ё««обваЁагҐв ®Ўйго бвагЄвгаг
гз бвЄ Їа®Ја ¬¬л, а Ў®в о饣® б ЄаЁвЁзҐбЄЁ¬ аҐбгаᮬ - нв®
«ЁзЁҐ «®ЈЁзҐбЄЁе бЄ®Ў®Є - я1ўе®¤я0 ў ЄаЁвЁзҐбЄЁ© гз бв®Є Ё я1ўл室я0 Ё§
ЄаЁвЁзҐбЄ®Ј® гз бвЄ :
‚室;
ЉаЁвЁзҐбЄЁ© гз бв®Є;
‚л室;
‘в६«ҐЁҐ гбва Ёвм Ї®б«Ґ¤Ё© Ґ¤®бв в®Є ЇаЁўҐ«® Є
Ї®пў«ҐЁо ¤агЈЁе, Ў®«ҐҐ ўлб®Є®га®ўҐўле б।бвў, Є®в®алҐ ¬л Ё
Ўг¤Ґ¬ бзЁв вм ЇаЁ¬ЁвЁў ¬Ё п¤а ¤«п б®ЎлвЁ©®© бЁеа®Ё§ жЁЁ
Їа®жҐбб®ў.
я2‘Ґ¬ д®ал Є Є ЇаЁ¬ЁвЁўл п¤а Ё б।бвў® бЁеа®Ё§ жЁЁ
ЋЎй п Ё¤Ґп ўбҐе Ї®б«Ґ¤гойЁе бЇ®б®Ў®ў б®бв®Ёв ў ⮬, зв® Ґб«Ё
Їа®жҐббг ЇаЁе®¤Ёвбп ¦¤ вм ®бў®Ў®¦¤ҐЁп аҐбгаб , в® Їгбвм ® ¦¤Ґв
нв®Ј® ў бЇҐжЁ «м®© ®зҐаҐ¤Ё.
’ Є Ї®пўЁ«Ёбм ¤ў®Ёзл© Ё ®ЎйЁ© ᥬ д®а „Ґ©Єбвал.
„ў®Ёзл© бҐ¬ д®а ᮤҐа¦Ёв д« Ј, Є®в®ал© бўЁ¤ҐвҐ«мбвўгҐв ®
§ пв®бвЁ Ё«Ё Ґ§ пв®бвЁ аҐбгаб , Ё ®зҐаҐ¤м, ў Є®в®а®© 室Ёвбп
Їа®жҐбб, Ґб«Ё аҐбгаб § пв.
ЏаЁ ЁЁжЁ «Ё§ жЁЁ д« Ј 室Ёвбп ў б®бв®пЁЁ "бў®Ў®¤Ґ",
®зҐаҐ¤м Їгбв .
Ќ ¤ ᥬ д®а®¬ ўлЇ®«повбп ¤ўҐ ®ЇҐа жЁЁ, ᮮ⢥вбвўгойЁҐ
ўе®¤г ў ЄаЁвЁзҐбЄЁ© гз бв®Є Ё ўл室㠨§ ҐЈ®.
‚室:
‡ ЇаҐв_ЇаҐалў Ё©;
If Flag = ‡ пв Then Begin
‚бв вм ў ®зҐаҐ¤м;
Џ…ђ…ЌЂ‡ЌЂ—€’њ_ЏђЋ–…‘‘Ћђ;
End {If};
Flag := ‡ пв;
ђ §аҐиҐЁҐ_ЇаҐалў Ё©;
‚л室:
‡ ЇаҐв_ЇаҐалў Ё©;
Flag := ‘ў®Ў®¤Ґ;
If ЋзҐаҐ¤м Ґ Їгбв Then Begin
ЏҐаҐўҐбвЁ ЇҐаўл© Їа®жҐбб Ё§ нв®© ®зҐаҐ¤Ё
ў ®зҐаҐ¤м Ј®в®ўле Їа®жҐбб®ў;
Џ…ђ…ЌЂ‡ЌЂ—€’њ_ЏђЋ–…‘‘Ћђ;
End {If};
ђ §аҐиҐЁҐ_ЇаҐалў Ё©;
Ћб®ЎҐ®б⨠ᥬ д®а :
1) ўбв ў п ў ®зҐаҐ¤м ᥬ д®а ¤® ®бў®Ў®¦¤ҐЁп аҐбгаб ,
Їа®жҐбб а §Јаг¦ Ґв Їа®жҐбб®а;
2) Є ¦¤л© аҐбгаб 㦥 бў®© ᥬ д®а, § зЁв, бў®п
®зҐаҐ¤м, Ї®н⮬㠢 п¤аҐ Ё ¬®Ј® ®зҐаҐ¤Ґ©;
3) ᥬ д®а - н⮠⮦Ґ а §¤Ґ«пҐ¬л© аҐбгаб, § зЁв ¤Ґ©бвўЁп
б Ё¬ ¤®«¦л ўлЇ®«пвмбп ў ०Ё¬Ґ ў§ Ё¬®Ј® ЁбЄ«о票п; Ў®«ҐҐ
в®Ј®, Ґб«Ё а бб¬ ваЁў вм ᥬ д®а Є Є ЇаЁ¬ЁвЁў п¤а , ў¬Ґбв®
®ЇҐа жЁЁ ‡ ЇаҐв_ЇаҐалў Ё© Ґ®Ўе®¤Ё¬® бв ўЁвм ®ЇҐа жЁЁ ЏђЋ‹Ћѓ,
ЉЋЌ’ђЋ‹њ.
Соседние файлы в папке Операционные среды АСОИУ