Escolar Documentos
Profissional Documentos
Cultura Documentos
PROCESOS
Profa. Ing. Yhuanailys Nez
Qu es un programa?
Conjunto de instrucciones relacionadas
lgicamente, escritas en un lenguaje de
programacin formal (C++, C, Pascal, Visual
Basic, Java, Assembler, otros). Los programas
normalmente se almacenan con un nombre en
dispositivos de almacenamiento secundario,
en estructuras llamadas archivos.
Qu es un proceso?
Hebras
Es un punto de ejecucin de un proceso. Un proceso
tendr siempre una hebra, en la que corre el propio
programa, pero puede tener ms hebras.
Las hebras representan un mtodo software para
mejorar el rendimiento y eficacia de los sistemas
operativos. Las hebras de un mismo proceso
compartirn recursos, como memoria, archivos,
recursos hardware, etc.
EJEMPLO:
Creacin de un proceso
Hay cuatro eventos principales que provocan la creacin de
procesos:
1. El arranque del sistema.
2. La ejecucin, desde un proceso, de una llamada al
sistema para creacin de procesos.
3. Una peticin de usuario para crear un proceso.
4. El inicio de un trabajo por lotes.
Terminacin de procesos
Por lo general debido a una de las siguientes
condiciones:
1. Salida normal (voluntaria).
2. Salida por error (voluntaria).
3. Error fatal (involuntaria)
4. Eliminado por otro proceso
(involuntaria).
Jerarquas de procesos
En algunos sistemas, cuando un proceso
crea otro, el proceso padre y el proceso
hijo continan asociados en ciertas formas.
En UNIX, un proceso y todos sus hijos,
junto con sus posteriores descendientes,
forman un grupo de procesos.
En contraste, Windows no tiene un
concepto de una jerarqua de procesos.
Todos los procesos son iguales
A
B
E
B
F
D
G
H
I
Estados de un proceso
3. Bloqueado (no puede ejecutarse sino hasta que ocurra cierto evento
externo).
EN
EJECUCION
1
BLOQUEADO
LISTO
1.
2.
3.
4.
Estados de un proceso
Termina
Ejecucin
E/
S
Nuevo
r
po
em
i
T
po
n
o
c
id
m
u
ni
fic
ad
o
r
pe
Es
Pl
a
Listo
Bloqueado
Fin E/S
est
para
en
Transicin
C. Ocurre cuando
el proceso
que est
preparado pasa al proceso de ejecucin, es decir, cuando
al
proceso
le llega una
nueva disposicin
de tiempode la UCP
para poder ejecutarse.
ha
su
Finalizado
Nuevo
Interrupcin
Proceso
creado
Salida
Ejecucin
Listo
Despachar
Despertar
Bloquear
Bloqueado
Esquema de ejecucin de
procesos.
Multiprogramacin.
Es un esquema de asignacin y gestin de memoria
que permite mantener varios procesos de usuarios en
la memoria.
Multiprogramacin es una forma rudimentaria
de procesamiento paralelo en el cual varios
programas corren al mismo tiempo en un
sistema.
Tiempo compartido.
Es un esquema de rotacin del cpu entre diferentes
programas que estn en el sistema tomando en
cuanta lo siguiente: a cada programa de usuario se le
asigna (por sistema) un periodo de tiempo para
utilizar el cpu.
Multiprocesamiento.
Esto implica que se puede tener ms de un proceso
en ejecucin en forma paralela. Multiprocesamiento
puede ser definido como el procesamiento coordinado
de programas por ms de un procesador en un
computador. Una forma de procesamiento es la
ejecucin de un programa por ms de un computador.
Con el desarrollo del procesamiento paralelo se han
desarrollado conceptos como Multiprocesamiento
Simtrico y Procesamiento Paralelo masivo.
Interrupciones.
Interrupcin de reloj
Interrupciones.
Fallo de memoria
Los esquemas de gestin de memoria modernos,
permiten que partes del cdigo del proceso que se esta
ejecutando se encuentre en discos. Si un proceso hace
referencia a una direccin que se encuentra en disco, se
producir una interrupcin. Mientras dure el proceso de
traer el cdigo desde el disco, el sistema operativo
puede asignar el cpu a otro proceso. El proceso que
produjo el fallo de memoria es pasado al estado
bloqueado.
Algoritmos de planificacin
Especialmente en sistemas operativos multiproceso o
en sistemas operativos en red, siempre y cuando se
ejecuten varios procesos en el mismo equipo, la CPU
se encarga de asignar tiempos de ejecucin a cada
proceso segn el tipo de algoritmo y la prioridad de
cada proceso. A continuacin vamos a dar una breve
descripcin de algunos de los algoritmos de
planificacin ms habituales en sistemas multiproceso
y multiusuario.
Algoritmos de planificacin
Algoritmo FIFO (First In First Out) o FCFS (First Come First Serve). Los
ciclos de UCP asignados a cada proceso se asignan en funcin de una
cola FIFO. Al primer proceso que llega se le asignan tiempos o ciclos de
UCP hasta que termina completamente. A continuacin, se ejecuta
completo el siguiente proceso que hay en la cola FIFO y as
sucesivamente hasta terminar con el ltimo proceso. Este algoritmo de
planificacin normalmente se utiliza para la gestin de trabajos en colas
de impresin, respecto de los trabajos que van llegando a la impresora.
Recursos
Un sistema se compone de un nmero finito de recursos que se
distribuyen entre varios procesos que compiten por ellos: Ciclos de CPU,
Espacio de Memoria, Archivos, Dispositivos.
Un proceso debe solicitar un recurso antes de usarlo y liberarlo al
terminar su uso.
En el modo de operacin normal, un proceso slo puede utilizar
un recurso en la secuencia siguiente:
- Solicitud.
- Utilizacin.
- Liberacin.
Asignacin Parte I.
Bloqueo Mutuo
Cuando el proceso de un sistema de multiprogramacin espera
en balde a que se presente un evento especfico, se dice que se
encuentra en un estado de bloqueado mutuo. En un bloqueo del
sistema, pueden ser uno o varios los procesos que se
encuentran en un bloqueo mutuo.
Los bloqueos mutuos pueden aparecer en muchas formas. Si a
un proceso se le asigna la tarea de esperar a que ocurra un
evento y el sistema no incluye providencias para sealar la
ocurrencia de dicho evento, habr un bloqueo mutuo con un solo
proceso.
Es muy difcil detectar los bloqueos mutuos de esta naturaleza.
La mayor parte de los bloqueos mutuos en los sistemas reales
implican una competencia entre varios procesos por varios
recursos.
Bloqueo Mutuo
CONDICIONES DE OCURRENCIA
EXCLUSIN MUTUA: Los procesos exigen un control exclusivo de los
recursos que necesitan.
RETENCIN Y ESPERA: Los procesos mantienen la posesin de los
recursos ya asignados a ellos mientras esperan por recursos adicionales
retenidos por otros procesos.
NO APROPIACIN: Un recurso slo puede ser liberado voluntariamente
por el proceso que lo retiene, despus que haya cumplido su tarea.
ESPERA CIRCULAR: Debe existir un conjunto de procesos (p0,p1,...,pn)
en espera, tales que p0 espera un recurso retenido por p1, p1 espera un
recurso retenido por p2 y as sucesivamente hasta que pn espera un
recurso retenido por p0.
Bloqueo Mutuo
Asignacin y peticin de recursos
P1
R1
P1 pide un recurso de tipo R1.
(A)
R2
(B)
P2
Bloqueo Mutuo
El recurso 1
est asignado
al proceso A.
Recurso 1
PROCESO
B
PROCESO
A
El proceso A pide el
recurso 2.
El proceso B
pide el recurso
1.
Recurso
2
El recurso 2 est
asignado al
proceso B.
Bloqueo Mutuo
Mtodos para manejar el bloqueo mutuo
PREVENIR: Ajustar todo el sistema para ELIMINAR TODA
POSIBILIDAD que ocurra un deadlock.
EVITAR: Se permite la posibilidad del bloqueo mutuo, pero se
esquiva cuando est a punto de suceder.
DETECTAR: Determinar si ha ocurrido un bloqueo mutuo y saber
exactamente cules son los procesos y los recursos
involucrados en l.
RECUPERAR: Eliminar el bloqueo mutuo de un sistema para que
pueda seguir trabajando y para que los procesos implicados
puedan terminar su ejecucin y liberen los recursos utilizados.
Bloqueo Mutuo
Recuperacin despus de un deadlock
Permitir al sistema operativo recuperarse despus de la ocurrencia de un
deadlock, sin intervencin directa del operador.
Alternativas:
i) Abortar uno o ms procesos.
ii) Arrebatar recursos a uno o ms procesos que se encuentran en
deadlock.
Abortar
Mtodos:
i) Abortar todos los procesos en deadlock:
Costo alto.
Prdida total del trabajo realizado.
ii) Abortar un proceso a la vez, hasta que el deadlock haya sido
eliminado:
Overhead (Sobretiempo).
Algoritmo de deteccin.
Bloqueo Mutuo
Recuperacin despus de un deadlock
Bloqueo Mutuo
Arrebatar recursos
Quitar recursos a los procesos en forma sucesiva y otorgar
stos recursos a otros procesos.
Aspectos a considerar:
1- Seleccin de un proceso victima".
Determinar a cules procesos y cules recursos les sern
arrebatados.
Parmetros:
Nmero. de recursos que tiene asignado un procesos
en
deadlock.
Cantidad de tiempo consumida por el proceso en su
ejecucin.
Bloqueo Mutuo
Arrebatar recursos
2- Rollback:
Una vez que un proceso le han sido quitados los recursos,
se puede regresar el proceso a algn estado seguro y
restaurarlo desde ese momento.
Requiere que el sistema mantenga mayor cantidad de
informacin acerca del estado de todos los procesos en
ejecucin.
EL LENGUAJE BATCH ESTA FORMADO POR UNA SERIE DE COMANDOS MSDOS QUE SON GUARDADOS EN UN ARCHIVO DE PROCESAMIENTO POR
LOTES NORMALMENTE CON FORMATO .BAT.
SINTAXIS:
Entramos al cmd, nos indica en donde estamos y cambiamos a la unidad d: si esta existe y creamos nuestro archivo por
lotes:
Revisamos en la parte superior si esta el nombre se guardo el nombre de nuestro programa correctamente.
echo off
cls
color 40
echo ====================================
echo =
echo =
echo ====================================
pause
exit
=
SISTEMAS DE OPERACION
CONTROL DE PROCESOS
Modos de ejecucin
Modo usuario
Modo ncleo (root, protegido, supervisor...)
El proceso est compuesto por la parte usuario (lo que el
usuario implementa) y la parte de ncleo (las rutinas del ncleo
que utiliza)
Cmo se crea un proceso?
Asignar un ID nico al proceso (y entrada en la tabla de
procesos)
Inconvenientes
Las llamadas bloqueantes son llamadas al sistema, e.d. ms
costosas
La creacin y destruccin de procesos es ms costoso
----Reutilizacin de hilos
Comunicacin de procesos.
Condiciones de carrera
Los
procesos que trabajan en conjunto pueden
compartir cierto espacio de almacenamiento en el que
pueden leer y escribir datos.
El almacenamiento compartido puede estar en la
memoria principal o puede ser un archivo compartido; la
ubicacin de la memoria compartida no cambia la
naturaleza de la comunicacin o los problemas que
surgen.
Comunicacin de procesos.
Condiciones de carrera
Introduce el nombre del archivo en un directorio de
spooler especial
un spooler de impresin
Comunicacin de procesos.
Regiones crticas
Esa parte del programa en la que se accede a la
memoria compartida se conoce como regin crtica o
seccin crtica. Si pudiramos ordenar las cosas de
manera que dos procesos nunca estuvieran en sus
regiones crticas al mismo tiempo, podramos evitar las
carreras.
Comunicacin de procesos.
Regiones crticas
Necesitamos cumplir con cuatro condiciones para tener
una buena solucin:
1. No puede haber dos procesos de manera simultnea
dentro de sus regiones crticas.
2. No pueden hacerse suposiciones
velocidades o el nmero de CPUs.
acerca
de
las
Comunicacin de procesos.
Comunicacin de procesos.
Dormir y despertar
Una seal que se enva para despertar a un proceso que no
est dormido (todava) se pierde. Si no se perdiera, todo
funcionara. Una solucin rpida es modificar las reglas para
agregar al panorama un bit de espera de despertar. Cuando
se enva una seal de despertar a un proceso que sigue todava
despierto, se fija este bit. Ms adelante, cuando el proceso
intenta pasar a dormir, si el bit de espera de despertar est
encendido, se apagar pero el proceso permanecer despierto.
Este bit es una alcanca para almacenar seales de despertar.
Comunicacin de procesos.
Semforos
Un semforo podra tener el valor 0, indicando que no se
guardaron seales de despertar o algn valor positivo si
estuvieran pendientes una o ms seales de despertar.
Dijkstra propuso que se tuvieran dos operaciones, down y
up
(generalizaciones
de
sleep
y
wakeup,
respectivamente). La operacin down en un semforo
comprueba si el valor es mayor que 0.
De ser as, disminuye el valor (es decir, utiliza una seal
de despertar almacenada) y slo contina.
Si el valor es 0, el proceso se pone a dormir sin completar
la operacin down por el momento.
Comunicacin de procesos.
Mutexes
Son buenos slo para administrar la exclusin mutua para cierto
recurso compartido o pieza de cdigo. Se implementan con facilidad y
eficiencia, lo cual hace que sean especialmente tiles en paquetes de
hilos que se implementan en su totalidad en espacio de usuario.
Un mutex es una variable que puede estar en uno de dos estados:
abierto (desbloqueado) o cerrado (bloqueado).
Por otro lado, si el mutex ya se encuentra cerrado, el hilo que hizo la
llamada se bloquea hasta que el hilo que est en la regin crtica
termine y llame a mutex_unlock. Si se bloquean varios hilos por el
mutex, se selecciona uno de ellos al azar y se permite que adquiera el
mutex.
Comunicacin de procesos.
Monitores
Un monitor es una coleccin de procedimientos, variables y
estructuras de datos que se agrupan en un tipo especial de mdulo o
paquete. Los procesos pueden llamar a los procedimientos en un
monitor cada vez que lo desean, pero no pueden acceder de manera
directa a las estructuras de datos internas del monitor desde
procedimientos declarados fuera de ste.
Los monitores tienen una importante propiedad que los hace tiles
para lograr la exclusin mutua: slo puede haber un proceso activo en
un monitor en cualquier instante.
Los monitores son una construccin del lenguaje de programacin,
por lo que el compilador sabe que son especiales y puede manejar las
llamadas a los procedimientos del monitor en forma distinta a las
llamadas a otros procedimientos.
Comunicacin de procesos.
Comunicacin de procesos.
Barreras
Est destinado a los grupos de procesos, en vez de las situaciones de
tipo productor-consumidor de dos procesos. Algunas aplicaciones se
dividen en fases y tienen la regla de que ningn proceso puede
continuar a la siguiente fase sino hasta que todos los procesos estn
listos para hacerlo. Para lograr este comportamiento, se coloca una
barrera al final de cada fase. Cuando un proceso llega a la barrera, se
bloquea hasta que todos los procesos han llegado a ella
CMD
Utilizar el comando TASKLIST en Windows
TASKLIST, (del ingls listar tareas) muestra todas las aplicaciones
ejecutndose en el equipo con el nmero de identidad del proceso (PID).
TASKLIST /V
TASKLIST /SVC
TASKLIST /M modulo
TASKLIST /NH
CMD
Utilizar el comando TASKKILL
TASKKILL es un comando que complementa al anterior.
Permite detener tareas o procesos usando el PID (nmero de identidad del proceso) o el nombre.
TASKKILL /T
PRACTICA EN CONSOLA
TASKLIST
TASKLIST /SVC /FO LIST>%userprofile%/Desktop/list.txt
FINALIZAR LA EJECUSION DEL BLOC DE NOTAS
TASKKILL /F /IM notepad.exe
CIERRE UN PROCESO USANDO SU PID
TASKKILL /PID XXX
CREAR UN BATCH QUE CIERRE UN PROCESO
TASKKILL /F /IM PROCESO1