jueves, 8 de septiembre de 2011

TIPOS DE MEMORIA

ROM - RAM - CACHÉ y Memoria Virtual

Memoria ROM o Convencional (Read Only Memory)
Es una memoria solamente de lectura es totalmente inalterable sin esta memoria la maquina no arrancaría.
La memoria principal es la convencional que va de 0 a 640 kb. Cuando la máquina arranca comienza a trabajar el disco y realiza un testeo, para lo cual necesita memoria, esta memoria es la convencional (ROM) y está dentro del mother (en el BIOS). Apenas arranca utiliza 300 kb, sigue testeando y llega a más o menos 540 kb donde se planta. A medida de que comenzaron a haber soft con más necesidad de memoria apareció la llamada memoria expandida que iba de 640 kb a 1024 kb. Una vez que se utilizaba toda la memoria convencional se utilizaba la expandida que utiliza la memoria RAM. A medida que pasa el tiempo los 1024 kb eran escasos y se creó la memoria extendida que va de 1024 kb a infinito que es la memoria RAM pura.
Memoria RAM o Memoria e acceso Aleatorio ( Random Acces Memory )

Esta memoria es como un escritorio al igual que los escritorios tienen cajones donde ordenan la información, cuanto más grande sea el escritorio (plano de apoyo) mas cajones voy a tener de tal suerte que el micro va a perder menos tiempo en buscar y ordenar la información
La importancia de esta memoria es tan grande que si está ausente la PC NO ARRANCA,
Actúa como si estuviera muerta no hay sonido ni cursor en la pantalla ni luces que se enciendan o apaguen.
Para qué sirve:
Almacena las instrucciones que debe ejecutar el micro en cada momento
Este es el lugar físico donde debe trabajar el procesador cuando abrimos un programa sus instrucciones se copian automáticamente en la memoria, y cuando cerremos el programa todo se borrara ( volatizara )
La RAM es como un pizarrón donde se copian datos
También copia los trabajos que estamos haciendo en ese programa
En la RAM se copian programas que coordinan el funcionamiento de la PC:
La primera parte de la RAM está reservada para guardar las instrucciones de los dispositivos electrónicos. En este lugar no se puede guardar nada ya que lo utiliza el sistema para saber cómo manejar los dispositivos.

Zócalos de Memoria o Bancos de Memoria:
Simm 30 Pines
Simm 72 Pines
Dimm Hasta 168 Pines

Los bancos pueden ser tres o cuatro y tienen una marca el  mother donde se debe colocar la primera memoria. Obviamente si en el primero tenemos una de 64 Mg y otra en el segundo decimos que tenemos 128 mg. La computadora funciona mejor con una sola de 128Mg. Esto es solo para las DIMM, las Simm se instalan de a pares
La memoria es como un peine con chip soldados en su superficie y depende de el numero de dientes y del banco al cual esté conectado, el nombre con la cual se denomina:

Simm: Single in line Memory Module
Dimm: Double Memory Module
Rimm: Rambus in line Memory Module
Trabaja de la siguiente forma: los datos acceden en la RAM de forma aleatoria o se directamente desde la ubicación en que se encuentran sin necesidad de recorrer otras posiciones anteriores por Ej. Si tengo que recordar donde guarde el café que está en la cocina, no tengo necesidad de recordar todo lo que hice durante el día para llegar hasta el café.
La capacidad de almacenamiento se mide en Megabytes, un byte guarda una letra un megabyte puede guardar un millón de letras cuantos más Mb tenga la memoria mejor.
Velocidad: la velocidad de la RAM se mide en Mhz, antes se media en Nanos

DRAM (Dynamyc Random Acces Memory)

Este tipo de memoria se utilizan des los años 80 hasta ahora en todas las computadoras.
Esta memoria tiene una desventaja hay que estimularla permanentemente porque se olvida de todo. Como se estimula: requiere un procesador que ordene el envió de cargas eléctricas, a este tipo de memorias se lo conoce como memoria estáticas. Otras de las desventajas de esta memoria es que es lenta y la ventaja es que es barata.

MEMORIA VIRTUAL

Tenemos también lo que llamamos memoria virtual también llamada swapeo. Windows crea esta memoria virtual y ocupa espacio del disco para hacerlo. Si llega se a superar esta memoria virtual la capacidad del disco se cuelga la máquina, para lo cual lo único que nos resta es resetearla.

Si abrimos muchos programas nos vamos a dar cuenta que cuando llegamos a utilizar memoria virtual la máquina comienza a funcionar más lenta o a la velocidad que tiene nuestro disco disminuye, podemos seguir trabajando, pero nunca andará tan rápido como cuando trabaja con la memoria RAM o extendida. Por lo tanto para evitar esto lo mejor es colocar más memoria RAM de acuerdo a lo que diga el manual de mother.

MEMORIA CACHÉ o SRAM

La memoria caché trabaja igual que la memoria virtual, tenemos caché en el procesador, en los discos y en el mother y nos guarda direcciones de memoria. Si ejecutamos un programa en principio, lo cerramos y luego los volvemos a ejecutar, la memoria caché nos guarda la ubicación (dirección) en el disco, cuando lo ejecuté, y lo que hicimos con el programa. Es mucho más rápida cuando ya usamos un programa.

jueves, 1 de septiembre de 2011

planeacion

¿Cuáles son las técnicas de planeación?
Las técnicas para formular planes, y para presentarlos, explicarlos, discutirlos, etc., suelen ser las más abundantes y diversificadas dentro de todas las etapas de la administración. La razón es obvia: hay casi tantas técnicas, como formas diversas de planes.
La finalidad de las técnicas de la planeación consiste en que el administrador que las utilice, tome las decisiones más adecuadas de acuerdo a la situación más específica del medio y de la organización en donde se actúe. Las técnicas pueden ser usadas en cualquier proyecto.
Algoritmos de planificación:
·                     FCFS, FIFO: Por orden de arribo (first-come, first-served)
·                     SPN, SRT: Primero el trabajo más corto o con menor tiempo restante (shortest process next, shortest remaining time)
·                     RR: Por turno rotatorio usando quantums, i.e. interrupciones periódicas de reloj (Round-robin scheduling)
·                     FB: Realimentación Multinivel, maneja prioridades dinámicas con múltiples colas penalizando a los procesos más viejos (Feedback)
·         Planificacion de CPU FCFS (First Come, First Served) - Presentation Transcript

PIMERO EL PROCESO MÁS CORTO
Otra forma de reducir el sesgo favorable al proceso más largo inherente al FCFS es la política de primero el proceso más corto (SPN, Shortest Process Next). Esta es una política no preferente en la que se selecciona el proceso con menor tiempo esperado de ejecución. Así pues, un proceso corto saltará a la cabeza de la cola, sobrepasando a trabajos largos.
Una dificultad que plantea la política SPN es la necesidad de conocer o, por lo menos, estimar el tiempo exigido por cada proceso.
Pero el algoritmo del primero el proceso más corto (SPN: shortest prosess next) tiene mejor rendimiento que el turno rotatorio, excepto para los procesos más corto.


Y el de menor tiempo restante (SRT: shortest remaining time) da un rendimiento mejor que el anterior que es el SPN, excepto para los procesos que son más largos, este algoritmo es la versión preferente del SPN, es decir que un proceso puede ser interrumpido y pasado al estado de lista por el S0.

La planificación por turno rotatorio (RR: Round Robin) produce un tiempo de retorno normalizado para todos los procesos tratándolos por igual.

Y por último la planificación con realimentación (FB) con un cuanto uniforme y fijo para cada cola funciona bien para los procesos cortos.
La planificación de la CPU aborda el problema de decidir qué proceso de la cola de procesos preparados debe asignársele la CPU.
Existiendo una diversidad de algoritmos de planificación de CPU; uno de los primeros y sencillos es el
Algoritmo de Planificación FCFS.

jueves, 25 de agosto de 2011

"SERIABILIDAD"


SERIABILIDAD

La serialización es el criterio de lo correcto, para el control de la concurrencia. Un conjunto entrelazado de transacciones es correcto si es serializable. Es decir si produce el mismo resultado mediante la ejecución en serie de las mismas transacciones. Dado un conjunto de transacciones entrelazadas, cualquier ejecución de esas transacciones se dice que es una calendarización (“scheduling”)

Formas de planificar la seriabilidad:

 1) por conflicto

2) por visión

Seriabilidad por conflicto

·         Eliminar conflictos entre dos o más transacciones

·         Operaciones sobre los mismos datos en más de una transacción *

·         Tipos de operaciones:

Seriabilidad por visión

·         Se basa en definir una regla de equivalencia menos estricta que la de conflicto.

·         Pero basándose solo en las operaciones de lectura y escritura.

·         Se puede considerar como un refinamiento de la equivalencia por conflicto

Serialización es el criterio de corrección importante de ejecuciones transacciones concurrentes. It is considered the highest level of isolation between transactions , and plays an essential role in concurrency control . Es considerado el más alto nivel de aislamiento entre transacciones , y juega un papel esencial en el control de concurrencia . As such it is supported in all general purpose database systems. Strong strict two-phase locking (SS2PL) is a popular serializability mechanism utilized in most of the database systems (in various variants) since their early days in the 1970s. Como tal, es compatible con todos los sistemas de bases de datos de propósito general. Fuerte estricto bloqueo de dos fases (SS2PL) es un mecanismo de serialización populares utilizadas en la mayoría de los sistemas de base de datos (en diversas variantes) desde sus inicios en la década de 1970.

·         Distributed serializability is the serializability of a schedule of a transactional distributed system (eg, a distributed database system). Serialización distribuida es la serialización de un programa de una transacción de sistemas distribuidos (por ejemplo, una base de datos distribuida del sistema). With the proliferation of the Internet , Cloud computing , Grid computing , and small, portable, powerful computing devices (eg, smartphones ) the need for effective distributed serializability techniques to ensure correctness in, and among distributed applications seems to increase. Commitment ordering [ 4 ] [ 5 ] [ 6 ] [ 7 ] (or Commit ordering ; CO; introduced publicly in 1991) is a general serializability technique that allows to effectively achieve distributed serializability (and Global serializability ) across different (any) concurrency control mechanisms, also in a mixed heterogeneous environment with different mechanisms. Con la proliferación de la Internet , computación en nube , Grid Computing , y pequeños, dispositivos portátiles, computadoras de gran alcance (por ejemplo, los teléfonos inteligentes ) la necesidad de técnicas efectivas de serialización distribuidos para garantizar la exactitud de y entre las aplicaciones distribuidas parece aumentar. Compromiso ordenar [4 ] [5] [6] [7] (o Comité de pedido, CO, presentó públicamente en 1991) es una técnica que permite la serialización en general para lograr efectivamente distribuidos serialización (y serialización global ) a través de diferentes (los hay) los mecanismos de control de concurrencia, también en un entorno mixto heterogéneo con diferentes mecanismos. CO does not interfere with the mechanisms' operations, and also guarantees automatic distributed deadlock resolution. CO no interfiera con las operaciones de los mecanismos ", y también garantías automáticas de resolución distribuido callejón sin salida. Unlike other distributed serializability mechanisms, CO does not require the (costly) distribution of local concurrency control information (eg, local precedence relations, locks, timestamps, or tickets), a fact which provides scalability , and typically saves considerable overhead and delays. A diferencia de otros mecanismos de serialización distribuidos, CO no requiere de la distribución (costosas) de información local de control de concurrencia (por ejemplo, locales de relaciones de precedencia, las cerraduras, las marcas de tiempo, o billetes), lo que proporciona escalabilidad , y por lo general guarda una sobrecarga considerable y los retrasos. Thus, CO (including its variants , eg, SS2PL) is the only known effective general method for distributed serializability (and it is probably the only existing one ). Por lo tanto, CO (incluyendo sus variantes , por ejemplo, SS2PL) es el único método efectivo conocido general de serialización distribuidos (y es probable que sea el único existente ). It also allows the effective distribution of all other known concurrency control mechanisms. También permite la distribución efectiva de todos los demás conocidos los mecanismos de control de concurrencia. The popular SS2PL, which is a special case of CO and inherits many of CO's qualities, is the de-facto standard for distributed serializability (and Global serializability ) across multiple (SS2PL based) database systems since the 1980s. [ 4 ] CO has been utilized extensively since 1997 as a solution for distributed serializability in works on transactional processes , [ 8 ] [ 9 ] and more recently an optimistic version of CO has been proposed as a solution for Grid computing [ 10 ] and Cloud computing . [ 11 ] El SS2PL popular, que es un caso especial de CO y hereda muchas de las cualidades de CO, es el estándar de facto para la serialización distribuidos (y serialización global ) a través de múltiples sistemas de bases de datos (SS2PL base) desde la década de 1980. [4] CO ha sido utilizado ampliamente desde 1997 como una solución para la serialización distribuidos en las obras de los procesos transaccionales , [8] [9] y más recientemente una versión optimista de CO ha sido propuesta como una solución de computación Grid [10] y la computación en nube . [11]

·         Serializability theory provides the formal framework to reason about and analyze serializability and its techniques. La teoría de serialización proporciona el marco formal a la razón y analizar los secuencialidad y sus técnicas. Though it is mathematical in nature, its fundamentals are informally (without Mathematics notation) introduced below. A pesar de que es matemática en la naturaleza, sus fundamentos son de manera informal (sin notación matemática) se presentan a continuación.

·         Comment: Unless explicitly referenced or linked, most of the material about centralized ( vs . distributed) serializability in the following sections is covered in the text books (Bernstein et al. 1987)  and (Weikum and Vossen 2001).  However, the presentation of Commitment ordering in (Weikum and Vossen 2001, pages 102, 700) is partial and misses CO's essence (see Background in The History of Commitment Ordering

·         Secuencialidad es una propiedad de una transacción de horario (la historia). It relates to the isolation property of a database transaction . Se relaciona con el aislamiento de la propiedad de una transacción de base de datos .

·         Serializability of a schedule means equivalence (in the outcome, the database state, data values) to a serial schedule (ie, sequential with no transaction overlap in time) with the same transactions. Serialización de un programa de medios de equivalencia (en el resultado, el estado de la base de datos, los valores de datos) a una planificación secuencial (es decir, secuencial, sin que se solapen en el tiempo de transacción), con las mismas transacciones. It is the major criterion for the correctness of concurrent transactions' schedule, and thus supported in all general purpose database systems. Es el criterio más importante para la corrección del horario de transacciones concurrentes, y por ello apoya en todos los sistemas de bases de datos de propósito general.

·         The rationale behind serializability is the follow El fundamento de la serialización es el siguiente:

·         If each transaction is correct by itself, ie, meets certain integrity conditions, then a schedule that comprises any serial execution of these transactions is correct (its transactions still meet their conditions): "Serial" means that transactions do not overlap in time and cannot interfere with each other, ie, complete isolation between each

 Si cada transacción es correcta por sí mismo, es decir, cumple con ciertas condiciones de integridad, a continuación, un horario que comprende toda la ejecución en serie de estas transacciones es correcto (sus operaciones siguen cumpliendo las condiciones): "Serie" significa que las transacciones no se solapan en el tiempo y no puede interferir unos con otros, es decir, aislamiento, completa entre cada uno existe otro. Any order of the transactions is legitimate, if no dependencies among them exist, which is assumed (see comment below). Cualquier orden de las transacciones es legítimo, si no existen dependencias entre ellas, que se supone (ver comentario abajo). As a result, a schedule that comprises any execution (not necessarily serial) that is equivalent (in its outcome) to any serial execution of these transactions, is correct. Como resultado, un horario que comprende toda la ejecución (no necesariamente de serie) que es equivalente (en sus resultados) a cualquier ejecución en serie de estas operaciones, es la correcta.



En ciencias de la computación , en el contexto de almacenamiento y transmisión de datos, serialización es el proceso de convertir una estructura de datos o de objetos estado en un formato que puede ser almacenado (por ejemplo, en un archivo de búfer o memoria, o transmitir a través de una red de conexión de enlace ) y "resucitado" más adelante en el mismo u otro entorno informático. Cuando la serie de bits resultante se volverá a leer de acuerdo con el formato de serialización, se puede utilizar para crear un clon semánticamente idéntico del objeto original. For many complex objects, such as those that make extensive use of references , this process is not straightforward. Para muchos objetos complejos, como los que hacen un amplio uso de referencias , este proceso no es sencillo. Serialization of object oriented objects does not include any of their associated methods with which they were previously inextricably linked. Serialización de orientación a objetos objetos no incluye ninguno de sus asociados los métodos con los que antes estaban inextricablemente ligados.

This process of serializing an object is also called deflating or marshalling an object.  The opposite operation, extracting a data structure from a series of bytes, is deserialization (which is also called inflating or unmarshalling ). Este proceso de serialización de un objeto también se conoce como deflación o clasificación de un objeto.  La operación inversa, la extracción de una estructura de datos de una serie de bytes, es deserialización (que también se conoce como la inflación o unmarshalling).

Serialización establece lo siguiente:

·         a method of persisting objects which is more convenient than writing their properties to a text file on disk, and re-assembling them by reading this back in. un método de persistencia de objetos que es más conveniente que la escritura de sus propiedades a un archivo de texto en el disco y volver a montar la lectura de este nuevo pulg

·         a method of remote procedure calls , eg, as inSOAPun método de llamadas a procedimientos remotos , por ejemplo, como en JABÓN

·         a method for distributing objects, especially in software componentry such as COM , CORBA , etc. un método para distribuir los objetos, sobre todo en componentry del software tales como COM , CORBA , etc.

·         a method for detecting changes in time-varying data. un método para detectar cambios en los datos variables de tiempo.

martes, 16 de agosto de 2011

sistemas operativos


DEFINICION DE S.O.

  • Un Sistema Operativo (SO) es el software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario.
  • Las funciones básicas del Sistema Operativo son administrar los recursos de la máquina, coordinar el hardware y organizar archivos y directorios en dispositivos de almacenamiento.
  • Los Sistemas Operativos más utilizados son Dos, Windows, Linux y Mac.  Algunos SO ya vienen con un navegador integrado, como Windows que trae el navegador Internet Explorer.

¿ Qué es un Sistema Operativo ?.

Desde su creación, las computadoras digitales han utilizado un sistema de codificación de instrucciones en sistema de numeración binaria, es decir con los 0S. Esto se debe a que los circuitos integrados funcionan con este principio, es decir, hay corriente o no hay corriente.

En el origen de la historia de las computadoras ( hace unos cuarenta años), los sistemas operativos no existían y la introducción de un programa para ser ejecutado se convertía en un increíble esfuerzo que solo podía ser llevado a cabo por muy pocos expertos. Esto hacia que las computadoras fueran muy complicadas de usar y que se requiriera tener altos conocimientos técnicos para operarlas. Era tan complejo su manejo, que en algunos casos el resultado llegaba a ser desastroso.

Además, el tiempo requerido para introducir un programa en aquellas grandes máquinas de lento proceso superaba por mucho el de ejecución y resultaba poco provechosa la utilización de computadoras para resolución de problemas prácticos.

Se buscaron medios más elaborados para manipular la computadora, pero que a su vez simplificaran la labor del operador o el usuario. Es entonces cuando surge la idea de crear un medio para que el usuario pueda operar la computadora con un entorno, lenguaje y operación bien definido para hacer un verdadero uso y explotación de esta. Surgen los sistemas operativos.

Un sistema operativo es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar, codificar y emitir las ordenes al procesador central para que este realice las tareas necesarias y especificas para completar una orden.

El sistema operativo, es el instrumento indispensable para hacer de la computadora un objeto útil. Bajo este nombre se agrupan todos aquellos programas que permiten a los usuarios la utilización de este enredo de cables y circuitos, que de otra manera serian difíciles de controlar. Un sistema operativo se define como un conjunto de procedimientos manuales y automáticos, que permiten a un grupo de usuarios compartir una instalación de computadora eficazmente.

Interfaz de Línea de Comandos.

La forma de interfaz entre el sistema operativo y el usuario en la que este escribe los comandos utilizando un lenguaje de comandos especial. Los sistemas con interfaces de líneas de comandos se consideran más difíciles de aprender y utilizar que los de las interfaces gráficas. Sin embargo, los sistemas basados en comandos son por lo general programables, lo que les otorga una flexibilidad que no tienen los sistemas basados en gráficos carentes de una interfaz de programación.

Interfaz Gráfica del Usuario.

Es el tipo de visualización que permite al usuario elegir comandos, iniciar programas y ver listas de archivos y otras opciones utilizando las representaciones visuales (iconos) y las listas de elementos del menú. Las selecciones pueden activarse bien a través del teclado o con el mouse.

Para los autores de aplicaciones, las interfaces gráficas de usuario ofrecen un entorno que se encarga de la comunicación con el ordenador o computadora. Esto hace que el programador pueda concentrarse en la funcionalidad, ya que no esta sujeto a los detalles de la visualización ni a la entrada a través del mouse o el teclado. También permite a los programadores crear programas que realicen de la misma forma las tareas más frecuentes, como guardar un archivo, porque la interfaz proporciona mecanismos estándar de control como ventanas y cuadros de diálogo. Otra ventaja es que las aplicaciones escritas para una interfaz gráfica de usuario son independientes de los dispositivos: a medida que la interfaz cambia para permitir el uso de nuevos dispositivos de entrada y salida, como un monitor de pantalla grande o un dispositivo óptico de almacenamiento, las aplicaciones pueden utilizarlos sin necesidad de cambios.

Funciones de los Sistemas Operativos.

·         Interpreta los comandos que permiten al usuario comunicarse con el ordenador.

·         Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse.

·         Organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas.

·         Gestiona los errores de hardware y la pérdida de datos.

·         Servir de base para la creación del software logrando que equipos de marcas distintas funcionen de manera análoga, salvando las diferencias existentes entre ambos.

·         Configura el entorno para el uso del software y los periféricos; dependiendo del tipo de máquina que se emplea, debe establecerse en forma lógica la disposición y características del equipo. Como por ejemplo, una microcomputadora tiene físicamente dos unidades de disco, puede simular el uso de otras unidades de disco, que pueden ser virtuales utilizando parte de la memoria principal para tal fin. En caso de estar conectado a una red, el sistema operativo se convierte en la plataforma de trabajo de los usuarios y es este quien controla los elementos o recursos que comparten. De igual forma, provee de protección a la información que almacena.

Clasificación de los Sistemas Operativos.

Con el paso del tiempo, los Sistemas Operativos fueron clasificándose de diferentes maneras, dependiendo del uso o de la aplicación que se les daba. A continuación se mostrarán diversos tipos de Sistemas Operativos que existen en la actualidad, con algunas de sus características:

Sistemas Operativos de multiprogramación (o Sistemas Operativos de multitarea).

Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La conmutación de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo, pero en el que solo se esta procesando la aplicación que se encuentra en primer plano (la que ve el usuario). Para activar otra tarea que se encuentre en segundo plano, el usuario debe traer al primer plano la ventana o pantalla que contenga esa aplicación. En la multitarea cooperativa, la que se utiliza en el sistema operativo Macintosh, las tareas en segundo plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentra en primer plano (por ejemplo, cuando esta aplicación esta esperando información del usuario), y siempre que esta aplicación lo permita. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atención del microprocesador durante una fracción de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho más lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultáneas.

Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización.

Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP.

Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea.

Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:

·         Mejora productividad del sistema y utilización de recursos.

·         Multiplexa recursos entre varios programas.

·         Generalmente soportan múltiples usuarios (multiusuarios).

·         Proporcionan facilidades para mantener el entorno de usuarios individuales.

·         Requieren validación de usuario para seguridad y protección.

·         Proporcionan contabilidad del uso de los recursos por parte de los usuarios.

·         Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real.

·         Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan la ejecución simultánea de múltiples tareas sobre diferentes procesadores.

·         En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.

Sistema Operativo Monotareas.

Los sistemas operativos monotareas son más primitivos y es todo lo contrario al visto anteriormente, 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 esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.

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.

Sistema Operativo Multiusuario.

Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes.

En otras palabras consiste en el fraccionamiento del tiempo (timesharing).

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.

Sistemas Operativos de tiempo real.

Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran número de sucesos o eventos.

Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes:

·         Control de trenes.

·         Telecomunicaciones.

·         Sistemas de fabricación integrada.

·         Producción y distribución de energía eléctrica.

·         Control de edificios.

·         Sistemas multimedia.

Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes características:

·         Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.

·         Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.

·         Objetivo es proporcionar rápidos tiempos de respuesta.

·         Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.

·         Proceso se activa tras ocurrencia de suceso, mediante interrupción.

·         Proceso de mayor prioridad expropia recursos.

·         Por tanto generalmente se utiliza planificación expropiativa basada en prioridades.

·         Gestión de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria.

·         Población de procesos estática en gran medida.

·         Poco movimiento de programas entre almacenamiento secundario y memoria.

·         Gestión de archivos se orienta más a velocidad de acceso que a utilización eficiente del recurso.

Sistemas Operativos de tiempo compartido.

Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá 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 ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.

Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.

Características de los Sistemas Operativos de tiempo compartido:

·         Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseño asistido por computador, procesamiento de texto, etc.

·         Dan la ilusión de que cada usuario tiene una máquina para sí.

·         Mayoría utilizan algoritmo de reparto circular.

·         Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye después de concedido el servicio.

·         Evitan monopolización del sistema asignando tiempos de procesador (time slot).

·         Gestión de memoria proporciona protección a programas residentes.

·         Gestión de archivo debe proporcionar protección y control de acceso debido a que pueden existir múltiples usuarios accesando un mismo archivo.

Sistemas Operativos distribuidos.

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, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado esa es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.

Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.

Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

Características de los Sistemas Operativos distribuidos:

·         Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software .

·         Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.

·         Objetivo clave es la transparencia.

·         Generalmente proporcionan medios para la compartición global de recursos.

·         Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.).

Sistemas Operativos de red.

Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.

El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.

Los Sistemas Operativos de red más ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

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.

Luego de haber investigado y analizado se puede ver que se han desarrollado varios tipos de sistemas operativos con diferentes interfaces y categorías. Pero hemos podido observar que todos los sistemas operativos han sufrido cambios por parte de los programadores, y siguen evolucionando.

Los sistemas operativos empleados normalmente son UNIX, Macintosh OS, MS-DOS, OS/2, Windows 95 y Windows NT. El UNIX y sus clones permiten múltiples tareas y múltiples usuarios. Otros SO multiusuario y multitarea son OS/2, desarrollado inicialmente por Microsoft e IBM, Windows NT y Win95 desarrollados por Microsoft. El SO multitarea de Apple se denomina Macintosh OS. El MS-DOS es un SO popular entre los usuarios de PCs pero solo permite un usuario y una tarea.

Los sistemas operativos han ido evolucionando a medida de las necesidades que se fueron generando, cada sistema operativo tiene un fin determinado que es la de realizar tareas según el objetivo a lograr, dependiendo de lo que necesite el o los usuarios. La mayoría de los sistemas operativos de última generación tienden a, atender un gran número de usuarios, y que los procesos a realizar demoren en un mínimo de tiempo.