লিনাক্সের চেয়ে উইন্ডোতে কেন নতুন ব্যয় বেশি ব্যয়বহুল?


100

আমি শুনেছি উইন্ডোজ বাক্সে একটি নতুন প্রক্রিয়া তৈরি করা লিনাক্সের চেয়ে ব্যয়বহুল। এটা কি সত্য? কেউ কেন এটি আরও ব্যয়বহুল জন্য প্রযুক্তিগত কারণগুলি ব্যাখ্যা করতে পারে এবং এই কারণগুলির পিছনে নকশার সিদ্ধান্তগুলির জন্য কোনও historicalতিহাসিক কারণ সরবরাহ করতে পারে?

উত্তর:


67

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

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

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

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

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


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

5
অবশ্যই ভুলে যাবেন না, 'vfork' কমান্ডটি, যা আপনি বর্ণিত 'জাস্ট কল এক্সিকিউটি'র জন্য তৈরি করা হয়েছে।
ক্রিস হুয়াং-লিভার

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

5
-1। সফ্টওয়্যারটি 'দুর্বলভাবে পোর্ট করা' বলে দাবি করা হয়েছে কারণ এটি উপযুক্তভাবে তৈরি নকশাকৃত অপারেটিং সিস্টেমের সাথে ভালভাবে চলতে পারে না যা প্রক্রিয়া তৈরির প্রক্রিয়াটি ধীর করে দেয় এটি হাস্যকর।
মাইলস রাউট

6
@ মাইলসআরআউট পোর্টিংয়ের লক্ষ্যটি হল একটি নতুন টার্গেট সিস্টেমে চালনার জন্য সফ্টওয়্যারটি সংশোধন করা, সেই সিস্টেমের শক্তি এবং ত্রুটিগুলি মাথায় রেখে। দুর্বল বৈশিষ্ট্যসমূহ নিয়ে আসা সফ্টওয়্যার করণ হয় দুর্বল বৈশিষ্ট্যসমূহ নিয়ে আসা সফটওয়্যার, roadblocks অপারেটিং সিস্টেম উপলব্ধ নির্বিশেষে।
ডিসিস্পাইরাল

27

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

কাঁটাচামচের ক্ষেত্রে ওএস উভয় নতুন প্রক্রিয়ার সাথে যুক্ত মেমরি পৃষ্ঠাগুলির জন্য 'কপিরাইট-অন-রাইটিং' শব্দার্থবিজ্ঞান ব্যবহার করতে পারে তা নিশ্চিত করতে যে তারা পরবর্তীকালে সংশোধিত পৃষ্ঠাগুলির প্রত্যেকের নিজস্ব কপি পেয়েছে gets


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


আমি আমার উত্তরে কিছু পারফরম্যান্স ডেটা যুক্ত করেছি। stackoverflow.com/a/51396188/537980 আপনি দেখতে পাচ্ছেন যে এটি দ্রুত।
ctrl-alt-delor

25

জেপি যা বলেছিল তাতে যুক্ত করে: বেশিরভাগ ওভারহেড প্রক্রিয়াটির জন্য উইন 32 স্টার্টআপের অন্তর্গত।

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

CSRSSএক্সপি -তে প্রসেস-আউট-এলসিপির কল ছাড়াও , অ্যাপ্লিকেশন সামঞ্জস্যতা ডাটাবেজে প্রোগ্রামটি খুঁজে পেতে অ্যাপ্লিকেশন সামঞ্জস্যতা ইঞ্জিনের একটি আউট প্রসেস কল রয়েছে। এই পদক্ষেপের কারণে পর্যাপ্ত ওভারহেড তৈরি হয় যে মাইক্রোসফ্ট পারফরম্যান্সের কারণে WS2003 এ সামঞ্জস্যতা ইঞ্জিনটি অক্ষম করতে একটি গ্রুপ নীতি বিকল্প সরবরাহ করে

উইন 32 রানটাইম লাইব্রেরিগুলি (কর্নেল 32.dll, ইত্যাদি) ইউএনআইএক্স, এসএফইউ বা নেটিভ প্রক্রিয়াগুলিতে প্রযোজ্য নয় এমন স্টার্টআপে প্রচুর রেজিস্ট্রি পড়তে এবং আরম্ভ করতে পারে do

নেটিভ প্রক্রিয়াগুলি (কোনও পরিবেশের সাবসিস্টেমবিহীন) তৈরি করা খুব দ্রুত to প্রক্রিয়া তৈরির জন্য এসএফইউ উইন 32 এর চেয়ে অনেক কম কাজ করে, তাই এর প্রক্রিয়াগুলি তৈরি করাও দ্রুত।

2019 এর জন্য আপডেট করুন: এলএক্সএসএস যুক্ত করুন: লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেম

উইন্ডোজ 10 এর জন্য এসএফইউ প্রতিস্থাপন হ'ল এলএক্সএসএস এনভায়রনমেন্ট সাবসিস্টেম। এটি 100% কার্নেল মোড এবং উইন 32 এখনও চালিয়ে যায় এমন কোনও আইপিসির প্রয়োজন হয় না। এই প্রক্রিয়াগুলির জন্য সিস্কাল সরাসরি lxss.sys / lxcore.sys- এ পরিচালিত হয়, সুতরাং কাঁটাচামচ () বা অন্যান্য প্রক্রিয়া কল তৈরির জন্য স্রষ্টার জন্য মোট 1 সিস্টেম কল প্রয়োজন। [ইনস্ট্যান্স নামে পরিচিত একটি ডেটা অঞ্চল] সমস্ত এলএক্স প্রক্রিয়া, থ্রেড এবং রানটাইম স্থিতির উপর নজর রাখে।

এলএক্সএসএস প্রক্রিয়াগুলি উইন 32 প্রক্রিয়া নয়, নেটিভ প্রক্রিয়াগুলির উপর ভিত্তি করে। সামঞ্জস্যতা ইঞ্জিনের মতো সমস্ত উইন 32 নির্দিষ্ট স্টাফ মোটেই নিযুক্ত নেই।


15

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

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


4
আপনার শেষ পয়েন্টটি সম্পর্কে: কাঁটাচামচ () ক্রেডিটপ্রসেস () এর সাথে বিনিময়যোগ্য নয়, তবে কেউ এটিও বলতে পারেন যে উইন্ডোজটির তখন কাঁটা () প্রয়োগ করা উচিত, কারণ এটি আরও নমনীয়তা দেয়।
ব্লেসরব্ল্যাড

আহ, ক্রিয়া থেকে মৌমাছি।
acib708

তবে লিনাক্সে ফর্ক + এক্সিকিউট, এমএস-উইন্ডোজে ক্রিয়েট্রেডের চেয়ে দ্রুত। এবং লিনাক্স নিজে থেকে আরও দ্রুত হওয়ার জন্য কাঁটাচামচ করতে পারে। তবে আপনি এটি তুলনা করুন, এমএস ধীর।
ctrl-alt-delor

13

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

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

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

দাবি অস্বীকার: আমি কোনওভাবেই এই বিষয়ে বিশেষজ্ঞ নই, তাই যদি ভুল হয়ে থাকে তবে আমাকে ক্ষমা করুন।


9

সংক্ষিপ্ত উত্তরটি হ'ল "সফ্টওয়্যার স্তর এবং উপাদানগুলি"।

উইন্ডোজ এসডাব্লু আর্কিটেকচারটিতে বেশ কয়েকটি অতিরিক্ত স্তর এবং উপাদান রয়েছে যা ইউনিক্সে নেই বা ইউনিক্সের কার্নেলের ভিতরে সরলীকৃত এবং পরিচালনা করা হয়।

ইউনিক্সে, কাঁটাচামচ এবং এক্সিকিউটি কার্নেলের সরাসরি কল।

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

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


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


8

ওহ, অনেকটা "এটি আরও ভাল এটি" ধরণের ন্যায়সঙ্গততা চলছে বলে মনে হচ্ছে।

আমি মনে করি "শোস্টোপার" পড়ে লোকেরা উপকৃত হতে পারে; উইন্ডোজ এনটি এর উন্নয়ন সম্পর্কে বই।

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

আপনি নীচে এবং নোংরা হয়ে গেলে আপনি দেখতে পাবেন যে লাইব্রেরি লোড করার কৌশলটি সমস্যা।

ইউনিটগুলিতে (সাধারণভাবে) ভাগ করা লাইব্রেরি (ডিএলএল এর) কোড বিভাগগুলি আসলে ভাগ করা হয়।

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

এটি পুনরায় ব্যবহারযোগ্য নয় এমন লাইব্রেরিতে কোড বিভাগগুলিতে ফলাফল in

সুতরাং, এনটি প্রক্রিয়া তৈরি করা আসলে বেশ ব্যয়বহুল। এবং নীচের দিকে, এটি ডিএলএল'র স্মৃতিতে কোনও প্রশংসনীয় সঞ্চয় নয়, তবে আন্তঃ অ্যাপ নির্ভরতা সমস্যার জন্য একটি সুযোগ তৈরি করে।

কখনও কখনও ইঞ্জিনিয়ারিংয়ে পেছনে ফিরে অর্থ প্রদান করে এবং বলে, "এখন, আমরা যদি সত্যিই এটি স্তন্যপান করার জন্য ডিজাইন করতে যাচ্ছিলাম তবে এটি দেখতে কেমন হবে?"

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


4
কোড বিভাগগুলি DLL যতক্ষণ তার পছন্দের বেস ঠিকানায় লোড হয় ততক্ষণ পুনরায় ব্যবহারযোগ্য। Ditionতিহ্যগতভাবে আপনার অবশ্যই নিশ্চিত হওয়া উচিত যে আপনি সমস্ত ডিএলএলগুলির জন্য আপনার বিরোধী বেস ঠিকানাগুলি সেট করেছেন যা আপনার প্রক্রিয়াগুলিতে লোড হবে, তবে এটি ASLR এর সাথে কাজ করে না।
মাইক ডিমমিক

সমস্ত ডিএলএল রিবেস করার জন্য কিছু সরঞ্জাম আছে, তাই না? এটি ASLR এর সাথে কী করে তা নিশ্চিত নয় Not
Zan Lynx

4
কোড বিভাগগুলি ভাগ করে নেওয়া ASLR- সক্ষম সিস্টেমগুলিতেও কাজ করে।
জোহানেস

@ মাইকডিমিক তাই ডিএলএল তৈরির ক্ষেত্রে সবাইকে সহযোগিতা করতে হবে, যাতে কোনও দ্বন্দ্ব না হয় তা নিশ্চিত করতে, বা লোডিংয়ের আগে আপনি কি সিস্টেম স্তরে সেগুলি প্যাচ করেন?
ctrl-alt-delor

2

যেমন উত্তরগুলির কিছুতে এমএস-উইন্ডোজের কিছুটা ন্যায়সঙ্গততা রয়েছে বলে মনে হয়

  • “এনটি কার্নেল এবং উইন 32, একই জিনিস নয়। আপনি যদি এনটি কার্নেলের কাছে প্রোগ্রাম করেন তবে এটি এতটা খারাপ নয় "- সত্য, তবে আপনি যদি পজিক্স সাবসিস্টেমটি না লিখে থাকেন তবে কে কে চিন্তা করে না। আপনি win32 লিখতে হবে।
  • “কাঁটাচামচ, প্রসেসক্রিয়েটের সাথে তুলনা করা ঠিক হবে না, কারণ তারা বিভিন্ন কাজ করে, এবং উইন্ডোজের কাঁটাচামচ নেই" - সত্য, তাই আমি লাইকের সাথে তুলনা করব। তবে আমি কাঁটাচামচটিও তুলনা করব, কারণ এতে অনেকগুলি ব্যবহারের ক্ষেত্রে যেমন প্রক্রিয়া বিচ্ছিন্নতা রয়েছে (উদাহরণস্বরূপ ওয়েব ব্রাউজারের প্রতিটি ট্যাব আলাদা প্রক্রিয়াতে চলে)।

এখন আসুন আমরা তথ্যগুলি দেখি, পারফর্মেন্সের মধ্যে পার্থক্য কী?

থেকে ডেটা summerised http://www.bitsnbites.eu/benchmarking-os-primitives/
কারণ পক্ষপাত অনিবার্য, সংক্ষেপণের সময়, আমি বেশিরভাগ পরীক্ষার i7 8 কোর 3.2GHz এর জন্য এমএস-উইন্ডোজ হার্ডওয়্যারের পক্ষে করেছি of
রাস্পবেরি-পাই ব্যতীত Gnu / লিনাক্স চলমান

Gnu / Linux, অ্যাপল-ম্যাক এবং মাইক্রোসফ্টের উইন্ডোজে বিভিন্ন বেসিক অপারেশনগুলির তুলনা (আরও ভাল

এমএস-উইন্ডোজ প্রক্রিয়াটির তুলনা বনাম লিনাক্স তৈরি করে

দ্রষ্টব্য: লিনাক্সে, forkএমএস-উইন্ডোর পছন্দসই পদ্ধতিটি তত দ্রুত CreateThread

প্রক্রিয়া তৈরির প্রকারের ক্রিয়াকলাপগুলির জন্য নম্বর (কারণ চার্টে লিনাক্সের জন্য মানটি পাওয়া শক্ত)।

গতির ক্রম অনুসারে, দ্রুত থেকে ধীরে ধীরে (সংখ্যাগুলি সময়, ছোট আরও ভাল)।

  • লিনাক্স তৈরি করুন 12
  • ম্যাক ক্রিয়েটথ্রেড 15
  • লিনাক্স কাঁটাচামচ 19
  • উইন্ডোজ ক্রিয়েটথ্রেড 25
  • লিনাক্স ক্রিয়েটপ্রসেস (কাঁটাচামচ + এক্সিকিউটিভ) 45
  • ম্যাক ফর্ক 105
  • ম্যাক ক্রিয়েটপ্রসেস (কাঁটাচামচ + এক্সিকিউট) 453
  • রাস্পবেরি-পাই ক্রিয়েটপ্রসেস (কাঁটাচামচ + এক্সিকিউট) 501
  • উইন্ডোজ ক্রিয়েটপ্রসেস 787
  • উইন্ডোজ ক্রিয়েটপ্রসেস সহ ভাইরাস স্ক্যানার 2850
  • উইন্ডোজ ফর্ক (ক্রিয়েটপ্রসেস + ফিক্সআপ সহ সিমুলেট) 2850 এর চেয়ে বেশি গ্রেটার

অন্যান্য পরিমাপের জন্য নম্বর

  • একটি ফাইল তৈরি করা হচ্ছে।
    • লিনাক্স 13
    • ম্যাক 113
    • উইন্ডোজ 225
    • রাস্পবেরি-পাই (ধীর এসডি কার্ড সহ) 241
    • উইন্ডোজ ডিফেন্ডার এবং ভাইরাস স্ক্যানার ইত্যাদি 12950
  • স্মৃতি বরাদ্দ
    • লিনাক্স 79
    • উইন্ডোজ 93
    • ম্যাক 152

1

উইল মেশিনে সম্ভবত কোনও অ্যান্টিভাইরাস সফটওয়্যার ক্রিয়েটপ্রোসেসের সময় কিক্স করবে ... এটাই সম্ভবত সবচেয়ে বড় মন্দা।


4
হ্যাঁ এটি সবচেয়ে বড় তবে একমাত্র উল্লেখযোগ্য ধীরগতি নয়।
ctrl-alt-delor

1

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


4
আমি আরও জটিল সুরক্ষা মডেলটি আরও সুরক্ষিত হওয়ার প্রত্যাশা করব; তবে ঘটনা অন্যথায় প্রদর্শন করে।
মিথ্যা রায়ান


6
@ লাইআরয়ান, সফ্টওয়্যার ডিজাইনে (আমার অভিজ্ঞতা অনুসারে) আরও জটিল খুব কমই বোঝায় এর অর্থ আরও সুরক্ষিত।
উড্রো ডগলাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.