Software fault tolerance
સોફ્ટવેર ફોલ્ટ ટોલરન્સ એ કમ્પ્યુટર સોફ્ટવેરની સિસ્ટમ અથવા હાર્ડવેર ફોલ્ટની હાજરી હોવા છતાં તેની સામાન્ય કામગીરી ચાલુ રાખવાની ક્ષમતા છે. ખામી-સહિષ્ણુ સોફ્ટવેર નિષ્ફળતા હોવા છતાં જરૂરિયાતોને સંતોષવાની ક્ષમતા ધરાવે છે. પરિચય એકમાત્ર વસ્તુ જે સ્થિર છે તે પરિવર્તન છે. લગભગ કોઈ પણ ઘટના કરતાં સોફ્ટવેર સિસ્ટમો માટે આ ચોક્કસપણે વધુ સાચું છે, તમામ સોફ્ટવેર એ જ રીતે બદલાતા નથી તેથી સોફ્ટવેર ફોલ્ટ ટોલરન્સ પદ્ધતિઓ સ્વીકાર્ય પ્રોગ્રામ સ્થિતિ બનાવવા માટે ચલ મૂલ્યોમાં ફેરફાર કરીને અમલની ભૂલોને દૂર કરવા માટે રચાયેલ છે. સોફ્ટવેર ખામીને નિયંત્રિત કરવાની જરૂરિયાત એ આજે સોફ્ટવેર ઉદ્યોગો સામેના સૌથી વધતા પડકારોમાંથી એક છે. સોફ્ટવેર વિકાસના પ્રારંભિક તબક્કામાં ખામી સહનશીલતા એ મુખ્ય વિચારણા હોવી જોઈએ. સોફ્ટવેર ફોલ્ટ ટોલરન્સ માટે વિવિધ પદ્ધતિઓ અસ્તિત્વમાં છે, જેમાંથીઃ રિકવરી બ્લોક એન-વર્ઝન સોફ્ટવેર સેલ્ફ-ચેકિંગ સોફ્ટવેર ઓપરેટિંગ સિસ્ટમ નિષ્ફળતા કમ્પ્યુટર એપ્લિકેશન્સ એપ્લિકેશન પ્રોગ્રામિંગ ઇન્ટરફેસ (API) નો ઉપયોગ કરીને શેર કરેલા સંસાધનો, જેમ કે કીબોર્ડ, માઉસ, સ્ક્રીન, ડિસ્ક ડ્રાઇવ, નેટવર્ક અને પ્રિન્ટરને ઍક્સેસ કરવા માટે કૉલ કરે છે. આ બે રીતે નિષ્ફળ થઈ શકે છે. અવરોધિત કૉલ્સ ખામી અવરોધિત કૉલ્સ અવરોધિત કૉલ એ ઓપરેટિંગ સિસ્ટમની સેવાઓ માટેની વિનંતી છે જે પરિણામો ઉપલબ્ધ ન થાય ત્યાં સુધી કમ્પ્યુટર પ્રોગ્રામને અટકાવે છે. ઉદાહરણ તરીકે, જ્યાં સુધી દૂરસ્થ સર્વરમાંથી પ્રતિસાદ ઉપલબ્ધ ન થાય ત્યાં સુધી TCP કોલ અવરોધિત થાય છે. જ્યારે પણ તમે વેબ બ્રાઉઝર સાથે કોઈ ક્રિયા કરો છો ત્યારે આવું થાય છે. સઘન ગણતરીઓ અવરોધિત API કોલ જેવી જ અસર સાથે લાંબા વિલંબનું કારણ બને છે. અવરોધનું સંચાલન કરવા માટે બે પદ્ધતિઓનો ઉપયોગ થાય છે. થ્રેડ્સ ટાઈમર્સ થ્રેડિંગ દરેક API કોલ માટે અમલના અલગ ક્રમને મંજૂરી આપે છે જે અવરોધિત કરી શકે છે. આ સંસાધનોની રાહ જોતી વખતે એકંદર એપ્લિકેશનને અટકાવવાથી રોકી શકે છે. આનો ફાયદો એ છે કે જ્યારે અન્ય પ્રવૃત્તિઓ થાય છે ત્યારે API કોલની સ્થિતિ વિશેની કોઈ પણ માહિતી ખોવાઈ નથી. થ્રેડેડ ભાષાઓમાં નીચેનાનો સમાવેશ થાય છે. ટાઈમર અવરોધિત કોલને વિક્ષેપિત કરવાની મંજૂરી આપે છે. સામયિક ટાઈમર પ્રોગ્રામરને થ્રેડિંગનું અનુકરણ કરવાની મંજૂરી આપે છે. વિક્ષેપો સામાન્ય રીતે અવરોધિત API કૉલ અથવા સઘન ગણતરીની સ્થિતિ સાથે સંબંધિત કોઈપણ માહિતીને નષ્ટ કરે છે, તેથી પ્રોગ્રામરે આ માહિતીનો અલગથી ટ્રેક રાખવો આવશ્યક છે. બિન-થ્રેડેડ ભાષાઓમાં નીચેનાનો સમાવેશ થાય છે. ભ્રષ્ટ સ્થિતિ ટાઈમર સાથે થશે. આ નીચેના સાથે ટાળવામાં આવે છે. ટ્રેક સોફ્ટવેર સ્થિતિ સેમાફોર બ્લૉકિંગ ફોલ્ટ પોઝિક્સ સુસંગત પ્રણાલીઓમાં સંકેતો દ્વારા પ્રેરિત થાય છે, અને આ સંકેતો API કૉલ્સ, ઓપરેટિંગ સિસ્ટમ અને અન્ય એપ્લિકેશનોમાંથી ઉદ્ભવે છે. કોઈપણ સંકેત કે જેમાં હેન્ડલર કોડ ન હોય તે ફોલ્ટ બની જાય છે જે અકાળ એપ્લિકેશન સમાપ્તિનું કારણ બને છે. હેન્ડલર એ એક કાર્ય છે જે માંગ પર કરવામાં આવે છે જ્યારે એપ્લિકેશન સંકેત મેળવે છે. આને અપવાદ સંચાલન કહેવામાં આવે છે. સમાપ્તિ સંકેત એ એકમાત્ર સંકેત છે જેને નિયંત્રિત કરી શકાતો નથી. અન્ય તમામ સંકેતોને હેન્ડલર કાર્ય તરફ નિર્દેશિત કરી શકાય છે. હેન્ડલર કાર્યો બે વ્યાપક પ્રકારોમાં આવે છે. જ્યારે સોફ્ટવેર શરૂ થાય ત્યારે ઇનિશિયલાઈઝ્ડ ઇન-લાઇન ઇનિશિયલાઈઝ્ડ હેન્ડલર ફંક્શન્સ દરેક સિગ્નલ સાથે જોડવામાં આવે છે. જ્યારે અનુરૂપ સંકેત આવે છે ત્યારે આ હેન્ડલર કાર્યને શરૂ કરવાનું કારણ બને છે. આ તકનીકનો ઉપયોગ થ્રેડિંગનું અનુકરણ કરવા માટે ટાઈમર સાથે થઈ શકે છે. ઇન-લાઇન હેન્ડલર કાર્યો વિશિષ્ટ વાક્યરચનાનો ઉપયોગ કરીને કોલ સાથે સંકળાયેલા છે. સૌથી વધુ પરિચિત સી + + અને જાવા સાથે ઉપયોગમાં લેવાતી નીચેની છે. પ્રયાસ કરો {API _ કૉલ ();} કેચ {સિગ્નલ _ હેન્ડલર _ કોડ;} હાર્ડવેર નિષ્ફળતા સોફ્ટવેર માટે હાર્ડવેર ફોલ્ટ ટોલરન્સ માટે નીચેની બાબતો જરૂરી છે. બેકઅપ રિડન્ડન્સી બેકઅપ એ ઘટનામાં માહિતી જાળવે છે કે હાર્ડવેરને બદલવું આવશ્યક છે. આ બેમાંથી એક રીતે કરી શકાય છે. નિયમિત સમયપત્રક પર સોફ્ટવેર મેન્યુઅલ બેકઅપનો ઉપયોગ કરીને સ્વચાલિત સુનિશ્ચિત બેકઅપ માહિતી પુનઃસ્થાપિત બેકઅપને રિપ્લેસમેન્ટ સિસ્ટમ પર બેકઅપ માહિતી ઉપલબ્ધ કરાવવા માટે માહિતી-પુનઃસ્થાપિત વ્યૂહરચનાની જરૂર છે. પુનઃસ્થાપિત કરવાની પ્રક્રિયા સામાન્ય રીતે સમય માંગી લેતી હોય છે, અને પુનઃસ્થાપિત કરવાની પ્રક્રિયા પૂર્ણ ન થાય ત્યાં સુધી માહિતી ઉપલબ્ધ રહેશે નહીં. રિડન્ડન્સી એક કરતાં વધુ કોમ્પ્યુટર કમ્પ્યુટિંગ ઉપકરણ પર માહિતીની નકલ કરવા પર આધાર રાખે છે જેથી પુનઃપ્રાપ્તિ વિલંબ સંક્ષિપ્ત હોય. આ જીવંત પ્રણાલીમાં સતત બેકઅપનો ઉપયોગ કરીને પ્રાપ્ત કરી શકાય છે જે જરૂર પડે ત્યાં સુધી નિષ્ક્રિય રહે છે (સિંક્રનાઇઝ કરેલ બેકઅપ). આ માહિતીની નકલ કરીને પણ પ્રાપ્ત કરી શકાય છે કારણ કે તે બહુવિધ સમાન સિસ્ટમો પર બનાવવામાં આવે છે, જે પુનઃપ્રાપ્તિ વિલંબને દૂર કરી શકે છે. બિલ્ટ-ઇન સેલ્ફ-ટેસ્ટ બિલ્ટ-ઇન ટેસ્ટ ઇક્વિપમેન્ટ ફોલ્ટ-ટોલરન્ટ ડિઝાઇન ફોલ્ટ-ટોલરન્ટ સિસ્ટમ ફોલ્ટ-ટોલરન્ટ કમ્પ્યુટર સિસ્ટમ ઇમ્યુનિટી-અવેર પ્રોગ્રામિંગ લોજિક બિલ્ટ-ઇન સેલ્ફ-ટેસ્ટ એન-વર્ઝન પ્રોગ્રામિંગ સેફ્ટી એન્જિનિયરિંગ ઓપનએસએએફ-સર્વિસ અવેલેબિલિટી એપીઆઈ સંદર્ભો વધુ વાંચન સોફ્ટવેર ફોલ્ટ ટોલરન્સ, કાર્નેગી મેલોન યુનિવર્સિટી ખાતે ક્રિસ ઇનાસિયો દ્વારા (1998) સોફ્ટવેર ગુણવત્તા સોફ્ટવેર આર્કિટેક્ચર ફોલ્ટ ટોલરન્સ