es un programa en ejecución, incluyendo el
valor del program counter, los registros y
las variables.
3. Estados
Nuevo: Cuando se
crea el proceso
Ejecutando: tiene asignado un
procesador y se ejecutan las
instrucciones
Bloqueado: en espera de un evento
(pedido o señal de E/S )
Listo: esta listo para ejecutar y solo
necesita del recurso del procesador
Finalizado: Ejecución finalizada
4. PCB: Todo proceso se describe mediante su estado,
nombre, recursos asignados, información contable, etc.
4.1 Estado CPU: El contenido de esta
estructura estará indefinido toda vez
que el proceso está en estado
ejecutando
4.2 Procesador: Contendrá el número
de CPU que está ejecutando al
proceso
4.4 Estado del proceso: ejecutando,
listo, bloqueado, etc.
4.3 Memoria: Describe el espacio virtual y/o real de
direccionamiento según la arquitectura del sistema.
Contendrá las reglas de protección de memoria así
como cual es compartida, etc..
5. Cambio de contexto
Salvar el estado del proceso
Cambiar el estado del proceso nuevo
a ejecutando.
Cambiar el estado del proceso que
estaba ejecutando al que corresponda.
Cargar el estado del proceso asignado a la
CPU a partir de su PCB.
2. Dificultades del procesamiento concurrente
al S.O
Dos o más procesos quieren llevar a
cabo una determinada tarea
concurrentemente
Dos o más procesos quieren llevar a cabo una
determinada tarea concurrentemente
6. Ventajas
6.1 desventajas
Dificulta la programación: un mal paso en
la aplicación de un hilo, puede romper
todo un proceso.
Compartir memoria logra
comunicar o sincronizar sin
necesidad de acceder al kernel.
Economía: mas liviano para
el sistema operativo crear un
hilo que crear un nuevo
proceso.
7. Acciones del kernel
la conmutación se realiza al sistema operativo,
como por ejemplo mediante una llamada al sistema, la cual es más lenta,
pero si un hilo se bloquea el scheduler seleccionara un hilo del mismo
proceso o de algún otro proceso. El kernel debe mantener una zona de
memoria por hilo de ejecución, conteniendo registros del procesador, etc.
Algunos sistemas soportan ambos tipos de alimentación.
8.Tipos de hilos
Hilos a nivel de usuario (user threads): Son
implementados en alguna librería de usuario.
La librería deberá proveer soporte para crear,
planificar y administrar los threads sin
soporte del sistema operativo. El sistema
operativo solo reconoce un hilo de ejecución
en el proceso.
Hilos a nivel del núcleo (kernel threads): El sistema es
quien provee la creación, planificación y
administración de los threads. El sistema reconoce
tantos hilos de ejecución como threads se hayan
creado
9. Apropiativo y no Apropiativo
Preemptive (apropiativo - Puede
quitarse el procesador al proceso
actual - Importante (necesaria) para
procesos interactivos - Si un proceso
se ejecuta por más de un tiempo
predefinido, es suspendido - Requiere
un clock interrupt para marcar los
intervalos de tiempo con el fin de que
el scheduler recupere el control de la
CPU
Non-Preemptive (no apropiativo,
cooperativo) - Los procesos se ejecutan
hasta su finalización o hasta que
voluntariamente (por bloqueo
esperando E/S) entrega el control de la
CPU - Problema: Procesos “poco
importantes” pueden bloquear a los
“importantes”
10. Ventajas Manejo de tiempo
en sistema de cola multinivel:
los procesos son organizados
y no se afectara debido a la
concurrencia que los mismos
puedan ocasionar