স্লো সিস্টেম কল এবং দ্রুত সিস্টেম কলগুলির মধ্যে পার্থক্য


13

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

উত্তর:


20

সিস্টেম কলগুলিতে আসলে তিনটি গ্রেডেশন রয়েছে।

  1. কিছু সিস্টেম কল তত্ক্ষণাত্ ফিরে আসে। "তাত্ক্ষণিকভাবে" এর অর্থ হল যে কেবলমাত্র তাদের প্রয়োজন কেবল সামান্য প্রসেসরের সময়। তারা কতক্ষণ নিতে পারে তার কোনও সীমাবদ্ধতা নেই ( রিয়েল-টাইম সিস্টেমগুলি ব্যতীত ), তবে এই কলগুলি যথেষ্ট পরিমাণের জন্য নির্ধারিত হওয়ার সাথে সাথেই ফিরে আসবে।
    এই কলগুলি সাধারণত নন-ব্লকিং বলে । অ ব্লক কল উদাহরণ কল, যেমন যে শুধু সিস্টেম রাষ্ট্র একটি বিট পড়া, বা সিস্টেম অবস্থায় একটি সহজ পরিবর্তন করতে হয় getpid, gettimeofday, getuidবা setuid। কিছু সিস্টেম কলগুলি পরিস্থিতি অনুসারে অবরুদ্ধ বা অবরুদ্ধ হতে পারে; উদাহরণস্বরূপ readফাইলটি কখনই ব্লক করে না যদি ফাইলটি কোনও পাইপ বা অন্য ধরণের যা অ-ব্লকিং রিডগুলিকে সমর্থন করে এবং O_NONBLOCKপতাকাটি সেট করা থাকে।
  2. কয়েকটি সিস্টেম কলগুলি সম্পূর্ণ হতে কিছুটা সময় নিতে পারে তবে চিরকালের জন্য নয়। একটি সাধারণ উদাহরণ হল sleep
  3. কিছু বাহ্যিক ইভেন্ট না হওয়া পর্যন্ত কিছু সিস্টেম কল ফিরে আসবে না। এই কলগুলি অবরুদ্ধ বলে জানা গেছে । উদাহরণস্বরূপ, readএকটি ব্লক করা ফাইলের ডেস্ক্রিপ্টারে কল করা ব্লক করা হয়, এবং তাই wait

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

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


একটি মহান ধন্যবাদ! তবে ফাইলটি যদি পাইপ হয় তবে ফাইলটি পড়া কি অ-ব্লক করা হচ্ছে? দেখুন যে www2.hawaii.edu/~esb/2007spring.ics612/apr10.html
কেকে

এটি "ধীর
পঠন

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

আপনি বোঝাতে চেয়েছেন যে এটি O_NONBLOCK পতাকার উপর নির্ভর করে!
কেকে

3

একটি ধীর গতির সিস্টেম কল টিসিপি সকেটের মতো পড়ার মতো কিছু () - আপনার যদি O_ASYNC (বা যাই হোক না কেন) সেট না থাকে তবে এটি চিরকাল অপেক্ষা করতে পারে।

একটি দ্রুত সিস্টেম কল হ'ল gettimeofday () বা getpid () এর মতো কিছু, উভয়ই কার্নেলের সাথে সাথে উপলব্ধ প্রক্রিয়াটিতে তথ্য ফেরত দেয়।

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

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

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