सीपीयू समय
सीपीयू समय (या प्रक्रिया समय) वह समय है जिसके लिए केंद्रीय प्रसंस्करण इकाई (सीपीयू) का उपयोग कंप्यूटर प्रोग्राम या ऑपरेटिंग सिस्टम के इंस्ट्रुक्शन्स (कंप्यूटर विज्ञान) को संसाधित करने के लिए किया गया था, जो कि बीते हुए समय के विपरीत है, जिसमें उदाहरण के लिए, इनपुट/आउटपुट (आई/ओ) संचालन की प्रतीक्षा करना या कम-शक्ति (निष्क्रिय) मोड में प्रवेश करना सम्मिलित है। सीपीयू समय को सिस्टम टाइम या सेकंड में मापा जाता है। अधिकांशत: सीपीयू समय को सीपीयू की क्षमता के प्रतिशत के रूप में मापना उपयोगी होता है, जिसे सीपीयू उपयोग कहा जाता है। सीपीयू समय और सीपीयू उपयोग के दो मुख्य उपयोग हैं।
सीपीयू समय का उपयोग दो कार्यात्मक रूप से समान एल्गोरिदम की समग्र अनुभवजन्य दक्षता को मापने के लिए किया जाता है। उदाहरण के लिए, कोई भी सोर्टिंग एल्गोरिथ्म अवर्गीकृत सूची लेता है और क्रमबद्ध सूची लौटाता है, और नियतात्मक एल्गोरिदम में किसी दिए गए इनपुट सूची के आधार पर चरणों की संख्या में ऐसा करेगा। चूँकि बबल सॉर्ट और मर्ज़ सॉर्ट में भिन्न-भिन्न रनिंग टाइम कॉम्प्लेक्सिटी होते हैं, जिससे मर्ज सॉर्ट कम चरणों में पूरा हो जाता है। किसी भी एल्गोरिदम के कार्य के ज्ञान के बिना बबल सॉर्ट का बड़ा सीपीयू समय दिखाता है कि यह मर्ज सॉर्ट की तुलना में विशेष इनपुट डेटा के लिए कम कुशल है।
इस प्रकार का माप विशेष रूप से उपयोगी होता है जब ऐसे एल्गोरिदम की तुलना की जाती है जो कॉम्प्लेक्सिटी में समान्य नहीं होते हैं। इस स्थिति में वॉल टाइम (बीता हुआ वास्तविक समय) अप्रासंगिक है, कंप्यूटर वास्तविक विश्व के वेरिएबल जैसे सीपीयू के तापमान, साथ ही अन्य ऑपरेटिंग सिस्टम वेरिएबल, जैसे प्रक्रिया की प्राथमिकता के आधार पर प्रोग्राम को धीमी या तेज गति से निष्पादित कर सकता है।
सीपीयू उपयोग का उपयोग यह निर्धारित करने के लिए किया जाता है कि प्रोसेसर को कंप्यूटर प्रोग्रामों के मध्य कैसे साझा किया जाता है। जिसमे किसी एकल प्रोग्राम द्वारा उच्च सीपीयू उपयोग यह संकेत दे सकता है कि यह प्रसंस्करण शक्ति की अत्यधिक मांग कर रहा है या इसमें मालफन्क्शन हो सकती है; उदाहरण के लिए, यह इनफिनिट लूप में प्रवेश कर गया है। सीपीयू समय किसी एकल प्रोग्राम के लिए आवश्यक प्रसंस्करण शक्ति को मापने की अनुमति देता है, जिससे हस्तक्षेप समाप्त हो जाता है, जैसे कि इनपुट के प्रतीक्षा में निष्पादित समय या अन्य प्रोग्रामों को चलाने की अनुमति देने के लिए निलंबित किया जाना चाहिए।
इसके विपरीत, बीता हुआ वास्तविक समय (या बस वास्तविक समय, या दीवार-घड़ी का समय) कंप्यूटर प्रोग्राम की प्रारंभ से अंत तक लिया गया समय है जैसा कि साधारण घड़ी द्वारा मापा जाता है। बीते हुए वास्तविक समय में I/O समय, कोई भी मल्टीटास्किंग विलंब और प्रोग्राम द्वारा किए गए अन्य सभी प्रकार के प्रतीक्षा सम्मिलित हैं।
उपखंड
सीपीयू समय या सीपीयू उपयोग को प्रत्येक थ्रेड (कंप्यूटिंग), प्रत्येक प्रक्रिया (कंप्यूटिंग) या पूरे सिस्टम के लिए रिपोर्ट किया जा सकता है। इसके अतिरिक्त, सीपीयू वास्तव में क्या कर रहा था इसके आधार पर, रिपोर्ट किए गए मानों को इसमें विभाजित किया जा सकता है:
- उपयोगकर्ता समय वह समय है जब सीपीयू उपयोगकर्ता स्थान में कोड निष्पादित करने में व्यस्त था।
- सिस्टम समय वह समय है जब सीपीयू कर्नेल स्थान में कोड निष्पादित करने में व्यस्त था। यदि यह मान किसी थ्रेड या प्रक्रिया के लिए रिपोर्ट किया गया है, तो यह उस समय का प्रतिनिधित्व करता है जब कर्नेल निष्पादन संदर्भ (कंप्यूटिंग) की ओर से काम कर रहा था, उदाहरण के लिए, थ्रेड द्वारा सिस्टम कॉल जारी करने के पश्चात् उपयोग होता है।
- निष्क्रिय समय (केवल पूरे सिस्टम के लिए) वह समय है जब सीपीयू व्यस्त नहीं था, या, अन्यथा, सिस्टम निष्क्रिय प्रक्रिया को निष्पादित करने में लगने वाला समय निष्क्रिय समय वास्तव में अप्रयुक्त सीपीयू क्षमता को मापता है।
- वर्चुअलाइज्ड हार्डवेयर पर चोरी का समय (केवल पूरे सिस्टम के लिए), वह समय है जिसे ऑपरेटिंग सिस्टम निष्पादित करना चाहता था, किंतु हाइपरवाइजर द्वारा इसकी अनुमति नहीं दी गई थी।[1] ऐसा तब हो सकता है जब भौतिक हार्डवेयर एकाधिक अतिथि ऑपरेटिंग सिस्टम चलाता है और हाइपरवाइजर ने सीपीयू टाइम स्लॉट को दूसरे को आवंटित करने का विकल्प चुना है।
सीपीयू समय के लिए यूनिक्स कमांड
यूनिक्स कमांड शीर्ष
यूनिक्स कमांड टॉप (सॉफ्टवेयर) सभी प्रक्रियाओं के लिए सीपीयू समय, प्राथमिकता, बीता हुआ वास्तविक समय और अन्य जानकारी प्रदान करता है और इसे वास्तविक समय में अपडेट करता है।
यूनिक्स कमांड समय
यूनिक्स कमांड टाइम (लिनक्स) यूनिक्स प्रक्रिया के लिए सीपीयू समय और बीता हुआ वास्तविक समय प्रिंट करता है।
% gcc nextPrimeNumber.c -o nextPrimeNumber
% time ./nextPrimeNumber 30000007
Prime number greater than 30000007 is 30000023
0.327u 0.010s 0:01.15 28.6% 0+0k 0+0io 0pf+0w
इस प्रक्रिया में कुल 0.337 सेकंड का सीपीयू समय लगा, जिसमें से 0.327 सेकंड उपयोगकर्ता स्थान में और अंतिम 0.010 सेकंड प्रक्रिया की ओर से कर्नेल मोड में खर्च किए गए थे। जिससे बीता हुआ वास्तविक समय 1.15 सेकंड था।
निम्नलिखित एप्लिकेशन नेक्स्टप्राइमनंबर का स्रोत कोड है जिसका उपयोग उपरोक्त उदाहरण में किया गया था।
// nextPrimeNumber.c
#include <stdio.h>
#include <stdlib.h>
int isPrimeNumber(unsigned long int n) {
for (int i = 2; i <= (n >> 1); ++i)
if (n % i == 0) return 0;
return 1;
}
int main(int argc, char *argv[]) {
unsigned long int argument = strtoul(argv[1], NULL, 10), n = argument;
while (!isPrimeNumber(++n));
printf("Prime number greater than %lu is %lu\n", argument, n);
return 0;
}
POSIX फ़ंक्शन clock()
और getrusage()
सी पॉज़िक्स लाइब्रेरीclock()
औरgetrusage()
POSIX वातावरण में किसी भी प्रक्रिया द्वारा खपत किए गए सीपीयू समय को प्राप्त करने के लिए इसका उपयोग किया जा सकता है। यदि प्रक्रिया मल्टीथ्रेडेड है, तो सीपीयू समय सभी थ्रेड (कंप्यूटर विज्ञान) का योग है। कर्नेल 2.6.26 से प्रारंभ होने वाले लिनक्स के साथ पैरामीटर RUSAGE_THREAD है जो केवल कॉलिंग थ्रेड के लिए संसाधन उपयोग के आंकड़ों की ओर ले जाता है।
कुल सीपीयू समय
मल्टी-प्रोसेसर मशीनों पर, कंप्यूटर प्रोग्राम परेलल कंप्यूटिंग शेड्यूलिंग का उपयोग करके प्रसंस्करण के लिए दो या दो से अधिक सीपीयू का उपयोग कर सकता है। जिसकी ऐसी स्थितियों में, कुल सीपीयू समय की धारणा का उपयोग किया जाता है, जो कंप्यूटर प्रोग्राम द्वारा उपयोग किए गए सभी सीपीयू द्वारा उपभोग किए गए सीपीयू समय का योग है।
सीपीयू समय और बीता हुआ वास्तविक समय
इस प्रकार बीता हुआ वास्तविक समय सदैव उन कंप्यूटर प्रोग्रामों के सीपीयू समय से अधिक या उसके समान होता है जो प्रसंस्करण के लिए केवल सीपीयू का उपयोग करते हैं। यदि I/O या अन्य संसाधनों के लिए कोई प्रतीक्षा सम्मिलित नहीं है, तो बीता हुआ वास्तविक समय और सीपीयू समय बहुत समान हैं।
सीपीयू समय और समानांतर प्रसंस्करण प्रौद्योगिकी के लिए बीता हुआ वास्तविक समय
यदि कोई प्रोग्राम समानांतर कंप्यूटिंग का उपयोग करता है, तो उस प्रोग्राम के लिए कुल सीपीयू समय उसके बीते हुए वास्तविक समय से अधिक होगा। (कुल सीपीयू समय)/(सीपीयू की संख्या) बीता हुआ वास्तविक समय के समान होगा यदि कार्य भार प्रत्येक सीपीयू पर समान रूप से वितरित किया जाता है और I/O या अन्य संसाधनों के लिए कोई प्रतीक्षा सम्मिलित नहीं है।
उदाहरण: मल्टी-कोर प्रोसेसर या हेक्सा-कोर प्रोसेसर पर निष्पादित सॉफ्टवेयर एप्लिकेशन उपयोगकर्ता की आवश्यकता को पूरा करने के लिए तीन यूनिक्स प्रक्रियाएं बनाता है। इन तीन प्रक्रियाओं में से प्रत्येक दो थ्रेड बनाता है, जो कुल 6 कार्यशील थ्रेड की गणना करता है। जिसमे गणना 6 स्वतंत्र धागों पर समान रूप से वितरित की जाती है। यदि संसाधनों के लिए कोई प्रतीक्षा सम्मिलित नहीं है, तो कुल सीपीयू समय बीते हुए वास्तविक समय का छह गुना होने की उम्मीद है।
यह भी देखें
- इलैप्सेड वास्तविक समय
- सीपीयू
- प्रक्रिया (कंप्यूटिंग)
- सिस्टम समय
- शीर्ष (यूनिक्स)
- एमपीस्टेट
- लोड (कंप्यूटिंग)
संदर्भ
- ↑ Ehrhardt, Christian (July 2010). "CPU time accounting". IBM. Retrieved 2014-08-05.
बाहरी संबंध
- Thimmannagari, Chandra (2005-01-01). CPU Design: Answers to Frequently Asked Questions. Springer. p. 68. ISBN 0-387-23799-2.
- "Processor And CPU Time". The GNU C Library. 2014-02-09. Retrieved 2014-08-05.
- "clock - report CPU time used". The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition. Retrieved 2014-08-05.
- "getrusage - get information about resource utilization". The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition. Retrieved 2014-08-05.