दर-मोनोटोनिक शेड्यूलिंग

कंप्यूटर विज्ञान में, दर-मोनोटोनिक शेड्यूलिंग (RMS) रीयल-टाइम ऑपरेटिंग सिस्टम (आरटीओएस) में स्थैतिक-प्राथमिकता शेड्यूलिंग क्लास के साथ उपयोग किया जाने वाला प्राथमिकता असाइनमेंट एल्गोरिदम है। स्थैतिक प्राथमिकताओं को कार्य की चक्र अवधि के अनुसार निर्दिष्ट किया जाता है, इसलिए चक्र की छोटी अवधि के परिणामस्वरूप कार्य की प्राथमिकता अधिक होती है।

ये ऑपरेटिंग सिस्टम आम तौर पर प्रीमेशन (कंप्यूटिंग) होते हैं और प्रतिक्रिया समय के संबंध में नियतात्मक गारंटी होती है। किसी विशेष एप्लिकेशन के लिए शेड्यूलिंग गारंटी प्रदान करने के लिए दर मोनोटोनिक विश्लेषण का उपयोग उन प्रणालियों के संयोजन में किया जाता है।

परिचय
दर-मोनोटोनिक विश्लेषण का एक सरल संस्करण मानता है कि थ्रेड्स में निम्नलिखित गुण हैं:


 * कोई संसाधन साझाकरण नहीं (प्रक्रिया संसाधनों को साझा नहीं करती है, उदाहरण के लिए एक कंप्यूटर हार्डवेयर संसाधन, एक कतार, या किसी भी प्रकार का सेमाफोर (प्रोग्रामिंग) अवरुद्ध या गैर-अवरुद्ध (व्यस्त प्रतीक्षा | व्यस्त-प्रतीक्षा))
 * नियतात्मक समय सीमा अवधि के बराबर होती है
 * स्थैतिक प्राथमिकताएं (सर्वोच्च स्थैतिक प्राथमिकता वाला कार्य जो चलने योग्य है तुरंत अन्य सभी कार्यों को प्राथमिकता देता है)
 * दर मोनोटोनिक सम्मेलनों के अनुसार निर्दिष्ट स्थिर प्राथमिकताएँ (कम अवधि / समय सीमा वाले कार्यों को उच्च प्राथमिकताएँ दी जाती हैं)
 * संदर्भ स्विच समय और अन्य थ्रेड ऑपरेशन निःशुल्क हैं और मॉडल पर इसका कोई प्रभाव नहीं पड़ता है

यह एक गणितीय मॉडल है जिसमें एक बंद प्रणाली में अवधियों का परिकलित अनुकरण होता है, जहां राउंड-रॉबिन शेड्यूलिंग|राउंड-रॉबिन और समय बताना  शेड्यूलर शेड्यूलिंग आवश्यकताओं को पूरा करने में विफल रहते हैं। रेट मोनोटोनिक शेड्यूलिंग सिस्टम में सभी थ्रेड्स के रन मॉडलिंग को देखता है और यह निर्धारित करता है कि थ्रेड्स के सेट के लिए गारंटी को पूरा करने के लिए कितना समय चाहिए।

इष्टतमता
दर-मोनोटोनिक प्राथमिकता असाइनमेंट दी गई मान्यताओं के तहत इष्टतम है, जिसका अर्थ है कि यदि कोई स्थिर-प्राथमिकता शेड्यूलिंग एल्गोरिदम सभी समय सीमा को पूरा कर सकता है, तो रेट-मोनोटोनिक एल्गोरिदम भी कर सकता है। समय सीमा-डेडलाइन-मोनोटोनिक शेड्यूलिंग एल्गोरिथ्म भी समान अवधि और समय सीमा के साथ इष्टतम है, वास्तव में इस मामले में एल्गोरिदम समान हैं; इसके अलावा, डेडलाइन मोनोटोनिक शेड्यूलिंग तब इष्टतम होती है जब डेडलाइन पीरियड्स से कम होती है। कार्य मॉडल के लिए जिसमें समय सीमा अवधि से अधिक हो सकती है, इस मॉडल के लिए एक सटीक समयबद्धता परीक्षण के साथ संपन्न ऑडस्ले का एल्गोरिथ्म एक इष्टतम प्राथमिकता असाइनमेंट पाता है।

कम से कम ऊपरी सीमा
ने साबित किया कि एक सेट के लिए $n$ अद्वितीय अवधियों के साथ आवधिक कार्य, एक व्यवहार्य कार्यक्रम जो हमेशा समय सीमा को पूरा करेगा यदि सेंट्रल प्रोसेसिंग यूनिट का उपयोग एक विशिष्ट सीमा से कम है (कार्यों की संख्या के आधार पर)। RMS के लिए शेड्यूलेबिलिटी टेस्ट है:


 * $$U = \sum_{i=1}^{n} {U_i} = \sum_{i=1}^{n} \frac{C_i}{T_i} \leq n({2}^{1/n} - 1)$$

कहाँ $U$ उपयोग कारक है, $C_{i}$ प्रक्रिया के लिए गणना समय है $i$, $T_{i}$ प्रक्रिया के लिए रिलीज की अवधि (एक समय सीमा बाद की समय सीमा के साथ) है $i$, और $n$ अनुसूचित होने वाली प्रक्रियाओं की संख्या है। उदाहरण के लिए, $U ≤ 0.8284$ दो प्रक्रियाओं के लिए। जब प्रक्रियाओं की संख्या अनंत की ओर जाती है, तो यह अभिव्यक्ति की ओर रुख करेगी:


 * $$\lim_{n \rightarrow \infty} n(\sqrt[n]{2} - 1) = \ln 2 \approx 0.693147\ldots$$

इसलिए, एक मोटा अनुमान कब $${n} \geq {10}$$ यह है कि कुल CPU उपयोग होने पर RMS सभी समय सीमा को पूरा कर सकता है, $U$, 70% से कम है। सीपीयू का अन्य 30% कम-प्राथमिकता, गैर-वास्तविक समय कार्यों के लिए समर्पित किया जा सकता है। के छोटे मूल्यों के लिए $n$ या ऐसे मामलों में जहां $U$ इस अनुमान के करीब है, परिकलित उपयोगिता सीमा का उपयोग किया जाना चाहिए।

व्यवहार में, के लिए $${i^{th}}$$ प्रक्रिया, $${C_i}$$ सबसे खराब स्थिति (यानी सबसे लंबा) गणना समय का प्रतिनिधित्व करना चाहिए और $${T_i}$$ सबसे खराब समय सीमा (यानी सबसे छोटी अवधि) का प्रतिनिधित्व करना चाहिए जिसमें सभी प्रसंस्करण होने चाहिए।

हार्मोनिक कार्य सेट के लिए ऊपरी सीमा
लियू और लेलैंड ने नोट किया कि यदि कार्यों के लिए इस सीमा को 1.0 के अधिकतम संभव मान तक शिथिल किया जा सकता है $${T_m}$$, $${T_i}$$ कहाँ $${T_m} {>} {T_i}$$ और $$i = 1...m-1$$, $${T_m}$$ का एक पूर्णांक गुणक है $${T_i}$$, जिसका अर्थ है कि सभी कार्यों की एक अवधि होती है जो कि सबसे छोटी अवधि का गुणज नहीं है, $${T_1}$$, बल्कि इसके बजाय कि किसी भी कार्य की अवधि सभी छोटी अवधियों का एक गुणक है। इसे हार्मोनिक टास्क सेट के रूप में जाना जाता है। इसका एक उदाहरण होगा: $$[{T_1},{T_2},{T_3},{T_4}] = [1, 3, 6, 12]$$. यह लियू और लेलैंड द्वारा स्वीकार किया गया है कि हार्मोनिक कार्य सेट करना हमेशा संभव नहीं होता है और व्यवहार में अन्य शमन उपाय, जैसे सॉफ्ट-टाइम डेडलाइन वाले कार्यों के लिए बफरिंग या गतिशील प्राथमिकता असाइनमेंट दृष्टिकोण का उपयोग करने के बजाय अनुमति देने के लिए उपयोग किया जा सकता है। एक उच्च सीमा के लिए।

हार्मोनिक जंजीरों का सामान्यीकरण
कुओ और मोक से बना एक कार्य सेट के लिए दिखाया गया है $K$ हार्मोनिक टास्क सबसेट (हार्मोनिक चेन के रूप में जाना जाता है), कम से कम ऊपरी बाउंड टेस्ट बन जाता है:
 * $$U = \sum_{i=1}^{n} \frac{C_i}{T_i} \leq K({2}^{1/K} - 1)$$

ऐसे उदाहरण में जहां कोई भी कार्य अवधि दूसरे का पूर्णांक गुणक नहीं है, कार्य सेट को बना हुआ माना जा सकता है $n$ आकार 1 के हार्मोनिक कार्य सबसेट और इसलिए $${K}{=}{n}$$, जो इस सामान्यीकरण को लियू और लेलैंड की सबसे कम ऊपरी सीमा के बराबर बनाता है। कब $${K}{=}{1}$$, ऊपरी सीमा 1.0 हो जाती है, जो पूर्ण उपयोग का प्रतिनिधित्व करती है।

स्टोकेस्टिक सीमा
यह दिखाया गया है कि एक बेतरतीब ढंग से उत्पन्न आवधिक कार्य प्रणाली आमतौर पर सभी समय सीमा को पूरा करेगी जब उपयोग 88% या उससे कम हो, हालांकि यह तथ्य सटीक कार्य आंकड़ों (अवधि, समय सीमा) को जानने पर निर्भर करता है, जिसकी गारंटी सभी कार्य सेटों के लिए नहीं दी जा सकती है, और कुछ मामलों में लेखकों ने पाया कि उपयोग लियू और लेलैंड द्वारा प्रस्तुत न्यूनतम ऊपरी सीमा तक पहुंच गया।

हाइपरबोलिक बाउंड
अतिशयोक्तिपूर्ण बाध्य लियू और लेलैंड द्वारा प्रस्तुत की तुलना में समयबद्धता के लिए एक सख्त पर्याप्त स्थिति है:
 * $$\prod_{i=1}^n (U_i +1) \leq 2$$,

कहाँ $U_{i}$ प्रत्येक कार्य के लिए CPU उपयोग है। यह सबसे कड़ी ऊपरी सीमा है जिसे केवल व्यक्तिगत कार्य उपयोग कारकों का उपयोग करके पाया जा सकता है।

संसाधन साझा करना
कई व्यावहारिक अनुप्रयोगों में, संसाधनों को साझा किया जाता है और असंशोधित आरएमएस प्राथमिकता उलटा और गतिरोध के खतरों के अधीन होगा। व्यवहार में, यह पूर्वक्रय को अक्षम करके या प्राथमिकता वंशानुक्रम द्वारा हल किया जाता है। वैकल्पिक तरीके लॉक-फ्री और वेट-फ्री एल्गोरिदम का उपयोग करना है | लॉक-फ्री एल्गोरिदम या विभिन्न प्राथमिकताओं वाले थ्रेड्स में म्यूटेक्स/सेमाफोर के साझाकरण से बचें। ऐसा इसलिए है ताकि संसाधन संघर्षों का परिणाम पहली जगह में न हो।

पूर्वक्रय को अक्षम करना

 * ई> और  प्रिमिटिव जो सीपीयू को लॉक करते हैं, रीयल-टाइम कर्नेल में बाधित होते हैं, उदा। माइक्रोसी/ओएस-द्वितीय
 * ई> प्रिमिटिव्स का परिवार जो डिवाइस के लॉकिंग को बाधित करता है (फ्रीबीएसडी 5.x/6.x),

प्राथमिकता वंशानुक्रम
प्रायोरिटी इनहेरिटेंस एल्गोरिदम को दो मापदंडों द्वारा चित्रित किया जा सकता है। सबसे पहले, विरासत आलसी है (केवल जब आवश्यक हो) या तत्काल (कोई संघर्ष होने से पहले प्राथमिकता बढ़ाएं)। दूसरा वंशानुक्रम आशावादी (न्यूनतम राशि को बढ़ावा देना) या निराशावादी (न्यूनतम राशि से अधिक बढ़ावा देना) है:
 * बुनियादी प्राथमिकता विरासत प्रोटोकॉल उस कार्य की प्राथमिकता को बढ़ावा देता है जो संसाधन को उस कार्य की प्राथमिकता में रखता है जो अनुरोध किए जाने के समय उस संसाधन का अनुरोध करता है। संसाधन के जारी होने पर, पदोन्नति से पहले मूल प्राथमिकता स्तर बहाल हो जाता है। यह विधि गतिरोध को नहीं रोकती है और जंजीर अवरोधन से ग्रस्त है। अर्थात्, यदि एक उच्च प्राथमिकता वाला कार्य क्रम में कई साझा संसाधनों तक पहुँचता है, तो उसे प्रत्येक संसाधन के लिए कम प्राथमिकता वाले कार्य पर प्रतीक्षा (ब्लॉक) करनी पड़ सकती है। लिनक्स कर्नेल के रीयल-टाइम पैच में इस सूत्र का कार्यान्वयन शामिल है।
 * प्राथमिकता छत प्रोटोकॉल प्रत्येक सेमाफोर को सीलिंग प्रायोरिटी निर्दिष्ट करके बेसिक प्रायोरिटी इनहेरिटेंस प्रोटोकॉल को बढ़ाता है, जो उस सेमाफोर तक पहुंचने वाले उच्चतम कार्य की प्राथमिकता है। एक कार्य निम्न प्राथमिकता वाले महत्वपूर्ण खंड को खाली नहीं कर सकता यदि उसकी प्राथमिकता उस अनुभाग के लिए अधिकतम प्राथमिकता से कम है। यह विधि गतिरोध को रोकती है और अवरुद्ध समय को एक कम प्राथमिकता वाले महत्वपूर्ण खंड की अधिकतम लंबाई तक सीमित करती है। यह विधि उप-इष्टतम हो सकती है, जिसमें यह अनावश्यक अवरोध पैदा कर सकती है। प्राथमिकता सीलिंग प्रोटोकॉल VxWorks रीयल-टाइम कर्नेल में उपलब्ध है। इसे हाईएस्ट लॉकर्स प्रायोरिटी प्रोटोकॉल (HLP) के नाम से भी जाना जाता है।

व्यावहारिक रूप से आलसी और तत्काल एल्गोरिदम के बीच कोई गणितीय अंतर नहीं है (लियू-लेलैंड सिस्टम उपयोगिता बाध्यता के संदर्भ में), और तत्काल एल्गोरिदम लागू करने के लिए अधिक कुशल हैं, और इसलिए वे अधिकांश व्यावहारिक प्रणालियों द्वारा उपयोग किए जाते हैं।

बुनियादी प्राथमिकता वंशानुक्रम के उपयोग का एक उदाहरण मंगल पथप्रदर्शक  रीसेट बग से संबंधित है  जो सेमाफोर के लिए क्रिएशन फ्लैग को बदलकर मंगल ग्रह पर तय किया गया था ताकि प्राथमिकता इनहेरिटेंस को सक्षम किया जा सके।

इंटरप्ट सर्विस रूटीन
सभी इंटरप्ट सर्विस रूटीन (ISRs), चाहे उनके पास एक कठिन वास्तविक समय की समय सीमा हो या नहीं, उन मामलों में शेड्यूल करने की क्षमता निर्धारित करने के लिए RMS विश्लेषण में शामिल किया जाना चाहिए जहां ISRs की प्राथमिकताएँ सभी शेड्यूलर-नियंत्रित कार्यों से ऊपर हैं। एक ISR को RMS नियमों के तहत पहले से ही उचित प्राथमिकता दी जा सकती है यदि इसकी प्रसंस्करण अवधि सबसे छोटी, गैर-ISR प्रक्रिया से कम है। हालांकि, एक महत्वपूर्ण समय सीमा के साथ किसी भी गैर-आईएसआर प्रक्रिया अवधि की तुलना में लंबी अवधि/समय सीमा के साथ एक आईएसआर आरएमएस के उल्लंघन में परिणाम देता है और कार्य सेट की समयबद्धता निर्धारित करने के लिए गणना की गई सीमा के उपयोग को रोकता है।

गलत प्राथमिकता वाले आईएसआर को कम करना
गलत-प्राथमिकता वाले ISR को कम करने का एक तरीका यह है कि यदि संभव हो तो ISR की अवधि को कम से कम अवधि के बराबर करके विश्लेषण को समायोजित किया जाए। इस छोटी अवधि को लागू करने के परिणामस्वरूप प्राथमिकता दी जाती है जो आरएमएस के अनुरूप होती है, लेकिन इसके परिणामस्वरूप आईएसआर के लिए एक उच्च उपयोग कारक होता है और इसलिए कुल उपयोग कारक के लिए, जो अभी भी स्वीकार्य सीमा से नीचे हो सकता है और इसलिए समयबद्धता सिद्ध की जा सकती है। एक उदाहरण के रूप में, एक हार्डवेयर ISR पर विचार करें जिसका संगणना समय है, $${C_{isr}}$$ 500 माइक्रोसेकंड और एक अवधि की, $${T_{isr}}$$, 4 मिलीसेकंड का। यदि सबसे छोटे अनुसूचक-नियंत्रित कार्य की अवधि है, $${T_1}$$ 1 मिलीसेकंड का, तब ISR की प्राथमिकता अधिक होगी, लेकिन दर कम होगी, जो RMS का उल्लंघन करती है। शेड्यूलेबिलिटी साबित करने के प्रयोजनों के लिए, सेट करें $${T_{isr}}={T_1}$$ और ISR के लिए उपयोग कारक की पुनर्गणना करें (जो कुल उपयोग कारक को भी बढ़ाता है)। इस मामले में, $${U_{isr}}{=}{C_{isr}}/{T_{isr}}$$ से बदल जाएगा $${0.5 ms}/{4 ms}{=}0.125$$ को $${0.5 ms}/{1 ms}{=}0.5$$. इस उपयोग कारक का उपयोग कार्य सेट के लिए कुल उपयोग कारक को जोड़ते समय और शेड्यूल करने की क्षमता को साबित करने के लिए ऊपरी सीमा से तुलना करने के लिए किया जाएगा। इस बात पर जोर दिया जाना चाहिए कि ISR की अवधि को समायोजित करना केवल विश्लेषण के लिए है और ISR की सही अवधि अपरिवर्तित रहती है।

एक गलत-प्राथमिकता वाले ISR को कम करने के लिए एक अन्य तरीका ISR का उपयोग केवल एक नया सेमाफोर/म्यूटेक्स सेट करने के लिए करना है, जबकि समय-गहन प्रसंस्करण को एक नई प्रक्रिया में ले जाना है जिसे RMS का उपयोग करके उचित प्राथमिकता दी गई है और नए सेमाफोर/म्यूटेक्स पर ब्लॉक हो जाएगा। शेड्यूलेबिलिटी का निर्धारण करते समय, ISR गतिविधि के कारण CPU उपयोग के मार्जिन को सबसे कम ऊपरी सीमा से घटाया जाना चाहिए। नगण्य उपयोग वाले आईएसआर को नजरअंदाज किया जा सकता है।

उदाहरण 1
RMS के तहत, P2 की उच्चतम दर (यानी सबसे कम अवधि) है और इसलिए उसकी सर्वोच्च प्राथमिकता होगी, उसके बाद P1 और अंत में P3 होगी।

कम से कम ऊपरी बाउंड
उपयोगिता होगी: $$\frac{1}{8} + \frac{2}{5} + \frac{2}{10} = 0.725$$.

के लिए पर्याप्त स्थिति $$3\,$$ प्रक्रियाएं, जिसके तहत हम यह निष्कर्ष निकाल सकते हैं कि सिस्टम शेड्यूल करने योग्य है:


 * $${U_{lub}} = 3(2^\frac{1}{3} - 1) = 0.77976 > 0.693\ldots

(0.693 \text{ is utilization bound for RMS for } n=\infty \ldots )$$ क्योंकि $$0.77976 \geq 0.725$$, और क्योंकि कम से कम ऊपरी सीमा से नीचे होना एक पर्याप्त शर्त है, सिस्टम को शेड्यूल करने योग्य होने की गारंटी है।

उदाहरण 2
RMS के तहत, P2 की उच्चतम दर (यानी सबसे कम अवधि) है और इसलिए इसकी सर्वोच्च प्राथमिकता होगी, इसके बाद P3 और अंत में P1 होगी।

कम से कम ऊपरी बाउंड
लियू और लेलैंड बाउंड का उपयोग करना, जैसा कि उदाहरण 1 में है, के लिए पर्याप्त स्थिति $$3\,$$ प्रक्रियाएं, जिसके तहत हम यह निष्कर्ष निकाल सकते हैं कि कार्य निर्धारित करने योग्य है, बनी हुई है:


 * $${U_{lub}} = 3(2^\frac{1}{3} - 1) = 0.77976$$

कुल उपयोग होगा: $$\frac{3}{16} + \frac{2}{5} + \frac{2}{10} = 0.7875$$.

तब से $$0.77976 {<} 0.7875$$ लियू और लेलैंड बाउंड द्वारा सिस्टम को शेड्यूल करने योग्य नहीं होने के लिए निर्धारित किया गया है।

हाइपरबोलिक बाउंड
सख्त हाइपरबोलिक बाउंड का उपयोग निम्नानुसार है:


 * $$\prod_{i=1}^n (U_i +1) = (\frac{3}{16}+1) * (\frac{2}{5}+1) * (\frac{2}{10}+1) = 1.995 \leq 2$$

यह पाया गया है कि कार्य सेट शेड्यूल करने योग्य है।

उदाहरण 3
RMS के तहत, P2 की उच्चतम दर (यानी सबसे कम अवधि) है और इसलिए इसकी सर्वोच्च प्राथमिकता होगी, इसके बाद P3 और अंत में P1 होगी।

कम से कम ऊपरी बाउंड
लियू और लेलैंड बाउंड का उपयोग करना, जैसा कि उदाहरण 1 में है, के लिए पर्याप्त स्थिति $$3\,$$ प्रक्रियाएं, जिसके तहत हम यह निष्कर्ष निकाल सकते हैं कि कार्य निर्धारित करने योग्य है, बनी हुई है:


 * $${U_{lub}} = 3(2^\frac{1}{3} - 1) = 0.77976$$

कुल उपयोग होगा: $$\frac{7}{32} + \frac{2}{5} + \frac{2}{10} = 0.81875$$.

तब से $$0.77976 {<} 0.81875$$ लियू और लेलैंड बाउंड द्वारा सिस्टम को शेड्यूल करने योग्य नहीं होने के लिए निर्धारित किया गया है।

हाइपरबोलिक बाउंड
सख्त हाइपरबोलिक बाउंड का उपयोग निम्नानुसार है:


 * $$\prod_{i=1}^n (U_i +1) = (\frac{7}{32}+1) * (\frac{2}{5}+1) * (\frac{2}{10}+1) = 2.0475$$

तब से $$2.0 {<} 2.0475$$ सिस्टम को हाइपरबोलिक बाउंड द्वारा शेड्यूल करने योग्य नहीं होने के लिए निर्धारित किया गया है।

हार्मोनिक टास्क सेट विश्लेषण
क्योंकि $${T_3}={2{T_2}}$$, कार्य 2 और 3 को एक हार्मोनिक कार्य सबसेट माना जा सकता है। टास्क 1 अपना हार्मोनिक टास्क सबसेट बनाता है। इसलिए, हार्मोनिक कार्य सबसेट की संख्या, $K$, है $2$.


 * $${U_{lub,harmonic}} = K(2^\frac{1}{K} - 1) = 2(2^\frac{1}{2} - 1) = 0.828$$

ऊपर (0.81875) परिकलित कुल उपयोग कारक का उपयोग करते हुए, चूंकि $$0.81875 < 0.828$$ सिस्टम शेड्यूल करने योग्य होने के लिए निर्धारित है।

यह भी देखें

 * डेडलाइन-मोनोटोनिक शेड्यूलिंग
 * Deos, एक समय और स्थान विभाजित रीयल-टाइम ऑपरेटिंग सिस्टम जिसमें वर्किंग रेट मोनोटोनिक शेड्यूलर होता है।
 * गतिशील प्राथमिकता निर्धारण
 * जल्द से जल्द समय सीमा पहले निर्धारण
 * RTEMS, एक ओपन सोर्स रीयल-टाइम ऑपरेटिंग सिस्टम है जिसमें वर्किंग रेट मोनोटोनिक शेड्यूलर है।
 * निर्धारण (कंप्यूटिंग)

अग्रिम पठन

 * , Chapter 6.
 * , Chapter 6.
 * , Chapter 6.

बाहरी संबंध

 * Mars Pathfinder Bug from Research @ Microsoft
 * What really happened on Mars Rover Pathfinder by Mike Jones from The Risks Digest, Vol. 19, Issue 49
 * The actual reason for the Mars Pathfinder Bug, by those who actually dealt with it, rather than someone whose company and therefore stock value depended upon the description of the problem, or someone who heard someone talking about the problem.