Sunteți pe pagina 1din 8

Servicios del Sistema Operativo

Como ya se indicó, una de las dos funciones principales de un sistema operativo es


servir de máquina ampliada o virtual, brindando facilidades a los programas de los
usuarios y a estos. Para lograr este objetivo, los sistemas operativos se encargan
de programar el trabajo con los diferentes dispositivos existentes en el sistema de
cómputo, separando a los usuarios y programas de esta tarea compleja y tediosa.
Los servicios a usuarios se brindan, básicamente, por medio de los llamados
Programas del Sistema, mientras que a los programas se les brindan a través de
las Llamadas al Sistema.
Los programas del sistema constituyen una colección más o menos grande de
programas (no funciones o subrutinas) suministradas por el fabricante (u
otra empresa) que permite realizar operaciones que son comunes a diferentes
usuarios, brindando un ambiente más adecuado para el desarrollo y explotación de
aplicaciones.
Los programas del sistema pueden ser divididos en varias categorías, aunque esto
también depende de cada sistema operativo. Algunos posibles gruposserian :
Manipulación de ficheros (crear, eliminar, renombrar, imprimir, etc.), obtención de
información de estado (fecha, hora, memoria disponible, espacio en disco, etc.),
editores de texto, etc.
En resumen, los programas del sistema son aquellos que ejecutan
las acciones descritas en los comandos de éste o que aparecen en los menús en el
caso de las interfaces gráficas.
Las llamadas al sistema constituyen la interface entre el sistema de operación y los
procesos. Estas generalmente se hacen por medio de instrucciones en lenguaje
ensamblador, aunque en algunos casos existen facilidades que permiten se realicen
desde lenguajes de alto nivel.
En el segundo caso antes indicado, se dan las variantes de que existan funciones
o procedimientos predefinidos en biblioteca que realicen las llamadas al sistema
como tal (UNIX, Windows) o el compilador genera directamente las instrucciones
necesarias para esto.
Los mecanismos que ponen en ejecución las llamadas al sistema operativo difieren
de uno a otro:
 ? En el OS/360 existe una instrucción especial (SVC) que provoca una trampa
hacia el sistema. El número de la llamada se da en la instrucción.
 ? En el CP/M no existe una instrucción especial y por ello el número de la llamada
se pone en el registro C y se salta a la dirección 5 de la memoria.
 ? En MS-DOS se utiliza la instrucción INT seguida de un número de interrupción
(21H).
En todos los casos antes indicados, se requiere de la transferencia de parámetros
desde o hacía el procedimiento que instrumenta la llamada. Este pase de
parámetros se ejecuta a través de los registros del procesador o por medio de un
bloque o tabla de memoria (pasándose la dirección en un registro).
El número de llamadas, la forma y tipo de cada una y los posibles agrupamientos
de estas dependen de cada sistema de operación en específico, aunque en forma
general se pudieran catalogar en 4 grupos:
 ? Control de procesos.
Incluyen operaciones con los procesos tales como: Crear, eliminar, finalizar, abortar,
ejecutar, enviar señal, esperar por señal, etc.
 ? Manipulación de ficheros.
Incluyen operaciones con los ficheros tales como: Crear, eliminar, abrir, cerrar,
renombrar, leer, escribir, etc.
 ? Manipulación de dispositivos.
Incluyen operaciones con los dispositivos tales como: Solicitar, liberar, leer, escribir,
etc.
 ? Intercambio de información.
Incluyen operaciones tales como: Conocer la fecha, conocer la hora, conocer
atributos de ficheros, fijar atributos de ficheros, fijar la fecha, etc.
Además de los grupos antes indicados podría haber otros u otras operaciones
dentro de estos. Otros conjuntos podrían ser:
 ? Manipulación de directorios y sistemas de ficheros.
 ? Protección.
 ? Señalización.
La mejor manera de entender la esencia de las llamadas al sistema consiste en
hacer una revisión detallada de las que están presentes en uno o variossistemas
operativos y por ello se recomienda revisar las páginas de la 23 a la 36 del
segundo libro de Tanenbaum, donde se presenta la explicación de las más
importantes presentes en la versión 7 del UNIX.

Elementos principales de un Sistema Operativo


El sistema operativo está compuesto por un conjunto de paquetes de softwareque pueden
utilizarse para gestionar las interacciones con el hardware. Estoselementos se incluyen por lo
general en este conjunto de software:

El núcleo
, que representa las funciones básicas del sistema operativo, como por ejemplo, la gestión de la
memoria, de los procesos, de los archivos, de las entradas/salidas principales y de las funciones
de comunicación.

El
Intérprete de comandos
Que posibilita la comunicación con el sistema operativo a través de un lenguaje de control,
permitiendo al usuario controlar los periféricos sin conocer las características del hardware
utilizado, la gestión de las direcciones físicas, etcétera.

El sistema de archivos
, que permite que los archivos se registren en una estructura arbórea.

Sistemas Operativos Por Sus Estructura

1. Estructura Monolítica : La construcción del programa final es a base de


módulos compilados separadamente y que se unen a graves de un ligador.
Carecen de protecciones y privilegios al manejar recursos como memoria y
disco duro.

2. Estructura Jerárquica : El sistema operativo contiene subpartes y esto


organizado en forma de niveles ó capaz.

3. Maquina Virtual : Presenta una interfase a cada proceso, mostrando una


maquina que parece idéntica a la maquina real subyacente. Se reparan los
conceptos que suele estar unidos en el resto del sistema: La
multiprogramación y la maquina extendida.

4. Cliente-Servidor (MicroKernel): Es el más reciente y predominante, sirve para


toda clase de aplicaciones y el propósito de este es de tipo general
cumpliendo así con las mismas actividades de los otros sistemas operativos.

Su núcleo (core) esta designado a establecer comunicación entre los clientes


y servidores. Los procesos pueden ser tanto servidores como cliente a su vez
el cliente actual como servidor para otro proceso.

Sistemas Operativos Por Servicios


1. Monousuarios : Soportan un usuario a la vez sin importar los procesadores
que tengan la computadora o los procesos y tareas que el usuario puede
realizar al mismo tiempo. Ejemplo: las PC

2. Multiusuario : Ofrece servicio a mas de un usuario a la vez ya sea por medio


de terminales o secciones remotas en un red. No importa la cantidad de
procesadores que tenga la maquina ni la cantidad de procesos que se
realicen a la misma vez.

3. Monotareas : Permite una tarea a la vez por usuario. Aunque hallar más de
un usuario a la misma vez solo permitirá una tarea por usuario.

4. Multitareas : Permite al usuario realizar varias tareas a la misma vez.

5. Uniproseso : Maneja solamente un procesador de la computadora. Si tuviera


más de uno seria inútil. Ejemplo: Dos y MacOS

6. Multiproceso : Puede manejar más de un procesador distribuyendo la carga


asimétrica y simétrica.

Sistemas Operativos Por La Forma Que Ofrecen Sus Servicios

1. Sistema Operativo De Red : Interactúan con otras computadoras a través de


un medio transmisión que intercambia información, transfiere archivo,
ejecutar comandos remotos y otras tareas.

2. Sistemas Operativos Distribuidos : Incluyen los servicios que ofrece los


sistemas operativos de red incluyen ó añade recursos (impresoras, unidades
de respaldo, memoria, procesos y unidad central de proceso) adicionales en
una sola maquina virtual que el usuario accesa de forma transparente.
Cómo funciona la virtualización.

Lógicamente, lo primero que tendremos que hacer será instalar el software de


virtualización apropiado sobre nuestro sistema operativo anfitrión.

A continuación, ejecutaremos el software de virtualización para definir una máquina


virtual.

Finalmente, iniciaremos la máquina virtual o procederemos sobre ella como si se


tratara de un ordenador real. Como alternativa a este paso, algunas aplicaciones de
virtualización disponen de herramientas para virtualizar un ordenador existente
(normalmente basado en arquitectura x86) y obtener una máquina virtual
completamente operativa. Esta virtualización incluirá al procesador, la memoria
RAM, el disco duro y los controladores de red del ordenador original. Cuando
termine el proceso, dispondremos de una máquina virtual que es totalmente
equivalente al ordenador físico del que partíamos. Una herramienta capaz de llevar
a cabo esta tarea es VMware vSphere.

El software de virtualización asignará los recursos físicos a las máquinas virtuales


de forma dinámica y transparente, de manera que obtengan sólo los recursos que
necesitan. Esto deriva en un uso más racionalizado de los recursos. Así, por
ejemplo, podríamos tener una máquina virtual en la que hemos definido una
memoria RAM de 4GB. Si en un momento dado sólo está utilizando 1GB, los 3GB
restantes estarán disponibles para el sistema anfitrión y para el resto de los sistemas
invitados. Si en lugar de haber definido una máquina virtual, hubiésemos realizado
la misma instalación sobre un ordenador real, la memoria que no se utilizara
quedaría simplemente desperdiciada.

Si pensamos que la lógica de este último ejemplo se aplica a todos los recursos que
emplea la máquina virtual, podremos entender fácilmente cómo consigue la
virtualización optimizar el uso del hardware disponible.

Dado que una máquina virtual está encapsulando un ordenador completo, su


compatibilidad con todos los sistemas operativos, controladores de dispositivo y
aplicaciones para arquitecturas x86 será total, lo que nos permitirá probar diferentes
sistemas y configuraciones sin perjudicar la configuración del anfitrión y sin
necesitar ordenadores complementarios.

¿Qué ventajas tienen las maquinas virtuales (VM)?

En general, las máquinas virtuales (VM) cuentan con varias características


clave que benefician al usuario, en relación al sistema tradicional.

 Compatibilidad:
o Al igual que un ordenador físico, una máquina virtual aloja su propio
sistema operativo y aplicaciones guest, y dispone de los mismos
componentes (placa base, tarjeta VGA, controlador de tarjeta de red, etc.).
El resultado de ello es que las máquinas virtuales son totalmente
compatibles con la totalidad de sistemas operativos x86, aplicaciones y
controladores de dispositivos estándar, de modo de se puede utilizar una
máquina virtual para ejecutar el mismo software que se puede ejecutar en
un ordenador x86 físico.
 Aislamiento:
o Aunque las máquinas virtuales pueden compartir los recursos físicos de
un único ordenador, permanecen completamente aisladas unas de otras,
como si se tratara de máquinas independientes. Si, por ejemplo, hay
cuatro máquinas virtuales en un único servidor físico y falla una de ellas,
las otras tres siguen estando disponibles. El aislamiento es un factor
importante que explica por qué la disponibilidad y protección de las
aplicaciones que se ejecutan en un entorno virtual es muy superior a las
aplicaciones que se ejecutan en un sistema tradicional no virtualizado.
 Encapsulamiento:
o Una máquina virtual es básicamente un contenedor de software que ata
o “encapsula” un conjunto completo de recursos de hardware virtuales,
así como un sistema operativo y todas sus aplicaciones, dentro de un
paquete de software. El encapsulamiento hace a las máquinas virtuales
extraordinariamente portables y fáciles de gestionar. Por ejemplo, puede
mover y copiar una máquina virtual de un lugar a otro como lo haría con
cualquier otro archivo de software, o guardar una máquina virtual en
cualquier medio de almacenamiento de datos estándar, desde una
memoria USB de tamaño de bolsillo hasta las redes de área de
almacenamiento (SAN) de una empresa.
 Independencia del hardware:
o Las máquinas virtuales son completamente independientes de su
hardware físico subyacente. Por ejemplo, se puede configurar una
máquina virtual con componentes virtuales (CPU, tarjeta de red,
controlador SCSI, pongamos por caso) que difieren totalmente de los
componentes físicos presentes en el hardware subyacente. Las máquinas
virtuales del mismo servidor físico pueden incluso ejecutar distintos tipos
de sistema operativo (Windows, Linux, etc.).
o Si se combina con las propiedades de encapsulamiento y compatibilidad,
la independencia del hardware proporciona la libertad para mover una
máquina virtual de un tipo de ordenador x86 a otro sin necesidad de
efectuar ningún cambio en los controladores de dispositivo, en el sistema
operativo o en las aplicaciones. La independencia del hardware también
significa que se puede ejecutar una mezcla heterogénea de sistemas
operativos y aplicaciones en un único ordenador físico.

Desventajas de la virtualización

 Rendimiento inferior. Un sistema operativo virtualizado nunca alcanzará las mismas


cotas de rendimiento que si estuviera directamente instalado en el hierro. Dado que
el hipervisor introduce una capa intermedia en la gestión del hardware para
gestionar las peticiones de acceso y la concurrencia al mismo, el rendimiento de la
máquina virtual se ve afectado irremediablemente.

No es posible utilizar hardware que no esté gestionado o soportado por el hipervisor.

 Windows 98 que corría sobre Pentium II con una tarjeta de audio de gama alta.
Inmediatamente tuvimos que descartar la idea porque no se puede utilizar
arbitrariamente hardware instalado físicamente en la máquina anfitrión desde el
entorno virtual.
Además, el software de virtualización nos impondrá una serie de dispositivos
virtuales como tarjetas de vídeo y red de las que no podremos salir.

 Hardware virtual obsoleto. USB 1.0, Firewire 400, Ethernet 100 son algunos de los
dispositivos a los que nos veremos sometidos. Aunque las nuevas versiones de los
hipervisor se van renovando, todavía tenemos que trasladarnos al pasado para usar
estas características.

 No dispondremos de aceleración de vídeo por hardware, por lo que aplicaciones


con efectos 3D como compiz-fussion y juegos que utilizan las librerías OpenGL o
DirectX no funcionarán en la máquina virtual.
Como excepción, Parallels y VMWare Fussion ofrecen soporte para versiones
concretas de OpenGL y DirectX sobre Mac OS X, pero conviene probar el
rendimiento gráfico antes de decidirse por alguna.

 Desaprovechamiento de recursos. Crear máquinas virtuales innecesarias tiene un


coste en ocupación de recursos, principalmente en espacio en disco, RAM y
capacidad de proceso.

 La avería del servidor anfitrión de virtualización afecta a todas las máquinas virtuales
alojadas en él. Ahora más que nunca deberemos adoptar soluciones de alta
disponibilidad como clustering y replicación para evitar caídas de servicio de
múltiples servidores con una única avería.

 Disminuye el número de ventas de hardware. Aunque el hardware adquirido para


alojar máquinas virtuales es más potente, el número de máquinas vendidas será
inferior ¿nos pondrán los fabricantes de harware un Canon por la Virtualización?
 El sistema operativo anfitrión se vuelve de rol crítico. Hasta ahora estábamos
acostumbrados a utilizar un sistema para todas nuestras necesidades. Pero, cuando
varios servidores o entornos de producción virtualizados dependen de la estabilidad
de su anfitrión, nos pensaremos mucho antes de aplicar actualizaciones y parches.
Será necesario reforzar la seguridad y estabilidad, así que ¿quién habló de reiniciar?

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