বাস্তব সময়ের অগ্রাধিকার সহ চলমান প্রক্রিয়াগুলির নেতিবাচক?


9

রিয়েল-টাইম অগ্রাধিকার ( chrt -f 99) সহ চলমান প্রক্রিয়াগুলির কোনও ডাউনসাইড রয়েছে ?

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

(কার্নেল: 2.6.16 / 3.0)


2
এটি আপনার জন্য সহায়ক বলে মনে হচ্ছে: জাভার জন্য জিটার কীভাবে হ্রাস করবেন?
ire_and_curses

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

উত্তর:


4

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

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

দ্য sched_setscheduler(2)Man পৃষ্ঠা ভাল উপদেশ রয়েছে:

যেহেতু SCHED_FIFO বা SCHED_RR এর অধীন নির্ধারিত কোনও প্রক্রিয়াতে একটি অবরুদ্ধ অসীম লুপ চিরকাল নিম্ন অগ্রাধিকার সহ সমস্ত প্রক্রিয়াটিকে অবরুদ্ধ করে দেবে, তাই কোনও সফ্টওয়্যার বিকাশকারীকে সর্বদা পরীক্ষিত অ্যাপ্লিকেশনটির চেয়ে উচ্চতর স্থিতিশীল অগ্রাধিকারের অধীনে নির্ধারিত শেল কনসোলটিতে উপস্থিত থাকা উচিত। এটি পরীক্ষিত রিয়েল-টাইম অ্যাপ্লিকেশনগুলির জরুরী হত্যার অনুমতি দেবে যা প্রত্যাশা অনুযায়ী অবরুদ্ধ বা অবসান হয় না। Getrlimit (2) এ RLIMIT_RTTIME রিসোর্স সীমাটির বর্ণনাও দেখুন।

এটি কনসোলে একটি শেল হওয়া উচিত - কোনও এক্সটার্মের অধীনে নয়, যদি না আপনি সমস্ত এক্স রিয়েলটাইমকেও অগ্রাধিকার দিতে চান।


হ্যাঁ - এটিই মূল সমস্যা যার মুখোমুখি হলাম। উচ্চতর অগ্রাধিকার থাকা সমস্ত প্রক্রিয়াগুলি নির্ধারণের জন্য কার্নেল কোডের মাধ্যমে পাঠের সংক্ষিপ্তসার হ'ল একমাত্র বিকল্প হ'ল আমার প্রক্রিয়া থেকে অন্য সকলকে অনাহারে রেখে দেওয়া এবং তারপরে আইওর যে কোনও রূপের জন্য অন্য কোরে সরানো দরকার এমন কোনও কিছু ... hmmm। ..
নিম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.