Capφtulo 3. Conceptos te≤ricos

Tabla de contenidos
Asignaci≤n del procesador
Utilizaci≤n de la memoria: (Algoritmos de selecci≤n de vφctima)
Planificaci≤n de accesos a memoria secundaria

Los conceptos te≤ricos utilizados para la realizaci≤n propia del sistema son los conceptos bßsicos de programaci≤n que no es necesario comentar, pero los conceptos que se pretenden ilustrar sφ que merecen menci≤n.

El sistema operativo estß hecho para dar vida a los procesos, asφ que comenzarΘ por ellos. Un proceso, no es mßs que una lista de instrucciones que estßn en ejecuci≤n y se aplican a datos en memoria principal y secundaria. Ademßs, en los sistemas informßticos actuales, las propias instrucciones tambiΘn se guardan en memoria secundaria para su almacenamiento y en memoria principal para su ejecuci≤n.

La vida de un proceso comienza con la carga de sus instrucciones en memoria principal desde la memoria secundaria y el inicio de su ejecuci≤n a partir de su primera instrucci≤n. A lo largo de su vida tφpicamente necesitarß datos de memoria secundaria que almacenarß en memoria principal para su procesamiento y posteriormente escribirß los datos resultantes en memoria secundaria y se terminarß.

En los primeros tiempos de los ordenadores de arquitectura Von Newmann era directamente el hardware el que cargaba las instrucciones del proceso en memoria e iniciaba su ejecuci≤n, el procesador se dedicada enteramente a la ejecuci≤n de este ·nico proceso y este disponφa de toda la memoria principal y podφa utilizar la memoria secundaria libremente.

Actualmente el problema es que pretendemos que varios procesos convivan en la misma mßquina, de manera que se aproveche mßs el hardware disponible (ej. un proceso puede hacer cßlculos mientras otro intenta leer de memoria secundaria) y se puedan realizar varias tareas simultßneamente en el tiempo (multitarea) e incluso que varios usuarios puedan compartir la misma mßquina (multiusuario). Sin a±adir elementos nuevos al sistema, la complejidad a la hora de programar crecerφa exponencialmente con el numero de procesos, para poder compartir recursos y el fallo de uno solo de los procesos podrφa afectar gravemente a los demßs. Es necesario, pues, una coordinaci≤n.

La figura del sistema operativo se introduce inicialmente para realizar la tarea de intermediario entre los distintos procesos. Serß cargado en memoria principal y ejecutado por el hardware y serß el sistema operativo el que se ocupe de dar vida a los procesos y de repartir los recursos disponibles entre ellos. Al menos tendrß que realizar las siguientes labores:

Este programa ilustra los distintos algoritmos utilizados para estas tareas. Concretamente los algoritmos actualmente implementados son:

Asignaci≤n del procesador

First Come First Served: (Primero en llegar, primero en ser servido)

El primer proceso en condiciones de ejecutarse serß el asignado al procesador y permanece asignado hasta no poder ejecutarse mßs por tener que esperar a alg·n evento o por haber terminado.

Round Robin

Se establece un tiempo mßximo de ejecuci≤n o cuanto y se ejecuta cada proceso hasta que exceda su cuanto o no quiera ejecutarse mßs, entonces se asigna otro y asφ sucesivamente. Los procesos en espera de ejecuci≤n forman una cola circular.

Shortest Process Next: (El proceso mßs corto el pr≤ximo)

Se ejecuta el proceso mßs breve de los que estΘn preparados, y permanece asignado hasta no poder ejecutarse mßs, momento en el cual se volverß a elegir el proceso mßs corto.

Shortest Remaining Time: (El tiempo restante mßs corto)

Se ejecuta el proceso mßs corto de los que estΘn preparados, pero a diferencia del SPN el esquema es apropiativo, de manera que siempre que surja otro proceso listo para ejecutarse se comprobarß si va a tardar menos en ejecutarse que el actual y si es asφ serß el nuevo proceso el que se asigne y el actual tendrß que esperar.

Highest Response Ratio Next: (El de mayor tasa de respuesta el pr≤ximo)

Para cada proceso, basado en el tiempo que va a ocupar el procesador(s) y el tiempo que lleva esperando para ocuparlo (w), Se calcula w+s/s, una vez echo esto el proceso que tenga un valor mayor serß asignado al procesador. Este algoritmo es bastante bueno, por que ademßs de dar preferencia a los procesos cortos tambiΘn tiene en cuenta el envejecimiento de los procesos para evitar asφ la "inanici≤n".