miko是什么意思
Изврше?е програма |
---|
Опште теме |
Специфична дужина тра?а?а |
|
Виртуелна машина (ВМ) представ?а симулаци?у машине, ко?а се обично разлику?е од ци?не машине (на ко?о? се симулаци?а обав?а). Виртуелне машине могу бити засноване на спецификаци?ама хипотетичког рачунара или могу да емулира?у архитектуру рачунара и функци?е ?стварног“ комп?утера.
Дефиници?е
[уреди | уреди извор]Виртуелна машина (ВМ) ?е софтверска имплементаци?а машине (нпр. рачунара) ко?а извршава програм као ?права“ машина. На основу ?ихове употребе и степена сличности са стварном машином, виртуелне машине се деле на два главна типа:
- Виртуелна машина за симулира?е система, ко?а обезбе?у?е комплетну системску платформу ко?а подржава извршава?е целог оперативног система (ОС)[1]. Оне обично емулира?у посто?е?е архитектуре, а на?чеш?е се праве ради обезбе?ива?а платформе за извршава?е програма када ?прави“ хардвер ни?е доступан (нпр. извршава?е софтвера на превази?еним платформама), или када ?е, у ци?у ефикасни?ег искориш?е?а рачунарских ресурса (на?више по пита?у потрош?е енерги?е и/или контроле трошкова) потребно имати више инстанци виртуелних машина.
- Виртуелна машина за симулира?е процеса (и ?езика) ?е осмиш?ена тако да извршава ?едан програм, што значи да подржава само ?едан процес. Такве виртуелне машине се обично праве за ?едан или више одре?ених програмских ?езика, са ци?ем да, изме?у осталог, обезбеде преносивост и флексибилност. Главна одлика овог типа ?е да ?е софтвер ко?и се на виртуелно? машини извршава ограничен ресурсима и апстракци?ама ко?е виртуелна машина обезбе?у?е, т?. не може да пре?е оквире свог виртуелног окруже?а.
Виртуелну машину су првобитно дефинисали Попек и Голдберг као ?ефикасан изоловани дупликат стварне машине“. Садаш?а употреба ук?учу?е и машине ко?е не одговара?у неком посто?е?ем хардверу.[2]
Виртуелне машине за симулира?е система
[уреди | уреди извор]Главне предности овог типа су:
- више оперативних система може истовремено посто?ати на истом рачунару, а да притом буду прилично изоловани ?едни од других
- виртуелна машина може да обезбеди скуп инструкци?а архитектуре ко?и се нешто разлику?е од оног на стварно? машини
- снабдева?е апликаци?ама, одржава?е, висока доступност и опоравак од катастрофе[3]
Главне мане овог типа су:
- виртуелна машина ?е ма?е ефикасна од стварне машине када индиректно приступа хардверу
- када се више виртуелних машина конкурентно извршава на истом физичком ?дома?ину“, свака виртуелна машина може имати промен?иве и нестабилне перформансе (у смислу брзине извршава?а, не резултата), што прилично зависи од оптере?е?а ко?и сваки ВМ наме?е систему, осим ако се користе одре?ене технике за привремену ме?усобну изолаци?у виртуелних машина.
Оперативне системе ко?и се извршава?у на виртуелно? машини називамо госту?у?им оперативним системима. Госту?у?и оперативни системи не мора?у бити компатибилни са хардвером, што омогу?ава покрета?е различитих оперативних система на истом рачунару (нпр. Microsoft Windowsа и Линукса, или стари?их верзи?а оперативних система ради подржава?а софтвера ко?и ?ош ни?е прилаго?ен нови?им верзи?ама).
Ова? тип виртуелних машина се може користити и за оперативне системе ко?и су ?ош у фази разво?а.
Виртуелне машине за симулира?е процеса
[уреди | уреди извор]На овом типу виртуелних машина се пушта?у ?обичне“ апликаци?е унутар ?дома?инског“ оперативног система, и они подржава?у само ?едан процес. Он наста?е при покрета?у процеса, а уништава се при изласку из ?ега. Сврха виртуелних машина за симулира?е процеса ?е обезбе?ива?е програмског окруже?а ко?е не зависи од платформе.
Ова? тип виртуелних машина обезбе?у?е висок ниво апстракци?е - на нивоу програмских ?езика високог нивоа. Они се имплементира?у кориш?е?ем интерпретатора; перформансе упоредиве са компа?лираним програмским ?езицима се постижу употребом ?ит (енг. just in time) компилаци?е.
Виртуелне машине за симулира?е процеса се веома користе за програмски ?език ?ава, ко?и ?е имплементиран кориш?е?ем ?ава виртуелне машине. Други пример ?е . НЕТ Фре?мворк, ко?и ради на виртуелно? машини ко?а се зове ЦЛР (енг. Common Language Runtime)
Референце
[уреди | уреди извор]- ^ ?Virtual Machines: Virtualization vs. Emulation”. Архивирано из оригинала 15. 07. 2014. г. Приступ?ено 11. 3. 2011.
- ^ Smith, James; Nair, Ravi (2005). ?The Architecture of Virtual Machines”. Computer. IEEE Computer Society. 38 (5): 32—38. doi:10.1109/MC.2005.173.
- ^ ?Virtualizing Business Critical Enterprise Applications”. Архивирано из оригинала 17. 08. 2013. г. Приступ?ено 13. 01. 2013.
Литература
[уреди | уреди извор]- Smith, James E.; Nair, Ravi (2005). Virtual Machines: Versatile Platforms For Systems And Processes. Morgan Kaufmann. ISBN 978-1-55860-910-5.
- Craig, Iain D. (2006). Virtual Machines. Springer Science Business Media. ISBN 978-1-85233-969-2.