| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

انواع الجدولة

Page history last edited by PBworks 16 years, 3 months ago
عندما يريد الuser ان يشغل اكثر من process  ال cpu  لا يتحمل ان يشغلها جميعا في ان واحد..
 
لذالك هناك عدة طرق (algorithims) يستخدمها ال cpu  لمعالجة هذه ال processes  ...
 
وايضا هناك معايير للجدولة(scheduling criteria):
 
1-cpu utilization:وهي ان نحاول ان نجعل ال cpu busy as possible. نحاول استهلاكها بقدر الامكان ولا نجعلها في حالة idle .
 
 
2-throughput:وهي عدد ال process التي تنهي تنفذيها في وحدة زمنية معينة .
 
 
3-turnaround time(TAT): الوقت من بداية الexecute  الى نهايته كم اخذ من الوقت لانجاز ال process.     
              
 
4-waiting time:كم من الوقت كان ال process  موجود او ينتظر في ال ready queu.
 
 
5-response time: وهي وقت الاستجابه او اول استجابة من الcpu.
 
 
ومن هنا يوجد لدينا سؤال مهم وهي:
 
Which cpu scheduler is better?
 
لانستطيع الاجابة بأي طريقة من الطرق التي سنعرضها لاحقا هي افضل طريقه من الاخري ولكن هناك معايير وهي لو كانت الطريقه التي نستخدمها:
 
1-maximize utilization: نجعل ال I/O busy.
 
2-maximize throughput: بمعنى اننا ننفذ عمليات كثيرة و jobs  كثيرة.
 
3-minimize latency 4-fairness:ان يكون عادل وان لا يكون هناك مجاعة (starves).
 
 
والان نعرض ال scheduling algorithms:
 
 
اولا:FIRST-COME-FIRST-SERVED(FCFS)(FIFO)
 
وهذه الطريقة هي:
 
1-ابسط طريقة يستخدمها ال cpu  في عملية الجدولة. 
      
2-وهي uniprogramming.   
     
3-تعتمد هذه الطريقة على ال arrival time  اول procees ياتي لل cpu  يعالج اولا ولو كان ال burst time  لها طويل.
 
4-وهي non-preemptive: بمعنى ان ال cpu  يعالج ال procees   حتى ينتهي من معالجته ولا يقطعه حتى لو كان هناك process  صغيره بالانتظار.
 
5-مشكلتها انها ليست عادلة(fairness) لل processes  الصغيرة .
 
 
6-ومشكلتها ايضا:(one process can monopolize CPU) .
 
 
ثانيا:Shortest-job-first(SJR)scheduling
 
وهذه الطريقة:
 
1-ان كل process  تاتي ومعها ال burst time  لها.
 
2-ال process الصغيره هي الاولى في الدخول الى ال cpu .ولو كان في الcpu  يوجد process  كبيرة واتت بعدها مباشرة process  صغيره  يكون هناك حالتان:
 
أ)-none –preemptive: بمعنى ان ال cpu  لا يقطع من معالجة ال process  حتى ينتهي منها.
 
ب)-preemptive:وهي بان ال cpu  تقطع معالجتها ل process  لو اتت process  اصغر منها ولكن لهذه النقطه لها شرط ايضا وهي:
 
1-انه لو اتت process  صغيره اذهب وارى ال process  الموجودة في ال cpu  هل ال burst time لها اكبر من ال process  الصغيره اذن اخرجها من ال cpu وال
process  الصغيره تدخل الى الcpu ليتم معالجتها.
 
 
2- لو اتت process  صغيره اذهب وارى ال process  الموجودة في ال cpu  هل ال burst time لها اقل من ال process  الصغيره اذن لا اخرجها من ال cpu واكمل
معالجة ال process  الموجودة.
 
3-- لو اتت process  صغيره اذهب وارى ال process  الموجودة في ال cpu  هل ال burst time لها مساوي لل process  الصغيره اذن نجعل ال cpu  يكمل معالجته .وتستحدم طريقة  FCFS
 
3- مشكلتها يحدث عندي مجاعه (starraving) لانه في تاجيل لل  process  الطويله لو كان هناك  processes  اقصر منها.
 
 
ثالثا:Round robin(RR):
 
 
وهذه الطريقة:
 
1-   عادلة جدا يوجد بها time quantum وعادة تكون بين 10-100 ms لكل process  لها وقت عند انتهاء الوقت يضيفها في نهاية ال  ready queuوهكذا. ولو زادت عن 100 تتحول الى fcfs.
 
 
رابعا:priority scheduling:
 
 وهي على حسب الاوليات وهي عبارة عن رقم تعطى لكل process والcpu  يعالج ال process  التي لها اعلى priority.
 
*مشكلتها:يوجد عندها مشكلة ال starvation لان ال processes  التي لها اقل الاولويات never execute.
 
*ولحل هذه المشكله وهي ال(aging)  وهي ان ال process كل ماكانت في ال ready queu   وكل ما يزيد وقت ال aging  يزيد ال priority.
 
 
وهناك طرق اخرى مثل..
 
Multilevel –feed back
 
 
 
 
 ايمان السوادي
المصدر operating system concept
 

 

Comments (0)

You don't have permission to comment on this page.