ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Sistemas Operativos


Enviado por   •  28 de Enero de 2015  •  3.943 Palabras (16 Páginas)  •  172 Visitas

Página 1 de 16

Introducción:

El concepto fundamental en cualquier sistema operativo es el concepto de proceso; que consiste en una abstracción de lo que es un programa en ejecución (para entender mejor como se procesan las intrusiones de un programa en el procesador ver simulación en: http://courses.cs.vt.edu/~csonline/MachineArchitecture/Lessons/CPU/index.html). Todo lo demás depende de este concepto y es importante que se comprenda lo que es un proceso para entender el funcionamiento y el diseño de un sistema operativo.

1. El Modelo de los Procesos Secuenciales

Inicialmente los computadores solo eran capaces de ejecutar un programa, posteriormente surge este modelo, donde todo el software ejecutable en el ordenador, incluyendo a al propio sistema operativo, se organiza en un número de procesos secuenciales, o batch, que se ejecutaba uno a continuación del otro, un ejemplo de este tipo de sistemas operativos es el DOS. En la figura podemos observar la diferencia entre el sistema secuencial y la multiprogramación: En la Figura (a) vemos un computador con cuatro programas ejecutándose en orden secuencial. En la Figura (b) vemos los cuatro procesos cada uno con su propio flujo de control, cada uno ejecutándose independientemente de los otros, en multiprogramación. En la Figura (c) vemos que desde la perspectiva de un intervalo de tiempo suficientemente largo, todos los procesos del ejemplo (b) han progresado, pero que en cualquier instante dado solamente un único proceso está realmente ejecutándose.

2. El Modelo de los Procesos Multiprogramados

Todos los computadores modernos pueden hacer varias cosas a la vez; mientras está ejecutando un programa de usuario puede perfectamente también estar escuchando un disco de música e imprimiendo texto una impresora. En un sistema multiprogramado el procesador cambia de un programa a otro, ejecutando cada uno de ellos durante decenas o cientos de milisegundos. Aunque, estrictamente hablando, en cualquier instante de tiempo el procesador sólo está ejecutando un programa, en el transcurso de 1 segundo ha podido estar trabajando sobre varios programas, dando entonces a los usuarios la impresión de un cierto paralelismo. En este contexto se habla de pseudoparalelismo, en contraste con el auténtico paralelismo del hardware de los sistemas multiprocesador (que tienen dos o más procesadores compartiendo la misma memoria física). En un sistema con multiprogramación, el sistema operativo debe repartir los recursos disponibles entre los distintos programas activos en el sistema, de manera que cada programa se ejecute como si tuviera su propio computador. La ejecución concurrente de programas permite un uso más eficiente del procesador, ya que casi siempre tendrá cosas que hacer, proporciona un mejor servicio a múltiples usuarios, puesto que se puede intercalar la ejecución de actividades de distintos usuarios, y posibilita el desarrollo de aplicaciones paralelas con múltiples flujos, que la obtenida usando un programa secuencial, por esta razón también se les conoce con sistemas de tiempo compartido.

Dado que la arquitectura von Neumann (la que analizamos en la primera Unidad) está concebida para la ejecución de un único programa, el sistema operativo debe crear el artificio necesario para multiplexar los recursos hardware entre los distintos programas del sistema. Para ello, debe realizar un reparto transparente y seguro de dichos recursos entre los distintos programas que requieren su uso. El éxito de la multiprogramación reside en gran parte en esta transparencia: el programador no se ve afectado en ninguna fase del desarrollo, por el hecho de que esta aplicación vaya a ejecutarse conjuntamente con otras aplicaciones.

Dependiendo del tipo de recurso, el reparto del mismo entre los procesos activos puede tener distintas características. Algunos recursos como, por ejemplo, el procesador requiere un reparto en el tiempo; el sistema operativo debe ir asignando sucesivamente el procesador a los distintos procesos de forma transparente, de manera que no se vean afectados. Otros recursos como, por ejemplo, la memoria implica un reparto en el espacio; el sistema operativo asignará a cada programa un espacio de memoria suficiente para su ejecución, ver figura:

Mediante este mecanismo de reparto transparente de recursos, el sistema operativo logra crear una abstracción que podría considerarse como un “computador virtual”: se le proporciona a cada programa una máquina von Neumann propia (más lenta, debido a la multiplexación del procesador real, y con menos memoria, debido al reparto de la memoria real), sin que su ejecución se vea interferida por la existencia de otros programas que están ejecutando en otros “procesadores virtuales”. Esta abstracción de un procesador virtual, que proporciona un entorno de ejecución indepedendiente para cada programa, es a lo que se le denomina “proceso”. Esta definición de proceso es más abstracta y genérica, en los que se suele definir el proceso como un programa en ejecución. De hecho, es importante enfatizar sobre la diferencia entre el programa; que es una entidad pasiva que implementa algún tipo de algoritmo, y el proceso, que corresponde con una entidad activa que lleva a cabo una determinada tarea que, evidentemente, está muy condicionada por el programa que está ejecutando el proceso, pero no sólo por ello. En la labor realizada por un programa pueden afectar otros factores tales como cuáles son los argumentos y el entorno que recibe el programa o quién es el usuario que lo ha activado. De hecho, en un sistema con multiprogramación, en un momento dado, pueden existir múltiples copias activas del mismo programa (por ejemplo, el intérprete de comandos procesando diferentes peticiones u órdenes) y, por tanto, múltiples procesos ejecutando el mismo programa, que en cada caso pueden estar llevando a cabo una labor diferente.

Una vez introducida la definición de proceso como la abstracción que crea un procesador virtual que aísla la ejecución de un programa de los otros programas activos en el sistema, en el resto del unidad se estudia cómo se implementa esta abstracción por parte del sistema operativo y dado que la ejecución de los procesos se ve afectada por los eventos que ocurren en el sistema, antes de analizar cómo se implementa el modelo de procesos, se observara en forma general la manera como el sistema operativo lleva a cabo dicha gestión.

3. Gestión interna de eventos

En primer lugar, observemos un breve análisis del modo de operación de un procesador que son relevantes para el tratamiento de los eventos. Como ya hemos visto en la unidad 1, un requisito

...

Descargar como (para miembros actualizados)  txt (25.2 Kb)  
Leer 15 páginas más »
Disponible sólo en Clubensayos.com