অ্যান্ড্রু এস টেনেনবাউম, হার্বার্ট বোস, 2014 দ্বারা অ্যান্ড্রু এস টানেনবাউম দ্বারা বিভাগ 5.1.4 থেকে আধুনিক মেমরি অ্যাক্সেসের মধ্যে সরাসরি মেমরি অ্যাক্সেস ,
ব্যাখ্যাটি সহজ করার জন্য, আমরা ধরে নিয়েছি যে সিপিইউ একটি সিঙ্গল সিস্টেম বাসের মাধ্যমে সমস্ত ডিভাইস এবং মেমরি অ্যাক্সেস করে যা চিত্র 5-5-তে দেখানো হয়েছে, সিপিইউ, মেমরি এবং I / O ডিভাইসগুলিকে সংযুক্ত করে।
ডিএমএ কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য, আসুন প্রথমে ডিএমএ ব্যবহার না করা হলে ডিস্ক রিড হয় কী তা দেখা যাক।
- প্রথমে ডিস্ক কন্ট্রোলার ড্রাইভ থেকে ব্লকটি (এক বা একাধিক ক্ষেত্র) ক্রমান্বয়ে পড়তে থাকে, কিছুটা হলেও, পুরো ব্লকটি নিয়ামকের অভ্যন্তরীণ বাফারে না আসা পর্যন্ত।
- এরপরে, কোনও পড়ার ত্রুটি ঘটেনি তা যাচাই করতে এটি চেকসামটি গণনা করে। তারপরে নিয়ামক একটি বাধা সৃষ্টি করে। যখন অপারেটিং সিস্টেমটি চলতে শুরু করে, এটি নিয়ামকের বাফার থেকে ডিস্ক ব্লকটি একবারে একটি লুপ প্রয়োগ করে একটি বাইট বা শব্দের সাথে পড়তে পারে, প্রতিটি পুনরাবৃত্তিকে একটি নিয়ামক ডিভাইস রেজিস্টার থেকে একটি বাইট বা শব্দ পড়ে এবং এটি প্রধান স্মৃতিতে সঞ্চয় করে।
প্রশ্ন: দ্বিতীয় ধাপে,
ডেটা " নিয়ন্ত্রকের বাফার থেকে " মূল স্মৃতিতে স্থানান্তরিত হয় না ? কেন এটি " নিয়ন্ত্রকের বাফার থেকে " এবং " একটি নিয়ামক ডিভাইসের নিবন্ধ থেকে " উভয়ই বলে ?
দ্বিতীয় ধাপে, সিপিইউতে বাধা না দিয়ে এবং আবার ওএসকে জড়িত না করে নিয়ন্ত্রক তার বাফার থেকে মূল স্মৃতিতে ডেটা স্থানান্তর করতে পারে?
যখন ডিএমএ ব্যবহার করা হয়, তখন পদ্ধতিটি আলাদা।
- প্রথমে সিপিইউ তার রেজিস্টারগুলি সেট করে ডিএমএ নিয়ামককে প্রোগ্রাম করে যাতে কোথায় স্থানান্তর করতে হয় তা জানতে পারে (চিত্রের 5 ম পদক্ষেপ 1)।
এটি ডিস্ক নিয়ন্ত্রকের কাছে একটি আদেশও জারি করে যাতে এটির অভ্যন্তরীণ বাফারটিতে ডিস্ক থেকে ডেটা পড়তে এবং চেকসামটি যাচাই করতে বলে। - বৈধ ডেটা যখন ডিস্ক নিয়ন্ত্রকের বাফারে থাকে তখন ডিএমএ শুরু হতে পারে। ডিএমএ কন্ট্রোলার ডিস্ক নিয়ন্ত্রণকারীকে (বাসায় 2) বাসে একটি রিড অনুরোধ জারি করে স্থানান্তর শুরু করে । এই পঠন অনুরোধটি অন্য যে কোনও পড়ার অনুরোধ হিসাবে দেখায় এবং ডিস্ক নিয়ামক জানেন না (বা যত্ন করে) এটি সিপিইউ থেকে এসেছে বা কোনও ডিএমএ নিয়ামক থেকে এসেছে কিনা। সাধারণত, লিখতে হবে এমন মেমরি ঠিকানা বাসের ঠিকানা লাইনে থাকে, সুতরাং ডিস্ক নিয়ন্ত্রক যখন তার অভ্যন্তরীণ বাফার থেকে পরবর্তী শব্দটি আনবে তখন এটি কোথায় লিখতে হবে তা জানে। মেমোরিতে লেখাটি হ'ল আরেকটি স্ট্যান্ডার্ড বাস চক্র (পদক্ষেপ 3)।
- লেখাটি সম্পূর্ণ হয়ে গেলে, ডিস্ক নিয়ন্ত্রণকারী ডিএমএ নিয়ামককে, বাসের (ধাপে 4) উপরে একটি স্বীকৃতি সংকেত প্রেরণ করে। ডিএমএ নিয়ামক তারপরে ব্যবহারের জন্য মেমরি ঠিকানাটিকে বাড়িয়ে তোলে এবং বাইট গণনা হ্রাস করে। যদি বাইট গণনাটি এখনও 0 এর চেয়ে বেশি হয়, 2 থেকে 4 পদক্ষেপগুলি গণনা 0 না হওয়া অবধি পুনরাবৃত্তি হবে।
- সেই সময়, ডিএমএ নিয়ন্ত্রক সিপিইউকে বাধা দেয় যাতে এটি স্থানান্তর এখন সম্পূর্ণ হয়ে যায় complete যখন অপারেটিং সিস্টেম শুরু হয়, তখন এটিতে ডিস্ক ব্লকটিকে মেমোরিতে অনুলিপি করতে হবে না; এটি ইতিমধ্যে আছে।
প্রশ্ন: দ্বিতীয় ধাপে, ডিএমএ নিয়ামক ডিস্ক নিয়ামককে ডিস্ক নিয়ন্ত্রণকারীর বাফার থেকে ডেটা প্রধান মেমোরিতে স্থানান্তর করতে অনুরোধ করে। প্রথম পদক্ষেপে, সিপিইউ ডিস্ক নিয়ন্ত্রণকারীকে একটি আদেশ দেয় যা তার ডিস্কের অভ্যন্তরীণ বাফারে ডেটা পড়তে বলে। একই সাথে, সিপিইউ কি ডিস্ক নিয়ামককে ডিস্ক নিয়ন্ত্রণকারীর বাফার থেকে মূল মেমোরিতে স্থানান্তর করতে বলতে পারে, যখন ডিস্ক নিয়ামক ডিস্ক থেকে ডিস্ক নিয়ন্ত্রণকারীর বাফারে ডেটা স্থানান্তর শেষ করে, যাতে কোনও প্রয়োজন নেই ডিএমএ নিয়ন্ত্রক ডিস্ক নিয়ন্ত্রণকারীকে ডিস্ক কন্ট্রোলারের বাফার থেকে মূল স্মৃতিতে স্থানান্তর করতে বলবেন? (ডিস্ক এবং মূল মেমরির মধ্যে ডেটা স্থানান্তর করার জন্য আমাদের কেন ডিএমএ নিয়ামক প্রয়োজন তা আমি বুঝতে পারি না, সুতরাং অনুমান করুন যে উদ্ধৃতিটি বোঝার জন্য আমি গুরুত্বপূর্ণ কিছু মিস করছি)।
- প্রথমে সিপিইউ তার রেজিস্টারগুলি সেট করে ডিএমএ নিয়ামককে প্রোগ্রাম করে যাতে কোথায় স্থানান্তর করতে হয় তা জানতে পারে (চিত্রের 5 ম পদক্ষেপ 1)।
কোনও ডিভাইসের একটি ডিভাইস নিয়ামক ডিভাইসটি নিয়ন্ত্রণ করে এবং ডিভাইসে অপারেশন করে। কোন ডিএমএ নিয়ন্ত্রণকারী এবং ডিভাইসগুলি পরিচালনা করে?
ধন্যবাদ!