![]()  | 
    
    ||
| 
			
			
			
			 Silent Member 
			
		
			
			
			加入日期: Dec 2005 
					文章: 0
					
				 
				 | 
	
	
		
			
			 
				
				[考題]求救...研究所(作業系統)考題..請各位幫幫忙
		
	 
					
			小弟這個問題...已經PO在奇摩知識快1個月了... 
				
		
都沒人回應..希望站上有高手可以幫忙... 題目如下: Find a counterexample that demonstrates that this solution is incorrect (請找出下列程式中的錯誤) Concider the following program: 1 bollean block[2]; 2 in turn; 3 void P(int id){ 4 while(true){ 5 blocked[id]=true; 6 while(turn!=id){ 7 while(Blocked[1-id]) 8 ; 9 turn=id; 10 } 11 /* critical section*/ 12 blocked[id]=false; 13 /* remainder*/ 14 } 15 } 16 void manin(){ 17 blocked[0]false; 18 blocked[1]false; 19 turn=0; 20 parbegin(P(0),P(1)); 21 } 這邊沒點數可給...只能先給各位高手說聲謝謝!!  | 
|||||||
| 
      
				 | 
| 
			
			
			
			 Major Member 
			![]() 加入日期: Apr 2005 
					文章: 224
					
				 
				 | 
	
	
		
		
		
									  
		
		 我不覺的這是很難的題目 
				
		
需要你來空等奇摩知識一個月別人的回應 念到了研究所 該自已解決問題了..  | 
||
| 
      
				 | 
| 
			
			
			
			 *停權中*  
			
		
			
			
			加入日期: Dec 2005 
					文章: 3
					
				 
				 | 
	
	
		
		
		
									  
		
		 路過..... 0987 
				
		
		
		
		
		
		
		
		
	
	 | 
| 
      
				 | 
| 
			
			
			
			 Advance Member 
			![]() ![]() 加入日期: Apr 2002 
					文章: 308
					
				 
				 | 
	
	
		
		
		
									  
		
		 無限迴圈== 
				
		
		
		
		
		
		
		
		
	
	真是亂七八糟的排版  | 
| 
      
				 | 
| 
			
			
			
			 Junior Member 
			![]() ![]() ![]() 加入日期: May 2004 
					文章: 975
					
				 
				 | 
	
	
		
		
		
									  
		
		 一個月...... 
				
		
		
		
		
		
		
		
		
	
	為什麼不問老師呀......  | 
| 
      
				 | 
| 
			
			
			
			 Regular Member 
			![]() ![]() 加入日期: Nov 2003 
					文章: 98
					
				 
				 | 
	
	
		
		
		
									  
		
		 一點誠意也沒有 
				
		
		
		
		
		
		
		
			不排版、錯別字又多 bollean是啥? in又是啥? 沒這種type.... ------------------------------- 考不上、不會寫是應該的 
				__________________ 
		
		
		
		
	
	1.西巴丹 2.美娜多 3.帛琉  何時才能騎到海龜呢?![]() Olympus c-755 + PT-018拍的  | 
| 
      
				 | 
| 
			
			
			
			 Senior Member 
			![]() ![]() ![]() 加入日期: Aug 2004 
					文章: 1,068
					
				 
				 | 
	
	
		
		
		
									  
		
		 違反了Critical Section三個條件中的mutual exclusion。題目是要求給一個反例指出程式違反了Critical Section三個條件中的那一個條件,不是要你指出程式那行寫錯,何況閣下所打出來的程式滿滿的錯誤。 
				
		
		
		
		
		
		
		
		
	
	主程式main執行到parbegin(P(0),P(1));時,,2個processes會平行執行,這時就看誰先取得cpu資源。 假設這時p(1)先取得cpu資源,然後一直執行到while(turn!=id)這行,發現目前turn的值是0,和自己的id不相等,就會執行while中的程式。執行到while(Blocked[1-id]);時,去檢查另一個process是否想進入Critical Section,發現p(0)還沒要進入Critical Section,所以while迴圈裡面的動作不作,要進入Critical Section。正要進去時,cpu的使用權被p(0)搶走,p(0),因為turn的值還是0,沒有作修改,p(0)檢查發現自己有優先權,也不作while裡面的動作,直接進入Critical Section。等到cpu被p(1)搶回來時,就從進入Critical Section那段開始作。這時在Critical Section同時有2個processes存取,違反了mutual exclusion的原則。  | 
| 
      
				 | 
| 
			
			
			
			 Senior Member 
			![]() ![]() ![]() 加入日期: Mar 2002 您的住址: 《八仙飯店》 
				
				
					文章: 1,354
					
				 
				 | 
	
	
		
		
		
									  
		
		 這麼混亂的發問 
				
		
		
		
		
		
		
		
			
		
		
		
		
	
	這種程度的問題 都需要上網路來求救 台灣研究所學子的程度?!! PS:我並沒有大專以上的學歷  | 
| 
      
				 | 
| 
			
			
			
			 Major Member 
			![]() 加入日期: Sep 2001 
					文章: 108
					
				 
				 | 
	
	
		
		
		
									  
		
		 1個月....還解不出來,樓主要不要考慮一下研究所別唸了。 
				
		
		
		
		
		
		
		
			
				__________________ 
		
		
		
		
	
	潛水去  
			 | 
| 
      
				 | 
| 
			
			
			
			 Major Member 
			![]() 加入日期: Nov 2005 您的住址: 台北 
				
				
					文章: 218
					
				 
				 | 
	
	
		
		
		
									  
		
		 引用: 
	
 這句話...................猛          ![]() 
				__________________ 
		
		
		
		
	
	https://www.poem-design.com/  | 
|
| 
      
				 |