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

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

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

  }

  /* ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ATD-прСобразования*/

  /* Π² глобальном массивС char */

  sens[0] = ADR7H; /*ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ */

  sens[1] = ADR6H; /*срСдний Π»Π΅Π²Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ */

  sens[2] = ADR5H; /*Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ */

  sens[3] = ADR4H; /*срСдний ΠΏΡ€Π°Π²Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ */

  sens[4] = ADR3H; /*ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ ΠΏΡ€Π°Π²Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ */

  sens[5] = ADR2H; /*Π”Π°Ρ‚Ρ‡ΠΈΠΊ Π₯ΠΎΠ»Π»Π° */

  code_section = 2; /*update code_section variable */

  break;

 case 2:

  /*Π°Π½Π°Π»ΠΈΠ· ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΏΠΎΡ€ΠΎΠ³ΠΈ для*/

  /*Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Π₯ΠΎΠ»Π»Π°(hes_threshold) ΠΈ для ИК-Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² (opto_threshold)ΡΠ²Π»ΡΡŽΡ‚ΡΡ*/

  /* Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ*/

  if (sens[5] < hes_threshold) { /*сигнал с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Π₯ΠΎΠ»Π»Π°, объСзд*/

   pwm_motors(back_up); /* Ρ€ΠΎΠ±ΠΎΡ‚ Π΄Π°Π΅Ρ‚ Π·Π°Π΄Π½ΠΈΠΉ Ρ…ΠΎΠ΄*/

   /*дСйствия, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ послС Ρ‚ΠΎΠ³ΠΎ */

   /* ΠΊΠ°ΠΊ Ρ€ΠΎΠ±ΠΎΡ‚ ΠΎΡ‚ΡŠΠ΅Ρ…Π°Π» Π½Π°Π·Π°Π΄ */

   if (sens[0] > opto_threshold) pwm_motors(right_turn);

   else pwm_motors(left_turn);

   for (i=0; i<0xFFFF; i++) { /*Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ двигатСля */

    for(j=0; j<15; j++) {

     ;

    }

   }

  }

  /*Ссли ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ Ρ‚ΡƒΠΏΠΈΠΊ - Π·Π°Π΄Π½ΠΈΠΉ Ρ…ΠΎΠ΄*/

  else if ((sens[2]>opto_threshold) && (sens[0]>opto_threshold) && (sens[4]>opto_threshold)) {

   pwm_motors(back_up);

  }

  /*Ссли стСнки спСрСди ΠΈ слСва, */

  /*ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Ρ€ΠΎΠ±ΠΎΡ‚Π° Π½Π°ΠΏΡ€Π°Π²ΠΎ */

  else if((sens[0]>opto_threshold) && (sens[2]>opto_threshold)) {

   pwm_motors(right_turn);

  }

  /*Ссли стСнки спСрСди ΠΈ справа, */

  /*ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Ρ€ΠΎΠ±ΠΎΡ‚Π° Π½Π°Π»Π΅Π²ΠΎ */

  else if((sens[2]>opto_threshold) && (sens[4]>opto_threshold)) {

   pwm_motors(left_turn);

  }

  /*Ссли стСнка ΠΏΠ΅Ρ€Π΅Π΄ срСдним ΠΏΡ€Π°Π²Ρ‹ΠΌ */

  /* Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π½Π°ΠΏΡ€Π°Π²ΠΎ */

  else if (sens[1] > opto_threshold) {

   pwm_motors(half_right);

  }

  /*Ссли стСнка ΠΏΠ΅Ρ€Π΅Π΄ срСдним Π»Π΅Π²Ρ‹ΠΌ */

  /* Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π½Π°Π»Π΅Π²ΠΎ */

  else if (sens[3]>opto_threshold) {

   pwm_motors(half_left);

  }

  /*Ссли сигналов ΠΎΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π΅Ρ‚ */

  /*ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΏΠ΅Ρ€Π΅Π΄ */

  else {

   pwm_motors(forward);

  }

  code_section = 0; /* ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ code_section */

  break;

 }/*ΠΊΠΎΠ½Π΅Ρ† switch*/

 return code_section;

}

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

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ обращСниями ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ process_turn. ИспользованиС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ самоС Π»ΡƒΡ‡ΡˆΠ΅Π΅ использованиС Π΄Π΅Ρ„ΠΈΡ†ΠΈΡ‚Π½Ρ‹Ρ… рСсурсов памяти RAM. Π”Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ двиТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ.

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

8.4.3. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Ρ… систСм

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

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° состояниСм ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· управляСмых Π΅ΠΉ Π·Π°Π΄Π°Ρ‡. ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌΡΡ снова ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ с Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄ΠΈΠ»Π΅Ρ€Π°ΠΌΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ использовали списки с указатСлями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ‡Π΅ΡΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ автомобиля: Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² ΠΏΠ°Ρ€Ρ‚ΠΈΡŽ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ, ΠΏΡ€ΠΎΠ΄Π°ΠΆΡƒ, Ρ€Π΅ΠΌΠΎΠ½Ρ‚, пСрСкраску ΠΈ Ρ‚.Π΄.; ΠΌΡ‹ удаляли Π΅Π³ΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ списка ΠΈ добавляли Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния. ΠžΠ‘Π Π’ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° состояниСм ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

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

ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π·Π°Π΄Π°Ρ‡Π° смоТСт ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² состояниС готовности, ΠžΠ‘Π Π’ Π΄ΠΎΠ»ΠΆΠ½Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅ΠΉ Π±ΡƒΠ΄ΡƒΡ‚ доступны всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ рСсурсы. Под рСсурсами ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ спСцифичСскиС Π΄Π°Π½Π½Ρ‹Π΅, Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ подсистСмы ΠΈ Ρ‚. Π΄. НапримСр, Ссли Π·Π°Π΄Π°Ρ‡Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· подсистСм ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° 68HC12, ΠžΠ‘Π Π’ Π΄ΠΎΠ»ΠΆΠ½Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ этот рСсурс доступСн для Π·Π°Π΄Π°Ρ‡ΠΈ, пСрСходящСй Π² состояниС готовности. Π—Π°Π΄Π°Ρ‡Π° ΠΆΠ΅, которая ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ рСсурса, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° Π² состояниС оТидания.

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

Для выполнСния этих дСйствий ядро ΠžΠ‘Π Π’ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ряд инструмСнтов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ систСмныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ состояниС Π·Π°Π΄Π°Ρ‡ ΠΈ диспСтчСры/ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΈ, ΠΈΡΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ систСмы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, какая ΠΈΠ· Π·Π°Π΄Π°Ρ‡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚. ΠžΠ‘Π Π’ Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ осущСствлСния ΠΌΠ΅ΠΆΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Ρ… связСй, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ рассмотрим Π΄Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Когда ΠΌΡ‹ наблюдали ΠΏΠΎ Ρ‚Π΅Π»Π΅Π²ΠΈΠ΄Π΅Π½ΠΈΡŽ Ρ„Π΅Π½ΠΎΠΌΠ΅Π½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ³Ρ€Ρƒ Π² Π³ΠΎΠ»ΡŒΡ„ ЛСсного Π’ΠΈΠ³Ρ€Π° (Matt Christopher, ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°), Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ Π·Π°ΠΈΠ½Ρ‚Ρ€ΠΈΠ³ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ пСрсонал поля для Π³ΠΎΠ»ΡŒΡ„Π° способСн ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° состояниСм большого числа ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² Π² Π³ΠΎΠ»ΡŒΡ„ (Π·Π°Π΄Π°Ρ‡) Π½Π° Ρ‚ΡƒΡ€Π½ΠΈΡ€Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌ Π»ΡƒΠ½ΠΊΠΈ (рСсурсы). Π’ процСссС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ большоС Ρ‚Π°Π±Π»ΠΎ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π»ΠΎΡΡŒ состояниС ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² ΠΈ Π»ΡƒΠ½ΠΎΠΊ. ΠžΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ пСрсонал поля для Π³ΠΎΠ»ΡŒΡ„Π° ΠΌΠΎΠ³ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ состояниС Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈΠ»ΠΈ Π»ΡƒΠ½ΠΊΠΈ. Π’Π°Π±Π»ΠΎ состояния постоянно измСнялось Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΡƒΡ€Π½ΠΈΡ€Π°. ΠžΠ‘Π Π’ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ Ρ‚Π΅ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (TCB ΠΈ DCB) Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ состояниС Π·Π°Π΄Π°Ρ‡, рСсурсов ΠΈ услуг Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.