Software fault tolerance
সফ্টওয়্যার ফল্ট সহনশীলতা হল কম্পিউটার সফ্টওয়্যারের সিস্টেম বা হার্ডওয়্যার ত্রুটির উপস্থিতি সত্ত্বেও তার স্বাভাবিক ক্রিয়াকলাপ চালিয়ে যাওয়ার ক্ষমতা। ত্রুটি-সহনশীল সফ্টওয়্যারের ব্যর্থতা সত্ত্বেও প্রয়োজনীয়তা পূরণ করার ক্ষমতা রয়েছে। ভূমিকা একমাত্র ধ্রুবক জিনিস হল পরিবর্তন। এটি অবশ্যই প্রায় যে কোনও ঘটনার তুলনায় সফ্টওয়্যার সিস্টেমের ক্ষেত্রে বেশি সত্য, সমস্ত সফ্টওয়্যার একইভাবে পরিবর্তিত হয় না তাই সফ্টওয়্যার ফল্ট সহনশীলতা পদ্ধতিগুলি একটি গ্রহণযোগ্য প্রোগ্রাম অবস্থা তৈরি করতে পরিবর্তনশীল মানগুলি সংশোধন করে কার্যকর করার ত্রুটিগুলি কাটিয়ে ওঠার জন্য ডিজাইন করা হয়েছে। সফ্টওয়্যার ত্রুটি নিয়ন্ত্রণের প্রয়োজনীয়তা আজ সফ্টওয়্যার শিল্পের মুখোমুখি সবচেয়ে ক্রমবর্ধমান চ্যালেঞ্জগুলির মধ্যে একটি। সফ্টওয়্যার বিকাশের প্রাথমিক পর্যায়ে ত্রুটি সহনশীলতা অবশ্যই একটি মূল বিবেচনা হতে হবে। সফ্টওয়্যার ফল্ট সহনশীলতার জন্য বিভিন্ন প্রক্রিয়া রয়েছে, যার মধ্যে রয়েছেঃ রিকভারি ব্লক এন-সংস্করণ সফ্টওয়্যার সেলফ-চেকিং সফ্টওয়্যার অপারেটিং সিস্টেম ব্যর্থতা কম্পিউটার অ্যাপ্লিকেশনগুলি কীবোর্ড, মাউস, স্ক্রিন, ডিস্ক ড্রাইভ, নেটওয়ার্ক এবং প্রিন্টারের মতো ভাগ করা সংস্থানগুলি অ্যাক্সেস করতে অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) ব্যবহার করে একটি কল করে। এগুলি দুটি উপায়ে ব্যর্থ হতে পারে। অবরুদ্ধ কল ত্রুটি অবরুদ্ধ কল একটি অবরুদ্ধ কল হল অপারেটিং সিস্টেমের পরিষেবাগুলির জন্য একটি অনুরোধ যা ফলাফল না পাওয়া পর্যন্ত কম্পিউটার প্রোগ্রামটি বন্ধ করে দেয়। উদাহরণস্বরূপ, টিসিপি কল ব্লক করে যতক্ষণ না কোনও দূরবর্তী সার্ভার থেকে কোনও প্রতিক্রিয়া পাওয়া যায়। প্রতিবার আপনি যখন কোনও ওয়েব ব্রাউজারের সাথে কোনও কাজ করেন তখন এটি ঘটে। নিবিড় গণনাগুলি একটি অবরুদ্ধ এপিআই কলের মতো একই প্রভাব সহ দীর্ঘ বিলম্ব ঘটায়। ব্লকিং পরিচালনা করার জন্য দুটি পদ্ধতি ব্যবহার করা হয়। থ্রেড টাইমার থ্রেডিং প্রতিটি এপিআই কলের জন্য কার্যকর করার একটি পৃথক ক্রমের অনুমতি দেয় যা ব্লক করতে পারে। এটি কোনও সংস্থানের জন্য অপেক্ষা করার সময় সামগ্রিক অ্যাপ্লিকেশনটিকে স্থগিত হওয়া থেকে বিরত করতে পারে। এর সুবিধা হল যে অন্যান্য ক্রিয়াকলাপ চলাকালীন এপিআই কলের অবস্থা সম্পর্কে কোনও তথ্যই হারিয়ে যায় না। থ্রেডেড ভাষাগুলির মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে। টাইমাররা একটি অবরুদ্ধ কলকে বিঘ্নিত করার অনুমতি দেয়। একটি পর্যায়ক্রমিক টাইমার প্রোগ্রামারকে থ্রেডিং অনুকরণ করার অনুমতি দেয়। বাধা সাধারণত একটি অবরুদ্ধ এপিআই কল বা নিবিড় গণনার অবস্থা সম্পর্কিত যে কোনও তথ্য ধ্বংস করে দেয়, তাই প্রোগ্রামারকে অবশ্যই এই তথ্যের আলাদাভাবে নজর রাখতে হবে। অ-থ্রেডেড ভাষাগুলির মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত রয়েছে। টাইমারগুলির সাথে দুর্নীতিগ্রস্ত অবস্থা ঘটবে। নিম্নলিখিতগুলি দিয়ে এটি এড়ানো হয়। ট্র্যাক সফ্টওয়্যার অবস্থা সেমাফোর ব্লকিং ফল্ট পি. ও. এস. আই. এক্স অনুবর্তী সিস্টেমে সংকেত দ্বারা প্ররোচিত হয় এবং এই সংকেতগুলি এপিআই কল থেকে, অপারেটিং সিস্টেম থেকে এবং অন্যান্য অ্যাপ্লিকেশন থেকে উদ্ভূত হয়। যে কোনও সংকেত যার হ্যান্ডলার কোড নেই তা একটি ত্রুটিতে পরিণত হয় যা অকাল প্রয়োগ সমাপ্তির কারণ হয়। হ্যান্ডলার এমন একটি ফাংশন যা যখন অ্যাপ্লিকেশনটি একটি সংকেত পায় তখন চাহিদা অনুযায়ী সঞ্চালিত হয়। একে বলা হয় এক্সসেপশন হ্যান্ডলিং। সমাপ্তি সংকেত হল একমাত্র সংকেত যা পরিচালনা করা যায় না। অন্যান্য সমস্ত সংকেত একটি হ্যান্ডলার ফাংশনে পরিচালিত হতে পারে। হ্যান্ডলার ফাংশন দুটি বিস্তৃত জাতের হয়। ইনিশিয়ালাইজড ইন-লাইন ইনিশিয়ালাইজড হ্যান্ডলার ফাংশনগুলি সফ্টওয়্যার শুরু হওয়ার সময় প্রতিটি সিগন্যালের সাথে যুক্ত করা হয়। এর ফলে সংশ্লিষ্ট সংকেত আসার সাথে সাথে হ্যান্ডলার ফাংশনটি শুরু হয়। এই কৌশলটি থ্রেডিং অনুকরণ করতে টাইমারগুলির সাথে ব্যবহার করা যেতে পারে। ইন-লাইন হ্যান্ডলার ফাংশনগুলি বিশেষ সিনট্যাক্স ব্যবহার করে একটি কলের সাথে যুক্ত। সবচেয়ে পরিচিত হল সি + + এবং জাভার সাথে ব্যবহৃত নিম্নলিখিতগুলি। চেষ্টা করুন {এপিআই _ কল ();} ক্যাচ {সিগন্যাল _ হ্যান্ডলার _ কোড;} হার্ডওয়্যার ব্যর্থতা সফ্টওয়্যারের জন্য হার্ডওয়্যার ফল্ট সহনশীলতার জন্য নিম্নলিখিতগুলি প্রয়োজন। ব্যাকআপ রিডান্ডেন্সি ব্যাকআপ হার্ডওয়্যার প্রতিস্থাপনের ক্ষেত্রে তথ্য বজায় রাখে। এটি দুটি উপায়ে করা যেতে পারে। একটি নিয়মিত সময়সূচীতে সফ্টওয়্যার ম্যানুয়াল ব্যাকআপ ব্যবহার করে স্বয়ংক্রিয়ভাবে নির্ধারিত ব্যাকআপ তথ্য পুনরুদ্ধার ব্যাকআপের জন্য একটি প্রতিস্থাপন সিস্টেমে ব্যাকআপ তথ্য উপলব্ধ করার জন্য একটি তথ্য-পুনরুদ্ধার কৌশল প্রয়োজন। পুনরুদ্ধার প্রক্রিয়াটি সাধারণত সময়সাপেক্ষ এবং পুনরুদ্ধার প্রক্রিয়াটি সম্পূর্ণ না হওয়া পর্যন্ত তথ্য উপলব্ধ থাকবে না। রিডান্ডেন্সি একাধিক কম্পিউটার কম্পিউটিং ডিভাইসে তথ্য প্রতিলিপির উপর নির্ভর করে যাতে পুনরুদ্ধারের বিলম্ব সংক্ষিপ্ত হয়। এটি একটি লাইভ সিস্টেমে অবিচ্ছিন্ন ব্যাকআপ ব্যবহার করে অর্জন করা যেতে পারে যা প্রয়োজন না হওয়া পর্যন্ত নিষ্ক্রিয় থাকে (সিঙ্ক্রোনাইজড ব্যাকআপ)। এটি তথ্যের প্রতিলিপি তৈরি করেও অর্জন করা যেতে পারে কারণ এটি একাধিক অভিন্ন সিস্টেমে তৈরি করা হয়েছে, যা পুনরুদ্ধারের বিলম্বকে দূর করতে পারে। আরও দেখুন অন্তর্নির্মিত স্ব-পরীক্ষার সরঞ্জাম ত্রুটি-সহনশীল নকশা ত্রুটি-সহনশীল সিস্টেম ত্রুটি-সহনশীল কম্পিউটার সিস্টেম ইমিউনিটি-সচেতন প্রোগ্রামিং লজিক অন্তর্নির্মিত স্ব-পরীক্ষা এন-সংস্করণ প্রোগ্রামিং নিরাপত্তা প্রকৌশল ওপেনএসএএফ-পরিষেবা প্রাপ্যতা এপিআই রেফারেন্স আরও পড়া সফ্টওয়্যার ত্রুটি সহনশীলতা, কার্নেগি মেলন বিশ্ববিদ্যালয়ের ক্রিস ইনাসিও দ্বারা (1998) সফ্টওয়্যার মানের সফ্টওয়্যার স্থাপত্য ত্রুটি সহনশীলতা