Аппараттық және бағдарламалық қамтамасыз етуді орнату

Басқарылатын бөлінген архитектура. Бөлінген жүйелерді сақтау деңгейіне шолу


қайта конфигурацияланатын көп құбырлы желіге негізделген есептеу ортасы L-Net

Басқару жүйелері саласындағы кезек күттірмейтін міндеттердің бірі – бөлінген ақауларға төзімді басқару жүйелерін бағдарламалық қамтамасыз етуді әзірлеу. Бүгінгі таңда осы салада бар шешімдер меншікті болып табылады, нәтижесінде қымбат және әрқашан тиімді емес.

Бұл шешімдер артық базалардың, техникалық және бағдарламалық қамтамасыз етудің ресурстарын тиімді пайдалануды қамтамасыз етпейді, бұл мұндай шешімдердің ақауларға төзімділігіне де, масштабтауға да теріс әсер етеді. Желінің архитектурасы бұзылған жағдайда ақпаратты өңдеу процестерін де, деректер ағынын беруді де (басқару және ақпарат) динамикалық қайта конфигурациялау мүмкіндігі болмайды. Арнайы микроконтроллерлерді қолдану, DCS/SCADA қолдану жүйелерді әзірлеу мен қолдауды, олардың функционалдық мүмкіндіктерін кеңейтуді қиындатады.

Бөлінген басқару жүйесінің архитектурасы

Бөлінген басқару жүйесінің жалпыланған типтік архитектурасы иерархиялық байланысты үш деңгейді қамтиды: оператор деңгейі, басқару деңгейі және кіріс-шығыс деңгейі (1-суретті қараңыз).

Оператор деңгейінің негізгі міндеті - бүкіл жүйені конфигурациялау мен басқаруға мүмкіндік беретін адам-машина интерфейсін (HMI) қамтамасыз ету. Басқару деңгейі сенсорлардан деректерді қабылдауға және өңдеуге, деректерді оператор деңгейіне жіберуге және жетектер үшін басқару әрекеттерін жасауға жауап береді. Кіріс-шығыс деңгейі басқару объектісімен тікелей байланысты датчиктер мен жетектерді білдіреді.

БҚ-ның жалпыланған архитектурасы шеңберіндегі БҚ міндеті оператор деңгейінің жұмыс істеуін және оның жүйенің басқару деңгейімен байланысын қамтамасыз ету болып табылады. Сондықтан бағдарламалық қамтамасыз етуді жобалаудағы және оның аппараттық құралдармен өзара әрекеттесу мәселелерін шешудегі негізгі деңгей оператор деңгейі болып табылады. Бағдарламалық қамтамасыз ету ішкі аппараттық архитектурадан мүмкіндігінше тәуелсіз бола отырып, жүйенің қолда бар аппараттық ресурстарын барынша тиімді пайдалануы керек.

Аппараттық құрал есептеу ресурстарын, жадты және жүйедегі түйіндер арасындағы байланыс құралдарын қамтамасыз етеді. Жүйенің жалпы архитектурасын жобалау кезінде оны нақты жүзеге асыру кезінде оған қосылатын енгізу-шығару деңгейінің нақты түйіндері қарастырылмайды, сондықтан жалпыланған архитектурада оператор деңгейі мен басқару деңгейі қарастырылады. Аппараттық құралдар кең таралған, заманауи стандарттарға сай, архитектураны жүзеге асыруға қажетті барлық қасиеттер мен мүмкіндіктерге ие болуы керек.

DCS-ке қойылатын талаптар

DCS талаптары тұтас жүйеге ғана емес, сонымен қатар оның аппараттық және бағдарламалық құрамдас бөліктеріне де қолданылады, өйткені бұл құрамдастарға қойылатын талаптарды қанағаттандырудың нақты тәсілдері түбегейлі әртүрлі болуы мүмкін. DCS ең алдымен ақауларға төзімді болуы керек. Ақауларға төзімділікті арттырудың қарапайым әдісі – функционалдық бірліктердің артық болуы (қайталануы) немесе олардың комбинациясы. Екінші маңызды қасиет - масштабтау. Масштабтылық бағдарламалық қамтамасыз етудегі арнайы алгоритмдерді жүзеге асыруға және жаңа түйіндерді немесе олардың құрамдастарын ауыстыру және қосу аппараттық мүмкіндіктеріне негізделген. Бұл ретте жүйе жұмыс істеуі, жаңа түйіндерді немесе модульдерді әзірлеу және оның архитектурасын өзгерту үшін қарапайым болып қалуы керек.

DCS архитектурасына шолу

DCS архитектурасына шолу жүргізу үшін нарықтағы ең танымалдарының бірі ретінде Siemens SIMATIC PCS 7 DCS және QNX RTOS негізінде іске асырылған DCS ретінде RTS S3 таңдалды.

Siemens SIMATIC PCS 7

Жүйе архитектурасында жалпыланған DCS архитектурасының барлық қасиеттері бар. Windows ОЖ және HMI қамтамасыз ететін Siemens WinCC пакеті бар x86 процессорлық архитектурасына негізделген компьютерлер оператор станциялары ретінде әрекет етеді. Деректер базасы бар серверлер бар. Оператор станциялары, инженерлік станциялар және серверлер Ethernet негізіндегі жергілікті желі арқылы қосылған. Оператор деңгейі артық Industrial Ethernet желісінің басқару деңгейіне қосылған. Басқару деңгейінде функциялардың қайталануына байланысты артық болу мүмкіндігі бар бағдарламаланатын логикалық контроллерлер (PLC) бар. Сыртқы жүйелер мен желілерге қосылуға және жүйеге қашықтан қол жеткізуді ұйымдастыруға болады.

RTS S3

Бұл архитектура жалпыланған DCS құрылымының деңгейлерінен тұрады. Оператор станциялары SIMATIC DCS сияқты бірдей аппараттық платформаға негізделген, бірақ Windows және Linux операциялық жүйелерінде жұмыс істей алады. Инженерлік станциялар операторлық бөлмелермен біріктірілген. Жүйе қолданбаларды әзірлеудің бірыңғай ортасын қамтамасыз етеді. Ethernet желісі TCP/IP хаттамалар стегі арқылы оператор деңгейіндегі түйіндерді және операторлық деңгейдің өзін басқару деңгейіне қосады. Басқару деңгейінде QNX ОЖ жұмыс істейтін өнеркәсіптік компьютерлер өз деректер базасымен және түйіннің функционалдығын қайталау арқылы резервтеу мүмкіндігі бар.

Сипатталған жүйелердің кемшіліктері

Жоғарыда сипатталған жүйелерде оператор деңгейі мен басқару деңгейі үшін басқа аппараттық және бағдарламалық қамтамасыз ету платформасы пайдаланылады. Оператор деңгейінде тек бір процессор архитектурасын пайдалануға болады, ал басқару деңгейін орнату және дамыту үшін арнайы инженерлік станция қажет. Бұл DCS ақауларға төзімділікті арттыру тәсілі ретінде артық түйіннің функционалдығы қайталанатын аппараттық резервті ғана ұсынады, бұл артық аппараттық құралдарды ұтымсыз пайдалану болып табылады.

L-Net жүйесінің сипаттамалары мен функционалдық ерекшеліктері

L-Net жүйесін жасау кезінде келесі сипаттамаларға ие болатын басқару жүйесін құру міндеті тұрды:

  • көмегімен динамикалық қайта конфигурациялау толық қалпына келтірухост істен шыққан немесе желі топологиясы бұзылған жағдайда ең аз шығынмен өнімділік.
  • Қол жетімді тиімді желі түйіндері арасында тапсырмаларды тиімді бөлу.
  • Мәліметтерді беру ағындарын динамикалық қайта конфигурациялаумен түйіндер арасындағы байланыс арналарының қайталануы.
  • Жүйенің жұмысының қарапайымдылығы және масштабтауы.
  • Басқару жүйелерін және ендірілген жүйелерді құруға арналған кез келген аппараттық платформада жүйенің тасымалдануы және жұмыс қабілеттілігі.

Жоғарыда сипатталған сипаттамалары бар жүйені құру үшін операциялық жүйе қажет, ол негізінен басқару жүйелерін және енгізілген жүйелерді жасауға арналған. Қолданыстағы операциялық жүйелерді талдау ең қолайлы операциялық жүйе QNX 6 (Neutrino) екенін көрсетті, ол өте тиімді ресурстарды бөлу және желілік мүмкіндіктерге ие. кең желілік мүмкіндіктер Qnet желілік протоколымен қамтамасыз етілген. Ол байланыс арналарының сенімділігі мен динамикалық жүктемені теңестіру мәселесін шешеді, бірақ тұтастай алғанда жүйенің ақауларға төзімділігі мәселесін шешпейді. Нәтижесінде бөлінген, қайта конфигурацияланатын, көп құбырлы есептеу ортасының негізінде инновациялық басқару жүйесі әзірленді. Әзірленген жүйеде үш логикалық блокты қамтитын «тең-теңімен» архитектурасы бар: енгізу-шығару блогы, жалпы мақсаттағы коммутатор блогы және қайта конфигурацияланатын есептеу ортасы (RCS) блогы (2-суретті қараңыз).

Бұл архитектураның негізгі артықшылықтары:

  • Құрдас түрі
  • Орталықсыздандыру
  • Масштабтау мүмкіндігі
  • Кеңістіктік бөлу

Бұл архитектураның функционалдық ерекшеліктері:

  • Деректерді тасымалдау
  • Аппараттық құралдардың артық болуы
  • Жүктеменің таралуы
  • Жылдам қайта конфигурациялау

Архитектураның бірінші деңгейінде енгізу-шығару (енгізу-шығару) блогы бар, оған мыналар кіреді: енгізу-шығару түйіндері, кіріс-шығыс түйіндерінің қосқышы, кіріс-шығыс интерфейсі, сенсорлар мен жетектер. Блок жергілікті сенсорлардың деректері мен басқару жүйесінің басқа деңгейлерінен алынған деректер негізінде басқару әрекеттерін генерациялаудың негізгі механизмдеріне жауап береді. Тағайындалған тапсырмалар ағымдағы салыстырмалы өнімділік негізінде немесе оператор қолмен салауатты енгізу/шығару түйіндері арасында бөлінеді. Датчиктер мен жетектер шина арқылы блоктың барлық енгізу/шығару түйіндеріне қосылады, бұл кез келген түйінге кез келген сенсорды сұрауға немесе кез келген жетекке әсер етуді жасауға мүмкіндік береді. Енгізу/шығару түйінінің қосқышы басқару және ақпарат деректерін алу үшін жүйе архитектурасының басқа деңгейлері арасында деректер алмасу үшін барлық енгізу/шығару түйіндері арасындағы байланысты қамтамасыз етеді. Сәйкес аппараттық мүмкіндіктермен түйіндер бір-бірімен және жүйенің басқа деңгейлеріндегі түйіндермен және коммутаторлармен тікелей байланысады, бұл желідегі жауап беру уақытын қысқартады. Енгізу-шығару блогының ағымдағы жұмыс режиміндегі түйіндер мен түйіндердің белгілі бір жұмыс жүктемесі арасындағы тікелей байланыс басқарудың сыртқы есептеу қуатына жүгінбестен блокта осы блоктың жұмысы үшін қажетті құбырлы есептеулерді ұйымдастыруға мүмкіндік береді. жүйе (RSC), ол істен шығу кезінде резервтік енгізу/шығару блок түйіндері үшін берілген бос ресурстарды тиімді пайдалануға мүмкіндік береді.

Архитектураның екінші деңгейінде орналасқан жалпы мақсаттағы коммутатор блогы енгізу-шығару блоктары мен RCS және сыртқы жүйелер арасындағы байланыс желілерін ұйымдастырады. Әрбір коммутатор бүкіл басқару жүйесіндегі әртүрлі түйіндер мен қосқыштарды өзара байланыстыра алады. Байланыс желілерінің саны блоктарға кіретін түйіндер мен ажыратқыштардың аппараттық мүмкіндіктерімен анықталады. Qnet желісі деректерді беру ағындарын динамикалық бөлуге мүмкіндік беретіндіктен, бұл блокты масштабтау жай ғана жаңа құрылғыларды қосу арқылы жүзеге асырылады және конфигурациялауды қажет етпейді, ал егер коммутаторлардың біреуі сәтсіз болса, басқа коммутатор қамтамасыз етсе, түйіндер арасындағы деректерді беру үзілмейді. түйіндер арасындағы ұқсас байланыс немесе олар тікелей қосылған. Сонымен қатар, сәтсіз коммутатордың сақтық көшірмесін жасау үшін қажетті желі өткізу қабілеттілігінің жеткілікті болуы туралы қамқорлық қажет.

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

Жүктеменің таралуы

L-Net жүйесінің негізгі міндеттерінің бірі желі түйіндеріне есептеу жүктемесін бөлу болып табылады. Бұл мәселені шешу есептеу құбырларын салуға негізделген. Есептеу құбырын салу үшін алдын ала тапсырма графигі құрастырылады - дереккөзден алушыға деректер ағынымен алмасу схемасы. Датчиктер көз ретінде, ал жетектер қабылдағыш қызметін атқарады. Есептеу құбырының өзі жүйенің есептеу ресурстарына және оның ағымдағы күйіне қойылатын тапсырма талаптарын ескере отырып, тапсырма графигін (3-суретті қараңыз) компьютерлік желі графигіне (4-суретті қараңыз) кескіндеу болып табылады.

Шешім – алушыға ағымдағы аппараттық құрал, оның күйі және қолжетімді деректер көздері туралы жан-жақты ақпарат беретін, желілік графиктермен және тапсырмалармен жұмысты орындайтын қызметті пайдалану. Нәтижесінде, есептерді шығару және барлығын ұтымды пайдалану есебінен өнімділік артады жүйеге қолжетімдіесептеу ресурстары.

ақауларға төзімділік

Жұмыс істеудің негізгі мәселесі ұқсас жүйеосы құбырдың кез келген түйіні істен шыққанда немесе олардың арасындағы мәліметтерді беру бұзылған жағдайда есептеу құбырларының өнімділігін толық бұзу болып табылады. Qnet хаттамасының негізгі құралдары сәулетпен қамтамасыз етілген сақтық көшірме желілеріне байланысты жартылай бұзылған жағдайда түйіндер арасындағы байланыстарды қалпына келтіруге қол жеткізеді. L-Net жүйесі хост толық істен шыққан жағдайда жұмыс қабілеттілігін қалпына келтіру мәселесін шешеді есептеу жүйесіесептеу құбырын динамикалық қайта конфигурациялау арқылы, яғни. нашар блокты ауыстыру үшін жұмыс ресурстарын пайдалану. Жүйе сәтсіздікке жауап беру уақытында, қалпына келтіру уақытында және пайдаланылған аппараттық ресурстарда ерекшеленетін үш қалпына келтіру (қайта конфигурациялау) сценарийін қарастырады: ақаулық кезінде, пассивті дайындықпен, белсенді дайындықпен.

  • Сәтсіздікке байланысты қайта конфигурациялау– ақаулық анықталғаннан кейін қолжетімді аппараттық құрал ізделеді және тапсырмалар графигіне енгізіледі.
  • Пассивті дайындықпен қайта конфигурациялау- резервтеу Аппараттық құралалдын ала анықталады, түйінде тапсырма графигінің жоғарғы жағының орындалуын қамтамасыз ететін процесс іске қосылады, байланыстар орнатылады, бірақ негізгі түйін сәтсіз болғанша процесс деректерді өңдемейді.
  • Белсенді дайындықты қайта конфигурациялау– тапсырма графигінің жоғарғы жағы деректерді өңдеуді параллель орындайтын және нәтижені жіберетін бірнеше түйіндерде жүзеге асырылады.

Нәтижесінде жүйе бағдарламалық және аппараттық деңгейде ақауларға икемді дайындықты, желіні, есептеу құбырын және түйінді іске асыруға қарамастан жұмысын тоқтатпай және өнімділікті жоғалтпай түйіндердің конфигурациясын өзгерту мүмкіндігін қамтамасыз етеді.

Қорытынды

Әзірленген L-Net жүйесі, қолданыстағы аналогтардан айырмашылығы, бағдарламалық қамтамасыз етудің толық үйлесімділігімен DCS түйіндерінің аппараттық сипаттамаларының кең ауқымын пайдалануды қамтиды. Бір операциялық жүйенің (QNX Neutrino) басқаруындағы түйіндерді іске қосу кезінде оларды интерфейстер мен перифериялық құрылғылардың әртүрлі жиынтықтары бар әртүрлі процессор архитектураларында (x86, ARM, MIPS және т.б.) құруға болады. Түйіндерді іске асыру үстелдік ДК, өнеркәсіптік ДК, киілетін ДК және бір тақталы компьютерлер түрінде мүмкін болады. Әзірленген DCS бағдарламалық кешенінің барлық құрамдас бөліктері оның кез келген түйінінде QNX OS бар іске қосылуы мүмкін, бұл ретте басқа операциялық жүйесі бар түйіндерді пайдалану мүмкіндігі сақталады. Бұл тәсіл оператор деңгейінің де, басқару деңгейінің де мәселелерін шешу үшін әрбір түйінді пайдалануға мүмкіндік береді. Сондықтан, бар икемді жүйежалпыланған DCS архитектурасына тән деңгейлердің қатаң иерархиясы жоқ тең дәрежелі түйіндер арасындағы өзара әрекеттесу және осы архитектураны негіз ретінде пайдаланатын жүйелер. Тең дәрежелі желі жүйені орналастыру, пайдалану, масштабтау және жөндеу процесін жеңілдетеді.

Әзірленген жүйеде артық аппараттық құралдардың есептеу әлеуетін іске асыру үшін Qnet желілік протоколы және L-Net желілік бағдарламалық қамтамасыз ету негізіндегі динамикалық конфигурациялау және қайта конфигурациялау алгоритмдері ұсынылады. Динамикалық конфигурация алгоритмі тапсырмаларды конвейерлеу және параллельдеу арқылы барлық түйіндер бойынша есептеу жүктемесін бөлуге және түйіндер арасындағы деректерді беру арналарына жүктемені динамикалық теңгеруге негізделген. Жүйені қайта конфигурациялау алгоритмі қол жетімді аппараттық құралдарға, жүйеге тағайындалған басымдықтар мен міндеттерге байланысты ақаулық жағдайында жұмыс қабілеттілігін қалпына келтірудің үш сценарийінің болуын болжайды: істен шыққан кезде, пассивті дайындықпен (ресурстарды бөлу) және белсенді дайындықпен (ресурстарды пайдалану). . Динамикалық конфигурациялау және қайта конфигурациялау алгоритмдері жүйеде қолжетімді аппараттық қорлардың арқасында өнімділік пен сенімділікті арттыруға мүмкіндік береді.

Жүйенің маңызды артықшылығы - аппараттық құралдардың да, құрылғылардың да максималды ашықтығы бағдарламалық қамтамасыз ету технологиялары, бұл жүйені техникалық қолдауды айтарлықтай жеңілдетуге және оған жаңа модульдерді әзірлеуге мүмкіндік береді.

Қорытынды

Әзірленген архитектуралық шешімдер аппараттық құралдардың кең спектрін пайдалану, динамикалық конфигурация алгоритмдерін енгізу және жүйелік ресурстарды ұтымды пайдалану мүмкіндігі есебінен сенімділік, өнімділік, құны, масштабтау және қарапайымдылық сияқты үлестірілген басқару жүйелерінің көрсеткіштерін жақсартуға мүмкіндік береді.

  1. http://kazanets.narod.ru/DCSIntro.htm.
  2. http://kazanets.narod.ru/PCS7Overview.htm.
  3. http://www.rts.ua/rus/news/678/0/409.
  4. Zyl S. QNX Momentics: Қолдану негіздері. - Санкт-Петербург: BHV-Петербург, 2005 ж.
  5. Krten R. QNX Neutrino-ға кіріспе. Нақты уақыттағы қолданбаларды әзірлеуге арналған нұсқаулық. - Санкт-Петербург: BHV-Петербург, 2011 ж.

Түйінді сөздер:бөлінген басқару жүйесі, Ақпараттық қолдаубасқару жүйелері, бөлінген қайта конфигурацияланатын жүйелер.

L-Net қайта конфигурацияланатын көп құбырлы есептеу ортасына негізделген таратылған басқару жүйесінің архитектурасы

Сергей Ю. Потомский, «Экономика жоғары мектебі» Ұлттық зерттеу университетінің ассистенті.

Никита А. Полойко, «Экономика жоғары мектебі» Ұлттық зерттеу университетінің бесінші курс студенті. оқу көмекшісі. бағдарламашы. Оқыту саласы: «Техникалық жүйелердегі басқару және информатика».

реферат.Мақала қайта конфигурацияланатын көп құбырлы есептеу ортасына негізделген бөлінген басқару жүйесіне арналған. Жүйенің архитектурасы берілген. Сондай-ақ жүйенің негізгі сипаттамалары мен функционалдық қасиеттері де берілген. Мақалада таңдаудың негіздемесі келтірілген операциялық жүйе. Қолданыстағы ұқсас әзірлемелермен салыстырғанда жүйенің негізгі артықшылықтары мақалада көрсетілген.

кілт сөздер:бөлінген басқару жүйесі, жүйелік бағдарламалық қамтамасыз етуді қолдау, таратылған қайта конфигурацияланатын.


Байланыста

Қазіргі уақытта коммерциялық мақсатта әзірленген барлық АЖ жаһандық және/немесе жергілікті желілерді пайдалануды көздейтін бөлінген архитектураға ие.

Тарихи түрде бірінші болып файл-сервер архитектурасы кеңінен қолданылды, өйткені оның логикасы қарапайым және жұмыс істеп тұрған АЖ-ны мұндай архитектураға көшіру ең оңай. Содан кейін ол сервер-клиент архитектурасына айналды, оны оның логикалық жалғасы ретінде түсіндіруге болады. Қазіргі заманғы жүйелержаһандық деңгейде қолданылады INTERNET желілерінегізінен бөлінген объектілердің архитектурасына сілтеме жасайды (суретті қараңыз). III15 )


АЖ келесі компоненттерден тұратын түрде ұсынылуы мүмкін (III-16-сурет)

III.03.2. a Файл сервері қолданбалары.

Бұл тарихи түрде бірінші таралған архитектура (III-17-сурет). Ол өте қарапайым түрде ұйымдастырылған: тек деректер серверде, ал қалғанының бәрі клиенттік машинаға тиесілі. Жергілікті желілер айтарлықтай арзан болғандықтан және мұндай архитектурамен қолданбалы бағдарламалық қамтамасыз ету автономды болғандықтан, мұндай архитектура бүгінде жиі қолданылады. Бұл серверде тек деректер файлдары орналасқан клиент-сервер архитектурасының нұсқасы деп айта аламыз. Әртүрлі дербес компьютерлер тек жалпы деректер қоймасы арқылы өзара әрекеттеседі, сондықтан бір компьютер үшін жазылған бағдарламалар мұндай архитектураға оңай бейімделеді.


Артықшылықтары:

Файл-сервер архитектурасының артықшылықтары:

Ұйымдастырудың қарапайымдылығы;

Тұтастық пен сенімділікті сақтау үшін деректер базасына қажетті талаптарға қайшы келмейді.

Желінің шамадан тыс жүктелуі;

Сұранысқа күтпеген жауап.

Бұл кемшіліктер деректер базасына кез келген сұраныс желі арқылы ақпараттың айтарлықтай көлемін тасымалдауға әкелетіндігімен түсіндіріледі. Мысалы, кестелерден бір немесе бірнеше жолды таңдау үшін бүкіл кесте клиенттік машинаға тасымалданады және ДҚБЖ таңдауды сол жерде жасайды. Маңызды желілік трафик әсіресе ұйымдастырушылыққа толы қашықтан қол жеткізуДБ-ға.

III.03.2. b Клиент-сервер қолданбалары.

Бұл жағдайда сервер мен клиент арасында жауапкершілікті бөлу орын алады. қалай бөлінетініне байланысты қалыңжәне жұқа клиент.


Жұқа клиент үлгісінде барлық қолданбалы жұмыс және деректерді басқару серверде орындалады. Бұл жүйелердегі пайдаланушы интерфейсі дербес компьютерге «жылжыды» және бағдарламалық қосымшасервер қызметін атқарады, яғни. барлық қолданбалы процестерді іске қосады және деректерді басқарады. Жұқа клиент үлгісін клиенттер компьютер немесе жұмыс станциясы болып табылатын жерде де іске асыруға болады. Желілік құрылғылар жүйеде іске асырылған Интернет-шолғышты және пайдаланушы интерфейсін басқарады.

Негізгі кемшілікжұқа клиент үлгілері - жоғары сервер және желі жүктемесі. Барлық есептеулер серверде орындалады және бұл клиент пен сервер арасындағы айтарлықтай желілік трафикке әкелуі мүмкін. Қазіргі компьютерлерде есептеу қуаты жеткілікті, бірақ ол банк үлгісінде/жұқа клиентте іс жүзінде қолданылмайды

Керісінше, қалың клиент моделі жергілікті машиналардың есептеу қуатын пайдаланады: қолданбаның өзі клиенттік компьютер. Архитектураның бұл түрінің мысалы ретінде банкомат клиент және сервер болып табылатын банкомат жүйелері болуы мүмкін - орталық компьютер, ол клиенттермен есеп айырысу деректер базасын жүргізеді

III.03.2. c Екі және үш деңгейлі клиент-сервер архитектурасы.

Жоғарыда қарастырылған барлық архитектуралар екі деңгейлі. Олар клиент деңгейінде және сервер деңгейінде ерекшеленеді. Нақтырақ айтқанда, АЖ үш логикалық деңгейден тұрады:

Пайдаланушы деңгейі;

Қолдану деңгейі:

· Деректер қабаты.

Сондықтан, тек екі қабат қатысатын екі деңгейлі модельде жұқа клиент үлгісі таңдалса, масштабтауға және өнімділікке қатысты мәселе немесе майлы клиент үлгісі қабылданған жағдайда жүйені басқаруға қатысты мәселелер бар. Бұл проблемаларды үш деңгейден тұратын модельді қолдану арқылы болдырмауға болады, мұнда олардың екеуі серверлер (III-21-сурет).

Деректер сервері

Іс жүзінде қолданбалы сервер мен деректер сервері бір машинада орналасуы мүмкін, бірақ олар бір-бірінің функцияларын орындай алмайды. Үш деңгейлі модельдің жақсы жағы - ол қолданбаларды орындауды деректерді басқарудан логикалық түрде ажыратады.

Кесте III-5 Архитектураның әртүрлі түрлерін қолдану

Сәулет Қолдану
Екі деңгейлі жұқа клиент 1 Қолданбаның орындалуы мен деректерді басқаруды бөлу практикалық емес ескі жүйелер. 2 Қарқынды есептеулері бар қолданбалар, бірақ деректерді басқару аз. 3 Деректер көлемі үлкен, бірақ есептеулері аз қолданбалар.
Екі деңгейлі қалың клиент 1 Пайдаланушы деректерді қарқынды өңдеуді қажет ететін қолданбалар, яғни деректерді визуализациялау. 2 Қалыпты жүйені басқару ортасына қолданылатын пайдаланушы функцияларының салыстырмалы тұрақты жиыны бар қолданбалар.
Үш деңгейлі сервер-клиент 1 Ұяшықтары және мыңдаған клиенттері бар үлкен қолданбалар 2 Деректер мен өңдеу әдістері жиі өзгеретін қолданбалар. 3 Көптеген көздерден алынған деректерді біріктіретін қолданбалар.

Бұл модель қолданбалардың көптеген түрлеріне жарамды, бірақ қызметтерді қай жерде ұсыну керектігін шешуі, масштабтауға қолдау көрсетуі және жаңа клиенттерді қосу құралдарын әзірлеуі тиіс АЖ әзірлеушілерін шектейді.

III.03.2. d Бөлінген объектілердің архитектурасы.

Неғұрлым жалпы тәсілді негізгі құрамдастары объектілер болып табылатын үлестірілген нысан архитектурасы қамтамасыз етеді. Олар өз интерфейстері арқылы қызметтер жиынтығын ұсынады. Басқа нысандар сұрауларды жібереді және клиент пен сервер арасында ешқандай айырмашылық жоқ. Объектілерді орналастыруға болады әртүрлі компьютерлержеліде және қосылуға мүмкіндік беретін жүйелік шинаға ұқсас аралық бағдарлама арқылы өзара әрекеттеседі әртүрлі құрылғыларжәне аппараттық құрылғылар арасындағы байланысты қолдау.

ODBC драйвер менеджері
Жүргізуші 1
Жүргізуші Қ
ДБ 1
БД К
SQL-мен жұмыс істеу

ODBC архитектурасы келесі компоненттерді қамтиды:

1. Қолданба (мысалы, АЖ). Ол тапсырмаларды орындайды: деректер көзіне қосылуды сұрайды, деректер көзіне SQL сұрауларын жібереді, SQL сұрауларының сақтау аймағын және пішімін сипаттайды, қателерді өңдейді және олар туралы пайдаланушыға хабарлайды, транзакцияларды жасайды немесе кері қайтарады, қосылуды сұрайды. деректер көзі.

2. Құрылғы менеджері. Ол драйверлерді қолданбаның сұранысы бойынша жүктейді, барлық қолданбаларға бір интерфейс ұсынады және ODBC әкімші интерфейсі бірдей және қолданба қай ДҚБЖ-мен әрекеттесетініне тәуелсіз. Microsoft ұсынған драйвер менеджері динамикалық жүктелген DLL болып табылады.

3. Драйвер ДҚБЖ-ға тәуелді. ODBC драйвері динамикалық болып табылады DLL ODBC функцияларын жүзеге асыратын және деректер көзімен әрекеттесетін. Драйвер – бұл ДҚБЖ-ға тән кейбір функцияға сұранысты өңдейтін (ол ДҚБЖ сәйкес сұраныстарды өзгерте алады) және нәтижені қолданбаға қайтаратын бағдарлама. ODBC технологиясын қолдайтын әрбір ДҚБЖ қолданбаларды әзірлеушілерді осы ДҚБЖ үшін драйвермен қамтамасыз етуі керек.

4. Деректер көзі пайдаланушы белгілеген басқару ақпаратын, деректер көзі ақпаратын қамтиды және нақты ДҚБЖ қол жеткізу үшін пайдаланылады. Бұл жағдайда ОЖ және желілік платформа құралдары қолданылады.

Динамикалық үлгі

Бұл модель көптеген аспектілерді болжайды, оларды көрсету үшін UML тілінде кемінде 5 диаграмма қолданылады, абзацтарды қараңыз. 2.04.2-2.04.5.

Басқару аспектісін қарастырыңыз. Басқару моделі құрылымдық үлгілерді толықтырады.

Жүйенің құрылымы қалай сипатталғанына қарамастан, ол құрылымдық бірліктердің (функциялардың немесе объектілердің) жиынтығынан тұрады. Олардың тұтастай жұмыс істеуі үшін оларды басқару керек, ал басқару туралы ақпарат статикалық диаграммаларда жоқ. Басқару модельдері жүйелер арасындағы басқару ағынын жобалайды.

Бағдарламалық жүйелерде басқарудың екі негізгі түрі бар.

1. Орталықтандырылған басқару.

2. Оқиғаға негізделген бақылау.

Орталықтандырылған басқару мыналар болуы мүмкін:

· Иерархиялық- «шақыру-қайтару» принципі бойынша (көбінесе осылай жұмыс істейді оқу бағдарламалары)

· Диспетчерлік үлгі, ол параллель жүйелер үшін қолданылады.

AT диспетчерлік үлгілержүйенің құрамдас бөліктерінің бірі диспетчер болып табылады деп болжанады. Ол жүйелерді іске қосуды және өшіруді және жүйенің қалған процестерін үйлестіруді басқарады. Процестер бір-біріне параллель жұмыс істей алады. Процесс – бұл қазіргі уақытта іске қосылған бағдарлама, ішкі жүйе немесе процедура. Бұл модельді басқару бағдарламасы кейбір күй айнымалыларына (оператор арқылы) байланысты жеке ішкі жүйелерді шақыратын жүйелі жүйелерде де қолдануға болады. іс).

Оқиғаларды басқарубасқаруға жауапты кез келген ішкі бағдарламаның жоқтығын болжайды. Басқару сыртқы оқиғалар арқылы жүзеге асырылады: тінтуірді басу, пернетақтаны басу, сенсордың оқуының өзгеруі, таймердің оқуының өзгеруі және т.б. Әрбір сыртқы оқиға кодталады және оқиға кезегіне орналастырылады. Кезекте тұрған оқиғаға реакция қамтамасыз етілсе, онда осы оқиғаға реакцияны орындайтын процедура (ішкі бағдарлама) шақырылады. Жүйе жауап беретін оқиғалар басқа ішкі жүйелерде немесе жүйенің сыртқы ортасында болуы мүмкін.

Мұндай басқарудың мысалы ретінде Windows операциялық жүйесінде қолданбалы жұмыстарды ұйымдастыруды келтіруге болады.

Бұрын сипатталған барлық құрылымдық модельдер орталықтандырылған басқару немесе оқиғаға негізделген басқару арқылы жүзеге асырылуы мүмкін.

Пайдаланушы интерфейсі

Интерфейс моделін жасау кезінде жобаланған бағдарламалық қамтамасыз етудің міндеттерін ғана емес, ақпаратты қабылдаумен байланысты мидың ерекшеліктерін де ескеру қажет.

III.03.4. а Ақпаратты қабылдау және өңдеумен байланысты адамның психофизикалық сипаттамалары.

Мидың шартты түрде қабылдау процессоры деп атауға болатын бөлігі сананың қатысуынсыз үнемі келіп түскен ақпаратты өңдеп, өткен тәжірибемен салыстырып, қоймаға орналастырады.

Көрнекі бейне біздің назарымызды аударған кезде, бізді қызықтыратын ақпарат қысқа мерзімді жадқа енеді. Егер біздің назарымыз аударылмаса, репозиторийдегі ақпарат келесі бөліктермен ауыстырылып, жоғалады.

Уақыттың әрбір нүктесінде назардың фокусы бір нүктеде белгіленуі мүмкін, сондықтан бір уақытта бірнеше жағдайды қадағалау қажет болса, фокус бір бақыланатын нысаннан екіншісіне ауысады. Сонымен бірге назар шашылып, кейбір бөлшектерді жіберіп алуы мүмкін. Қабылдаудың негізінен мотивацияға негізделгені де маңызды.

Фреймді өзгерткен кезде ми біраз уақытқа бітеліп қалады: ол ең маңызды бөлшектерді бөліп көрсете отырып, жаңа суретті меңгереді. Бұл дегеніміз, егер сізге пайдаланушының жылдам реакциясы қажет болса, суреттерді күрт өзгертпеу керек.

Қысқа мерзімді жады адамның ақпаратты өңдеу жүйесіндегі тығырық болып табылады. Оның сыйымдылығы 7±2 байланыссыз объектілерді құрайды. Онда талап етілмеген ақпарат 30 секундтан аспайды. Біз үшін кейбір маңызды ақпаратты ұмытпау үшін біз әдетте қысқа мерзімді жадтағы ақпаратты жаңарта отырып, оны өзімізге қайталаймыз. Осылайша, интерфейстерді жобалау кезінде басым көпшілігі үшін, мысалы, басқа экранда бес цифрдан көп сандарды есте сақтау және енгізу қиын екенін есте ұстаған жөн.

Ұзақ мерзімді жадтың сыйымдылығы мен сақтау уақыты шексіз болғанымен, ақпаратқа қол жеткізу оңай емес. Ұзақ мерзімді жадтан ақпаратты алу механизмі ассоциативті сипатқа ие. Ақпаратты есте сақтауды жақсарту үшін ол жадта сақталған деректермен байланыстырылады және оны алуды жеңілдетеді. Ұзақ мерзімді жадқа қол жеткізу қиын болғандықтан, ақпаратты есте сақтау үшін пайдаланушыға емес, пайдаланушы оны танитынына сенген жөн.

III.03.4. b Интерфейстерді бағалаудың негізгі критерийлері

Жетекші бағдарламалық жасақтаманы әзірлеуші ​​фирмалар жүргізген көптеген сауалнамалар мен сауалнамалар пайдаланушылардың интерфейсте нені бағалайтынын көрсетті:

1) даму және есте сақтаудың қарапайымдылығы – ақпарат пен жадының даму уақытын және сақталу ұзақтығын арнайы бағалау;

2) тінтуірдің көмегімен енгізілген немесе таңдалған командалар мен параметрлердің санымен анықталатын жүйені пайдалану кезінде нәтижеге жету жылдамдығы;

3) жүйенің жұмысы кезінде субъективті қанағаттану (жұмыс істеудің қарапайымдылығы, шаршау және т.б.).

Сонымен қатар, бір пакетпен үнемі жұмыс істейтін кәсіби пайдаланушылар үшін екінші және үшінші критерийлер, ал бағдарламалық жасақтамамен мерзімді түрде жұмыс істейтін және салыстырмалы түрде қарапайым тапсырмаларды орындайтын кәсіби емес пайдаланушылар үшін бірінші және үшінші критерийлер бірінші орынға шығады.

Осы тұрғыдан алғанда, бүгінгі күні ең жақсы өнімділіккәсіби пайдаланушылар үшін олардың еркін навигациясы бар интерфейстері бар, ал кәсіби емес пайдаланушылар үшін - тікелей манипуляция интерфейстері. Файлды көшіру операциясын орындаған кезде, барлық басқа нәрселер бірдей болған кезде, кәсіпқойлардың көпшілігі Far сияқты қабықшаларды, ал кәсіпқой еместер Windows жүйесін «сүйреп апару» әдісін қолданатыны бұрыннан белгілі болды.

III.03.4. c Пайдаланушы интерфейстерінің түрлері

Келесі түрлері бар пайдаланушы интерфейстері:

Қарапайым

Тегін навигациямен

тікелей манипуляция.

Интерфейс қарапайым

Қарапайымпайдаланушымен өзара әрекеттесуді ұйымдастыратын және консоль режимінде қолданылатын интерфейс деп аталады. Деректермен қамтамасыз етілетін дәйекті үрдістен жалғыз ауытқу деректердің бірнеше жиынын өңдеу циклін ұйымдастыру болып табылады.

Интерфейс мәзірі.

Қарапайым интерфейстен айырмашылығы, ол пайдаланушыға бағдарлама оған көрсетілетін арнайы тізімнен операцияны таңдауға мүмкіндік береді. Бұл интерфейстер көптеген жұмыс сценарийлерін жүзеге асыруды қамтиды, олардың әрекеттер тізбегі пайдаланушылармен анықталады. Мәзірдің ағаш тәрізді ұйымдастырылуы мәзірдің екі деңгейінен көп элементті табу өте қиын екенін білдіреді.

Бөлінген AIS енді жалпы шындыққа айналды. Көптеген корпоративтік AIS-тер таратылған деректер қорын пайдаланады. Деректерді тарату және таратылатын деректерді басқару әдістері, жүйелердің масштабталатындығын қамтамасыз ететін, көп деңгейлі «клиент-сервер» архитектурасының принциптерін жүзеге асыратын архитектуралық тәсілдер, сонымен қатар аралық деңгей архитектурасы әзірленді.

Мобильді архитектуралар тәжірибеге енгізіле бастады. Бұл дерекқор жүйелеріне де, веб-қосымшаларға да қатысты.

«Тең-теңге» архитектурасына (Peer-to-Peer) негізделген үлестірілген жүйелерді құру тәсілі қайта жандануда, онда бүгінде үлестірілген жүйелерде үстемдік ететін «клиент-сервер» архитектурасына қарағанда, өзара әрекеттесуші тараптардың рөлдері маңызды рөл атқарады. желі бекітілмеген. Олар желідегі жағдайға, оның түйіндерінің жұмыс көлеміне байланысты тағайындалады.

Коммуникациялық технологиялардың қарқынды дамуына байланысты мобильді ААЖ белсенді дамып келеді. Техникалық құралдар әзірленді және бағдарламалық қамтамасыз етуоларды құру. Осының арқасында мобильді мәліметтер базасы жүйелері дами бастады. Көптеген ғылыми топтар мұндай жүйелердің спецификалық ерекшеліктері бойынша зерттеулер жүргізеді және олардың әртүрлі прототиптерін жасайды. Java технологиялары мобильді бағдарламалық жасақтаманы әзірлеудің маңызды құралына айналды.

Протокол стандарты құрылды сымсыз қол жеткізуКейбір үлгілерде қазірдің өзінде қолдайтын Интернеттегі қолданбалар (Wireless Application Protocol - WAP). ұялы телефондар. WAP және XML негізінде W3C сымсыз байланыс үшін WML (Wireless Markup Language) белгілеу тілін әзірледі.

ААЖ әзірлеуде метадеректерге көбірек көңіл бөлінді. Мұнда екі бағытта – метадеректерді ұсынуды стандарттау және оларды жүйеде қолдауды қамтамасыз ету бойынша қадамдар жасалуда.

AIS метадеректерді көрсетудің әртүрлі тәсілдері мен құралдарын пайдаланады (метадеректер репозиторийлерінің әртүрлі түрлері). Бұл салада біріздендірудің жоқтығы қолданбалы мобильділік, ақпараттық ресурстар мен ақпараттық технологияларды қайта пайдалану және біріктіру, сондай-ақ ААЖ реинжиниринг мәселелерін шешуді айтарлықтай қиындатады.

Осы қиындықтарды жеңу үшін метадеректер стандарттарын әзірлеу әртүрлі бағытталды ақпараттық технологиялар. Бұл салада қазірдің өзінде метадеректерді ұсынуды және ААЖ-де метадеректермен алмасуды анықтайтын бірқатар халықаралық, ұлттық және салалық стандарттар бар. Олардың кейбіреулері де-факто стандарттар мәртебесіне ие болды. Біз бұл жерде олардың ең маңыздыларын ғана атап өтумен шектелеміз.

Бәлкім, осы санаттағы бірінші де-факто стандарты дерекқорларға арналған CODASYL деректерді сипаттау тілі болды. желі құрылымы. Кейінгі стандарттардан мынаны атап өткен жөн: ақпараттық схема деп аталатын анықтаманы қамтитын реляциялық деректер қорына арналған SQL сұрау тілінің стандарты - реляциялық деректер базасының схемаларының көріністерінің жиынтығы; объект схемасы репозиторийінің интерфейстерін сипаттайтын ODMG объектінің деректер қоры стандартының құрамдас бөлігі; ұйымның ақпараттық ресурстарының каталогтарын құру және жүргізу жүйелерін сипаттайтын халықаралық стандарт IRDS (Information Resource Dictionary Systems).

Әрі қарай, бұрын MDC (Meta Data Coalition) консорциумы кеңірек мақсаттар үшін жасалған OIM (Ашық ақпарат үлгісі) стандартына негізделген деректер қоймасының метадеректерін көрсету үшін OMG консорциумы әзірлеген CWM (Common Warehouse Metamodel) стандартын атап өткен жөн.

Веб-технологиялық платформаға арналған жаңа XML сонымен қатар метадеректерді көрсету стандарттарын қамтиды. Метадеректерге қолдау көрсету оны басқару тәсілін түбегейлі өзгертетін веб-сайттың маңызды жаңалықтарының бірі болып табылады. ақпараттық ресурстар. Бастапқыда дерекқор технологиясы метадеректерге қолдау көрсету үшін талап етілсе, бірінші буындағы Web метадеректерге қолдау көрсетпеді.

Веб метадеректер стандарттары XML құжатының кейбір түрінің логикалық құрылымын сипаттау үшін пайдаланылатын XML тілінің ішкі жиынын қамтиды. Бұл сипаттама DTD (Document Type Definition) деп аталады. Сонымен қатар, XML платформасы XML құжаттарын сипаттау үшін кеңейтілген мүмкіндіктерді ұсынатын XML Schema стандартын қамтиды. RDF (Resource Definition Framework) стандарты XML құжаттарының мазмұнын сипаттау үшін қарапайым білімді көрсету тілін анықтайды. Соңында, алдағы OWL (Ontology Web Language) стандарты семантикалық веб үшін ресми онтологиялық сипаттама тілін анықтайды.

Көрнекі нысанды талдау және жобалау үшін CASE құралдарының метадеректерін ұсынуды қамтамасыз ететін UML (Unified Modeling Language) тіл стандартын OMG консорциумы әзірледі. Бұл тілге көптеген елдерде қолдау көрсетіледі бағдарламалық өнімдеріс. OMG консорциумы сонымен қатар UML негізіндегі CASE құралдары арасында метадеректер алмасу үшін XMI (XML метадеректер алмасу) стандартын жасады.

Бұл жерде Dublin Core (DC) стандартын, әртүрлі сипаттағы құжаттардың мазмұнын сипаттауға арналған метадеректер элементтерінің жиынтығын да атап өткен жөн. Бұл стандарт тез танымал болды және, атап айтқанда, кең қолданыс тапты Веб ортасы(3.3 тарауды қараңыз).

ААЖ үшін метадеректерді ұсынудың қолданыстағы стандарттарын әзірлеу және жаңа стандарттарды құру бойынша жұмыс жалғасуда. Көбірек егжейқарастырылған стандарттар туралы энциклопедиядан табуға болады.

Қазіргі уақытта барлық дерлік ірі бағдарламалық жүйелер таратылды. Бөлінген жүйе – ақпаратты өңдеу бір компьютерде шоғырланбай, бірнеше компьютерлер арасында таратылатын жүйе. Кез келген басқа бағдарламалық жасақтаманың дизайнымен көп ұқсастығы бар үлестірілген жүйелерді жобалау кезінде әлі де бірқатар ерекше мүмкіндіктерді ескеру қажет. Олардың кейбіреулері клиент/сервер архитектурасын талқылағанда 10-тараудың кіріспесінде айтылған және олар осында толығырақ қарастырылады.

Бөлінген жүйелер қазіргі уақытта өте кең таралғандықтан, бағдарламалық жасақтаманы әзірлеушілер олардың дизайн мүмкіндіктерімен таныс болуы керек. Соңғы уақытқа дейін барлық ірі жүйелер негізінен орталықтандырылған, олар терминалдары қосылған бір негізгі компьютерде (мейнфреймде) жұмыс істеді. Терминалдар іс жүзінде ақпаратты өңдемеді - барлық есептеулер негізгі машинада орындалды. Мұндай жүйелерді жасаушыларға бөлінген есептеулердің мәселелері туралы ойлаудың қажеті болмады.

Барлық заманауи бағдарламалық жүйелерді үш үлкен класқа бөлуге болады.

1. Бір ғана дербес компьютерде немесе жұмыс станциясында жұмыс істеуге арналған қолданбалы бағдарламалық жүйелер. Оларға жатады мәтіндік процессорлар, электрондық кестелер, графикалық жүйелер және т.б.

2. Бір процессорда немесе процессорлардың біріктірілген тобында жұмыс істеуге арналған ендірілген жүйелер. Оларға тұрмыстық техниканы басқару жүйелері, әртүрлі құрылғылар және т.б.

3. БҚ желі арқылы қосылған параллельді процессорлардың еркін біріктірілген тобында жұмыс істейтін үлестірілген жүйелер. Оларға банкке тиесілі банкомат жүйелері, баспа жүйелері, ұжымдық пайдалануға арналған бағдарламалық жүйелер және т.б.

Қазіргі уақытта бағдарламалық жүйелердің аталған сыныптары арасында нақты шекаралар бар, олар болашақта көбірек бұлыңғыр болады. Уақыт өте келе, жоғары жылдамдықты сымсыз желілер кеңінен қол жетімді болғандықтан, электрондық ұйымдастырушылар сияқты енгізілген бағдарламалық жүйелері бар құрылғыларды жалпы жүйелермен динамикалық түрде біріктіру мүмкін болады.

Бөлінген жүйелердің алты негізгі сипаттамасы анықталды.

1. Ресурстарды бөлісу.Таратылған жүйелер аппараттық және бағдарламалық қамтамасыз ету ресурстарын ортақ пайдалануға мүмкіндік береді, мысалы қатты дискілер, желі арқылы қосылған принтерлер, файлдар, компиляторлар және т.б. Әлбетте, ресурстарды ортақ пайдалану көп пайдаланушылық жүйелерде де мүмкін, бірақ бұл жағдайда ресурстармен қамтамасыз ету және оларды басқару орталық компьютердің жауапкершілігінде болуы керек.

2. ашықтық.Бұл жаңа ресурстарды қосу арқылы жүйені кеңейту мүмкіндігі. Бөлінген жүйелер болып табылады ашық жүйелер, оған әртүрлі өндірушілердің аппараттық және бағдарламалық құралдары қосылған.

3. Параллелизм.Бөлінген жүйелерде желідегі әртүрлі компьютерлерде бірнеше процестер бір уақытта жұмыс істей алады. Бұл процестер жұмыс істеп тұрған кезде бір-бірімен әрекеттесуі мүмкін (бірақ қажет емес).

4. Масштабтау мүмкіндігі.Негізінде барлық бөлінген жүйелер масштабталады: жүйе жаңа талаптарға сай болуы үшін оны жаңа есептеу ресурстарын қосу арқылы ұлғайтуға болады. Бірақ іс жүзінде өсу жүйедегі жеке компьютерлерді қосатын желімен шектелуі мүмкін. Көптеген жаңа машиналарды қоссаңыз, өткізу қабілетіжелі жеткіліксіз болуы мүмкін.

5. Ақауларға төзімділік.Бірнеше компьютерлердің болуы және ақпаратты қайталау мүмкіндігі таратылған жүйелердің белгілі бір аппараттық және бағдарламалық қателерге төзімділігін білдіреді. Бөлінген жүйелердің көпшілігі әдетте қате болған жағдайда, кем дегенде ішінара функционалдылықты сақтай алады. Жүйенің толық істен шығуы тек желілік қателер болған жағдайда ғана орын алады.

6. Мөлдірлік.Бұл қасиет пайдаланушыларға ресурстарға толық ашық қолжетімділік берілгенін білдіреді және сонымен бірге жүйедегі ресурстарды тарату туралы ақпарат олардан жасырылады. Дегенмен, көп жағдайда жүйені ұйымдастыру туралы нақты білім пайдаланушыға ресурстарды жақсырақ пайдалануға көмектеседі.

Әрине, бөлінген жүйелердің бірқатар кемшіліктері бар.

Күрделілігі.Бөлінген жүйелер орталықтандырылғанға қарағанда күрделірек. Жалпы бөлінген жүйелердің қасиеттерін түсіну және бағалау, сондай-ақ бұл жүйелерді сынау әлдеқайда қиын. Мысалы, мұнда жүйенің өнімділігі бір процессордың жылдамдығына емес, желінің өткізу қабілетіне және әртүрлі процессорлардың жылдамдығына байланысты. Ресурстарды жүйенің бір бөлігінен екінші бөлігіне жылжыту арқылы жүйенің өнімділігіне айтарлықтай әсер етуі мүмкін.

Қауіпсіздік.Әдетте жүйеге бірнеше түрлі машиналардан кіруге болады, желідегі хабарламаларды қарауға немесе ұстауға болады. Сондықтан таратылған жүйеде қауіпсіздікті сақтау әлдеқайда қиын.

Басқару мүмкіндігі.Жүйе әртүрлі типтегі компьютерлерден тұруы мүмкін әртүрлі нұсқалароперациялық жүйелер. Бір машинадағы қателер күтпеген салдары бар басқа машиналарға таралуы мүмкін. Сондықтан жүйені жұмыс тәртібінде басқару және қолдау үшін әлдеқайда көп күш қажет.

Болжамсыздық.Вебтің барлық пайдаланушылары білетіндей, бөлінген жүйелердің белгілі бір оқиғаларға реакциясы болжанбайды және жүйенің толық жүктемесіне, оның ұйымдастырылуына және желі жүктемесіне байланысты. Осы параметрлердің барлығы үнемі өзгеруі мүмкін болғандықтан, пайдаланушы сұрауын орындауға кететін уақыт бір уақытта немесе басқа уақытта айтарлықтай өзгеруі мүмкін.

Бөлінген жүйелердің артықшылықтары мен кемшіліктерін талқылау кезінде мұндай жүйелерді жобалаудың бірқатар маңызды мәселелері анықталады (9.1-кесте).

9.1-кесте. Бөлінген жүйелерді жобалау мәселелері

Дизайн мәселесі Сипаттама
Ресурстарды анықтау Бөлінген жүйедегі ресурстар әртүрлі компьютерлерде орналасқан, сондықтан ресурстарды атау жүйесі пайдаланушылар өздеріне қажетті ресурстарды оңай ашып, оларға сілтеме жасай алатындай етіп жасалуы керек. Мысал ретінде Web-беттердің адрестерін анықтайтын Uniform Resource Locator (URL) жүйесін келтіруге болады. Оңай қабылданбай және әмбебап жүйесәйкестендіру кезінде ресурстардың көпшілігі жүйені пайдаланушылар үшін қолжетімсіз болады
Коммуникациялар Интернеттің әмбебап жұмыс қабілеттілігі және көптеген таратылған жүйелер үшін Интернетте TCP/IP протоколдарының тиімді жүзеге асырылуы ең мысалдар болып табылады. тиімді жолыкомпьютерлер арасындағы өзара әрекетті ұйымдастыру. Дегенмен, өнімділікке, сенімділікке және т.б. ерекше талаптар қойылған жағдайда, жүйелік байланыстың балама әдістерін қолдануға болады.
Жүйе қызметінің сапасы Жүйе ұсынатын қызмет сапасы оның өнімділігін, қолжетімділігін және сенімділігін көрсетеді. Қызмет көрсету сапасына әсер етеді тұтас сызықфакторлар: жүйелік процестерді бөлу, ресурстарды бөлу, жүйелік және желілік аппараттық құралдар және жүйенің бейімделу қабілеті
Бағдарламалық қамтамасыз ету архитектурасы Бағдарламалық жасақтаманың архитектурасы жүйе функцияларының жүйе құрамдас бөліктеріне таралуын, сонымен қатар осы компоненттердің процессорларға таралуын сипаттайды. Жүйелік қызмет көрсетудің жоғары сапасын сақтау қажет болса, дұрыс архитектураны таңдау шешуші фактор болып табылады.

Бөлінген жүйені әзірлеушілердің міндеті – бөлінген жүйенің барлық қажетті сипаттамаларын қамтамасыз ету үшін бағдарламалық немесе аппараттық құралдарды жобалау. Ал ол үшін артықшылықтар мен кемшіліктерді білу керек әртүрлі архитектураларбөлінген жүйелер. Бөлінген жүйелер архитектурасының өзара байланысты екі түрі бар.

1. Клиент/сервер архитектурасы.Бұл модельде жүйені серверлер клиенттерге ұсынатын қызметтер жиынтығы ретінде қарастыруға болады. Мұндай жүйелерде серверлер мен клиенттер бір-бірінен айтарлықтай ерекшеленеді.

2. Бөлінген объектілердің архитектурасы.Бұл жағдайда серверлер мен клиенттер арасында ешқандай айырмашылықтар болмайды және жүйені орналасқан жері шын мәнінде маңызды емес өзара әрекеттесетін объектілердің жиынтығы ретінде қарастыруға болады. Қызмет провайдері мен олардың пайдаланушылары арасында ешқандай айырмашылық жоқ.

Бөлінген жүйеде әртүрлі жүйе құрамдастары әртүрлі бағдарламалау тілдерінде жүзеге асырылуы және әртүрлі типтегі процессорларда жұмыс істеуі мүмкін. Мәліметтер үлгілері, ақпаратты ұсыну және өзара әрекеттесу хаттамалары – мұның бәрі таратылған жүйеде міндетті түрде бір типте болмайды. Сондықтан таратылған жүйелер осы гетерогенді бөліктерді басқара алатын және олардың арасындағы өзара әрекеттесу мен деректер алмасуына кепілдік беретін бағдарламалық қамтамасыз етуді қажет етеді. Орташа бағдарламалық құралбағдарламалық қамтамасыз етудің осы класына жатады. Ол жүйенің бөлінген құрамдас бөліктерінің әртүрлі бөліктерінің ортасында орналасқан сияқты.

Бөлінген жүйелер әдетте объектіге бағытталған тәсіл арқылы әзірленеді. Бұл жүйелер еркін біріктірілген бөліктерден жасалған, олардың әрқайсысы пайдаланушымен де, жүйенің басқа бөліктерімен де тікелей әрекеттесе алады. Бұл бөліктер мүмкіндігінше тәуелсіз оқиғаларға жауап беруі керек. Осындай принциптерге құрылған бағдарламалық қамтамасыз ету объектілері бөлінген жүйелердің табиғи құрамдас бөліктері болып табылады. Егер сіз объектілер түсінігімен бұрыннан таныс болмасаңыз.

Алдыңғы тарауда біз ортақ жады бар күшті байланысқан мультипроцессорлық жүйелерді қарастырдық, ортақ құрылымдарядро деректері және процестерді орындауға шақырылатын ортақ пул. Көбінесе, алайда, бұл қамтамасыз ету мақсатында жөн бөлісупроцессорларды жұмыс ортасынан және жұмыс жағдайларынан автономды болатындай етіп тарату үшін ресурстар. Мысалы, дербес компьютерді пайдаланушы үлкенірек машинада орналасқан файлдарға қол жеткізуі керек делік, бірақ дербес компьютерді басқаруды сақтайды. uucp сияқты кейбір бағдарламалар желілік файлдарды тасымалдауды және басқа желі функцияларын қолдағанымен, пайдаланушы желіде жұмыс істеп жатқанын білетін болса, оларды пайдалану пайдаланушыдан жасырылмайды. Сонымен қатар, бұл сияқты бағдарламаларды атап өткен жөн мәтіндік редакторлар, жойылған файлдармен, әдеттегі файлдар сияқты, жұмыс істемейді. Пайдаланушыларда UNIX жүйесі мүмкіндіктерінің стандартты жиыны болуы керек және өнімділіктің ықтимал жоғалуын қоспағанда, машина шекараларын кесіп өтуді сезінбеуі керек. Мысалы, жүйенің жұмысы файлдармен ашылады және оқылады қашықтағы машиналаржергілікті жүйелерге жататын файлдармен жұмыс істеуден айырмашылығы болмауы керек.

Бөлінген жүйе архитектурасы 13.1-суретте көрсетілген. Суретте көрсетілген әрбір компьютер орталық процессордан, жадтан және перифериялық құрылғылардан тұратын дербес блок болып табылады. Модель сәйкестігі компьютерде жергілікті файлдық жүйе болмаса да бұзылмайды: оның басқа машиналармен байланысуы үшін перифериялық құрылғылар болуы керек және оған тиесілі барлық файлдар басқа компьютерде орналасуы мүмкін. Әрбір машина үшін қол жетімді физикалық жады басқа машиналарда орындалатын процестерге тәуелсіз. Бұл мүмкіндік таратылған жүйелерді алдыңғы тарауда талқыланған тығыз байланысқан мультипроцессорлық жүйелерден ажыратады. Тиісінше, әрбір машинадағы жүйенің өзегі бөлінген ортаның сыртқы жұмыс жағдайларына тәуелсіз жұмыс істейді.

13.1-сурет. Таратылған архитектурасы бар жүйе моделі


Әдебиетте жақсы сипатталған таратылған жүйелер дәстүрлі түрде келесі санаттарға бөлінеді:

Күшті ортақтығы бар және бір (әдетте үлкенірек) машинамен байланысты машиналар тобы болып табылатын перифериялық жүйелер. Перифериялық процессорлар өздерінің жүктемесін орталық процессормен бөліседі және операциялық жүйеге барлық қоңырауларды соған қайта бағыттайды. Перифериялық жүйенің мақсаты - ұлғайту жалпы өнімділікжеліде және UNIX операциялық ортасында процессорды бір процесске бөлу мүмкіндігін қамтамасыз етуде. Жүйе жеке модуль ретінде іске қосылады; Басқа таратылған жүйе үлгілерінен айырмашылығы, шеткі жүйелерде процесті жоспарлауға және жергілікті жадты бөлуге қатысты жағдайларды қоспағанда, нақты автономия болмайды.

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

Басқа машиналарда орналасқан файлдарға қол жеткізу үшін олардың стандартты құрама атауларын көрсету жеткілікті болатын абсолютті «мөлдір» бөлінген жүйелер; бұл файлдарды жойылған деп тану ядроның жауапкершілігі болып табылады. Құрама атауларында көрсетілген файлдарды іздеу жолдары дискілерге файлдық жүйелерді орнату кезінде қанша нүкте пайда болғанына қарамастан, орнату нүктелеріндегі машина шекараларын кесіп өтеді.

Бұл тарауда біз әрбір модельдің архитектурасын қарастырамыз; берілген барлық ақпарат нақты әзірлемелердің нәтижелеріне емес, әртүрлі техникалық мақалаларда жарияланған ақпаратқа негізделген. Бұл адрестеу, маршруттау, ағынды басқару және қателерді анықтау және түзету протокол модульдері мен құрылғы драйверлерімен өңделеді, басқаша айтқанда, әрбір модель пайдаланылатын желіден тәуелсіз болады деп болжайды. Перифериялық жүйелер үшін келесі бөлімде берілген жүйелік функцияларды пайдалану мысалдары кейінірек талқыланатын Ньюкасл сияқты жүйелер үшін және толығымен «мөлдір» жүйелер үшін бірдей жұмыс істейді; сондықтан біз оларды бір рет егжей-тегжейлі қарастырамыз және жүйенің басқа түрлеріне арналған бөлімдерде біз негізінен осы модельдерді барлық басқалардан ерекшелейтін белгілерге тоқталамыз.

13.1 ПЕРИФЕРИЯЛЫҚ ПРОЦЕССОРЛАР

Перифериялық жүйенің архитектурасы 13.2-суретте көрсетілген. Бұл конфигурацияның мақсаты орталық және перифериялық процессорлар арасында іске қосылған процестерді қайта бөлу арқылы желінің жалпы өнімділігін жақсарту болып табылады. Перифериялық процессорлардың әрқайсысында орталық процессормен байланысу үшін қажет болғаннан басқа жергілікті перифериялық құрылғылар жоқ. Файлдық жүйе және барлық құрылғылар орталық процессордың иелігінде. Барлық пайдаланушы процестері перифериялық процессорда жұмыс істейді және перифериялық процессорлар арасында қозғалмайды деп есептейік; процессорға ауыстырылғаннан кейін олар аяқталғанша сонда қалады. Перифериялық процессор жергілікті жүйелік қоңырауларды өңдеуге, үзілістерді басқаруға, жадты бөлуге, олармен жұмыс істеуге арналған операциялық жүйенің жеңіл нұсқасын қамтиды. желілік протоколдаржәне CPU байланыс құрылғысының драйверімен.

Жүйе орталық процессорда инициализацияланған кезде, ядро ​​байланыс желілері арқылы перифериялық процессорлардың әрқайсысына жергілікті операциялық жүйені жүктейді. Периферияда жұмыс істейтін кез келген процесс иелік ететін спутниктік процесспен байланысты Орталық Есептеуіш Бөлім(см. ); Перифериялық процессорда жұмыс істейтін процесс тек орталық процессордың қызметтерін қажет ететін жүйелік функцияны шақырғанда, перифериялық процесс өзінің серіктесімен байланысады және сұрау процессорға өңдеуге жіберіледі. Спутниктік процесс жүйелік функцияны орындайды және нәтижелерді перифериялық процессорға қайта жібереді. Перифериялық процестің оның серіктесімен қарым-қатынасы біз 11-тарауда егжей-тегжейлі талқылаған клиент-сервер қатынасына ұқсас: перифериялық процесс файлдық жүйе функцияларын қолдайтын серіктесіне клиент ретінде әрекет етеді. Бұл жағдайда қашықтағы сервер процесінде бір ғана клиент болады. 13.4 бөлімінде біз бірнеше клиенттері бар серверлік процестерді қарастырамыз.


13.2-сурет. Перифериялық жүйе конфигурациясы


13.3-сурет. Хабарлама пішімдері

Перифериялық процесс жергілікті түрде өңделуі мүмкін жүйелік функцияны шақырғанда, ядроға спутниктік процеске сұрау жіберудің қажеті жоқ. Мысалы, қосымша жад алу үшін процесс жергілікті орындау үшін sbrk функциясын шақыра алады. Алайда, егер процессор қызметтері қажет болса, мысалы, файлды ашу үшін, ядро ​​шақырылатын функцияға берілген параметрлер және процестің орындалу шарттары туралы ақпаратты спутниктік процеске жіберілетін хабарламаға кодтайды (13.3-сурет). Хабарламада жүйе функциясының клиент атынан спутниктік процесс орындалып жатқанын көрсететін белгі, функцияға берілген параметрлер және процесті орындау ортасы туралы деректер (мысалы, пайдаланушы мен топтың сәйкестендіру кодтары), олар әртүрлі. әртүрлі функциялар үшін. Хабарламаның қалған бөлігі айнымалы ұзындықтағы деректер (мысалы, файлдың жол атауы немесе жазу функциясы арқылы жазылатын деректер).

Спутниктік процесс перифериялық процесстен сұрауларды күтеді; сұрауды алғаннан кейін ол хабарламаны декодтайды, жүйе функциясының түрін анықтайды, оны орындайды және нәтижелерді перифериялық процеске жіберілген жауапқа түрлендіреді. Жауап, жүйе функциясының орындалу нәтижелеріне қосымша, қате туралы хабарды (бар болса), сигнал нөмірін және, мысалы, файлдан оқылған ақпаратты қамтитын айнымалы ұзындықтағы деректер массивін қамтиды. Шеткі процесс жауап алынғанша тоқтатылады, оны алғаннан кейін ол шифрды шешеді және нәтижелерді пайдаланушыға береді. Бұл операциялық жүйеге шақыруларды өңдеудің жалпы схемасы; Енді жеке функцияларды толығырақ қарастыруға көшейік.

Перифериялық жүйенің қалай жұмыс істейтінін түсіндіру үшін бірқатар функцияларды қарастырыңыз: getppid, ашу, жазу, айыру, шығу және сигнал. Getppid функциясы өте қарапайым, себебі ол перифериялық құрылғы мен орталық процессор арасында алмасатын қарапайым сұрау және жауап пішіндеріне қатысты. Перифериялық процессордағы ядро ​​сұралған функция getppid функциясы екенін көрсететін хабарламаны жасайды және сұрауды орталық процессорға жібереді. Орталық процессордағы спутниктік процесс перифериялық құрылғыдан хабарламаны оқиды, жүйе функциясының түрін декодтайды, оны орындайды және оның ата-анасының идентификаторын алады. Содан кейін ол жауапты құрастырады және оны сілтеменің екінші жағындағы күту перифериялық процеске жібереді. Перифериялық процессор жауап алған кезде, ол оны getppid жүйелік шақыру деп аталатын процеске жібереді. Егер перифериялық процесс деректерді (мысалы, ата-ана процесінің идентификаторы) жергілікті жадта сақтаса, оның серіктесімен байланысуы мүлде қажет болмайды.

Ашық жүйелік шақыру жасалса, перифериялық процесс файл атауын және басқа параметрлерді қамтитын серіктесіне сәйкес хабарламаны жібереді. Сәтті болса, спутниктік процесс инод пен файл кестесінің кіру нүктесін бөледі, пайдаланушы файлы дескрипторы кестесінің жазбасын өз кеңістігіне бөледі және файл дескрипторын перифериялық процеске қайтарады. Осы уақыттың бәрінде байланыс желісінің екінші жағында перифериялық процесс жауап күтеді. Оның қарамағында ашылатын файл туралы ақпаратты сақтайтын құрылымдар жоқ; ашық функциямен қайтарылған дескриптор серіктестің пайдаланушы файлының дескриптор кестесіндегі жазбаға көрсеткіш болып табылады. Функцияның орындалу нәтижелері 13.4-суретте көрсетілген.


13.4-сурет. Перифериялық процесстен ашық функцияны шақыру

Жүйенің жазу функциясына шақыру жасалса, перифериялық процессор жазу функциясының атрибуты, файл дескрипторы және жазылатын деректер көлемінен тұратын хабарламаны жасайды. Содан кейін перифериялық процестің кеңістігінен мәліметтерді байланыс желісі бойынша спутниктік процеске көшіреді. Спутниктік процесс қабылданған хабарламаның шифрын ашады, байланыс желісіндегі деректерді оқиды және оны сәйкес файлға жазады (хабарламадағы дескриптор қай индекстің көрсеткіші ретінде және файл кестесінде қайсы туралы жазба қолданылады); бұл әрекеттердің барлығы орталық процессорда орындалады. Жұмысының соңында спутниктік процесс перифериялық процесске хабарламаның қабылданғанын растайтын және файлға сәтті жазылған деректер байттарының санын қамтитын хабарлама жібереді. оқу операциясыұқсас орындалады; спутник перифериялық процесті нақты оқылған байттардың саны туралы хабарлайды (терминалдан немесе арнадан деректерді оқу жағдайында бұл сан әрқашан сұрауда көрсетілген санға сәйкес келмейді). Екі функцияны орындау үшін желі арқылы ақпараттық хабарламаларды қайта-қайта жіберу қажет болуы мүмкін, ол жіберілген деректер көлемімен және желі пакеттерінің өлшемімен анықталады.

Орталық процессорда жұмыс істеп тұрған кезде өзгерту қажет жалғыз функция - шанышқы жүйесін шақыру. Процесс осы функцияны орталық процессорда орындаған кезде, ядро ​​оған перифериялық процессорды таңдайды және арнайы процесске, серверге ағымдағы процесті түсіруді бастағалы жатқаны туралы хабарлама жібереді. Сервер сұрауды қабылдады деп есептесек, ядро ​​шанышқысы процесс кестесінің жазбасын және мекенжай кеңістігін бөле отырып, жаңа перифериялық процесті жасайды. Орталық процессор шанышқы функциясын шақырған процестің көшірмесін перифериялық процессорға жүктейді, жаңадан бөлінген мекенжай кеңістігін қайта жазады, жаңа перифериялық процесспен байланысу үшін жергілікті жерсерікті шығарады және перифериялық құрылғыға инициализациялау қажеттілігі туралы хабарлама жібереді. жаңа процесс үшін бағдарлама есептегіші. Спутниктік процесс (процессордағы) шанышқы функциясы деп аталатын процестің еншілес бөлігі болып табылады; перифериялық процесс техникалық тұрғыдан сервер процесінің еншілес бөлігі болып табылады, бірақ логикалық тұрғыдан бұл шанышқы функциясы деп аталатын процестің еншілес бөлігі. Сервер процесінің шанышқы соңындағы баламен логикалық байланысы жоқ; сервердің жалғыз жұмысы - баланы босатуға көмектесу. Жүйе құрамдас бөліктері арасындағы күшті байланыстың арқасында (перифериялық процессорларда автономия жоқ) перифериялық процесс пен спутниктік процесс бірдей идентификациялық кодқа ие. Процестер арасындағы байланыс 13.5-суретте көрсетілген: тұтас сызық ата-ана мен бала қарым-қатынасын көрсетеді, нүктелі сызық құрдастар арасындағы қатынасты көрсетеді.


13.5-сурет. Орталық процессордағы шанышқы функциясын орындау

Процесс перифериялық процессорда шанышқы функциясын орындаған кезде, ол орталық процессордағы серіктесіне хабарлама жібереді, содан кейін ол жоғарыда сипатталған барлық әрекеттер тізбегін орындайды. Спутник жаңа перифериялық процессорды таңдайды және ескі процестің кескінін түсіру үшін қажетті дайындықтарды жасайды: ол негізгі перифериялық процеске оның кескінін оқуға сұраныс жібереді, оған жауап ретінде сұралған деректерді беру екінші жағынан басталады. байланыс арнасының. Спутник жіберілген кескінді оқиды және оны перифериялық балаға қайта жазады. Кескін түсіруді аяқтаған кезде, жерсерік процессорды айырады, процессорда өзінің еншілестігін жасайды және перифериялық еншілес орындауды қай жерден бастау керектігін білуі үшін бағдарлама есептегіш мәнін перифериялық еншілеске береді. Әлбетте, спутниктік процестің баласы перифериялық балаға ата-ана ретінде тағайындалса жақсы болар еді, бірақ біздің жағдайда еншілес процестер тек оларда емес, басқа перифериялық процессорларда жұмыс істеу мүмкіндігіне ие болады. құрылды. Шанышқы функциясы аяқталғаннан кейінгі процестер арасындағы байланыс 13.6-суретте көрсетілген. Перифериялық процесс өз жұмысын аяқтағанда, спутниктік процеске сәйкес хабарлама жібереді, ол да аяқталады. Спутниктік процесс өшіруді бастау мүмкін емес.


13.6-сурет. Перифериялық процессорда шанышқы функциясын орындау

Көппроцессорлық және бірпроцессорлық жүйелерде де процесс сигналдарға бірдей жауап беруі керек: процесс не сигналдарды тексеруден бұрын жүйе функциясының орындалуын тоқтатады, немесе, керісінше, сигналды қабылдағаннан кейін дереу тоқтатылған күйден шығады және жүйе функциясын кенеттен тоқтатады, егер бұл ол тоқтатылған басымдыққа сәйкес келсе. Спутниктік процесс перифериялық процесс атынан жүйелік функцияларды орындайтындықтан, ол сигналдарға соңғысына сәйкес жауап беруі керек. Егер бір процессорлық жүйеде сигнал процесті функцияны тоқтатуға әкелсе, көппроцессорлық жүйедегі қосымша процесс дәл осылай әрекет етуі КЕРЕК. Сигнал шығу функциясының көмегімен процесті өз жұмысын тоқтатуға әкелетін жағдай туралы да солай айтуға болады: перифериялық процесс тоқтатылады және спутниктік процеске сәйкес хабарламаны жібереді, ол, әрине, аяқталады.

Перифериялық процесс жүйенің сигнал функциясын шақырғанда, ол ағымдық ақпаратты жергілікті кестелерде сақтайды және көрсетілген сигналды қабылдау немесе елемеу керектігі туралы хабарламаны өзінің серіктесіне жібереді. Спутниктік процесс сигналды түсіру немесе әдепкі әрекетті қабылдауы маңызды емес. Процестің сигналға реакциясы үш факторға байланысты (13.7-сурет): процесс жүйелік функцияны орындаған кезде сигнал қабылданады ма, сигнал сигналды елемеу үшін көрсетілді ме және сигнал бір перифериялық құрылғыда пайда болады ма? процессорда немесе басқасында. Әртүрлі мүмкіндіктерді қарастырайық.


сигандл алгоритмі /* сигналды өңдеу алгоритмі */
егер (қазіргі процесс біреудің серігі немесе прототипі болса)
егер (сигнал еленбейді)
егер (жүйе функциясын орындау кезінде алынған сигнал)
спутниктік процестің алдында сигнал қою;
перифериялық процесске сигналдық хабарлама жіберу;
else ( /* перифериялық процесс */
/* сигнал жүйелік функцияны орындау кезінде алынды ма, жоқ па */
спутниктік процеске сигнал жіберу;
спутниктік_соңы_жүйелік шақыру алгоритмі /* перифериялық процесс арқылы шақырылатын соңғы жүйе функциясы */
енгізу ақпараты: жоқ
шығыс ақпараты: жоқ
егер (үзіліс жүйелік функцияны орындау кезінде алынған болса)
перифериялық процесске үзу хабарламасын, сигналды жіберу;
басқа /* жүйелік функцияның орындалуы үзілмеді */
жауап жіберу: сигналдың келуін көрсететін жалаушаны қосу;

13.7-сурет. Перифериялық жүйеде сигналдарды өңдеу


Спутниктік процесс оның атынан жүйелік функцияны орындаған кезде перифериялық процесс тоқтатылды делік. Егер сигнал басқа жерде пайда болса, спутниктік процесс оны перифериялық процестен бұрын анықтайды. Үш жағдай болуы мүмкін.

1. Егер қандай да бір оқиғаны күту кезінде спутниктік процесс сигнал алған кезде шығуы мүмкін тоқтатылған күйге кірмесе, ол жүйелік функцияны соңына дейін орындайды, орындалу нәтижелерін перифериялық процеске жібереді және көрсетеді. сигналдардың қайсысын алды.

2. Егер процесс сигналды елемеу туралы нұсқау берсе осы түрдегі, жерсерік longjmp арқылы тоқтатылған күйден шықпастан жүйелік функцияны орындау алгоритмін орындауды жалғастырады. Перифериялық процеске жіберілген жауапта сигналды қабылдау туралы хабарлама болмайды.

3. Егер сигналды алған кезде спутниктік процесс жүйелік функцияның орындалуын үзсе (longjmp арқылы), ол бұл туралы перифериялық процеске хабарлайды және оған сигнал нөмірін айтады.

Перифериялық процесс қабылданған жауапты сигналдарды қабылдау туралы ақпаратты іздейді және егер бар болса, жүйе функциясынан шықпас бұрын сигналдарды өңдейді. Осылайша, мультипроцессорлық жүйедегі процестің әрекеті оның бірпроцессорлық жүйедегі әрекетімен дәл бірдей: ол ядро ​​режимінен шықпай-ақ шығады, немесе пайдаланушы анықтаған сигналды өңдеу функциясын шақырады, немесе сигналды елемеді және жүйеден сәтті шығады. функциясы.


13.8-сурет. Жүйелік функцияны орындау кезінде үзу

Мысалы, перифериялық процесс процессормен байланысты терминалдан оқуға функцияны шақырады және спутниктік процесс функцияны орындаған кезде оның жұмысын тоқтатады делік (13.8-сурет). Пайдаланушы үзіліс пернесін басса, процессордың өзегі спутниктік процеске сәйкес сигнал жібереді. Егер спутник тоқтатылған күйде болса, терминалдан деректерді енгізуді күтіп тұрса, ол дереу осы күйден шығып, оқу функциясын орындауды тоқтатады. Перифериялық процестің сұранысына жауап ретінде спутник қате кодын және үзіліске сәйкес сигнал нөмірін хабарлайды. Перифериялық процесс жауапты талдайды және хабарлама үзіліс сигналын көрсететіндіктен, сигналды өзіне жібереді. Оқу функциясынан шықпас бұрын перифериялық ядро ​​​​сигналдарды тексереді, серіктес процестен үзіліс сигналын анықтайды және оны қалыпты түрде өңдейді. Егер үзу сигналын қабылдау нәтижесінде перифериялық процесс шығу функциясымен жұмысын аяқтаса, бұл функция спутниктік процесті өлтіру туралы қамқорлық жасайды. Егер перифериялық процесс үзіліс сигналдарын ұстаса, ол шақырады теңшелетін функциясигналды өңдеу және оқу функциясынан шыққан кезде пайдаланушыға қате кодын қайтарады. Екінші жағынан, егер спутник перифериялық процесс атынан статистикалық жүйе функциясын орындаса, ол сигнал алған кезде оның орындалуын тоқтатпайды (стат функциясы кез келген тоқтата тұрудан шығуға кепілдік береді, өйткені оның шектеулі ресурс күту уақыты бар. ). Спутник функцияны аяқтап, сигнал нөмірін перифериялық процеске қайтарады. Перифериялық процесс өзіне сигнал жібереді және оны жүйе функциясының шығуында қабылдайды.

Жүйе функциясы орындалып жатқанда перифериялық процессорда сигнал пайда болса, перифериялық процесс басқарудың жақын арада спутниктік процестен оған оралуы немесе соңғысының белгісіз уақытқа тоқтатылған күйге өтуі туралы қараңғыда болады. Перифериялық процесс спутникке жіберіледі арнайы хабарлама, оған сигналдың пайда болуы туралы хабарлау. Орталық процессордағы ядро ​​хабарламаны декодтайды және спутникке сигнал жібереді, оның сигналды қабылдау реакциясы алдыңғы параграфтарда сипатталған (функцияны тоқтату немесе аяқтау). Перифериялық процесс спутникке тікелей хабарлама жібере алмайды, себебі спутник жүйелік функцияны орындаумен бос емес және байланыс желісінен деректерді оқымайды.

Оқылған мысалға сілтеме жасай отырып, перифериялық процесс оның серіктесі терминалдан енгізуді күтіп тұрғанын немесе басқа нәрсе істеп жатқанын білмейді. Перифериялық процесс спутникке сигналдық хабарламаны жібереді: егер спутник үзіліс басымдығы бар тоқтатылған күйде болса, ол дереу осы күйден шығып, жүйе функциясын орындауды тоқтатады; жылы әйтпесефункцияның орындалуы сәтті аяқталады.

Ақырында жүйе функциясының орындалуына байланысты емес уақытта келетін сигнал жағдайын қарастырайық. Егер сигнал басқа процессорда пайда болса, спутник алдымен оны қабылдайды және сигнал перифериялық процеске қатысты ма, жоқ па, перифериялық процеске сигналдық хабарлама жібереді. Перифериялық ядро ​​хабарламаның шифрын шешеді және қалыпты түрде жауап беретін процесске сигнал жібереді. Сигнал перифериялық процессорда пайда болса, процесс оның спутнигінің қызметтеріне жүгінбестен стандартты әрекеттерді орындайды.

Перифериялық процесс басқа перифериялық процестерге сигнал жібергенде, ол өлтіру хабарламасын кодтайды және оны шақырылған функцияны жергілікті орындайтын спутниктік процеске жібереді. Сигнал тағайындалған кейбір процестер басқа перифериялық процессорларда орналасса, олардың спутниктері сигналды қабылдайды (және жоғарыда сипатталған тәсілмен оны қабылдауға әрекет етеді).

13.2 NEWCASTLE COMMUNICATION

Алдыңғы бөлімде біз перифериялық процессорда пайда болатын файлдарды басқару ішкі жүйесінің функцияларына барлық шақыруларды қашықтағы (орталық) процессорға жіберумен сипатталатын тығыз байланысқан жүйенің түрін қарастырдық. Енді басқа машиналарда орналасқан файлдарға қол жеткізетін машиналардан тұратын аз біріктірілген жүйелерге көшейік. желісінде дербес компьютерлержәне жұмыс станциялары, мысалы, пайдаланушылар жиі орналасқан файлдарға қол жеткізеді үлкен көлік. Келесі екі бөлімде біз барлық жүйелік функциялар жергілікті ішкі жүйелерде орындалатын жүйе конфигурацияларын қарастырамыз, бірақ басқа машиналарда орналасқан файлдарға (файлдарды басқару ішкі жүйесінің функциялары арқылы) қол жеткізуге болады.

Бұл жүйелер жойылған файлдарды анықтау үшін келесі екі жолдың бірін пайдаланады. Кейбір жүйелер құрама файл атына арнайы таңба қосады: осы таңбаның алдындағы атау құрамдас бөлігі машинаны анықтайды, қалған атау осы машинада орналасқан файл болып табылады. Мәселен, күрделі атау


"sftig!/fs1/mjb/rje"


«sftig» машинасында орналасқан «/fs1/mjb/rje» файлын анықтайды. Бұл файлды анықтау схемасы конвенцияға сәйкес келеді бағдарламасы арқылы орнатылған UNIX типті жүйелер арасында файлдарды тасымалдауға арналған uucp. Басқа схемада жойылған файлдар атқа арнайы префикс қосу арқылы анықталады, мысалы:


/../sftig/fs1/mjb/rje


мұндағы "/../" - файлдың жойылғанын көрсететін префикс; файл атауының екінші компоненті қашықтағы машинаның аты болып табылады. Бұл схема таныс UNIX файл атауы синтаксисін пайдаланады, сондықтан бірінші схемадан айырмашылығы, мұнда пайдаланушы бағдарламаларыәдеттен тыс конструкциясы бар атауларды қолданудың қажеті жоқ (қараңыз).


13.9-сурет. Файлдық серверге (процессорға) сұраныстарды құрастыру


Осы бөлімнің қалған бөлігін ядро ​​қашықтағы файлдарды танымайтын Ньюкасл сілтемесі арқылы жүйе үлгісін қарауға жұмсаймыз; бұл функция стандартты C кітапханасының ішкі бағдарламаларына толығымен тағайындалған, олар бұл жағдайда рөл атқарады жүйелік интерфейс. Бұл ішкі бағдарламалар сипатталған сәйкестендіру әдістерінің екеуінде де файлдың қашықтағы мүмкіндігін қамтитын файл атауының бірінші құрамдас бөлігін талдайды. Бұл кітапхана әрекеттері файл атауларын талдамайтын тәртіптен ауытқу. 13.9-суретте файл серверінің сұраулары қалай құрастырылатыны көрсетілген. Егер файл жергілікті болса, ядро жергілікті жүйесұрауды өңдейді әдеттегідей. Кері жағдайды қарастырыңыз:


open("/../sftig/fs1/mjb/rje/file", O_RDONLY);


C кітапханасының ашық ішкі бағдарламасы файлдың жол атауының алғашқы екі компонентін талдайды және файлды қашықтағы «sftig» машинасында іздеу керек екенін біледі. Процестің осы машинамен бұрын байланысы бар-жоғы туралы ақпаратқа ие болу үшін ішкі бағдарлама осы фактіні есте сақтайтын арнайы құрылымды жасайды, ал теріс жауап болған жағдайда, ол компьютерде жұмыс істейтін файл серверімен байланыс орнатады. қашықтағы машина. Процесс қашықтан өңдеуге арналған бірінші сұрауын тұжырымдаған кезде қашықтағы сервер сұрауды растайды, қажет болған жағдайда пайдаланушы идентификаторы мен топ идентификаторы өрістерін жазады және клиент процесінің атынан әрекет ету үшін жерсерік процесін жасайды.

Клиент сұрауларын орындау үшін жерсерік қашықтағы құрылғыда клиентпен бірдей файл рұқсаттарына ие болуы керек. Басқаша айтқанда, «mjb» пайдаланушысы қашықтағы және жергілікті файлдарға бірдей қатынас құқықтарына ие болуы керек. Өкінішке орай, «mjb» клиент идентификаторы қашықтағы құрылғыдағы басқа клиент идентификаторымен бірдей болуы мүмкін. Осылайша, желіге қосылған машиналардағы жүйелік әкімшілер әрбір пайдаланушыға бүкіл желіде бірегей идентификациялық код тағайындалғанын қамтамасыз етуі керек немесе желілік қызмет сұрауы жасалған кезде кодты түрлендіруді орындауы керек. Бұл орындалмаса, жерсерік процесі қашықтағы құрылғыда басқа клиент құқықтарына ие болады.

Неғұрлым нәзік мәселе - қашықтағы файлдармен жұмыс істеуге қатысты суперпайдаланушы құқықтарын алу. Бір жағынан, қашықтағы жүйенің қауіпсіздік басқару элементтерін шатастырмау үшін суперпайдаланушы клиент қашықтағы жүйеде бірдей құқықтарға ие болмауы керек. Екінші жағынан, кейбір бағдарламалар, егер оларға суперпайдаланушы құқығы берілмесе, жай ғана жұмыс істей алмайды. Мұндай бағдарламаның мысалы ретінде жаңа каталогты жасайтын mkdir бағдарламасы (7-тарауды қараңыз) болып табылады. Қашықтағы жүйе клиентке жаңа каталог жасауға рұқсат бермейді, өйткені суперпайдаланушы құқықтары жоюға қолданылмайды. Қашықтағы каталогтарды құру мәселесі mkdir жүйесінің функциясын пайдаланушыға қажетті барлық қосылымдарды автоматты түрде орнатуда оның мүмкіндіктерін кеңейту бағытында қайта қараудың маңызды себебі болып табылады. Дегенмен, қашықтағы файлдарға суперпайдаланушы құқықтарына ие болатын setuid бағдарламалары (оның ішінде mkdir бағдарламасы) әлі де шешуді қажет ететін кең таралған мәселе болып табылады. Мүмкін, бұл мәселенің ең жақсы шешімі қашықтағы суперпайдаланушылардың оларға қол жеткізуін сипаттайтын файлдар үшін қосымша сипаттарды орнату болуы мүмкін; өкінішке орай, бұл диск индексінің құрылымын өзгертуді қажет етеді (жаңа өрістерді қосу тұрғысынан) және бар жүйелерде тым көп шатасулар тудырады.

Ашық ішкі бағдарлама сәтті орындалса, жергілікті кітапхана желілік хост мекенжайын, жерсерік процесінің идентификаторын, файл дескрипторын және басқа ұқсас ақпаратты қамтитын пайдаланушы қол жетімді құрылымда осы әсерге белгі қалдырады. Кітапхананың оқу және жазу бағдарламалары дескриптор негізінде файлдың қашықтағы екенін анықтайды, егер солай болса, спутникке хабарлама жібереді. Клиенттік процесс қашықтағы машинаның қызметтерін қажет ететін жүйелік функцияларға қол жеткізудің барлық жағдайларында өзінің серіктесімен өзара әрекеттеседі. Егер процесс бір қашықтағы құрылғыда орналасқан екі файлға қатынасса, ол бір жерсерікті пайдаланады, бірақ файлдар әртүрлі машиналарда орналасса, екі жерсерік әлдеқашан пайдаланылады: әрбір құрылғыда бір. Екі жерсерік қашықтағы құрылғыдағы файлға екі процесс қатынасқанда да пайдаланылады. Жүйе функциясын спутник арқылы шақырған кезде процесс функция нөмірін, іздеу жолының атауын және перифериялық процессорлары бар жүйедегі хабарлама құрылымына енгізілгенге ұқсас басқа қажетті ақпаратты қамтитын хабарламаны жасайды.

Ағымдағы каталогта операцияларды орындау механизмі күрделірек. Процесс қашықтағы каталогты ағымдағы каталог ретінде таңдаған кезде, кітапхана жұмысы ағымдағы каталогты өзгертетін спутникке сәйкес хабарламаны жібереді, бұл ретте бағдарлама каталогтың қашықтағы екенін есте сақтайды. Іздеу жолының атауы қиғаш сызықтан (/) басқа таңбадан басталатын барлық жағдайларда ішкі бағдарлама атауды қашықтағы құрылғыға жібереді, мұнда спутниктік процесс ағымдағы каталогтан басталатын жолды қадағалайды. Ағымдағы каталог жергілікті болса, ішкі бағдарлама іздеу жолының атауын жергілікті жүйе ядросына жай ғана жібереді. Жүйелік функцияқашықтағы каталогтағы chroot ұқсас, бірақ оның жергілікті жүйе ядросында орындалуы байқалмайды; қатаң түрде айтқанда, процесс бұл операцияны қараусыз қалдыруы мүмкін, өйткені оның орындалуын тек кітапхана түсіреді.

Процесс шанышқы функциясын шақырғанда, сәйкес кітапхана тәртібі әрбір жерсерікке хабарлар жібереді. Спутниктік процестер шанышқы операциясын орындайды және олардың балаларының идентификаторларын ата-аналық клиентке жібереді. Клиент процесі басқаруды пайда болған еншіге тасымалдайтын шанышқы жүйесінің шақыруын шақырады; жергілікті бала мекенжайлары кітапхананың ішкі бағдарламасымен сақталған қашықтағы бала-спутникпен диалогта болады. Шанышқы функциясының бұл түсіндірмесі спутниктік процестерді басқаруды жеңілдетеді файлдарды ашыңызжәне ағымдағы каталогтар. Қашықтағы файлдарда жұмыс істейтін процесс шыққанда (шығу функциясына қоңырау шалу арқылы) бағдарлама хабарды қабылдаған кезде де солай істеу үшін оның барлық қашықтағы серіктестеріне хабарлар жібереді. Жаттығуларда exec және exit жүйесінің функцияларын жүзеге асырудың жеке аспектілері қарастырылған.

Ньюкасл қосылымының артықшылығы процестің қашықтағы файлдарға қол жеткізуі «мөлдір» болады (пайдаланушыға көрінбейді) және жүйе ядросына ешқандай өзгертулер енгізудің қажеті жоқ. Дегенмен, бұл дамудың бірқатар кемшіліктері де бар. Ең алдымен оны іске асыру жүйе өнімділігін төмендетуі мүмкін. Кеңейтілген C кітапханасын пайдаланудың арқасында, процесс қашықтағы файлдарға қол жеткізбесе де, әрбір процесс пайдаланатын жад көлемі артады; кітапхана ядроның функцияларын қайталайды және өзі үшін көбірек жад кеңістігін қажет етеді. Процестердің өлшемін ұлғайту ұзағырақ іске қосу кезеңіне әкеледі және жад ресурстары үшін көбірек келіспеушілік тудыруы мүмкін, тапсырмаларды жиі түсіру және ауыстыру үшін жағдай жасайды. Әрбір ядроға қол жеткізу ұзақтығының ұлғаюына байланысты жергілікті сұраныстар баяу орындалады, баяулау қашықтағы сұрауларды өңдеуге де қауіп төндіруі мүмкін, оларды желі арқылы жіберу құны артады. Пайдаланушы деңгейінде қашықтағы сұрауларды қосымша өңдеу контекстік қосқыштардың, түсіру және ауыстыру процестерінің санын арттырады. Соңында, қашықтағы файлдарға қол жеткізу үшін бағдарламаларды жаңа кітапханалар арқылы қайта құрастыру керек; онсыз ескі бағдарламалар мен орнатылған нысан модульдері қашықтағы файлдармен жұмыс істей алмайды. Бұл кемшіліктердің барлығы келесі бөлімде сипатталған жүйеде жоқ.

13.3 «МӨЛІКТІ» ТАРТЫЛҒАН ФАЙЛДЫҚ ЖҮЙЕЛЕР

«Мөлдір бөлу» термині бір құрылғыдағы пайдаланушылардың бір файлдық жүйеден басқа траверсті бекіту нүктелеріне ауысқан кезде өз компьютеріндегі пайдаланушылар сияқты машина шекараларын кесіп өтіп жатқанын түсінбестен басқа құрылғыдағы файлдарға қол жеткізе алатынын білдіреді. Процесстер қашықтағы машиналарда орналасқан файлдарға сілтеме жасайтын атаулар жергілікті файл атауларына ұқсас: оларда ерекшеленетін таңбалар жоқ. 13.10-суретте көрсетілген конфигурацияда В машинасындағы «/usr/src» каталогы А машинасындағы «/usr/src» каталогында «орнатылған». әртүрлі жүйелербірдей пайдалануға арналған көзіжүйесі, дәстүрлі түрде «/usr/src» каталогында орналасқан. A құрылғысында жұмыс істейтін пайдаланушылар әдеттегі файл атауы синтаксисін (мысалы: "/usr/src/cmd/login.c") пайдаланып, В құрылғысында орналасқан файлдарға қол жеткізе алады және файл қашықтағы немесе жергілікті екенін ядроның өзі шешеді. В машинасындағы пайдаланушылар өздерінің жергілікті файлдарына қол жеткізе алады (бірдей файлдарға A құрылғысының пайдаланушылары қол жеткізе алатынын білмейді), бірақ өз кезегінде А машинасында орналасқан файлдарға қол жеткізе алмайды. Әрине, орнату сияқты басқа опциялар мүмкін. жергілікті жүйенің түбірінде орналасқан барлық қашықтағы жүйелер, пайдаланушыларға барлық жүйелердегі барлық файлдарға қол жеткізуге мүмкіндік береді.


13.10-сурет. Қашықтан орнатудан кейінгі файлдық жүйелер

Жергілікті файлдық жүйелерді орнату мен қашықтағы файлдық жүйелерді ашу арасындағы ұқсастық орнату функциясының қашықтағы файлдық жүйелерге бейімделуіне әкелді. Бұл жағдайда ядрода кеңейтілген форматты орнату кестесі болады. Орнату функциясын орындай отырып, ядро ​​қашықтағы машинамен желілік қосылымды орнатады және ақпаратты орнату кестесінде сақтайды. бұл байланыс.

Қызықты мәселе - «...» қамтитын жол атаулары. Егер процесс қашықтағы файлдық жүйедегі каталогты ағымдағы каталогқа айналдырса, атаудағы ".." таңбаларын пайдалану ағымдағы каталог үстіндегі файлдарға қол жеткізуге емес, процесті жергілікті файлдық жүйеге қайтарады. 13.10-суретке қайта оралсақ, А машинасына жататын процесс бұрын қашықтағы файлдық жүйеде орналасқан «/usr/src/cmd» каталогын ағымдағы каталог ретінде таңдаған кезде команданы орындайтынын ескереміз.



ағымдағы каталог В машинасының емес, А машинасының түбірлік каталогы болады. Қашықтағы жүйенің ядросында жұмыс істейтін namei алгоритмі ".." таңбалар тізбегін ескере отырып, шақыру процесінің клиент процесінің агенті екенін тексереді, және солай болса, клиент ағымдағы жұмыс каталогын қашықтағы файлдық жүйенің түбірі ретінде қарастыра ма, жоқ па параметрін орнатады.

Қашықтағы құрылғымен байланыс екі форманың бірін алады: қашықтағы процедураны шақыру немесе қашықтағы жүйе функциясын шақыру. Бірінші пішінде инодтармен жұмыс істейтін әрбір ядро ​​​​ процедурасы инод қашықтағы файлды меңзейтінін тексереді және егер солай болса, көрсетілген операцияны орындау үшін қашықтағы машинаға сұрау жібереді. Бұл схемафайлдық жүйені қолдаудың дерексіз құрылымына табиғи түрде сәйкес келеді әртүрлі түрлері 5 тараудың қорытынды бөлігінде сипатталған. Осылайша, сілтеме жасай отырып қашықтағы файлжеліде қабылданған күту уақытын ескере отырып, сұрауға жауап беру уақытының сәйкес ұлғаюымен, саны файлдағы болжамды операциялардың санымен анықталатын бірнеше хабарламаларды желі арқылы жіберуді бастауға болады. Қашықтағы операциялардың әрбір жинағы кем дегенде индексті құлыптау, сілтемелерді санау және т.б. әрекеттерді қамтиды. Модельді жақсарту үшін бірнеше операцияларды бір сұрауға (хабарламаға) біріктіруге және ең маңызды деректерді буферлеуге байланысты әртүрлі оңтайландыру шешімдері ұсынылды (см. ).


13.11-сурет. Қашықтағы файлды ашу


"/usr/src/cmd/login.c" қашықтағы файлын ашатын процесті қарастырайық, мұнда "src" орнату нүктесі болып табылады. Файл атауын талдау арқылы (namei-iget схемасын пайдалану) ядро ​​файлдың жойылғанын анықтайды және құлыпталған инодты алу үшін өзі орналасқан құрылғыға сұрау жібереді. Қажетті жауапты алғаннан кейін жергілікті ядро ​​қашықтағы файлға сәйкес индекстің жадтағы көшірмесін жасайды. Содан кейін ядро ​​​​тексереді қажетті құқықтарқашықтағы құрылғыға басқа хабарлама жіберу арқылы файлға қол жеткізу (мысалы, оқу үшін). Өнімділік ашық алгоритм 5-тарауда берілген жоспарға сәйкес, алгоритм толығымен аяқталмайынша және индекс босатылғанға дейін қажет болған жағдайда қашықтағы машинаға хабарламалар жіберуді жалғастырады. Ашық алгоритм аяқталғаннан кейін ядро ​​деректерінің құрылымдары арасындағы байланыс 13.11 суретте көрсетілген.

Клиент оқу жүйесінің функциясын шақырса, клиент ядросы жергілікті индексті құлыптайды, қашықтағы индексті құлыптау сұрауын жібереді, деректер сұрауын оқиды, деректерді жергілікті жадқа көшіреді, қашықтағы индексті шығару сұрауын жібереді және жергілікті индексті шығарады. Бұл схема бар бір процессорлы ядроның семантикасына сәйкес келеді, бірақ желіні пайдалану жиілігі (бір жүйе функциясына бірнеше шақыру) бүкіл жүйенің өнімділігін төмендетеді. Дегенмен, желідегі хабарламалар ағынын азайту үшін бірнеше операцияларды бір сұрауға біріктіруге болады. Оқу функциясы бар мысалда клиент серверге бір жалпы «оқу» сұрауын жібере алады және сервердің өзі орындалған кезде индексті алуды және шығаруды шешеді. Желілік трафикті азайтуға қашықтағы буферлерді пайдалану арқылы да қол жеткізуге болады (жоғарыда талқыланғандай), бірақ осы буферлерді пайдаланатын жүйелік файл функцияларының дұрыс жұмыс істеуін қамтамасыз ету үшін мұқият болу керек.

Қашықтағы машинамен байланыстың екінші түрінде (қашықтағы жүйе функциясын шақыру) жергілікті ядро ​​​​жүйе функциясының қашықтағы файлға қатысты екенін анықтайды және оның шақыруында көрсетілген параметрлерді жібереді. қашықтағы жүйе, ол функцияны орындайды және нәтижелерді клиентке қайтарады. Клиенттік машина функцияның нәтижелерін алады және шақыру күйінен шығады. Жүйе функцияларының көпшілігін ақылға қонымды уақыттан кейін жауап беретін бір ғана желілік сұрауды пайдалану арқылы орындауға болады, бірақ барлық функциялар мұндай үлгіге сәйкес келмейді. Мәселен, мысалы, белгілі бір сигналдар қабылданған кезде, ядро ​​«ядро» деп аталатын процесс үшін файлды жасайды (7-тарау). Бұл файлды жасау белгілі бір жүйе функциясымен байланысты емес, бірақ файлды жасау, рұқсаттарды тексеру және бірқатар жазу әрекеттерін орындау сияқты бірнеше операцияларды аяқтайды.

Ашық жүйе функциясы жағдайында қашықтағы машинаға жіберілген функцияны орындауға сұраныс қашықтағы файлды ерекшелендіретін іздеу жолы атауы құрамдас бөлігі түсірілгеннен кейін қалған файл атауының бөлігін, сондай-ақ әртүрлі жалаушаларды қамтиды. "/usr/src/cmd/login.c" файлын ашудың алдыңғы мысалында ядро ​​қашықтағы құрылғыға "cmd/login.c" атауын жібереді. Хабарлама сонымен қатар қашықтағы құрылғыдағы файл рұқсаттарын тексеру үшін қажет пайдаланушы және топ идентификациялық кодтары сияқты аутентификация деректерін қамтиды. Егер қашықтағы құрылғыдан ашық функция сәтті болғаны туралы жауап алынса, жергілікті ядро ​​жергілікті машина жадындағы бос инодты таңдайды және оны қашықтағы файлдың иноды ретінде белгілейді, қашықтағы машина мен қашықтағы инод туралы ақпаратты сақтайды. , және оны әдеттегі тәртіпте бөледі. жаңа рекордфайл кестесінде. Қашықтағы машинадағы нақты индекспен салыстырғанда, жергілікті машинаға тиесілі индекс формальды болып табылады, модель конфигурациясын бұзбайды, ол негізінен қашықтағы процедураны шақыру кезінде қолданылатынмен бірдей (13.11-сурет). Егер процесс деп аталатын функция қашықтағы файлға дескриптор арқылы қатынасса, жергілікті ядро ​​​​(жергілікті) индекстен файлдың қашықтағы екенін біледі, шақырылатын функцияны қамтитын сұрауды құрастырады және оны қашықтағы құрылғыға жібереді. Сұрауда қашықтағы инодқа көрсеткіш бар, оның көмегімен жерсерік процесі қашықтағы файлдың өзін анықтай алады.

Кез келген жүйелік функцияны орындау нәтижесін алған ядро ​​оны өңдеу үшін арнайы бағдарламаның қызметтерін пайдалана алады (одан кейін ядро ​​​​функциямен жұмысын аяқтайды), өйткені бір процессорлы жүйеде қолданылатын нәтижелерді жергілікті өңдеу. бірнеше процессорлары бар жүйе үшін әрқашан қолайлы емес. Нәтижесінде қашықтағы жүйелік функцияларды орындауды қолдауды қамтамасыз етуге бағытталған жүйелік алгоритмдердің семантикасын өзгертуге болады. Дегенмен, бұл ретте желіде хабарламалардың ең аз ағыны айналады, бұл жүйенің кіріс сұрауларына ең аз жауап беру уақытын қамтамасыз етеді.

13.4 ТАПСЫРУ ПРОЦЕСІСІЗ ТАРТЫЛҒАН МҮЛГІ

«Мөлдір» таратылған жүйеде спутниктік процестерді пайдалану қашықтағы файлдарды бақылауды жеңілдетеді, бірақ қашықтағы жүйенің технологиялық кестесі көп уақыт жұмыс істемейтін спутниктік процестермен шамадан тыс жүктеледі. Басқа схемаларда қашықтағы сұрауларды өңдеу үшін арнайы серверлік процестер қолданылады (қараңыз және ). Қашықтағы жүйеде кіріс қашықтағы сұрауларды өңдеу үшін мезгіл-мезгіл тағайындайтын сервер процестерінің жинағы (пул) бар. Сұрауды өңдегеннен кейін сервер процесі пулға оралады және басқа сұрауларды өңдеуге дайын болады. Сервер екі сұрау арасында пайдаланушы контекстін сақтамайды, себебі ол бірден бірнеше процестердің сұрауларын өңдей алады. Сондықтан клиенттік процестен келетін әрбір хабарлама оның орындалу ортасы туралы ақпаратты қамтуы керек, атап айтқанда: пайдаланушы идентификациялық кодтары, ағымдағы каталог, сигналдар және т.б. Спутниктік процестер бұл деректерді пайда болған сәтте немесе жүйе функцияларын орындау кезінде алады.

Процесс қашықтағы файлды ашқан кезде қашықтағы жүйедегі ядро ​​файлға кейінгі сілтемелер үшін инодты тағайындайды. Жергілікті машинада қашықтағы машина мен қашықтағы инодты анықтайтын индекс кестесіндегі жазбасы бар пайдаланушы файлының дескриптор кестесі, файл кестесі және әдеттегі жазбалар жинағы бар индекс кестесі бар. Жүйе функциясы (оқу сияқты) файл дескрипторын пайдаланатын жағдайларда, ядро ​​бұрын тағайындалған қашықтағы инодты көрсететін хабарламаны жібереді және процеске қатысты ақпаратты береді: пайдаланушы идентификациялық коды, файлдың максималды өлшемі және т.б. серверлік процесс оның иелігінде болса, клиентпен өзара әрекеттесу жоғарыда сипатталған пішінді алады, бірақ клиент пен сервер арасындағы байланыс тек жүйе функциясының ұзақтығына орнатылады.

Спутниктік процестердің орнына серверлерді пайдалансаңыз, деректер ағынын, сигналдарды және қашықтағы құрылғыларды басқару қиынырақ болуы мүмкін. Өтініш берушілер көп мөлшердесерверлердің жеткілікті саны болмаған кезде қашықтағы машинаға сұраулар кезекке қойылуы керек. Бұл негізгі желіде қолданылатын протоколға қарағанда жоғары деңгейде протоколды қажет етеді. Спутниктік үлгіде, керісінше, сұраудың шамадан тыс жүктелуі жойылады, себебі барлық клиент сұраулары синхронды түрде өңделеді. Клиентте ең көбі бір күтудегі сұрау болуы мүмкін.

Жүйе функциясының орындалуын тоқтататын сигналдарды өңдеу де серверлерді пайдаланған кезде күрделірек, өйткені қашықтағы құрылғы содан кейін функцияға қызмет көрсететін сәйкес серверді іздеуі керек. Тіпті барлық серверлердің бос еместігіне байланысты жүйелік функцияны орындауға сұраныс өңдеу күту күйінде болуы да жоққа шығарылмайды. Қайшылықтың туындау шарттары сервер шақыру процесіне жүйелік функцияның орындалу нәтижесін қайтарған кезде де қосылады және сервердің жауабы желі арқылы тиісті сигналдық хабарламаны жіберуді қамтиды. Әрбір хабарлама қашықтағы жүйе оны тани алатындай және қажет болған жағдайда сервер процестерін үзетіндей етіп белгіленуі керек. Спутниктерді пайдалану кезінде клиенттің сұранысын орындауға қызмет ететін процесс автоматты түрде анықталады, ал сигнал болған жағдайда сұранысты өңдеудің аяқталғанын немесе аяқталмағанын тексеру қиын емес.

Ақырында, егер клиент шақырған жүйелік функция серверді шексіз кідіртуге әкелсе (мысалы, қашықтағы терминалдан деректерді оқу кезінде), сервер сервер пулын босату үшін басқа сұрауларды өңдей алмайды. Егер бірнеше процесс қашықтағы құрылғыларға бірден қол жеткізсе және серверлердің саны жоғарыдан шектелсе, айтарлықтай кедергі бар. Бұл жерсеріктерге қатысты емес, себебі әрбір клиент процесіне спутник тағайындалады. Қашықтағы құрылғылар үшін серверлерді пайдаланудың тағы бір мәселесі 13-14-жаттығуда қарастырылады.

Спутниктік процестерді пайдаланудың артықшылықтарына қарамастан, процесс кестесін еркін енгізу қажеттілігі іс жүзінде соншалықты өткір болады, көп жағдайда серверлік процестер әлі де қашықтағы сұрауларды өңдеу үшін қолданылады.


13.12-сурет. Ядро деңгейіндегі қашықтағы файлдармен әрекеттесу концептуалды диаграммасы

13.5 ҚОРЫТЫНДЫ

Бұл тарауда біз қашықтағы компьютерлерде орналасқан файлдармен жұмыс істеудің үш схемасын қарастырдық, қашықтағы файлдық жүйелерді жергілікті жүйенің кеңейтімі ретінде қарастырдық. Бұл схемалар арасындағы архитектуралық айырмашылықтар 13.12-суретте көрсетілген. Бұлардың барлығы өз кезегінде алдыңғы тарауда сипатталған мультипроцессорлық жүйелерден процессорлардың физикалық жадыны ортақ пайдаланбауымен ерекшеленеді. Перифериялық процессор жүйесі орталық процессордың файлдық ресурстарын ортақ пайдаланатын процессорлардың тығыз байланысқан жиынтығынан тұрады. Ньюкасл типті сілтеме қашықтағы файлдарға жасырын («мөлдір») қол жеткізуді қамтамасыз етеді, бірақ операциялық жүйе ядросы арқылы емес, арнайы C кітапханасын пайдалану арқылы. Осы себепті сілтеменің осы түрін қолдануға ниет білдірген барлық бағдарламаларды қайта құрастыру керек, бұл жалпы алғанда бұл схеманың елеулі кемшілігі болып табылады. Файлдың қашықтығы файл орналасқан машинаны сипаттайтын таңбалардың арнайы тізбегі арқылы көрсетіледі және бұл бағдарламалардың тасымалдануын шектейтін тағы бір фактор.

«Мөлдір» бөлінген жүйелерде қашықтағы файлдарға қол жеткізу үшін орнату жүйесінің функциясының модификациясы қолданылады. Жергілікті жүйедегі индекстер қашықтағы файлдар ретінде белгіленеді және жергілікті ядро ​​​​қашықтағы жүйеге сұралған жүйе функциясын, оның параметрлерін және қашықтағы индексті сипаттайтын хабарлама жібереді. «Мөлдір» таратылған жүйедегі байланыс екі нысанда қолдау көрсетеді: қашықтағы процедуралық шақыру түрінде (индекске қатысты операциялардың тізімін қамтитын хабарлама қашықтағы машинаға жіберіледі) және қашықтағы жүйе функциясы түрінде шақыру (хабарлама сұралған функцияны сипаттайды). Тараудың соңғы бөлігінде спутниктік процестер мен серверлерді пайдаланып қашықтағы сұрауларды өңдеуге қатысты мәселелер талқыланады.

13.6 ЖАТТЫҒУЛАР

*бір. Перифериялық процессорлары бар жүйеде шығу жүйесінің функциясының орындалуын сипаттаңыз. Бұл жағдайдың айырмашылығы неде және ол ұсталмаған сигналды алған кезде процесс тоқтайды? Ядро жадтың мазмұнын қалай тастауы керек?

2. Процестер SIGKILL сияқты сигналдарды елемеу мүмкін емес; Процесс мұндай сигналды қабылдағанда перифериялық жүйеде не болатынын түсіндіріңіз.

*3. Перифериялық процессорлары бар жүйеде exec жүйесінің функциясының орындалуын сипаттаңыз.

*төрт. Жалпы жүктемені теңестіру үшін процессор перифериялық процессорлар арасында процестерді қалай бөлуі керек?

*5. Перифериялық процессордың оған жүктелген барлық процестерді орналастыру үшін жады жеткіліксіз болса не болады? Желіде процестерді қалай босату және ауыстыру керек?

6. Файл атауында арнайы префикс табылса, қашықтағы файл серверіне сұраулар жіберілетін жүйені қарастырыңыз. Процесс функцияны шақырсын execl("/../sftig/bin/sh", "sh", 0); Орындалатын файл қашықтағы компьютерде орналасқан, бірақ жергілікті жүйеде орындалуы керек. Қашықтағы модуль жергілікті жүйеге қалай тасымалданатынын түсіндіріңіз.

7. Әкімші қосу керек болса бар жүйеНьюкасл жаңа машиналарды байланыстыратын болса, бұл туралы C кітапханасының модульдерін хабарлаудың ең жақсы жолы қандай?

*сегіз. Exec функциясы кезінде ядро ​​қашықтағы файлдарға сілтемелерді қадағалау үшін Ньюкасл сілтемесі пайдаланатын кітапхана кестелерін қоса, процестің мекенжай кеңістігін қайта жазады. Функцияны орындағаннан кейін процесс осы файлдарға ескі дескрипторлары арқылы қол жеткізу мүмкіндігін сақтауы керек. Осы сәттің орындалуын сипаттаңыз.

*9. 13.2-бөлімде көрсетілгендей, Ньюкасл сілтемесі бар жүйелерде шығу жүйесінің функциясын шақыру спутниктік процеске хабар жіберіліп, спутниктік процестің шығуына әкеледі. Бұл кітапхана жұмысының тәртібі деңгейінде жүзеге асырылады. Жергілікті процесс ядро ​​режимінен шығуға шақыратын сигнал алған кезде не болады?

*он. Ньюкасл сілтемесі бар жүйеде қашықтағы файлдар атқа арнайы префикс қосу арқылы анықталады, пайдаланушы файл атауының құрамдас бөлігі ретінде «..» (ата-аналық каталог) көрсету арқылы қашықтағы орнату нүктесін қалай айналып өте алады ?

11. Біз 7-тараудан белгілі болғандай, әртүрлі сигналдар процестің жадының мазмұнын ағымдағы каталогқа шығаруға себепші болады. Ағымдағы каталог қашықтағы файлдық жүйеден болса не болуы керек? Жүйе Ньюкасл сілтемесін пайдаланса, сіз қандай жауап бересіз?

*12. Барлық спутниктік немесе серверлік процестер жүйеден жойылса, жергілікті процестердің салдары қандай болады?

*13. «Мөлдір» бөлінген жүйе екі қашықтағы файл атауын параметр ретінде қабылдай алатын сілтеме алгоритмін, сондай-ақ бірнеше ішкі оқуды қамтитын exec алгоритмін қалай жүзеге асыруы керектігі туралы ойланыңыз. Байланыстың екі түрін қарастырайық: қашықтағы процедураны шақыру және қашықтағы жүйе функциясын шақыру.

*он төрт. Құрылғыға қатынасу кезінде сервер процесі тоқтатылған күйге өтуі мүмкін, оны құрылғы драйвері шығарады. Әрине, егер серверлер саны шектеулі болса, жүйе бұдан былай жергілікті машинаның сұраныстарын қанағаттандыра алмайды. Құрылғымен байланысты енгізу/шығару аяқталуын күту кезінде барлық сервер процестері тоқтатылмайтын сенімді схеманы ойлап табыңыз. Жүйе функциясы барлық серверлер бос болмайынша орындалуын тоқтатпайды.


13.13-сурет. Терминал серверінің конфигурациясы

*он бес. Пайдаланушы жүйеге кірген кезде, терминал желісінің тәртібі терминал процесс тобын басқаратын оператор терминалы екендігі туралы ақпаратты сақтайды. Осы себепті пайдаланушы терминал пернетақтасындағы «үзіліс» пернесін басқан кезде топтағы барлық процестер үзіліс сигналын алады. Жүйе конфигурациясын қарастырайық, онда барлық терминалдар бір машинаға физикалық қосылған, бірақ пайдаланушыны тіркеу басқа машиналарда логикалық түрде жүзеге асырылады (13.13-сурет). Әрбір жағдайда жүйе қашықтағы терминал үшін getty процесін жасайды. Қашықтағы жүйеге сұраулар сервер процестерінің жиынтығымен өңделетін болса, ашық процедура орындалғанда сервер қосылымды күтуді тоқтататынын ескеріңіз. Ашық функция аяқталғанда, сервер терминалмен байланысын үзіп, сервер пулына қайта оралады. Бір топқа кіретін процестердің адрестеріне «үзу» пернесін басу арқылы үзу сигналы қалай жіберіледі?

*16. Жадты ортақ пайдалану жергілікті машиналарға тән мүмкіндік болып табылады. Логикалық тұрғыдан алғанда, физикалық жадтың жалпы аймағын (жергілікті немесе қашықтағы) бөлу әртүрлі машиналарға жататын процестер үшін жүзеге асырылуы мүмкін. Осы сәттің орындалуын сипаттаңыз.

*17. 9-тарауда талқыланған процесті түсіру және пейджинг алгоритмдері жергілікті пейджерді пайдалануды болжайды. Қашықтан жүктеп салу құрылғыларына қолдау көрсету үшін осы алгоритмдерге қандай өзгерістер енгізу керек?

*он сегіз. Қашықтағы машинада (немесе желіде) өлімге әкелетін ақаулық орын алды делік және жергілікті желі деңгейінің протоколы бұл фактіні тіркеді. Сұраныстары бар қашықтағы серверге қатынайтын жергілікті жүйені қалпына келтіру схемасын жасаңыз. Сондай-ақ, қалпына келтіру жоспарын жасаңыз серверлік жүйетұтынушылармен байланыс үзілді.

*19. Процесс қашықтағы файлға қатынасқанда, процесс файлды іздейтін бірнеше машиналарды айналып өтуі мүмкін. Мысал ретінде "/usr/src/uts/3b2/os" атауын алайық, мұндағы "/usr" - А машинасына тиесілі каталог, "/usr/src" - В машинасының түбірінің қосылу нүктесі. , "/usr/src/uts /3b2" - C машинасының түбірінің монтаждау нүктесі. Соңғы баратын жерге бірнеше машиналар арқылы өту "multihop" деп аталады. Дегенмен, егер A және C машиналары арасында тікелей желілік байланыс болса, деректерді В машинасы арқылы жіберу тиімсіз болады. Ньюкасл қосылымы бар жүйеде және «мөлдір» бөлінген жүйеде «мультихопты» іске асыру ерекшеліктерін сипаттаңыз.

Мақала ұнады ма? Достарыңызбен бөлісіңіз!
Бұл мақала пайдалы болды ма?
Иә
Жоқ
Пікіріңізге рахмет!
Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
Рақмет сізге. Сіздің хабарламаңыз жіберілді
Мәтіннен қате таптыңыз ба?
Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!