Você está na página 1de 63

UNIDAD III

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?

Un proceso es en esencia un programa en ejecucin. Cada


proceso tiene asociado un espacio de direcciones, una lista de
ubicaciones de memoria que va desde algn mnimo
(generalmente 0) hasta cierto valor mximo, donde el proceso
puede leer y escribir informacin.

En este modelo, todo el software ejecutable en la computadora,


que algunas veces incluye al sistema operativo, se organiza en
varios procesos secuenciales (procesos, para abreviar). Un
proceso no es ms que una instancia de un programa en
ejecucin, incluyendo los valores actuales del contador de
programa, los registros y las variables.

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:

Un proceso es una actividad de cierto tipo: tiene un


programa, una entrada, una salida y un estado.

Cientfico con mente culinaria

El proceso es la actividad que


consiste
en
que
nuestro
cocinero vaya leyendo la
receta,
obteniendo
los
ingredientes y horneando el
pastel.
Aqu el procesador conmuta
de un proceso a uno de
mayor prioridad en donde
cada un tiene un programa
distinto.

La figura a continuacin muestra parte de la estructura de un


proceso en memoria.
Memoria

Los procesos en el sistema son de dos tipos


principales:
Procesos del sistema
Procesos de usuarios

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).

Todos los procesos terminan debido a que han


concluido su trabajo. (en Unix Exit y en Windows
ExitProcess)
Al compilar un programa y no existe el nombre del
archivo. En cambio los de pantalla aparece un cuadro
de dialogo y le pide al usuario que intente de nuevo.
Error del programa, por ejemplo al ejecutar una
instruccin ilegal, hacer referencia a una parte en
memoria que no existe.
Cuando se ejecuta una llamada al sistema que
indique al sistema operativo que elimine otros
procesos. (En Unix Kill y en Windows
TerminateProcess)

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

1. En ejecucin (en realidad est usando la CPU en ese instante).

2. Listo (ejecutable; se detuvo temporalmente para dejar que se ejecute


otro proceso).

3. Bloqueado (no puede ejecutarse sino hasta que ocurra cierto evento
externo).

EN
EJECUCION
1

BLOQUEADO

LISTO

1.
2.
3.
4.

El proceso se bloquea para recibir entrada


El planificador selecciona otro proceso
El planificador selecciona este proceso
La entrada ya est disponible

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

Transicin de los procesos

Transicin A. Ocurre cuando el programa que


ejecucin necesita algn elemento, seal, dato, etc.,
continuar ejecutndose.

est
para

en

Transicin B. Ocurre cuando


un programa o proceso
utilizado el tiempoasignado por la UCP
(procesador) para
ejecucin y tiene que
dejar paso al siguiente proceso.

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.

Transicin D. Ocurre cuando


el proceso
pasa de estar
bloqueado a estar preparado,
es decir, cuando
el proceso
recibe una
orden o seal que
estaba
esperandopara pasar
al estado de preparado y, posteriormente, tras
la transicin, a
estado de ejecucin.

ha
su

Transicin de los procesos


Modelo de transicin de estados de los procesos

Finalizado

Nuevo

Interrupcin

Proceso
creado

Salida

Ejecucin
Listo

Despachar
Despertar

Bloquear

Bloqueado

Esquema de ejecucin de
procesos.

El bloque de control de proceso.


Es
una estructura que representa a un
proceso dentro del sistema. Durante la
ejecucin de un proceso se lleva control de
sus actividades, estados, y recursos. Mucha de
la informacin asociada con un proceso esta
registrada en el PCB.

El bloque de control de proceso.


Estado del proceso: Se refiere a uno de los estados descritos
en el diagrama anterior: ejecucin, espera, listo.
Contador del programa: Este campo indica la direccin de la
prxima instruccin a ser ejecutada para este proceso.
Registros del cpu: La informacin de los registros del cpu
tambin es mantenida en el PCB. Esta informacin depende de la
arquitectura de mquina. Entre la informacin de registros en el
PCB estn: acumuladores, cdigos de condicin de errores.
Informacin de planificacin del cpu: Planificacin del cpu se
refiere bsicamente al establecimiento del orden en el cual los
procesos accedern al cpu. A los procesos se le asigna
prioridades. Esta informacin esta en el PCB.

El bloque de control de proceso.


Informacin de asignacin de memoria: Una informacin
muy importante es la relacionada con los espacios de memoria
ocupados por el proceso. Esto incluye registros de informacin
que evitan la violacin de espacios de memoria por parte de
otros procesos. Estos registros se llaman registros lmites.
Informacin
para
propsitos
de
facturacin
y
contabilidad: Existen centros de cmputos que cobran por
facilitar servicios y recursos de computacin. Entre estos
recursos esta el tiempo de procesamiento. En el PCB se
encuentra el tiempo de cpu consumido por un proceso. Esta
informacin podra ser utilizada para cobrar servicios.
Informacin de asignacin de dispositivos: Esta informacin
incluye dispositivos de entrada y salida. Adems de archivos
abiertos.

El bloque de control de proceso.


Eventualmente un proceso debe salir del cpu, entre
algunas razones estn las siguientes:
Debe realizar operaciones de Entrada o Salida.
Se acaba el tiempo de cpu asignado.
Se produce una interrupcin desde un dispositivo.
Requiere asistencia del sistema operativo.

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.

Todos los procesos en la memoria compiten por los


recursos disponibles para completar su finalizacin.
Mientras mayor sea el grado de multiprogramacin,
mayor ser la cantidad de procesos que estarn
compitiendo por recursos, y ser mayor su utilizacin.

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

Cuando se acaba el quantum de un proceso, se produce una interrupcin.


En este caso como ya sabemos el proceso pasa al estado listo, y el
despachador asigna otro proceso al cpu.

Interrupcin de entrada o salida

Al finalizar el servicio de una operacin de entrada o salida, el dispositivo


enva una seal de finalizacin, el sistema operativo determina o descifra
la seal del dispositivo para saber exactamente a que se refiere la seal.
En el caso que la seal indique completacion de un evento esperado por
algunos procesos bloqueados, entonces estos procesos pasaran al estado
listo. El sistema operativo debe ahora decidir que hacer con el cpu: sigue
en poder del proceso que estaba antes de la interrupcin, o hay que
asignarlo a otro proceso en la cola de procesos listos. Esto depender de
algoritmo de planificacin, y de las caractersticas del proceso (prioridad,
por ejemplo).

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 de rueda. Asigna rotativamente tiempos de ejecucin a los


diferentes procesos. Tambin se llama algoritmo de Round-Robin y en l
la asignacin de tiempos de ejecucin a los procesos es la misma y de
forma secuencial. A cada uno se le asigna el mismo quantum o intervalo
de tiempo de ejecucin. La seleccin entre los procesos se realiza
mediante una cola FIFO (First In First Out, el primero en entrar es el
primero en salir o ser servido). Es el algoritmo utilizado normalmente en
la asignacin de tiempos en sistemas operativos multiusuario y
multiproceso, y en la actualidad se puede deci que es el utilizado en
sistemas operativos monousuario y que trabajan en multitarea.

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.

1. Puede pasar un programa de estado bloqueado a ejecucin?

2. Cuando se lanza un nuevo proceso, pasa este directamente a


ejecucin?

3. Cuntas instrucciones puede procesar en un instante de tiempo la


UCP?

4. Quin asigna las prioridades a los procesos en un sistema


multiproceso?

5. Desde dnde y cmo se pueden lanzar los procesos en los sistemas


Windows y Linux?

6. En un sistema operativo monoproceso, cmo se planifica la


ejecucin de varios procesos?

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

Un recurso de tipo R2 a sido


asignado al proceso 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.

Este sistema est bloqueado porque cada proceso tiene


un recurso solicitado por el otro proceso y ninguno de
ellos est dispuesto a liberar el recurso que tiene.

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

Factores para la escogencia del proceso.


1- Prioridad de los procesos.
2- Cunto tiempo se ha ejecutado el proceso y cunto
tiempo necesita para culminar su actividad.
3- Cuntos y qu tipos de recursos ha usado el proceso.
4- Cuntos recursos ms necesita el proceso para
culminar.
5- Cuntos procesos necesitan ser terminados.
6- Si el proceso es interactivo o en lotes.

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.

3. Starvation (aplazamiento indefinido):


Garantizar que los recursos no siempre sean
arrebatados a los mismos procesos Vctimas, ya que
esto aplazara su culminacin.

Llamadas al sistema para la


administracin de procesos

PROGRAMACION BATCH CON


ARCHIVOS .BAT

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.

PUEDE SERVIR PARA CREAR PROGRAMAS SENCILLOS USANDO


SIMPLEMENTEPROGRAMAS DE EDICION DE TEXTO COMO EL BLOC DE NOTAS.

SINTAXIS:

ECHO : IMPRIME UN TEXTO EN PANTALLA .

PAUSE:PAUSA LA EJECUSION DEL CODIGO. ADEMAS MUESTRA EL TEXTO


Presiona una tecla para continuar.

EXIT: CIERRA LA VENTANA DE COMANDOS

Cls : limpia la pantalla.

Entramos al cmd, nos indica en donde estamos y cambiamos a la unidad d: si esta existe y creamos nuestro archivo por
lotes:

Copy con Datos.bat

Revisamos en la parte superior si esta el nombre se guardo el nombre de nuestro programa correctamente.

Rem "Mi primer archivo batc"

echo off

cls

color 40

echo ====================================

echo =

echo =

echo ====================================

echo. Mi nombre es:

echo. Mi musica favorita es:

echo Vivo en: maturin

echo Mi edad es:

echo Mi fruta favorita es:

echo Esto es un archivo .bat personalizado

pause

echo Fin de archivo

exit

Selecionamos ctrl + z nos indica en la parte de abajo que ha sido copiado.

=
SISTEMAS DE OPERACION

PROGRAMACION BATCH CON


ARCHIVOS .BATC
Start: indica otra ventana del interprete de comando.
Robocopy: utilidad para copiar carpetas y directorios.
Goto: direcciona el interprete de comandos a una lnea.
Set: muestra, establece o quita variables de entorno.
If: ejecuta procesos condicionales.
For: ejecuta un comando para cada archivos en un grupo de archivos.
CD o CHDIR:
Sirve para cambiar de Directorio o mostrar el nombre del actual. Para usarlo, usa CD
o CHDIR seguido de la ubicacin del directorio al cual nos moveremos. Por ejemplo:
CD C:\
CHDIR C:\
Los ejemplos anteriores hacen exactamente lo mismo, cambian al Disco C

PROGRAMACION BATCH CON


ARCHIVOS .BATC
COPY:
Copia uno o ms archivos a otro destino.
Su sintaxis es la siguiente:
COPY "Direccin del archivo" "Nueva direccin"
Por ejemplo:
Copy C:\archivo.txt C:\archivo2.txt
Aqu copiaramos un archivo del Disco C llamado archivo.txt como archivo2.txt, para
acortar un poco podramos usar:
CD Copy archivo.txt archivo2.txt
DEL:
Elimina uno o ms archivos, su sintaxis es:
DEL ARCHIVO
Tambin se puede usar con los siguientes parmetros:
DEL /F /Q archivo
Donde /Q logra que la consola no pida la confirmacin de eliminar el archivo y /F
permite eliminar archivos que poseen el atributo de solo lectura

PROGRAMACION BATCH CON


ARCHIVOS .BATC
MOVE:
Sirve para mover un archivo. Su sintaxis es:
Move Direccin Archivo Nueva Direccin
Como guardar el resultado que devuelve la consola como texto
Para salvar la informacin que aparece en la consola, ya sea el resultado de un comando,
una peticin de bsqueda, el contenido de la ayuda, etc. en un archivo de texto, hazlo de
la siguiente forma:
Utiliza el comando, el carcter > y a continuacin el nombre y la ubicacin del archivo a
crear.Por ejemplo:
ROBOCOPY /? > %userprofile%\Desktop\ayuda.txt
Puedes usar distintas extensiones de archivo, .doc, .xls , etc.Para seguir escribiendo
informacin adicional en el mismo archivo anterior, utiliza dos smbolos >> consecutivos,
por ejemplo:
XCOPY /? >>%userprofile%\Desktop\ayuda.txt

Asignacin Parte II.

1. Cul es el algoritmo utilizado normalmente para gestionar los


trabajos que llegan a una impresora?

2. Cuando todos los procesos tienen ms o menos la misma duracin,


cul es el algoritmo que mejor optimiza el tiempo de la UCP para varios
procesos?

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)

Asignar espacio para el proceso


Iniciar el PCB
Incluir al proceso en los algoritmos de planicacin
Actualizar otras tablas

PARA QUE QUIERO HILOS?


Descomponer la aplicacin en mltiples
subprocesos secuenciales paralelos
Permiten solapar E/S y cmputo dentro de un
mismo proceso
Con mltiples CPUs se puede conseguir
verdadero paralelismo
Son ms rpidos de crear y destruir

HILOS EN MODO USUARIO


Ventajas
El ncleo no sabe que existen
Tabla de subprocesos privada para cambios de contexto
Cambio de contexto mucho ms rpido entre hilos (no se pasa
al kernel)
Cada proceso puede tener su algoritmo de planificacin
Inconvenientes
Llamadas bloqueantes al sistema -- funciones no bloqueantes
Fallos de pgina
Tienen que ceder la CPU entre ellos -- Conmutacin en el
mismo proceso
Precisamente queremos hilos en procesos que tienen mucha E/S
para obtener paralelismo, es decir, que se estn bloqueando

HILOS EN MODO NUCLEO


Ventajas
El ncleo mantiene la tabla de hilos, que es un subconjunto de la
de procesos
Las llamadas bloqueantes no necesitan funciones especiales
Los fallos de pgina no suponen un problema
Al bloquearse un hilo, el ncleo puede conmutar a otro hilo de
otro proceso

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

Otro proceso, el demonio de impresin, comprueba en


forma peridica si hay archivos que deban imprimirse y si
los hay, los imprime y luego elimina sus nombres del
directorio

En donde dos o ms procesos estn leyendo o escribiendo


algunos datos compartidos y el resultado final depende de quin
se ejecuta y exactamente cundo lo hace, se conocen como
condiciones de carrera

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

3. Ningn proceso que se ejecute fuera de su regin crtica


puede bloquear otros procesos.
4. Ningn proceso tiene que esperar para siempre para
entrar a su regin crtica.

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.

Pasaje (transmisin) de mensajes

Ese algo ms es el pasaje de mensajes (message passing). Este mtodo


de comunicacin entre procesos utiliza dos primitivas (send y receive) que, al
igual que los semforos y a diferencia de los monitores, son llamadas al
sistema en vez de construcciones del lenguaje. Como tales, se pueden colocar
con facilidad en procedimientos de biblioteca, como
send(destino, &mensaje);
y
receive(origen, &mensaje);
La primera llamada enva un mensaje a un destino especificado y la segunda
recibe un mensaje de un origen especificado (o de CUALQUIERA, si al receptor
no le importa). Si no hay un mensaje disponible, el receptor se puede bloquear
hasta que llegue uno. De manera alternativa, puede regresar de inmediato con
un cdigo de error.

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

Muestra informacin detallada de


cada tarea ejecutndose.

TASKLIST /SVC

Muestra informacin adicional de los


servicios hospedados en cada
proceso.

TASKLIST /M modulo

Muestra todas las tareas que usan


un mdulo DLL o EXE especificado.
Si no se indica el modulo se
muestran todos los mdulos
cargados.

TASKLIST /FO formato

Especifica el formato de salida.


Puede ser: "TABLE", "LIST", "CSV".

TASKLIST /NH

Si se usan los formatos "TABLE" y


"CSV", especifica que el
"encabezado de columna" no se
debe mostrar.

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.

Parmetros para usar con TASKKILL

TASKKILL /PID identidadproceso

Detiene un proceso especificando el


nmero de identidad. Este puede
conocerse usando TASKLIST.

TASKKILL /IM nombreTarea

Detiene un proceso especificando su


nombre.

TASKKILL /FI filtro

Permite usar un filtro para


seleccionar varias tareas al mismo
tiempo.

TASKKILL /T

Termina un proceso y todos los


procesos secundarios iniciados por
l.
Especifica que se debe terminar un

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

Você também pode gostar