You are on page 1of 11

‫ﺩﺍﻧﺸﮕﺎﻩ ﺻﻨﻌﺘﻲ ﺷﺮﻳﻒ‬

‫ﺩﺍﻧﺸﻜﺪﻩﻱ ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ‬

‫ﺩﺭﺱ ﺩﺭﺳﺘﻲﻳﺎﺑﻲ ﺳﻴﺴﺘﻢﻫﺎﻱ ﻭﺍﻛﻨﺸﻲ‬

‫ﺗﻤﺮﻳﻦ ﺷﻤﺎﺭﻩﻱ ‪۲‬‬


‫ﻣﺪﻝﺳﺎﺯﻱ ﺳﻴﺴﺘﻢﻫﺎﻱ ﻫﻢﺭﻭﻧﺪ ﻭ ﺧﻮﺍﺹ ﺧﻄﻲ ﺯﻣﺎﻧﻲ‬
‫ﻣﻮﻋﺪ ﺗﺤﻮﻳﻞ‪ :‬ﺳﻪﺷﻨﺒﻪ ‪۱۴۰۱/۰۱/۳۰‬‬

‫ﺍﺳﺘﺎﺩ‪ :‬ﺩﻛﺘﺮ ﻋﻠﻲ ﻣﻮﻗﺮ‬


‫ﺗﻴﻢ ﺩﺳﺘﻴﺎﺭﺍﻥ ﺩﺭﺱ ‪ -‬ﻧﻴﻢﺳﺎﻝ ﺩﻭﻡ ‪۰۰ - ۰۱‬‬

‫‪ ۱۷‬ﻓﺮﻭﺭﺩﻳﻦ ‪۱۴۰۱‬‬
‫ﻣﺴﺌﻠﻪﻱ ﺍﻭﻝ‬
‫ﻧﺴﺨﻪﻱ ﺗﻮﺳﻌﻪﻳﺎﻓﺘﻪﺍﻱ ﺍﺯ ﺍﻟﮕﻮﺭﻳﺘﻢ ﺍﻧﺤﺼﺎﺭ ﻣﺘﻘﺎﺑﻞ ﭘﺘﺮﺳﻮﻥ ‪ ۱‬ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ ﻛﻪ ﺑﺮﺍﻱ ﺗﻌﺪﺍﺩ ﭘﺮﺩﺍﺯﻩ ‪۲‬ﻫﺎﻱ ‪ n ≥ 2‬ﻋﻤﻞ ﻣﻲﻛﻨﺪ‪ .‬ﻣﻔﻬﻮﻡ ﻛﻠﻲ ﺍﻟﮕﻮﺭﻳﺘﻢ‬

‫ﺑﺪﻳﻦ ﺻﻮﺭﺕ ﺍﺳﺖ ﻛﻪ ﻫﺮ ﭘﺮﺩﺍﺯﻩ ﻗﺒﻞ ﺍﺯ ﻛﺴﺐ ﻛﺮﺩﻥ ﺣﻖ ﻭﺭﻭﺩ ﺑﻪ ﻧﺎﺣﻴﻪﻱ ﺑﺤﺮﺍﻧﻲ ‪ ،۳‬ﺑﺎﻳﺪ ﺍﺯ ‪ n‬ﻣﺮﺣﻠﻪ ﻋﺒﻮﺭ ﻛﻨﺪ‪ .‬ﭘﺮﺩﺍﺯﻩﻫﺎﻱ ﻫﻤﺮﻭﻧﺪ ‪ ،۴‬ﺁﺭﺍﻳﻪﻫﺎﻱ ﻣﺤﺪﻭﺩ‬

‫ﺷﺪﻩ ﺍﺯ ﺟﻨﺲ ﺍﻋﺪﺍﺩ ﻃﺒﻴﻌﻲ ‪ ۵‬ﺭﺍ ﻣﻴﺎﻥ ﺧﻮﺩ ﺑﻪ ﺍﺷﺘﺮﺍﻙ ﻣﻲﮔﺬﺍﺭﻧﺪ‪ .‬ﺍﻳﻦ ﺁﺭﺍﻳﻪﻫﺎ ﻋﺒﺎﺭﺗﻨﺪ ﺍﺯ ‪ y[0..n − 1] :‬ﺑﻪﻃﻮﺭﻳﻜﻪ }‪ y[i] ∈ {1, ..., n‬ﻭ ]‪p[1..n‬‬

‫ﺑﻪﻃﻮﺭﻳﻜﻪ }‪ .p[i] ∈ {0, ..., n − 1‬ﻋﺒﺎﺭﺕ ‪ y[j] = i‬ﺑﺪﻳﻦ ﻣﻌﻨﻲ ﺍﺳﺖ ﻛﻪ ﭘﺮﺩﺍﺯﻩﻱ ﺷﻤﺎﺭﻩﻱ ‪ i‬ﺩﺭ ﻣﺮﺣﻠﻪﻱ ‪ j‬ﺩﺍﺭﺍﻱ ﻛﻤﺘﺮﻳﻦ ﺍﻭﻟﻮﻳﺖ ﻣﻲﺑﺎﺷﺪ ﻭ ﻋﺒﺎﺭﺕ‬

‫‪ p[i] = j‬ﺑﺪﻳﻦ ﻣﻌﻨﻲ ﺍﺳﺖ ﻛﻪ ﭘﺮﺩﺍﺯﻩﻱ ﺷﻤﺎﺭﻩﻱ ‪ i‬ﺩﺭ ﻣﺮﺣﻠﻪﻱ ‪ j‬ﻣﻲﺑﺎﺷﺪ‪ .‬ﭘﺮﺩﺍﺯﻩﻱ ﺷﻤﺎﺭﻩﻱ ‪ i‬ﺍﺯ ﻣﺮﺣﻠﻪﻱ ﺻﻔﺮ ﺷﺮﻭﻉ ﺑﻪﻛﺎﺭ ﻣﻲﻛﻨﺪ‪ .‬ﺑﺮﺍﻱ ﺍﻳﻨﻜﻪ ﻳﻚ‬

‫ﭘﺮﺩﺍﺯﻩ ﺩﺭﺧﻮﺍﺳﺖ ﻭﺭﻭﺩ ﺑﻪ ﻧﺎﺣﻴﻪﻱ ﺑﺤﺮﺍﻧﻲ ﺭﺍ ﺑﺪﻫﺪ‪ ،‬ﺑﺎﻳﺪ ﺍﺯ ﻣﺮﺣﻠﻪﻱ ‪ ۱‬ﺗﺎ ‪ n − 1‬ﻋﺒﻮﺭ ﻛﻨﺪ‪ .‬ﭘﺮﺩﺍﺯﻩﻱ ﺷﻤﺎﺭﻩﻱ ‪ i‬ﺩﺭ ﻣﺮﺣﻠﻪﻱ ‪ j‬ﺻﺒﺮ ﻣﻲﻛﻨﺪ ﺗﺎ ﺍﻳﻨﻜﻪ‬

‫ﻫﻤﻪﻱ ﭘﺮﺩﺍﺯﻩﻫﺎﻱ ﺩﻳﮕﺮ ﺩﺭ ﻳﻚ ﻣﺮﺣﻠﻪﻱ ﭘﺎﻳﻴﻦﺗﺮ ﺑﺎﺷﻨﺪ )ﺑﻪﺍﺯﺍﻱ ﺗﻤﺎﻡ ‪ k ̸= i‬ﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﻢ ‪ (p[k] < j‬ﻭ ﻳﺎ ﭘﺮﺩﺍﺯﻩﺍﻱ ﺩﻳﮕﺮ ﺍﻳﻦ ﺣﻖ ﺭﺍ ﺑﻪ ﭘﺮﺩﺍﺯﻩﻱ‬

‫ﺷﻤﺎﺭﻩﻱ ‪ i‬ﺑﺪﻫﺪ ﺗﺎ ﻭﺍﺭﺩ ﻧﺎﺣﻴﻪﻱ ﺑﺤﺮﺍﻧﻲ ﺷﻮﺩ )‪ .(y[j] ̸= i‬ﺭﻓﺘﺎﺭ ﭘﺮﺩﺍﺯﻩﻱ ﺷﻤﺎﺭﻩﻱ ‪ i‬ﺩﺭ ﺷﺒﻪﻛﺪ ﺯﻳﺮ ﻗﺎﺑﻞ ﻣﺸﺎﻫﺪﻩ ﻣﻲﺑﺎﺷﺪ‪:‬‬

‫‪Algorithm 1: Generalized Peterson’s Mutual Exclusion Algorithm‬‬

‫‪while true do‬‬

‫;‪... noncritical section...‬‬

‫‪forall j = 1, ..., n − 1 do‬‬

‫;‪p[i] := j‬‬

‫;‪y[j] := i‬‬
‫∧(‬ ‫)‬
‫∨ )‪wait until (y[j] ̸= i‬‬ ‫‪0<k6n,k̸=i‬‬ ‫]‪p[k‬‬ ‫<‬ ‫‪j‬‬ ‫;‬

‫‪end‬‬

‫;‪... critical section...‬‬

‫;‪p[i] := 0‬‬

‫‪end‬‬

‫‪1 Peterson’s Mutual‬‬ ‫‪Exclusion‬‬


‫‪2 Process‬‬
‫‪3 Critical Section‬‬
‫‪4 Concurrent‬‬
‫‪5 Bounded‬‬ ‫‪integer arrays‬‬

‫‪۲‬‬
‫• ﺍﻟﻒ( ﮔﺮﺍﻑ ﺑﺮﻧﺎﻣﻪ ‪۶‬ﻱ ﭘﺮﺩﺍﺯﻩﻱ ‪ i‬ﺭﺍ ﺭﺳﻢ ﻛﻨﻴﺪ‪ ۴) .‬ﻧﻤﺮﻩ(‬

‫• ﺏ( ﺗﻌﺪﺍﺩ ﺣﺎﻻﺕ ‪ ۷‬ﺣﺎﺻﻞ ﺍﺯ ﺗﺮﻛﻴﺐ ﻣﻮﺍﺯﻱ ‪ n ۸‬ﭘﺮﺩﺍﺯﻩ ﺭﺍ ﻣﺤﺎﺳﺒﻪ ﻛﻨﻴﺪ )ﺣﺎﻻﺕ ﻏﻴﺮﻗﺎﺑﻞ ﺩﺳﺘﺮﺱ ‪ ۹‬ﻧﻴﺰ ﻣﺤﺎﺳﺒﻪ ﺷﻮﻧﺪ(‪ ۴) .‬ﻧﻤﺮﻩ(‬

‫• ﺝ( ﺍﺛﺒﺎﺕ ﻛﻨﻴﺪ ﻛﻪ ﻭﻳﮋﮔﻲ ‪ ۱۰‬ﺍﻧﺤﺼﺎﺭ ﻣﺘﻘﺎﺑﻞ ﺩﺭ ﺍﻳﻦ ﺍﻟﮕﻮﺭﻳﺘﻢ ﺣﻔﻆ ﻣﻲﺷﻮﺩ‪ ۵) .‬ﻧﻤﺮﻩ(‬

‫ﻣﺴﺌﻠﻪﻱ ﺩﻭﻡ‬
‫ﻣﺪﺍﺭﻫﺎﻱ ﺗﺮﺗﻴﺒﻲ ‪ C1 ۱۱‬ﻭ ‪ C2‬ﻛﻪ ﺩﺭ ﺷﻜﻞ ‪ ۱‬ﺁﻣﺪﻩ ﺍﺳﺖ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪.‬‬

‫ﺷﻜﻞ ‪ :۱‬ﻣﺪﺍﺭﻫﺎﻱ ﺗﺮﺗﻴﺒﻲ‬

‫• ﺍﻟﻒ( ﺳﻴﺴﺘﻢﮔﺬﺍﺭ ﻣﺪﺍﺭﺍﺕ ‪ C1‬ﻭ ‪ C2‬ﺭﺍ ﺭﺳﻢ ﻛﻨﻴﺪ‪ ۴) .‬ﻧﻤﺮﻩ(‬

‫• ﺏ( ﺳﻴﺴﺘﻢﮔﺬﺍﺭ ﺣﺎﺻﻞ ﺍﺯ ) ‪ T S(C1 )||T S(C2‬ﺭﺍ ﺭﺳﻢ ﻛﻨﻴﺪ‪ ۴) .‬ﻧﻤﺮﻩ(‬

‫‪6 Program Graph‬‬


‫‪7 States‬‬
‫‪8 Parallel Composition‬‬
‫‪9 Unreachable‬‬
‫‪10 Property‬‬
‫‪11 Sequential Circuits‬‬

‫‪۳‬‬
‫ﻣﺴﺌﻠﻪﻱ ﺳﻮﻡ‬
‫ﺍﻟﮕﻮﺭﻳﺘﻢ ﺍﻧﺤﺼﺎﺭ ﻣﺘﻘﺎﺑﻞ ﺯﻳﺮ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ ﻛﻪ ﺍﺯ ﻣﺘﻐﻴﺮ ﻫﺎﻱ ﺑﻪ ﺍﺷﺘﺮﺍﻙ ﮔﺬﺍﺷﺘﻪ ﺷﺪﻩﻱ ‪ y1‬ﻭ ‪ y2‬ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﻛﻨﺪ )ﻣﻘﺪﺍﺭ ﺍﻭﻟﻴﻪﻱ ﻫﺮ ﺩﻭ ﺻﻔﺮ‬

‫ﻣﻲﺑﺎﺷﺪ(‪.‬‬
‫‪Algorithm 2: Prosses P1‬‬

‫‪while true do‬‬

‫;‪... noncritical section...‬‬

‫;‪y1 := y2 + 1‬‬

‫;)) ‪wait until (y2 = 0) ∨ (y1 < y2‬‬

‫;‪... critical section...‬‬

‫;‪y1 := 0‬‬

‫‪end‬‬

‫‪Algorithm 3: Prosses P2‬‬

‫‪while true do‬‬

‫;‪... noncritical section...‬‬

‫;‪y2 := y1 + 1‬‬

‫;)) ‪wait until (y1 = 0) ∨ (y2 < y1‬‬

‫;‪... critical section...‬‬

‫;‪y2 := 0‬‬

‫‪end‬‬

‫• ﺍﻟﻒ( ﮔﺮﺍﻑ ﺑﺮﻧﺎﻣﻪﻱ ﭘﺮﺩﺍﺯﻩﻱ ‪ P1‬ﻭ ‪ P2‬ﺭﺍ ﺭﺳﻢ ﻛﻨﻴﺪ‪ ۶) .‬ﻧﻤﺮﻩ(‬

‫• ﺏ( ﺑﺨﺶ ﻗﺎﺑﻞ ﺩﺳﺘﺮﺱ ‪ ۱۲‬ﻣﺮﺑﻮﻁ ﺑﻪ ﺳﻴﺴﺘﻢﮔﺬﺍﺭ ‪ ۱۳‬ﺣﺎﺻﻞ ﺍﺯ ‪ P1 ||P2‬ﺑﻪ ﻃﻮﺭﻳﻜﻪ ‪ y1 ≤ 2‬ﻭ ‪ y2 ≤ 2‬ﺑﺎﺷﺪ ﺭﺍ ﺭﺳﻢ ﻛﻨﻴﺪ‪ ۵) .‬ﻧﻤﺮﻩ(‬

‫‪12 Reachable‬‬
‫‪13 Transition System‬‬

‫‪۴‬‬
‫ﻣﺴﺌﻠﻪﻱ ﭼﻬﺎﺭﻡ‬
‫ﺍﻟﮕﻮﺭﻳﺘﻢ ﺍﻧﺘﺨﺎﺏ ﺭﺍﻫﺒﺮ ‪ ۱۴‬ﺯﻳﺮ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ :‬ﺩﺭ ﻳﻚ ﺷﺒﻜﻪ ﺑﺎ ﻫﻤﺒﻨﺪﻱ ﺣﻠﻘﻪ ‪ n ،۱۵‬ﭘﺮﺩﺍﺯﻩ ﺑﺎ ﻧﺎﻡﻫﺎﻱ ‪ P1 , .., Pn‬ﻗﺮﺍﺭ ﮔﺮﻓﺘﻪﺍﻧﺪ‪ .‬ﻟﻴﻨﻚ ﺑﻴﻦ ﭘﺮﺩﺍﺯﻩﻫﺎ‬

‫ﺑﻪ ﺷﻜﻞ ﻳﻚ ﻃﺮﻓﻪ ‪ ۱۶‬ﻭ ﺩﺭ ﺟﻬﺖ ﺳﺎﻋﺘﮕﺮﺩ ‪ ۱۷‬ﻣﻲﺑﺎﺷﺪ‪ .‬ﺟﻬﺖ ﻣﺘﻤﺎﻳﺰ ﺳﺎﺧﺘﻦ ﭘﺮﺩﺍﺯﻩﻫﺎ ﺍﺯ ﻳﻚﺩﻳﮕﺮ‪ ،‬ﺍﺯ ﺷﻨﺎﺳﻪﻫﺎﻱ ﻋﺪﺩﻱ ﻳﻜﺘﺎ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲﻛﻨﻴﻢ ﻭ ﺑﻪ ﻫﺮ‬

‫ﭘﺮﺩﺍﺯﻩ ﻳﻚ ‪ id‬ﺗﺨﺼﻴﺺ ﻣﻲﺩﻫﻴﻢ)}‪ .(id ∈ {1, ..., n‬ﻫﺪﻑ ﺍﻟﮕﻮﺭﻳﺘﻢ ﺍﻳﻦ ﺍﺳﺖ ﻛﻪ ﭘﺮﺩﺍﺯﻩﺍﻱ ﻛﻪ ﺩﺍﺭﺍﻱ ﺑﺰﺭﮔﺘﺮﻳﻦ ‪ id‬ﻣﻲﺑﺎﺷﺪ ﺭﺍ ﺩﺭﻭﻥ ﺣﻠﻘﻪ ﺑﻪ ﻋﻨﻮﺍﻥ‬

‫ﺭﺍﻫﺒﺮ ﻣﺸﺨﺺ ﻛﻨﻴﻢ‪ .‬ﺑﺪﻳﻦ ﻣﻨﻈﻮﺭ ﻫﺮ ﭘﺮﺩﺍﺯﻩ ﺑﺎﻳﺪ ﺍﻟﮕﻮﺭﻳﺘﻢ ﺯﻳﺮ ﺭﺍ ﺍﺟﺮﺍ ﻛﻨﺪ ‪:‬‬

‫‪Algorithm 4: Leader Election Algorithm‬‬

‫;)‪send(id‬‬

‫‪while true do‬‬

‫;)‪receive(m‬‬

‫‪if m = id then‬‬

‫;‪stop‬‬

‫‪end‬‬

‫‪if m > id then‬‬

‫;)‪send(m‬‬

‫‪end‬‬

‫‪end‬‬

‫ﭘﺮﻭﺗﻜﻞ ﺍﻧﺘﺨﺎﺏ ﺭﺍﻫﺒﺮ ﻣﺰﺑﻮﺭ ﺭﺍ ﺑﺮﺍﻱ ‪ n‬ﭘﺮﺩﺍﺯﻩ ﺩﺭ ﻗﺎﻟﺐ ﻳﻚ ﺳﻴﺴﺘﻢ ﻛﺎﻧﺎﻝ ‪ ۱۸‬ﻣﺪﻝ ﻛﻨﻴﺪ‪ ۱۰) .‬ﻧﻤﺮﻩ(‬

‫ﻣﺴﺌﻠﻪﻱ ﭘﻨﺠﻢ‬
‫ﺳﻴﺴﺘﻢﮔﺬﺍﺭ ﺯﻳﺮ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪ Trace .‬ﻫﺎﻱ ﺳﻴﺴﺘﻢﮔﺬﺍﺭ ﺯﻳﺮ ﺭﺍ ﺑﻪﻃﻮﺭ ﻓﺮﻣﺎﻝ ﺗﻌﺮﻳﻒ ﻛﻨﻴﺪ‪ ۵) .‬ﻧﻤﺮﻩ(‬
‫‪14 Leader‬‬ ‫‪Election‬‬
‫‪15 Ring‬‬ ‫‪Topology‬‬
‫‪16 Unidirectional‬‬
‫‪17 Clockwise‬‬
‫‪18 Channel System‬‬

‫‪۵‬‬
S0 {a}

S1 ∅ S2 {a}

S3 {a, b}

‫ﻣﺴﺌﻠﻪﻱ ﺷﺸﻢ‬
‫ ﻫﻤﭽﻨﻴﻦ ﻳﻚ ﺑﺮﻧﺎﻣﻪﻱ‬.‫ ﺗﻌﺮﻳﻒ ﻣﻲﺷﻮﺩ ﺭﺍ ﺩﺭﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‬AP = {x = 0, x > 1} ‫ ﺍﺳﺖ ﻭ ﺑﻪ ﺷﻜﻞ‬۱۹ ‫ ﻛﻪ ﺷﺎﻣﻞ ﮔﺰﺍﺭﻩﻫﺎﻱ ﺍﺗﻤﻲ‬AP ‫ﻣﺠﻤﻮﻋﻪﻱ‬

‫ ﺑﻪﻃﻮﺭ ﻓﺮﻣﺎﻝ‬۲۰ ‫ ﮔﺰﺍﺭﻩﻫﺎﻱ ﺯﻳﺮ ﺭﺍ ﺑﻪﺻﻮﺭﺕ ﻭﻳﮋﮔﻲ ﺯﻣﺎﻥ ﺧﻄﻲ‬،‫ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺍﻳﻦ ﻣﻮﺍﺭﺩ‬.‫ ﺭﺍ ﺗﻐﻴﻴﺮ ﻣﻲﺩﻫﺪ‬x ‫ﺗﺮﺗﻴﺒﻲ ﻏﻴﺮﻗﻄﻌﻲ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ ﻛﻪ ﻣﺘﻐﻴﺮ‬

(‫ ﻧﻤﺮﻩ‬۱۶) .‫ ﻫﺴﺘﻨﺪ ﻳﺎ ﺧﻴﺮ‬۲۲ ‫ ﻭ ﻳﺎ ﺳﺮﺯﻧﺪﮔﻲ‬۲۱ ‫ ﻫﻤﭽﻨﻴﻦ ﺑﺮﺍﻱ ﻫﺮ ﻣﻮﺭﺩ ﺑﺎ ﺫﻛﺮ ﺩﻟﻴﻞ ﻣﺸﺨﺺ ﻛﻨﻴﺪ ﻛﻪ ﺁﻳﺎ ﺍﺯ ﻧﻮﻉ ﻭﻳﮋﮔﻲ ﺍﻳﻤﻨﻲ‬.‫ﺑﻨﻮﻳﺴﻴﺪ‬

• a) False

• b) Initially x is equal to zero

• c) Initially x differs from zero

• d) Initially x is equal to zero, but at some point x exceeds one

• e) x exceeds one only finitely many times

• f) x exceeds one infinitely often

• g) The value of x alternates between zero and two

• h) True
19 Atomic Proposition
20 Linear Time Property
21 Safety
22 Liveness

۶
‫ﻣﺴﺌﻠﻪﻱ ﻫﻔﺘﻢ‬

‫• ﺍﻟﻒ( ﻓﺮﺽ ﻛﻨﻴﺪ ‪ P‬ﻳﻚ ﻭﻳﮋﮔﻲ ﺧﻄﻲ ﺯﻣﺎﻧﻲ ﺍﺳﺖ‪ .‬ﺍﺛﺒﺎﺕ ﻛﻨﻴﺪ ﻛﻪ‪ ۴) pref(closure(P )) = pref(P ) :‬ﻧﻤﺮﻩ(‬

‫• ﺏ( ﻓﺮﺽ ﻛﻨﻴﺪ ‪ P‬ﻭ ‪ P ′‬ﻭﻳﮋﮔﻲﻫﺎﻱ ﺳﺮﺯﻧﺪﮔﻲ ﺑﺮ ﺭﻭﻱ ﻣﺠﻤﻮﻋﻪ ‪ AP‬ﺑﺎﺷﻨﺪ‪ .‬ﺍﺩﻋﺎﻫﺎﻱ ﺯﻳﺮ ﺭﺍ ﺍﺛﺒﺎﺕ ﻭ ﻳﺎ ﺭﺩ ﻛﻨﻴﺪ‪ ۴) :‬ﻧﻤﺮﻩ(‬

‫‪– a) P ∪ P ′ is a liveness property.‬‬

‫‪– b) P ∩ P ′ is a liveness property.‬‬

‫ﺣﺎﻝ ﺍﻳﻦ ﺳﻮﺍﻝ ﺭﺍ ﺑﺎ ﺍﻳﻦ ﻓﺮﺽ ﭘﺎﺳﺦﺩﻫﻴﺪ ﻛﻪ ‪ P‬ﻭ ‪ P ′‬ﺩﻭ ﻭﻳﮋﮔﻲ ﺍﻳﻤﻨﻲ ﺑﺎﺷﻨﺪ‪ ۴) .‬ﻧﻤﺮﻩ(‬

‫ﻣﺴﺌﻠﻪﻱ ﻫﺸﺘﻢ‬

‫ﺳﻴﺴﺘﻢ ﮔﺬﺍﺭ ﺯﻳﺮ ﺭﺍ ﺑﻪ ﻫﻤﺮﺍﻩ ﻣﺠﻤﻮﻋﻪﻱ ﺍﻋﻤﺎﻝ }‪ B2 = {α, β} ،B1 = {α‬ﻭ }‪ B3 = {β‬ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪.‬‬

‫‪γ‬‬ ‫‪β‬‬

‫∅ ‪S1‬‬

‫}‪S2 {a‬‬
‫}‪S3 {b‬‬
‫‪α‬‬ ‫‪α‬‬ ‫‪γ‬‬

‫‪γ‬‬ ‫‪α‬‬
‫}‪s4 {a, b‬‬

‫ﺩﺭ ﺍﺩﺍﻣﻪ ﻭﻳﮋﮔﻲﻫﺎﻱ ﺧﻄﻲ ﺯﻣﺎﻧﻲ ‪ Eb ،Ea‬ﻭ ‪ E ′‬ﺭﺍ ﺑﺪﻳﻦ ﺻﻮﺭﺕ ﺗﻌﺮﻳﻒ ﻣﻲﻛﻨﻴﻢ‪:‬‬

‫‪۷‬‬
• Eb = the set of all words A0A1... ∈ (2{a,b} )ω with Ai ∈ {{a, b}, {b}} for infinitely many i (i.e., infinitely often b).

• Ea = the set of all words A0A1... ∈ (2{a,b} )ω with Ai ∈ {{a, b}, {a}} for infinitely many i (i.e., infinitely often a).

• E ′ = the set of all words A0A1... ∈ (2{a,b} )ω for which there does not exist an i ∈ N s.t. Ai = {a}, Ai+1 = {a, b}

and Ai+2 = ∅.

.T S |=Fi E ‫ ﺧﻮﺍﻫﻴﻢ ﺩﺍﺷﺖ‬،E ∈ {Ea , Eb , E ′ } ‫ ﻭ ﻭﻳﮋﮔﻲﻫﺎﻱ ﺧﻄﻲ ﺯﻣﺎﻧﻲ‬Bi (i ∈ {1, 2, 3}) ‫• ﺍﻟﻒ( ﺑﺮﺍﻱ ﻛﺪﺍﻡ ﻳﻚ ﺍﺯ ﻣﺠﻤﻮﻋﻪ ﺍﻋﻤﺎﻝ‬

(‫ ﻧﻤﺮﻩ‬۵) (Fi = (∅, {Bi }, ∅)) ‫ ﻣﻲﺑﺎﺷﺪ‬۲۳ ‫ ﻳﻚ ﺷﺮﻁ ﺍﻧﺼﺎﻑ ﻗﻮﻱ‬Fi ،‫)ﺩﺭ ﺍﻳﻦ ﺳﻮﺍﻝ‬

(‫ ﻧﻤﺮﻩ‬۵) .‫( ﭘﺎﺳﺦ ﺩﻫﻴﺪ‬Fi = (∅, ∅, {Bi }))۲۴ ‫• ﺏ( ﺳﻮﺍﻝ ﻓﻮﻕ ﺭﺍ ﺑﺮﺍﻱ ﺣﺎﻟﺖ ﺍﻧﺼﺎﻑ ﺿﻌﻴﻒ‬

‫ﻣﺴﺌﻠﻪﻱ ﻧﻬﻢ‬

.‫ﺳﻴﺴﺘﻢﮔﺬﺍﺭ ﺯﻳﺮ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‬

S0

α
β α

α
δ S1 S2 S3
β

β
α

δ
S4

23 Strong Fairness
24 Weak Fairness

۸
‫ﺑﺎ ﺫﻛﺮ ﺩﻟﻴﻞ ﺑﺮﺭﺳﻲ ﻛﻨﻴﺪ ﻛﻪ ﻛﺪﺍﻡ ﻳﻚ ﺍﺯ ﻓﺮﺿﻴﺎﺕ ﺍﻧﺼﺎﻑ ‪ Fi‬ﺑﺮﺍﻱ ﺳﻴﺴﺘﻢ ﮔﺬﺍﺭ ﻣﺰﺑﻮﺭ ﺗﺤﻘﻖﭘﺬﻳﺮ ‪ ۲۵‬ﻣﻲﺑﺎﺷﺪ‪ ۱۵) .‬ﻧﻤﺮﻩ(‬

‫)}}‪• a) F1 = ({{α}}, {{β}}, {{α, β‬‬

‫)}}‪• b) F2 = ({{δ, α}}, {{α, β}}, {{δ‬‬

‫)}}‪• c) F3 = ({{α, δ}, {β}}, {{α, β}}, {{δ‬‬

‫ﻣﺴﺌﻠﻪﻱ ﺩﻫﻢ‬
‫ﻓﺮﺽ ﻛﻨﻴﺪ ‪ P‬ﻣﺠﻤﻮﻋﻪﺍﻱ ﺍﺯ ‪ Trace‬ﻫﺎﻱ ﺑﻪ ﻓﺮﻡ ‪ σ = A0 A1 A2 ... ∈ (2AP )ω‬ﺑﺎﺷﺪ‪ ،‬ﺑﻪﻃﻮﺭﻳﻜﻪ ‪:‬‬

‫∞‬
‫}‪∃ k. Ak = {a, b‬‬ ‫∧‬ ‫) ‪∃n > 0. ∀k > n. (a ∈ Ak ⇒ b ∈ Ak+1‬‬

‫ﺳﻴﺴﺘﻢﮔﺬﺍﺭ ﺯﻳﺮ ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ‪:‬‬


‫‪α‬‬

‫‪α‬‬
‫}‪S0 {a‬‬ ‫}‪S1 {b‬‬

‫‪γ‬‬

‫‪β‬‬ ‫‪α‬‬
‫‪γ‬‬

‫}‪S2 {a, b‬‬ ‫∅ ‪S3‬‬ ‫}‪S4 {a, b‬‬


‫‪δ‬‬ ‫‪η‬‬

‫‪α‬‬
‫‪β‬‬ ‫‪β‬‬

‫ﺣﺎﻝ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻓﺮﺽﻫﺎﻱ ﺍﻧﺼﺎﻑ ﺩﺍﺩﻩ ﺷﺪﻩ‪ ،‬ﺑﺎ ﺫﻛﺮ ﺩﻟﻴﻞ ﻭ ﺗﻮﺿﻴﺤﺎﺕ ﻣﻨﺎﺳﺐ‪ ،‬ﺩﺭﺳﺘﻲ ﻳﺎ ﻧﺎﺩﺭﺳﺘﻲ ﻋﺒﺎﺭﺍﺕ ﺯﻳﺮ ﺭﺍ ﻧﺸﺎﻥ ﺩﻫﻴﺪ‪ ۲۰) .‬ﻧﻤﺮﻩ(‬

‫‪25 Realizable‬‬

‫‪۹‬‬
‫‪• a) F1 = ({{α}}, {{β}, {δ, γ}, {η}}, ∅) : T S |=F1 P‬‬

‫‪• b) F2 = ({{α}}, {{β}, {γ}}, {{η}}) : T S |=F2 P‬‬

‫‪• c) F3 = (∅, {{γ}, {α}, {η}}, {{δ}}) : T S |=F3 P‬‬

‫‪• d) F4 = ({{α}, {β}}, {{δ}, {η}}, ∅) : T S |=F4 P‬‬

‫ﺗﻤﺮﻳﻦ ﻋﻤﻠﻲ‬
‫ﺍﻟﮕﻮﺭﻳﺘﻢ ﺍﻧﺤﺼﺎﺭ ﻣﺘﻘﺎﺑﻞ ﺯﻳﺮ ﺑﺮﺍﻱ ﺩﻭ ﭘﺮﺩﺍﺯﻩﻱ ‪ P1‬ﻭ ‪ P2‬ﺭﺍ ﺩﺭ ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ )ﺍﻳﻦ ﺍﻟﮕﻮﺭﻳﺘﻢ ﺑﻪ ﻧﺎﻡ ﺍﻧﺤﺼﺎﺭ ﻣﺘﻘﺎﺑﻞ ﻫﻲﻣﻦ ‪ ۲۶‬ﻣﻌﺮﻭﻑ ﺍﺳﺖ(‪ .‬ﺩﺭ ﺍﻳﻦ‬

‫ﺍﻟﮕﻮﺭﻳﺘﻢ‪ ،‬ﭘﺮﺩﺍﺯﻩﻫﺎ ﻳﻚ ﻣﺘﻐﻴﺮ ﺍﺯ ﻧﻮﻉ ﺍﻋﺪﺍﺩ ﺻﺤﻴﺢ }‪ k ∈ {1, 2‬ﻭ ﺩﻭ ﻣﺘﻐﻴﺮ ﺑﻮﻟﻲ )}‪ bx (x ∈ {1, 2‬ﺭﺍ ﺑﻪ ﺍﺷﺘﺮﺍﻙ ﻣﻲﮔﺬﺍﺭﻧﺪ‪ .‬ﻫﺮ ﭘﺮﺩﺍﺯﻩﻱ ‪ Pi‬ﺍﻟﮕﻮﺭﻳﺘﻢ‬

‫ﺯﻳﺮ ﺭﺍ ﺍﺟﺮﺍ ﻣﻲﻛﻨﺪ‪ ،‬ﺍﻧﺪﻳﺲ ﻫﺎﻱ ‪ i‬ﻭ ‪ j‬ﻣﻌﺮﻑ ﺷﻤﺎﺭﻩﻱ ﺩﻭ ﭘﺮﺩﺍﺯﻩﻱ ﻣﺪﻧﻈﺮ ﻫﺴﺘﻨﺪ‪.‬‬
‫‪Algorithm 5: Hyman’s Mutual Exclusion Algorithm‬‬

‫‪while true do‬‬

‫;‪... noncritical section...‬‬

‫;‪bi := true‬‬

‫‪while k! = i do‬‬

‫‪while bj do‬‬

‫;‪skip‬‬

‫‪end‬‬

‫;‪k := i‬‬

‫‪end‬‬

‫;‪... critical section...‬‬

‫;‪bi := f alse‬‬

‫‪end‬‬

‫‪26 Hyman’s Mutual‬‬ ‫‪Exclusion Algorithm‬‬

‫‪۱۰‬‬
‫ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺯﺑﺎﻥ ﺭﺑﻜﺎ ‪ ،۲۷‬ﺍﻳﻦ ﺍﻟﮕﻮﺭﻳﺘﻢ ﺭﺍ ﻣﺪﻝ ﻛﻨﻴﺪ ﻭ ﺳﭙﺲ ﺑﺎ ﻛﻤﻚ ﻧﺮﻡﺍﻓﺰﺍﺭ ﺍﻓﺮﺍ ‪ ۲۸‬ﺑﺮﺭﺳﻲ ﻛﻨﻴﺪ ﻛﻪ ﺁﻳﺎ ﺍﻳﻦ ﺍﻟﮕﻮﺭﻳﺘﻢ ﻭﻳﮋﮔﻲ ﺍﻧﺤﺼﺎﺭ ﻣﺘﻘﺎﺑﻞ ﺭﺍ‬

‫ﺗﻀﻤﻴﻦ ﻣﻲﻛﻨﺪ ﻳﺎ ﺧﻴﺮ‪) .‬ﺭﺍﻫﻨﻤﺎﻳﻲ‪ :‬ﺑﺮﺍﻱ ﻣﺪﻝﺳﺎﺯﻱ ﻣﺘﻐﻴﺮﻫﺎﻱ ﺑﻪ ﺍﺷﺘﺮﺍﻙ ﮔﺬﺍﺷﺘﻪ ﺷﺪﻩ ﺩﺭ ﺭﺑﻜﺎ‪ ،‬ﺁﻥﻫﺎ ﺭﺍ ﺩﺭ ﻗﺎﻟﺐ ﻳﻚ ﺍﻛﺘﻮﺭ ‪ ۲۹‬ﺑﻪﺷﻜﻞ ﺟﺪﺍﮔﺎﻧﻪ ﻣﺪﻝ‬

‫ﻛﻨﻴﺪ(‪ ۳۰) .‬ﻧﻤﺮﻩ(‬

‫ﻧﺤﻮﻩﻱ ﺍﺭﺳﺎﻝ ﭘﺎﺳﺦ‬


‫ﺩﺍﻧﺸﺠﻮﻳﺎﻥ ﻣﻲﺑﺎﻳﺴﺖ ﺑﻪ ﻋﻨﻮﺍﻥ ﭘﺎﺳﺦ ﺍﻳﻦ ﺗﻤﺮﻳﻦ‪ ،‬ﻓﺎﻳﻞ ﻣﺮﺑﻮﻁ ﺑﻪ ﭘﺎﺳﺦ ﺳﻮﺍﻻﺕ ﻧﻈﺮﻱ ﺗﻤﺮﻳﻦ ﺭﺍ ﺩﺭ ﻗﺎﻟﺐ ﻳﻚ ﻓﺎﻳﻞ ‪ PDF‬ﻭ ﺑﺮﺍﻱ ﭘﺎﺳﺦ ﺑﻪ ﺗﻤﺮﻳﻦ‬

‫ﻋﻤﻠﻲ‪ ،‬ﻓﺎﻳﻞ ﻣﺮﺑﻮﻁ ﺑﻪ ﻛﺪﻫﺎﻱ ﻣﺪﻝﺳﺎﺯﻱ ﻭ ﺗﻮﺻﻴﻒ ﻭﻳﮋﮔﻲﻫﺎ ‪ ۳۰‬ﺑﻪ ﻫﻤﺮﺍﻩ ﺗﺼﻮﻳﺮ ﺧﺮﻭﺟﻲ ﻋﻤﻠﻴﺎﺕ ﺩﺭﺳﺘﻲﻳﺎﺑﻲ ﻭ ﻳﻚ ﻓﺎﻳﻞ ﮔﺰﺍﺭﺵ ﻛﻪ ﺩﺭ ﺁﻥ ﺩﺭﺑﺎﺭﻩﻱ‬

‫ﻣﺪﻝﺳﺎﺯﻱ ﺍﻧﺠﺎﻡ ﺷﺪﻩ ﺗﻮﺿﻴﺢ ﺩﺍﺩﻩﺍﻧﺪ ﺭﺍ ﺩﺭ ﻗﺎﻟﺐ ﻳﻚ ﻓﺎﻳﻞ ‪ zip‬ﺑﺮ ﺻﻔﺤﻪﻱ ﺩﺭﺱ ﺩﺭ ﺳﺎﻳﺖ ﺩﺭﺱﺍﻓﺰﺍﺭ ﺑﺎﺭﮔﺬﺍﺭﻱ ﻧﻤﺎﻳﻨﺪ‪.‬‬

‫ﻣﻮﻓﻖ ﺑﺎﺷﻴﺪ‬

‫‪27 Rebeca‬‬
‫‪28 Afra‬‬
‫‪29 Actor‬‬
‫‪30 Properties‬‬

‫‪۱۱‬‬

You might also like