Maszyna wirtualna ang. virtual machine, VM.

Slides:



Advertisements
Podobne prezentacje
Systemy operacyjne.
Advertisements

Co to jest BIOS ? Piotr Pierzchalski kl. III B.
Programowanie obiektowe
Wprowadzenie do C++ Zajęcia 2.
PROGRAMOWANIE STRUKTURALNE
przetwarzaniu informacji
1 Linux jako system wielozadaniowy i wielodostępny.
WIRTUALIZACJA Qemu – emulacja sprzętu Prezentacja systemu w systemie.
Zrównoleglanie programu sekwencyjnego
CLR na platformie .NET Tomasz Kostarski.
Platforma .Net i Vs.Net.
Generyczne Repozytorium Dokumentów w XML
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 1: Wprowadzenie do programowania.
Wykład nr 1: Wprowadzenie. Pojęcia podstawowe
Systemy operacyjne.
Systemy operacyjne Bibliografia:
Systemy operacyjne Bibliografia:
Temat nr 10: System przerwań
Administracja zintegrowanych systemów zarządzania
Artur Szmigiel Paweł Zarębski Kl. III i
Java – programowanie obiektowe
1 Podstawy informatyki H. P. Janecki- 2006_ Systemy Operacyjne W6.
Wprowadzenie do programowania w języku Turbo Pascal
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Systemy operacyjne. Co to jest system operacyjny? OS (ang. Operating System) to program, który kontroluje pracę uruchomionych przez użytkownika aplikacji,
Bios.
Konsole wirtualne, terminale.
Rozwój aplikacji przy wykorzystaniu ASP.NET
Protokół Komunikacyjny
System operacyjny. System operacyjny Co to jest system operacyjny: jest szczególnym rodzajem programu, którego zadaniem jest koordynowanie pracy.
BIOS Anita Mycak 3B.
Opracowanie: Maria Wąsik
Programowanie Podstawowe pojęcia.
Systemy operacyjne.
Budowa systemu komputerowego
Autor: Justyna Radomska
Programowanie strukturalne i obiektowe
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Programowanie obiektowe – zastosowanie języka Java SE
JAVA.
Narzędzia administracyjne
Przerwanie ang. interrupt.
Buforowanie D e f i n i c j a.
Implementacja systemu
M i k r o j ą d r o D e f i n i c j a. M i k r o j ą d r o to rodzaj jądra systemu operacyjnego, które zawiera tylko najbardziej niezbędne elementy, takie.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Wykład 7 Synchronizacja procesów i wątków
Podstawy programowania
C++.
Podstawy języka skryptów
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
Programowanie w językach skryptowych
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Wprowadzenie do programowania w Pascalu mgr inż. Agata Pacek.
Platforma .Net.
Podstawy programowania
Oprogramowaniem (software) nazywa się wszystkie informacje w postaci zestawu instrukcji i programów wykonywanych przez komputer oraz zintegrowanych danych.
Struktura systemu operacyjnego
Problematyka izolacji wydajności w systemach wirtualizowanych
Dokumentacja programu komputerowego i etapy tworzenia programów.
Wstęp do programowania Wykład 1
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Z. SroczyńskiInżynieria programowania Wirtualizacja Zdzisław Sroczyński Politechnika Śląska Instytut Matematyki Inżynieria programowania Wirtualizacja.
PROGRAMY DO KONTROLI RODZICIELSKIEJ
PROGRAMY DO KONTROLI RODZICIELSKIEJ
Programowanie obiektowe – zastosowanie języka Java SE
Programowanie w Javie 1 Dr Robert Kowalczyk
Zapis prezentacji:

Maszyna wirtualna ang. virtual machine, VM

D e f i n i c j a To ogólna nazwa dla programów tworzących środowisko uruchomieniowe dla innych programów. Maszyna wirtualna kontroluje wszystkie odwołania uruchamianego programu bezpośrednio do sprzętu lub systemu operacyjnego i zapewnia ich obsługę. Dzięki temu program uruchomiony na maszynie wirtualnej "myśli", że działa na rzeczywistym sprzęcie, podczas gdy w istocie pracuje na sprzęcie wirtualnym, "udawanym" przez odpowiednie oprogramowanie (maszynę wirtualną).

Maszyna wirtualna Wykonywanym programem może być zarówno pojedyncza aplikacja jak i cały system operacyjny lub nawet kolejna maszyna wirtualna. Są one zupełnie odizolowane przez maszynę wirtualną od maszyny fizycznej, w odróżnieniu od klasycznego systemu operacyjnego, który tylko zarządza uruchamianiem aplikacji na maszynie fizycznej.

Rodzaje maszyn wirtualnych Maszyny wirtualne to m.in.: interpretery, szczególnie interpretery kodu bajtowego kompilatory JIT emulatory rzeczywiście istniejącego sprzętu, np. emulatory konsol

I n t e r p r e t e r To rodzaj programu komputerowego (translatora), który analizuje kod źródłowy a przeanalizowane fragmenty (zazwyczaj jedna instrukcja) są wykonywane. Wykonanie powtórnie tego samego fragmentu wymaga powtórnej analizy. Jest to działanie przeciwne do kompilatora, który nie wykonuje wejściowego programu (kodu źródłowego) lecz tłumaczy go do wykonywalnego kodu maszynowego, który jest zapisywany do pliku w celu późniejszego wykonania. W większości przypadków jest możliwe wykonanie tego samego kodu źródłowego zarówno bezpośrednio przez interpreter jak i przez kompilację i wykonanie wygenerowanego kodu źródłowego.

K o m p i l a t o r To program służący do automatycznego tłumaczenia kodu napisanego w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku wynikowym). W informatyce tym pojęciem określa się najczęściej program do tłumaczenia kodu źródłowego w języku programowania na język maszynowy. Niektóre kompilatory tłumaczą najpierw do języka asemblera, a ten na język maszynowy jest tłumaczony przez asembler.

E m u l a t o r To program komputerowy, który duplikuje funkcje jednego systemu informatycznego w innym, dzięki czemu ów drugi system zwraca te same rezultaty, co pierwszy. Mówimy wtedy, że pierwszy system jest emulowany przez drugi. Jedną z form emulatorów są programy, które umożliwiają uruchamianie aplikacji na komputerze lub systemie operacyjnym innym niż ten na który zostały napisane (np. emulatory Amigi, Atari, ZX Spectrum).

Możliwości maszyn wirtualnych Maszyny wirtualne pozwalają uruchamiać programy napisane dla innych architektur bez żadnych zmian lub tylko z niewielkimi modyfikacjami (parawirtualizacja). Idealna maszyna wirtualna w pełni naśladuje działanie fizycznego sprzętu, teoretycznie możliwe jest więc dowolne i nieograniczone kombinowanie różnych warstw wirtualizacji, w tym np. rekursywne uruchamianie wirtualnych maszyn.

Zastosowania maszyn wirtualnych Maszyny wirtualne są używane do różnych celów: do uruchamiania istniejących aplikacji i systemów operacyjnych w innych środowiskach niż pierwotne dla zapewnienia uniwersalnego środowiska uruchomieniowego do bezpiecznego rozdzielania zasobów dużych maszyn (mainframe, superkomputery) do uruchamiania jednocześnie różnych systemów operacyjnych na jednym komputerze do uruchamiania na jednym komputerze programowych klastrów do uzyskania pełnej kontroli nad systemem operacyjnym, np. podczas analizowania jego pracy do optymalizacji pracy programów, poprzez kontrolę ich środowiska działania i procesu translacji kodu

Maszyna wirtualna Poszczególne korzyści mogą występować łącznie, na przykład uruchamianie wielu wirtualnych maszyn na dużym komputerze odbywa się pod ścisłą kontrolą stanu ich działania.

P o d s u m o w a n i e Maszyna wirtualna stanowi pośrednik między bytecodem, a zasobami systemowymi, np. pamięcią. Maszyna wirtualna zajmuje się odzyskiwaniem pamięci (zwalnia z tego obowiązku programistę). Maszyna wirtualna gwarantuje, że zajmie się także detalami specyficznymi dla konkretnej platformy systemowej. Maszyna wirtualna zabezpiecza newralgiczną część systemu przed złymi kodami.