ব্যবহারকারী-স্তরের থ্রেড এবং কার্নেল-স্তরের থ্রেডের মধ্যে পার্থক্য কী?


33

বেশ কয়েকটি উত্স পড়ার পরে আমি এখনও ব্যবহারকারী এবং কার্নেল-স্তরের থ্রেড সম্পর্কে বিভ্রান্ত।

নির্দিষ্টভাবে:

উভয় ব্যবহারকারীর স্তর এবং কার্নেল স্তরে থ্রেড বিদ্যমান থাকতে পারে

ব্যবহারকারীর স্তর এবং কার্নেল স্তরের মধ্যে পার্থক্য কী?


1
এটি কি আসলে কম্প সায়েন্স (তত্ত্ব) বা কেবল প্রোগ্রামিং?
মেহরদাদ

6
@ মেহরদাদ, অপারেটিং সিস্টেমগুলি কম্পিউটার বিজ্ঞানের একটি অঙ্গ।
কাভেহ

উত্তর:


28

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

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

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

একটি সিস্টেম কার্নেল-স্তর এবং ব্যবহারকারী-স্তরের উভয় থ্রেড সরবরাহ করতে পারে; এটি হাইব্রিড থ্রেডিং হিসাবে পরিচিত ।

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


আপনার শেষ লাইনটি বলেছে "কার্নেল-স্তরের থ্রেডগুলি মাল্টিপ্রসেসর মেশিনে একসাথে চলতে পারে, যা নিখুঁতভাবে ব্যবহারকারী-স্তরের থ্রেডগুলি অর্জন করতে পারে না"। কিন্তু দেওয়া লিংক বলছেন, ULT simultaneusly চালাতে পারেন stackoverflow.com/questions/14791801/... । আমি কি কিছু ভুল করছি?
গ্যারিক

আপনি আমার উপরের মন্তব্য চেক করতে পারেন?
গ্যারিক

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

4

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

এখানে তথ্য আছে

  • নতুন ভার্চুয়াল প্রসেসর তৈরি করা কিছুটা ব্যয়বহুল। (কার্নেলকে থ্রেড কন্ট্রোল ব্লকে একটি এন্ট্রি তৈরি করতে হবে , স্ট্যাক বরাদ্দ করতে হবে)

  • নতুন ভার্চুয়াল প্রসেসর তৈরির তুলনায় থ্রেড তৈরি করা বেশ সহজ। একটি অ্যাপ্লিকেশন বিকাশকারী প্রোগ্রামিং ভাষা দ্বারা সরবরাহিত থ্রেড লাইব্রেরিগুলি ব্যবহার করে থ্রেড তৈরি করতে পারে এবং ব্যবহারকারী স্পেসে পরিচালিত হয় । এবং বিভিন্ন ভাষা বহু উপায়ে বিভিন্ন উপায়ে প্রয়োগ করে।

মডেল

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

  • আরও কয়েকটি ভার্চুয়াল প্রসেসর তৈরি করতে পারলে এই সীমাবদ্ধতা কাটিয়ে উঠতে পারে। এখন, থ্রেডগুলি একই সাথে চলতে পারে (একাধিক রিয়েল প্রসেসর উপস্থিত থাকলে সমান্তরালে)। একটি থ্রেড অন্যান্য থ্রেডগুলিকে প্রভাবিত করবে না যা অন্যান্য ভার্চুয়াল প্রসেসরের উপর ম্যাপ করা আছে।

  • পরবর্তী মডেলটিতে, ভার্চুয়াল প্রসেসরের মধ্যে এক বা একাধিক থ্রেড ম্যাপ করা যায়।

  • উপরের মডেলগুলির নামকরণ করা হয়েছে যথাক্রমে ম্যান টু ওয়ান, ওয়ান টু ওয়ান এবং অনেকের পক্ষে অনেকে।

রেফার্নেস: গ্যালভিন এট দ্বারা অপারেটিং সিস্টেম ধারণা। বিষয়: থ্রেডস -> বহুগঠিত মডেল

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