Tiêu đề: Mô phỏng giải thuật FIFO Sun Oct 02, 2011 3:29 pm
Đây chỉ là giải thuật thôi, tự phát triển nhé, tí làm cái dê mô Ngôn ngữ: Ngôn ngữ lai( Autoit&C)
Code:
Giải thuật Struct Process Char Ten[10]; Int Tong; Int TDiem; Int Tgian; Int ConLai;//=Tong-(TDiem+Tgian); end process p[]; Begin t=0;cpu_rah=true;i_o_rah=true; for j=1 to n do Ready_list.add(i); Ready_list[0]=n; PrintArray(t,Ready_list,Ready_list[0]) While( gì gì đó) { //xu ly CPU if(not (cpu_rah)& process[cpu].TDiem=0) { cpu_rah=true;//tra cpu Array_add($Waiting_list,$i_o)//them vao hag doi waiting_list $Waiting_list[0]=$Waiting_list[0]+1; } if (cpu_rah)//cpu dang ranh { if(ready_list[0]>0) { cpu=Ready_list[1];//lay tien trinh tu hag doi ready_list _ArrayDelete($Ready_list,1) $Ready_list[0]=$Ready_list[0]-1; cpu_rah=false; } } //xu ly I_O if(not (i_o_rah) && $process[$i_o].Tgian<=0){ i_o_ranh=true;//tra tai nguyen cho he thong Array_add($Ready_list,$i_o) $Ready_list[0]=$Ready_list[0]+1; process[i_o].TDiem=process[i_o].Conlai; }
if( i_o_ranh) { if(Waiting_list[0]>0) { i_o=Waiting_list[1]; _ArrayDelete($Waiting_list,1) $Ready_list[0]=$Waiting_list[0]-1; i_o_ranh=false; } } if(not (cpu_rah)){process[cpu].TDiem--;} if(not (i_o_ranh)){process[i_o].Tgian--;} t++; }//End While Func PrintArray($Label,$t,$Array[],$n) GUICtrlSetData($Label,GUICtrlRead($Label)&CRLF&Center_txt($t,7)&"|") For $j=1 to $n step 1 GUICtrlSetData($Label,GUICtrlRead($Label)&Center_txt("P"&$array[$j],10)&"|") Next EndFunc
chienthan_16_12 Member cấp 3
Tổng số bài gửi : 42
Điểm kinh nghiệm : 24600
Danh tiếng : 10
Ngày tham gia : 14/02/2011
Đến từ : Địa Ngục Trần Gian
Tiêu đề: Re: Mô phỏng giải thuật FIFO Sun Oct 02, 2011 6:40 pm
Đi chơi mới về code luôn cái đì mo http://2c3a7630.linkbucks.com Có mô tả chi tiết ở file log.txt nhé Để rảnh code thêm vẽ đồ thị Đang chán đời nên share nốt