Kontentke ótiw

Programmalıq támiynattıń qátelerge shıdamlıǵı

Wikipedia — erkin enciklopediya

Programmalıq támiynattıń qátelerge shıdamlıǵı ‒ bul kompyuter programmalıq támiynatınıń sistema yamasa apparatlıq támiynatta qáteler bolǵan jaǵdayda da óziniń normal jumısın dawam ettiriw uqıplılıǵı. Qátelerge shıdamlı programmalıq támiynat qátelerge qaramastan talaplardı qanaatlandırıw uqıplılıǵına iye[1][2].

Sistemanı kóbirek qátelerge shıdamlı etiw ushın tómendegi dizayn úlgileri birge qollanılıwı kerek: qaytalaw, artqa qaytıw, waqıt sheklewi, elektr shınjırı úzgishi hám bólim úlgisi[3][4].

Sistemańızdı kóbirek qátelerge shıdamlı etiw ushın, siz 99-procentli keshigiwdi ólshewińiz hám qalǵan 1% ti (yaǵnıy sońǵı keshigiwlerin) óz-ózin saqlaw mexanizmleri arqalı baqlawda uslawıńız kerek[5].

Kirisiw

Eń turaqlı nárse - bul ózgeris. Bul sózsiz programmalıq támiynat sistemalarına basqa qubılıslarǵa qaraǵanda kóbirek tuwrı keledi, biraq barlıq programmalıq támiynatlar birdey jol menen ózgermeydi, sonlıqtan programmalıq támiynattıń qátelerge shıdamlılıq usılları ózgeriwshi mánislerdi ózgertiw arqalı orınlanıw qátelerin jeńip ótiw ushın dúzilgen, usılayınsha qabıl etiwge bolatuǵın programma halatın jaratadı. Programmalıq támiynat qátelerin baqlaw zárúrligi búgingi kúnde programmalıq támiynat sanaatında eń tez ósip atırǵan mashqalalardıń biri bolıp tabıladı. Qátelerge shıdamlılıq programmalıq támiynattı islep shıǵıwdıń dáslepki basqıshında tiykarǵı itibar beriliwi kerek bolǵan másele bolıwı kerek.

Programmalıq támiynattıń qátelerge shıdamlılıǵı ushın hár qıylı mexanizmler bar, olardıń arasında:

  • Qayta tiklew blokları
  • N-versiyalı programmalıq támiynat
  • Óz-ózin tekseriwshi programmalıq támiynat

Operaciyalıq sistemanıń buzılıwı

Kompyuter qosımshaları klaviatura, tıshqansha, ekran, diskli qurılma, tarmaq hám printer sıyaqlı ortaq resurslarǵa kiriw ushın qosımsha programmalastırıw interfeysi (API) arqalı soraw jiberedi. Olar eki jol menen irkiliske ushırawı múmkin.

  • Bloklanǵan sorawlar
  • Qáteler

Bloklanǵan (tosqınlı) soraw - bul operaciyalıq sistemadan nátiyjeler alınǵansha kompyuter programmasın toqtatatuǵın xızmetler sorawı.

Mısal retinde, TCP sorawı uzaqtaǵı serverden juwap alınǵansha tosqınlıqqa ushıraydı. Bul veb-brauzer menen háreket etkenińizde júz beredi. Intensiv esaplawlar da tosqınlı API sorawı menen birdey nátiyjege alıp keletuǵın uzaq keshigiwlerge sebep boladı.

Tosqınlıqtı basqarıw ushın eki usıl qollanıladı.

  • Aǵımlar
  • Taymerler

Aǵımlar hárbir tosqınlıqqa ushırawı múmkin bolǵan API sorawı ushın ayrıqsha orınlanıw izbe-izligin támiyinleydi. Bul ulıwma qosımshanıń resurs kútiw barısında toqtap qalıwınıń aldın alıwı múmkin. Bunıń artıqmashlıǵı - basqa háreketler orın alıp atırǵan waqıtta API sorawınıń jaǵdayı haqqındaǵı hesh qanday informaciya joǵalmaydı.

Aǵımlardı qollaytuǵın tillerge tómendegiler kiredi:

Ada Afnix C++ C# CILK Eiffel Erlang
Java Lisp Magenta Modula 3 Napier 88 Oz Presto
pSather Perl 5.8.7+ PHP Python R Ruby Smalltalk
Tcl/Tk V Unicon Ballerina D

Taymerler bloklanǵan shaqırıwdıń úziliwine múmkinshilik beredi. Periodlı taymer baǵdarlamashıǵa aǵımlardı eliklewge múmkinshilik beredi. Úzilisler ádette bloklanǵan API shaqırıwı yamasa intensiv esaplawdıń halatına baylanıslı hár qanday informaciyanı joq qıladı, sonlıqtan baǵdarlamashı bul informaciyanı bólek esapqa alıwı kerek.

Aǵımsız tillerge tómendegiler kiredi:

Bash Javascript SQL Visual Basic

Taymerler menen buzılǵan jaǵday júz beredi. Onı tómendegiler arqalı boldırmawǵa boladı:

  • Programmalıq támiynat jaǵdayın qadaǵalaw
  • Semafor
  • Bloklaw

Qáteler

Qáteler POSIX úylesimli sistemalarda signallar arqalı payda boladı, hám bul signallar API shaqırıwlarınan, operaciyalıq sistemadan hám basqa qosımshalardan kelip shıǵadı.

Qánday da bir qayta islewshi kodı bolmaǵan hár qanday signal qosımshanıń mezgilsiz toqtawına alıp keletuǵın qátege aylanadı.

Qayta islewshi - bul qosımsha signal alǵanda talap boyınsha orınlanatuǵın funkciya. Bul qáte islew dep ataladı.

Toqtatıw signalı - bul qayta islew múmkin bolmaǵan jalǵız signal. Barlıq basqa signallar qayta islewshi funkciyaǵa baǵdarlanıwı múmkin.

Qayta islewshi funkciyalar eki keń túrge bólinedi:

  • Inicializaciyalanǵan
  • Qatar ishindegi

Inicializaciyalanǵan qayta islewshi funkciyalar programmalıq támiynat iske túskende hárbir signal menen juplasadı. Bul sáykes signal kelgende qayta islewshi funkciyanıń iske túsiwine alıp keledi. Bul usıl taymerler menen birge aǵımdı eliklew ushın qollanılıwı múmkin.

Qatar ishindegi qayta islewshi funkciyalar arnawlı sintaksis paydalanıp shaqırıw menen baylanıstırıladı. Eń tanıs bolǵanı - C++ hám Java menen qollanılatuǵın tómendegisi:

try
{
API_call();
}
catch
{
signal_handler_code;
}

Apparatlıq támiynattıń buzılıwı

Programmalıq támiynat ushın apparatlıq támiynattıń qátelikke shıdamlılıq tómendegilerdi talap etedi:

  • Rezerv kóshiriw
  • Artıqmashılıq

Rezerv kóshiriw apparatlıq támiynattı almastırıw kerek bolǵan jaǵdayda informaciyanı saqlaydı. Bul eki usıldıń biri menen islenedi:

  • Programmalıq támiynat arqalı avtomatik jobalastırılǵan rezerv kóshiriw
  • Belgili bir keste boyınsha qoldan rezerv kóshiriw
  • Informaciyanı qayta tiklew

Rezerv kóshiriw, rezerv informaciyanı almastırıw sistemasında qolaylı etiw ushın informaciyanı qayta tiklew strategiyasın talap etedi. Qayta tiklew processi ádette kóp waqıt aladı, hám qayta tiklew processi tamamlanǵansha informaciya qoljetimsiz boladı.

Artıqmashılıq, qayta tiklew keshigiwi qısqa bolıwı ushın informaciyanı birden kóp kompyuter esaplaw qurılmasında kóbeytiwge tiykarlanǵan. Oǵan kerek bolǵansha belsendi emes turǵan tiri sistemaǵa úziliksiz rezerv kóshiriw arqalı erisiwge boladı (sinxronlanǵan rezerv kóshiriw).

Buǵan jáne de informaciyanı birdey bir neshe sistemada jaratılǵan waqıtta kóbeytiw arqalı erisiwge boladı, bul qayta tiklew keshigiwin joq etiwi múmkin.

Derekler

  1. «Software Fault Tolerance». Carnegie Mellon University.
  2. «Portable and Fault Tolerant Software Systems». Massachusetts Institute of Technology.
  3. Kubernetes Native Microservices with Quarkus and MicroProfile. Manning, 2022. ISBN 9781638357155. 
  4. Acing the System Design Interview. Manning, 2024. ISBN 9781638355915. 
  5. Understanding Distributed Systems: What every developer should know about large distributed applications. Roberto Vitillo, 2021. ISBN 978-1838430207.