Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «ВстраиваСмыС систСмы. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… сСмСйства 68HC12/HCS12 с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ языка Π‘Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 130

Автор Π‘Ρ‚ΠΈΠ²Π΅Π½ Π‘Π°Ρ€Ρ€Π΅Ρ‚Ρ‚

  else next_state = 'R';

  break;

 case 'A': /*ΠΈΠ· состояния активности(A)Π·Π°Π΄Π°Ρ‡Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состояниС */

           /*опрСдСляСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ action. */

  if (action == 'p') /*врСмя оТидания ΠΈΠ»ΠΈ приостановка Π·Π°Π΄Π°Ρ‡ΠΈ*/

   next_state = 'R'; /*Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² состояниС готовности*/

  else if (action == 'w')

   /*ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² состояниС оТидания*/

   next_state = 'W'; /*состояниС оТидания */

  else if (action == 'n') /*рСсурс нСдоступСн */

   next_state = 'S';

  /*Π·Π°Π΄Π°Ρ‡Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состояниС приостановки*/

  else if (action == 'd')

   /*Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ*/

   next_state = "X';

  /*Ссли трСбуСтся врСмя для */

  /* восстановлСния */

  else if (action == 'x') /*Π·Π°Π΄Π°Ρ‡Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ */

   next_state = 'D'; /*Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² состояниС бСздСйствия */

  else next_state = 'A'; /*остаСтся Π² состоянии активности */

  break;

 case 'X': /*ΠΈΠ· состояния восстановлСния (X) ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² состояниС */

           /*готовности (R)ΠΏΠΎ сигналу Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° восстановлСния (t). */

  if (action=='t') /*оТидаСтся сигнал Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° восстановлСния*/

   next_state='R'; /*Π·Π°Π΄Π°Ρ‡Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состояниС готовности*/

  else next_state='X';

  break;

 case 'W': /*ΠΈΠ· состояния оТидания (W) ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² состояниС готовности (R)*/

           /*ΠΏΠΎ сигналу Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° оТидания (e). */

  if (action == 'e') /*ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ сигнала Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°*/

   next_state = 'R'; /*Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² состояниС готовности*/

  else next_state = 'W';

  break;

 case 'S': /*ΠΈΠ· состояния приостановки (S) ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² состояниС готовности (R)*/

           /*ΠΏΡ€ΠΈ появлСнии ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ рСсурса (a) */

  if (action == 'a') /*Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ рСсурс доступСн*/

   next_state = 'R'; /*ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² состояниС готовности*/

  else next_state = 'S';

  break;

  return next_state;

 }

}

/********************************************************************/

Π‘Π»ΠΎΠΊ управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. Как ΠΌΡ‹ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ, Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой нСзависимыС, асинхронныС ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ процСссы, для взаимосвязанного выполнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ процСссор. Π”Π°Π²Π°ΠΉΡ‚Π΅ вспомним ΠΎ нашСм Π±Π΅ΡΡΡ‚Ρ€Π°ΡˆΠ½ΠΎΠΌ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π½Ρ‚Π΅ ΠΈΠ· ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°. ΠžΡ„ΠΈΡ†ΠΈΠ°Π½Ρ‚ (процСссор) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ запросы Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠ² (Π·Π°Π΄Π°Ρ‡), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈ этом ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ рСсурсы. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π½Ρ‚ (процСссор) ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ с обслуТивания ΠΎΠ΄Π½ΠΎΠ³ΠΎ столика Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΎΠ² (ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ) ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, Π΅ΠΌΡƒ, ΠΈΠ»ΠΈ Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ состояниС (контСкст) ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· столиков (Π·Π°Π΄Π°Ρ‡), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ качСствСнноС обслуТиваниС.

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠžΠ‘Π Π’ Β«Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚Β» ΠΈ отслСТиваСт состояниС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ свой процСсс. Π’Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅: «А Π² Ρ‡Π΅ΠΌ слоТности? ΠŸΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ процСссу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стал Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡΒ». Но ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΠΌ, это Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π’Π°ΠΊ, Π² систСмС с большим количСством ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Ρ‡, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ Π±Ρ‹ процСссором. Π’ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π±Ρ‹, Ссли наш ΠΎΡ„ΠΈΡ†ΠΈΠ°Π½Ρ‚ (процСссор) посвятил всС своС врСмя ΠΎΠ΄Π½ΠΎΠΌΡƒ столику (процСсс) Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π΅Π³ΠΎ обслуТивания, Π½Π΅ обращая внимания Π½Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ столики (Π·Π°Π΄Π°Ρ‡ΠΈ).

ΠœΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ, ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π½Ρ‚ слСдит Π·Π° ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ столиками ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. А Π²ΠΎΡ‚ ΠžΠ‘Π Π’ для отслСТивания состояния ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±Π»ΠΎΠΊ управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ (TCB). КаТдая Π·Π°Π΄Π°Ρ‡Π° Π² ΠžΠ‘Π Π’ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ связь с TCB, которая обСспСчиваСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π·Π°Π΄Π°Ρ‡Π΅. Π­Ρ‚Π° информация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ модифицируСтся ядром ΠžΠ‘Π Π’, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эффСктивно ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ вСсь Π½Π°Π±ΠΎΡ€ Π·Π°Π΄Π°Ρ‡ Π΄Π°Π½Π½ΠΎΠΉ систСмы. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ TCB измСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой. Π—Π°Π΄Π°Ρ‡Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ прямого ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° с TCB, хотя этот Π±Π»ΠΎΠΊ содСрТит Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π·Π°Π΄Π°Ρ‡Π΅.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° TCB ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° рис. 8.15. Когда ΠžΠ‘Π Π’ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ с ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ, вся ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ информация ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ сохранСна ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π·Π°Π΄Π°Ρ‡Π° ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ процСссорноС врСмя, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ процСсс с Ρ‚ΠΎΠ³ΠΎ мСста, Π³Π΄Π΅ ΠΎΠ½ Π±Ρ‹Π» остановлСн, ΠΏΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅. Как ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅, эта ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ информация Π·Π°Π΄Π°Ρ‡ΠΈ называСтся контСкстом.

Рис. 8.15. Π‘Π»ΠΎΠΊ управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ


ΠŸΡ€Π΅Ρ€Π²Π΅ΠΌΡΡ Π½Π° ΠΌΠΈΠ½ΡƒΡ‚Ρƒ, ΠΈ ΠΏΠΎΠ΄ΡƒΠΌΠ°Π΅ΠΌ, какая информация Π±Ρ‹Π»Π° Π±Ρ‹ Π²Π°ΠΆΠ½Π° для Π·Π°Π΄Π°Ρ‡ΠΈ. Рассмотрим Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС TCB. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ TCB Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ имя Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ контСкст (ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ значСния рСгистров), ΠΈ адрСс, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ этот контСкст для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π‘Π½Π°Ρ‡Π°Π»Π°, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ справится с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для TCB. Π”Π°Π½Π½Ρ‹Π΅, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ свойства ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹. Π Π°Π½Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ обсуТдали запись ΠΈΠ»ΠΈ структуру β€” абстрактный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ…ΠΎΡ€ΠΎΡˆΠΎ подходящий для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ TCB. Как Π±Ρ‹Π»ΠΎ упомянуто, структура прСдставляСт собой ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ…, Π½ΠΎ связанных ΠΌΠ΅ΠΆΠ΄Ρƒ собой Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ эти Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² структуру ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ TCB. Π’ Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΡƒΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ структуру для автомобиля ΠΈ слСдили Π·Π° самой Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… автомобилях, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Π² полях структуры. ΠœΡ‹ сдСлаСм Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС для TCB. (На самом Π΄Π΅Π»Π΅, ΠΌΡ‹ попросим, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это сдСлали Π²Ρ‹ Π² качСствС задания 4 для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΡƒΡŽ структуру Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ структуру для TCB.

Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ поля для TCB ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поля.

β€’ Π˜ΠΌΡ Π·Π°Π΄Π°Ρ‡ΠΈ состоит ΠΈΠ· символьного массива. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ€ΠΎΠ±ΠΎΡ‚Π° ΠΌΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠΌ имя Π·Π°Π΄Π°Ρ‡ΠΈ 20 символами. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ ΠΌΠ°Π»ΠΎΠ²Ρ€Π°Π·ΡƒΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ сокращСниями. ΠœΡ‹ позволяСм сСбС Ρ‚Π°ΠΊΡƒΡŽ Ρ€Π°ΡΡ‚ΠΎΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² использовании памяти Ρ€Π°Π΄ΠΈ удобочитаСмости.

β€’ Π’Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Π·Π°Π΄Π°Ρ‡ΠΈ: ΠΊΠ°ΠΊ слСдуСт ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°, Π·Π°Π΄Π°Ρ‡Π° Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡˆΠ΅ΡΡ‚ΠΈ состояний бСздСйствия (D), готовности (R), активности (A), оТидания (W), приостановки (S) ΠΈ восстановлСния (X). ΠœΡ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ состояниС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ΄Π½ΠΈΠΌ символом. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Π·Π°Π΄Π°Ρ‡ΠΈ Π² символьной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ нашСй структуры TCB.

β€’ ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ: Для ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ранТирования Π·Π°Π΄Π°Ρ‡ Π²Π½ΡƒΡ‚Ρ€ΠΈ систСмы, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ систСмы назначаСтся ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΠΌ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ фиксированныС ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹Π΅ значСния. Но ΠΏΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈ ΠžΠ‘Π Π’ систСмы, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ прСдставляСтся Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ числами. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ.

β€’ ΠšΠΎΠ½Ρ‚Скст Π·Π°Π΄Π°Ρ‡ΠΈ: Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ всСх ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… рСгистров связанных с Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, составляСт контСкст Π·Π°Π΄Π°Ρ‡ΠΈ. БистСма прСрывания, встроСнная Π² микропроцСссор 68HC12 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ стСк, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ вСсь контСкст, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ происходит. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ стСк, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ контСкст Π·Π°Π΄Π°Ρ‡ΠΈ. КаТдая Π·Π°Π΄Π°Ρ‡Π° ΠΈΠΌΠ΅Π΅Ρ‚ собствСнный стСк, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠžΠ‘Π Π’ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ†Π΅Π»Ρ‹ΠΉ ряд ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… стСков. Как программист систСмы, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти стСки Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π² пространствС памяти. Для простоты, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ структуру стСка, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ Ρ€Π°Π½Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅ для контСкстной памяти TCB. Π’Π°ΠΊ ΠΊΠ°ΠΊ всС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ рСгистры ΠΈ ячСйки памяти Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ 68HC12 ΠΈΠΌΠ΅ΡŽΡ‚ объСм Π² 8 ΠΈΠ»ΠΈ 16 Π±ΠΈΡ‚, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ фиксированный массив Ρ†Π΅Π»Ρ‹Ρ… чисСл для стСков TCB.

β€’ Π‘остояниС активности Π·Π°Π΄Π°Ρ‡ΠΈ: состояниС активности Π·Π°Π΄Π°Ρ‡ΠΈ прСдставляСт собой ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π΄Π°Ρ‡Π° станСт Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ. ПослС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π·Π°Π΄Π°Ρ‡Π° начинаСтся с Π½Π°Ρ‡Π°Π»Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Однако Π΄ΠΎ своСго ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ с Π±ΠΎΠ»Π΅Π΅ высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, TCB Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ.

β€’ Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ: Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ эти структуры TCB с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π² спискС TCB.

Π’Ρ‹ ΡƒΠΆΠ΅, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, усвоили понятиям Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π±Π»ΠΎΠΊΠ° управлСния Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Однако ΠΌΡ‹ Π΅Ρ‰Π΅ Π½Π΅ касались ряда слоТных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π’Π°ΠΌ, вСроятно, Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ясна идСя Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎ Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½Π° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. ΠœΡ‹ исслСдуСм эту Ρ‚Π΅ΠΌΡƒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ослоТнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ получатся, Ссли ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ATD-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, Π° ΠΎΠ½ΠΎ выгрузится событиСм с Π±ΠΎΠ»Π΅Π΅ высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½ΠΎ. И ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС, какая ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚, Ссли это событиС с Π±ΠΎΠ»Π΅Π΅ высоким ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ATD-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅. ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ бСзопасно ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΠ΅Ρ€Π΅Π΄ исслСдованиСм этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, возвратимся ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Ρ€ΠΎΠ±ΠΎΡ‚Π° ΠΈ посмотрим, ΠΊΠ°ΠΊ Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ Π·Π°Π΄Π°Ρ‡.