মাল্টিটাস্কিং কীভাবে কাজ করে


15

অপারেটিং সিস্টেমের অভ্যন্তরীণ কাজগুলি সম্পর্কে আমি সম্পূর্ণ নির্লিপ্ত, তবে আমি অনেক ফাংশনের আনুমানিক আচরণটি কমবেশি অনুমান করতে পারি। একটি জিনিস যা আমি বের করতে সক্ষম নই তা হ'ল মাল্টিটাস্কিং।

তত্ত্ব অনুসারে, অপারেটিং সিস্টেম সময় পরিচালনা করে, সিপিইউ অনুসারে বিভিন্ন অন্তর্ভুক্ত বিভিন্ন প্রোগ্রামের জন্য। কিন্তু এটা কিভাবে এই স্পষ্ট নয় সত্যিই কাজ করে।

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

মূলত, আমি এই কাজটি করার দুটি মাত্র উপায় কল্পনা করতে পারি, তবে দুটিই সত্যই উপযুক্ত বলে মনে হয় না:

  • অপারেটিং সিস্টেমটি মেশিনের নির্দেশাবলী আমি সরাসরি সম্পাদন করার পরিবর্তে সেগুলি সম্পাদন করতে এবং অনুকরণ করতে চাই read আমি ইচ্ছাকৃতভাবে অস্পষ্ট, যেহেতু আমি জানি না এটি কীভাবে কাজ করবে, তবে মনে হচ্ছে এটি প্রোগ্রামটি বেশ ধীরে ধীরে কমিয়ে দেবে।

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

সুতরাং, মনে হচ্ছে কোনওটিই খুব ভালভাবে কাজ করবে না। মাল্টিটাস্কিং আসলে কীভাবে সম্পাদিত হয়?


যদিও আপনার অনুমানটি ঠিক সঠিক নয়, আপনি যে সমস্যাটি দেখিয়েছেন তা হ'ল হ্যাঁ: "আমি একটি দীর্ঘ গণনা করতে পারলাম যা সিস্টেম কলগুলিতে জড়িত না এবং কিছুক্ষণের জন্য সবকিছু স্তব্ধ করে রাখে" "
ঝাঁকুনি দেওয়া

দেখার জন্য একটি কীওয়ার্ড:interrupt
এসকে-লজিক

হ্যাঁ, তবে কে বাধা দিচ্ছে? যদি আমার কোডটি কার্যকর করা হয়, তবে কোনও INTনির্দেশিকা কার্যকর করার জন্য ওএসের কোনও উপায় নেই । কিছু এখনও আমার কাছে রহস্যজনক
Andrea

অ্যান্ড্রিয়া, হারওয়ার ক্লক একটি বিঘ্ন ঘটায়। ঠিক তত সহজ। এন.ইউইকিপিডিয়া.আর.উইকি
এসকে-যুক্তি

ঠিক আছে, এখন আমি দেখছি। সুতরাং, আমি যদি সঠিকভাবে বুঝতে পারি তবে এটি একটি হার্ডওয়্যার-ভিত্তিক বৈশিষ্ট্য, কোনওটি ওএস-এ কার্যকর করা যায় না।
Andrea

উত্তর:


21

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

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

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


5

এটি সিস্টেম থেকে সিস্টেমে পরিবর্তিত হয়।

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

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

ননপ্রিমিটিভ মাল্টিটাস্কিং সিস্টেমে বাধা সৃষ্টি হওয়া বা অ-ঘটনাই বাধা রুটিন শেষ হওয়ার পরে কোন কাজটি চলছে তা প্রভাবিত করে না।

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

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


প্রসেসরটি যদি আপনাকে সতর্কতা না দিয়ে নিয়ে যায় তবে কী খারাপ হতে পারে? আমার ধারণা আপনি নিবন্ধগুলিতে একই মান সহ প্রসেসরের নিয়ন্ত্রণ আবার পাবেন। কীভাবে এটি আপনার গণনা রাখা থেকে আলাদা?
Andrea

@ আন্ড্রেয়া: পারস্পরিক বর্জন এবং সমালোচনামূলক বিভাগগুলি প্রসেসরকে একটি গুরুতর মুহুর্তে না হারানোর বিষয়ে। আপনার প্রসেসটিতে যদি কিছু লক হয়ে থাকে এবং আপনি প্রসেসরটি হারাতে পারেন, তবে আপনি প্রসেসরটি আবার না পাওয়া পর্যন্ত কিছু লক থাকে। এর ফলে সমস্যা হতে পারে।
জন আর স্ট্রোহম

@ আন্দ্রেয়া আপনি আবার প্রসেসরের নিয়ন্ত্রণ পেতে পারবেন এবং আপনি যে স্মৃতি ব্যবহার করতে যাচ্ছিলেন তার সাথে অন্য কোনও প্রক্রিয়া বিস্মৃত হতে পারে।
ব্যবহারকারী 253751

4

সিপিইউতে বাধা দেওয়ার জন্য কম্পিউটার হার্ডওয়্যার দ্বারা টাইমার বিঘ্ন তৈরি করা যায়। এই পদ্ধতিতে, অপারেটিং সিস্টেম দ্বারা ব্যবহৃত সিডিউলিং অ্যালগরিদমের উপর ভিত্তি করে, ওএস আপনার বর্তমান প্রোগ্রামটি চালিয়ে যেতে বা চালানোর জন্য প্রস্তুত অন্য কোনও প্রসঙ্গে প্রসঙ্গে যেতে চাইলে সিদ্ধান্ত নিতে পারে।

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