Sunteți pe pagina 1din 12

1.Introducere: ce sunt mașinile virtuale.

Avantaje/ dezavantaje, oportunitati

1.1 Ce este o mașină virtuală ?

Mașina virtuală (VM) reprezintă un sistem de operare sau mediu de aplicație configurat în cadrul
unui sistem de operare existent, având capacitatea de a simula hardware specializat. Implementarea
sistemelor de mașini virtuale a generat progrese semnificative în proiectarea sistemelor informatice.

Datorită similarităților de hardware, mașinile virtuale pot fi asemănătoare cu computerele fizice. Cu


toate acestea, în ceea ce privește mașinile virtuale, acestea există exclusiv sub formă de cod și pot fi
create și definite doar prin intermediul software-ului care rulează pe computerele fizice.

Mașinile virtuale permit dezvoltarea de sisteme capabile să ofere acces multiplu, să desfășoare
multiprocesare și să efectueze multitasking. Aceasta facilitează clonarea eficientă a unuia sau mai multor
sisteme informatice și permite configurarea diverselor medii de lucru. Mașina virtuală funcționează ca un
sistem de operare autentic.

1.2 Avantaje/ Dezavantaje/ Oportunități ale utilizării mașinilor virtuale

Avantaje:
 Ușurința de Gestiune: Software-ul de virtualizare simplifică gestionarea resurselor printr-o
interfață centralizată pentru control și monitorizare.
 Reducerea Costurilor: Virtualizarea optimizează utilizarea resurselor fizice, generând economii
semnificative la nivel de hardware, energie și spațiu.
 Ușurința de Migrare și Recuperare: Mașinile virtuale pot fi mutate între servere fizice pentru
recuperare rapidă și minimizare a downtime-ului în caz de defecte hardware.
 Upgrade-uri: Platformele de virtualizare permit upgrade-uri simple pentru menținerea mediului
virtualizat la zi cu cele mai recente caracteristici și patch-uri de securitate.
 Proprietate Cost-Eficientă: Virtualizarea reduce necesitatea mai multor mașini fizice, aducând
economii semnificative în hardware, energie și întreținere.
 Partajarea și Izolarea Resurselor: O mașină fizică poate găzdui mai multe mașini virtuale, cu
alocare ajustabilă a resurselor.
 Testare și Dezvoltare: Virtualizarea oferă mediu sigur pentru testarea software-ului înainte de
producție, îmbunătățind fiabilitatea sistemului.
 Întreținere Flexibilă a Serverului: Virtualizarea permite întreținerea serverului fără a afecta alte
mașini virtuale, promovând disponibilitatea sistemului.
Dezavantajele:

- Eșuarea root-ului: Dacă sistemul fizic din care se dezvoltă toate celelalte sisteme
cedează, atunci toate sistemele virtuale vor fi afectate.

-Complexitatea utilizării acestor sisteme care necesită cunoștințe adecvate pentru a


gestiona eficient aceste sisteme virtuale. Utilizarea deficitară a mașinilor poate conduce la concurarea
acestora pentru resursele de pe sistemul fizic.

- Costurile de obținere a licențelor: Unele soluții de virtualizare pot avea costuri de


licență asociate pentru unele funcții mai avansate.

- Compatibilitate: Nu toate aplicațiile și software-ul sunt concepute pentru a funcționa


în mod optim într-un mediu virtualizat.

Oportunitățile sunt strâns legate de toate avantajele pe care le-am enumerat anterior, astfel
oferind industriei informatice o cale largă de beneficii în optimizarea costurilor de energie, timp și
memorie, flexibilitate în utilizarea lor, cât și o metodă eficientă de dezvoltare rapidă a mediilor de
testare, oferind redundanță și o recuperare facilă a resurselor conținute în mai multe sisteme virtuale
izolate.

Aceste oportunități demonstrează versatilitatea și utilitatea mașinilor virtuale în diverse contexte și


industrii.

2. Reprezentarea si structura masinilor virtuale

Reprezentarea unei mașini virtuale implică îndeplinirea mai multor cerințe esențiale: "gazda"
mașinii virtuale trebuie să asigure o duplicare eficientă și sigură a configurației sistemului mașinii fizice;
VMM trebuie să exercite un control complet asupra mașinii virtuale, mai ales asupra resurselor fizice
alocate și a execuției acestora; Microkernelul trebuie să dispună de o reprezentare adecvată a resurselor
mașinii virtuale pentru a impune constrângeri specifice asupra sistemului, cum ar fi izolarea și
integritatea.

2.1 Microkernel
Elementul fundamental al unui sistem de operare este nucleul, însărcinat cu supravegherea
resurselor sistemului. În plus, acționează ca o punte care conectează hardware-ul computerului și
aplicațiile.

Un tip de nucleu de sistem de operare cunoscut sub numele de microkernel este conceput
pentru a îndeplini doar sarcinile de bază ale sistemului, cum ar fi programarea procesorului și
gestionarea memoriei. Procesele la nivel de utilizator care comunică cu microkernel-ul prin mesaje sunt
utilizate pentru a implementa serviciile sistemului mai complexe. Implementarea acestui paradigmă
oferă flexibilitate și modularitate, în contrast cu nucleele tradiționale care gestionează toate serviciile
sistemului.

Aplicarea acestui tip de arhitectură kernel oferă diverse avantaje prin îmbunătățirea stabilității și
securității sistemului de operare. Acest lucru rezultă din faptul că un microkernel mai mic are un număr
redus de servicii, ceea ce la rândul său reduce cantitatea de spațiu disponibil pentru un atac asupra
sistemului de operare. Prin concentrarea microkernel-ului exclusiv pe controlul proceselor și memoriei,
stabilitatea generală a sistemului rămâne neafectată, chiar dacă un proces utilizator eșuează.

Alte avantaje ale designului microkernel-ului includ modularitatea crescută și flexibilitatea sistemului de
operare. Acest lucru duce la o adaptabilitate crescută a sistemului de operare la nevoile specifice ale
utilizatorilor sau aplicațiilor. În plus, facilitează personalizarea sistemului în funcție de cerințele specifice,
permițând o utilizare mai flexibilă și personalizată în ansamblu.Dezavantajul acestui tip nucleu poate
consta în complexitatea crescută ce poate face mai dificilă dezvoltarea și întreținerea SO.

Prin urmare, arhitectura microkernelului este în centrul dezvoltării pentru serviciile cele mai
importante, în timp ce restul serviciilor SO sunt integrate în programele de aplicație de sistem. Cele mai
importante funcții ale sistemului de operare controlat de microkernel sunt următoarele:

 Comunicarea intraprocesuală;
 gestionarea memoriei;
 programarea CPU.

2.2 VMM (Virtual Machine Monitor)

Virtual Machine Monitor (VMM) - Un software/firmware/hardware de calculator care creează și


rulează mașini virtuale, numit și „hypervisor”.

Virtual Machine Monitor (VMM)

 rulează ca un proces al sistemului de operare


 are acces privilegiat la CPU

VMM rulează alte sisteme de operare (mașină gazdă)

 gestionează accesul lor la hardware


 interceptează excepții și întreruperi
VMM este utilizat pentru: centru de date (Un VMM vă oferă resursele necesare pentru a crea și a
implementa mașini virtuale în rețelele cloud locale), gazde de virtualizare, rețea (VMM conferă
virtualizarea rețelei), stocare (un VMM ajuta la atribuirea, clasificarea și stocarea serverelor de stocare la
distanță și locale)

2.3 IPC (Inter-Process Communication)

IPC (Inter-Process Communication) se referă la mecanismele și metodele prin care procesele


(programe în execuție) pot comunica între ele. Acest proces de comunicare între procese este esențial în
sistemele de operare multitasking și multiprogramare, unde mai multe procese rulează simultan și
trebuie să împărtășească informații sau să coopereze pentru a realiza sarcini comune.

InterProcess Comunication means the way in which processes communicate with each other

Un proces poate fi de două tipuri: independent și de cooperare. Un proces independent nu este


afectat de execuția altor procese în timp ce un proces de cooperare poate fi afectat de alte procese de
execuție. Procesele pot folosi memoria partajată pentru an extrage informații ca înregistrări din celelalte
procese și pentru a transmite oricărei informații specifice unui alt proces.
Un proces care este blocat este unul care așteaptă un eveniment, cum ar fi devenirea unei
resurse disponibilă sau finalizarea unei operațiuni I/O.

Procesarea concurentă este un model de calcul în care mai mulți procesori execută instrucțiuni simultan
pentru o performanță mai bună. "Concurent" înseamnă că se întâmplă în același timp cu altceva.
Sarcinile sunt împărțite în subtipuri, care sunt apoi atribuite diferiților procesoare pentru a fi executate
simultan, spre deosebire de execuția secvențială, așa cum s-ar face de către un singur procesor.
Procesarea concurentă este uneori echivalentă cu procesarea paralelă.

2.4 Resursele MV: memoria fizica si memoria virtuala

Memoria fizică (RAM) este împărțită între procesele active în momentul respectiv și sistemul de
operare. Astfel că, în funcție de câtă memorie există pe mașina fizică, este posibil să se finalizeze toate
resursele și să nu se mai poată porni un proces nou. Pentru a împiedica petrecerea acestui scenariu s-a
introdus mecanismul de memorie virtuală. Astfel, chiar dacă spațiul virtual (compus din segmentul de
text, data, heap, stivă) al unui proces întrece memoria fizică disponibilă pe sistem, procesul va putea rula
încărcându-și în memorie doar paginile de care are nevoie în timpul execuției.

Memoria virtuala reprezinta un ansamblu de tehnici si mecanisme folosit pentru a mări


capacitatea aparentă a memoriei principale RAM. Mecanismul de memorie virtuală este folosit de către
nucleul SO pentru a implementa o metodă eficientă de gestiune a memoriei. Astfel, cu toate că aplicațiile
folosesc în mod curent memoria virtuală, ele nu fac acest lucru în mod explicit.

Spațiul virtual de adrese este împărțit în pagini virtuale (page). Corespondentul pentru memoria
fizică este pagina fizică (frame). Dimensiunile ambelor tipuri de pagini sunt egale. Dimensiunea este dată
de hardware (în majoritatea cazurilor o pagină are 4KB pe un sistem de 32 biți sau 64 biți).

Cât timp un proces rulează, atunci accesează numai pagini rezidente în memorie, adică se
execută așa cum ar avea tot spațiul mapat în memoria fizică. În momentul în care un proces va dori să
acceseze o anumită pagină virtuală, care nu este mapată în memorie, se va genera un page fault, iar în
urma acestui page fault pagina virtuală va fi mapată la o pagină fizică.

3. Tehnici si modalitati de protectie a resurselor

3.1 Mecanisme conditionale

Mecanismele conditionale sunt instrumente esențiale în programarea concurentă, având rol de a


sincroniza și controla accesul concurent la resursele partajate.
Necesitatea gestionării acțiuniilor concurente (mai multe procese care împart aceleași resurse
sau acțiuni în paralel) care pot duce la condiții de tip cursă ce pot afecta integritatea datelor.

Un exemplu de utilizare a mecanismelor conditionale este utilizarea variabelor speciale utilizate


pentru a sicroniza diferite fire de excuție ca un semafor ce poate bloca sau debloca accesul la resurse.

Exemplu simplu de utilizare a semaforului în Pseudocod:

---Semaphore semaphore = new Semaphore(1); // Inițializare cu 1, permitând accesul unui singur fir de
execuție la un moment dat

// Firul de execuție 1

semaphore.acquire();

// Accesează resursa partajată

semaphore.release();

// Firul de execuție 2

semaphore.acquire();

// Accesează resursa partajată

semaphore.release();---

Beneficiile constă în evitarea condițiilor de cursă, la evitarea problemelor de sincronizare și


aceste mecanisme conferă control asupra accesului la resurse, garatând securitate între executarea
proceselor între diferite mașini virtuale, fără să se piardă resursele.

3.2 Definirea domeniului de date

Definirea domeniului de date este o practică fundamentală în gestionarea resurselor informatice


și se referă la delimitarea și enumerarea clară a setului de date sau informații care sunt conținute într-un
anumit domeniu sau context. Aceasta implică găsirea și delimitarea datelor în funcție de natura și scopul
lor.

Pentru a contura un sistem fiabil de gestionare a domeniului de date se delimitează:


implementarea sistemelor de permisiuni pentru a reglementa accesul la baza de date pe baza unor
drepturi de acces a unor procese, utilizatori, aplicații, alte mașini virtuale ce pot avea privilegii sau
restricții; politici de acces ce asigură gestionarea eficientă a utilizatorilor, proceselor, aplicaților în
demersul de accesa domeniul de date, stabilindu-se un set de reguli cu privire la modificarea, citirea,
partajarea conținutului în funcție de nivelul de securitate dorit; în final este necesar stabilirea unui
sistem de autentificare care gestioneaza accesul la date, cum ar fi parole sau autentificare în doi pași.

Aici se află un exemplu de Domeniu de date configurat după modelul de mai sus:

Domeniu de Date: "Bibliotecă"

Sistem de Permisiuni:

- Utilizatorul x are drepturi de citire și modificare pentru cărțile de literatură.

- Utilizatorul y are drepturi doar de citire asupra cărților de știință.

- Bibliotecarul are drepturi deplinite asupra întregului domeniu.

Politici de Acces:

- Orice solicitare de modificare a conținutului cărților trebuie să fie aprobată de Bibliotecar.

- Accesul la cărțile secrete este strict restricționat și necesită aprobare specială.

Asigurarea Accesului Autorizat:

- Accesul la sistemul Bibliotecarului se realizează prin autentificare cu credențiale valide.

-Accesul celorlalti cititori, editori se realizează prin trimiterea unei cereri de aprobare la Bibliotecar.

3.3 Spațiile de adrese

Spațiile de adrese reprezintă o tehnică de bază în gestionarea resurselor informatice și constă în


punerea distinctă a zonelor de memorie pentru diferite procese cu scopul de a putea coordona accesul
altor entități(procese, utilizatori, aplicații, alte mașini virtuale) la resursele neautorizate, asigurând
controlul și securitatea adecvată a resurselor informatice.

Beneficiile acestei metode constă ăn izolarea proceselor, asigurarea securității


resurselor(procesele nu pot accesa direct memoria altor entități fără o permisiunea prealabilă dată de
politica de securitate), evitarea și gestionarea eficientă a resurselor ce previne suprainscrierea pe
aceleași spașii de memorie, astfel încât fiecare entiate să opereze în domeniul său de memorie.
Aici este un exemplu pentru a evidenția modul de delimitare a proceselor pe părți bine
delimitate ale memoriei:

Procesul x - Spațiul de Adrese:

- Adresa 0x1100 - 0x0FFF: Stivă și variabile locale

- Adresa 0x1001 - 0x1FFF: Cod executabil

Procesul y - Spațiul de Adrese:

- Adresa 0x1100 - 0x1FFF: Stivă și variabile locale

- Adresa 0x1001 - 0xoFFF: Cod executabil

Controlul Accesului:

- Procesul x are drepturi complete asupra propriului spațiu de adrese.

- Procesul x are drepturi complete asupra ambelor spații de adrese.

- Procesul y are drepturi complete asupra propriului spațiu de adrese.

- Procesul y are drepturi doar de citire pentru spațiul de adrese al procesului x.

3.4 Protecția memoriei

Protecția memoriei reprezintă un aspect critic al sistemelor informatice, având ca obiectiv


asigurarea securității și confidențialității datelor stocate în memorie. Aceasta vizează implementarea
unor mecanisme și tehnici pentru a preveni accesul neautorizat sau modificările nepermise asupra
zonelor de memorie.

Aceasta se realizează prin următoarele aspecte referitoare la protecția memoriei pentru fiecare
mașină virtuală:

1. Controlul accesului în cadrul mașinii virtuale - VMM gestionează accesul la resursele de


memorie virtuală, fără să poată ca ele să acceseze memoria altor mașini virtuale.

2. Paginare și segmentare virtuală - VMM decide ce pagini virtuale sunt mapate la nivel fizic într-
un anumit moment pentru fiecare mașină virtuală.

3. Alocarea de resurse - Fiecare mașină virtuală dobândește o alocare specifică de resurse


virtuale, precum memorie, alocarea fiind gestionată și monitorizată de VMM.
4. Mecanisme de securitate în hipervizor- Hipervizorul implementează mecanisme de securitate
pentru a preveni accesul neautorizat între mașinile virtuale, mecanisme enunțate la primul punct al
acestei secțiuni

5. La nivel de rețea pot exista mașini virtuale care cer o politică de criptare mai ridicat în timpul
schimbului de date

Acest nivel de izolare și protecție este esențial în medii virtualizate pentru a asigura securitatea și
integritatea sistemelor.

3.5 Lipsa alterarii sistemului de baza / interferente cu alte masini virtuale

Izolarea resurselor: O caracteristică importantă a mașinilor virtuale este capacitatea de a


funcționa independent una față de alta. Acest lucru înseamnă că o mașină virtuală nu ar trebui să
denatureze sau să strice sistemul de operare gazdă sau alte mașini virtuale care funcționează pe același
sistem.

In acest sens, eroarea unei mașini virtuale sau supunerea unui atac exterior asupra acesteia nu ar trebui
sa afecteze gazda sau celelalte mașini virtuale.

Lipsa alterării sistemului de bază conferă administrarea sistemului gazdă și păstrarea acestuia într-o stare
optimă, indiferent de modul în care mașinile virtuale sunt configurate sau utilizate.

Gestionarea corespunzătoare a raporturilor dintre mașinile virtuale este dată de tehnologii de


felul hypervisorii care ajută la controlul și distribuirea eficientă a resurselor. Pentru a ocoli interferențele
în cadrul rețelei, mașinile virtuale pot fi plasate în sub-rețele virtuale separate. Astfel, traficul între
mașinile virtuale poate fi controlat și monitorizat mai eficient. Securitatea sistemelor este dată de
implementarea politicii de securitate ce previn intervenția mașiniilor neautorizate, exemplu de tehnologii
firewallsle.

4. Utilizarea masinilor virtuale (2 studii de caz)

Tehnologia de virtualizare a apărut acum câteva decenii, având scopul de a evita risipa de putere
a procesoarelor costisitoare. Acest ecosistem oferă abordări noi și chiar revoluționare în știința
computerelor, în special pentru studiile privind comportamentul sistemelor de operare în medii
heterogene.

În continuare vom prezenta utilizarea în practică a acestor sisteme de calcul în cadrul a două
studii de caz pe care le vom dezvolta în paragrafele de mai jos pentru a evidenția proprietățiile mașiniilor
virtuale în utilizarea practică a avantajelor și oportunităților de securitate și fiabilitate a acestora
prezentate în punctele anterioare.
4.1 În prima parte vom prezenta studiul de caz realizat de către Nicolae Paraschiv și Gabriel Rădulescu
la Universitatea de Petrol și Gaze din Ploiești care au propus studiul interacțiunilor între sisteme de
operare heterogene pe mașini virtuale.

4.1.1 Arhitectura sistemului

Autorii prezintă mai întâi arhitectura hardware cu nodul central „(server HP Proliant ML310, pe
platforma Intel (procesor Pentium 4 la 3,2 GHz - tehnologie Hyper-Threading, memorie EC DDR de 1 GB)
cu sistem de stocare RAID și facilități de backup pentru a preveni pierderea datelor utilizatorului)”, în
timp ce clienții sistemului sunt amplasați pe stații de lucru independente „(sisteme tipice Pentium 4:
viteză CPU de 2 GHz, memorie DDR de 512 MB, sistem de stocare ATA), conectate la serverul Proliant
printr-un switch Ethernet gestionat de mare viteză”.

Arhitectua software adoptă o instalare uniformă a sistemului de operare, autorii considerând


distribuția Linux ca cea mai stabilă și ușor de controlat. S-a adoptat, de asemenea, o gestionare uniformă
a conturilor de utilizator, localizând baza de date a acestora pe server, astfel încât toți clienții fiind
autentificați prin intermediul NIS (Network Information Service). Acest sistem este transparent pentru
utilizator, dar această modalitate de lucru oferă avantajul creșterii siguranței datelor, autorii așteptând o
protecție îmbunătățită împotriva codului malicios (aplicații spyware, viruși), deoarece localizarea
fișierelor utilizatorului doar pe server face posibilă o gestionare centralizată, inclusiv utilizarea unei
soluții antivirus unice, doar pe mașina Proliant.

Ca plaformă de virtualizare aceștia au preferat VMware ca cea mai flexibilă soluție, pentru că
totodată aceasta oferă o reprezentare abstractă a hardware-ului și o compatibilitate foarte bună cu toate
sistemele de operare oaspete care se intenționează a fi incluse în sesiunile următoare de testare.

Prin această configurație a sistemului, echipa de cercetare de la Universitatea de Petrol și Gaze


din Ploiești poate să desfășoare studii avansate privind interacțiunile între sisteme de operare
heterogene într-un mediu virtualizat. „Abordarea aduce beneficii semnificative în înțelegerea
comportamentului sistemelor de operare și în furnizarea unui cadru adecvat pentru activitățile de
instruire în domeniul științelor computerului ” - așa cum mărturisesc realizatorii studiului.

4.1.2 Observașiile autorilor cu privire la proiect

În timpul utilizării sistemului descris anterior atât în teste, cât și în sesiunile de formare pentru
studenți, autorii au desprins următoarele beneficii ale utilizării unui ecosistem bazat pe mașini virtuale:

-se poate înmagazina și distribui materialul didactic în mașini virtuale cu efort considerabil mai
mic, astfel încât autorii afirmă : „În acest sens, o facilitate importantă pe care am creat-o pentru sistemul
nostru este replicarea automată a mașinilor virtuale pe toate stațiile de lucru: atunci când este necesară
o actualizare a software-ului, aceasta trebuie aplicată doar pe o singură mașină, iar noua imagine VM
este multiplicată în rețea, făcând-o disponibilă pe toate stațiile de lucru pentru fiecare utilizator
autorizat.”

-sistemul permite studenților să experimenteze cu mai multe sisteme de operare, aplicații și


instrumente în mașini virtuale sigure și izolate, reducând resursa hardware necesare.

-sistemul oferă flexibilitate printr-un proces de stabilire a politici de acces a studenților pentru a
conferi drepturi de utilizator, atunci când se tratează subiecte privind sarcinile de gestionare a SO.

-sistemul astfel configurat hardware și software oferă un timp necesar pentru intervenții tehnice,
activități de întreținere redus drastic.

Autorii acestui studiu conchid prin a evidenția modul în care tehnologia de virtualizare poate fi
aplicată în studiile despre interacțiunile dintre diferite SO într-un mediu hardware omogen și software
heterogen, ca o unealtă valoroasă pentru lucrările de laborator de formare, acesta fiind scopul studiului
de cercetare.

4.2

5. Concluzii

Astfel, am prezentat utilitatea mașinilor virtuale (sisteme de operare software ce funcționează pe


aceeași gazdă fizică) și avantajele sale de consolidare a serverelor, eficiența de memorie și energie,
securitate și fiabilitate. În paragraful următor a fost ilustrat reprezentarea sistemului unei mașini virtuale,
a modului de funcționare, ca mai apoi să se evidențieze metodele de securitate a depanării și conectării
sistemelor virtuale interconectate la server. În ultimul punct a fost pus în evidență aplicabilitatea
mașinilor virtuale în două studii de caz ce evidențiază rolul lor în metode educative.

6. Referinte:

1.1 https://mediadigitala.ro/compentente-digitale/304-avantajele-masinii-virtuale-si-virtualizarii

1.2 ARCHITECTURE OF VIRTUAL MACHINES by R. P. Goldberg Honeywell Information Systems, Inc.


Billerica, Massachusetts and Harvard University, Cambridge, Massachusetts

1.3 https://barrazacarlos.com/ro/avantaje-si-dezavantaje-ale-virtualizarii/
1.4 Comparative Study of Virtual Machine Software Packages with RealOperating System by Arunkumar
Jayaraman and Pavankumar Rayapudi

1.5 Fig 1: https://www.techtarget.com/searchitoperations/definition/host-virtual-machine-host-VM

2.1 https://www.slideserve.com/elijah/masini-virtuale

2.2 https://www.geeksforgeeks.org/microkernel-in-operating-systems/

2.3 Virtual Machines and Virtual Memory by Alexander Nelson

2.4 https://www.easeus.com/knowledge-center/what-is-vmm.html

2.5 Inter Process Communication

2.6 https://ocw.cs.pub.ro/courses/so/laboratoare/laborator-06

lecture-virtual-machines Philipp Koehn

3.1 VIRTUALIZATION TECHNIQUES IN COMPUTER SCIENCE –A PRACTICAL POINT OF VIEW by Nicolae


Paraschiv, Prof. PhD. Eng., Gabriel Rădulescu, Lecturer PhD. Eng.

S-ar putea să vă placă și