IRQL_NOT_LESS_OR_EQUAL ঠিক কী?


15

IRQL_NOT_LESS_OR_EQUAL ঠিক কী? আইআরকিউএল কি? কি জিনিস আইআরকিউএল ব্যবহার করে? কেন এটি কম বা সমান হওয়া দরকার? এটি কম বা সমান না হওয়ার কারণ কী হবে? ওএস কম বা সমান না হয়ে কেন এটি থেকে পুনরুদ্ধার করতে পারে না? আইআরকিউএল কেবল উইন্ডোজকেই প্রভাবিত করে?

এই ত্রুটিটি বেশ সাধারণ বলে মনে হচ্ছে । আমি সাহায্যের জন্য বলছি না, আমি ব্যাখ্যা চাইছি for




IRQL_NOT_LESS_OR_EQUAL বাগ চেকটির মান 0x0000000A has এটি সূচিত করে যে মাইক্রোসফ্ট উইন্ডোজ বা কার্নেল-মোড ড্রাইভার একটি উত্থিত বাধা অনুরোধের স্তরে (আইআরকিউএল) থাকার সময় একটি অবৈধ ঠিকানায় পেজড মেমরি অ্যাক্সেস করে। আইকিউএল কার্নেলের একটি অগ্রাধিকার সিস্টেম। কার্নেলের কিছু আইআরকিউএলে আপনি পেজফাইলে সঞ্চিত ডেটা অ্যাক্সেস করতে পারবেন না। ডিএমপি বিশ্লেষণ করুন এবং তৃতীয় পক্ষের কোড জড়িত কিনা তা দেখুন। যদি তা না হয় তবে সমস্যাগুলির জন্য আপনার স্মৃতি পরীক্ষা করুন।
ম্যাজিক্যান্ড্রে 1981

1
মজার বিষয় হ'ল বার্তাগুলির সর্বাধিক ব্যবহারিক প্রতিক্রিয়া, আপনি যখন বার্তাটি পান তখন কী করা উচিত তার অর্থ কি তা বিবেচ্য নয় .., বা, সমস্ত বিষয়গুলি একটি প্রাসঙ্গিক অনুবাদ, যা ক্ষেত্রে যে আইআরকিউএল বিএসওড, সাধারণত "ড্রাইভার সমস্যা"! সুতরাং ড্রাইভারটি কী কীভাবে মুছে ফেলা এবং পুনরায় ইনস্টল করুন, সেই জাতীয় জিনিসটি চেষ্টা করার চেষ্টা করুন .. তবে এটি যেভাবেই কী সম্পর্কে কথা বলছে তা একটি ভাল প্রশ্ন ... আমি জানি যে একটি আইআরকিউ কী তবে আমি আইআরকিউএল কী ছিল তা জানতাম না জেমির উত্তর!
বার্লোপ

উত্তর:


25

এটা জটিল. ;)

না, সত্যিই, তাই।

আইআরকিউএল মানে "ইন্টারপ্রেট রিকোয়েস্ট লেভেল"। এটি একটি সংখ্যা, উইন্ডোজ x86 সিস্টেমে 0 থেকে 31 এবং x64 সিস্টেমে 0 থেকে 15 পর্যন্ত। এটি অন্যান্য কার্নেল মোড কার্যগুলির তুলনায় কার্নেল মোড টাস্কের "গুরুত্ব" উপস্থাপন করে।

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

(আমি "অগ্রাধিকার" এর পরিবর্তে "গুরুত্ব" শব্দটি ব্যবহার করি কারণ উইন্ডোজের "অগ্রাধিকার" থ্রেডের অগ্রাধিকারগুলিকে বোঝায় এবং আইআরকিউএলগুলি আলাদা কিছু thread থ্রেডের অগ্রাধিকারগুলির বিপরীতে, একই আইআরকিউএল-এ কার্নেলের কাজগুলি সময়-কাটা নয়, এবং আইআরকিউএলগুলি আরেন না ' টি স্বয়ংক্রিয়ভাবে উত্সাহ এবং ক্ষয় সাপেক্ষে)

(আমি আরও উল্লেখ করতে পারি যে এখানে "কার্নেল টাস্ক" শব্দটি অফিসিয়াল নয়। উইন্ডোজ এই জিনিসগুলিকে সত্যই "কার্নেল টাস্কস" বলে না, এগুলি প্রক্রিয়া এবং থ্রেডের মতো পরিচালিত বস্তু হিসাবে পরিচালিত হয় না এবং x86 "কার্যের সাথে কোনও সম্পর্ক নেই) গেটস "বা" টাস্ক ম্যানেজার "তে দেখানো কোনও কিছুই নেই I আমি (এবং অন্যরা) এখানে শব্দটি ব্যবহার করায়," কার্নেল মোড টাস্ক "সত্যিই আইআরকিউএল 2 বা কার্নেল মোডে কর্নেল মোডে করা দরকার এমন একটি সংজ্ঞায়িত শুরু এবং শেষের সাথে এমন কোনও কিছু আবরণ করে or উপরে। "একটি বিঘ্নিত পরিষেবা রুটিন" কর্নেল মোড টাস্ক "এর একটি উদাহরণ; এটি একটি ডিপিসি রুটিন But তবে আর একটি উদাহরণ কার্নেল মোড থ্রেডে কোড হতে পারে Such এই ধরনের থ্রেডগুলি আইআরকিউএল 0 থেকে শুরু হয়, তবে কোডের অংশ থাকলে উত্থাপনআইআরকিউএল 2 বা ততোধিক কিছুতে, কিছু করে এবং তারপরে তার আগের আইআরকিউএলে ফিরে আসে, কোডটির উচ্চ-আইআরকিউএল অংশটি এখানে আমি একটি "কার্নেল টাস্ক" বলছি তার একটি উদাহরণ। )

পারফরম্যান্স মনিটর আইআরকিউএল 2 এ "% ডিপিসি সময়" হিসাবে ব্যয় করা সময় এবং আইআরকিউএল> 2 এ "% বিঘ্নিত সময়" হিসাবে সময় দেখায়, সময়টি আসলে কোনও ডিপিসি রুটিনে বা আইএসআরে ব্যয় হয়েছিল কিনা বা আইআরকিউএল উত্থাপনের ফলাফল ছিল কিনা তা বিবেচনা না করেই একটি কম মান প্রতিটি পারফম্যান "% সুবিধাযুক্ত সময়" হিসাবে দেখায় তার একটি উপসেট - এটি "কার্নেল মোডের সময়" লেবেলযুক্ত হওয়া উচিত।

একবার আইআরকিউএল 2 বা ততোধিক সময়ে কার্নেলের কাজ শুরু হয়ে গেলে একই আইআরকিউএল-তে অন্য যে কোনও কিছু একই প্রসেসরে শুরু হওয়ার আগে এটি সমাপ্ত হয় । এটি কোনও উচ্চ-আইআরকিউএল টাস্ক দ্বারা বাধাগ্রস্থ হতে পারে (যা আরও উচ্চতর আইআরকিউএল টাস্ক ইত্যাদির দ্বারা বাধা হয়ে দাঁড়াতে পারে), তবে যখন উচ্চ-আইআরকিউএল টাস্কগুলি সম্পন্ন হয়, তখন সেই কার্যটিতে ব্যাহত হওয়া নিয়ন্ত্রণে ফিরে আসে।

আইআরকিউএল মূলত একটি সিরিয়ালাইজেশন প্রক্রিয়া। (অনেকে "সিঙ্ক্রোনাইজেশন" বলে থাকেন তবে ফলাফলটি আরও সঠিকভাবে বর্ণনা করার কারণে আমি এই শব্দটিকে প্রাধান্য দিয়েছি)) এর উদ্দেশ্য গ্যারান্টি দিয়ে সহায়তা করা একই সিপিইউতে একাধিক টাস্ক যা নির্দিষ্ট অংশীদারি সংস্থানগুলিতে অ্যাক্সেস করে - বেশিরভাগ ওএস কার্নেল স্পেসে ভাগ করা ডেটা স্ট্রাকচার - এই কাঠামোগুলিকে দুর্নীতিগ্রস্ত করতে পারে এমনভাবে একে অপরকে বাধা দেওয়ার অনুমতি নেই।

উদাহরণস্বরূপ, উইন্ডোজ কার্নেলের প্রচুর পরিমাণে ডেটা, বিশেষত মেমরি পরিচালনার ডেটা এবং থ্রেড শিডিয়ুলার দ্বারা ব্যবহৃত ডেটা আইআরকিউএল ২-তে "সিরিয়ালাইজড" করা হয় যার অর্থ এই জাতীয় ডেটা সংশোধন করতে চায় এমন কোনও কাজ অবশ্যই চালানো উচিত আইআরকিউএল 2 যখন এটি করে। যদি কোনও উচ্চ-আইআরকিউএল টাস্ক এ জাতীয় ডেটা লেখার চেষ্টা করে তবে এটি দুর্নীতির কারণ হতে পারে, কারণ এটি কোনও আইআরকিউএল 2 টাস্ককে বাধাগ্রস্ত করতে পারে যা একই ডেটাতে একটি পঠন-পরিবর্তন-লেখার চক্রের মাঝামাঝি হতে পারে। সুতরাং উচ্চ-আইআরকিউএল টাস্কগুলিকে কেবল এটি করার অনুমতি দেওয়া হয় না।

উচ্চ-আইআরকিউএল কার্যগুলি হ'ল ডিভাইস ড্রাইভারদের বিঘ্নিত পরিষেবা রুটিনগুলি, কারণ সমস্ত ডিভাইসের বিঘ্ন আইআরকিউএল> ২ তে ঘটে থাকে এতে মাদারবোর্ডের টাইমার চিপ থেকে বিঘ্ন অন্তর্ভুক্ত রয়েছে যা ওএসে টাইমকিপিং এবং সময়-চালিত-ক্রিয়াকলাপ পরিচালনা করে। এর আইআরকিউএল সমস্ত "সাধারণ" হার্ডওয়্যার ডিভাইসের চেয়ে উপরে।

আইআরকিউএল 2 এবং ততোধিকগুলি কার্নেল কার্যগুলির জন্য ব্যবহৃত হয় যা হার্ডওয়্যার বিঘ্ন দ্বারা ট্রিগার করা হয় না তবে সেই সময়ে স্বাভাবিক থ্রেড শিডিয়ুলিং - অপেক্ষাসহ - ঘটতে পারে না। সুতরাং একবার কোনও প্রসেসর আইআরকিউএল 2 বা তারও বেশি হলে, আইআরকিউএল 2 এর নিচে নেমে যাওয়া পর্যন্ত কোনও প্রকার প্রান্তরে স্যুইচ হবে না।

ব্যবহারকারী মোড কোড সর্বদা আইআরকিউএল 0 তে থাকে Ker কার্নেল মোড কোডটি যে কোনও আইআরকিউএল থেকে 0 থেকে সর্বোচ্চ যাই হোক না কেন চালাতে পারে। আইআরকিউএল 1 একটি বিশেষ কেস; এটি কেবল কার্নেল মোড তবে শিডিয়ুলিংয়ের কোনও প্রভাব রাখে না, এবং প্রসেসরের চেয়ে থ্রেডের প্রকৃত অবস্থা - এটি থ্রেড কনটেক্সট সুইচগুলির সময় সংরক্ষণ করা হয় এবং পুনরুদ্ধার করা হয়, উদাহরণস্বরূপ।

বিভিন্ন সিরিয়ালাইজেশন গ্যারান্টি বজায় রাখার জন্য, বেশিরভাগ ব্যতিক্রম (শূন্য দ্বারা ভাগ করার মতো জিনিস, বা পৃষ্ঠা ত্রুটির মতো মেমরি অ্যাক্সেস লঙ্ঘন) কেবল আইআরকিউএল 2 বা ততোধিক সময়ে হ্যান্ডেল সক্ষম নয়। (আইআরকিউএল 2 বিটিডব্লুকে সাধারণত "প্রেরণ স্তর" বা "ডিপিসি স্তর" বলা হয়))

এবং এখন আমরা শেষ পর্যন্ত এই বাগচেক কোডটি ব্যাখ্যা করতে পারি!

আইআরকিউএল_এনওT_LESS_OR_EQUAL এর সর্বাধিক সাধারণ ক্ষেত্রে একটি পৃষ্ঠা ত্রুটি ("বাসিন্দা নয়" ভার্চুয়াল ঠিকানা অ্যাক্সেস করার চেষ্টা), বা একটি মেমরি অ্যাক্সেস লঙ্ঘনের কারণে (কেবলমাত্র পঠনযোগ্য পৃষ্ঠায় লেখার চেষ্টা করার জন্য, বা কোনও পৃষ্ঠা যা সংজ্ঞায়িত হয়নি তা অ্যাক্সেস করার কারণে) হয় সব মিলিয়ে), যা আইআরকিউএল 2 বা তদূর্ধ্বে ঘটে।

যদি এই জাতীয় ব্যতিক্রমগুলি আইআরকিউএল 0 বা 1 এ উত্থাপিত হয়, তবে তারা সিস্টেম-সরবরাহকৃত কোড (পৃষ্ঠার ত্রুটি হ্যান্ডলারের মতো) অথবা বিকাশকারী দ্বারা সরবরাহিত কোনও ব্যতিক্রম হ্যান্ডলার দ্বারা "পরিচালিত" হতে পারে। তবে, বেশিরভাগ ব্যতিক্রমগুলি আইআরকিউএল 2 বা তদূর্ধ্বের ক্ষেত্রে ঘটে থাকলে তা সামলানো যায় না।

সুতরাং ... বাগচেক কোডটির অর্থ "আইআরকিউএল 0 বা 1 এ হ্যান্ডেল করা যায় এমন একটি ধরণের ব্যতিক্রম ঘটে যখন আইআরকিউএল 2 বা তত বেশি ছিল।" যেমন "1 এর চেয়ে কম বা সমান নয়"। অদ্ভুত কথা বলা, তবে এটি আছে।

আরও কয়েকটি জিনিস রয়েছে যা এই বাগচেকাকে ট্রিগার করতে পারে এবং আইআরকিউএল এর মান কম বা সমান নয় তা সর্বদা 1 হয় না তবে সেগুলি খুব কমই ঘটে। উইনডিবিজি ডকুমেন্টেশন তাদের তালিকাভুক্ত করে।


দুর্দান্ত উত্তর। আপনি কি কোনও পরিচিত জিনিস জানেন যা 2 এর চেয়ে বেশি আইআরকিউএল এ চলে?
স্কট চেম্বারলাইন

1
সম্ভবত ডিভাইস ড্রাইভার।
লরেন্স

1
নিবন্ধন করুন সমস্ত হার্ডওয়্যার বিঘ্নিত IRQL হয়> 2.
জেমি Hanrahan
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.