Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Siguria
  • Mjedisi i softuerit të aplikuar të qarkut. Paketa e veglave softuerike të mjedisit të aplikuar

Mjedisi i softuerit të aplikuar të qarkut. Paketa e veglave softuerike të mjedisit të aplikuar

Në këtë artikull do të doja të flisja se cilat janë programet e aplikimit, si dhe cilat probleme aplikimi mund të zgjidhen me ndihmën e tyre (për shembull, një shembull i një baze të dhënash të thjeshtë), dhe çfarë roli luajnë ata për përdoruesin përfundimtar të një personale kompjuter. Para së gjithash, dua të vërej se kompjuterët mund të përpunojnë çdo të dhënë që përdoruesi i dërgon atij. Por që këto të dhëna të njihen dhe të kuptohen saktë nga makina, kërkohet që të hartohet një program i veçantë në një gjuhë që ai kupton ose, më thjesht, një sërë udhëzimesh të njëpasnjëshme për kryerjen e veprimeve të caktuara.

Llojet e programeve aplikative

Programet aplikative janë programe të tilla, qëllimi i të cilave ka për qëllim zgjidhjen e problemeve të caktuara dhe ndërveprojnë drejtpërdrejt me përdoruesin. Programet kompjuterike janë të nevojshme për të automatizuar çdo proces, ruajtjen dhe përpunimin e të dhënave, modelimin, projektimin, etj. procese komplekse kompjuterike. Programet përgjithësisht ndahen në dy klasa: programet e sistemit dhe programet aplikative. Të parat përdoren kryesisht për të përpunuar informacionin hyrës nga disa pajisje: një kartë rrjeti, një kartë video, pajisje të lidhura, d.m.th. këto janë programe që ndërveprojnë me harduer ose pajisje të jashtme. Ne do të flasim për to në artikujt vijues. Por për programet e dyta - të aplikuara, le të flasim më në detaje.

Programet e aplikimit janë krijuar për të ndërvepruar me përdoruesin përfundimtar, d.m.th. përdoruesi, si të thuash, ndërvepron me veten, por vetëm përmes programit, fut çdo të dhënë në hyrje dhe merr një rezultat të caktuar të të dhënave të përpunuara në dalje. Ky është një lloj vendimi për një të caktuar detyrë e aplikuar, për shembull, është skanimi i imazheve dhe përpunimi i tyre i mëvonshëm ose kërkimi i skedarëve të dëshiruar. Përdorimi i programeve aplikative mund të vërehet pothuajse në të gjitha sferat e veprimtarisë njerëzore, pavarësisht nëse është kontabiliteti në një ndërmarrje ose krijimi i imazheve grafike, vizatimi, etj. Gjithashtu, përdorimi i programeve aplikative është i pranishëm në sisteme të tilla shumë të rëndësishme si sistemet e menaxhimit të bazës së të dhënave. Kjo është shumë e rëndësishme në ndërmarrjet e mëdha ku punojnë një numër i madh përdoruesish dhe të cilët me të vërtetë kanë nevojë të ruajnë dhe përdorin sasi të mëdha informacioni.

Llojet dhe shembujt e programeve aplikative

Programet e aplikimit janë:

  • Redaktorët e tekstit. Projektuar për krijimin dhe redaktimin e tekstit pa dekorim;
  • Përpunuesit e tekstit (MS Word). Redaktorë më të avancuar të tekstit që ju lejojnë të redaktoni tekstin me dizajn, të ndryshoni fontet dhe madhësitë e tij, të futni skedarë grafikë, tabela, etj. për një dizajn teksti më të prezantueshëm;
  • Tabelat elektronike (MS Excell). Ato përdoren kryesisht për të përpunuar çdo të dhënë të përfshirë në këto tabela. Detyrat e aplikuara më shpesh ato kryhen për të ruajtur kredencialet me analizën e tyre të mëvonshme;
  • Redaktorët grafikë raster dhe vektor (Photoshop, Corel), "shikues". Përdorimi i programeve aplikative të këtij lloji ju lejon të krijoni, modifikoni, si dhe shikoni imazhe grafike;
  • Players audio video, redaktorë (WinAmp). Ju lejon të shikoni video, të dëgjoni muzikë, të krijoni kompozime muzikore;
  • Sistemet e menaxhimit të bazës së të dhënave (për shembull - MSQL). Programe të tilla përdoren për të punuar me bazat e të dhënave. Për shembull, një program i kontabilitetit të klientit është një bazë të dhënash e thjeshtë për ruajtjen e informacionit të klientit, informacionin e kontaktit të tyre, etj. Ju mund të kryeni operacione për të kërkuar, fshirë dhe shtuar të dhënat në bazën e të dhënave;
  • Përkthyes ose fjalorë elektronikë. Programe të tilla aplikimi ju lejojnë të përktheni tekstin pa mundim në gjuhë të ndryshme të huaja pa i studiuar drejtpërdrejt ato;
  • Lojra kompjuterike. Përdoret për argëtim ose për zhvillim në një mënyrë lozonjare.

Një shembull i një aplikacioni është, për shembull, një program numërimi i repost. Është e vështirë të renditen të gjitha llojet e programeve aplikative, por ne jemi përpjekur të nxjerrim në pah programet kryesore të aplikimit.

Përdorimi mjediset e softuerit të aplikuar thjeshton detyrën e ekzekutimit të aplikacioneve të shkruara për një OS në një tjetër . Në thelb, mjedisi i aplikacionit duhet të përfshijë funksionet e ndërfaqes së kërkesës së programit, si dhe mjetet e organizimit të bashkëjetesës pa konflikt brenda një OS të disa mënyrave për të menaxhuar burimet kompjuterike.

Një mjedis aplikacioni mund të zbatohet si një aplikacion i rregullt dhe më pas funksionon në nivelin e përdoruesit.

Oriz. 2.8. Mjediset e programimit të aplikacioneve që përkthejnë thirrjet e sistemit

Në një implementim tjetër të mjediseve të shumëfishta aplikacionesh, sistemi operativ ka ndërfaqe të shumta programimi të aplikacioneve kolegë. Në shembullin e treguar në Fig. Shembulli i sistemit operativ 2.9 mbështet aplikacionet e shkruara për OS1, OS2 dhe OS3. Për ta bërë këtë, ndërfaqet e programimit të aplikacioneve të të gjitha këtyre sistemeve operative janë të vendosura drejtpërdrejt në hapësirën e bërthamës së sistemit: API OS1, API OS2 dhe API OS3.

Funksionet e çdo API zbatohen nga kerneli, duke marrë parasysh specifikat e sistemit operativ përkatës, edhe nëse ato kanë një qëllim të ngjashëm. Në mënyrë që kerneli të zgjedhë zbatimin e dëshiruar të thirrjes së sistemit, çdo proces duhet të kalojë një grup karakteristikash identifikuese në kernel.

Oriz. 2.9. Zbatimi i ndërveprueshmërisë bazuar në API të shumëfishta peer

konkluzionet

· I gjithë softveri i një sistemi kompjuterik ndahet në aplikativ (për zgjidhjen e problemeve të përdoruesit) dhe sistem (për përdorimin e pajisjeve kompjuterike).

· Strukturimi më i thjeshtë i OS konsiston në ndarjen e të gjithë komponentëve të OS në module që kryejnë funksionet kryesore të OS (kernel), dhe module që kryejnë funksione ndihmëse të OS. Modulet mbështetëse të OS janë të dizajnuara ose si aplikacione (shërbime komunale dhe programe të përpunimit të sistemit), ose si biblioteka procedurash. Modulet ndihmëse ngarkohen në RAM vetëm për kohëzgjatjen e funksioneve të tyre, domethënë ato janë kalimtare. Modulet e kernelit janë rezidentë në RAM, domethënë janë rezidentë.

· Nëse ka mbështetje harduerike për mënyrat me nivele të ndryshme autoriteti, qëndrueshmëria e OS mund të rritet duke ekzekutuar funksionet e kernelit në modalitetin e privilegjuar dhe modulet ndihmëse të OS dhe aplikacionet në modalitetin e përdoruesit. Kjo bën të mundur mbrojtjen e kodeve dhe të dhënave të OS dhe aplikacioneve nga aksesi i paautorizuar. OS mund të veprojë si një arbitër në mosmarrëveshjet e aplikimit mbi burimet.

· Çdo OS për të zgjidhur detyrat e tij ndërvepron me harduerin e kompjuterit, përkatësisht: mjetet e mbështetjes së modalitetit të privilegjuar dhe përkthimit të adresave, mjetet e ndërrimit të proceseve dhe mbrojtjen e zonave të memories, një sistem ndërprerjesh dhe një kohëmatës të sistemit. Kjo e bën makinën OS të varur, të lidhur me një platformë specifike harduerike.



Arkitektura e mikrokernelit është një alternativë ndaj mënyrës klasike të ndërtimit të një sistemi operativ, në përputhje me të cilën të gjitha funksionet kryesore të sistemit operativ që përbëjnë një kernel shumështresor kryhen në një mënyrë të privilegjuar. Në sistemet operative të mikrokernelit, vetëm një pjesë shumë e vogël e sistemit operativ mbetet në modalitetin e privilegjuar. , quhet mikrokernel.Të gjitha funksionet e tjera të kernelit të nivelit të lartë zbatohen si aplikacione në modalitetin e përdoruesit.

· Mjedisi i softuerit të aplikacionit - një grup mjetesh OS të krijuara për të organizuar ekzekutimin e aplikacioneve të krijuara për një OS në një tjetër. Çdo OS krijon të paktën një mjedis programimi aplikacioni. Problemi qëndron në sigurimin e përputhshmërisë së disa mjediseve softuerike brenda të njëjtit OS.

Ndërsa shumë nga veçoritë arkitekturore të sistemit operativ kanë të bëjnë drejtpërdrejt vetëm me programuesit e sistemit, koncepti i mjeteve të shumëfishta të aplikacionit (operativ) lidhet drejtpërdrejt me nevojat e përdoruesve fundorë - aftësinë e sistemit operativ për të ekzekutuar aplikacione të shkruara për sisteme të tjera operative. Kjo veti e sistemit operativ quhet përputhshmëri.

Pajtueshmëria e aplikacionit mund të jetë në nivelin binar dhe në nivelin burimor. Aplikacionet zakonisht ruhen në OS si skedarë të ekzekutueshëm që përmbajnë imazhe binare të kodit dhe të dhënave. Pajtueshmëria binare arrihet nëse mund të merrni një program të ekzekutueshëm dhe ta ekzekutoni atë në një mjedis tjetër OS.

Përputhshmëria e burimit kërkon një përpilues të përshtatshëm në softuerin e kompjuterit në të cilin keni ndërmend të ekzekutoni aplikacionin, si dhe përputhshmërinë e bibliotekës dhe thirrjeve të sistemit. Në këtë rast, është e nevojshme të ripërpiloni kodin burimor të aplikacionit në një modul të ri të ekzekutueshëm.

Përputhshmëria e burimit është e rëndësishme kryesisht për zhvilluesit e aplikacioneve që kanë në dispozicion kodin burimor. Por për përdoruesit fundorë, vetëm përputhshmëria binare ka një rëndësi praktike, pasi vetëm në këtë rast ata mund të përdorin të njëjtin produkt në sisteme të ndryshme operative dhe në makina të ndryshme.

Lloji i përputhshmërisë së mundshme varet nga shumë faktorë. Më e rëndësishmja prej tyre është arkitektura e procesorit. Nëse procesori përdor të njëjtin grup udhëzimesh (mundësisht me shtesa, si në rastin e IBM PC: grup standard + multimedia + grafikë + transmetim) dhe të njëjtin gamë adresash, atëherë përputhshmëria binare mund të arrihet mjaft thjeshtë. Për ta bërë këtë, duhet të plotësohen kushtet e mëposhtme:

  • API-ja e përdorur nga aplikacioni duhet të mbështetet nga sistemi operativ i dhënë;
  • struktura e brendshme e skedarit të ekzekutueshëm të aplikacionit duhet të korrespondojë me strukturën e skedarëve të ekzekutueshëm të OS-së së dhënë.

Nëse procesorët kanë arkitektura të ndryshme, atëherë, përveç kushteve të listuara, është e nevojshme të organizohet emulimi i kodit binar. Për shembull, emulimi i komandave të procesorit Intel në procesorin Motorola 680x0 të një kompjuteri Macintosh përdoret gjerësisht. Emulatori i softuerit më pas zgjedh në mënyrë sekuenciale instruksionin binar të procesorit Intel dhe ekzekuton nënprogramin ekuivalent të shkruar në udhëzimet e procesorit Motorola. Meqenëse procesori Motorola nuk ka ekzaktësisht të njëjtët regjistra, flamuj, ALU të brendshme etj., si në procesorët Intel, ai gjithashtu duhet të simulojë (emulojë) të gjithë këta elementë duke përdorur regjistrat ose memorien e tij.

Kjo është punë e thjeshtë, por shumë e ngadaltë, pasi një komandë e vetme Intel është dukshëm më e shpejtë se sekuenca e komandës së procesorit Motorola që e imiton atë. Rruga në raste të tilla është përdorimi i të ashtuquajturave mjedise softuerike aplikative ose mjedise operative. Një nga komponentët e një mjedisi të tillë është grupi i funksioneve API që OS ofron për aplikacionet e tij. Për të reduktuar kohën e shpenzuar për ekzekutimin e programeve të dikujt tjetër, mjediset e aplikacionit imitojnë thirrjet në funksionet e bibliotekës.

Efektiviteti i kësaj qasjeje është për faktin se shumica e programeve të sotme funksionojnë nën GUI (ndërfaqe grafike të përdoruesit) si Windows, MAC ose UNIX Motif, ndërsa aplikacionet shpenzojnë 60-80% të kohës duke ekzekutuar funksione GUI dhe thirrje të tjera të bibliotekës së OS. . Është kjo veti e aplikacioneve që lejon mjediset e aplikacioneve të kompensojnë sasinë e madhe të kohës së shpenzuar duke emuluar programet për komandë. Një mjedis aplikacioni softuerik i dizajnuar me kujdes përmban biblioteka që imitojnë bibliotekat GUI, por janë të shkruara në kodin "vendas". Kështu, arrihet një përshpejtim i konsiderueshëm i ekzekutimit të programeve me API të një sistemi tjetër operativ. Kjo qasje quhet edhe transmetim për ta dalluar atë nga procesi më i ngadalshëm i emulimit një nga një komandë.

Për shembull, për një program Windows që funksionon në një Macintosh, kur interpretoni komanda nga një procesor Intel performancës mund të jetë shumë i ulët. Por kur thirret një funksion GUI, hapet një dritare, etj., moduli OS që zbaton mjedisin e aplikacionit Windows mund të përgjojë këtë telefonatë dhe ta ridrejtojë atë te rutina e hapjes së dritares që është rikompiluar për procesorin Motorola 680x0. Si rezultat, në pjesë të tilla të kodit, shpejtësia e programit mund të arrijë (dhe, ndoshta, të tejkalojë) shpejtësinë e punës në procesorin e vet.

Që një program i shkruar për një OS të ekzekutohet në një OS tjetër, nuk mjafton vetëm të sigurohet pajtueshmëria me API. Konceptet pas sistemeve të ndryshme operative mund të bien ndesh me njëri-tjetrin. Për shembull, në një OS një aplikacion mund të lejohet të kontrollojë pajisjet I / O, në një tjetër - këto veprime janë prerogativë e OS.

Secili OS ka mekanizmat e tij të mbrojtjes së burimeve, algoritmet e tij të trajtimit të gabimeve dhe përjashtimeve, një strukturë specifike të procesorit dhe skemë të menaxhimit të kujtesës, semantikën e vet të aksesit të skedarëve dhe ndërfaqen grafike të përdoruesit. Për të siguruar përputhshmërinë, është e nevojshme të organizohet bashkëjetesë pa konflikte brenda një OS të disa metodave të menaxhimit të burimeve kompjuterike.

Ekzistojnë opsione të ndryshme për ndërtimin e mjediseve të shumta të aplikacioneve, të ndryshme si në veçoritë arkitekturore ashtu edhe në funksionalitete që ofrojnë shkallë të ndryshme të transportueshmërisë së aplikacionit. Një nga opsionet më të dukshme për zbatimin e mjediseve të shumëfishta të aplikacioneve bazohet në një strukturë standarde me shtresa të OS.

Një mënyrë tjetër për të ndërtuar mjedise të shumta aplikimi bazohet në një qasje mikrokerneli. Në të njëjtën kohë, është shumë e rëndësishme të theksohet dallimi bazë, i përbashkët për të gjitha mjediset e aplikacionit, midis mekanizmave të sistemit operativ dhe funksioneve të nivelit të lartë specifik për secilin prej mjediseve të aplikacionit që zgjidhin problemet strategjike. Në përputhje me arkitektura e mikrokernelit të gjitha funksionet e OS zbatohen nga mikrokerneli dhe serverët e modalitetit të përdoruesit. Është e rëndësishme që mjedisi i aplikacionit të projektohet si një server i veçantë i modalitetit të përdoruesit dhe të mos përfshijë mekanizmat bazë.

Aplikacionet që përdorin API bëjnë thirrje të sistemit në mjedisin e duhur të aplikacionit përmes mikrokernelit. Mjedisi i aplikacionit përpunon kërkesën, e ekzekuton atë (ndoshta duke përdorur funksionet bazë të mikrokernelit për ndihmë) dhe ia kthen rezultatin aplikacionit. Gjatë ekzekutimit të një kërkese, mjedisi i aplikacionit duhet, nga ana tjetër, të aksesojë mekanizmat bazë të OS të zbatuar nga mikrokerneli dhe serverët e tjerë të OS.

Të gjitha avantazhet dhe disavantazhet e arkitekturës mikro-bërthamore janë të natyrshme në këtë qasje për ndërtimin e mjediseve të shumëfishta aplikimi, në veçanti:

  • shtimi dhe përjashtimi i mjediseve të aplikacionit është shumë i lehtë, gjë që është pasojë e shtrirjes së mirë të mikro-kernelit OS;
  • nëse një nga mjediset e aplikimit dështon, pjesa tjetër mbetet funksionale, gjë që kontribuon në besueshmërinë dhe stabilitetin e sistemit në tërësi;
  • Performanca e ulët e sistemeve operative të mikrokernelit ndikon në shpejtësinë e mjeteve të aplikimit, dhe rrjedhimisht në shpejtësinë e aplikacioneve.

Si rezultat, duhet të theksohet se krijimi i disa mjeteve të aplikacionit brenda një OS për ekzekutimin e aplikacioneve të OS të ndryshëm është një mënyrë që ju lejon të keni një version të vetëm të programit dhe ta transferoni atë midis sistemeve të ndryshme operative. Mjedise të shumëfishta aplikacionesh ofrojnë përputhshmëri binare të një OS të caktuar me aplikacionet e shkruara për OS të tjera.

1.9. Makinat virtuale si një qasje moderne për zbatimin e mjediseve të shumëfishta të aplikacioneve

Koncepti i "monitorit të makinës virtuale" (VMM) filloi në fund të viteve '60 si një softuer niveli i abstraksionit që ndau platformën e harduerit në makina të shumta virtuale. Secila prej këtyre makinave virtuale (VM) ishte aq e ngjashme me makinën fizike themelore, saqë ajo ekzistuese software mund të ekzekutohet mbi të i pandryshuar. Në atë kohë, detyrat e përgjithshme kompjuterike kryheshin në mainframe të shtrenjta (si p.sh. IBM / 360) dhe përdoruesit vlerësuan aftësinë e VMM për të shpërndarë burime të pakta nëpër aplikacione të shumta.

Në vitet 80-90, kostoja e pajisjeve kompjuterike u ul ndjeshëm dhe efektive OS me shumë detyra, gjë që uli vlerën e VMM në sytë e përdoruesve. Mainframe-të ua lanë vendin mini-kompjuterëve dhe më pas PC-ve, dhe nuk kishte nevojë për një VMM. Si rezultat, arkitektura e kompjuterit thjesht është zhdukur hardware për zbatimin efektiv të tyre. Nga fundi i viteve '80, në shkencë dhe në prodhim, MVM u perceptua si asgjë më shumë se një kuriozitet historik.

Sot MVM është sërish në qendër të vëmendjes. Intel, AMD, Sun Microsystems dhe IBM po krijojnë strategji virtualizimi dhe qasjet e bazuara në makinë virtuale po zhvillohen në akademi dhe universitete për të adresuar çështjet e lëvizshmërisë, sigurisë dhe menaxhueshmërisë. Çfarë ndodhi mes dorëheqjes së MVM-së dhe ringjalljes së tyre?

Në vitet 1990, studiuesit në Universitetin Stanford filluan të eksploronin përdorimin e VM-ve për të kapërcyer kufizimet e pajisjeve dhe sistemeve operative. Problemet u shfaqën me kompjuterët me përpunim masiv paralel (MPP), të cilët ishin të vështirë për t'u programuar dhe nuk mund të përdornin sistemet ekzistuese operative. Studiuesit kanë zbuluar se makinat virtuale mund ta bëjnë këtë arkitekturë të vështirë të ngjashme me platformat ekzistuese për të përfituar nga sistemet operative jashtë raftit. Nga ky projekt dolën njerëzit dhe idetë që u bënë rezerva e artë e VMware (www.vmware.com), shitësi i parë i VMM-ve për kompjuterët e zakonshëm.

Ironikisht, avancimi i sistemeve moderne operative dhe ulja e kostove të harduerit kanë çuar në probleme që studiuesit shpresonin t'i zgjidhnin me ndihmën e VMM. Kostoja e lirë e pajisjeve kontribuoi në përhapjen e shpejtë të kompjuterëve, por ato shpesh nuk përdoreshin, duke kërkuar hapësirë ​​dhe përpjekje shtesë për t'u mirëmbajtur. Dhe pasojat e rritjes së aftësive funksionale të OS ishin paqëndrueshmëria dhe cenueshmëria e tyre.

Për të reduktuar ndikimin e përplasjeve të sistemit dhe për t'u mbrojtur nga hakimet, administratorët e sistemit u kthyen përsëri në detyrën e vetme modeli llogaritës(me një aplikacion në një makinë). Kjo rezultoi në kosto shtesë për shkak të rritjes së kërkesave për harduer. Zhvendosja e aplikacioneve nga makina të ndryshme fizike në VM dhe konsolidimi i këtyre VM-ve në disa platforma fizike kanë lejuar rritjen e përdorimit të pajisjeve, reduktimin e kostove të menaxhimit dhe zvogëlimin e hapësirës së dyshemesë. Pra, aftësia e VMM-së për të shumëfishuar harduerin - këtë herë në emër të konsolidimit të serverëve dhe llogaritjes së shërbimeve - i ka rikthyer ata përsëri në jetë.

Në ditët e sotme, VMM është bërë jo aq shumë një mjet për organizimin e shumë detyrave, sa dikur konceptohej si një zgjidhje për problemet e sigurimit të sigurisë, lëvizshmërisë dhe besueshmërisë. Në shumë mënyra, VMM u jep krijuesve të sistemeve operative aftësinë për të zhvilluar funksionalitet që nuk është i mundur në sistemet operative komplekse të sotme. Veçori të tilla si migrimi dhe siguria janë shumë më të përshtatshme për t'u zbatuar në nivelin VMM, gjë që ruan pajtueshmërinë e prapambetur kur vendos zgjidhje inovative të sistemit operativ duke ruajtur përparimet e mëparshme.

Virtualizimi është një teknologji në zhvillim. Në terma të përgjithshëm, virtualizimi ju lejon të shkëputni softuerin nga infrastruktura themelore e harduerit. Në fakt, ajo prish lidhjen midis një grupi specifik programesh dhe një kompjuteri specifik. Monitori i makinës virtuale ndahet software nga hardueri dhe formon një shtresë të ndërmjetme midis softuerit që ekzekutohet nga makinat virtuale dhe harduerit. Ky nivel i lejon VMM-së të kontrollojë plotësisht përdorimin e burimeve të harduerit. sistemet operative të ftuar (GuestOS) që funksionojnë në VM.

VMM krijon një pamje të unifikuar të harduerit themelor, në mënyrë që makinat fizike nga shitës të ndryshëm me nënsisteme të ndryshme I/O të duken të njëjta dhe VM-të të funksionojnë në çfarëdo hardueri të disponueshëm. Pa u shqetësuar për makinat individuale me ndërlidhjet e tyre të ngushta midis harduerit dhe softuerit, administratorët mund ta shohin harduerin thjesht si një grup burimesh për të ofruar çdo shërbim sipas kërkesës.

falë kapsulim i plotë Monitoruesi VMM mund ta hartojë VM-në në çdo burim harduer të disponueshëm dhe madje ta transferojë atë nga një makinë fizike në tjetrën. Detyra e balancimit të ngarkesës në një grup makinerish bëhet e parëndësishme dhe po shfaqen mënyra të besueshme për t'u marrë me dështimet e pajisjeve dhe rritjen e sistemit. Nëse ju duhet të mbyllni një kompjuter të dështuar ose të vini në punë një të ri, VMM është në gjendje të rishpërndajë makinat virtuale në përputhje me rrethanat. Makina virtuale është e lehtë për t'u përsëritur, duke i lejuar administratorët të ofrojnë shpejt shërbime të reja sipas nevojës.

Encapsulation do të thotë gjithashtu që administratori mund të pezullojë ose rifillojë një VM në çdo kohë, si dhe të ruajë gjendjen aktuale të makinës virtuale ose ta kthejë atë në një gjendje të mëparshme. Me aftësitë universale të zhbërjes, është e lehtë të merreni me aksidente dhe gabime konfigurimi. Kapsulimi është në qendër të një modeli të përgjithshëm të lëvizshmërisë sepse një VM e pezulluar mund të kopjohet në rrjet, të ruhet dhe të transportohet në media të lëvizshme.

VMM vepron si një ndërmjetës për të gjitha ndërveprimet midis VM-së dhe harduerit themelor, duke mbajtur makina të shumta virtuale të funksionojnë në një platformë të vetme harduerike dhe duke siguruar izolim të besueshëm. VMM ju lejon të grumbulloni një grup VM-sh me kërkesa të ulëta burimesh në një kompjuter të veçantë, duke ulur koston e hardware dhe nevoja për hapësirë ​​prodhimi.

Izolimi i plotë është gjithashtu i rëndësishëm për besueshmërinë dhe sigurinë. Aplikacionet që funksiononin në të njëjtën makinë tani mund të shpërndahen nëpër VM të ndryshme. Nëse njëri prej tyre, si rezultat i një gabimi, shkakton rrëzimin e sistemit operativ, aplikacionet e tjera do të izolohen prej tij dhe do të vazhdojnë të punojnë. Nëse një nga aplikacionet kërcënohet nga një sulm i jashtëm, sulmi do të lokalizohet brenda VM-së "të komprometuar". Kështu, VMM është një mjet për ristrukturimin e sistemit për të rritur elasticitetin dhe sigurinë e tij, pa hapësirën shtesë dhe përpjekjen administrative që kërkohet kur ekzekutohen aplikacionet në makina të veçanta fizike.

VMM duhet të lidhë ndërfaqen e harduerit me VM duke ruajtur kontrollin e plotë mbi makinën bazë dhe procedurat për ndërveprim me harduerin e saj. Ekzistojnë metoda të ndryshme për të arritur këtë qëllim, bazuar në disa kompromise teknike. Kur kërkoni për kompromise të tilla, merren parasysh kërkesat kryesore për VMM: përputhshmëria, performancës dhe thjeshtësia. Përputhshmëria është e rëndësishme sepse përparësia kryesore e një VMM është aftësia për të ekzekutuar aplikacione të vjetra. Performanca përcakton sasinë e përgjithshme të virtualizimit - programet në një VM duhet të funksionojnë me të njëjtën shpejtësi si në një makinë reale. Thjeshtësia është e nevojshme sepse një dështim i VMM do të bëjë që të gjitha VM-të që funksionojnë në kompjuter të dështojnë. Në veçanti, izolimi i sigurt kërkon që VMM të jetë i lirë nga gabimet që sulmuesit mund të përdorin për të shkatërruar sistemin.

Në vend që të ndërhyni me rishkrimin kompleks të kodit të sistemit operativ të ftuar, mund të bëni disa ndryshime në sistemin operativ pritës duke ndryshuar disa nga pjesët më "të bezdisshme" të kernelit. Kjo qasje quhet paravirtualizim. Është e qartë se në këtë rast vetëm autori mund të përshtatë bërthamën e OS dhe, për shembull, Microsoft nuk është i gatshëm të përshtatë kernelin popullor Windows 2000 me realitetet e makinave virtuale specifike.

Në paravirtualizimin, projektuesi VMM ripërcakton ndërfaqen e makinës virtuale, duke zëvendësuar nëngrupin e pavirtualizueshëm të grupit origjinal të udhëzimeve me ekuivalente më të përshtatshme dhe efikase. Vini re se megjithëse OS duhet të portohet për të ekzekutuar në këto VM, shumica e aplikacioneve të zakonshme mund të funksionojnë të pandryshuara.

E meta më e madhe e paravirtualizimit është papajtueshmëria. Çdo sistemi operativ i projektuar për të funksionuar nën kontrollin e një monitori të paravirtualizuar VMM duhet të transferohet në këtë arkitekturë duke negociuar bashkëpunimin me shitësit e sistemit operativ. Përveç kësaj, sistemet operative të trashëguara nuk mund të përdoren dhe makinat ekzistuese nuk mund të zëvendësohen lehtësisht me makina virtuale.

Për të arritur performancë të lartë dhe përputhshmëri gjatë virtualizimit të arkitekturës x86, VMware ka zhvilluar një teknikë të re virtualizimi që kombinon ekzekutimin tradicional të drejtpërdrejtë me përkthimin binar të shpejtë, në lëvizje. Në shumicën e sistemeve operative moderne, mënyrat e funksionimit të procesorit gjatë ekzekutimit të programeve të zakonshme të aplikacionit virtualizohen lehtësisht, dhe për këtë arsye, ato mund të virtualizohen përmes ekzekutimit të drejtpërdrejtë. Modalitetet e privilegjuara të papërshtatshme për virtualizim mund të ekzekutohen nga përkthyesi binar, duke rregulluar udhëzimet "të pakëndshme" x86. Rezultati është një efikasitet i lartë Makine virtuale që përputhet plotësisht me harduerin dhe ruan pajtueshmërinë e plotë të softuerit.

Kodi i konvertuar është shumë i ngjashëm me rezultatet e paravirtualizimit. Komandat e rregullta ekzekutohen të pandryshuara dhe komandat që kanë nevojë për përpunim të veçantë (si POPF dhe komandat për të lexuar regjistrat e segmenteve të kodit) zëvendësohen nga përkthyesi me sekuenca komandash që janë të ngjashme me ato që kërkohen për ekzekutim në një makinë virtuale të paravirtualizuar. Sidoqoftë, ekziston një ndryshim i rëndësishëm: në vend që të modifikojë kodin burimor të sistemit operativ ose aplikacioneve, përkthyesi binar modifikon kodin herën e parë që ai ekzekutohet.

Ndërsa kërkohen disa shpenzime shtesë shtesë për të përkthyer kodin binar, ai është i papërfillshëm nën ngarkesat normale të punës. Përkthyesi përpunon vetëm një pjesë të kodit dhe shpejtësia e ekzekutimit të programit bëhet e krahasueshme me shpejtësinë e ekzekutimit të drejtpërdrejtë - sapo cache të jetë plot

Rruga për të dalë në raste të tilla është përdorimi i të ashtuquajturit mjediset e softuerit të aplikuar. Një nga komponentët që formojnë mjedisin e programimit të aplikacionit është një grup funksionesh API që sistemi operativ u ofron aplikacioneve të tij. Për të reduktuar kohën e shpenzuar për ekzekutimin e programeve të dikujt tjetër, mjediset e aplikacionit imitojnë thirrjet në funksionet e bibliotekës.

Efektiviteti i kësaj qasjeje buron nga fakti se shumica e programeve sot funksionojnë në Ndërfaqet Grafike të Përdoruesit (Ndërfaqet Grafike të Përdoruesit) si Windows, Mac, ose UNIX Motif, me aplikacionet që shpenzojnë pjesën më të madhe të kohës duke bërë një sjellje të mirë-parashikueshme. Ata vazhdimisht bëjnë thirrje në bibliotekat GUI për manipulimin e dritareve dhe aktivitete të tjera të lidhura me GUI. Sot, në programet tipike, 60-80% e kohës shpenzohet për ekzekutimin e funksioneve GUI dhe thirrjeve të tjera të bibliotekës së OS. Është kjo veti e aplikacioneve që lejon mjediset e aplikacioneve të kompensojnë sasinë e madhe të kohës së shpenzuar duke emuluar një program një nga komandat. Një mjedis aplikacioni softuerik i dizajnuar me kujdes përmban biblioteka që imitojnë bibliotekat e brendshme GUI, por janë të shkruara në kodin "amtare" dhe kjo përshpejton ndjeshëm ekzekutimin e programeve me API të një sistemi tjetër operativ. Kjo qasje nganjëherë quhet përkthim për ta dalluar atë nga procesi më i ngadalshëm i imitimit të kodit një instruksion në një kohë.

Për shembull, për një program Windows që funksionon në një Macintosh, interpretimi i komandave nga një procesor Intel 80x86 mund të jetë shumë i ngadaltë. Por kur thirret një funksion GUI i hapur i dritares, një modul OS që zbaton mjedisin e aplikacionit Windows mund të përgjojë këtë telefonatë dhe ta ridrejtojë atë te rutina e hapur e dritares që është rikompiluar për procesorin Motorola 680x0. Si rezultat, në pjesë të tilla të kodit, shpejtësia e programit mund të arrijë (dhe ndoshta të tejkalojë) shpejtësinë e punës në procesorin e tij "vendas".

Që një program i shkruar për një OS të ekzekutohet në një OS tjetër, nuk mjafton vetëm të sigurohet pajtueshmëria me API. Konceptet pas sistemeve të ndryshme operative mund të bien ndesh me njëri-tjetrin. Për shembull, në një sistem operativ, një aplikacion mund të lejohet të kontrollojë drejtpërdrejt pajisjet I / O, në një tjetër, këto veprime janë prerogativë e OS. Secili sistem operativ ka mekanizmat e tij të mbrojtjes së burimeve, algoritmet e tij të trajtimit të gabimeve dhe përjashtimeve, një strukturë specifike të procesit dhe skemë të menaxhimit të kujtesës, semantikën e tij të aksesit në skedar dhe ndërfaqen grafike të përdoruesit. Për të siguruar përputhshmërinë, është e nevojshme të organizohet bashkëjetesë pa konflikte brenda një OS të disa metodave të menaxhimit të burimeve kompjuterike.

3. 7. 3. Metodat për zbatimin e mjediseve të softuerit të aplikuar

Krijimi i një mjedisi të plotë aplikimi, plotësisht të pajtueshëm me mjedisin e një sistemi tjetër operativ, është një detyrë mjaft komplekse, e lidhur ngushtë me strukturën e sistemit operativ. Ekzistojnë opsione të ndryshme për ndërtimin e mjediseve të shumta të aplikacioneve, të ndryshme si në veçoritë e zgjidhjeve arkitekturore ashtu edhe në funksionalitet që ofrojnë shkallë të ndryshme të transportueshmërisë së aplikacionit.

Në shumë versione të UNIX OS, përkthyesi i mjedisit të aplikacionit zbatohet si një aplikacion i rregullt. Në sistemet operative të ndërtuara duke përdorur konceptin e mikrokernelit, siç është Windows NT, mjediset e aplikacionit funksionojnë si serverë të modalitetit të përdoruesit. Dhe në OS / 2, me arkitekturën e tij më të thjeshtë, mjetet për organizimin e mjediseve të aplikacionit janë ndërtuar thellë në sistemin operativ.

Një nga opsionet më të dukshme për zbatimin e mjediseve të shumëfishta të aplikacioneve bazohet në një strukturë standarde me shtresa të OS. Në fig. 3. 8 sistemi operativ OS1 mbështet, përveç aplikacioneve të tij "vendase", aplikacione të sistemit operativ OS2. Për këtë, ai përmban një aplikacion të veçantë - një mjedis softuer aplikacioni që përkthen ndërfaqen e sistemit operativ "të huaj" - API OS2 në ndërfaqen e sistemit të tij operativ "vendas" - API OS1.

Oriz. 3. 8. Mjedisi i softuerit aplikativ që përkthen thirrjet e sistemit

Në një implementim tjetër të mjediseve të shumëfishta aplikacionesh, sistemi operativ ka API të shumëfishta peer. Në shembullin e treguar në Fig. 3.Në shembull, sistemi operativ mbështet aplikacionet e shkruara për OS1, OS2 dhe OS3. Për ta bërë këtë, ndërfaqet e programimit të aplikacioneve të të gjitha këtyre sistemeve operative janë të vendosura drejtpërdrejt në hapësirën e bërthamës së sistemit: API OS1, API OS2 dhe API OS3.

Oriz. 3. 9. Zbatimi i ndërveprueshmërisë bazuar në API të shumëfishta peer

Në këtë variacion, funksionet e nivelit API i referohen funksioneve të sistemit operativ të nivelit më të ulët që duhet të mbështesin të tre mjediset e aplikacionit përgjithësisht të papajtueshëm. Sisteme të ndryshme operative menaxhojnë kohën e sistemit në mënyra të ndryshme, përdorin një format të ndryshëm të orës së ditës, ndajnë kohën e procesorit bazuar në algoritmet e tyre, etj. Funksionet e çdo API zbatohen nga kerneli duke marrë parasysh specifikat e sistemit operativ përkatës, edhe nëse kanë një qëllim të ngjashëm.

Një mënyrë tjetër për të ndërtuar mjedise të shumta aplikimi bazohet në një qasje mikrokerneli. Në të njëjtën kohë, është shumë e rëndësishme të veçohen mekanizmat bazë të sistemit operativ të përbashkët për të gjitha mjediset e aplikacionit nga funksionet e nivelit të lartë specifik për secilin prej mjediseve të aplikacionit që zgjidhin problemet strategjike.

Sipas arkitekturës së mikrokernelit, të gjitha funksionet e OS zbatohen nga serverët e mikrokernelit dhe të modalitetit të përdoruesit. Është e rëndësishme që çdo mjedis aplikacioni të projektohet si një server i veçantë i modalitetit të përdoruesit dhe të mos përfshijë mekanizmat bazë (Fig. 3. 10). Aplikacionet që përdorin API bëjnë thirrje të sistemit në mjedisin e duhur të aplikacionit përmes mikrokernelit. Mjedisi i aplikacionit përpunon kërkesën, e ekzekuton atë (ndoshta duke përdorur funksionet bazë të mikrokernelit për ndihmë) dhe ia kthen rezultatin aplikacionit. Gjatë ekzekutimit të një kërkese, mjedisi i aplikacionit duhet, nga ana tjetër, të aksesojë mekanizmat bazë të OS të zbatuar nga mikrokerneli dhe serverët e tjerë të OS.

Oriz. 3. 10. Qasja e mikrokernelit për zbatimin e mjediseve të shumta të aplikacionit

Kjo qasje për ndërtimin e mjediseve të shumëfishta aplikimi ka të gjitha avantazhet dhe disavantazhet e një arkitekture mikrokerneli, në veçanti:

    shtimi dhe përjashtimi i mjediseve të aplikacionit është shumë i lehtë, gjë që është pasojë e shtrirjes së mirë të sistemeve operative të mikrokernelit;

    besueshmëria dhe qëndrueshmëria shprehen në faktin se nëse një nga mjediset e aplikacionit dështon, të gjithë të tjerët mbeten funksionalë;

    performanca e ulët e sistemeve operative të mikrokernelit ndikon në shpejtësinë e mjediseve të aplikacionit, dhe rrjedhimisht në shpejtësinë e ekzekutimit të aplikacionit.

Krijimi i disa mjediseve të aplikacionit brenda një sistemi operativ për ekzekutimin e aplikacioneve të OS të ndryshëm është një mënyrë që ju lejon të keni një version të vetëm të programit dhe ta transferoni atë midis sistemeve operative. Mjedise të shumëfishta aplikacionesh ofrojnë përputhshmëri binare të një OS të caktuar me aplikacionet e shkruara për OS të tjera. Si rezultat, përdoruesit kanë liri më të madhe të zgjedhjes së sistemeve operative dhe akses më të lehtë në softuer cilësor.

Pyetje vetë-testimi

    Çfarë nënkuptohet me arkitekturë OS?

    Cilat janë tre shtresat kryesore në strukturën e një sistemi kompjuterik?

    Cili është roli i OS në ndërfaqen e thirrjeve të sistemit?

    Cilat kushte duhet të plotësohen gjatë projektimit të një sistemi operativ në mënyrë që sistemi operativ të jetë lehtësisht i lëvizshëm?

    Cili është ndryshimi midis arkitekturës së mikrokernelit dhe arkitekturës tradicionale të OS?

    Pse një mikrokernel është i përshtatshëm për të mbështetur llogaritjen e shpërndarë?

    Çfarë nënkuptohet me konceptin e mjediseve të shumta të aplikacionit?

    Cili është thelbi i metodës së përkthimit bibliotekar?

Përputhshmëria dhe mjedise të shumta aplikimi

Koncepti i mjediseve të shumta të aplikacioneve lidhet me nevojat e përdoruesit përfundimtar - aftësinë e një sistemi operativ për të ekzekutuar aplikacione nga sisteme të tjera operative. Kjo veti e sistemit operativ quhet pajtueshmërinë.

Pajtueshmëria binare dhe burimore

Dalloni midis përputhshmërisë binare dhe përputhshmërisë së burimit. Aplikacionet zakonisht ruhen në OS si skedarë të ekzekutueshëm që përmbajnë imazhe binare të kodit dhe të dhënave. Pajtueshmëria binare arrihet kur mund të merrni një program të ekzekutueshëm dhe ta ekzekutoni atë në një mjedis tjetër OS.

Përputhshmëria e burimit kërkon një përpilues të përshtatshëm në softuerin e kompjuterit në të cilin keni ndërmend të ekzekutoni aplikacionin, si dhe përputhshmërinë e bibliotekës dhe thirrjeve të sistemit. Në këtë rast, është e nevojshme të përpiloni burimet e disponueshme në një modul të ekzekutueshëm.

Përputhshmëria e burimit është e rëndësishme kryesisht për zhvilluesit e aplikacioneve që kanë në dispozicion kodin burimor. Për përdoruesit fundorë, vetëm përputhshmëria binar ka një rëndësi praktike, pasi vetëm në këtë rast ata mund të përdorin të njëjtin produkt tregtar në formën e kodit të ekzekutueshëm binar në mjedise të ndryshme operimi.

Nëse një sistem operativ është binar ose i pajtueshëm me burimin varet nga shumë faktorë. Kryesorja midis tyre është arkitektura e procesorit në të cilin funksionon OS i ri. Nëse procesori përdor të njëjtin grup instruksionesh (ndoshta me disa shtesa) dhe të njëjtin gamë adresash, atëherë përputhshmëria binare mund të arrihet mjaft thjeshtë. Për ta bërë këtë, mjafton të respektoni kushtet e mëposhtme:

Thirrjet e funksionit API që përmban aplikacioni duhet të mbështeten nga OS;

Struktura e brendshme e skedarit të ekzekutueshëm të aplikacionit duhet të përputhet me strukturën e skedarëve të ekzekutueshëm të OS.

Është më e vështirë të arrihet përputhshmëria binare për sistemet operative të dizajnuara për të ekzekutuar në procesorë të arkitekturave të ndryshme. Përveç respektimit të kushteve të mësipërme, është e nevojshme të organizohet emulimi i kodit binar, i cili do të çojë në një ekzekutim mjaft të ngadaltë të programit.

Krijimi i një mjedisi të plotë aplikimi, plotësisht të pajtueshëm me mjedisin e një sistemi tjetër operativ, është një detyrë e lidhur ngushtë me strukturën e sistemit operativ. Ekzistojnë opsione të ndryshme për ndërtimin e mjediseve të shumta të aplikacioneve, të ndryshme si në veçoritë e zgjidhjeve arkitekturore ashtu edhe në funksionalitet që ofrojnë shkallë të ndryshme të transportueshmërisë së aplikacionit.


Një nga opsionet më të dukshme për zbatimin e mjediseve të shumta të aplikacioneve bazohet në një strukturë standarde të shtresuar të OS dhe ofron përkthim të thirrjeve të sistemit.

Në figurën 6, sistemi operativ OS1 mbështet, përveç aplikacioneve të tij, aplikacione të sistemeve operative OS2 dhe OS3.

Për këtë, ai përmban aplikacione speciale - mjedise softuerike aplikacioni - që përkthen ndërfaqet e sistemeve operative "të huaja" API OS2 dhe API OS3 në ndërfaqen e sistemit të tyre operativ - API OS1.

Figura 6 - Mjediset e softuerit të aplikacionit që përkthen thirrjet e sistemit

Në një implementim tjetër të mjediseve të shumëfishta aplikacionesh, sistemi operativ ka API të shumëfishta peer (Figura 7). Në shembullin e treguar, sistemi operativ mbështet aplikacionet për OS1, OS2 dhe OS3.

Për ta bërë këtë, ndërfaqet e programimit të aplikacioneve të të gjitha këtyre sistemeve operative janë të vendosura drejtpërdrejt në hapësirën e bërthamës së sistemit: API OS1, API OS2 dhe API OS3.

Figura 7 - Zbatimi i ndërveprueshmërisë bazuar në API të shumëfishta peer

Në këtë variacion, funksionet e nivelit API i referohen funksioneve të sistemit operativ të nivelit më të ulët që duhet të mbështesin të tre mjediset e aplikacionit përgjithësisht të papajtueshëm. Funksionet e çdo API zbatohen nga kerneli, duke marrë parasysh specifikat e sistemit operativ përkatës, edhe nëse ato kanë një qëllim të ngjashëm. Në mënyrë që kerneli të zgjedhë zbatimin e dëshiruar të thirrjes së sistemit, çdo proces duhet të kalojë një grup karakteristikash identifikuese në kernel.

Një mënyrë tjetër për të ndërtuar mjedise të shumta aplikimi bazohet në një qasje mikrokerneli. Sipas arkitekturës së mikrokernelit, të gjitha funksionet e OS zbatohen nga serverët e mikrokernelit dhe të modalitetit të përdoruesit. Çdo mjedis aplikacioni është projektuar si një server i veçantë i modalitetit të përdoruesit dhe nuk përfshin mekanizmat bazë (Figura 8). Aplikacionet bëjnë thirrje të sistemit në mjedisin e duhur të aplikacionit përmes mikrokernelit. Mjedisi i aplikacionit përpunon kërkesën, e ekzekuton atë dhe ia dërgon rezultatin aplikacionit. Gjatë ekzekutimit të një kërkese, mjedisi i aplikacionit duhet, nga ana tjetër, të aksesojë mekanizmat bazë të OS të zbatuar nga mikrokerneli dhe serverët e tjerë të OS.

Kjo qasje për ndërtimin e mjediseve të shumëfishta aplikimi ka të gjitha avantazhet dhe disavantazhet e një arkitekture mikrokerneli, në veçanti:

Është shumë e lehtë të shtohen dhe përjashtohen mjediset e aplikacionit, gjë që është pasojë e shtrirjes së mirë të sistemeve operative të mikrokernelit;

Besueshmëria dhe qëndrueshmëria shprehen në faktin se nëse një nga mjediset e aplikacionit dështon, të gjithë të tjerët mbeten funksionalë;

Performanca e dobët e sistemeve operative të mikrokernelit ndikon në shpejtësinë e mjediseve të aplikacionit dhe rrjedhimisht në shpejtësinë e ekzekutimit të aplikacionit.

Figura 8 - Qasja e mikrokernelit për zbatimin e mjediseve të shumta të aplikacionit

Krijimi i disa mjediseve të aplikacionit brenda një sistemi operativ për ekzekutimin e aplikacioneve të OS të ndryshëm është një mënyrë që ju lejon të keni një version të vetëm të programit dhe ta transferoni atë midis OS.

Artikujt kryesorë të lidhur