Operatsion tizimlarda virtuallashtirish printsipi
Reja:
Virtuallashtirish printsipi
Virtual mashinalar
3. VM ni amalga oshirish
Virtual mashinaning afzalliklari
VM ware dasturi
Java virtual mashinasi.
Virtuallashtirish printsipi markazlashgan sxemadan foydalanib tizim strukturasini jarayonlarni re`jalashtiruvchilar va resurslarni taqsimlovchilar majmuasi ko`rinishida tasvirlashga imkon beradi. Ixtiyoriy operatsion tizim (OT) foydalanuvchidan xizoblash tizimining real qurilmalari va resurslarini yashiradi va ularni abstraktsiyalashtiradi. Ya`ni bevosita qurilmalar bilan ishlashdan farqli ravishda qulay interfeysga ega bo`lgan kengaytirilgan mashina imkoniyati orqali hisoblash tizimlarida masalalarni hal qilish mumkin. Virtuallashtirish printspining asosida aynan abstraksiyalash yotadi. Bu printsp mantig`ini virtual mashina (VM) da yaqqol ko`rish mumkin. Foydalanuvchilar VMdan kompyuterda ishlovchi va buyruqlarni amalga oshiruvchi abstrakt qurilma sifatida foydalanadi. Hisoblash tizimining real konfiguratsiyasi, uning qurilmalari va ulardan qanday samarali foydalanish foydalanuvchini qiziqtirmaydi. Lekin OT bu prinstp asosida bir qancha parallel jarayonlarni bir vaqtning o`zida bitta mashinada bajarilayotgandek tasavvur hosil qilishga imkon yaratadi. Shuni aytib o`tish lozimki OT nafaqat real qurilmalar (operativ xotira, protsessor, tarmoq kartasi, disk yurituvchilar, qattiq disk …)ni virtuallashtiradi balki resurslar (xotira xajmi, protsessor vaqti, tarmoq adresi…)ni ham virtuallashtiradi. Shu yo`l orqali OT foydalanuvchiga kengaytirilgan mashina imkoniyati, multidasturlashtirish, parallel hisoblash kabi qulayliklarni yaratadi. Ya`ni real apparat taminot (kompyuter, hisoblash mashinasi) ideal hisoblash tizimiga maksimal darajada yaqinlashtiriladi. Umuman olganda ideal mashina quyidagi hususiyatlarga ega:
cheklanmagan virtual hotiraga ega;
bir vaqtning o`zida parallel ishlay oladigan ixtiyoriy sondagi virtual protsessorlarga ega;
virtual mashinada parallel yo ketma-ket, sinxron yoki asinxron ishlay oladigan ixtiyoriy sondagi virtual tashqi qurilmalarga ega;
malumotlar chegaralanmagan.
Tizim qanchalik virtuallashtirish printsipiga asoslangan bo`lsa uning real apparat ta`minoti shunchalik abstraksiyalashgan bo`ladi. Virtuallashtirish ayniqsa ko`psathli OT larda yaqqol namoyon bo`ladi, yani OT bir-biri ichiga joylashtirilgan virtual mashina ierarxiyasi sifatida tashkil etiladi. Virtual mashinaning quyi sathi apparat taminoti bo`lsa yuqori sathi dasturiy taminotdir. Har bir yangi sath ma`lumotlarga ishlov berish funksiya imkoniyatlarini kengaytiradi, quyi sathlarga murojaatni osonlashitiradi. Shuni aytib o`tish lozimki, VM ni ierarxik tartibga solish, virtuallashtirish sathlari sonini va xossalarini aniqlash, har bir sathga OTning zaruriy qismlarini kiritish anchagina murakkab masaladir. Shu o`rinda virtuallashitirish sathlari hossalarini keltirib o`tsak:
Har bir sathda yuqori sath hossalari va uning mavjudligi haqida hech narsa ma`lum emas;
Sathlar o`rtasidagi aloqa qatiy belgilangan qoidalarga asoslanadi;
Har bir sath bir nechta moduldan iborat, ba`zulari ichki modul hisoblanib ularga boshqa sathlar murojaat qilishi mumkin;
Har bir sath ma`lum resurslarga ega va ularning abstraksiyasini boshqa sathlardan yashirishi yoki ma`lum qilishi mumkin;
Har bir sath tizimda mal`umotlarning malum abstraksiyasini taminlaydi;
Har bir sathda boshqa sathga qilinayotgan murojaat miqdori minimal bo`lishi kerak;
Sathlar orasidagi bog`lanishaniq argumentlar bilan chegaralangan bo`lushi kerak;
Global malumotlardan bir vaqtda bir necha sath foydalanishi mumkin emas;
Har bir sath boshqa sathlar bilan mustahkam va kuchsiz bog`lanishi kerak;
Abstraksiya sathida bajariladigan har qanday funksiya yagona kirishga ega bo`lishi kerak;
Yuqorida ta`kidlaganimizdek virtuallashtirish mohiyati markazida virtual mashina kosnepsiyasi yotadi. Shunay ekan quyida virtual mashina konsepsiyasi haqida batafsil to`xtalib o`tamiz.
Virtual mashinalar
OT larni qurishda ko`p sathli yondoshuv o`zining mantiqiy yakunini virtual mashina konsepsiyasida topdi. Yuqorida takidlaganimizdek virtual mashina g`oyasi kompyuterning apparat ta`minotini bir nechta boshqa kompyuter sifatida abstraksiyalashdan iborat, bunda har bir hisoblash tizimi alohida mustaqil tizim sifatida bitta kompyuterda bir vaqtda ishlay oladi.
Protsessor vaqtini rejalashtirish va virtual xotira texnologiyalaridan foydalanib OT shunday muhit hosil qildiki bunda har bir jarayon alohida o`z protsessori va xotirada bajarilayotgandek holatni tasavvur qilish mumkin. Odatda jarayonlarda tizimli chaqiriq (системный вызов, system calls) va fayl tizimi (файловой системы, file system) kabi qo`shimcha xizmatlar mavjudki, ular sof apparat taminoti orqali amalga oshirilmaydi. Virtual mashina ham bu funksiyalarni bajarmaydi, lekin aynan sof apparat taminoti interfeysini taminlab beradi. Har bir jarayon kompyuterning virtual nusxasi bilan taminlanadi:
Tizim modellari:
Virtual mashinasiz, (b) Virtual mashinali.
VM ni yaratishning bir necha sabablari bor bo`lib, asosan yagona apparat taminotni bir vaqtda ishlovchi bir necha bajariluvchi muhitlar (ya`ni OT lar)ga taqsimlab berishdir. Keyingi bo`limda VMning afzalliklarini ko`rib chiqamiz. Bu bo`limda IMB hisoblash mashinalari uchun VM operatsion tizimi haqida so`z yuritamiz.
VM bilan bog`liq qiyin muammolardan biri bu disk tizimidir. Tasavvur qiling, kompyuterda fizik jihatdan 3 ta qattiq disk mavjud, lekin 7 ta VM qattiq disklar bilan taminlanishi kerak. Shunisi aniqki, har bir VM ga bu disklar taqsimlanib bo`lmaydi, chunki VM dasturining o`zi ham virtual xotira vas spuling (spooling)ni amalga oshirish uchun malum xajmda diskdagi joyga muhtoj. Virtual disklar muammosi IBM VM operatsion tizimida minidisklar yordamida yechiladi. Har bir minidisk tizim tomonidan fizik disk hajmini kerakli darajadagi treklarga taqsimlash asosida tashkil qilinadi. Albatta bunda minidisklar hajmi yig`indisi fizik disklardagi mavjud xotira hajmidan ortiq bo`la olmaydi.
VM ga ega bo`lgan foydalanuvchi kompyuterda ixtiyoriy OT ni yoki dasturlar paketini ishlatishi mumkin. IBM VM tizimi uchun foydalanuvchi CMS interaktiv OT ni ishlatishi mumkin. VM dasturi fizik mashinadagi multidasturlash bilan bog`liqligini ham aytib o`tish lozim.
VM ni amalga oshirish
VM kontsepsiyasi foydali bo`lsada, uni amalga oshirish qiyin. Fizik mashinaning aniq nusxasini abstraksiyalash ko`pgina ishlarni talab qiladi. Fizik mashina 2 ta rejimda taqdim etiladi: foydalanuvchi va mikroyadro (kernel) rejimida. VM dasturi kernel rejimida bajariladi, foydalanuvchi rejimida taqdim etiladi.
Fizik mashina 2 ta rejimda amalga oshirilgani kabi virtual mashina ham 2 ta rejimda amalga oshirilishi kerak, ya`ni virtual foydalanuvchi rejimi va virtual kernel rejimi bo`lishi kerak va ikkisi ham fizik foydalanuvchi rejimida ishlashi kerak. Bu degani real mashinada foydalanuvchi rejimidan kernel rejimiga transfer qilish (tizimli chaqiruv yoki komandalarni bajarish kabilarda) virtual mashinada ham virtual foydalanuvchi rejimidan virtual kernel rejimiga transfer qilishga olib kelish kerak. Bunda asosiy farq albatta vaqtdir. Real kiritish chiqarish operatsiyalari 100 millisekund vaqt olganda, virtual kiritish chiqarish kamroq vaqt (chunki u spuling qilindi) yoki ko`proq vaqt (chunki u interpritatsiya qilinadi) olishi mumkin. Boshqa tarafdan markaziy protsessor bir qancha virtual mashinalar orasida taqsimlanishi (multidasurlanishi) VM ishini sekinlashuviga olib keladi. Demak haqiqiy virtual mashinani amalga oshirishda barcha buyruqlar to`plamini hisobga olish lozimdir. VM faqat IBM mashinalarida ishlaydi chunki VM dagi normal buyruqlar top`lami apparat taminot orqali bajariladi. Faqat imtiyozli buyruqlargina (asosan kiritish-chiqarish buyruqlari) simulatsiyalanishi mumkin va shu sababdan ular sekinroq bajariladi.
Afzalliklari
Virtual mashina konsepsiyasi bir qancha afzalliklarga ega. Shuni aytib o`tish lozimki bu muhitda turli xil tizim resurslari to`liq himoyalangan bo`ladi, ya`ni har bir VM boshqa barcha VM lardan izolatsiyalangan bo`ladi, shuning uchun bu yerda himoyalanish muammosi bo`lmaydi. Bir vaqtning o`zida malumotlardan (fayllardan) tog`ridan to`gri ma`noda birga foydalanish yo`q. Ya`ni bunda foydalanish 2 usul bilan amalga oshiriladi. Birinchidan minidiskardan birga foydalanish mumkin, demak, undagi fayllardan ham, bu qoida fizik disklarni umumfoydalanuvchi (shared, общий доступ) statusga o`tqazgandek gap, lekin bu dasturiy jihatdan amalga oshiriladi. Ikkinchidan, virtual mashinalarni tarmoqda aniqlash mumkin, har bir VM virtual tarmoq orqali axborot almashishi mumkin.
Bu kabi virtual mashinalar operatsion tizimlarni tadqiq qilish, ularni qurish va sinash ushun xaqiqiy hisoblash mashinasidir. Odatda bir hosiblash mashinasida OT ni o`zgartirish qiyin ish. OT katta va kompleks programmalar majmuidir va uning bir qismini o`zgartirish boshqa bir qismidagi xatoliklarga olib kelmasligini tasavvur qilish qiyin. Bu degani uni o`zgartirish kritik holatlarga olib keladi deganidir. Chunki OT kernel rejimida ishlaydi, bittagina ko`rsatgich (pointer, указатель)dagi xatolik butun boshli fayl tizimini zararlanishiga olib kelishi mumkin. Shuning uchun OT dagi barcha o`zgartirishlarni sinashni extiyotkorlik bilan amalga oshirish lozim. Bunda albatta tizimli daturlovchilarga VM dan foydalanish ko`pgina qulayliklarga olib keladi. Chunki VM ning buzilishi real mashinaning buzilishiga olib kelmaydi. VM ni ixtiyoriy paytda almashitirsh, qayta qurish mumkin.
OT hisoblash tizimida ishlaydi va uni nazorat qiladi. Shunday ekan OTdagi o`zgartirishlarni amalga oshirish va testlash yakunlanguncha ushbu tizimni to`xtatib turish zarur. Bu vaqt oralig`i odatda “tizim rivojlanish davri” (system-development time) termini bilan yuritiladi. Shuning uchun bu davr odatda kech tunda yoki hafta so`ngida, ya`ni tizim yukalinish kam bo`lgan vaqtga rejalashtiriladi.
Namunalar
VM ning shuncha afzalliklariga qaramay, u ilk bor taqdim etilgan davrlarda uncha katta etibor qozonmadi. Hozirda esa VM tizimli dasturlash muammolarini yechish manosida keng qo`llanilmoqda. Quyida 2 zamonaviy virtual mashinalar: VMware va Java virtual mashinasini tadqiq etamiz. Takidlaganimizdek, virtual mashinalar odatda, OT qanday qurilish konsepsiyasi (ko`psathli, mikroyadroli, modulli)ga ega ekanligidan qatiy nazar, uning muhitida ishlaydi.
VM ware dasturi
VMware dasturi Intel 80x86 apparat taminotini izolatsiyalangan virtual mashinalarga abstraksiyalovchi keng tarqalgan dastur hisoblanadi. VMware dasturi Windows yoki Linux kabi host (server) OT da ishlovchi va bu OT ga turli xil gost (klient) OT larni bir vaqtda mustaqil virtual mashinalar sifatida ishlatishga imkonyat yaratadi.
Yanada aniqroq tasavvur qilish uchun namuna keltiramiz:
Tizimli dasturlovchi yangi dastur yaratdi va uni Linux, FreeBSD, Windows NT va Windows XP muhitida sinab ko`rishi kerak. Buning uchun u 4 ta kompyuterda bu OT larni ishlatishi va sinovni o`tqazishi mumkin. Boshqa variantda esa bitta kompyuterga avval Linux ornatishi va dasturni testlashi, so`ng FreeBSD ni o`rnatishi va testlashi, … va shu kabi davom etib barcha OT larni o`rnatishi va har bir OT da alohida-alohida sinovni o`tqazishi lozim. Bu yo`l bitta fizik mashinada testlash uchun turli OTlarni o`rnatishi vaqt jihatdan qimmatga tushadi. Lekin bu kabi testlash VMware dasturi yordamida bitta fizik mashinada 4 ta OTnibir vaqtda ishlatish yo`li bilan ham o`tqazish mumkin. Ya`ni dasturchi testlashni bitta host OT da va 3 ta gost OT da bir vaqtda shunday bajaradiki bunda har bir tizim ajratilgan virtual mashina sifatida bittta fizik mashinada ishlaydi. Bu holat quyidagi chizmada yaqqol tasvirlangan.
Bunda Linux host OT sifatida, FreeBSD, Windows NT va Windows XP esa gost OT sifatida ishlayabdi. Virtuallashtirish sathi VMwarening mohiyatini tashkil etadi, u fizik mashinani mustaqil virtual mashinalarga abstraksiyalaydi. Har bir virtual mashina o`z protsessoriga, operativ xotirasiga, diskyurituvchilariga, tarmoq adresiga, operatsion tizimiga egadir.
Java virtual mashinasi.
Java 1995-yili Sun Microsystems kompanyasi tomonidan taqdim etilgan mashxur obyuektga yo`naltirilgan dasturlash tilidir. Bu til, uning kattagina API biblotekasiga qo`shimcha ravishda Java virtual mashinasi – JVM spetsifikatsiyasi ham ishlab chiqilgan. Java obyektlari klass konstruksiyalari bilan spetsifikatsiya qilingan; Java tilida yaratilgan dastur bir yoki bir necha klasslardan iborat. Har bir Java klassi uchun komplyator neytral arxitekturali baytkodlardan iborat faylni yaratadi. Bu fayl JVMning ixtiyoriy realizatsiyasida bajarilishi ya`ni dastur sifatida ishlashi mumkin.
JVM – abstrak mashina spetsifikatsiyasidir. U neytral arxitekturali baytkodlarni ishga tushuruvchi klass yuklovchisi (class loader) va Java interpretatori (Java interpreter) dan tashkil topgan, ushbu digrammada tasvirlangan:
Klass yuklovchisi Java dasturi va Java API dan komplyatsiyalangan .class faylini yuklaydi. Class yuklangandan so`ng, otlatshik bu .class fayli Java baytkodlariga mosligini, stekda chiqib ketmasligini, xotira adresiga xato murojaat qilmasligini, ko`rsatkichlar ustida to`g`ri operatsiyalar bajarilishini teksiradi. Agar .class tekshiruvdan o`tsa, u Java interpretatori tomonidan bajariladi.
Java virtual mashinasi Windows, Linux, Mac OS kabi host OT larda dastur sifatida amalga oshirilishi, web brauserlar qismi sifatida ham ishlatilishi mumkin. Yana u Java daturlari uchun moslashtirilgan apparat-chip sifatida ham amalga oshiriladi. Uni yanada tezlashtirish uchun Just-in-time (JIT) komplyatori ishlab chiqildi.
Do'stlaringiz bilan baham: |