Кіріспе

Операциялық жүйелер ресурстарға қол жеткізуді ұйымдастыру және реттілікке келтіру үшін құлып менеджерлерін пайдаланады. Бөлінген құлып менеджері (DLM) кластердегі әрбір машинада кластерлік құлып дерекқорының бірдей көшірмесімен жұмыс істейді. Осылайша, DLM бірнеше машинада кластерде таратылған бағдарламалық қамтамасыздарға ортақ ресурстарға қол жеткізуді синхрондау құралын ұсынады. DLM бірнеше сәтті кластерлік файлдық жүйелердің негізі ретінде қолданылды, онда кластердегі машиналар бірыңғай файлдық жүйе арқылы бір-бірінің сақтағыштарын пайдалана алады, бұл өнімділік және қол жетімділік үшін маңызды артықшылықтар береді. Басты өнімділік артықшылығы қатысушы компьютерлер арасындағы дискілік кэш сәйкестігі мәселесін шешуден туындайды. DLM файлдарды құлыптау үшін ғана емес, сонымен қатар барлық дискіге қол жеткізуді үйлестіру үшін де қолданылады. Кенде тараған алғашқы кластерлік жүйе болған VMScluster, осылай OpenVMS DLM-ге сүйенді.

Блокты алу

Процесс ресурстың бұғатталуын алу үшін бұғаттау сұранысын кезекке қояды. Бұл I/O операцияларын жүзеге асыру үшін қолданылатын QIO техникасына ұқсас. Кезектегі бұғаттау сұранысы синхронды түрде орындалуы мүмкін, яғни процесс бұғаттау берілгенше күтеді, немесе асинхронды түрде, яғни бұғаттау алынған кезде AST (асинхронды жағдай туралы хабарлама) пайда болады. Сонымен қатар, басқа процесс ресурстың бұғатталуын алғанда, оның басқа процестерге қолжетімділігін шектеуі мүмкін, және осы жағдайда бұғаттау AST іске қосылады. Алғашқы процесс басқа процеске қолжетімділікті қамтамасыз ету үшін (мысалы, бұғаттау деңгейін төмендету немесе оны босату арқылы) қосымша шаралар қолдануы мүмкін.

Қалқаның мәні

Әрбір ресурсқа кілт мәні блогы байланыстырылады. Бұл блокты ресурсты бұғаттаған кез келген процесс оқи алады (нольдік бұғаттамадан басқа), ал қорғалған жаңарту немесе эксклюзивті бұғаттама алған процесс жаңарта алады. Ол қолданба жасаушы таңдаған ресурс туралы кез келген ақпаратты сақтау үшін пайдаланылуы мүмкін. Көбінесе ресурстың нұсқа нөмірін сақтау үшін қолданылады. Қатысты нысан (мысалы, деректер базасы жазбасы) жаңартылған сайын, бұғаттама иесі кілт мәні блогының мәнін арттырады. Басқа процесс ресурсты оқығысы келгенде, тиісті бұғаттаманы алып, ағымдағы кілт мәнін процесс соңғы рет ресурсты бұғаттаған кездегі мәнмен салыстырады. Егер мәндер бірдей болса, процесс байланысты нысан соңғы оқудан бері жаңартылмағанын біледі, демек оны қайта оқудың қажеті жоқ. Осылайша, бұл техника деректер базасында немесе ұқсас қолданбада кэштің түрлі түрлерін жүзеге асыру үшін қолданылуы мүмкін.

Мөлдір тұйықтықты анықтау

Бір немесе бірнеше процесс ресурстарға құлып қойған кезде, олардың әрқайсысы екінші процеске құлып қоюға кедергі келтіретін және ешқайсысы да алға жылжуға мүмкін болмайтын жағдай тууы мүмкін. Бұл тұйыққа түсу (deadlock) деп аталады (Э. В. Дейкстра бастапқыда оны «өлім құшағы» деп атаған). Мысалы, 1-процесс А ресурсына эксклюзивті құлып қойса, ал 2-процесс В ресурсына эксклюзивті құлып қойса, тұйыққа түсу пайда болуы мүмкін. Егер 1-процесс B ресурсын құлыптауға тырысса, ол 2-процесс оны босатуын күтуі керек. Бірақ егер 2-процесс А ресурсын құлыптауға тырысса, екі процесс те бірін-бірі шексіз күтеді. OpenVMS DLM тұрақты түрде тұйыққа түсу жағдайларын тексеріп отырады. Жоғарыдағы мысалда, процестердің бірінің екінші құлыптау сұранысы тұйыққа түсу күйімен қайтарылады. Осы процеске тұйыққа түсуді шешу үшін шара қолдану қажет болады – бұл жағдайда алғашқы құлыпты босату арқылы.

Linux кластерлеуі

Red Hat және Oracle екеуі де Linux үшін кластерлік бағдарламалық жасақтаманы әзірледі. OCFS2, Oracle Cluster File System 2006 жылдың қаңтарында 2.6.16 нұсқасымен ресми Linux ядросына қосылды. 2.6.19 нұсқасында OCFS2-нің альфа сапалы код ескертуі алынып тасталды. Red Hat-тың кластерлік бағдарламалық жасақтамасы, оның ішінде DLM және GFS2 2006 жылдың қарашасында 2.6.19 нұсқасымен ресми түрде Linux ядросына қосылды. Екі жүйе де VMS DLM үлгісіндегі DLM-ді пайдаланады. Oracle-тің DLM-і қарапайым API-ға ие. (Оның негізгі функциясы, dlmlock, сегіз параметрден тұрады, ал VMS SYS$ENQ қызметі мен Red Hat-тың dlm lock-і екеуінде де 11 параметр бар.)