লজিক্যাল অ্যাড্রেস এবং ফিজিক্যাল অ্যাড্রেসের মধ্যে মূল পার্থক্য হল CPU প্রোগ্রাম এক্সিকিউশনের সময় লজিক্যাল অ্যাড্রেস তৈরি করে যেখানে ফিজিক্যাল অ্যাড্রেস মেমরি ইউনিটের একটি অবস্থান।
সরল ভাষায়, CPU যৌক্তিক ঠিকানা বা ভার্চুয়াল ঠিকানা তৈরি করে। চলমান একটি প্রোগ্রামের দৃষ্টিকোণ থেকে, একটি আইটেম যৌক্তিক ঠিকানা দ্বারা প্রদত্ত ঠিকানায় অবস্থিত বলে মনে হয়। মেমরি ইউনিট শারীরিক ঠিকানা পর্যবেক্ষণ করে। অধিকন্তু, এটি ডেটা বাসের মাধ্যমে মূল মেমরিতে একটি নির্দিষ্ট মেমরি সেল অ্যাক্সেস করার অনুমতি দেয়৷
যৌক্তিক ঠিকানা কি?
CPU যৌক্তিক ঠিকানা তৈরি করে। চলমান একটি প্রোগ্রামের দৃষ্টিকোণ থেকে, একটি আইটেম যৌক্তিক ঠিকানা দ্বারা প্রদত্ত ঠিকানায় অবস্থিত বলে মনে হয়। কম্পিউটারে চলমান অ্যাপ্লিকেশন প্রোগ্রামগুলি প্রকৃত ঠিকানা দেখতে পায় না। তারা সর্বদা যৌক্তিক ঠিকানা ব্যবহার করে কাজ করে। লজিক্যাল অ্যাড্রেস স্পেস হল লজিক্যাল অ্যাড্রেসের সেট, একটি প্রোগ্রাম তৈরি করে। যৌক্তিক ঠিকানাগুলি ব্যবহার করার আগে বাস্তব ঠিকানাগুলিতে ম্যাপ করা প্রয়োজন৷ হার্ডওয়্যার ডিভাইস মেমরি ম্যানেজমেন্ট ইউনিট (MMU) এই ম্যাপিং প্রক্রিয়া পরিচালনা করে।
MMU ম্যাপিং স্কিম
MMU বিভিন্ন ম্যাপিং স্কিম অনুসরণ করে।সহজতম ম্যাপিং স্কিমে, রিলোকেশন রেজিস্টারের মান মেমরিতে পাঠানোর আগে অ্যাপ্লিকেশন প্রোগ্রাম দ্বারা উত্পাদিত প্রতিটি লজিক্যাল ঠিকানায় যোগ করা হয়। ম্যাপিং তৈরি করার জন্য আরও কিছু জটিল পদ্ধতি রয়েছে। ঠিকানা বাঁধাই (অর্থাৎ মেমরি ঠিকানায় নির্দেশাবলী এবং ডেটা বরাদ্দ করা) তিনটি ভিন্ন সময়ে ঘটতে পারে৷
চিত্র 01: যৌক্তিক এবং শারীরিক ঠিকানা
প্রথমত, এটি কম্পাইল টাইমে ঘটতে পারে যদি প্রকৃত মেমরি অবস্থানগুলি আগে থেকেই জানা থাকে এবং এটি কম্পাইল টাইমে পরম কোড তৈরি করবে।এটি লোডের সময়েও ঘটতে পারে যদি মেমরি অবস্থানগুলি আগে থেকে জানা না থাকে। এর জন্য, কম্পাইলের সময় পুনরায় লোকেটেবল কোড তৈরি করতে হবে। উপরন্তু, অ্যাড্রেস বাইন্ডিং কার্যকর করার সময় ঘটতে পারে। ঠিকানা ম্যাপিংয়ের জন্য এর জন্য হার্ডওয়্যার সমর্থন প্রয়োজন। কম্পাইল টাইম এবং লোড টাইম অ্যাড্রেস বাইন্ডিং এ, লজিক্যাল এবং ফিজিক্যাল অ্যাড্রেস একই। কিন্তু এই পদ্ধতি ভিন্ন হয় যখন অ্যাড্রেস বাইন্ডিং সঞ্চালনের সময় ঘটে।
ভৌত ঠিকানা কি?
মেমরি ইউনিট প্রকৃত ঠিকানা বা আসল ঠিকানা পর্যবেক্ষণ করে। এটি ডেটা বাসকে মূল মেমরিতে একটি নির্দিষ্ট মেমরি সেল অ্যাক্সেস করতে দেয়। MMU যৌক্তিক ঠিকানাকে প্রকৃত ঠিকানায় ম্যাপ করে। উদাহরণ স্বরূপ, সহজতম ম্যাপিং স্কিম ব্যবহার করে, যা লজিক্যাল ঠিকানায় রিলোকেশন রেজিস্টার (অনুমান করুন যে রেজিস্টারে মানটি y) মান যুক্ত করে, একটি লজিক্যাল ঠিকানা 0 থেকে x পর্যন্ত একটি ভৌত ঠিকানা পরিসর y থেকে x+ এ ম্যাপ করবে। y.
উপরন্তু, এটিকে সেই প্রোগ্রামের ফিজিক্যাল অ্যাড্রেস স্পেসও বলা হয়। সমস্ত যৌক্তিক ঠিকানাগুলি ব্যবহার করার আগে ফিজিক্যাল অ্যাড্রেসগুলিতে ম্যাপ করা দরকার৷
যৌক্তিক ঠিকানা এবং ভৌত ঠিকানার মধ্যে পার্থক্য কী?
যৌক্তিক ঠিকানা বনাম শারীরিক ঠিকানা |
|
যৌক্তিক ঠিকানা হল সেই ঠিকানা যেখানে একটি আইটেম একটি কার্যকরী অ্যাপ্লিকেশন প্রোগ্রামের দৃষ্টিকোণ থেকে থাকে বলে মনে হয়। | ভৌত ঠিকানা হল একটি মেমরি ঠিকানা যা ঠিকানা বাস সার্কিট্রিতে একটি বাইনারি নম্বর আকারে উপস্থাপিত হয় যাতে ডেটা বাসকে প্রধান মেমরির একটি নির্দিষ্ট স্টোরেজ সেল বা মেমরি ম্যাপ করা I এর একটি রেজিস্টার অ্যাক্সেস করতে সক্ষম করে। /ও ডিভাইস। |
দৃশ্যমানতা | |
ব্যবহারকারী একটি প্রোগ্রামের যৌক্তিক ঠিকানা দেখতে পারেন। | ব্যবহারকারী প্রোগ্রামের প্রকৃত ঠিকানা দেখতে পারে না। |
প্রজন্মের পদ্ধতি | |
CPU যৌক্তিক ঠিকানা তৈরি করে। | MMU প্রকৃত ঠিকানা গণনা করে। |
অভিগম্যতা | |
ব্যবহারকারী প্রকৃত ঠিকানা অ্যাক্সেস করতে যৌক্তিক ঠিকানা ব্যবহার করতে পারেন। | ব্যবহারকারী সরাসরি প্রকৃত ঠিকানা অ্যাক্সেস করতে পারবেন না। |
সারাংশ – যৌক্তিক ঠিকানা বনাম শারীরিক ঠিকানা
লজিক্যাল অ্যাড্রেস এবং ফিজিক্যাল অ্যাড্রেসের মধ্যে পার্থক্য হল যে প্রোগ্রাম এক্সিকিউট করার সময় সিপিইউ লজিক্যাল অ্যাড্রেস তৈরি করে যেখানে ফিজিক্যাল অ্যাড্রেস মেমরি ইউনিটের একটি অবস্থান। সমস্ত যৌক্তিক ঠিকানাগুলিকে MMU ব্যবহার করার আগে প্রকৃত ঠিকানাগুলিতে ম্যাপ করা দরকার৷ কম্পাইল টাইম এবং লোড টাইম অ্যাড্রেস বাইন্ডিং ব্যবহার করার সময় ভৌত এবং লজিক্যাল অ্যাড্রেস একই, কিন্তু এক্সিকিউশন টাইম অ্যাড্রেস বাইন্ডিং ব্যবহার করার সময় তারা আলাদা হয়।