martes, 28 de septiembre de 2010

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 cuenta los sistemas operativos por lotes son:
  1. Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote.
  2. Permiten poca o ninguna interacción usuario/programa en ejecución.
  3. Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios.
  4. No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea.
  5. Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas de personal, etc.)
  6. Se encuentra en muchos computadores personales combinados con procesamiento serial.
  7. Planificación del procesador sencilla, típicamente procesados en orden de llegada.
  8. Planificación de memoria sencilla,  generalmente se divide en dos: parte residente del S.O. y programas transitorios.
  9. No requieren gestión crítica de dispositivos en el tiempo.
  10. 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 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 sistemas operativos de tiempo compartido son:
  1. Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseño asistido por computador, procesamiento de texto, etc.
  2. Dan la ilusión de que cada usuario tiene una máquina para  sí.
  3. Mayoría utilizan algoritmo de reparto circular.
  4. Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye después de concedido el servicio.
  5. Evitan monopolización del sistema asignando tiempos de procesador (time slot).
  6. 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 acezando un mismo archivo.

martes, 14 de septiembre de 2010

Unidad1: Diseño y Estructuras de Hardware
 
Sistemas Operativos.
Sin el software, una computadora no es más que una masa metálica sin utilidad. Con el software, una computadora puede almacenar, procesar y recuperar información, encontrar errores de ortografía en manuscritos, tener aventuras e intervenir en muchas otras valiosas actividades para ganar el sustento. El software para computadoras puede clasificarse en general en dos 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 (SO). Un Sistema Operativo es una parte importante de cualquier sistema de computación. Esto es a grandes rasgos un concepto de sistemas operativos, en el contenido que a continuación presentamos existen diversos conceptos, así como también su historia, características y su clasificación. Adicionalmente se presenta en este documento una breve reseña de los Sistemas Operativos más utilizados en la actualidad como lo son MS-DOS, Windows, Linux, Macintosh OS y Unix.

 

Concepto y Definición De Sistema Operativos

Un Sistema Operativo es un
programa que actúa como intermediario entre el usuario y el hardware del computador y su propósito es proporcionar el entorno en el cual el usuario pueda ejecutar programas. Entonces, el objetivo principal de un Sistema Operativo es, lograr que el sistema de computación se use de manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente.

Componentes De Un Sistema Operativo

Un sistema operativo está conformado básicamente por cuatro módulos:

  1. Núcleo o Kernel.
  2. Administrador de memoria.
  3. Sistema de entrada/salida.
  4. Administrador de archivos.

Núcleo.

Es el módulo de más bajo nivel de un sistema operativo, pues descansa directamente sobre el hardware de la computadora. Entre las tareas que desempeña se incluyen el manejo de las interrupciones, la asignación de trabajo al procesador y el proporcionar una vía de comunicación entre los distintos programas. En general, el núcleo se encarga de controlar el resto de los módulos y sincronizar su ejecución. El núcleo contiene un submódulo denominado "planificador", el cual se encarga de asignar tiempo del procesador a los programas, de acuerdo a una cierta política de planificación que varía de un sistema operativo a otro. Normalmente se utiliza una jerarquía de prioridades que determinan cómo se asignará el tiempo del CPU a cada programa. Una política de planificación muy común en los sistemas de multiprogramación y multiproceso son las técnicas de "time slicing" (fracción de tiempo). Se asigna a cada programa un corto intervalo de tiempo del procesador. Si el programa no ha terminado durante este intervalo de tiempo, vuelve a la cola de programas.

Administrador de memoria.

Este módulo se encarga de asignar ciertas porciones de la memoria principal (RAM) a los diferentes programas o partes de los programas que la necesiten, mientras el resto de los datos y los programas se mantienen en los dispositivos de almacenamiento masivo. De este modo, cuando se asigna una parte de la memoria principal se hace de una forma estructurada, siguiendo un determinado orden. La forma más común de administración de la memoria supone crear una memoria virtual; con este sistema, la memoria de la computadora aparece, para cualquier usuario del sistema, mucho mayor de lo que en realidad es.

Sistema de entrada/salida (E/S).

Este componente presenta al usuario la E/S de datos como una cuestión independiente del dispositivo; es decir, para los usuarios, todos los dispositivos tienen las mismas características y son tratados de la misma forma, siendo el sistema operativo el encargado de atender las particularidades de cada uno de ellos (como su velocidad de operación). Una técnica muy común, especialmente en salida, es el uso de "spoolers". Los datos de salida se almacenan de forma temporal en una cola situada en un dispositivo de almacenamiento masivo (el spool), hasta que el dispositivo periférico requerido se encuentre libre; de este modo se evita que un programa quede retenido porque el periférico no esté disponible. El sistema operativo dispone de llamadas para añadir y eliminar archivos del spool.

Administrador de archivos.

Se encarga de mantener la estructura de los datos y los programas del sistema y de los diferentes usuarios (que se mantienen en archivos) y de asegurar el uso eficiente de los medios de almacenamiento masivo. El administrador de archivos también supervisa la creación, actualización y eliminación de los archivos, manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera con el módulo administrador de memoria durante las transferencias de datos desde y hacia la memoria principal. Si se dispone de un sistema de memoria virtual, existen transferencias entre la memoria principal y los medios de almacenamiento masivo para mantener la estructura de la misma.
Los archivos almacenados en los dispositivos de almacenamiento masivo tienen distintos propósitos. Algunos contienen información que puede ser compartida. Otros son de carácter privado, e incluso secreto. Por tanto, cada archivo está dotado de un conjunto de privilegios de acceso, que indican la extensión con la que se puede compartir la información contenida en el archivo. El sistema operativo comprueba que estos privilegios no sean violados.




Características de un sistema operativo.

Las características deseables más importantes de un sistema operativo son:
  1. Permitir la concurrencia de procesos, traslapándose el tiempo de entrada/salida (E/S) con el de cálculo y ocupando la memoria con varios programas.
  2. Posibilitar la ejecución de cualquier proceso en el momento que se solicite siempre y cuando haya suficientes recursos libres para él.
  3. Ser eficiente en cuanto a reducir: el tiempo medio que ocupa cada trabajo, el tiempo que no se usa la CPU, el tiempo de respuesta en sistemas multiacceso y el plazo entre dos asignaciones de CPU a un mismo programa.
  4. Ser eficiente en cuanto a aumentar la utilización de recursos en general, tales como memoria, procesadores, dispositivos de E/S, discos magnéticos, datos, etc.
  5. Ser fiable, es decir, un sistema operativo no debe tener errores y debe prever todas las posibles situaciones.
  6. Ser de tamaño pequeño.
  7. Posibilitar y facilitar en lo posible el "diálogo" entre computadora y usuario de la misma.
  8. Permitir compartir entre varios usuarios los recursos de hardware con que cuenta una computadora.
  9. Permitir a los usuarios compartir datos entre ellos, en caso necesario.
  10. Facilitar la E/S de los diferentes dispositivos conectados a una computadora.

Funciones de un sistema operativo.

Las funciones más importantes que debe cumplir un sistema operativo son las siguientes:
  1. Aceptar los trabajos y conservarlos hasta su finalización.
  2. Detectar errores y actuar de modo apropiado en caso de que se produzcan.
  3. Controlar las operaciones de E/S.
  4. Controlar las interrupciones.
  5. Planificar la ejecución de tareas.
  6. Entregar recursos a las tareas.
  7. Retirar recursos de las tareas.
  8. Proteger la memoria contra el acceso indebido de los programas.
  9. Soportar el multiacceso.
  10. Proporcionar al usuario un sencillo manejo de todo el sistema.
  11. Aprovechar los tiempos muertos del procesador.
  12. Compartir los recursos de la máquina entre varios procesos al mismo tiempo.
  13. Administrar eficientemente el sistema de cómputo como un todo armónico.