উইকিপিডিয়া অনুসারে,
ভাগ করা লকগুলিকে মাঝে মাঝে "পঠিত লকস" বলা হয় এবং একচেটিয়া লকগুলিকে কখনও কখনও "লেখার তালা" বলা হয়।
"ভাগ" এবং "এক্সক্লুসিভ" পদগুলির পিছনে যুক্তিটি ব্যাখ্যা করতে পারেন?
উইকিপিডিয়া অনুসারে,
ভাগ করা লকগুলিকে মাঝে মাঝে "পঠিত লকস" বলা হয় এবং একচেটিয়া লকগুলিকে কখনও কখনও "লেখার তালা" বলা হয়।
"ভাগ" এবং "এক্সক্লুসিভ" পদগুলির পিছনে যুক্তিটি ব্যাখ্যা করতে পারেন?
উত্তর:
আমি এই উত্তরটি লিখেছিলাম কারণ আমি ভেবেছিলাম এটি একটি মজাদার (এবং মানানসই) উপমা হবে:
একজন শিক্ষক (লেখক) এবং অনেক শিক্ষার্থী (পাঠক) সমন্বিত একটি শ্রেণিকক্ষে একটি ব্লকবোর্ড (লকযোগ্য) হিসাবে একটি লকযোগ্য বস্তুকে ভাবেন ।
যখন একজন বোর্ড বোর্ডে কিছু (একচেটিয়া লক) লিখছেন:
কেউ এটি পড়তে পারবেন না, কারণ এটি এখনও লেখা হচ্ছে এবং তিনি আপনার ভিউ অবরুদ্ধ করছেন => যদি কোনও বিষয় একচেটিয়াভাবে লক করা থাকে তবে ভাগ করা লকগুলি পাওয়া যায় না ।
অন্য শিক্ষকরা এসে লেখার শুরু করবেন না, বা বোর্ডটি অপঠনযোগ্য হয়ে পড়ে এবং শিক্ষার্থীদের বিভ্রান্ত করে => যদি কোনও বিষয় একচেটিয়াভাবে লক করা থাকে, তবে অন্যান্য স্বতন্ত্র লকগুলি পাওয়া যাবে না ।
যখন শিক্ষার্থীরা বোর্ডে কী রয়েছে তা (ভাগ করা লকগুলি) পড়ছে:
তারা সকলেই এতে কী রয়েছে তা পড়তে পারে, একসাথে => একাধিক ভাগ লক সহ থাকতে পারে ।
শিক্ষক আরও লেখার জন্য বোর্ড সাফ করার আগে তাদের পড়া শেষ করার জন্য অপেক্ষা করছেন => যদি এক বা একাধিক ভাগ ভাগের তালা ইতিমধ্যে বিদ্যমান থাকে তবে একচেটিয়া লকগুলি পাওয়া যায় না ।
lock()
কল পরে প্রথমটি অবিলম্বে এবং সফলভাবে ফিরে আসবে। যেমন আপনি ইতিমধ্যে নিজের মালিকানাধীন কোনও কিছুকে সফলভাবে লক করতে পারবেন।
writer
লকটি পরবর্তী কারা লকটি পায় তা বেছে নেওয়ার পরে (যখন এটি বর্তমান মালিক দ্বারা আনলক করা থাকে) অপেক্ষা করা পাঠকদের চেয়ে অপেক্ষা করা অগ্রাধিকার দেওয়া হয় । এটি নীতি সম্পর্কে ।
এটা বেশ সোজা। পড়ার লকগুলি ভাগ করা লক হিসাবেও পরিচিত কারণ একই সময়ে একাধিক প্রক্রিয়া পড়তে পারে। একটি পঠিত লকের বিন্দু হ'ল অন্য প্রক্রিয়া দ্বারা একটি রাইটিং লক অধিগ্রহণ রোধ করা। বিপরীতে, একটি রাইটিং লক অন্য সমস্ত ক্রিয়াকলাপকে বাধা দেয় যখন একটি রাইটিং অপারেশন সম্পূর্ণ হয় এজন্য এটিকে একচেটিয়া হিসাবে বর্ণনা করা হয়।
সুতরাং একটি পঠিত লক বলছে "আপনি এখন পড়তে পারেন তবে আপনি যদি লিখতে চান তবে আপনাকে অপেক্ষা করতে হবে" অন্যদিকে একটি রাইটিং লক "আপনাকে অপেক্ষা করতে হবে" বলে।
আমি বুঝতে পেরেছি যে আপনি আপনার পড়াশোনার সমর্থনে গবেষণা করছেন তবে আমি বক্তৃতার তাগিদকে প্রতিহত করতে পারি না।
লকিংয়ের অপ্রয়োজনীয় ব্যবহার কর্মক্ষমতা মাথা ব্যথার একটি প্রাথমিক কারণ। লক পড়ার ও লেখার পার্থক্য দেখায় এমন একটি লকিং সিস্টেমের ব্যবহার একটি ভাল শুরু, তবে যত্নবান নকশা কখনও কখনও লক করার প্রয়োজনীয়তা অনেকটা দূর করতে পারে। উদাহরণস্বরূপ, রাষ্ট্রের উপাদান হিসাবে সেশন স্টেটটি কখনই একটি বিশ্বব্যাপী সংগ্রহের মধ্যে অনুষ্ঠিত হওয়া উচিত নয় ।
আমি আসলে এটি সম্পন্ন দেখেছি। এটি একটি নৃশংস নকশা, যার ফলে বক্সিং এবং প্রতিটি শেষ পরিবর্তনের জন্য সেশন স্টেটে পরিবর্তনের জন্য একটি দীর্ঘায়িত রাইট লক লাগিয়ে দেয় causing ওভারহেডগুলি পঙ্গু হয়ে পড়েছিল, কার্যকরভাবে সার্ভারকে একক থ্রেডযুক্ত আচরণে হ্রাস করে।
সমস্ত সেশন রাষ্ট্রকে কেবল কাঠামোয় একত্রিত করা ছিল এক বিশাল উন্নতি। সেশন স্থিতির পরিবর্তনগুলি কেবল একটি সেশনের রাষ্ট্র কাঠামোর সদস্যদের মান পরিবর্তন করে। যেহেতু অন্য কোনও অধিবেশনটিতে কোনও সেশনের স্থিতির সরাসরি উল্লেখ করার সুযোগ বা এমনকি সুযোগ না থাকায় একমাত্র সংগ্রহটি আপডেট করা হচ্ছিল সেটি ছিল সেশনের তালিকা। ফলস্বরূপ, কেবলমাত্র শুরু এবং শেষের দিকে, একটি জলের সময় লক করা সম্পূর্ণ অপ্রয়োজনীয় ছিল এবং থ্রুপুট 3000 এর ফ্যাক্টর দ্বারা বেড়েছে।
অন্যান্য সাধারণ লকিং দৃশ্যটি হ'ল ব্যবহারকারীর অ্যাপ্লিকেশনটির থ্রেডের মধ্যে ভাগ করা সংস্থান। বেশিরভাগ আধুনিক ফ্রেমওয়ার্কগুলি এটি লকগুলির চেয়ে বার্তা ব্যবহার করে সম্বোধন করে; আপনি যখন "ইউআই থ্রেডে রূপান্তর" করবেন তখন আপনি আসলে কোনও ফাংশন পয়েন্টার এবং কিছু পরামিতি (বা একটি প্রতিনিধি এবং প্রয়োগের উপর নির্ভর করে একটি স্ট্যাক ফ্রেম) সহ একটি বার্তা সন্ধান করছেন।
একটি এক্সক্লুসিভ বা রাইট লক কোনও প্রক্রিয়াটিকে ফাইলের নির্দিষ্ট অংশে লেখার জন্য একচেটিয়া অ্যাক্সেস দেয়। লেখার লক থাকা অবস্থায়, অন্য কোনও প্রক্রিয়া ফাইলের সেই অংশটি লক করতে পারে না।
একটি ভাগ করা বা পঠিত লকটি ফাইলের নির্দিষ্ট অংশে লিখিত লকের অনুরোধ করা অন্য কোনও প্রক্রিয়া নিষিদ্ধ করে। তবে, অন্যান্য প্রক্রিয়াগুলি পড়ার তালার জন্য অনুরোধ করতে পারে।
তার উপর আরও: http://www.gnu.org/software/libc/manual/html_node/File-Lock.html
মূলত ডাটাবেস পাশ একই। ওরাকল ডকুমেন্টেশন অনুযায়ী
এক্সক্লুসিভ লক মোড সম্পর্কিত সম্পদগুলি ভাগ করা থেকে বাধা দেয়। এই লক মোডটি ডেটা পরিবর্তন করতে প্রাপ্ত। একচেটিয়াভাবে কোনও সংস্থান লক করার প্রথম লেনদেন হ'ল একমাত্র লেনদেন যা এক্সক্লুসিভ লকটি প্রকাশ না হওয়া পর্যন্ত সংস্থানটিকে পরিবর্তন করতে পারে।
ভাগ লক মোড জড়িত ক্রিয়াকলাপগুলির উপর নির্ভর করে সংশ্লিষ্ট সংস্থানটি ভাগ করার অনুমতি দেয়। একাধিক ব্যবহারকারী ডেটা পড়ছেন এমন ডেটা ভাগ করতে পারে, কোনও লেখকের একযোগে অ্যাক্সেস রোধ করার জন্য শেয়ার লক ধরে রাখে (যাদের একচেটিয়া লকের প্রয়োজন হয়)। বেশ কয়েকটি লেনদেন
একই সংস্থানটিতে শেয়ার লকগুলি অর্জন করতে পারে ।