Para empezar este Blog tenemos que entender algunos conceptos básicos, tales como:
- En un sistema de un solo procesador, solo puede correr un proceso a la vez, todos los demás que quieran correr al mismo tiempo tendran que esperar hasta que el CPU este libre y se pueda reorganizar.
- El concepto conocido como "multiprogramming" se refiere al objetivo de tener muchos procesos corriendo al mismo tiempo en un uniprocesador, así que la idea es relativamente simple, ya que podemos pensar en los procesos como personas que esperan a que un camarero les asigne una mesa en un restaurante, de la misma manera los procesos esperan hasta que una otra tarea termine de ser realizada por el CPU.
Así que ahora multiprogramming suena como una buena idea, no? Ya que esto nos puede ahorrar mucho tiempo, siendo una manera mas productiva de realizar las cosas, pero para realizar todo esto necesitamos un scheduler, par que administre las tareas que van a ser realizadas, debemos notar que esto no tiene que ser necesariamente una estructura de FIFO (First In First Out), de manera concpetual podemos pensarlo como una linea de partida de una carrera, todos estan listos para correr y tomar la bandera, pero también existe prioridades en este proceso.
Lo que vemos aqui es un diagrama de lo que es un scheduler, y el como funciona en nuestras computadoras, y el como viaja un proceso a través de su ciclo de vida. Y como la vida misma uno no escoge vivir o morir, asi que las opciones new y terminated son clasificadas como nonpreemptive puesto que no se pueden tomar decisiones en esa parte del proceso, pero todo lo demas es conocido como preemptive puesot que tienen una libertad total de lo que se realizará, lo malo es que la parte preventiva cuesta tiempo y recursos al tener que ingresar a la memoria y compartir datos, y aqui es en donde se pueden generar deadlocks que hagan que todo el sistema deje de funcionar.
Comentarios
Publicar un comentario