সিস্টেম কল, বার্তা পাসিং এবং বাধাগুলির মধ্যে কী সম্পর্ক?


14

আমি প্রক্রিয়া পরিচালনার জন্য উইকিপিডিয়া নিবন্ধটি পড়ছি । আমার ফোকাস লিনাক্স উপর। আমি তাদের কল্পনা এবং উদ্দেশ্যগুলির মধ্যে সিস্টেম কল, বার্তা প্রেরণ এবং বাধাদানের মধ্যে সম্পর্ক এবং পার্থক্যগুলি সনাক্ত করতে পারি না। তারা কি সমস্ত কি প্রক্রিয়াগুলির জন্য সংস্থান এবং সংস্থানগুলির জন্য কার্নেলের অনুরোধ জানাতে পারে?

নিবন্ধ থেকে কিছু উদ্ধৃতি এবং কিছু অন্যান্য:

  1. ওএসের ডি-বরাদ্দ বা বরাদ্দ সম্পাদনের জন্য কোনও প্রোগ্রামের সম্পাদনার সময় কোনও ওএসের প্রসেসরের নিয়ন্ত্রণ ফিরে পাওয়ার সম্ভাব্য দুটি উপায় রয়েছে:

    1. প্রক্রিয়াটি একটি সিস্টেম কল জারি করে (কখনও কখনও একটি সফটওয়্যার বাধাপ্রাপ্ত বলা হয়); উদাহরণস্বরূপ, হার্ড ডিস্কের কোনও ফাইল অ্যাক্সেস করার জন্য একটি আই / ও অনুরোধ দেখাবে।
    2. একটি হার্ডওয়্যার বিঘ্ন ঘটে; উদাহরণস্বরূপ, কীবোর্ডে একটি কী টিপানো হয়েছিল, বা একটি টাইমার রান আউট হয়েছে (প্রাক-এম্টিভেটিভ মাল্টিটাস্কিংয়ে ব্যবহৃত হয়)।
  2. দুটি কৌশল রয়েছে যার মাধ্যমে একটি প্রোগ্রাম ব্যবহারকারী মোডে কার্যকর করা কার্নেলের পরিষেবাগুলির জন্য অনুরোধ করতে পারে:

    * System call
    * Message passing
    
  3. একটি বাধা হ'ল একটি অ্যাসিক্রোনাস সিগন্যাল যা মনোযোগের প্রয়োজনীয়তা বা সফ্টওয়্যারটিতে একটি সিঙ্ক্রোনাস ইভেন্ট যা কার্যকর করে পরিবর্তনের প্রয়োজনীয়তা নির্দেশ করে indic

    একটি হার্ডওয়্যার বিঘ্নিত হওয়ার ফলে প্রসেসরের তার কার্যকর অবস্থার সংরক্ষণ করে এবং একটি বাধা হ্যান্ডলারের কার্য সম্পাদন শুরু করে। সফ্টওয়্যার বিঘ্ন সাধারণত নির্দেশ সেটের নির্দেশ হিসাবে প্রয়োগ করা হয়, যা একটি হার্ডওয়্যার বিঘ্নের অনুরূপ একটি বিঘ্নিত হ্যান্ডলারের প্রসঙ্গে স্যুইচ করে।


2
খুব ভাল প্রশ্ন!
স্টাফেন গিমেনেজ

উত্তর:


12
  1. সমস্ত আধুনিক অপারেটিং সিস্টেম মাল্টিটাস্কিং সমর্থন করে। এর অর্থ এই যে সিস্টেম একই সাথে একাধিক প্রক্রিয়া চালাতে সক্ষম হয়; হয় সিউডো-প্যারালালাল (যখন কেবলমাত্র একটি সিপিইউ উপলব্ধ থাকে) বা আজকাল মাল্টি-কোর সিপিইউ সমান্তরাল (একটি টাস্ক / কোর) এ প্রচলিত রয়েছে।

    আসুন কেবলমাত্র একটি সিপিইউ উপলব্ধ থাকার সহজ কেসটি নেওয়া যাক। এর অর্থ হ'ল যদি আপনি একই সময়ে দুটি পৃথক প্রক্রিয়া চালিত করেন (আসুন একটি ওয়েব ব্রাউজার এবং একটি সঙ্গীত প্লেয়ার বলি) সিস্টেম একই সময়ে তাদের কার্যকর করতে সক্ষম হয় না। যা ঘটে তা হ'ল সিপিইউ সর্বদা একটি প্রক্রিয়া থেকে অন্য প্রক্রিয়াতে চলেছে; তবে এটি অত্যন্ত দ্রুত ঘটছে, সুতরাং আপনি এটি কখনই লক্ষ্য করবেন না।

    এখন ধরে নেওয়া যাক যে এই দুটি প্রক্রিয়া সম্পাদন করার সময় আপনি রিসেট বোতামটি টিপুন (খারাপ ছেলে)। সিপিইউ যা কিছু করছে তা তত্ক্ষণাত বন্ধ করবে এবং সিস্টেমটি পুনরায় বুট করবে। অভিনন্দন: আপনি একটি বাধা তৈরি করেছেন।

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

    সুতরাং, 1 সিপিইউ থেকে মনোযোগ পাওয়ার দুটি ভিন্ন উপায় বর্ণনা করে।

  2. বেশিরভাগ আধুনিক অপারেটিং সিস্টেম দুটি সম্পাদন পদ্ধতি: ব্যবহারকারী মোড এবং কার্নেল মোড সমর্থন করে। ডিফল্টরূপে একটি অপারেটিং সিস্টেম ব্যবহারকারী মোডে চলে। ব্যবহারকারী মোড খুব সীমাবদ্ধ। উদাহরণস্বরূপ, সমস্ত আই / ও নিষিদ্ধ; সুতরাং, আপনাকে আপনার হার্ড ডিস্ক থেকে কোনও ফাইল খোলার অনুমতি নেই। অবশ্যই এটি বাস্তবে কখনই ঘটে না কারণ আপনি যখন কোনও ফাইল খুলবেন তখন অপারেটিং সিস্টেমটি ব্যবহারকারী থেকে কার্নেল মোডে স্বচ্ছভাবে স্যুইচ করে। কার্নেল মোডে আপনার হার্ডওয়ারের সম্পূর্ণ নিয়ন্ত্রণ রয়েছে।

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

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

    সুতরাং, 2 ব্যবহারকারীর থেকে কার্নেল মোডে স্যুইচ করার দুটি ভিন্ন পদ্ধতির উল্লেখ করেছে।

  3. সংশোধন করার জন্য, একটি সফ্টওয়্যার বিঘ্নিত, ওরফে ট্র্যাপ তৈরির সর্বাধিক সাধারণ পদ্ধতি হ'ল একটি সিস্টেম কল সম্পাদন করে। অন্যদিকে বাধা নিখুঁতভাবে হার্ডওয়্যার দ্বারা উত্পাদিত হয়।

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

    সুতরাং, 3 ব্যাখ্যা করে যে একটি ফাঁদ বা একটি বাধাগুলি কার্যকর করার পরে কী করা দরকার এবং দুটি ক্ষেত্রে কতটা মিল রয়েছে।


1
ধন্যবাদ! (1) 1-এ, আপনি কি সিপিইউগুলির দৃষ্টি আকর্ষণ করার দুটি উপায় হ'ল সফ্টওয়্যার বাধা (সিস্টেম কল উদাহরণ সহ প্রোগ্রাম) এবং হার্ডওয়্যার বিঘ্নিত (রিসেট কী উদাহরণ)? (2) 2-এ, আপনি কি বোঝাতে চেয়েছেন যে সিস্টেম কল এবং মেসেজ পাসিং সফ্টওয়্যার দুটি উপায় বাধা দেয়? (3) এটি কি সঠিক যে সফ্টওয়্যার বিঘ্নিত করার উদ্দেশ্যটি প্রক্রিয়াটি কার্নেল পরিষেবা এবং সংস্থানগুলির জন্য অনুরোধ করা, এবং হার্ডওয়্যার বিঘ্নিত উদ্দেশ্য নয় ? যদি হ্যাঁ, তবে হার্ডওয়্যার বাধা দেওয়ার উদ্দেশ্য কী?
টিম

1
(1) সঠিক। (২) আচ্ছা, সিস্টেম কল এবং মেসেজ পাসিং দুটি ভিন্ন কৌশল যা ইন্টারপ্রেসেস যোগাযোগ অর্জনের জন্য ব্যবহার করা যেতে পারে। তবে এটি সত্য যে উভয়ই সফ্টওয়্যার ভিত্তিক, আপনি যে কোনও ফাঁদ (সফ্টওয়্যার বাধাদান) চালান সেই সিপিইউর দৃষ্টি আকর্ষণ করার জন্য। (3) এক অর্থে, হ্যাঁ। কার্নেল পরিষেবা জিজ্ঞাসা করার একটি উদাহরণ creatএকটি নতুন ফাইল তৈরির মতো লাইব্রেরি পদ্ধতি (যা 1 বা আরও বেশি সিস্টেম কলগুলিতে অনুবাদ করা হবে) চালিয়ে যাচ্ছে। একটি বিঘ্নের একটি উদাহরণ হ'ল প্রিন্টার সিপিইউতে সিগন্যাল প্রেরণ করে এটি জানাতে যে মুদ্রণটি সম্পন্ন হয়েছে।
সাকিস্ক

1
ধন্যবাদ! (3) সম্পর্কিত, আপনার অর্থ কি কোনও অর্থে নয়? হার্ডওয়্যার বিঘ্নিত হওয়া এবং সফ্টওয়্যার বিঘ্নিত হওয়ার সাধারণ উদ্দেশ্যগুলি কী কী?
টিম

1
সিস্টেম রিসেট কোনও বাধা নয়; এটি পুনরায় শুরু করার জন্য রাষ্ট্রকে সংরক্ষণ করে না।
PSusi

1
@ ফিফ রিসেট এবং এনএমআই (নন মাস্কেবল ইন্টারপট) সিপিইউতে দুটি ভিন্ন পিন। পরবর্তীকালে একটি বাধা সৃষ্টি করে যার অর্থ রাষ্ট্র বাঁচানো এবং হ্যান্ডলারে ঝাঁপ দেওয়া। প্রাক্তন সিপিইউ সূচনা করে (ইচ্ছাকৃতভাবে সমস্ত রাজ্যকে ত্যাগ করে) যেমন বিদ্যুৎ চালায় তেমনভাবে (রিসেটটি স্বয়ংক্রিয়ভাবে পাওয়ার চালু হওয়ার পরে)। যেহেতু একটি বিঘ্নিত সংজ্ঞাটির অংশটি হ'ল এটি রাষ্ট্রকে রক্ষা করে, রিসেটটি সেই সংজ্ঞাটি পূরণ করতে ব্যর্থ হয়।
psusi

9

সিস্টেম কল, মেসেজিং পাসিং (উইকিপিডিয়া নিবন্ধে বর্ণিত হিসাবে), এবং বাধা হ'ল এমন বিষয় যা প্রসঙ্গের স্যুইচ বা ব্যবহারকারীর কাছ থেকে কার্নেল মোডে স্যুইচ করে cause আপনি সম্ভবত জানেন:

  • কার্নেল মোড: প্রোগ্রামগুলির মেমরির সমতল বা বাস্তব দৃশ্য রয়েছে এবং প্রোগ্রামগুলি কোনও মীমাংসা ছাড়াই সরাসরি সমস্ত মেমরি এবং সমস্ত হার্ডওয়্যার ডিভাইসে অবাধে পড়তে / লিখতে পারে।

  • ব্যবহারকারীর মোড: প্রোগ্রামগুলির মেমরির ভার্চুয়ালাইজড ভিউ রয়েছে, প্রোগ্রামগুলি সমস্ত মেমরিতে অবাধে পড়তে / লিখতে পারে না এবং হার্ডওয়্যার ডিভাইসগুলি সরাসরি পড়তে / লিখতে পারে না। আরও মেমরি পেতে বা হার্ডওয়্যার ডিভাইস অ্যাক্সেস করতে, ব্যবহারকারী মোড প্রোগ্রামটি কার্নেলকে কল করতে হবে । সিস্টেম কল এবং বার্তা পাসিং এটি করার দুটি পদ্ধতি।

সিস্টেম কলগুলির মধ্যে একটি নির্দিষ্ট সিপিইউ নির্দেশনা বা নির্দেশের সেট নির্বাহ করা জড়িত যা সিপিইউ জাম্প (স্ট্যাকের মধ্যে প্রথম রিটার্ন ঠিকানা ঠিকানা) একটি পূর্বনির্ধারিত ঠিকানায় (ব্যবহারকারী মোডে লেখার যোগ্য নয়) এবং সিপিইউটিকে ব্যবহারকারী মোড থেকে কার্নেল মোডে স্থানান্তরিত করে (রিং করে) 3 ইন্টেল আর্কিটেকচারে 0 বেজে উঠুন)।

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

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

একটি মাইক্রো কার্নেল আর্কিটেকচারে যেখানে প্রকৃত "কার্নেল" খুব ন্যূনতম এবং কার্নেল সরবরাহ করে এমন বেশিরভাগ ফাংশনগুলি "সার্ভার" প্রসেসগুলিতে সরিয়ে নিয়ে যায়, এর সমস্তগুলি মাল্টি-সিপিইউ সিস্টেমে একই সাথে চলতে পারে, এর মতো আরও কিছু হতে পারে প্লেইন পুরাতন সিস্টেম কল পদ্ধতির চেয়ে দরকারী। "বার্তাগুলি" কে যথাযথ কার্নেল "সার্ভার" তে ব্যাখ্যা এবং রাউটিং করা মাইক্রোকার্নেলের কয়েকটি কাজ হবে।


3
কার্নেল মোড একই পৃষ্ঠা টেবিলগুলি ব্যবহার করে এবং ব্যবহারকারী মোড হিসাবে একই ভার্চুয়াল মেমরি ভিউ উপস্থাপন করে। পার্থক্যটি হ'ল এটিতে কার্নেল মোডে সীমাবদ্ধ হিসাবে চিহ্নিত পৃষ্ঠাগুলিতে অ্যাক্সেস রয়েছে।
psusi

5

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

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

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