Está en la página 1de 33

Procesos

FUNDAMENTOS DE SISTEMAS OPERATIVOS


Un proceso es un programa en ejecución. Que
necesita ciertos recursos para realizar
satisfactoriamente su tarea:
• Tiempo de CPU.
• Memoria.
• Archivos.
• Dispositivos de E/S.

Todos los procesos tienen asociados un


Concepto espacio de direcciones en memoria, registros
y el contador de programas.

Un programa para poderse ejecutar necesita


estar en memoria principal.

Los procesos son dependientes del sistema


operativo.
Creación y eliminación de
procesos.

Planificación de procesos
Las (procurando la ejecución de
obligaciones múltiples procesos maximizando
del SO como la utilización del procesador).
gestor de
procesos
son: Establecimiento de mecanismos
para la sincronización y
comunicación de procesos.

Manejo de bloqueos mutuos.


Vista de Procesos en Windows
Windows
TASKLIST y TASKKILL para administrar los procesos ejecutándose en el sistema. Ver, listar y
detener las tareas, programas o aplicaciones. Conocer las aplicaciones ejecutándose en
segundo plano y cerrarlas de forma forzada. Ejemplos:
Windows
TASKLIST y TASKKILL para administrar los procesos ejecutándose en el sistema. Ver, listar y
detener las tareas, programas o aplicaciones. Conocer las aplicaciones ejecutándose en
segundo plano y cerrarlas de forma forzada. Ejemplos:

Especifica
que se debe
terminar un
TASKKILL /F
proceso de
forma
forzada.
Listar procesos:
◦ El comando ps nos permite listar los
procesos que se están ejecutando
actualmente en nuestro sistema
◦ ps -e: Muestra todos los procesos.
◦ ps -ef: Muestra todos los procesos
En Linux: en formato completo.
◦ ps -eH: Muestra un árbol de
procesos.
◦ ps -e --forest: Muestra un árbol de
procesos.
◦ ps -u usuario: Muestra los procesos
en ejecución de usuario.
◦ ps - T (procesos asociados a un
terminal)
◦ ps –fG UserGroupName (procesos
de un grupo de usuarios)
◦ top
◦ top -d #segundos (entre muestreos)
◦ top -o %CPU (ordena los procesos
por % de cpu)
En Linux: ◦ top - u nombreusuario (por usuario)
◦ htop (se debe instalar)
◦ kill #proceso (detiene un proceso)
◦ kill -KILL #proceso (forzar comando)
◦ kill -9 #proceso (forzar comando)
◦ kill -HUP #proceso (para reiniciar el
proceso)
◦ kill -1 #proceso (para reiniciar el
proceso)
En linux
Linux
Matar procesos:
◦ Comando Kill:
◦ Kill IDProceso
Nuevo (new): el proceso se está creando.

En ejecución (running): el proceso está en la


CPU ejecutando instrucciones.

Bloqueado (waiting, en espera): proceso


esperando a que ocurra un suceso (ej.
terminación de E/S o recepción de una señal).

Estados de Preparado (ready, listo): esperando que se le


un Proceso asigne a un procesador.

Terminado (terminated): finalizó su
ejecución, por tanto no ejecuta más
instrucciones y el SO le retirará los recursos
que consume.

Nota: Sólo un proceso puede estar


ejecutándose en cualquier procesador en un
instante dado, pero muchos procesos pueden
estar listos y esperando.
New: cuando el proceso esta siendo creado.

Running: cuando el proceso se esta


ejecutando.

Estados de Waiting: cuando el proceso esta esperando


que se cumpla algún otro evento.
un Proceso
(En Inglés)
Ready: cuando el proceso esta pronto para
ejecutar, esperando por la CPU.

Terminated: cuando el proceso esta


terminado.
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). 
Estados inactivos
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 Program Registros del


proceso. counter CPU

Información de Información
planificación Memoria para
del CPU administración

Información de
estatus de E/S 
Crear un proceso implica operaciones como:
Dar un nombre a un proceso.
Insertarlo en la lista de procesos conocidos del
sistema ( o tabla de procesos)
Determinar la prioridad inicial de proceso.
Crear el bloque de control de proceso.
Asignar los recursos iniciales al proceso.
Creación de Un proceso puede crear un nuevo proceso. Si lo
Procesos hace el proceso creador se denomina proceso
padre, y el proceso creado, proceso hijo. Tal
creación origina una estructura jerárquica de
procesos. No se puede destruir un proceso cuando
este ha creado otros procesos.
Nota: Destruir un proceso implica eliminarlo del
sistema. Se le remueve de la tabla o listas del
sistema, sus recursos se devuelven al sistema y su
bloque de control de proceso se borra (es decir, el
espacio de memoria ocupado se vuelve un espacio
de memoria disponible.
Los sistemas operativos poseen una serie de
funciones cuyo objetivo es el de la
manipulación de los procesos. En general las
operaciones que se pueden hacer sobre un
Operaciones proceso son las siguientes:
de procesos
y recursos. Crear el proceso. Se produce con la orden de
ejecución del programa y suele necesitar
varios argumentos, como el nombre y la
prioridad del proceso.
Jerárquica.  En  ella  cada
proceso que se crea es hijo
del proceso creador y
La creación hereda el entorno  de
de un ejecución de su padre. 
proceso
puede ser de No jerárquico. Cada proceso
dos tipos: creado por otro proceso se
ejecuta independientemente
de su creador con un
entorno diferente.
Destruir un proceso. Se trata de la orden de
eliminación del proceso con la cual el sistema operativo
destruye su PCB ( Process control Block).
Suspender un proceso. Es una operación de alta
prioridad que paraliza un proceso que puede ser
Además de reanudado posteriormente. Suele utilizarse en ocasiones
de mal funcionamiento o sobrecarga del sistema.
las dos ◦ 1. Reanudar un proceso. Trata de activar  un proceso que ha
operaciones sido previamente suspendido.                     
◦ 2. Cambiar la prioridad de un proceso.
anteriores se
pueden Temporizar la ejecución de un proceso. Hace que un
realizar las determinado proceso se ejecute cada  cierto tiempo
siguientes: (segundos, minutos, horas,...) por etapas o de una sola
vez, pero transcurrido un periodo de tiempo fijo.
Despertar un proceso. Es una forma de desbloquear un
proceso que habrá sido bloqueado previamente por
temporización o cualquier otra causa.
Es una estructura de datos asociada a una entidad
informática ya sea un (Recurso o Proceso), en la cual se
indica y actualiza todas las informaciones relativas a
dicha entidad.
En el caso de un proceso la información general  que
contiene es:
1) Identificador: Que puede ser interno y externo.
DESCRIPTO ◦ Interno: Sistemas.
R ◦ Externo: Usuario.

DE PROCES 2) Descripción de la máquina virtual asociada:


◦ Como espacio virtual asignado, tipo de mapeo, tipo de
OS acceso.
Y RECURSO 3) Descripción de los recursos de la máquina que usa
S como:
◦ Lista de recursos que el proceso tiene  derecho a solicitar,
dirección real en la memoria principal, estado de las 
variables internas  del CPU, prioridad, etc.
4) Estados funcionales del proceso:   
◦ Los  estados  de  los  procesos  son  internos  del sistema
operativo  y  transparente  al   usuario.  Para  éste,  su
proceso  estará  siempre en ejecución
independientemente  del   estado  en que se encuentre
internamente el sistema.
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:

TRANSICION Transición: El paso de un estado a otro.


ES
      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.
1. Ejecución (que en realidad
hace uso del CPU en ese
instante).
2. Bloqueado (incapaz de correr
Estados: hasta que suceda algún evento
externo.
3. Listo (ejecutable; se detiene
temporalmente para permitir que
se ejecute otro proceso).
En estos tres estados son posibles
cuatro transiciones:

1. Ocurre cuando un proceso


2.  Ocurre cuando el planificador
descubre que no puede continuar. En 2 y 3.  Son ocasionadas por el
decide que el proceso en ejecución
algún sistema el proceso debe planificador del proceso, que es parte
ya ha corrido el tiempo suficiente y
ejecutar una llamada al sistema, del sistema operativo sin que el
es tiempo de permitir que otro
BLOCK, para entrar en estado proceso llegue a saber de ella.
proceso tome tiempo de CPU.
bloqueado.

4. Ocurre cuando aparece el evento externo


que estaba esperando un proceso (como el
3. Ocurre cuando todos los procesos han arribo de alguna entrada). Si ningún otro
utilizado su parte del tiempo y es hora de que proceso corre en ese instante, la transición  3
el primer proceso vuelva a correr. se  activará de inmediato y el proceso iniciara
su ejecución, de lo contrario tendrá que
esperar, en estado listo.
La asignación del CPU al primer proceso de la lista de
listos es llamada despacho, y es ejecutado por la entidad
del sistema llamada despachador. Indicamos esta
transición de la manera siguiente:
Despacho (nombre del proceso): Listo  en   ejecución.
Mientras el proceso tenga CPU,  se dice que esta en
ejecución. Para prevenir que cualquier  proceso
monopolice el sistema, ya sea de manera accidental o
maliciosamente el sistema operativo ajusta un reloj de
Transiciones interrupción del hardware para permitir al usuario
ejecutar su proceso durante un intervalo de tiempo
de estado. especifico o cuanto.
Si el proceso no abandona voluntariamente el CPU, antes
de que expire el intervalo, el reloj genera una interrupción,
haciendo que el sistema operativo recupere el control. El
sistema operativo hace que el proceso que
anteriormente  se hallaba en estado de ejecución pase al
de listo, y hace que el primer proceso de la lista de listos
pase al estado de ejecución.
Un proceso suspendido no puede proseguir sino
hasta que lo reanuda otro proceso. Reanudar (o
activar) un proceso implica reiniciarlo a partir del
punto en el que se suspendió.
Las operaciones de suspensión y reanudación son
importantes por diversa razones:

◦ Si un sistema está funcionando mal y es probable que


falle, se puede suspender los  procesos activos para
reanudarlos cuando se haya corregido el problema.
Suspensión y
Reanudación. ◦ Un usuario que desconfíe de los resultados parciales de
un proceso puede suspenderlo (en vez de abortarlo)
hasta que verifique si el proceso funciona
correctamente o no.

◦ Algunos procesos se puede suspender como respuesta a


las fluctuaciones a corto plazo  de la carga del sistema
y reanudarse cuando las cargas regresen a niveles
normales.
Simulación de los estados de un Proceso
Diagrama de estados de un proceso
Núcleos de un procesador
Un CPU ejecuta cada proceso de manera concurrente, y no
paralela.
El núcleo de un procesador es sin duda uno de los
conceptos más importantes a tener en cuenta hoy en día.
Estos nos permiten tener algo parecido a «varias CPUs en
una», al multiplicar determinadas partes lógicas del
procesador, para así conseguir un paralelismo en la
ejecución que es imposible en un sistema mononúcleo.
Los cores o núcleos son un subprocesador en sí mismo.
Antes, los procesadores eran de un solo núcleo (single
core), por lo que no podían realizar más que una tarea al
mismo tiempo.
Como un núcleo es un procesador en sí mismo, una CPU
multinúcleo de dos núcleos pueda ejecutar dos tareas al
mismo tiempo. Uno de cuatro, pues cuatro tareas
simultáneas y así de forma correlativa con tantos núcleos
como incorpore.
Hilos (threads) de un Procesador
 Un hilo dentro de un procesador es la forma en que
cada uno de los núcleos del CPU recibirá y procesará la
información.
 Cada núcleo puede solamente realizar una tarea a la
vez y a pesar de que un procesador, por ejemplo de
ocho núcleos tenga 16 hilos, este comportamiento
sigue siendo el mismo.
 Los hilos juegan un papel fundamental en la forma en
que esta misma información es procesada. Esta
tecnología está implementada en todos los CPU de
sobremesa actuales. En Intel lleva el nombre de
Hyper-Threading, y en AMD el de Simultaneous
MultiThreading (SMT), que no es otra cosa que la
implementación de un hilo virtual extra sobre cada
uno de los hilos que alimentan a sus núcleos
individuales dentro de estos componentes.
Hilos (threads) de un
Procesador
La forma en que se comportan los hilos es sencillamente
alimentando de instrucciones al CPU de manera cíclica en
cada una de sus vueltas de reloj. Cada procesador tendrá
que ir resolviendo las instrucciones que son recibidas a
través de estos canales y, finalmente, serán resueltas bajo la
prioridad que se le asigna mediante programación.
Las velocidades de reloj, así como el número de cores en los
CPU modernos, son suficientes para procesar instrucciones
muy velozmente, por ello muchas veces los hilos pueden ser
una restricción al performance que pueden entregar a pesar
de tener velocidades de reloj altísimas.
Multihilo vs multiprocesamiento
Taller #4:
Cada grupo hará una investigación en PowerPoint en la que marcarán las diferencias entre
multihilo y multiprocesamiento.
Bibliografía
Preguntas

También podría gustarte