একটি "থ্রেড" (আসলে) কী?


236

আমি একটি সুতা আসলে কী তা বোঝার জন্য একটি ভাল সংজ্ঞা, এবং একটি বোঝার চেষ্টা করেছি ।

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

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

কোনও প্রক্রিয়া থেকে ভিন্ন, যা আসলেই কিছু - এটি সম্পদ ইত্যাদির একত্রিত করা etc.

এমন একটি সংজ্ঞার উদাহরণ হিসাবে যা আমাকে সত্যিকার অর্থে খুব বেশি সাহায্য করে না। । ।

উইকিপিডিয়া থেকে :

"কম্পিউটার বিজ্ঞানের একটি থ্রেড কার্যকর করার একটি থ্রেডের জন্য ছোট Th অপারেটিং সিস্টেম অন্যটিতে তবে, সাধারণভাবে, একটি প্রক্রিয়াটির ভিতরে একটি থ্রেড থাকে এবং একই প্রক্রিয়াতে বিভিন্ন থ্রেড একই সংস্থানগুলিতে ভাগ করে থাকে যখন একই মাল্টিটাস্কিং অপারেটিং সিস্টেমের বিভিন্ন প্রক্রিয়াগুলি করে না ""

তাহলে আমি ঠিক আছি? ভুল? আসলে একটি থ্রেড কী?

সম্পাদনা: দৃশ্যত একটি থ্রেডকেও নিজস্ব কল স্ট্যাক দেওয়া হয়, যাতে এটি কিছুটা কংক্রিটের জিনিস


6
"প্রক্রিয়া" কোনও বিমূর্ত শব্দটির চেয়ে কম নয়।
হবিস

থ্রেড স্থানীয় স্টোরেজ কি থ্রেডের জন্য কেবল কল স্ট্যাক?
প্রতিশ্রুতিবদ্ধ


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

@ মোহন যে দুর্দান্ত তবে এটি একটি প্রক্রিয়া থেকে কীভাবে আলাদা?
এরিক

উত্তর:


152

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

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

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


10
+1 টি। একটি থ্রেড নিবন্ধকের মানগুলির সেটের চেয়ে বেশি কিছু "কংক্রিট" নয়।
গ্রেগ হিউগিল

6
কোন "মান সেট"? তারা কি? তারা কিভাবে একটি থ্রেড সংজ্ঞা দেয় ?
সমৃদ্ধ

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

4
ধন্যবাদ বেন এটা খুব সহায়ক।
রিচার্ড

2
হাই থেক্স @ বেনভয়েগট আমার মতো নুবগুলিতে হোঁচট খেতে পারে এমন কয়েকটি স্পেসিফিকেশন: "প্রসেসর রেজিস্টার" বলতে কী বোঝায়? "নির্দেশ পয়েন্টার" এবং "স্ট্যাক পয়েন্টার" বলতে কী বোঝায়?
বিকেএসপুরজন

214

একটি থ্রেড হ'ল একটি সম্পাদন প্রসঙ্গ, যা সিপিইউয়ের নির্দেশের একটি স্ট্রিম কার্যকর করতে প্রয়োজনীয় সমস্ত তথ্য।

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

আপনার যদি রুমমেট থাকে এবং তিনি একই কৌশল ব্যবহার করছেন তবে আপনি যখন বইটি ব্যবহার করছেন না তখন তিনি বইটি নিতে পারেন এবং সেখান থেকে পড়া শুরু করেছিলেন from তারপরে আপনি এটিকে আবার নিতে পারবেন এবং আপনি যেখানে ছিলেন সেখান থেকে এটি আবার শুরু করতে পারেন।

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

আরও প্রযুক্তিগত স্তরে, একটি এক্সিকিউশন কনটেক্সট (অতএব একটি থ্রেড) সিপিইউর রেজিস্টরের মানগুলি নিয়ে গঠিত।

শেষ: থ্রেডগুলি প্রক্রিয়া থেকে পৃথক। একটি থ্রেড বাস্তবায়নের প্রসঙ্গ, অন্যদিকে একটি প্রক্রিয়া গণনার সাথে যুক্ত সংস্থাগুলির একটি গোছা। একটি প্রক্রিয়া এক বা একাধিক থ্রেড থাকতে পারে।

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


20
আরও ভাল উপমাটি সিপিইউর সাথে উভয়ের সমতুল্য হবে (উভয়ই কিছু করতে পারে), এবং ঠিকানা-জায়গার সমান বই (উভয়ই বিদ্যমান) just এইভাবে, বিভিন্ন বইয়ের বুকমার্কগুলি বিভিন্ন প্রক্রিয়াগুলির থ্রেডের মতো। একাধিক বুকমার্ক সমেত একটি একক বই হ'ল একাধিক-থ্রেড প্রক্রিয়াটির অ্যানালগ, যা লোকেরা সাধারণত "থ্রেড" বললে সাধারণত বোঝায়। এটি একটি একক প্রসেসর মেশিনের জন্য কাজ করে, তবে আপনি মাল্টি-প্রসেসিংয়ের কথা বললে কিছুটা ভাঙা। কোন সিপিইউ f () ফাংশনটি কার্যকর করে তা কারও মাথা ঘামায় না, তবে কোন ব্যক্তি 11
সলোমন স্লো

@ পিডনল, আমার মতো অন্যদের জন্য কঠিন ধারণা হজম করার জন্য অনেক ধন্যবাদ! মাল্টিথ্রেডিং কি মাল্টিপ্রসেসিংয়ের সাথে জড়িত (বা আমি অনেক ভুল সিপিইউতে সমান্তরালভাবে একটি প্রক্রিয়া চালাচ্ছি, যদি আমি ভুল শব্দটি ব্যবহার করি)?
এরিজমান

51

কোনও থ্রেড আনুষ্ঠানিকভাবে সংজ্ঞায়িত করতে, প্রথমে আমাদের থ্রেডটি কোথায় চালিত হয় তার সীমানাটি বুঝতে হবে।

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

একটি থ্রেড হ'ল একটি প্রোগ্রামের মধ্যে এই জাতীয় নির্দেশের ক্রম যা অন্য কোডের চেয়ে স্বাধীনভাবে কার্যকর করা যেতে পারে। চিত্রটি ধারণাটি দেখায়: এখানে চিত্র বর্ণনা লিখুন

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

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

সুস্পষ্ট অপারেটিং সিস্টেম সমর্থন মাল্টিথ্রেডেড প্রোগ্রামগুলি চালানোর জন্য প্রয়োজন। সৌভাগ্যক্রমে, বেশিরভাগ আধুনিক অপারেটিং সিস্টেমগুলি যেমন লিনাক্স (এনপিটিএল মাধ্যমে), বিএসডি ভেরিয়েন্টস, ম্যাক ওএস এক্স, উইন্ডোজ, সোলারিস, এআইএক্স, এইচপি-ইউএক্স ইত্যাদি থ্রেড সমর্থন করে mult

এখানে, গ্রাফিকালি, ধারণাটি প্রতিনিধিত্ব করা হয়।

এখানে , আপনি বিষয়টি সম্পর্কে আরও তথ্য পেতে পারেন। এটি আমার তথ্য-উত্সও ছিল।

আমাকে কেবল এডওয়ার্ড লি এবং সেশিয়া দ্বারা এম্বেডড সিস্টেমের ভূমিকা থেকে আগত একটি বাক্য যুক্ত করুন :

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


45

প্রক্রিয়াগুলি হল দুটি লোকের মতো দুটি পৃথক কম্পিউটার, যারা প্রয়োজনে ডেটা ভাগ করে নেওয়ার জন্য নেটওয়ার্ক ব্যবহার করে। থ্রেডগুলি একই কম্পিউটার ব্যবহার করা দু'জনের মতো, যাদের স্পষ্টভাবে ডেটা ভাগ করতে হবে না তবে সাবধানতার সাথে পালা নিতে হবে।

ধারণাগতভাবে, থ্রেডগুলি হ'ল একাধিক কর্মী মৌমাছি একই ঠিকানার জায়গায় ঘুরে বেড়াচ্ছে। প্রতিটি থ্রেডের নিজস্ব স্ট্যাক, নিজস্ব প্রোগ্রামের কাউন্টার ইত্যাদি রয়েছে তবে কোনও প্রক্রিয়াতে থাকা সমস্ত থ্রেড একই মেমরির ভাগ করে। একই সাথে দুটি প্রোগ্রাম চলার কল্পনা করুন তবে তারা উভয়ই একই জিনিসগুলিতে অ্যাক্সেস করতে পারে।

প্রক্রিয়াগুলির সাথে এটি বিপরীতে করুন। প্রক্রিয়াগুলির প্রত্যেকের নিজস্ব ঠিকানা স্পেস থাকে, অর্থ একটি প্রসেসের পয়েন্টার অন্যটিতে কোনও অবজেক্টের রেফারেন্স হিসাবে ব্যবহার করা যায় না (যদি না আপনি ভাগ করা মেমরি ব্যবহার করেন)।

আমি অনুমান করি মূল বিষয়গুলি হ'ল:

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

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

@ কমিমিডেন্ড্রয়েডার: শুভ কল আমি আমার উত্তরটি সম্পাদন করে বললাম যে প্রক্রিয়াগুলি মেমরি ভাগ করে না (ডিফল্টরূপে), তবে থ্রেডগুলি সমস্ত মেমরি ভাগ করে।
জোয়ে অ্যাডামস

36

আমি আব্রাহাম সিলবার্চ্যাটজ, পিটার বেয়ার গ্যালভিন এবং গ্রেগ গাগেনের অপারেটিং সিস্টেম কনসেপ্টস বইটি থেকে আমার নিজের জিনিসগুলির নিজস্ব বোঝার সাথে প্রচুর পাঠ্য ব্যবহার করতে যাচ্ছি।

প্রক্রিয়া

কোনও অ্যাপ্লিকেশন পাঠ্য (বা কোড) আকারে কম্পিউটারে থাকে।

আমরা জোর দিয়েছি যে কোনও প্রোগ্রাম নিজেই কোনও প্রক্রিয়া নয়। প্রোগ্রাম হ'ল প্যাসিভ সত্তা, যেমন একটি ফাইল যা ডিস্কে সঞ্চিত নির্দেশাবলীর একটি তালিকা থাকে (প্রায়শই তাকে এক্সিকিউটেবল ফাইল বলা হয়)।

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

প্রক্রিয়াগুলির একটি উদাহরণ হ'ল গুগল ক্রোম। যখন আমরা গুগল ক্রোম শুরু করি, তখন 3 টি প্রক্রিয়া তৈরি হয়:

ব্রাউজার প্রক্রিয়া ইউজার ইন্টারফেস পরিচালনার পাশাপাশি ডিস্ক ও নেটওয়ার্ক ইনপুট / আউটপুট জন্য দায়ী। ক্রোম শুরু করা হলে একটি নতুন ব্রাউজার প্রক্রিয়া তৈরি হয়। শুধুমাত্র একটি ব্রাউজার প্রক্রিয়া তৈরি হয়।

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

Each প্রতিটি প্লাগইন (যেমন ফ্ল্যাশ বা কুইকটাইম) ব্যবহারের জন্য একটি প্লাগ-ইন প্রক্রিয়া তৈরি করা হয়। প্লাগ-ইন প্রক্রিয়াগুলিতে প্লাগ-ইনগুলির পাশাপাশি অতিরিক্ত কোড রয়েছে যা প্লাগ-ইনটিকে সম্পর্কিত রেন্ডারার প্রক্রিয়া এবং ব্রাউজার প্রক্রিয়াটির সাথে যোগাযোগ করতে সক্ষম করে।

সুতা

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

এখন একটি থ্রেড সংজ্ঞা এগিয়ে চলুন।

একটি থ্রেড সিপিইউ ব্যবহারের একটি প্রাথমিক ইউনিট ; এটিতে একটি থ্রেড আইডি, একটি প্রোগ্রামের কাউন্টার, একটি রেজিস্টার সেট এবং একটি স্ট্যাক রয়েছে।

সম্পাদনা: ইন্টেলের ওয়েবসাইট থেকে একটি থ্রেডের সংজ্ঞা:

একটি থ্রেড, বা এক্সিকিউশন এর থ্রেড, নির্দেশাবলী বুনিয়াদী ক্রমযুক্ত ক্রম জন্য একটি সফ্টওয়্যার শব্দ যা একক সিপিইউ কোর দ্বারা পাস বা প্রক্রিয়াজাত করা যেতে পারে।

সুতরাং, যদি ক্রোম অ্যাপ্লিকেশন থেকে রেন্ডারার প্রক্রিয়া একটি সংখ্যার অ্যারে বাছাই করে, বাছাই করা কার্যকরকরণের থ্রেড / থ্রেডে স্থান পাবে। (থ্রেড সম্পর্কিত ব্যাকরণ আমার কাছে বিভ্রান্তিকর বলে মনে হচ্ছে)

আমার ব্যাখ্যার জিনিস

একটি প্রক্রিয়া একটি বাস্তবায়ন উদাহরণ। থ্রেডগুলি প্রকৃত কর্মীরা সিপিইউ অ্যাক্সেসের মাধ্যমে গণনা সম্পাদন করে। যখন কোনও প্রক্রিয়াটির জন্য একাধিক থ্রেড চলমান থাকে তখন প্রক্রিয়াটি সাধারণ মেমরি সরবরাহ করে।

সম্পাদনা: অন্যান্য তথ্য যা আমি আরও প্রসঙ্গে দিতে দরকারী বলে মনে করি

সমস্ত আধুনিক কম্পিউটারে একাধিক থ্রেড রয়েছে। একটি কম্পিউটারে থ্রেডের সংখ্যা কম্পিউটারে কোর সংখ্যার উপর নির্ভর করে।

সাম্প্রতিক কম্পিউটিং :

উইকিপিডিয়া থেকে:

সমকালীন কম্পিউটিং কম্পিউটিংয়ের একটি ফর্ম যার মধ্যে ওভারল্যাপিং সময় সময়কালে একযোগে sequ ধারাবাহিকভাবে পরিবর্তিত হয়ে (পরবর্তী শুরুর আগে একটি সম্পন্ন করা) বেশ কয়েকটি কম্পিউটেশন সম্পাদিত হয়। এটি একটি সিস্টেমের সম্পত্তি — এটি স্বতন্ত্র প্রোগ্রাম, কম্পিউটার বা একটি নেটওয়ার্ক হতে পারে — এবং প্রতিটি গণনার ("প্রক্রিয়া") এর জন্য পৃথক এক্সিকিউশন পয়েন্ট বা "নিয়ন্ত্রণের থ্রেড" থাকতে পারে।

সুতরাং, আমি একটি প্রোগ্রাম লিখতে পারি যা 4 সংখ্যার যোগফল গণনা করে:

(1 + 3) + (4 + 5)

প্রোগ্রামটির এই অঙ্কটি গণনা করার জন্য (যা কার্যকর হওয়ার থ্রেডে চলমান একটি প্রক্রিয়া হবে) আমি অন্য প্রক্রিয়াটি কাঁটাতে পারি যা আলাদা থ্রেডে চলতে পারে (4 + 5) গণনা করতে এবং ফলাফলটি মূল প্রক্রিয়াতে ফিরিয়ে দিতে পারে, যখন মূল প্রক্রিয়া (1 + 3) এর যোগফল গণনা করে।


5
এটাই আসল চুক্তির উত্তর
সুহেল মমতাজ আওয়ান

1
অনেক সাহায্য করেছে। ব্যাখ্যাটি দেখতে এটির মতোই।
দিনেশ কুমার

এই উত্তরের একটি বড় মূল্য এটি একটি রেফারেন্স বই সরবরাহ করে যেখানে এটির প্রয়োজন হলে আপনি আরও বিশদ জানতে পারেন। ধন্যবাদ @ চতুর!
দেশা 1

7

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

http://en.wikipedia.org/wiki/Simultaneous_multithreading

http://www.intel.com/intelpress/samples/mcp_samplech01.pdf


1
এটি এমন কি যা এটি "স্পষ্ট কিছু" করে তোলে? এটি কি কেবল ডেটা টিএলএস এবং এর কল স্ট্যাকের মধ্যে সঞ্চিত?
রিচার্ড

এটি বোঝার জন্য কেবল বিমূর্ততা নয় ... যদি এটি সত্যিই কেবল একটি একক থ্রেড ছিল যেগুলি একাধিক থ্রেড হিসাবে ছড়িয়ে পড়ে পিছনে পিছনে ছড়িয়ে পড়ে, তবে ওপি সঠিক হবে, তবে হ্যাঁ, আমি বলব যে এই ডেটা এটি স্পষ্ট করে তুলবে ।
অরবিট

আমাকে আলোকিত করুন। । । তাহলে সঠিক উত্তরটি কি?
রিচার্ড

@ রিচার্ড শব্দার্থবিজ্ঞানের বিষয়ে কোনও বিতর্কে জড়াতে চাইছেন না, কেবল আমার উত্তরটি ওপিকে ধারণাগতভাবে স্পষ্ট করার জন্য আমার বাক্যটি দিয়েছেন।
অরবিট

@ রিচার্ড টিএলএস কি?
প্রতিশ্রুতিবদ্ধ

6

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

কার্নেলটি অর্থবহ উপায়ে মেমরি এবং নির্দেশাবলীর অর্ডার পরিচালনা করতে থ্রেড এবং প্রক্রিয়া ধারণাটি প্রবর্তন করে।


5

এটি ইয়াহু জবাব থেকে নেওয়া হয়েছে:

একটি থ্রেড হ'ল একটি অ্যাপ্লিকেশনের আর্কিটেকচার দ্বারা একটি কোডিং কনস্ট্রাক্ট আনফ্যাক্ট। একটি একক প্রক্রিয়া ঘন ঘন একাধিক থ্রেড থাকতে পারে। থ্রেডগুলি একে অপরের সাথে সরাসরি যোগাযোগ করতে পারে যেহেতু তারা একই ভেরিয়েবলগুলি ভাগ করে।

প্রক্রিয়াগুলি তাদের নিজস্ব রাষ্ট্রের তথ্য সহ স্বাধীন নির্বাহ ইউনিট। তারা তাদের নিজস্ব ঠিকানা স্পেসগুলিও ব্যবহার করে এবং কেবল ইন্টারপ্রসেস যোগাযোগ ব্যবস্থার মাধ্যমে অন্যান্য প্রক্রিয়াগুলির সাথে ইন্টারঅ্যাক্ট করতে পারে।

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

বলা হয় ইন্টেল প্রসেসরগুলিতে "হাইপার-থ্রেডিং" থাকে (এএমডি এটিরও থাকে) এবং এটি একাধিক "থ্রেড" বা মাল্টিটাস্ক আরও ভাল সম্পাদন করতে সক্ষম হতে বোঝায়।

কোনও থ্রেড কীভাবে পরিচালনা করা হয় তার রসদ সম্পর্কে আমি নিশ্চিত নই। আমি তাদের মধ্যে প্রসেসরটি পিছনে পিছনে যাচ্ছি শুনে শুনেছি, তবে আমি এটি সম্পর্কে 100% নিশ্চিত নই এবং আশা করি অন্য কেউ এর উত্তর দিতে পারে।


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

এটি এমন একটি অপ্টিমাইজেশন যা কিছু ব্যবহারের ক্ষেত্রে আরও ভাল পারফরম্যান্স দেয়। আপনি হাইপার থ্রেডিং সম্পর্কে এখানে পড়তে পারেন: en.wikedia.org/wiki/Hyper-threading
জেরেমি ফ্রাইজনার

5

উত্তরটি বিভিন্ন সিস্টেম এবং বিভিন্ন বাস্তবায়নে ব্যাপকভাবে পরিবর্তিত হয় তবে সবচেয়ে গুরুত্বপূর্ণ অংশগুলি হ'ল:

  1. কোনও থ্রেডে মৃত্যুদণ্ড কার্যকর করার জন্য একটি স্বাধীন থ্রেড থাকে (যেমন আপনি এটি থেকে প্রসঙ্গ-স্যুইচ করতে পারেন, এবং তারপরে ফিরে যেতে পারেন এবং এটি যেখানে ছিল সেখানে আবার চলতে শুরু করবে)।
  2. একটি থ্রেডের জীবনকাল রয়েছে (এটি অন্য থ্রেড দ্বারা তৈরি করা যেতে পারে, এবং অন্য থ্রেডটি এটি শেষ হওয়ার জন্য অপেক্ষা করতে পারে)।
  3. এটিতে সম্ভবত "প্রক্রিয়া" এর চেয়ে কম লাগেজ যুক্ত রয়েছে।

এর বাইরে: থ্রেডগুলি কোনও একক প্রক্রিয়ার মধ্যে একটি ভাষা রানটাইমের মাধ্যমে প্রয়োগ করা যেতে পারে, থ্রেডগুলি কর্টাইন হতে পারে, থ্রেডিং লাইব্রেরির মাধ্যমে একক প্রক্রিয়ার মধ্যে থ্রেডগুলি প্রয়োগ করা যেতে পারে বা থ্রেডগুলি কার্নেল কনস্ট্রাক্ট হতে পারে।

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


প্রসেসরের এক থ্রেড থেকে অন্য থ্রেডে যাওয়ার সময় কি একই প্রসঙ্গে পরিবর্তন করা হয় (একই প্রক্রিয়াতে বা অন্য কোনও হয়)?
প্রতিশ্রুতিবদ্ধ

-1

আমি এই উত্তরগুলির সাথে যেহেতু সত্যই সন্তুষ্ট নই, তাই আমি এখানে নিজের নিজস্ব যুক্ত করতে যাচ্ছি :) প্রসেসরের সময়সূচী কাজের জন্য একটি থ্রেড হ'ল একটি কার্নেল বিমূর্তি, একটি থ্রেড যা প্রসেসরের সময় পরিচালনা করতে কার্নেল আপনাকে দেয় gives এবং অন্যদের সাথে কাজ ভাগ করে নিন


1
-1 থ্রেডগুলি কার্নেল দ্বারা তৈরি করার প্রয়োজন নেই। কার্নেল-স্তরের সমর্থন সহ থ্রেডগুলি প্রকৃতপক্ষে কার্নেল দ্বারা নির্ধারিত হয় (যেখানে কোনও ধরণের সিস্কেল জারি করা হয়)। তবে ব্যবহারকারী লাইব্রেরি-স্তরের সমর্থন সহ থ্রেড রয়েছে যা ব্যবহারকারীর স্পেসে থাকে।
আলেকসান্দ্রহ

-1

প্রথমে আমি প্রক্রিয়া এবং থ্রেডের মধ্যে পার্থক্যটি ব্যাখ্যা করি।

কোনও প্রক্রিয়াতে {1..N} থ্রেডের সংখ্যা থাকতে পারে। ভার্চুয়াল মেমরি এবং ভার্চুয়াল প্রসেসরের উপর একটি ছোট ব্যাখ্যা।

ভার্চুয়াল মেমরি

অদলবদল স্থান হিসাবে ব্যবহৃত হয় যাতে কোনও প্রক্রিয়া মনে করে যে এটি কার্যকর করার জন্য প্রাথমিক স্মৃতিতে বসে আছে।

ভার্চুয়াল প্রসেসর

এটি বাদে ভার্চুয়াল মেমরির মতো একই ধারণাটি প্রসেসরের জন্য। একটি প্রক্রিয়া, এটি প্রসেসর ব্যবহার করা হয় যে এটি একমাত্র জিনিস দেখতে হবে।

ওএস ভার্চুয়াল মেমরি এবং ভার্চুয়াল প্রসেসরকে একটি প্রক্রিয়াতে বরাদ্দকরণ এবং প্রক্রিয়াগুলির মধ্যে অদলবদল সম্পাদন এবং সম্পাদনের ক্ষেত্রে যত্ন নেবে।

প্রক্রিয়াটির সমস্ত থ্রেড একই ভার্চুয়াল মেমরি ভাগ করে নেবে। তবে, প্রতিটি থ্রেডে তাদের পৃথক ভার্চুয়াল প্রসেসর নির্ধারিত হবে যাতে তারা পৃথকভাবে কার্যকর করা যায়।

এইভাবে স্মৃতি সাশ্রয় করার পাশাপাশি সিপিইউকে তার সম্ভাব্যতায় ব্যবহার করে।

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