Sie sind auf Seite 1von 9

Introduccin

Un sistema operativo es el software encargado de ejercer el control y coordinar el uso del


hardware entre diferentes programas de aplicacin y los diferentes usuarios.
El sistema operativo se encarga de crear el vnculo entre los recursos materiales, el usuario
y las aplicaciones (procesador de texto, videojuegos, etctera). Cuando un programa desea
acceder a un recurso material, no necesita enviar informacin especfica a los dispositivos
perifricos, simplemente enva la informacin al sistema operativo, el cual la transmite a los
perifricos correspondientes a travs de su driver (controlador). Si no existe ningn driver, cada
programa debe reconocer y tener presente la comunicacin con cada tipo de perifrico.
Internamente, los sistemas operativos varan enormemente en su composicin, ya que se
organizan a lo largo de muchas lneas diferentes. Sin embargo, stas tienen muchas caractersticas
comunes.
En relacin a la estructura de un sistema operativo, existen dos conceptos muy
importantes: multiprogramacin y tiempo compartido (o multitarea).

Multiprogramacin
Multiprogramacin es un trmino que significa que muchos programas que no estn
relacionados unos con otros pueden residir en la memoria de una computadora y tomar turnos
usando la unidad central de procesamiento, cualquiera usuario que haya usado Windows, Unix o
Linux ha experimentado un entorno de multiprogramacin porque estos sistemas pueden ejecutar
un largo nmero de programas de usuario aparentemente de manera simultnea en una sola
unidad central de procesamiento.
La seccin que permite la multiprogramacin en un sistema operativo se denomina
KERNEL, ste software consiste en un nmero de procedimientos que llevan a cabo funciones
como crear tareas, decidir cul tarea correr en un momento dado, proveyendo un mecanismo
para cambiar al procesador de una tarea a otra y provee formas primitivas de acceso controlado a
recursos compartidos.
Uno de los aspectos ms importantes es la capacidad para multiprogramar. En general, un
solo usuario no puede mantener la CPU o los dispositivos de E/S ocupados continuamente. La
multiprogramacin incrementa el uso de la CPU organizando los trabajos (cdigos y datos) de
modo que la CPU siempre tenga uno que ejecutar. Cuando un trabajo tiene que esperar, el
sistema operativo conmuta a otro trabajo, y as sucesivamente.
Los sistemas multiprogramados proporcionan un entorno en el que se usan de forma
eficaz los diversos recursos del sistema, como por ejemplo la CPU, la memoria y los perifricos,
aunque no proporcionan la interaccin del usuario con el sistema informtico.

TIMESHARING
El tiempo compartido (o multitarea) es una extensin lgica de la multiprogramacin. En
los sistemas de tiempo compartido, la CPU ejecuta mltiples trabajos conmutando entre ellos,
pero las conmutaciones se producen tan frecuentemente que los usuarios pueden interactuar con
cada programa mientras ste est en ejecucin.
Dado que usuario suministra directamente instrucciones al sistema operativo o a un
programa, se requiere que exista comunicacin directa entre el usuario y el sistema, por ejemplo,
al utilizar un dispositivo de entrada, como un teclado, el tiempo de respuesta debe ser pequeo
(menor a 1 segundo). Este tipo de sistema operativo permite que muchos usuarios compartan
simultneamente la computadora. Dado que el tiempo de ejecucin de cada accin tiende a ser
pequeo, slo es necesario un tiempo pequeo de CPU para cada usuario. Puesto que el sistema
cambia rpidamente de un usuario al siguiente, cada usuario tiene la impresin de que el sistema
completo est dedicado a l, incluso aunque est siendo compartido por muchos usuarios.
Cada usuario tiene, al menos, un programa distinto en memoria. Un programa cargado en
memoria y en ejecucin se denomina proceso.
El sistema operativo debe asegurar un tiempo de respuesta razonable, lo que en ocasiones
se hace a travs de un mecanismo de intercambio, donde los procesos se intercambian entrando y
saliendo de la memoria al disco. Un mtodo ms habitual de conseguir este objetivo es la memoria
virtual, una tcnica que permite la ejecucin de un proceso que tiene suficiente memoria.
A continuacin se describen una de las estructuras que presentan los actuales Sistemas
Operativos para satisfacer las necesidades que de ellos se quiere obtener. sta no es la nica
estructura, pero nos darn una idea de algunos diseos que se han llevado a la prctica.

Estructura de un sistema operativo.
Analizando la historia de los Sistemas Operativos notamos que se puede considerar que stos
surgen desde finales de los 50's con una arquitectura bastante obsoleta comparada con la de la
actualidad.
Para poder construir un Sistema Operativo se deben tener en cuenta dos tipos de requisitos, los
cuales son:
Requisitos de usuario: Un sistema fcil de usar y de aprender, seguro, rpido y adecuado
para el uso que se le necesita dar.
Requisitos del software: Considera el continuo mantenimiento, forma de operacin,
restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.
El objetivo de la estructuracin es buscar una organizacin interna que facilite la comprensin,
incremente la portabilidad, extensin y favorezca el mantenimiento de los Sistemas Operativos.

Mquinas virtuales
Una mquina virtual (MV) o virtual machine (VM) es una implementacin de software de
una mquina fsica ya sea un servidor o una pc. Es un contenedor de software perfectamente
aislado que puede ejecutar sus propios sistemas operativos y aplicaciones como si fuera un
ordenador fsico. Crea un entorno virtual entre el sistema operativo y el hardware para que el
usuario final pueda ejecutar aplicaciones en una mquina abstracta.
Por decirlo de manera ms sencilla, una mquina virtual es una aplicacin que simula el
funcionamiento de una mquina real sobre la que se pueden instalar sistemas operativos,
aplicaciones, navegar de forma segura, imprimir desde alguna aplicacin, usar los dispositivos USB,
etc. La mquina virtual se comporta exactamente igual que un ordenador fsico y contiene su
propia CPU virtual, memoria, disco duro y tarjeta de interfaz de red. Una mquina virtual se
compone exclusivamente de software y no contiene ninguna clase de componente de hardware.
Una caracterstica esencial de las mquinas virtuales es que los procesos que ejecutan
estn limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no
pueden escaparse de esta "computadora virtual".
Concepto de virtualizacin
Virtualizar significar aparentar que algo con una forma tiene otra. Virtualizar un ordenador
significa aparentar que se trata de mltiples ordenadores o de un ordenador completamente
diferente. Virtualizacin tambin puede significar conseguir que varios ordenadores parezcan uno
solo. A este concepto se le suele denominar agregacin de servidores (SERVER AGGREGATION) o
GRID COMPUTING.
Tipos de virtualizacin
La virtualizacin se puede hacer desde un sistema operativo Windows, ya sea XP, Vista u otra
versin que sea compatible con el programa que se utilice, en el que se virtualiza otro sistema
operativo como Linux o viceversa, por ejemplo que se tiene instalado Linux y se quiere virtualizar
una versin de Windows.
1. Virtualizacin de hardware.
Virtualizacin asistida por Hardware son extensiones introducidas en la arquitectura de
procesador x86 para facilitar las tareas de virtualizacin al software ejecutndose sobre el sistema.
Si cuatro son los niveles de privilegio o anillos de ejecucin en esta arquitectura, desde el cero o de
mayor privilegio, que se destina a las operaciones del KERNEL de SO, con privilegios menores que
es utilizado por los procesos de usuario, en esta nueva arquitectura se introduce un anillo interior
o ring -1 que ser el que un HYPERVISOR o Virtual Machine Monitor usar para aislar todas las
capas superiores de software de las operaciones de virtualizacin.
2. La virtualizacin de almacenamiento
Se refiere al proceso de abstraer el almacenamiento lgico del almacenamiento fsico, y es
comnmente usado en SANS ("Storage rea Network" Red de rea de almacenamiento).Los
recursos de almacenamiento fsicos son agregados al "STORAGE POOL" (almacn de
almacenamiento), del cual es creado el almacenamiento lgico.
3. Mquina virtual
Bsicamente una mquina virtual (MV) o virtual machine (VM) como ms nos gusta llamarlas a
nosotros es una implementacin de software de una mquina fsica ya sea un servidor o una pc.
Estas mquinas virtuales utilizan recursos fsicos como CPU, memoria y disco rgido del equipo
fsico donde corren los cuales le permiten a la misma correr un sistema operativo.
Tipos de mquinas virtuales
1. Mquinas virtuales de hardware
Las mquinas virtuales de hardware tambin llamadas mquinas virtuales de sistema, son
aplicaciones que tratan de emular directamente el hardware. Las llamadas al hardware del sistema
operativo instalado sern capturadas y convertidas en llamadas al sistema del hardware emulado.
En general, la emulacin del hardware recibe el nombre de virtualizacin. Al emularse
directamente el hardware, el usuario tiene la impresin de que la mquina sobre la que est
trabajando es totalmente independiente. Estas mquinas virtuales, permiten a la mquina fsica
subyacente multiplicarse entre varias mquinas virtuales, cada una ejecutando su propio sistema
operativo. A la capa de software que permite la virtualizacin se la llama monitor de mquina
virtual o HYPERVISOR. Un monitor de mquina virtual puede ejecutarse o bien directamente sobre
el hardware o bien sobre un sistema operativo ("HOST OPERATING SYSTEM").
2. Mquinas virtuales de software
Las mquinas virtuales de software tambin llamadas como mquinas virtuales de proceso,
este tipo de mquinas virtuales se sitan por encima del sistema operativo y tratan de aislar a las
aplicaciones del entorno sobre el que se ejecutan. La mquina se inicia automticamente cuando
se lanza el proceso que se desea ejecutar y se detiene para cuando ste finaliza.
Su objetivo es el de proporcionar un entorno de ejecucin independiente de la plataforma de
hardware y del sistema operativo, que oculte los detalles de la plataforma subyacente y permita
que un programa se ejecute siempre de la misma forma sobre cualquier plataforma. La mquina
virtual de Java o la mquina virtual del entorno .NET son dos claros ejemplos de mquinas
virtuales software.

Tcnicas de implementacin de las mquinas virtuales
a. Emulacin del hardware subyacente (ejecucin nativa) o Virtualizacin completa.
La virtualizacin completa, tambin llamada virtualizacin nativa, es otra interesante
tcnica de virtualizacin. Este modelo utiliza una mquina virtual que media entre el sistema
operativo invitado y el hardware nativo. "Mediar" es la palabra clave aqu porque la VMM est
entre el sistema el sistema operativo invitado y el hardware real. Algunas instrucciones protegidas
deben capturarse y manejarse dentro del HIPERVISOR ya que el hardware subyacente no es
propiedad de un sistema operativo sino que es compartido a travs del HIPERVISOR.
Son 2 tipos de HIPERVISORES:
El tipo 1: se ejecuta directamente sobre el hardware.
El tipo 2: se ejecuta sobre otro sistema operativo.
Cada mquina virtual puede ejecutar cualquier sistema operativo soportado por el hardware
subyacente. As los usuarios pueden ejecutar dos o ms sistemas operativos distintos
simultneamente en computadoras "privadas" virtuales.
b. Emulacin de un sistema no nativo.
Las mquinas virtuales tambin pueden actuar como emuladores de hardware, permitiendo
que aplicaciones y sistemas operativos concebidos para otras arquitecturas de procesador se
puedan ejecutar sobre un hardware que en teora no soportan. Algunas mquinas virtuales
emulan hardware que slo existe como una especificacin. Por ejemplo:
La mquina virtual P-CODE que permita a los programadores de Pascal crear aplicaciones
que se ejecutasen sobre cualquier computadora con esta mquina virtual correctamente
instalada.
La mquina virtual de Java.
La mquina virtual del entorno .NET.

Ventajas de las mquinas virtuales.
La capacidad de aprovechar al mximo el hardware disponible ofrece una gran cantidad de
posibilidades a nivel empresarial y a nivel domstico.
Consolidacin de servidores: Convertir muchos servidores fsicos en virtuales. De este
modo se aprovecha el hardware disponible de la mejor manera posible.
Recuperacin ante desastres: Las mquinas virtuales se pueden salvar muy fcilmente, y
adems su estado se puede almacenar, por lo que en caso de desastre se puede recuperar
la informacin con rapidez.
Pruebas de aplicaciones: En muchas ocasiones se necesita un entorno limpio para probar
una aplicacin. Usar una mquina virtual permite instalar un sistema operativo desde
cero, probar la aplicacin y luego eliminar la mquina.
Ejecucin de entornos completos sin instalacin ni configuracin: La posibilidad de
descargar mquinas virtuales desde Internet permite ahorrar tiempo en instalaciones y
configuraciones. Existen muchas mquinas virtuales con servidores LAMP (Linux, Apache,
MySQL y PHP) completos listos para ser usados, mquinas con gestores de contenidos,
wikis, etc., gratuitos y funcionales desde el primer momento.
Aplicaciones porttiles: Con el uso de las mquinas virtuales se pueden tener Pcs
completos listos para usar en dispositivos USB, lo que puede ser de mucha utilidad para
tener un entorno privado y usarlo en cualquier PC.

Desventajas de las mquinas virtuales.
Una de las razones por que las mquinas virtuales, no son la panacea de la computacin,
es que agregan gran complejidad al sistema en tiempo de ejecucin. La principal desventaja de la
mquina virtual, es que en la aplicacin de algunos proceso tendr como efecto la lentitud del
computador, es decir, la computadora en la cual se est ejecutando este proceso debe tener una
capacidad bastante notable debe ser de gran capacidad o potente.
Los lenguajes basados en mquina virtual, poseen una desventaja es que efectivamente
son ms lentos que los lenguajes completamente compilados, debido a la sobrecarga que genera
tener una capa de software intermedia entre la aplicacin y el hardware de la computadora, sin
embargo, Esta desventaja no es demasiado crtica.

Lista de hardware con soporte para Virtualizacin
AMD-V (anteriormente llamado Pacifica).
ARM TRUSTZONE.
IBM System/370, System/390 y mainframes ZSERIES.
Intel VT (anteriormente llamado VANDERPOOL).
SPARC de SUN Microsystems.
Listado de algunas mquinas virtuales.
Mquinas virtuales de proceso.
COMMON LANGUAGE RUNTIME - C#, Visual Basic .NET, J#, Managed C++
EIFFELSTUDIO para el lenguaje de programacin Eiffel
Lenguaje de programacin ERLANG
Forth virtual machine Forth
GLULX - GLULX, Z-code

Mquinas virtuales de sistema.
VTHERE (de SENTILLION, Inc.).
ATL (A MTL Virtual Machine).
BOCHS emulador de PC x86 y AMD64, porttil y open SOURCE.
COLINUX Open Source Linux inside Windows.
Denali, uses PARAVIRTUALIZATION of x86 for running para-virtualized PC operating systems.
FAUMACHINE.

Mquinas virtuales a nivel de sistema operativo.
OPENVZ.
VIRTUOZZO.
FREEVPS.
Linux-VSERVER.

Das könnte Ihnen auch gefallen