একটি দেখার পরও কি গুচ্ছ এর অন্যান্য প্রশ্ন এবং তাদের উত্তর , আমি এইরকম যে পেতে কি সি "উদ্বায়ী" KEYWORD মানে ঠিক কোন ব্যাপক চুক্তি নেই।
এমনকি স্ট্যান্ডার্ডটিও এর অর্থ বলতে সম্মত হওয়ার জন্য সবার পক্ষে যথেষ্ট স্পষ্ট বলে মনে হচ্ছে না ।
অন্যান্য সমস্যার মধ্যে:
- এটি আপনার হার্ডওয়্যার এবং আপনার সংকলকের উপর নির্ভর করে বিভিন্ন গ্যারান্টি সরবরাহ করে বলে মনে হচ্ছে।
- এটি কম্পাইলার অপ্টিমাইজেশানগুলিকে প্রভাবিত করে তবে হার্ডওয়্যার অপ্টিমাইজেশানকে প্রভাবিত করে না, তাই এমন একটি উন্নত প্রসেসরের উপর যা নিজের রান-টাইম অপ্টিমাইজেশানগুলি করে, এটিও পরিষ্কার নয় যে আপনি যে অপটিমাইজেশনটি প্রতিরোধ করতে চান সংকলকটি এটি আটকাতে পারে কিনা । (কিছু সংকলক কিছু সিস্টেমে কিছু হার্ডওয়্যার অপ্টিমাইজেশন প্রতিরোধের জন্য নির্দেশনা উত্পন্ন করে তবে এটি কোনওভাবেই মানসম্পন্ন বলে মনে হয় না))
সমস্যার সংক্ষিপ্তসার হিসাবে, এটি উপস্থিত হয় (অনেকগুলি পড়ার পরে) যা "উদ্বায়ী" এর মতো কিছুটির গ্যারান্টি দেয়: মানটি কেবল একটি রেজিস্টার / থেকে নয়, তবে কমপক্ষে মূলটির এল 1 ক্যাশে একই পংক্তিতে পাঠ করা / লেখা হবে that পাঠ্য / লেখার কোড উপস্থিত। তবে এটি অকেজো বলে মনে হচ্ছে, যেহেতু একটি রেজিস্টার থেকে / লিখতে পড়া ইতিমধ্যে একই থ্রেডের মধ্যে যথেষ্ট, যখন এল 1 ক্যাশের সাথে সমন্বয় করা অন্য থ্রেডের সাথে সমন্বয় সম্পর্কিত আরও কিছু গ্যারান্টি দেয় না। আমি কখনই ঠিক L1 ক্যাশে সিঙ্ক করা গুরুত্বপূর্ণ হতে পারি তা ভাবতে পারি না।
ব্যবহার 1
কেবলমাত্র অবিচ্ছিন্নর ব্যবহারের জন্য একমত-ভিত্তিক ব্যবহার পুরানো বা এম্বেড হওয়া সিস্টেমের জন্য মনে হয় যেখানে নির্দিষ্ট মেমরির অবস্থানগুলি I / O ফাংশনে হার্ডওয়্যার-ম্যাপ করা হয়, মেমরির কিছুটা মত যা (সরাসরি, হার্ডওয়্যারে) একটি আলো নিয়ন্ত্রণ করে , বা মেমরির কিছুটা যা আপনাকে জানায় যে কোনও কীবোর্ড কীটি নিচে রয়েছে কিনা (কারণ এটি হার্ডওয়্যার দ্বারা সরাসরি কী এর সাথে সংযুক্ত রয়েছে)।
দেখে মনে হচ্ছে যে "ব্যবহার 1" পোর্টেবল কোডে ঘটে না যার লক্ষ্যবস্তুতে মাল্টি-কোর সিস্টেম অন্তর্ভুক্ত রয়েছে।
ব্যবহার 2
"ব্যবহার 1" থেকে খুব বেশি আলাদা নয় এমন মেমরি যা কোনও বাধা হ্যান্ডলার (যে কোনও চাবি থেকে কোনও আলো বা স্টোরের তথ্য নিয়ন্ত্রণ করতে পারে) দ্বারা যে কোনও সময় পড়া বা লেখা যেতে পারে। তবে ইতিমধ্যে এর জন্য আমাদের সমস্যা রয়েছে যে সিস্টেমের উপর নির্ভর করে বাধা হ্যান্ডলারটি তার নিজস্ব মেমরি ক্যাশে সহ একটি পৃথক কোরে চলতে পারে এবং "অস্থির" সমস্ত সিস্টেমে ক্যাশে সংহতির গ্যারান্টি দেয় না।
সুতরাং "ব্যবহার 2" মনে হচ্ছে "উদ্বায়ী" কী সরবরাহ করতে পারে তার বাইরে।
ব্যবহার 3
আমি দেখতে পাই কেবলমাত্র অন্যান্য বিতর্কিত ব্যবহার হ'ল বিভিন্ন ভেরিয়েবলের মাধ্যমে অ্যাক্সেসগুলির ভুল-অনুকূলতা রোধ করা একই মেমরিটিকে নির্দেশ করে যা সংকলকটি বুঝতে পারে না একই মেমরি। তবে এটি সম্ভবত কেবলমাত্র বিতর্কিত কারণ লোকেরা এটি সম্পর্কে কথা বলছে না - আমি কেবল এটির একটি উল্লেখ দেখেছি। এবং আমি ভেবেছিলাম সি স্ট্যান্ডার্ডটি ইতিমধ্যে স্বীকৃতি পেয়েছে যে "ভিন্ন" পয়েন্টারগুলি (কোনও ফাংশনে বিভিন্ন আর্গগুলির মতো) একই আইটেম বা কাছের আইটেমগুলিতে নির্দেশ করতে পারে এবং ইতিমধ্যে নির্দিষ্ট করে দিয়েছে যে সংকলককে অবশ্যই এমন কোড তৈরি করতে হবে যা এমনকি এ জাতীয় ক্ষেত্রেও কাজ করে। যাইহোক, আমি এই বিষয়টি সর্বশেষতম (500 পৃষ্ঠা!) স্ট্যান্ডার্ডে খুঁজে পাইনি।
সুতরাং "3 ব্যবহার" সম্ভবত অস্তিত্ব নেই ?
সুতরাং আমার প্রশ্ন:
মাল্টি-কোর সিস্টেমগুলির জন্য পোর্টেবল সি কোডটিতে "অস্থির" কোনও কিছুর নিশ্চয়তা দেয় না?
সম্পাদনা - আপডেট
সর্বশেষ মানটি ব্রাউজ করার পরে , দেখে মনে হচ্ছে উত্তরটি কমপক্ষে খুব সীমাবদ্ধ হ্যাঁ:
১. স্ট্যান্ডার্ডটি বার বার নির্দিষ্ট ধরনের "উদ্বায়ী সিগ_আটমিক_টি" জন্য বিশেষ চিকিত্সা নির্দিষ্ট করে। তবে মানকটি আরও বলেছে যে মাল্টি-থ্রেড প্রোগ্রামে সিগন্যাল ফাংশনটি ব্যবহারের ফলে অনির্ধারিত আচরণের ফলাফল হয়। সুতরাং এই ব্যবহারের ক্ষেত্রে একক থ্রেডেড প্রোগ্রাম এবং এর সংকেত হ্যান্ডলারের মধ্যে যোগাযোগ সীমাবদ্ধ বলে মনে হয়।
২. মানক সেটজ্যাম্প / লংজ্যাম্পের ক্ষেত্রে "অস্থির" জন্য একটি স্পষ্ট অর্থ নির্দিষ্ট করে। (উদাহরণ কোড যেখানে এটা গুরুত্বপূর্ণ অন্যান্য দেওয়া হয় প্রশ্ন এবং উত্তর ।)
সুতরাং আরও সুনির্দিষ্ট প্রশ্নটি হয়ে ওঠে:
"অস্থির" মাল্টি-কোর সিস্টেমগুলির জন্য পোর্টেবল সি কোডে কোনও কিছুর গ্যারান্টি দেয় না (1) একক থ্রেডেড প্রোগ্রামকে তার সিগন্যাল হ্যান্ডলারের কাছ থেকে তথ্য গ্রহণের অনুমতি দেয়, বা (2) সেটজ্যাম্পের অনুমতি দেয় সেটজ্যাম্প এবং লংজ্যাম্পের মধ্যে সংশোধিত ভেরিয়েবলগুলি দেখতে কোডটি?
এটি এখনও হ্যাঁ / কোনও প্রশ্ন নয়।
যদি "হ্যাঁ" হয় তবে এটি দুর্দান্ত হবে যদি আপনি বাগ-মুক্ত পোর্টেবল কোডের একটি উদাহরণ দেখাতে পারেন যা "অস্থির" বাদ দেওয়া হয় তবে বগি হয়ে যায়। যদি "না" হয় তবে আমি মনে করি যে একটি সংকলক বহু-মূল লক্ষ্যগুলির জন্য এই দুটি খুব নির্দিষ্ট ক্ষেত্রে বাইরে "উদ্বায়ী" উপেক্ষা করতে পারে free
volatile
বিশেষত, যা আমি বিশ্বাস করি যে এটি প্রয়োজনীয়।
volatile
প্রোগ্রামটি অবহিত করা দরকার যে এটি অ্যাসক্রোনাক্রমে পরিবর্তিত হতে পারে।