কেন একটি সিস্টেম প্রতিক্রিয়াবিহীন হতে পারে?


12

আমি সবেমাত্র চালিত dot(নির্দেশিত গ্রাফগুলি আঁকার জন্য একটি প্রোগ্রাম) এমন একটি ইনপুট ফাইল দিয়েছিলাম যা এত বড় ছিল যে এটি একটি যুক্তিসঙ্গত সময়ে রেন্ডার করা যায়নি।

আমার পুরো সিস্টেম হিমশীতল। আমি সবে সহ একটি পাঠ্য কনসোলে এটি করতে পারে Ctrl+ + Alt+ + F1হত্যা করতে dot, কিন্তু এটা বেশ কয়েক মিনিট নেন।

সিস্টেম কেন এমন কিছু করার অনুমতি দেয়? এটি কেন dotসিস্টেমের 99% এর মতো একটি অ-সমালোচক প্রোগ্রাম দেয় এবং প্রতিক্রিয়াশীল থাকার জন্য অবশিষ্ট 1% ব্যবহার করে?


উত্তর:


15

এইভাবে জিএনইউ / লিনাক্স এবং অন্যান্য মাল্টিটাস্কিং সিস্টেমগুলি কাজ করে, তারা প্রসেসরটিকে চলমান প্রক্রিয়াগুলির মধ্যে ভাগ করে dotদেয়, 99% হবে না, তবে 99% সময়ের মধ্যে 100% থাকবে। প্রতিটি প্রক্রিয়া একটি নির্দিষ্ট সময়ের জন্য প্রসেসরের উপর আধিপত্য বিস্তার করে।

এটি শিডিউলারদের দ্বারা পরিচালিত হয় (লিনাক্সের বেশ কয়েকটি শিডিয়ুলার রয়েছে, কিছু কেবল সাধারণ কৌশল ব্যবহার করে, কেউ ব্যবহারকারীর ইন্টারফেসগুলিকে আরও বেশি সময় দেওয়ার চেষ্টা করে)।

এখন, আপনার ক্ষেত্রে সমস্যাটি ছিল - সম্ভবত - এতে dotপ্রচুর প্রসেসর সময় নিচ্ছিল না, তবে প্রচুর স্মৃতি ছিল। এবং যখন কোনও প্রোগ্রাম অত্যধিক মেমরি ব্যবহার করে, সেখানে থ্র্যাশিং হয় , এটি হ'ল একটি প্রক্রিয়া যা সিস্টেমকে হিমায়িত করে তোলে, না কারণ dotঅনেক কিছু করছে না , কারন কার্নেলকে মেমরি পৃষ্ঠাগুলিকে ডিস্কের (অদলবদল) এর মাঝে পিছনে সরিয়ে নিয়ে যেতে হবে has এবং সিস্টেম মেমরি।

এমনকি যদি dotসিপিইউর মাত্র 99% সময় নিচ্ছিল, তবে সম্ভাবনা রয়েছে যে একটি টেক্সট টার্মিনালে পরিবর্তন প্রায় তাত্ক্ষণিকভাবে ঘটবে, যা ঘটেছিল তা হ'ল কার্নেলটি dotমেমরির বাইরে স্টাফগুলি সরিয়ে ফেলতে হবে যাতে এটি Xস্মৃতিতে ফিরে রাখতে পারে যাতে Xকীগুলি দেখতে পায় আপনি কেবল আঘাত করে পাঠ্য টার্মিনালে চলে যান, তারপরে কার্নেলটিকে Xমেমরি থেকে বেরিয়ে যেতে হবে dotযার জন্য এখনও চলছে, এবং তারপরে dotপাঠ্য টার্মিনাল প্রক্রিয়াগুলি (সম্ভবত ঠিক login?) মেমরির দিকে ফিরে যেতে হবে। (যদি এটিকে অগোছালো মনে হয়, তবে উদাহরণটি কেবল অগোছালো নয় - বাস্তবতাটি এই অগোছালো।)

উদাহরণটি হ'ল যদি আপনি টেক্সট টার্মিনালে লগইন করেন তবে আপনি কেবল কীগুলি হিট করতে পারবেন, ব্যাকস্পেসটি হিট করতে পারবেন এবং এটি আনন্দের সাথে রিয়েল-টাইম ঘটবে, তবে আপনি যদি একটি ছোট সরঞ্জাম যেমন চালানোর মতো সাধারণ কিছু করেন তবে psএটি "হিমশীতল" হয়ে যাবে "কিছুক্ষণের জন্য এটি লোড করার জন্য মেমোরি মুক্ত করতে psহবে (এবং এটি ডিস্কের I / O কাতারেও অপেক্ষা করতে হবে, যা psফাইল সিস্টেম থেকে অনুরোধ করতে সক্ষম না হওয়া অবধি মেমোরিতে এবং থেকে ডেটা সরিয়ে নিতে ভারী ব্যবহৃত হচ্ছে ) ।


এইচএম, সুতরাং আরও ভাল ব্যবহারকারীর অভিজ্ঞতার উপায় হ'ল নির্দিষ্ট প্রোগ্রামগুলিকে " স্টিকি " হিসাবে নির্দিষ্ট করা এবং এভাবে সেগুলি অদলবদল হওয়া থেকে রোধ করা।
ক্রিস্টোফ উর্ম

স্টিকিনেস 70 এর দশক থেকে এবং 'স্টিকি' বিটের মূল শব্দার্থিকের পর থেকে এর মতো কাজ করেনি। আপনি প্রোগ্রামগুলি মেমোরিতে লক করতে পারেন (সেগুলির কিছু অংশ) যাতে সেগুলি সরিয়ে নেওয়া যায় না। মূল স্মৃতি যদিও একটি ব্যয়বহুল বিলাসবহুল, তাই এটি সমস্ত কিছুর জন্য করা যায় না।
অ্যালেক্সিয়াস

@ এনজেএসজি, ভাল ব্যাখ্যার জন্য ধন্যবাদ। একটি ফলো-আপ প্রশ্ন: ছোটাছুটি ঠেকানোর কোনও উপায় নেই? আমি বুঝতে পারি যে অদলবদল সামগ্রিকভাবে মেমরির ব্যবহারকে আরও কার্যকর করে তোলে তবে এর সীমাবদ্ধতা থাকা উচিত। এক্স হিসাবে প্রয়োজনীয় একটি প্রক্রিয়া IMHO কখনও স্মৃতি থেকে সরানো উচিত নয়। ইউনিক্সের মতো সিস্টেমটি কনফিগার করার কোনও উপায় আছে যে প্রয়োজনীয় প্রক্রিয়াগুলি সরানো থেকে সুরক্ষিত থাকে? সার্ভারে এটি আলাদা জিনিস, তবে ডেস্কটপে আমার ডেস্কটপটি আমার সাথে কথা বলা বন্ধ করার চেয়ে ক্রাশ হওয়ার পরিবর্তে স্মৃতি-ক্ষুধার্ত প্রক্রিয়াটি ধারণ করতাম।
এ। ডোন্ডা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.