2. 2.1 CONCEPTO DE PROCESO
Un proceso no es mas que un programa en ejecución, e incluye los valores actuales del contador de
programa, los registros y las variables. Conceptualmente cada unos de estos procesos tiene su propia
CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro.
Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado
por:
Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho
programa.
Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
Otra información que permite al sistema operativo su planificación.
Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta
de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de
planificación. Cada hilo consta de instrucciones y estado de ejecución.
3. Los procesos son creados y destruidos por el sistema operativo, así como también
este se debe hacer cargo de la comunicación entre procesos, pero lo hace a
petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso
se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y
no compartir el espacio de memoria con el proceso que los ha creado o ser
creados en el mismo espacio de memoria.
En los sistemas operativos multi-hilo es posible crear tanto hilos como procesos.
La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo
y en que dichos hilos comparten toda la memoria reservada para el proceso.
En este modelo: todo software ejecutable de la computadora, lo que a menudo
incluye al sistema operativo, esta organizado en una serie del proceso
secuenciales, o simplemente procesos.
La idea clava aquí es que un proceso es una actividad de algún tipo: tiene
programa, entrada, salida y un estado. Se puede compartir un procesador entre
varios procesos, usando algún algoritmo de planificación para determinar cuando
debe de trabajar en un proceso para atender a uno distinto.
4. JERARQUÍAS DE PROCESOS
Los sistemas operativos que manejan el concepto de proceso deben contar con
algún mecanismo para crear todos los procesos necesarios. en los sistemas muy
sencillos, o en los diseñados para ejecutar solo una aplicación.
En otros sistemas operativos existen llamadas al sistema para crear un proceso,
cargar su memoria y ponerlo en ejecutar. Sea cual sea la naturaleza exacta de la
llamada al sistema. Los procesos necesitan poder crear otros procesos.
En MINIX, los procesos se crean con la llamada al sistema FORK (bifurcar), que
crea una copia idéntica del proceso invocador. El proceso hijo también puede
ejecutar FORK, así que es posible tener un árbol de proceso.
5. ESTADOS DE PROCESOS
El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por
una serie de estados discretos. Estos estados son se muestran en el siguiente diagrama:
7. Estado Descripción
Nuevo
Se dice que un proceso está en estado de nuevo cuando apenas se encuentra en proceso de
crearse.
Listo Un proceso está en estado de listo, cuando podría usar una UCP, si hubiera una disponible.
En ejecución
Se dice que un proceso está estado de ejecución, si en ese momento tiene esta ocupando la
CPU.
Bloqueado
Se dice que un proceso está en estado de bloqueado, si espera que ocurra algo, como por
ejemplo, la terminación de una E/S, para así poder ponerse en marcha.
Terminado Cuando un proceso se ha completado su ejecución pasa a ser un proceso terminado
suspendido
Se da cuando los procesos se detienen a la espera de que se complete alguna operación.
El proceso ha sido movido de la memoria principal a la memoria secundaria
8. TRANSICIONES DE ESTADOS
Cuando un trabajo es admitido se crea un proceso equivalente, y es insertado en la ultima
parte de la cola de listos (ésta se tratara más adelante). Cuando un proceso pasa de un
estado a otro se dice que hace una transición de estado, estas transiciones se describen a
continuación.
9. Transición Descripción
Admitido(Proceso):Nuevo Listo
Cuando un proceso se ha creado y se le es permito para competir
por la CPU.
Despacho(Proceso):Listo En ejecución
La asignación de la CPU al primer proceso de la lista de listos es
llamado despacho y es ejecutado por la entidad de sistema llamada
despachador. Mientras que el proceso tenga la CPU se dice que esta
en ejecución.
Tiempo excedido(Proceso):En ejecución Listo
El S.O , cuando un proceso se le expira el intervalo de tiempo
asignado para estar en ejecución (CUANTO), hace que este proceso
que se hallaba en estado de ejecución pase al estado de listo y
inmediatamente el despachador hace que el primer proceso de la
lista pase a estado de ejecución.
Bloqueo(Proceso):En ejecución Bloqueado
Si un proceso que se encuentra en estado de ejecución inicia una
operación de E/s antes que termine su cuanto, el proceso
voluntariamente abandona la CPU, es decir, el proceso se bloquea a
sí mismo.
Despertar(Proceso):Bloqueo Listo
La única transición posible en nuestro modelo básico ocurre cuando
acaba una operación de E/S (o alguna otra causa por la que esté
esperando el proceso), y esta termina pasa a el estado de listo.
Salir(Proceso):En ejecución Terminado
Esta transición ocurre cuando el proceso se ha terminado de
ejecutarse, y pasa a un estado de terminado
10. Exclusión Mutua
Administra el área de datos compartidos y los recursos compartidos del sistema.
La exclusión mutua es la actividad que realiza el sistema operativo para evitar que dos o más
procesos ingresen al mismo tiempo a un área de datos compartidos o accedan a un mismo
recurso.
En otras palabras, es la condición por la cual, de un conjunto de procesos, sólo uno puede
acceder a un recurso dado o realizar una función dada en un instante de tiempo.
En sistemas de multiprogramación con un único procesador, los procesos se intercalan en el
tiempo para dar la apariencia de ejecución simultánea.
Uno de los grandes problemas que nos podemos encontrar es que el hecho de compartir
recursos está lleno de riesgos.
Por ejemplo, si dos procesos hacen uso al mismo tiempo de una variable global y ambos llevan
a cabo tanto operaciones de lectura como de escritura sobre dicha variable, el orden en que se
ejecuten estas lecturas y escrituras es crítico, puesto que se verá afectado el valor de la
variable.
11.
12. REGION CRÍTICA O SECCION CRITICA
Una región o sección crítica es una secuencia de instrucciones que no debe ser interrumpida por otros
procesos, es decir, se debe tratar una región crítica como una sola instrucción atómica.
No es suficiente que los recursos usados en una región crítica no deban ser alterados por otros
procesos, porque es posible que su valor o contenido en el momento de lectura no sean validos; puede
ser que estén en un estado transitorio.
Se denomina sección crítica, en programación concurrente, a la porción de código de un programa de
computador en la cual se accede a un recurso compartido (estructura de datos o dispositivo) que no
debe ser accedido por más de un hilo en ejecución.
La sección crítica por lo general termina en un tiempo determinado y el hilo, proceso o tarea sólo
tendrá que esperar un período determinado de tiempo para entrar.
13. Se necesita un mecanismo de sincronización en la entrada y salida de la sección crítica
para asegurar la utilización en exclusiva del recurso, por ejemplo un semáforo
El acceso concurrente se controla teniendo cuidado de las variables que se modifican
dentro y fuera de la sección crítica.
La sección crítica se utiliza por lo general cuando un programa multihilo actualiza
múltiples variables sin un hilo de ejecución separado que lleve los cambios conflictivos a
esos datos.
Una situación similar, la sección crítica puede ser utilizada para asegurarse de que un
recurso compartido, por ejemplo, una impresora, puede ser accedida por un solo proceso
a la vez.
La manera en cómo se implementan las secciones puede variar dependiendo de los
diversos sistemas operativos.
Sólo un proceso puede estar en una sección crítica a la vez.
El método más común para evitar que dos procesos accedan al mismo tiempo a un
recurso es el de la exclusión mutua
14.
15. SEMÁFOROS
Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método
clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de
almacenamiento del sistema o variables del código fuente) en un entorno de
multiprocesamiento (en el que se ejecutarán varios procesos concurrentemente). Fueron
inventados por Edsger Dijkstra en 1965 y se usaron por primera vez en el sistema operativo
THEOS.
Los semáforos se emplean para permitir el acceso a diferentes partes de programas (llamados
secciones críticas) donde se manipulan variables o recursos que deben ser accedidos de forma
especial. Según el valor con que son inicializados se permiten a más o menos procesos utilizar el
recurso de forma simultánea.
Un tipo simple de semáforo es el binario, que puede tomar solamente los valores 0 y 1. Se
inicializan en 1 y son usados cuando sólo un proceso puede acceder a un recurso a la vez. Son
esencialmente lo mismo que los mutex. Cuando el recurso está disponible, un proceso accede y
decrementa el valor del semáforo con la operación P. El valor queda entonces en 0, lo que hace
que si otro proceso intenta decrementarlo tenga que esperar. Cuando el proceso que
decrementó el semáforo realiza una operaciónV, algún proceso que estaba esperando comienza
a utilizar el recurso.
16. Para hacer que dos procesos se ejecuten en una secuencia predeterminada puede usarse un semáforo
inicializado en 0. El proceso que debe ejecutar primero en la secuencia realiza la operación V sobre el
semáforo antes del código que debe ser ejecutado después del otro proceso. Éste ejecuta la operación P. Si
el segundo proceso en la secuencia es programado para ejecutar antes que el otro, al hacer P dormirá hasta
que el primer proceso de la secuencia pase por su operación V. Este modo de uso se denomina señalación
(signaling), y se usa para que un proceso o hilo de ejecución le haga saber a otro que algo ha sucedido.
El otro uso de los semáforos es para la sincronización. Los semáforos vacíos y llenos se necesitan para
garantizar que ciertas secuencias de eventos ocurran o no. En este caso, aseguran que el productor deje de
ejecutarse cuando el búfer esté lleno y que el consumidor deje de ejecutarse cuando el búfer esté vacío. Este
uso es distinto de la exclusión mutua.
17.
18. PLANIFICACION DEL PROCESADOR
Gestión del procesador realizada por el sistema
operativo a través de distintas políticas y
mecanismos.
OBJETIVO: Dar un buen servicio a los procesos.
FUNCION: Reparto de tiempo del procesador para los
procesos.
20. Tiempo de
servicio (T)
T = tf - ti
Tiempo de
espera (E)
E = T - t
Índice de
servicio (I)
I = t / T
Medidas
Tiempo del
núcleo
Tiempo de
inactividad
(Idle)
21. Tiempo de servicio (T)
• es la diferencia que existe entre el instante en que el proceso
termina su ejecución (tf ) menos el instante en que el usuario da la
orden de ejecución del proceso (ti)
T = tf - ti
22. Tiempo de espera (E):
• Es la diferencia del tiempo de servicio (T) menos el tiempo que un
proceso P necesita estar en ejecución para llevar a cabo su
trabajo (t).
E = T - t
23. ALGORITMOS DE PLANIFICACION
El planificador del
procesador tiene como
misión la asignación del
mismo a los procesos que
están en la cola de
procesos preparados.
25. FCFS-FIFO
DESCRIPCION: En este algoritmo de planificación el procesador
ejecuta cada proceso hasta que termina, en el orden que llegan.
Los procesos permanecerán encolados hasta que les toque su
ejecución.
POLÍTICA: no apropiativa.
26. Ejercicio : suponga que los siguientes procesos han sido planificados para trabajar en el primero en
llegar el primero en ser servido los datos del tiempo de inicio son:
PROCESO T.INICIO TEXE
A 0 8
B 1 5
C 3 3
D 5 6
27. A)Determine el tiempo en que finaliza cada proceso
b)Determine el tiempo de servicio de cada proceso
c)Obtenga el valor promedio del tiempo de servicio
d)Obtenga el valor promedio del tiempo espera
e)Represente gráficamente con una grafica de gant el tiempo que cada proceso utiliza al
procesador
f)Obtenga el rendimiento del procesador para cada proceso
g) Elabore un resumen explicando como funciona ese método de planificación
28. PROCESO T.FINAL T E I
A 8 8 0 100
B 13 12 7 240
C 16 13 16 433.3
D 22 17 11 283.3
PROMEDIO DELTIEMPO DE SERVICIO = 10
PROMEDIO DELTIEMPO DE ESPERA = 5.6 TEXE: tiempo de ejecución
T:tiempo de servicio
E:tiempo de espera
I : rendimientoT=T FINAL –T INICIO
E=T-TEXE
I =T TEXE . 100
29. A A A A A A A A B B B B B C C C D D D D D D
GRAFICA DE GANNT
ESTE PROCESO DE PLANIFICACION EL PROCESADOR EJECUTA SEGÚN EL ORDEN DE LLEGAN COMO
ES NO SE PUEDE REALIZAR DOS PROCESOSAL MISMO TIEMPO SE ESPERAA QUE FINALIZE UNO
PRARA EJECUTAR EL OTRO
30. EL SIGUIENTE PROCESO
EL MAS CORTO(SJN)
DESCRIPCION: Toma de la cola de
procesos preparados el que necesite
menor tiempo de ejecución.
POLITICA: no apropiativa.
31. Planificación s-j-f(short first)
proceso Tiempo de inicio Tiempo de ejecución
A 0 10
B 1 8
C 3 3
D 5 6
E 6 5
A) ORDENARTABLA
B) APLICAR F.C.E.S PARA OBTENERTIEMPO FINAL DE CADA PROCESO
C) VALORES DE TIEMPO DE SERVICIOY TIEMPO DE ESPERA
D) PROMEDIO DETIEMPO DE SERVICIOYTIEMPO DE ESPERA
E) GRAFICAR
F) COMPARAR RESULTADO
32. a) Ordenar la tabla mediante el método de ordenamiento secuencial
for (int i = 0; i < a.length - 1; i++)
{
Val = i;
Pos = i
for (int j = i + 1; j < a.length; j++)
{
if (a[j] <Val)
{
Pos = [í] ;
}
}
Pos= a[i];
a[i] =Val
}
}}
35. Proceso Tiempo de inicio Tiempo de ejecucion
C 0 3
E 1 5
D 3 6
B 5 8
A 6 10
ORDENARTABLA
APLICAR F.C.E.S PARAOBTENERTIEMPO FINAL DE CADA
PROCESO
Proceso Tiempo de inicio Tiempo final Tiempo de
ejecución
C 0 3 3
E 1 8 5
D 3 14 6
B 5 22 8
A 6 31 10
36. VALORES DE TIEMPO DE SERVICIOY TIEMPO DE ESPERA
Proceso Tiempo de
inicio
Tiempo
final
Tiempo de
ejecución
Tiempo de
servicio
Tiempo de
espera
C 0 3 3 3 0
E 1 8 5 7 2
D 3 14 6 11 5
B 5 22 8 17 9
A 6 31 10 25 15
PROMEDIO DETIEMPO DE SERVICIO= 12.6
PROMEDIO DETIEMPO DE ESPERA= 6.2
C C C E E E E E D D D D D D B B B B B B B B A A A A A A A A A A