Está en la página 1de 23

TEMA: 2

DESCRIPCION Y CONTROL DE
PROCESOS DEL S.O
CONCEPTO DE PROCESOS
Un proceso es un programa en ejecución, un programa
ejecutable es un conjunto de instrucciones y datos almacenados en un
fichero. Cuando lo que tiene ese programa se carga en la memoria y se
pone en ejecución, se convierte en un proceso.
• Un proceso está formado por:
Un programa ejecutable.
Datos que necesita el SO para ejecutar el programa.
CONCEPTO DE PROCESOS
El Bloque de control del proceso PCB (Process Control Block) es un
registro especial donde el sistema operativo agrupa toda la información
que necesita conocer respecto a un proceso particular. Cada vez que se
crea un proceso el sistema operativo crea el PCB correspondiente para
que sirva como descripción en tiempo de ejecución durante toda la vida
del proceso.
Cuando el proceso termina, su PCB es borrado y el registro puede
ser utilizado para otros procesos.
Un proceso resulta conocido para el sistema operativo y por tanto
elegible para competir por los recursos del sistema sólo cuando existe un
BCP activo asociado a él.
ESTADOS DE UN PROCESO
CAMBIO DE CONTEXTO
Llamadas al Sistema

• Es la forma en la que se comunican los programas de usuario con el SO en


tiempo de ejecución.
• Son solicitudes al SO de petición de servicio.

• Ejemplos de llamadas al sistema:


Solicitudes de E/S.
Gestión de procesos.
Gestión de memoria.

• Se implementan a través de una trampa o “interrupción”.


Modelo de cinco estados de los procesos

• El modelo de cinco estados trata de representar las actividades que el SO


lleva a cabo sobre los procesos y estas actividades son:
Creación
Terminación
Multiprogramación

• Para ello hace uso de cinco estados:


Ejecutándose
Preparado (listo para ejecutarse)
Bloqueado
Nuevo
Finalizado
Modulo de cinco estados de los procesos

Nuevo Finalizado
Desasignación de CPU

Admitido El proceso terminó

Preparado Ejecutándose

Planificación

Fin de E/S Espera por


o suceso E/S o suceso
Bloqueado
Transiciones entre estados
• Nuevo → Preparado. El PCB está creado y el programa está disponible en memoria.
• Ejecutándose → Finalizado. El proceso finaliza normalmente o es abortado por
el SO a causa de un error no recuperable.
• Preparado→ Ejecutándose. El SO (planificador CPU) selecciona un proceso para
que se ejecute en el procesador.
• Ejecutándose → Bloqueado. El proceso solicita algo al SO por lo que debe esperar.
• Ejecutándose → Preparado. Un proceso ha alcanzado el máximo tiempo de
ejecución ininterrumpida.
• Bloqueado → Preparado. Se produce el evento por el cual el SO bloqueó al
proceso.
• Preparado (o Bloqueado) → Finalizado. Terminación de un proceso por parte
de otro.
PLANIFICACION DE PROCESOS

Los sistemas operativos cuentan con un componente


llamado planificador, que se encarga de decidir cuál
de los procesos hará uso del procesador. La toma de
esta decisión, así como el tiempo de ejecución del
proceso, estará dada por un algoritmo, denominado
Algoritmo de Planificación.
OBJETIVOS DEL PLANIFICADOR DE PROCESOS
En los sistemas operativos, el planificador de procesos para la
realización de su tarea tiene los siguientes objetivos:
• Equidad: Todos los procesos deben ser atendidos.
• Eficacia: El procesador debe estar ocupado el 100% del tiempo.
• Tiempo de respuesta: El tiempo empleado en dar respuesta a las
solicitudes del usuario debe ser el menor posible.
• Tiempo de regreso: Reducir al mínimo el tiempo de espera de los
resultados esperados por los usuarios por lotes.
• Rendimiento: Maximizar el número de tareas que se procesan por
cada hora.
ALGORITMOS DE PLANIFICACION DE PROCESOS
FCFS(FIFO)
Primero en llegar, primero en ser servido
Este algoritmo es muy sencillo y simple, pero también el que menos
rendimiento ofrece, básicamente en este algoritmo el primer proceso
que llega se ejecuta y una vez terminado se ejecuta el siguiente.
SJF (SHORTEST JOB FIRST).
El trabajo más corto primero
Este algoritmo siempre prioriza los procesos más cortos primero
independientemente de su llegada y en caso de que los procesos sean
iguales utilizara el método FIFO anterior, es decir, el orden según
entrada. Este sistema tiene el riesgo de poner siempre al final de la cola
los procesos más largos por lo que nunca se ejecutarán, esto se conoce
como inanición.
SRTF (SHORTEST REMAINING TIME FIRST).
El tiempo restante más corto primero
Añadiendo la expulsión de procesos al algoritmo SJF obtenemos SRTF,
éste será capaz de expulsar un proceso largo en ejecución para ejecutar
otros más cortos. El problema que puede surgir es que un proceso
largo puede llegar a expulsarse muchas veces y nunca terminar debido
a la ejecución de otros más cortos.
RR(ROUND ROBIN)
Este algoritmo de planificación es uno de los más complejos y difíciles
de implementar, asigna a cada proceso un tiempo equitativo tratando a
todos los procesos por igual y con la misma prioridad. Este algoritmo es
circular, volviendo siempre al primer proceso una vez terminado con el
último, para controlar este método a cada proceso se le asigna un
intervalo de tiempo llamado quantum.
Comparativa
FCFS (FIFO) SJF SRTF RR

TIEMPO DE 2.75 1.5 2.75 0.5


ESPERA
TIEMPO DE 3 3 2.5 4.25
RETORNO

Esta tabla comparativa de los mismos procesos llevados a


cabo con los cuatro métodos anteriores nos muestra los diferentes
tiempos promedio que han necesitado para realizarlos. Por lo que las
conclusiones extraídas se explican como sigue:
Comparativa
1.- Podemos deducir que el algoritmo SJF es el que tiene mejor promedio,
ya que tiene un buen tiempo de espera y tiempo de retorno. FCFS y SRTF tienen
unos tiempos de espera similares, pero SFJ sigue siendo mejor en este aspecto.

2.- por otra parte vemos que Round Robin tiene el mejor tiempo de espera para
los procesos con muchísima diferencia, pero por el contrario su tiempo de retorno es el
más alto debido a la expulsión de procesos cuando se termina el quantum.

Por lo tanto visto todo lo anterior podemos concluir que es muy difícil
decidir que algoritmo es mejor que el otro y todo dependerá de la situación en
la que estemos, siendo muy útil un estudio de lo que necesitamos para utilizar
un método u otro, o incluso combinarlos según nuestras necesidades.
Planificación en UNIX
• Usa múltiples colas realimentadas
• De acuerdo a tipo de proceso
• procesos de tiempo compartido
• procesos de sistema
• Procesos de tiempo real
• Planificación por prioridad entre distintas colas y RR dentro de cada cola
• Procesos con alta prioridad siempre se ejecutan primero
• Procesos con la misma prioridad se planifican con RR
• Procesos cambian prioridad dinámicamente
• Se incrementa si proceso hace E/S antes de terminar quantum
• Se decrementa si el proceso usa todo su quantum
• Objetivo
• Premiar procesos interactivos
• Típicamente usan CPU por periodos pequeños de tiempo
Planificador Linux
• Soporta:
• una CPU
• SMP (Simultaneous Multi-Processors)
• Multiprocesadores en un chip o no, cada uno con caches y compartiendo
Memoria Principal
• SMT (Simultaneous Multi-Threading)
• Procesador con recursos adicionales para soportar hebras. Sistema con
Memoria principal compartida
• NUMA (Non- Uniform Memory Access)
• Único sistema usando mas de un nodo (una máquina con un procesador o un
multiprocesador es decir con propia CPU o set de CPUs y memorias)
RESUMEN
• Planificación de procesos puede influenciar fuertemente el rendimiento

• Generalmente, múltiples objetivos tienen conflictos

• Existen diversos algoritmos puros, pero normalmente los sistemas


implementan lo bueno de varios
MUCHAS GRACIAS
INTERRUPCIONES

• Una interrupción es el rompimiento en la


secuencia de un programa para ejecutar un
programa especial llamando una rutina de
servicio cuya característica principal es que al
finalizar regresa al punto donde se
interrumpió el programa.
CLASES DE INTERRUPCIONES
• Interrupciones por software: Son aquellas programadas por el
usuario, es decir, el usuario decide cuándo y dónde ejecutarlas.
• Interrupciones por hardware: Son aquellas provocadas por
dispositivos externos al procesador, no son programados, esto es,
que pueden ocurrir en cualquier momento en el programa.
Existen dos tipos:
• Interrupciones por hardware mascarables. Aquellas en las que el usuario
decide si quiere o no ser interrumpido.
• Interrupciones por hardware no mascarables (NMI). Aquellas que siempre
interrumpen al programa.
VOLVER

También podría gustarte