Сур. 8. "Бірден -бірге"моделіндегі пайдаланушы мен клиент процестерінің
өзара әрекеттесуі
"Бірден-бірге"
моделінде
туындайтын
мәселелер
көптеген
клиенттердің сұраныстарын өңдей алатын "арнайы сервер жүйелері"
архитектурасында
шешіледі.
Сервер
ғана
деректерді
басқару
монополиясына ие және бір уақытта көптеген клиенттермен өзара
әрекеттеседі (9 сурет). Логикалық тұрғыдан алғанда, әр клиент серверге
жеке жіппен ((«thread») немесе сұраныстар жіберілетін ағынмен
байланысты. Мұндай архитектура көп ағынды бір серверлік ("multi-
threaded") деп аталды.
Бұл көптеген пайдаланушылар ("trashing") жұмыс істеген кезде пайда
болатын операциялық жүйеге жүктемені едәуір азайтуға мүмкіндік
береді.
Сурет 9. Көп ағынды бір серверлі архитектура
Сонымен қатар, көптеген клиенттердің бір сервермен өзара әрекеттесу
мүмкіндігі бөлінген объектілерді (ашық файлдардан бастап жүйелік
каталогтардағы мәліметтерге дейін) толық пайдалануға мүмкіндік береді,
бұл жады қажеттіліктері мен операциялық жүйенің процестерінің жалпы
санын айтарлықтай азайтады. Мысалы, "бірден-бірге" архитектурасы бар
жүйе 100 қолданушы үшін ДҚБЖ процестерінің 100 көшірмесін жасайды,
ал көп ағынды архитектурасы бар жүйе бұл үшін тек бір серверлік
процесті қажет етеді.
Алайда, бұл шешімнің кемшіліктері бар. Сервер тек бір процессорда
жұмыс істей алатындықтан, мультипроцессорлық платформалар үшін
ДҚБЖ қолданудың табиғи шегі пайда болады. Егер компьютерде, мысалы,
төрт процессор болса, онда бір сервері бар ДҚБЖ қалған үшеуін
жүктеместен олардың біреуін ғана пайдаланады.
Кейбір жүйелерде бұл мәселе аралық диспетчерді енгізу арқылы
шешіледі. Мұндай архитектура виртуалды сервер архитектурасы деп
аталады («virtual server») (10сурет).
Бұл архитектурада клиенттер нақты серверге емес, диспетчер деп
аталатын аралық сілтемеге қосылады, ол тек нақты серверлерге
сұраныстарды басқару функцияларын орындайды. Бұл жағдайда
мультипроцессорлық платформаларды пайдалануға ешқандай шектеулер
жоқ. Ағымдағы серверлердің саны жүйедегі процессорлардың санымен
келісілуі мүмкін.
Алайда, бұл архитектураның кемшіліктері жоқ деп айта алмаймыз,
өйткені мұнда жүйеге клиент пен сервер арасында орналастырылған
жаңа қабат қосылады, бұл актуальды серверлердің жүктелу балансын
(«load balancing») қолдауға ресурстарды ысырап етуді арттырады және
"клиент—сервер"өзара әрекеттесуін басқару мүмкіндіктерін шектейді.
Біріншіден, белгілі бір клиенттен белгілі бір серверге сұраныс жіберу
мүмкін
болмайды,
екіншіден,
серверлер
тең
құқылы
болады-
сұраныстарға қызмет көрсетудің басымдықтарын белгілеу мүмкін емес.
|