jueves, 30 de septiembre de 2010

Unidad N°1: Diseño y estructuras de Hardware - Punto 1 - Parte 2

  • Sistemas Batch (por lotes) simple:
Es un tipo de sistema operativo que puede procesar una tarea a la vez, lo que lo hace poco eficiente y practico. Cuando una tarea está en ejecución, esta toma el control total de la CPU y de la memoria principal, lo que genera que ninguna otra tarea vaya quedando en cola de espera ni ejecutándose paralelamente. La tarea entregará el control de la CPU hasta que se termine de ejecutar completamente, y ahí recién podrá ser cargado otro programa en memoria para su ejecución. Cuando se está ejecutando una tarea que requiere que se produzca algún evento como el ingreso de un dispositivo de entrada y salida, en ese instante de espera la CPU queda ociosa.

Hay 3 tipos:
-El lineal: Este trabaja con una cola de espera sin prioridades. A medida que va terminando cada tarea, se ejecuta el siguiente programa en la cola de espera.

-Con prioridades: Tiene una cola de espera de tareas, pero se ejecutan de acuerdo a la prioridad que tenga cada una.

-Con prioridades y tiempo de salida: Trabaja con una cola de espera con prioridades pero además existe un intervalo de tiempo programado que determina el tiempo máximo que puede ejecutar una tarea. Si la tarea no se termina dentro del intervalo de tiempo, es de vuelta a la cola de espera y la CPU comienza a ejecutar un nuevo proceso.


  • Sistemas Batch (por lotes) multiprogramado:
Este tipo de SO permite que la CPU nunca quede ociosa, tratando de sacarle un máximo de eficiencia al procesador. Cuando se está ejecutando una tarea que requiere que se produzca algún evento como el ingreso de un dispositivo de entrada y salida, la CPU no queda ociosa como en la monoprogramación, sino que busca una nueva tarea para ejecutarla mientras ocurre el evento del proceso anterior(esto pasa sucesivamente y la CPU no quedara ociosa mientras hayan tareas por ejecutar).
Cuando hay muchos programas en cola de espera, la CPU debe elegir entre todos los procesos cual será ejecutado, por lo este tipo de SO trabaja con un sistema llamado “planificación de CPU” que permite que el procesador elija la tarea que se ejecutará dentro de muchas.


  • Sistemas de tiempo compartido:
En este tipo de sistema operativo, la CPU va alternando entre las diversas tareas, dando la sensación al usuario que está interactuando con varias aplicaciones a la vez ya que el tiempo de uso de CPU en cada proceso es muy corto. También permite que varios usuarios puedan usar los recursos del mismo computador, gracias a la rapidez con que la CPU va alternando entre las diversas tareas. Cabe destacar, que como residen varios programas en la memoria principal, este SO requiere algún tipo de administración de memoria, protección y planificación de la CPU.
El concepto de tiempo compartido, surgió en la década de los 60, pero como en esa época ese tipo de sistema era complejo y difícil de construir, no fueron comunes, por lo menos, hasta comienzos de la década de los 70.

miércoles, 15 de septiembre de 2010

Unidad N°1: Diseño y estructuras de Hardware - Punto 1


Durante la primera generación de computadoras, no existían sistemas operativos, por lo que la interacción entre maquina-usuario era directa a través de tableros de comando directo y sólo podían ser utilizados por personas especializadas.

El hecho de que se hayan creado los sistemas operativos, significó y significa que los computadores dejaran de ser simples hardware y pudieran ser controladas y utilizados de mejor manera por sus usuarios.

Gracias a la aparición de los S.O., la computadora se masificó y el desarrollo del software se hizo más simple, lo que provocó su desarrollo a mayor escala.

Ahora, para entender la primera parte explicaremos que es un sistema operativo.
Es el software base para el resto de aplicaciones (como los cimientos de una edificación). Sin el S.O los software no podrían ser ejecutado. Además brinda una interfaz para hacer el uso de la computadora más fácil para el usuario (lo protege de la complejidad de la máquina. Ej: Los usuarios no necesitan saber en qué parte de la RAM quedan las instrucciones de algún determinado programa).

Es importante decir que administra los recursos del sistema (de la manera mas eficiente que pueda), los dispositivos de entrada y salida, gestión y organización de archivos en unidades de almacenamiento, los procesos e interpreta las instrucciones de las aplicaciones a lenguaje máquina, para que el procesador las pueda ejecutar (si no interpretara las instrucciones, seria como que una persona le hablara en un idioma desconocido a otra, no entendería nada).

Posee un Shell, que es el que interpreta las ordenes del usuario (puede ser en modo gráfico o a través de lineas de comandos) para que la CPU las reconozca, y el Kernel, que es el núcleo del sistema operativo e intermediario entre el software y la máquina. Facilita a los programas un acceso seguro al hardware de la computadora, gestiona los recursos a través de servicios de llamada al sistema y también ofrece una serie de abstracciones del hardware para que los desarrolladores de programas no tengan que acceder directamente al hardware(sin esto, habrían menos programas ya que los programadores necesitarían saber el funcionamiento de cada parte del hardware).
Estructura funcional de un Sistema Operativo