Jeden pecet zamiast wielu

Żyjemy w czasach, w których słowo “wielozadaniowy” zaczyna nabierać coraz większego praktycznego znaczenia. Nie od dziś pracując z naszymi komputerami, staramy się jednocześnie uruchomić jak najwięcej pożądanych aplikacji. Wiele pracujących w tym samym czasie programów często obniża jednak wydajność komputera i stwarza ryzyko utraty cennych danych, np. w wyniku zawieszenia się systemu. Znacznie więcej czasu zajmuje także samo przełączanie się pomiędzy wieloma programami. Przynajmniej z tym ostatnim dość dobrze zaczęły sobie radzić procesory hiperwątkowe i wielordzeniowe. Stosowana w układach Pentium 4 technologia Hyper-Threading ma jednak ograniczone możliwości. Pół biedy, jeśli procesor zmusimy do pracy z dwiema zupełnie różnymi aplikacjami. Gdy jednak uruchomimy w tym samym czasie dwa programy wykorzystujące np. jednostki zmiennoprzecinkowe, korzyść z technogii HT będzie żadna, a procesor nie dość że nie przyspieszy, to w stosunku do zwykłego CPU dość znacznie zwolni. Co innego, gdy takie same programy uruchomimy na procesorze dwurdzeniowym – tutaj każdy rdzeń jest bowiem niezależnym procesorem, dzięki czemu aplikacje otrzymają do dyspozycji więcej jednostek wykonawczych. Ciągle nam jednak daleko do prawdziwej wielozadaniowości.

Ostatnio coraz więcej mówi się też o idei cyfrowego domu (patrz:

CHIP 11/2004 – dodatek “Cyfrowy dom”

) i ewolucji komputera, który wkrótce stanie się centrum multimedialnym, umożliwiającym domownikom jednoczesną zabawę, naukę i odpoczynek. Trudno coś takiego wyobrazić sobie bez kilku komputerów lub wielordzeniowego procesora, ale jeszcze trudniej bez możliwości jednoczesnego uruchomienia kilku – i to wcale niekoniecznie takich samych – systemów operacyjnych. Oczywiście, nie od dziś dostępne są programy, takie jak VMware Workstation czy Virtual PC, potrafiące podzielić zasoby komputera na kilka wirtualnych maszyn. Można na nich uruchomić jednocześnie wiele systemów operacyjnych. Rozwiązanie programowe zabiera jednak dużo mocy obliczeniowej komputera. Znacznie efektywniej z tym zadaniem poradzi sobie wirtualizacja wspomagana sprzętowo, która już na poziomie procesora wykonywać będzie sporą część pracy. Tak właśnie dochodzimy do technologii sprzętowej wirtualizacji Vanderpool (Intel) i Pacifica (AMD), które w ciągu roku trafić mają do domowych, dwurdzeniowych procesorów.

Oszukiwanie systemu

Dzięki technologii wirtualizacji, niezależnie, czy sprzętowej czy też programowej, każdy z wielu zainstalowanych na komputerze systemów operacyjnych działa tak, jakby był zupełnie sam. Nie wie on też nic o obecności innych systemów. Niemniej, kiedy uruchomimy ich zbyt wiele, pecet drastycznie zwolni, gdyż każda wirtualna maszyna zabierze część zasobów komputera. Co więcej, w przypadku czysto programowej wirtualizacji już samo uruchomienie hosta – systemu zarządzającego wirtualnymi maszynami – spowodować może znaczący spadek wydajności peceta. To jeden z powodów, które sprawiły, że zarówno firma Intel, jak i AMD zdecydowały się na implementację w swoich procesorach dodatkowych rozszerzeń, przejmujących na swoje barki sporą część zadań związanych z zarządzaniem wirtualnymi maszynami.

Vanderpool oraz Pacifica przyniosą między innymi: nowe tryby pracy procesora, sprzętową ochronę informacji przechowywanych w pamięci czy też wspomaganie samego procesu przełączania się pomiędzy wirtualnymi komputerami. Szybko trzeba jednak dodać, że i te technologie nie obejdą się bez specjalnej warstwy programowej, umożliwiającej dzielenie zasobów sprzętowych pomiędzy systemami. By wszystko zadziałało, oprócz procesora z technologią Vanderpool lub Pacifica potrzebny będzie jeszcze programowy monitor VMM (Virtual Machine Monitor), nazywany też Hypervisorem. Można powiedzieć, że jest to dość nietypowy odpowiednik BIOS-u, ale o bardzo dużym stopniu samodzielności.

Dzięki monitorowi VMM nie dość więc, że będziemy mogli bez żadnych problemów, dosłownie natychmiast przełączać się między wirtualnymi maszynami, to na dodatek wadliwe działanie jednego programu, nawet jeśli spowoduje zawieszenie się pojedynczego wirtualnego systemu operacyjnego, nie wyrządzi żadnej szkody wirtualnemu zarządcy, a tym samym i innym wirtualnym maszynom.

Wirtualny świat korzyści

Zarówno w pełni programowa, jak i w przyszłości częściowo sprzętowa wirtualizacja pracy komputera umożliwia zapisywanie obrazów danego systemu operacyjnego. Przed każdym ryzykownym zadaniem, np. instalacją niepewnych sterowników czy testowaniem wirusa, możemy więc zapisać stan dowolnego systemu wirtualnego i w każdej chwili do niego powrócić. Technologie wirtualizacji zasadniczo nie wymagają także żadnych zmian ze strony zarówno systemów operacyjnych, jak i poszczególnych programów – te bowiem, jak już wspominaliśmy, działają tak, jak gdyby tylko one korzystały z zasobów komputera. Z ich punktu widzenia nic więc się nie zmienia. Oczywiście, nie wyklucza to możliwości poczynienia odpowiednich modyfikacji, po to by wirtualne maszyny świadomie współpracowały z wirtualnym zarządcą.

Możliwość uruchomienia kilku takich samych czy, jak kto woli, różnych systemów operacyjnych (np. Windows i Linuksa) stwarza całkiem nowe perspektywy. Łatwo sobie bowiem wyobrazić wspomniane domowe centrum multimedialne z podpiętymi duplikatorami portów, dwoma monitorami i dwoma zestawami manipulatorów. Każdy użytkownik będzie miał swój system operacyjny, pracujący niezależnie od pozostałych. Będziemy więc mogli z pojedynczego komputera korzystać w kilka osób, tak jakby każdy miał swojego własnego peceta, a to spora oszczędność miejsca i pieniędzy. Zanim jednak ta wizja przyszłości się spełni, konstruktorów czeka jeszcze wiele pracy.

Wirtualizacja w skrócie
Wirtualizacja komputera to przede wszystkim sposób na zwiększenie jego funkcjonalności. Taki usprawniony pecet cechuje się:

  • możliwością zastąpienia kilku komputerów, z których każdy wykonuje różne zadania, np. konsoli do gier, serwera internetowego i komputera typu media PC,
  • pozwala na zainstalowanie i jednoczesne uruchomienie różnych systemów operacyjnych, np. Windows i Linuksa,
  • uruchomione OS-y nie wpływają na siebie wzajemnie,
  • w razie ataku wirusa, hakera lub awarii jednego z OS-ów pozostałe systemy są bezpieczne.

Więcej:bezcatnews