Скачиваний:
18
Добавлен:
01.05.2014
Размер:
17.07 Кб
Скачать
я_я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) ᥬ д®а - н⮠⮦Ґ а §¤Ґ«пҐ¬л© аҐбгаб,   §­ зЁв ¤Ґ©бвўЁп
б ­Ё¬ ¤®«¦­л ўлЇ®«­пвмбп ў ०Ё¬Ґ ў§ Ё¬­®Ј® ЁбЄ«о祭Ёп; Ў®«ҐҐ
в®Ј®, Ґб«Ё а бб¬ ваЁў вм ᥬ д®а Є Є ЇаЁ¬ЁвЁў п¤а , ў¬Ґбв®
®ЇҐа жЁЁ ‡ ЇаҐв_ЇаҐалў ­Ё© ­Ґ®Ўе®¤Ё¬® бв ўЁвм ®ЇҐа жЁЁ ЏђЋ‹Ћѓ,
ЉЋЌ’ђЋ‹њ.

Соседние файлы в папке Операционные среды АСОИУ