অপারেটিং সিস্টেম এবং ল্যাঙ্গুয়েজ প্রসেসর হল সিস্টেম সফটওয়্যারেরই দুটি অংশ, নিচে এই দুটি অংশগুলি সম্পর্কে সম্পূর্ণভাবে আলোচনা করা হয়েছে।
📝 1) ল্যাঙ্গুয়েজ প্রসেসর (Language Processor)
কম্পিউটার কেবলমাত্র 0 ও 1 দিয়ে তৈরি মেশিন লেভেল ল্যাঙ্গুয়েজ বুঝতে পারে। কিন্তু এই ভাষায় প্রোগ্রাম তৈরি করা খুবই কষ্টসাধ্য। এজন্য অ্যাসেম্বলি ল্যাঙ্গুয়েজ ও বিভিন্ন হাই-লেভেল ল্যাঙ্গুয়েজ (HLL) তৈরি হয়েছে। একজন প্রোগ্রামারের কাছে এগুলি খুবই উপযোগী। কিন্তু কম্পিউটার এগুলি বুঝতে পারে না।
তাই এই ভাষাগুলি মেশিন ল্যাঙ্গুয়েজে রূপান্তরিত করার জন্য কতকগুলি সফ্টওয়্যার ব্যবহার করা হয়। এগুলিকেই বলা হয় ল্যাঙ্গুয়েজ প্রসেসর। ল্যাঙ্গুয়েজ প্রসেসর, কম্পিউটার ও তার ব্যবহারকারীর মধ্যে তথ্য আদানপ্রদানে সাহায্য করে।
লেখা, অনুবাদ করা, ডিবাগ করা (Debugging), সংরক্ষণ, লোডিং, বিভিন্ন মডিউলের মধ্যে সংযোজন প্রভৃতি কাজের জন্য এই ল্যাঙ্গুয়েজ প্রসেসর ব্যবহৃত হয়। অতি প্রয়োজনীয় ল্যাঙ্গুয়েজ প্রসেসর সম্পর্কে নিম্নে আলোচনা করা হল :
i) সম্পাদক (Editor)
এটি হল ভাষা প্রক্রিয়াকরণের সফ্টওয়্যার যেখানে ব্যবহারকারী মূল বিষয়ে পর্যালোচনা ও পরিবর্তন করতে পারে। উদাহরণ—EDLIN, Wordstar, MS-Word ইত্যাদি।
ii) ট্রান্সলেটর (Translator)
ট্রান্সলেটর একধরনের সিস্টেম সফ্টওয়্যার। অ্যাlম্বলি ও হাই-লেভেল ল্যাঙ্গুয়েজে প্রোগ্রাম লেখা হলে তাকে সোর্স প্রোগ্রাম (Source Program) বলে। আর মেশিন ল্যাঙ্গুয়েজ লিখিত প্রোগ্রামকে অবজেক্ট প্রোগ্রাম (Object Program) বলে।
কম্পিউটার অবজেক্ট প্রোগ্রাম বুঝতে পারে কিন্তু সোর্স প্রোগ্রাম বুঝতে পারে না। তাই ট্রান্সলেটর নামক ল্যাঙ্গুয়েজ প্রসেসর ব্যবহার করে সোর্স প্রোগ্রামকে অবজেক্ট প্রোগ্রামে রূপান্তর করা হয়।
ট্রান্সলেটর তিন রকমের হয়। সেগুলি হল—
- (a) অ্যাসেম্বলার (assembler)
- (b) কম্পাইলার (compiler)
- (c) ইনটারপ্রেটার (interpreter)
(a) অ্যাসেম্বলার (Assembler) :
অ্যাসেম্বলার অ্যাসেম্বলি ভাষায় লিখিত প্রোগ্রামকে মেশিনের ভাষার প্রোগ্রামে রূপান্তর করে। উচ্চস্তরের ভাষা ও মেশিন ভাষার অন্তবর্তী ভাষা হল অ্যাসেম্বলি ভাষা। এটি নিমোনিক্স (Mnemonics) এ লেখা হয়। অ্যাসেম্বলি ভাষায় লিখিত প্রোগ্রাম প্রসেসরে পাঠানো হলে প্রসেসর প্রতিটি নির্দেশ পড়ে একে একে দোষ ত্রুটি নির্ধারণ করে।
ত্রুটি থাকলে প্রসেসিং বন্ধ করে ত্রুটিজনিত বার্তা পাঠায় এবং ত্রুটি সংশোধনের পর পুনরায় প্রসেসিং শুরু করে প্রসেসিং সম্পূর্ণ করে। এইভাবে সমস্ত সোর্স প্রোগ্রাম অবজেক্ট প্রোগ্রাম রূপে অনূদিত হয়। কিন্তু বিভিন্ন প্রসেসরের জন্য ভিন্ন ভিন্ন অ্যাসেম্বলার ব্যবহৃত হয়।
(b) কম্পাইলার (Compiler) :
কম্পাইলার হাই লেভেল ল্যাঙ্গুয়েজে লিখিত পুরো প্রোগ্রামটিকে কম্পিউটারের মেমোরিতে সংরক্ষণ করার আগে মেশিন ল্যাঙ্গুয়েজে অনুবাদ করে। কম্পাইলার উচ্চস্তরের ভাষায় লিখিত উৎস প্রোগ্রাম সঞ্চয় করে, স্ক্যান করে এবং সম্পূর্ণ প্রোগ্রাম একসঙ্গে মেশিন ল্যাঙ্গুয়েজ প্রোগ্রামে রূপান্তরিত করে। এই অনুবাদ পদ্ধতিকে বলা হয় কমপাইলেশন (Compilation)।
যদি উৎস প্রোগ্রামটিতে কোনো ত্রুটি থাকে তবে প্রোগ্রামটি প্রসেসিং বন্ধ করে একটি ত্রুটিজনিত বার্তা বা Error Message পাঠায় এবং ত্রুটি সংশোধনের পর আবার প্রসেসিং শুরু হয় ও প্রসেসিং সম্পূর্ণ করে।
(c) ইনটারপ্রেটার (Interpreter) :
এটি হল একটি অনুবাদক প্রোগ্রাম যা হাই-লেভেল ল্যাঙ্গুয়েজ প্রোগ্রামের এক-একটি নির্দেশকে মেশিন ল্যাঙ্গুয়েজে রূপান্তর করে এবং সম্পাদন করে। এর কাজের গতি কম্পাইলারের তুলনায় কম। ইনটারপ্রেটার সাধারণত পার্সোনাল কম্পিউটারে (PC) ব্যবহৃত হয়। এর কর্মপদ্ধতি কম্পাইলারের থেকে আলাদা।
ইনটারপ্রেটার হাই-লেভেল ল্যাঙ্গুয়েজে লিখিত প্রোগ্রামের সম্পূর্ণ অংশ একসঙ্গে গ্রহণ করে না এবং একসঙ্গে অনুপাদের কাজও করে না। এটি প্রোগ্রামের এক-একটি নির্দেশ গ্রহণ করে স্ক্যান করে এবং মেশিন ল্যাঙ্গুয়েজে অনুবাদ করে। পরের নির্দেশটি ইনটারপ্রেটার গ্রহণ করে মেশিন ল্যাঙ্গুয়েজে রূপান্তরিত করে।
যখন পূর্বের নির্দেশটি সম্পূর্ণভাবে অনূদিত হয় এবং সেটিতে কোনো ত্রুটি না থাকে। ত্রুটি থাকলে Error Message পাঠায় এবং ত্রুটি দূর করার পর পরবর্তী নির্দেশটিকে মেশিন ল্যাঙ্গুয়েজে রূপান্তরিত করে। এইভাবে ইনটারপ্রেটার একে একে সোর্স প্রোগ্রামকে মেশিন ল্যাঙ্গুয়েজে রূপান্তরিত করে।
📝 2) অপারেটিং সিস্টেম (operating system description) –
বিভিন্ন যন্ত্রাংশ নিয়ে কম্পিউটার তৈরি হয়। এই যন্ত্রাংশগুলি হল ইনপুট ও আউটপুট যন্ত্রাংশ, স্টোরের ইউনিট, প্রসেসিং ইউনিট (Processing Unit), নিয়ন্ত্রণ ইউনিট (Control Unit) ইত্যাদি। এগুলিকে বলা হয় কম্পিউটারের হার্ডওয়্যার। কোনো একটি নির্দিষ্ট কাজ করার জন্য কতকগুলি নির্দেশ লেখা হয়।
এই নির্দেশগুচ্ছকে বলা হয় প্রোগ্রাম। এই প্রোগ্রাম বিভিন্ন ভাষায় লেখা যায়। কম্পিউটারের নির্দেশ এবং তথ্য অংশ হল সফ্টওয়্যার। কোনো সমস্যার সমাধানের জন্য সফ্টওয়্যার প্রয়োজন হয়। এর মাধ্যমে কম্পিউটারকে নির্দেশ দেওয়া হয়। আর এই নির্দেশগুলি কম্পিউটার মেনে চলে হার্ডওয়্যারের মাধ্যমে।
এ জন্যই হার্ডওয়্যার ও সফ্টওয়্যারের মধ্যে একটি যোগসূত্রের প্রয়োজন হয়। এই যোগসূত্রটিই হল অপারেটিং সিস্টেম (Operating System)। কম্পিউটারের বিভিন্ন অংশকে নিয়ন্ত্রণ করার জন্য এটি ব্যবহৃত হয়।
👉 অপারেটিং সিস্টেমের সংজ্ঞা (operating system definition)
যে সিস্টেম সফ্টওয়্যার কম্পিউটারের বিভিন্ন যন্ত্রাংশগুলিকে পরিচালনা করে, ব্যবহারকারী ও কম্পিউটারের মধ্যে যোগসূত্র স্থাপন করে এবং কম্পিউটারের যাবতীয় কাজকর্ম নিয়ন্ত্রণ করে তাকে অপারেটিং সিস্টেম বলে।
উদাহরণ (operating system is an example of) – Microsoft Windows XP, Linux ইত্যাদি।
👉 অপারেটিং সিস্টেমের কার্যাবলিগুলি হল (function of operating system) :-
- – কম্পিউটারের সমস্ত কাজকর্মকে নিয়ন্ত্রণ করা।
- – কম্পিউটারের মেমোরিকে পরিচালনা (Manage) করা।
- – ইনপুট আউটপুট যন্ত্রাংশকে নিয়ন্ত্রণ করা।
- – হার্ডওয়্যার ও সফট্ওয়্যার যোগসূত্রের কোনোরূপ অসংগতি দেখা দিলে সেটি ব্যবহারকারীর কাছে তুলে ধরা।
- – অগ্রাধিকার ভিত্তিতে কার্যাবলি নিয়ন্ত্রণ করা।
- – তথ্যের সমন্বয় রক্ষা করা।
- – লগ-ইন (log in) এবং পাসওয়ার্ড (password) ব্যবস্থার মাধ্যমে কম্পিউটার সিস্টেমের সুরক্ষা প্রদান করা।
- – ক্লক (Clock) ম্যানেজমেন্ট করা।
👉 অপারেটিং সিস্টেমের প্রকারভেদ (operating system types)
অপারেটিং সিস্টেমকে প্রধানত চার ভাগে ভাগ করা যায়। নিচে অপারেটিং সিস্টেমের উদাহরণ (operating system is an example of) সহ প্রকারভেদ গুলি উল্লেখ করা হলো-
(i) সিঙ্গল ইউজার (Single User) : এই অপারেটিং সিস্টেম একটি নির্দিষ্ট সময়ে একজনের বেশি ব্যবহার করতে পারে না। উদাহরণ—MS-DOS.
(ii) মাল্টিইউজার (Multi User) : এই অপারেটিং সিস্টেম একটি নির্দিষ্ট সময়ে একাধিক ব্যবহারকারী ব্যবহার করতে পারে। যেমন— Windows, Linux ইত্যাদি।
(iii) মাল্টিপ্রোগ্রামিং অপারেটিং সিস্টেম (Multiprogramming Operating System) : এই অপারেটিং সিস্টেমে এক বা একাধিক ব্যবহারকারী একই সময়ে একাধিক কাজ সম্পন্ন করতে পারে। একই সময়ে একাধিক কাজ সম্পন্ন করার জন্য এই অপারেটিং সিস্টেমকে মাল্টি-টাস্কিং (Multi Tasking) অপারেটিং সিস্টেমও বলা হয়। মেইনফ্রেম (Mainframe) কম্পিউটারে এই ধরনের অপারেটিং সিস্টেম ব্যবহৃত হয়। উদাহরণ : Unix, Linux, IBM/VM, IBM OS/400.
(iv) টাইম শেয়ারিং অপারেটিং সিস্টেম (Time Sharing Operating System) : এই পদ্ধতিতে একাধিক ব্যবহারকারী (User) একসঙ্গে নিজ নিজ টার্মিনালের (এটি একটি CPU বিহীন যন্ত্র যেখানে শুধু মনিটর এবং কীবোর্ড থাকে) সাহায্যে মূল কম্পিউটারের কাজ করে।
মূল কম্পিউটারের প্রসেসর পর্যায়ক্রমিকভাবে একটি নির্দিষ্ট সময় অন্তর প্রত্যেক ব্যবহারকারীর কাজ সম্পাদন করে। এই জাতীয় অপারেটিং সিস্টেম প্রসেসিং সময়কে বিভিন্ন প্রোগ্রাম বা ব্যবহারকারীর মধ্যে বণ্টন করে।
প্রতিটি ব্যবহারকারীর জন্য এই অপারেটিং সিস্টেমে যে নির্দিষ্ট সময় নির্ধারিত থাকে তাকে টাইম স্লাইস (Time Slice) বলে। এই টাইম স্লাইসের মধ্যেই ব্যবহারকারীর প্রোগ্রাম পরিচালিত হয়ে থাকে। তা না হলে ব্যবহারকারী মনে করতে পারে যে সিস্টেমটি শুধু তার কাজই করছে।
📝
a) বুটিং (Booting):-
কম্পিউটার অন করার পর সিস্টেমটিকে চালু করার জন্য অপারেটিং সিস্টেমকে সিস্টেম প্রোগ্রামগুলি ROM অথবা ডিস্ক থেকে প্রাইমারি মেমোরি RAM-এ লোড করার প্রক্রিয়াকে বুটিং বলে। বুটিং প্রক্রিয়া শেষ হলে অপারেটিং সিস্টেম তথা কম্পিউটার কাজ করার অবস্থায় আসে।
👉 বুটিং এর প্রকারভেদ (Types of Booting)
কম্পিউটারের বুটিং সাধারণত দুই প্রকারের। যথা—
(i) শীতল বুটিং (Cold Booting) : একদম প্রথমে পাওয়ার সুইচ অন করে যখন কম্পিউটার চালু করা হয় সেই সময় যে বুটিং হয় তাকে বলা হয় শীতল বুটিং।
(ii) উয় বুটিং (Warm Booting) : যখন কম্পিউটারে কাজ করা হচ্ছে সেই সময় পাওয়ার সুইচ অফ্ (off) না করে যে বুটিং করা হয় তাকে বলা হয় উয় বুটিং। যদি User-এর প্রয়োজনমতো কম্পিউটার সাড়া (Respond) না দেয় তবে সাধারণত এই বুটিং করা হয়।
Ctrl + Alt + Del বোতাম তিনটি একত্রে বা Reset বোতাম টিপে এই বুটিং করা হয়। সেক্ষেত্রে কম্পিউটার প্রথম থেকে অর্থাৎ Power on Self Test (POST) থেকে কাজ করে যদিও RAM test করে না।
b) স্পুনিং (Spooling)
মাল্টিপ্রোগ্রাম অপারেটিং সিস্টেমে কোনো প্রোগ্রাম প্রসেসিং হওয়ার সঙ্গে সঙ্গে পাশাপাশি ইনপুট ও আউটপুট অপারেশনের কাজও একই সঙ্গে করে। এর অর্থ কম্পিউটেশনের সময় বাফার (যেখানে তথ্য সাময়িকভাবে সঞ্চয় করা যায়) থেকে ইনপুট ডাটা পড়া এবং উৎপন্ন ডাটা নির্দিষ্ট বাফারে লেখা হয়। স্পুলিং পদ্ধতিটি আমরা বেশিরভাগ কোনো ডকুমেন্ট প্রিন্ট করার সময় দেখতে পাই।
এইজন্যে স্পুলিং খুবই প্রয়োজনীয় যখন কোনো ফাইল বা ফাইলগুলি প্রিন্ট করানো হয় তখন সেই তথ্যগুলি spooling প্রযুক্তির সাহায্যে সাময়িকভাবে Print Queue (কিউ) তে জমা হয় যতক্ষণ পর্যন্ত printer সেগুলি প্রিন্ট দেবার উপযোগী না হচ্ছে।
অর্থাৎ স্পুলিং-এর মাধ্যমে এক বা একাধিক কাজকে প্রয়োজনমতো বাফারে সঞ্চয় করা হয় এবং যেহেতু বিভিন্ন ডিভাইস বিভিন্ন ডাটারেট-এ ডাটা অ্যাকসেস করে তাই বাফারে সঞ্চিত ডাটা স্পুলিং-এর মাধ্যমে নিজস্ব ডাটারেট-এ প্রয়োজনমতো অ্যাকসেস করে।
c) বাফারিং (Buffering)
সাধারণত RAM ও ক্যাশ মেমোরি বাফার হিসাবে ব্যবহৃত হয়। বাফার হল মেমোরির অন্তর্ভুক্ত একটি বিশেষ জায়গা। বাফারে ডাটা অস্থায়ীভাবে সংরক্ষিত হয়। প্রসেসিং-এর সময় অপারেটিং সিস্টেম ডিস্ক ড্রাইভ থেকে তথ্য নিয়ে বাফারের মধ্যে সংরক্ষণ করে রাখে যাতে প্রোগ্রামটিকে তার তথ্যের জন্য বারবার ডিস্ককে access করতে না হয়। এইভাবে বাফার সব সময়ই প্রয়োজনীয় তথ্যের জোগান দিতে থাকে।
যেহেতু ডিস্কের তুলনায় বাফার (যা মেমোরির একটি অংশ) থেকে তথ্য পড়তে সময় কম লাগে তাই প্রসেসিং করতে সময়ও কম লাগে। আবার অনেকগুলি বাফার থাকলে সিস্টেমের কাজ করার গতি কমে যায় কারণ প্রতিটি বাফার RAM থেকে 528 byte জায়গা অধিকার করে রাখে। ফমে মেমোরিতে প্রসেসিং করার জন্য যে জায়গা লাগে তার পরিমাণ কমে যায়।
d) ভার্চুয়াল মেমোরি ( what is Virtual Memory)
অপারেটিং সিস্টেম র্যান্ডম অ্যাকসেস মেমোরি (RAM)-এর জন্য একটি বিশেষ কৌশল বা প্রক্রিয়ার সাহায্যে RAM ও হার্ডডিস্কের কিছু অস্থায়ী অংশকে মেমোরি হিসাবে ব্যবহার করে। র্যাম (RAM) ও হার্ড ডিস্কের এই অস্থায়ী অংশকে ভার্চুয়াল মেমোরি বলে যা অপারেটিং সিস্টেম দ্বারা নিয়ন্ত্রিত ও পরিচালিত হয় (what is virtual memory in an operating system)। অর্থাৎ ভার্চুয়াল মেমোরি = র্যান্ডম অ্যাকসেস মেমোরি + হার্ডডিস্কের কিছু অস্থায়ী অংশ।
👉 ভার্চুয়াল মেমোরির প্রয়োজনীয়তা (Need for Virtual Memory)
সাধারণত মাল্টিপ্রোগ্রামিং অপারেটিং সিস্টেম-এর ক্ষেত্রে অনেকগুলি কাজ একসঙ্গে প্রসেসিং হয়। এই সময় কাজগুলি RAM-এর জায়গা ভাগাভাগি করে ব্যবহার করে। ফলে নতুন কাজ শুরু করার জন্য RAM-এ জায়গার অভাব দেখা যায়।
এই সমস্যার সমাধান অপারেটিং সিস্টেম ভার্চুয়াল মেমোরির মাধ্যমে করে অর্থাৎ হার্ডডিস্কের কিছুটা জায়গা RAM এর সঙ্গে একত্রিত হয়ে প্রধান মেমোরি বা main memory-র পরিসর অস্থায়ীভাবে বাজিয়ে নেওয়া হয়।
👉 ভার্চুয়াল মেমোরি কীভাবে কার্যকরী করা হয় –
ভার্চুয়াল মেমোরি কার্যকর করা হয় সোয়াপিং (Swapping) -এর ডিম্যান্ড পেজিং (Demand Paging) এর সাহায্যে।
e) সোয়াপিং ( Swapping )
সোয়াপিং (Swapping) সোয়াপিং একটি প্রক্রিয়া। কোনো নতুন প্রসেস মেমোরিতে লোড করার জন্য প্রয়োজনীয় জায়গা না থাকলে মেমোরিতে অবস্থানকারী কোনো প্রসেসকে সোয়াপ করে বা স্থানান্তরিত করে ব্যাকিং স্টোরে (backing store) রাখা হয়।
ব্যাকিং স্টোর আসলে ভার্চুয়াল মেমোরির একটি অংশ। এই পদ্ধতিকে সোয়াপিং বলে। মেইন মেমোরি থেকে কোনো প্রসেসকে ব্যাকিং স্টোর-এ স্থানান্তরিত করার প্রক্রিয়াকে সোয়াপ আউট (Swap out) বলে আর ব্যাকিং স্টোর থেকে কোনো প্রসেসকে মেইন মেমোরিতে স্থানান্তরিত করার প্রক্রিয়াকে সোয়াপ ইন (Swap in) বলা হয়।
f) পেজিং (Paging)
এটি একটি মেমোরি ম্যানেজমেন্ট প্রক্রিয়া। এটির সাহায্যে একটি প্রসেস দ্বারা অধিকৃত মেমোরিকে কতকগুলি পেজ (Page)-এ বিভক্ত করা হয়। যখন কোনো প্রসেসকে এক্সিকিউট করা হয়, তখন সেই প্রসেসকে মেমোরিতে স্থানান্তরিত (Swap) করতে হয়।
এক্ষেত্রে সম্পূর্ণ প্রসেস সোয়াপ করার পরিবর্তে শুধুমাত্র প্রয়োজনীয় পেজগুলিকে মেমোরিতে স্থানান্তরিত করা হয়। প্রসেসের বাকি পেজগুলি ব্যাকিং স্টোরে অবস্থান করে এবং এই পেজগুলি প্রয়োজন অনুযায়ী মেমোরিতে সোয়াপ করা হয়।
g) ফাইল (File)
বিভিন্ন ধরনের তথ্যকে একত্রিত এবং সংগঠিত করে যখন ডিস্কে সংরক্ষণ করে রাখা হয় এবং প্রয়োজনে সেই তথ্যের পরিবর্তন, পরিবর্ধন ও সংশোধন করা যায় তাকে ফাইল বলে। প্রত্যেকটি ফাইলের একটি নাম এবং এক্সটেনশন থাকে। এই ফাইলের এক্সটেনশন থেকে জানা যায় ফাইলটি কী ধরনের। উদাহরণ – Book.txt ইত্যাদি।
h) ডিরেক্টরি (Directory)
এটি একটি বৃহত্তর মেমোরি ক্ষেত্র যেখানে একই অথবা ভিন্ন ধরনের ফাইল, ফোল্ডার এবং সাব-ফোল্ডারগুলি রাখা হয়। ফাইল ফোল্ডার এবং সাব-ফোল্ডারের এই সংগঠিত রূপই হল ডিরেক্টরি। উদাহরণ: Class X.txt, Class XI.txt, Class XII.txt এই ফাইলগুলি School নামে ডিরেক্টরির মধ্যে সংরক্ষিত আছে।
👉 ডিরেক্টরি ও ফাইলের গঠন (Directory and File Structure) –
MS-DOS অপারেটিং সিস্টেমে যেটি ডিরেক্টরি সেটি উইন্ডোস অপারেটিং সিস্টেমে ফোল্ডার নামে পরিচিত। একটি হার্ড ডিস্কের ড্রাইভগুলি অর্থাৎ C, D, E: ড্রাইভগুলি প্রকৃতপক্ষে এক-একটি Directory, এগুলিকে Root Directory বলা হয়। কাজের সুবিধার জন্য বিভিন্ন ডিরেক্টরির মধ্যে ফাইল বা ফোল্ডারগুলিকে সাজিয়ে রাখার ব্যবস্থাটিকে Directory Structure বলে।
ডিরেক্টরি স্ট্রাকচারের মাধ্যমে কোনো ডিরেক্টরি বা ফাইলের অবস্থান জানা যায়। ডিরেক্টরি স্ট্রাকচারের সর্বোচ্চ ডিরেক্টরিকে রুট ডিরেক্টরি (root directory) বলা হয়। রুট ডিরেক্টরিকে back slash (\) দ্বারা চিহ্নিত করা হয়। ডিরেক্টরি স্ট্রাকচারে কোনো ডিরেক্টরির একধাপ নীচের ডিরেক্টরিকে সাব-ডিরেক্টরি (Sub-directory) বলা হয়।
✍️ ডিরেক্টরি স্ট্রাকচার তিন ধরনের হয়—
- (i) একস্তরীয় (Single Layer)
- (ii) দ্বি-স্তরীয় (Two Layer)
- (iii) বহুস্তরীয় (Multi Layer or Tree Structure)
(i) একস্তরীয় ডিরেক্টরি স্ট্রাকচার (Single Layer Directory Structure) : এই স্ট্রাকচারে একটি ডিরেক্টরির মধ্যেই ব্যবহারকারীর ফাইলগুলি থাকে। তবে আলাদা আলাদা বিষয়ের একাধিক ডিরেক্টরি থাকতে পারে। এই ডিরেক্টরিতে একই নামে দুটি ফাইল তৈরি করা যায় না। এ ছাড়া এই ধরনের স্ট্রাকচার থেকে কোনো ফাইল খুঁজে পেতে অসুবিধা হয়।
(ii) দ্বিস্তরীয় ডিরেক্টরি স্ট্রাকচার (Two Layer Directory Structure) : এই ধরনের ডিরেক্টরি স্ট্রাকচারে প্রত্যেক ব্যবহারকারীর নিজস্ব আলাদা Directory থাকে। প্রত্যেক HS.M.Com.A(XI) Ben-7 ব্যবহারকারী নিজ নিজ directory-র মধ্যে একাধিক Sub-directory তৈরি করে তার মধ্যে File সঞ্জয় করতে পারে।
এই ধরনের স্ট্রাকচারে দুইজন ব্যবহারকারী একই নামে দুটি ফাইল তৈরি করতে পারে কারণ এক্ষেত্রে ফাইল দুটি দুটি পৃথক Directory-তে অবস্থান করে। এই স্ট্রাকচারে ফাইল খুঁজে পেতে সুবিধা হয়।
(iii) বহুস্তরীয় ডিরেক্টরি স্ট্রাকচার (Multi Layer or Tree Directory Structure) : এই ধরনের ডিরেক্টরি স্ট্রাকচার অনেকগুলি স্তরে বিন্যস্ত থাকে। এক্ষেত্রে একটি প্রধান Root Directory-র মধ্যে কতকগুলি User Directory এবং User Directory-র মধ্যে কতকগুলি Sub-directory এবং Sub-directory-র মধ্যে এক বা একাধিক ফাইল সঞ্জিত থাকে।
এই ধরনের ডিরেক্টরি স্ট্রাকচার থেকে ফাইল সহজেই ফাইল খুঁজে পাওয়া যায় এবং এই ধরনের ডিরেক্টরি স্ট্রাকচার খুব প্রচলিত।
i) পাথ ও পাথনেম (Path and Pathname) –
MS-DOS অপারেটিং সিস্টেমে Path-এর সাহায্যে ডিস্কে অবস্থিত বিভিন্ন সাব-ডিরেক্টরি ও ফাইল খোঁজার পথ বলে দেওয়া যায়। ধরা যাক, C ড্রাইভের অধীনে রয়েছে WINDOW সাব-ডিরেক্টরি।
আর WINDOW সাব-ডিরেক্টরির অধীন রয়েছে TEXT সাব-ডিরেক্টরি এবং TEXT সাবডিরেক্টরির অধীনে রয়েছে WORD ও EXCEL নামের দুটি সাব-ডিরেক্টরি। তাহলে ডিরেক্টরি গঠনটি হবে।