কিভাবে একটি ওএস অন্যান্য হার্ডওয়্যার উপাদান সঙ্গে যোগাযোগ?


7

কোনও সিপিএম (বেশিরভাগ OS) এ চলমান একটি প্রোগ্রাম কীভাবে অন্য পিসি হার্ডওয়্যার অ্যাক্সেস করতে পারে? যেমন গ্রাফিক কার্ড, এইচডিডি এবং তাই?

আমি যা পড়ি তা থেকে, DOS এ, এটি BIOS কলগুলি, বিশেষ করে INT নির্দেশনা ব্যবহার করে সম্পন্ন হয়েছিল। কিন্তু, ইন্ট ইন্সটলটি কেবলমাত্র র্যামের নির্দিষ্ট স্থানটিতে লাফ দিতে হবে। তাই কিভাবে কিছু প্রোগ্রাম RAM তে অন্যান্য কম্পিউটার হার্ডওয়্যার অ্যাক্সেস করতে পারে, যখন সিপিইউ কেবলমাত্র RAM অ্যাক্সেস করতে পারে এবং ইন্টারপ্রিপ্ট পেতে পারে?

উইন্ডোজ আইএনটি নির্দেশাবলীটিও ব্যবহার করে, নাকি হার্ডওয়্যারের সাথে যোগাযোগ করার একটি নতুন উপায় আছে?


2
পুতুল। অনেক এবং ছোট (এবং প্রচুর) ক্ষুদ্র তারের। প্লাস কিছু অন্যান্য উপাদান। সমস্ত সিলিকন দ্বারা খুব আলাদা, ডিসি বিদ্যুতের খুব ঘন ঘন +/- 5v (অথবা কখনও কখনও 3.3v) এ বিভক্ত।
হাতুড়ে Quixote

ট্রিভিয়াল নাইট-পিকস: @quack মানে কোনও অন-বোর্ড সিগন্যালিংয়ের জন্য 0 থেকে +5 V (অথবা 0 থেকে 3.3V)। (আরএস -২3২ / ইআইএ -২3২ একমাত্র ব্যতিক্রম যা আমি ভাবতে পারি) এবং সাধারণত সাধারণ ডেস্কটপ এবং সার্ভারের জন্য সিপিএম এবং র্যাম ভোল্টেজ 3.3V এর নিচে থাকে। আমি বললাম, তুচ্ছ নাইট-পিকস।
mctylr

উত্তর:


9

[এইচ] OW প্রোগ্রাম CPU চালানো যাবে (বেশিরভাগ OS) অন্যান্য পিসি হার্ডওয়্যার acess? যেমন গ্রাফিক কার্ড, এইচডিডি এবং তাই?

এই প্রশ্নের সম্পূর্ণ উত্তর সাধারণ এবং জটিল উত্তর দিতে কঠিন। তাই আমি সাধারণভাবে উত্তর দেওয়ার চেষ্টা করব, এবং আশা করি আরো শেখার জন্য অতিরিক্ত তথ্য খোঁজার জন্য আপনাকে কিছু পয়েন্টার দিতে হবে। আমি এই দরকারী দরকারী।

এমএস উইন্ডোজ 95 এবং নতুন, অথবা একটি x86 (আইএ -২২ ) প্রসেসরের লিনাক্সে ব্যবহৃত 32/64-বিট সুরক্ষিত মোডগুলির জন্য, সফ্টওয়্যার হস্তক্ষেপগুলি (যেমন x86 এর জন্য আইএনটি অপপড) সঠিক ইন্টারট্র্যাপ ভেক্টর টেবিলে (বা প্রেরণ করুন ) যান টেবিল) যা সিপিইউকে নির্দেশ দিতে পারে যেখানে OS এ প্রক্রিয়াটি হ্যান্ডলার (অথবা ইন্টারট্র্যাপ সার্ভিস রুটিন, আইএসআর) এ অনুরোধটি পরিচালনা করার জন্য লাফানো উচিত ।

X86 রিয়েল-মোডে , এমএস-ডস মত, এটি BIOS দ্বারা পরিচালিত হতে পারে যা যে নির্দিষ্ট সিস্টেম / চিপসেট / মাদারবোর্ডের জন্য নিম্ন স্তরের নির্দিষ্ট বাস্তবায়ন বিবরণ সরবরাহ করে।

[এইচ] আউড কিছু কম্পিউটার এইচএমবিতে আরএম অ্যাকসেসে সংরক্ষিত থাকতে পারে, যখন সিপিইউ শুধুমাত্র RAM অ্যাক্সেস করতে পারে এবং ইন্টারপ্রিটগুলি পুনরায় আদায় করতে পারে?

তাই আপনি স্বাভাবিক হাতুড়ি উত্তর চান না ? আমি এই উত্তর দিতে চেষ্টা করব, কিন্তু আমি কম্পিউটার প্রকৌশলী বা কম্পিউটার আর্কিটেকচারের বিশেষজ্ঞ নই।

সহ বিভিন্ন প্রক্রিয়া আছে

(এসআরসি: সিএস 473 - আইও , নিউ মেক্সিকো স্টেট ইউনিভার্সিটি, পিফেফার, 2006)

সর্বাধিকতম মেমরি ম্যাপ করা হয় I / O যেখানে একটি মেমরি ঠিকানা একটি হার্ডওয়্যার ডিভাইসের রেজিস্ট্রারগুলিতে (যেমন সিরিয়াল UART ) এবং সিপিওর সাথে ম্যাপ করা যায় এবং সরাসরি হার্ডওয়্যার অ্যাক্সেস করতে কিছু মেমরি ঠিকানা লিখতে এবং / অথবা পড়তে পারে। এটি দ্রুত এবং সহজ, কিন্তু RAM হিসাবে ব্যবহার করা যেতে পারে এমন মেমরি ঠিকানা পরিসীমা হ্রাস করে।

আধুনিক CPUs এবং আরও উন্নত অপারেটিং সিস্টেমগুলি নিয়ন্ত্রিত ফ্যাশনগুলিতে হার্ডওয়্যার অ্যাক্সেস করার জন্য আরও উন্নত প্রযুক্তিগুলি উন্নত করা হয়।

ওএস-এ স্বয়ংক্রিয়ভাবে ডিভাইস ড্রাইভার হিসাবে উল্লেখ করা হয়, যেহেতু তারা সমর্থন করে হার্ডওয়্যার ডিভাইস সম্পর্কে নির্দিষ্ট বিবরণ অন্তর্ভুক্ত করে।

এবং, উইন্ডোজ int int নির্দেশাবলী ব্যবহার করে, বা HW এর সাথে যোগাযোগ করার কোন নতুন উপায় আছে?

হ্যাঁ, এবং হ্যাঁ, কিন্তু আমি মনে করি আমি তা ব্যাখ্যা করেছি।


আরেকটি প্রশ্ন জবাব দিতে শুরু করে যা মূলত এইরকম একটি দ্বিধা - এটি কেবল আমাকে থামাতে যথেষ্ট ভাল ছিল!
ডেভ পারিল্লো

4

CPU এ চলমান সফটওয়্যারটি বিভিন্ন পিসিতে চলমান হার্ডওয়্যারগুলির সাথে যোগাযোগ করতে পারে।

বোঝার সবচেয়ে সহজ I / O পোর্ট। সফ্টওয়্যার একটি আই / ও পোর্টের সময় 8, 16, বা 32 বিট লিখতে আউটপুট নির্দেশনা ব্যবহার করে। একইভাবে, সফ্টওয়্যারটি একটি I / O পোর্ট থেকে পড়ার জন্য IN নির্দেশনাটি ব্যবহার করে। I / O পোর্ট পৃথক আলাদা 16-বিট অ্যাড্রেস স্পেসে থাকে, প্রধান মেমরি দ্বারা ব্যবহৃত অ্যাড্রেস স্পেসের সাথে সম্পর্কিত নয়। I / O পোর্ট ব্যবহার করে হার্ডওয়্যারের প্রতিটি অংশে I / O ঠিকানাগুলির একটি পরিসীমা রয়েছে; এই ঠিকানাগুলির প্রতিটি থেকে লেখা এবং পড়ার একটি ভিন্ন প্রভাব রয়েছে (এবং প্রায়শই পড়া এবং একই ঠিকানায় লেখার বিভিন্ন প্রভাব রয়েছে)।

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

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

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

শেষ উপায় interrupts হয়। CPU বিঘ্নিত সংখ্যা সহ একত্রিত অনুরোধ প্রাপ্ত করে। সিপিইউটি হস্তক্ষেপ করে (এভাবে নামটি) এটি কী করছে, এবং কোডটির অন্য অংশে স্থানান্তরিত হয় (কোন অংশটি বাধাগ্রস্ত সংখ্যাটির উপর নির্ভর করে)। সাধারণত প্রতিটি হার্ডওয়্যার একটি একক সংঘাতের সংখ্যার সাথে সঙ্গতিপূর্ণ, তবে বিঘ্নিত সংখ্যাগুলি প্রায়ই বেশ কয়েকটি বিঘ্নিত উৎস দ্বারা ভাগ করা হয়। বিশেষ ধরনের বাধা রয়েছে যা কোন সংখ্যা নেই; উদাহরণস্বরূপ, এনএমআই।


একটি বাস্তব উদাহরণের জন্য, আসুন একটি সহজ নেটওয়ার্ক ইন্টারফেস কার্ড গ্রহণ করা যাক। এই নেটওয়ার্ক কার্ডটিতে নিবন্ধগুলির একটি সেট রয়েছে, যা I / O পোর্টের মাধ্যমে বা মেমরি-ম্যাপযুক্ত I / O এর মাধ্যমে গ্রহণ করা যেতে পারে। এটি মূল মেমরি থেকেও পড়তে এবং লিখতে পারে এবং এতে একটি বাধা পিন থাকে।

নেটওয়ার্কে একটি প্যাকেট পাঠানোর জন্য, নেটওয়ার্ক কার্ড ড্রাইভার প্রথমে 4 বাইটের একাধিক একাউন্টে মেমরিতে পূর্ণ প্যাকেট লিখে। এটি নেটওয়ার্ক ইন্টারফেস কার্ডে কয়েকজন নিবন্ধকের কাছে লিখেছে, এটি মেমরি ঠিকানা, প্যাকেট আকার এবং কিছু অন্যান্য তথ্য বলছে। নেটওয়ার্ক কার্ড তারপর মেমরি থেকে প্যাকেট পড়তে, নেটওয়ার্ক এটি পাঠায়, এবং বিঘ্ন সংকেত। ইন্টারট্রাক কন্ট্রোলার (হার্ডওয়ারের একটি পৃথক টুকরা) CPU- এ বিঘ্নিত অনুরোধ প্রেরণ করে এবং এটি বিঘ্নিত সংখ্যাটিকে বলে। হস্তক্ষেপকারী হ্যান্ডলারের মধ্যে, ড্রাইভারটি কার্ড থেকে একটি নিবন্ধ লিখেছেন যা বলে যে এটি একটি প্যাকেট পাঠানো হচ্ছে সে সম্পর্কে বাধা দেয়, কোন প্যাকেটটি পাঠানো হয়েছে তা খুঁজে পেতে অন্য নিবন্ধটি পড়ে এবং জানে যে এটি এখন যে প্যাকেটটি লিখেছে তা স্মৃতি পুনঃব্যবহার করতে পারে ।

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

অন্যান্য কিছু আছে যা কার্ড ড্রাইভারকে তার নিবন্ধক লিখে এবং কোনও বাধা সংকেত দিয়ে বলতে পারে; উদাহরণস্বরূপ, যে নেটওয়ার্ক তারের আনপ্ল্যাগ করা হয়েছিল, এটি একটি ট্রান্সমিশন ত্রুটি ছিল, ইত্যাদি।


1

আপনি যা খুঁজছেন তা হল " আইআরকিউ ", হার্ডওয়্যার থেকে CPU এ হস্তক্ষেপ অনুরোধ। এখানে একটি মৌলিক নিবন্ধ আছে


1
আইআরকিউ বা ইন্টারাপ্ট ReQuest একটি হার্ডওয়্যার বিঘ্ন যা একটি হার্ডওয়্যার ডিভাইস প্রস্তুত হয় (ডিস্ক ড্রাইভ নিয়ামক প্রস্তুত) বা CPU- এর তথ্য (UART থেকে প্রাপ্ত তথ্য) নির্দেশ করে। CPU- র পেরিফেরালগুলির সাথে যোগাযোগ করার জন্য এটি বিভিন্ন প্রক্রিয়াগুলির মধ্যে একটি।
mctylr

0

যে হার্ডওয়্যার ড্রাইভার জন্য হবে। উপরন্তু, উইন্ডোজ এখন DOS এর পরিবর্তে একটি HAL (হার্ডওয়্যার বিমূর্তকরণ স্তর) ব্যবহার করে।

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