martes, 16 de julio de 2013

Sistema Operativo Monotareas: los sistemas operativos monotareas son más primitivos y es todo lo contrario a los de multitareas es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.

miércoles, 10 de julio de 2013

sistemas operativos paralelos



En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.

En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso.
Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.

sistemas operativos de red

 Los sistemas operativos de red, además de incorporar herramientas propias de un sistema operativo como son por ejemplo las herramientas para manejo de ficheros y directorios, incluyen otras para el uso, gestión y mantenimiento de la red, así como herramientas destinadas a correo electrónico, envío de emnsajes, copia de ficheros entre nodos, ejecución de aplicaciones contenidas en otras máquinas, compartición de recursos hardware etc. Existen muchos sistemas operativos capaces de gestionar una red dependiente de las arquitecturas de las máquinas que se utilicen. Los más comunes son : Novell, Lantastic, Windows 3.11 para trabajo en grupo, Unix, Linux, Windows 95, Windows NT, OS/2... Cada sistema operativo ofrece una forma diferente de manejar la red y utiliza diferentes protocolos para la comunicación.


Sin el software una computadora es en esencia una masa metálica sin utilidad. Con el software, una computadora puede almacenar, procesar y recuperar información, encontrar errores de ortografía e intervenir en muchas otras valiosas actividades para ganar el sustento. El software para computadoras puede clasificarse en general, en 2 clases: los programas de sistema, que controlan la operación de la computadora en sí y los programas de aplicación, los cuales resuelven problemas para sus usuarios. El programa fundamental de todos los programas de sistema, es el Sistema Operativo, que controla todos los recursos de la computadora y proporciona la base sobre la cual pueden escribirse los programas de aplicación.

Sistemas Operativos de Tiempo Compartido

 Permiten la simulacion de que el sistema y sus recursos son todos para cada usuario. El usuario hace una peticion a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecera en la terminal del usuario. 

    Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusion de que tiene el sistema dedicado para su mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administracion de memoria principal y secundaria. 
    Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
Caracteristicas de los Sistemas Operativos de tiempo compartido:
  1.     Populares representantes de sistemas multiprogramados multiusuario, Ej.: sistemas de diseno asistido por computador, procesamiento de texto, etc.
  2.     Dan la ilusion de que cada usuario tiene una maquina para  si.
  3.     Mayoria utilizan algoritmo de reparto circular.
  4.     Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye despues de concedido el servicio.
  5.     Evitan monopolizacion del sistema asignando tiempos de procesador (time slot).
  6.     Gestion de memoria proporciona proteccion a programas residentes.
  7.     Gestion de archivo  debe proporcionar proteccion y control de acceso debido a que  pueden existir multiples usuarios accesando un mismo archivo.

martes, 9 de julio de 2013

Sistemas Operativos Distribuidos

Los sistemas operativos distribuidos desempeñan las mismas funciones que un sistema operativo normal, pero con la diferencia de trabajar en un entorno distribuido. Su Misión principal consiste en facilitar el acceso y la gestión de los recursos distribuidos en la red.
En un sistema operativo distribuido los usuarios pueden acceder a recursos remotos de la misma manera en que lo hacen para los recursos locales. Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, lo cual es transparente para el usuario.
Los sistemas distribuidos deben de ser muy confiables y estables ya que si un componente del sistema se descompone otro componente debe de ser capaz de reemplazarlo inmediatamente y no afectar los procesos del sistema.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

Sistemas Operativos en Tiempo Real

Se caracterizan por presentar requisitos especiales en cinco áreas generales:
  • Determinismo
  • Sensibilidad
  • Control del usuario
  • Fiabiidad
  • Tolerancia a los fallos Un sistema operativo es determinista si realiza las operaciones en instantes fijos y predeterminados o en intervalos de tiempos predeterminados. Cuando compiten varios procesos por los recursos y por el tiempo del procesador, depende, en primer lugar, de la velocidad con la que pueda responder a las interrupciones y en segundo lugar, de si el sistema posee suficiente capacidad para gestionar todas las peticiones en el tiempo requerido.
Un sistema operativo para operar de forma determinista es el retardo máximo que se produce de la llegada de la interrupción de un dispositivo de alta prioridad hasta que comienza el servicio.
La sensibilidad. El determinismo hace referencia a cuanto tiempo consume un sistema operativo en reconocer una interrupción. La sensibilidad se refiere a cuanto tiempo consume un sistema operativo en dar servicio a la interrupción después de reconocerla.
Las características de la sensibilidad son, entre otras:
1- La cantidad de tiempo necesario para iniciar la gestión de la interrupción y comenzar la ejecución de su rutina de tratamiento (ISR, interrupt service routine).
2- La cantidad de tiempo necesario para ejecutar la ISR. Generalmente, depende de la plataforma del hardware.
3- El efecto del tratamiento de interrupciones. El servicio se retrasara si una ISR puede ser interrumpida por la llegada de otra interrupción.
El determinismo y la sensibilidad forman conjuntamente el tiempo de respuesta a sucesos externos. Los requisitos en tiempo de respuesta son críticos ya que cada sistema debe cumplir los requisitos de tiempo impuesto por los individuos, dispositivos y flujos de datos externos al sistema.
El control del usuario es generalmente mucho mayor en un sistema operativo en tiempo real que en un sistema operativo ordinario. En sistema operativo típico que no sea en tiempo real, el usuario no tiene control sobre la función de planificación del sistema operativo. En un sistema en tiempo real resulta esencial permitir al usuario un control preciso sobre la prioridad de las tareas. El usuario debe poder distinguir entre tareas rígidas y flexibles y especificar prioridades relativas dentro de cada clase. Un sistema en tiempo real también permitirá al usuario especificar características. Que procesos deben estar siempre residente en la memoria principal.
La fiabilidad es normalmente mucho mas importante en sistemas en tiempo real que en los que no lo son. Un fallo transitorio en un sistema que no sea en tiempo real puede resolverse simplemente volviendo a reiniciar el sistema. Un fallo de un procesador en un multiprocesador que no sea en tiempo real produce una reducción del nivel de servicio hasta que se repara o sustituye el procesador averiado. Pero un sistema en tiempo real responde y controla sucesos en tiempo real. Las perdidas o degradaciones del rendimiento pueden tener consecuencias catastróficas, que pueden ir desde perdida financieras hasta daños en equipo e incluso perdida de vidas humanas.
La tolerancia a los fallos es una característica que hace referencia a la capacidad de un sistema de conservar la máxima capacidad y los máximos datos posibles en caso de fallos por Ej., un sistema UNIX clásico típico, cuando detecta datos corruptos en el núcleo, genera un mensaje de error en la consola del sistema, vuelca el contenido de la memoria en el disco para un análisis posterior y finaliza la ejecución del sistema. Un sistema en tiempo real intentara corregir el problema o minimizar sus efectos mientras continua la ejecución.
Un aspecto importante a la tolerancia a los fallos es la estabilidad. Un sistema en tiempo real si, en los casos en los que es imposible cumplir todos los plazos de ejecución de las tareas, el sistema cumple los plazos de las tareas mas criticas y de mayor prioridad, incluso si no se cumple los de alguna tarea menos critica.
Para cumplir los requisitos anteriores los sistemas operativos actuales en tiempo real incluyen normalmente las siguientes características:
  • Cambios rápidos de procesos o hilos.
  • Pequeño tamaño (con una mínima funcionalidad asociada).
  • Capacidad de responder rápidamente a interrupciones externas.
  • Multitarea con herramientas de comunicación entre procesos, como semáforos, señales y sucesos.
  • Uso de archivos secuénciales especiales que puedan acumular datos a alta velocidad.
  • Planificación preferente basadas en prioridades.
  • Reducción de intervalos en los que están inhabilitadas las interrupciones.
  • Primitivas para demorar tareas durante un tiempo fijo y para detenerlas y reanudarlas.
  • Alarmas especiales y temporizadores.
El corazón de un sistema en tiempo real es el planificador de tares a corto plazo. Lo que resulta importante es que todas las tareas rígidas de tiempo real acaben (o comiencen) en su plazo y que también acaben (o comiencen) en su plazo tantas tareas flexibles de tiempo real como sea posible.
La mayoría de los sistemas operativos actuales en tiempo real son incapaces de trabajar directamente con plazos. En su lugar, se han diseñado para ser tan sensibles como sea posible a las tareas de tiempo real, de forma que, cuando se aproxima un plazo se pueda planificar rápidamente la traerá. Las aplicaciones de tiempo real normalmente necesitan tiempos de respuesta deterministas en un rango de varios milisegundo, las aplicaciones al límite, como los simuladores de aviones militares, por Ej. presentan a menudo restricciones en un rango de diez a cien microsegundos.


Sistemas Operativos por lotes.

Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecución de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.
Algunas otras características con que cuentan los Sistemas Operativos por lotes son:
  • Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote.
  • Permiten poca o ninguna interacción usuario/programa en ejecución.
  • Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios.
  • No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea.
  • Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas de personal, etc.).
  • Se encuentra en muchos computadores personales combinados con procesamiento serial.
  • Planificación del procesador sencilla, típicamente procesados en orden de llegada.
  • Planificación de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios.
  • No requieren gestión crítica de dispositivos en el tiempo.
  • Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún control de concurrencia para el acceso.

Sistema Operativo Multiusuario.

Un Sistema Operativo multiusuario permite a mas de un solo usuario accesar una computadora. Claro que, para llevarse esto a cabo, el Sistema Operativo también debe ser capaz de efectuar multitareas.
Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que Unix fue originalmente diseñado para correr en una minicomputadora, era multiusuario y multitarea desde su concepción.
Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de Unix para la Machintosh llamada: A/UX.Unix Unix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al mismo tiempo:
  • Mediante Módems.
  • Mediante conexión de terminales a través de puertos seriales
  • Mediante Redes.

Sistema Operativo Monousuario.

Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando.
Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados principalmente por los microcomputadores.
El MS-DOS es un sistema operativo monousuario y monotarea, tiene estas limitaciones pero, ala vez, es muy robusto y permite realizar tareas que otros no lo harían.
Aunque el MS-DOS necesite ejecutar un programa padre para correr otro programa hijo, sólo está ejecutando uno en cada momento (hijo), y si el programa padre deja de funcionar, el programa hijo se bloquea automáticamente.
El MS-DOS original es capaz de gestionar 1MB y de trabajar directamente sólo con 640 KB, este es un gran problema para programas que precisen de más memoria.
La solución adoptada consiste en reordenar la memoria en diferentes partes, y un gestionador de memoria adecuado para ello.
En Windows 95 y 98 se basan en MS-DOS ³sufriendo´ esta limitación de memoria a partir de Windows Millenium (Windows NT, Windows 2000 y Windows XP) se abandona, definitivamente el MS-DOS ampliando la memoria a usar.

sistema operativo multitareas

 Se llama multitarea al sistema operativo donde varios procesos pueden ser ejecutados al mismo tiempo compartiendo uno o más procesadores. En caso contrario, se habla de un sistema operativo monotarea.
Tipos de multitarea:
  • Nula: El sistema operativo es monotarea. El ejemplo típico es MS-DOS. Aún asi puede lograrse a veces algo parecido a una multitarea implementandola en espacio de usuario, o usando trucos como los TSR de MS-DOS.
  • Cooperativa: Los procesos de usuario son quienes ceden la CPU al sistema operativo a intervalos regulares. Muy problemática, puesto que si el proceso de usuario se cuelga y no cede la CPU al sistema operativo, todo el sistema quedará entonces colgado. Da lugar también a latencias muy irregulares, y la imposibilidad de tener en cuenta este esquema en sistemas operativos de tiempo real. Un ejemplo seria Windows, hasta la version 3.11.
  • Preemptiva: El sistema operativo es el encargado de administrar el/los procesador/es, repartiendo el tiempo de uso de este entre los procesos que estén esperando para utilizarlo. Cada proceso utiliza el procesador durante cortos periodos de tiempo, pero el resultado final es prácticamente igual que si estuviesen ejecutandose al mismo tiempo. Ejemplos de sistemas de este tipo serian Unix y clones (FreeBSD, Linux, etc.), VMS y derivados, AmigaOS, etc.
  • Real: Solo se da en sistemas multiprocesador. Es aquella en la que varios procesos se ejecutan realmente al mismo tiempo, en distintos microprocesadores. Suele ser también preemptiva. Ejemplos de sistemas operativos con esa capacidad: Linux y OS X.