1. Instituto tecnológico del istmo
carrera: Ingeniería informática
Materia: Sistemas operativos 1
Nombre : Cinthia Janet Santiago Urbieta
Unidad: 2
grupo: “s” semestre: 4
2. Proceso”:
es una abstracción de un programa en ejecución llamada “tarea”; esun programa que se estaejecutando, una
actividad asincrónica (sin bloqueo). O bienuna entidad a la cual son asignados los procesadores.La unidad
“despachable”.
aquello que se manifiesta por la existencia en el S.O. de un bloque de control de procesos.
ESTADOS DE PROCESOS
1.- Estados activos
Son aquellos que compiten con el procesador o están en condiciones de hacerlo. Se dividen en:
Ejecución:Estado en el que se encuentra un proceso cuando tiene el control del procesador. En un sistema
monoprocesador este estado sólo lo puede tener un proceso.
Preparado: Aquellos procesos que están dispuestos para ser ejecutados, pero no están en ejecución por alguna
causa (Interrupción, haber entrado en cola estando otro proceso en ejecución, etc.).
Bloqueado: Son los procesos que no pueden ejecutarse de momento por necesitar algún recurso no disponible
(generalmente recursos de entrada/salida).
3. 2.- Estados inactivos
Son aquellos que no pueden competir por el procesador, pero que pueden volver a hacerlo por medio
de ciertas operaciones. En estos estados se mantiene el bloque de control de proceso aparcado hasta
que vuelva a ser activado. Se trata de procesos que no han terminado su trabajo que lo han impedido
y que pueden volver a activarse desde el punto en que se quedaron sin que tengan que volver a
ejecutarse desde el principio.
Son de dos tipos:
Suspendido bloqueado: Es el proceso que fue suspendido en espera de un evento, sin que hayan
desaparecido las causas de su bloqueo.
Suspendido programado: Es el proceso que han sido suspendido, pero no tiene causa parta estar
bloqueado.
Información asociada con cada proceso:
Estado del proceso.
Program counter.
Registros del CPU.
Información de planificación del CPU.
Memoria.
Información para administración.
Información de estatus de E/S.
4. TRANSICIONES
Un proceso puede encontrarse en estado de ejecución, bloqueado o listo (que también se llama
ejecutable). De estos estados de los procesos se derivan las siguientes transiciones y estados:
Transición: El paso de un estado a otro.
1. El proceso se bloquea en la entrada.
2. El planificador elige otro proceso.
3. El planificador elige este proceso.
4. La entrada se vuelve disponible.
Estados:
1. Ejecución (que en realidad hace uso del CPU en ese instante).
2. Bloqueado (incapaz de correr hasta que suceda algún evento externo.
3. Listo (ejecutable; se detiene temporalmente para permitir que se ejecute otro
proceso).
5. En estos tres estados son posibles cuatro transiciones:
1. Ocurre cuando un proceso descubre que no puede continuar. En algún sistema el proceso
debe ejecutar una llamada al sistema, BLOCK, para entrar en estado bloqueado.
2 y 3. Son ocasionadas por el planificador del proceso, que es parte del sistema operativo sin
que el proceso llegue a saber de ella.
2. Ocurre cuando el planificador decide que el proceso en ejecución ya ha corrido el tiempo
suficiente y es tiempo de permitir que otro proceso tome tiempo de CPU.
3. Ocurre cuando todos los procesos han utilizado su parte del tiempo y es hora de que el
primer proceso vuelva a correr.
4. Ocurre cuando aparece el evento externo que estaba esperando un proceso (como el arribo
de alguna entrada). Si ningún otro proceso corre en ese instante, la transición 3 se activará de
inmediato y el proceso iniciara su ejecución, de lo contrario tendrá que esperar, en estado listo.
6. Exclusión mutua
Se presentan a continuación varias proposiciones para lograr la exclusión mutua, de
manera que mientras un proceso esté ocupado actualizando la memoria compartida en su
región crítica, ningún otro proceso puede entrar a su región crítica y ocasionar problemas.
Deshabilitando interrupciones
En un sistema con un solo procesador, la solución más simple es hacer que cada proceso
deshabilite todas las interrupciones justo después de entrar a su región crítica y las
rehabilite justo después de salir. Con las interrupciones deshabilitadas, no pueden ocurrir
interrupciones de reloj. Después de todo, la CPU sólo se conmuta de un proceso a otro
como resultado de una interrupción del reloj o de otro tipo, y con las interrupciones
desactivadas la CPU no se conmutará a otro proceso. Por ende, una vez que un proceso ha
deshabilitado las interrupciones, puede examinar y actualizar la memoria compartida sin
temor de que algún otro proceso intervenga.
7. SECCION CRITICA SEMAFORO
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ón V, algún proceso que estaba esperando comienza a utilizar el
recurso. 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.
9. METODO F.C.F.S.
Suponga que los siguientes procesos han sido planificados pata trabajar el Primero en llegar, el Primero
en ser servido.
Proceso Tinicio Texe
A--------------0--------------8
B--------------1--------------5
C--------------3--------------3
D--------------5--------------6
Teniendo en cuenta que:
Texe: Tiempo de ejecución T= Tfinal-Tinicio
T: tiempo de servicio E= T-Texe
E: tiempo de espera I= T/Texe x 100
I: rendimiento
a) Determine el tiempo en que finaliza cada proceso.
b) Determine el tiempo de servicio para cada proceso.
c) Obtenga el valor promedio del tiempo de servicio.
d) Obtenga el valor promedio del tiempo de espera.
e) Represente gráficamente el tiempo en el que cada proceso utiliza el procesador.
f) Obtenga el rendimiento del procesador para cada proceso.
g) Elabore un resumen explicando cómo funciona ese método de planificación.
10. A)
A= 8, B=13, C=16, D=22
B)
T= 8-0=8
T=13-1=12
T=16-3=13
T=22-5=17
C)
T= 50/ 4 = 12.5%
D)
E= 26/4= 6.5%
E)
11. F)
I= 8/8 * 100= 100
I= 12/5 * 100 =240
I= 13/3 * 100= 433.33
I= 17/6 * 100= 283.33
G) Este método consiste en que el procesador ejecuta cada proceso hasta que termina, por tanto,
los procesos que en cola de procesos preparados permanecerán encolados en el orden en que
lleguen hasta que les toque su ejecución.
La cantidad de tiempo de espera de cada proceso depende del número de procesos que se
encuentren en la cola en el momento de su petición de ejecución y del tiempo que cada uno de
ellos tenga en uso al procesador, y es independiente de las necesidades del propio proceso.
En el caso de que los procesos de mayor tiempo de duración llegasen los primeros, el tiempo
medio de espera sería mucho mayor. Podemos llegar a la conclusión de que este no es un
algoritmo eficiente. El tiempo medio de servicio es muy variable en función del número de
procesos y su duración.
Conclusión:
Este algoritmo está bien lo único que los procesos largos hacen esperar mucho a los cortos.