2012-10-26 26 views
5

मैं 6 प्रक्रियाओं के रूप में निम्नानुसार है में:प्रतीक्षा कर रहा है समय और लगने वाला समय गिना जा रहा है (गैर रिक्तिपूर्व) FCFS कतार

-- P0 -- 
    arrival time = 0 
    burst time = 10 

-- P1 -- 
    arrival time = 110 
    burst time = 210 

-- P2 -- 
    arrival time = 130 
    burst time = 70 

-- P3 -- 
    arrival time = 130 
    burst time = 70 

-- P4 -- 
    arrival time = 130 
    burst time = 90 

-- P5 -- 
    arrival time = 130 
    burst time = 50 

मैं कैसे प्रतीक्षा समय और प्रत्येक प्रक्रिया के लिए बदलाव का समय की गणना कर सकते हैं? सिस्टम गैर-प्रीपेप्टिव होना चाहिए (प्रक्रिया तब तक सीपीयू हो जाती है जब तक यह नहीं हो जाता)। इसके अलावा: इस प्रणाली में 4 लॉजिकल प्रोसेसर हैं।

मान लें सिस्टमटाइम वर्तमान सिस्टम अपटाइम है, और आगमनटाइम उस के सापेक्ष है। यानी: आगमन का समय 0 का मतलब है कि प्रक्रिया तब होती है जब सिस्टम करता है; 130 का आगमन समय का मतलब है कि सिस्टम शुरू होने के बाद 130 इकाइयों की प्रक्रिया शुरू हो गई है।

क्या यह सही है: waitingTime = (systemTime - arrivalTime)?

सोच इस systemTime - arrivalTime समय प्रक्रिया FCFS में इंतजार कर रहा है सीपीयू उपयोग करने के लिए कतार में है के लिए मेरे तर्क

और वापसी समय के लिए, मैं की तरह कुछ सोच रहा था (या यह गलत है?): turnaroundTime = burstTime + waitingTime, प्रतीक्षा समय और विस्फोट का समय प्रक्रिया को पूरा करने के लिए कुल समय होना चाहिए। हालांकि एक बार फिर मुझे नहीं पता कि मेरा अंतर्ज्ञान सही है या नहीं।

कोई और सभी रीडिंग की सराहना की जाएगी!

उत्तर

15

गैर रिक्तिपूर्व प्रणाली के लिए,

waitingTime = startTime - arrivalTime 

turnaroundTime = burstTime + waitingTime = finishTime- arrivalTime 

STARTTIME = समय, जिस पर प्रक्रिया को क्रियान्वित करने शुरू कर दिया

finishTime = समय, जिस पर प्रक्रिया

निष्पादन पूरा

आप रख सकते हैं सिस्टम में बीत चुके वर्तमान समय का ट्रैक (timeElapsed)। सभी प्रोसेसर को शुरुआत में एक प्रक्रिया में असाइन करें, और निष्पादित करें जब तक कि सबसे छोटी प्रक्रिया निष्पादित न हो जाए। फिर इस प्रोसेसर को असाइन करें जो कतार में अगली प्रक्रिया के लिए स्वतंत्र है। कतार खाली होने तक इसे करें और सभी प्रक्रियाओं को निष्पादित किया जाता है। साथ ही, जब भी कोई प्रक्रिया निष्पादित हो जाती है, तो startTime को पूरा होने पर, finishTime रिकॉर्ड करें (timeElapsed दोनों के समान)। इस तरह आप अपनी जरूरत की गणना कर सकते हैं।

+0

प्रश्न के अतिरिक्त: मैं औसत CPU उपयोग की गणना कैसे कर सकता हूं? –

+0

क्षमा करें, इसके बारे में सुनिश्चित नहीं है। – Max

-3
wt = tt - cpu tm. 
Tt = cpu tm + wt. 

कहाँ wt वेटिंग समय है और tt बदलाव का समय है। सीपीयू समय को विस्फोट का समय भी कहा जाता है।

+0

यह सही नहीं है और हटाया जाना चाहिए। – marcusshep