þ                               

               ½ þ




    ý


    ÓÒ ÚÐ Ú ÖÔÓÓк 
ºÙ
        Ä Ú ÖÔÓÓÐ ÍÒ Ú Ö× ØÝ

              ¹           ¾¼¼
ý           ´           µ



               




    Ô ÖØÑ ÒØ Ó      ÓÑÔÙØ Ö Ë
      Ò
Ä Ú ÖÔÓÓÐ ÍÒ Ú Ö× ØÝ




        þ           ¸               ¸




        ´                   µ
þ      º

þ           ÄÌÄ     Ìĺ

                  ´ÑÓ      Ð 
     
       Ò µº
            ´×ÝÑ ÓÐ 
 ÑÓ     Ð 
       
    Ò µº ü       º

ý                                                   º

                                  º
    ÆÙËÅÎ
ý



    Ð Ö   ÜÓÒ¸                                                º

          ¸                                               ¸
                      Å ÖØ    ÃÛ   Ø ÓÛ×       ¸   Ð Ö   ¸ Ê Ò Ý
    ÖÝ ÒØ¸ Ã Ò Å
Å ÐÐ Ò   Ò   Ò×   Ö       Ò   º



                                       º
þ   

                            ¸
                                                               ´   ¸
                                                            µ



                       




                                ¸                               
                                     ¸                  ø




          ¸
        Ë ÖÚ 
   Ô 
   ½¸ Ë ÖÚ 
    Ô 
   ¾¸º º º
»

                          ¸            ¸   ººº

     ¹       ¸               ¸º º º

ü



þ

ººº




              ´       µ

                  ¸
ººº
ººº


      ººº
Ö Ò


      ½



      ¿



          ¹


      ½ ¹




              ´ ¼¼
               µ
¹½




         ¾
     ½
È ÒØ ÙÑ   ÁÎ




                        ¿




                    ¸
               ∼¾
ÈÖÓ Ö Ñ Ø ×Ø Ò   
 Ò    Ù×           ØÓ × ÓÛ Ø   ÔÖ × Ò
   Ó
٠׸   ÙØ Ò Ú Ö ØÓ × ÓÛ Ø        Ö     × Ò


                                                               ¸



                                                           −−      רÖ




                             ¸
                                       ººº
ÈÖÓ
 ××                 ÈÖÓ
 ××
    º                       º
    º                       º
    º                       º
    x := x + y ;            y := y + x;
    º                       º
    º                       º
    º                       º



                                      ¸
                       ½¿
                   º
                                          º
ü                                

                                             ¸


                             ¸


                      


            ººº

        ü                               
            




    þ
»           »
                       º þ
        º
                º

        
            ¸                 ¸
                   º

þ       
                                º
½   ¼¹                                º þ                           ¹      º
                          º

½   ¼¹   ü                    º þ
                    ´Ö   
Ø Ú   ×Ýר Ñ×µº

½   ¼¹                              ´ÑÓ     Ð 
       
   Ò µº
                                    ´×ÝÑ ÓÐ 
 ÑÓ           Ð 
   
   Ò µº

½   ¼¹                                                                   ´ ÓÙÒ
         ÑÓ   Ð 
   
    Ò µº                     Ë Ìº
þ      ¹
Ý   Ø
                             ˽ ˾
Á ¹Ø       Ò¹ Ð×                  Ø   Ò Ë½       Ð×   ˾
Ï      Ð                     Û   Ð         Ó Ë Ó
ü                           x + y ¸ x/y º º º

           
                       ´               ¸
                                                      µ

ü


                           {P}S{Q}

                   P                         S             ¸
               Q
{x1 ≥ 0 ∧ x2  0}
y 1 := 0;
{x1 ≥ 0 ∧ x2  0 ∧ y 1 ≡ 0}
y 2 := x1;
{x1 ≡ y 1 × x2 + y 2 ∧ y 2 ≥ 0}
Û Ð y 2 ≥ x1 Ó
    {x1 ≡ y 1 × x2 + y 2 ∧ y 2 ≥ x2}
    y 1 := y 1 + 1;
    {x1 ≡ y 1 × x2 + y 2 − x2 ∧ y 2 − x2 ≥ 0}
    y 2 := y 2 − x2;
    {x1 ≡ y 1 × x2 + y 2 ∧ y 2 ≥ 0}
Ó
{x1 ≡ y 1 × x2 + y 2 ∧ y 2 ≥ 0 ∧ y 2  x2}
{P1 }S1 {P2 } {P2 }S2 {P3 }
                                ´             µ
       {P1 }S1 ; S2 {P3 }


{P ∧ e}S1 {Q} {Q ∧ ¬e}S2 {Q}
                                    ´ ¹Ø   Ò¹ Ð× µ
{P}( e Ø Ò S1 Ð× S2 ){Q}



                     ...
ý     ¸
          




ººº
´Ö 
Ø Ú ×Ýר Ñ×µ

                                           ~start
                                           ~close
                                           ~heat
                                           ~error

                    start oven                                                                           ¹
                                                close       open door
                                    open        door                          cook                       ¹
                                    door
                start                      ~start                  ~start                            ´
                ~close                     close         done      close                                 ¸
                heat                       ~heat                   heat
                error                      ~error                  ~error
¸
                                                                                            µº
                    close                     start oven
    open door       door                                                start cooking
                            reset

                start                      start                   start
                close                      close        warmup     close
                ~heat                      ~heat                   heat
                error                      ~error                  ~error
´                                           µ                    ¸           ¸




                                        ~start
                                        ~close
                                        ~heat
                                        ~error                                                ¸            ¹
                 start oven                  close       open door                   ¸
                                 open        door                          cook
                                 door                                                                      ¹
            start                       ~start                  ~start
            ~close
            heat
                                        close
                                        ~heat
                                                      done      close
                                                                heat
                                                                                         ´heat    ∧ ¬close µ
            error                       ~error                  ~error
                                                                                                           ¹
                 close                     start oven
open door        door                                                start cooking
                         reset

            start                       start                   start
            close                       close        warmup     close
            ~heat                       ~heat                   heat
            error                       ~error                  ~error




þ
´                µ



                 ¸
        ººº
¸   Ë Ì

            ´                          µ
    ü   ¸

                                   ¸
                ººº
                                            º
Å 
ÖÓ×Ó Ø ËØ Ø 
 Ö Ú Ö Î Ö         Ö




                                       ´   µ




                                              ¸
                             ¸             ¸
          
                                                   ´Å 
ÖÓ×Ó Ø
              Ï Ò ÓÛ×   Ö Ú Ö ÅÓ   и Ï Åµ
Å 
ÖÓ×Ó Ø ËØ Ø 
 Ö Ú Ö Î Ö            Ö

                                      ÈÁ

      ü                 ¸                   ¸


                                     do {
                 Rel
                                            KeAcquireSpinLock();
                 Acq
     Unlocked               Locked          nPacketsOld = nPackets;

       Rel                               if(request){
                            Acq
                                            request = request-Next;
                Error                       KeReleaseSpinLock();
                                            nPackets++;
                                         }
                                     } while (nPackets !=
                                         nPacketsOld);
´½µ
´½µ


·




                        ¸




            
þ                   º
    º


                ´   ¸
        µ
´¾µ




ü
´
        µ

þ              ´       µ

20071020 verification konev_lecture01

  • 1.
    þ ½ þ ý ÓÒ ÚÐ Ú ÖÔÓÓк ºÙ Ä Ú ÖÔÓÓÐ ÍÒ Ú Ö× ØÝ ¹ ¾¼¼
  • 2.
    ý ´ µ Ô ÖØÑ ÒØ Ó ÓÑÔÙØ Ö Ë Ò Ä Ú ÖÔÓÓÐ ÍÒ Ú Ö× ØÝ þ ¸ ¸ ´ µ
  • 3.
    þ º þ ÄÌÄ Ìĺ ´ÑÓ Ð Ò µº ´×ÝÑ ÓÐ ÑÓ Ð Ò µº ü º ý º º ÆÙËÅÎ
  • 4.
    ý Ð Ö ÜÓÒ¸ º ¸ ¸ Å ÖØ ÃÛ Ø ÓÛ× ¸ Ð Ö ¸ Ê Ò Ý ÖÝ ÒØ¸ Ã Ò Å Å ÐÐ Ò Ò Ò× Ö Ò º º
  • 5.
    þ ¸ ´ ¸ µ ¸ ¸ ø ¸ Ë ÖÚ Ô ½¸ Ë ÖÚ Ô ¾¸º º º
  • 6.
    » ¸ ¸ ººº ¹ ¸ ¸º º º ü þ ººº ´ µ ¸
  • 7.
  • 8.
    ººº ººº
  • 9.
    Ö Ò ½ ¿ ¹ ½ ¹ ´ ¼¼ µ
  • 10.
    ¹½ ¾ ½
  • 11.
    È ÒØ ÙÑ ÁÎ ¿ ¸ ∼¾
  • 12.
    ÈÖÓ Ö ÑØ ר Ò Ò Ù× ØÓ × ÓÛ Ø ÔÖ × Ò Ó Ù ×¸ ÙØ Ò Ú Ö ØÓ × ÓÛ Ø Ö × Ò ¸ −− ×ØÖ ¸ ººº
  • 13.
    ÈÖÓ ×× ÈÖÓ ×× º º º º º º x := x + y ; y := y + x; º º º º º º ¸ ½¿ º º
  • 14.
    ü ¸ ¸ ººº ü þ
  • 15.
    » » º þ º º ¸ ¸ º þ º
  • 16.
    ½ ¼¹ º þ ¹ º º ½ ¼¹ ü º þ ´Ö Ø Ú ×Ýר Ñ×µº ½ ¼¹ ´ÑÓ Ð Ò µº ´×ÝÑ ÓÐ ÑÓ Ð Ò µº ½ ¼¹ ´ ÓÙÒ ÑÓ Ð Ò µº Ë Ìº
  • 17.
    þ ¹
  • 18.
    Ý Ø Ë½ ˾ Á ¹Ø Ò¹ Ð× Ø Ò Ë½ Ð× Ë¾ Ï Ð Û Ð Ó Ë Ó ü x + y ¸ x/y º º º ´ ¸ µ ü {P}S{Q} P S ¸ Q
  • 19.
    {x1 ≥ 0∧ x2 0} y 1 := 0; {x1 ≥ 0 ∧ x2 0 ∧ y 1 ≡ 0} y 2 := x1; {x1 ≡ y 1 × x2 + y 2 ∧ y 2 ≥ 0} Û Ð y 2 ≥ x1 Ó {x1 ≡ y 1 × x2 + y 2 ∧ y 2 ≥ x2} y 1 := y 1 + 1; {x1 ≡ y 1 × x2 + y 2 − x2 ∧ y 2 − x2 ≥ 0} y 2 := y 2 − x2; {x1 ≡ y 1 × x2 + y 2 ∧ y 2 ≥ 0} Ó {x1 ≡ y 1 × x2 + y 2 ∧ y 2 ≥ 0 ∧ y 2 x2}
  • 20.
    {P1 }S1 {P2} {P2 }S2 {P3 } ´ µ {P1 }S1 ; S2 {P3 } {P ∧ e}S1 {Q} {Q ∧ ¬e}S2 {Q} ´ ¹Ø Ò¹ Ð× µ {P}( e Ø Ò S1 Ð× S2 ){Q} ...
  • 21.
    ý ¸ ººº
  • 22.
    ´Ö Ø Ú×Ýר Ñ×µ ~start ~close ~heat ~error start oven ¹ close open door open door cook ¹ door start ~start ~start ´ ~close close done close ¸ heat ~heat heat error ~error ~error
  • 23.
    ¸ µº close start oven open door door start cooking reset start start start close close warmup close ~heat ~heat heat error ~error ~error
  • 24.
    ´ µ ¸ ¸ ~start ~close ~heat ~error ¸ ¹ start oven close open door ¸ open door cook door ¹ start ~start ~start ~close heat close ~heat done close heat ´heat ∧ ¬close µ error ~error ~error ¹ close start oven open door door start cooking reset start start start close close warmup close ~heat ~heat heat error ~error ~error þ
  • 25.
    ´ µ ¸ ººº
  • 26.
    ¸ Ë Ì ´ µ ü ¸ ¸ ººº º
  • 27.
    Å ÖÓ×Ó ØËØ Ø Ö Ú Ö Î Ö Ö ´ µ ¸ ¸ ¸ ´Å ÖÓ×Ó Ø Ï Ò ÓÛ× Ö Ú Ö ÅÓ Ð¸ Ï Åµ
  • 28.
    Å ÖÓ×Ó ØËØ Ø Ö Ú Ö Î Ö Ö ÈÁ ü ¸ ¸ do { Rel KeAcquireSpinLock(); Acq Unlocked Locked nPacketsOld = nPackets; Rel if(request){ Acq request = request-Next; Error KeReleaseSpinLock(); nPackets++; } } while (nPackets != nPacketsOld);
  • 29.
  • 30.
    ´½µ · ¸ þ º º ´ ¸ µ
  • 31.
  • 32.
    ´ µ þ ´ µ