Administración del Sistema Operativo - Teoria

Bien sabemos que el sistema operativo se encarga (a muy grandes rasgos), de administrar los recursos de la computadora y de hacer de intermediario entre el hardware y el software.
Nuestras computadoras, poseen un único CPU (unidad de control de procesamiento), que se encarga de realizar las tareas más importantes como las operaciones aritméticas (suma, resta, multiplicación y división) y las lógicas (como al AND, OR y NOT, entre otras).
Los programas que ejecutamos se convierten en procesos para el CPU y estos quieren ser atendidos por este. El problema surge cuando muchos quieren ser atendidos a la vez. El CPU es uno solo y tiene que atender a varios procesos.
Para el usuario, los programas son siempre programas. Para el CPU, los programas son procesos una vez que hacemos doble clic sobre ellos.
Los procesos creen que están siendo atendidos siempre, pero resulta que no es así. Para trabajar con los procesos, el CPU emplea técnicas de administración de procesos. Nosotros veremos solo tres de ellas: FIFS, SJF y por Prioridad.

FIFS: el CPU atiende a los procesos por orden de llegada. No importa si atiende a uno muy largo o uno muy corto, atiende a medida que van llegando.

SJF: el CPU brindará servicio a los procesos con menor tiempo o tamaño, no importa el orden de llegada, se atiende de menor a mayor.

Por Prioridad: a cada proceso se le asigna una prioridad, que puede ir de menos a mayor como de mayor a menor, dependiendo de lo que se planifique. El CPU tenderá a los procesos por orden de prioridad. No importa cuanto tiempo tenga ese proceso, ni el orden de llegada, solo atenderá por prioridad.

En las últimos dos estrategias, podría darse el caso de tener procesos con igual tiempo o con igual prioridad. Ante estos casos, se recurre a la técnica FIFS (primero en llegar es el primero es ser atendido).

Por último, ¿cómo sabemos cuál es la mejor de las estrategias dadas? Bueno, el punto de comparación es el tiempo promedio de espera. El menor tiempo promedio de espera tenga es el mejor.
Para calcularlo, primero tomamos los tiempos de espera de cada uno de los procesos atendidos. Luego se suma estos tiempos de espera y se los divide por la cantidad de procesos (Es calcular el promedio).

Cabe aclarar que, el mejor de todos, por pruebas estadísticas realizadas, es el SJF (atender por tamaño o tiempo de CPU), pero como es muy difícil de implementar (a nivel de código), se emplea el FIFS. Entonces, en la realidad, se usa el FIFS con combinaciones de otros.

Nota: en la entrada siguiente realizo un ejemplo completo de cómo graficar los procesos dependiendo de las estrategias y cómo comparar (calculando los tiempos).   

Comentarios

Entradas populares de este blog

Herramientas ofimáticas: Microsoft Powet Point

Resumen: Comunicacion. Signo

Resumen: Comunicacion. Semiología