5. El proceso será la actividad de
preparar la torta en sí, eso quiere
decir que el cocinero vaya
siguiendo los pasos de la receta,
agregando los ingredientes y
poniendo la torta en el horno
Procesos
6. En un momento dado, aún no
habiendo terminado de cocinar,
se acerca la hija del cocinero
llorando porque se cortó un dedo.
Procesos
7. Antes de ir a curarla, el cocinero
(que además es un científico
computacional) anota el punto de
la receta donde estaba (se guarda
el estado el proceso)
Procesos
8. Podemos decir que el procesador
conmuta de un proceso a otro de
mayor prioridad
Procesos
9. Luego de terminar de atender a
su hijita, lee de la memoria el
estado del proceso y continúa en
el mismo punto en el que lo había
dejado
Procesos
10. Un proceso es una instancia de un
programa en ejecución.
Una abstracción del Sistema
operativo, esencial en la
multiprogramación
Procesos: Definición
11. Varias instancias del mismo
programa corriendo al mismo
tiempo son procesos diferentes,
cada uno tiene su propio
Contador de programa, variables
y espacio en la memoria
Procesos: Principios
12. Cada proceso tiene su propia
máquina virtual y piensa que es el
único proceso en el sistema
En realidad el procesador conmuta
de uno a otro de manera muy
rápida
Procesos: Principios
14. La velocidad a la que se ejecuta un
proceso no es siempre igual, puede
variar de una instancia a otra
En los sistemas de Tiempo Real
hay que tomar medidas
Procesos: Principios
15. Los Procesos deben ser creados por
el SO en algún momento.
Los SO básicos tienen todos sus
procesos presentes todo el tiempo
Los SO grandes deben crearlos y
terminarlos en algún momento
Procesos: Creación
16. Existen cuatro eventos que
provocan la creación de procesos:
El Arranque del Sistema
Un proceso que llama a otro
Una petición del usuario
Un trabajo por lotes
Procesos: Creación
17. En el Arranque del Sistema:
Se crean los procesos en primer plano
(interactúan con el usuario)
Se crean los demonios (segundo
plano) con funciones específicas
Procesos: Creación
18. En los sistemas Unix-like (como
GNU/Linux) existe una llamada al
sistema denominada fork()
Procesos: Creación
19. Cuando un proceso padre quiere
crear un proceso hijo ejecuta una
llamada al sistema
fork()
Crea una copia exacta del padre
Procesos: Creación
20. Tan exacta que comparten el
espacio de memoria, las variables,
los registros y los archivos
Procesos: Creación
21. Luego se separan, utilizando otra
llamada al sistema
execve()
El hijo reclama para sí, un espacio
en la memoria, registros propios e
identificadores de archivos
Procesos: Creación
22. Puede darse por
Salida normal (voluntaria)
Salida por error (voluntaria)
Error Fatal (involuntaria)
Eliminado por otro proceso
(involuntaria)
Procesos: Terminación
23. La mayoría de los procesos
termina de manera normal
utilizando una llamada al sistema:
UNIX y Linux: exit
Windows: ExitProcess
Procesos: Terminación
24. Un error fatal puede ser tratar de
dividir por cero o hacer referencia
a una dirección de memoria que no
existe
Procesos: Terminación
25. Para terminar un proceso debe
tener permisos específicos
Se utilizan también llamadas al
sistema:
Unix/Linux: kill
Windows: TerminateProcess
Procesos: Terminación
26. En otros sistemas (no en Windows
ni en UNIX) cuando un proceso
padre termina, se eliminan todos
sus hijos
Procesos: Terminación
27. En UNIX cuando se inicia el
sistema se crea un proceso que es
padre de todos:
init
A partir de él se crean todos los
demás
Procesos: Jerarquía
28. Como los procesos hijos de init a
su vez van creando procesos hijos,
se crea una estructura en forma de
arbol
Procesos: Jerarquía
30. En Windows no hay un concepto
de jerarquía de procesos
Todos los procesos son iguales
Procesos: Jerarquía
31. La CPU solo puede ejecutar un
proceso a la vez
Eso quiere decir que puede haber
procesos que estén esperando para
ser ejecutados y uno usando la
CPU
Procesos: Estados
32. Hay 3 estados básicos
1. En Ejecución
2. Listo
3. Bloqueado
Procesos: Estados
33. En Ejecución
Está utilizando la CPU en este
momento
Ningún otro proceso puede estar
ejecutándose en ese mismo momento
Procesos: Estados
34. Listo
El proceso está en condiciones de
utilizar la CPU en cuanto se le dé
entrada
No puede hacerlo porque hay otro
proceso usando la CPU
Debe esperar a que la CPU se libere
Procesos: Estados
35. Bloqueado
No puede ejecutarse aunque quisiera
hasta que se cumpla determinada
condición externa
por ejemplo: está esperando a que se
cargue un archivo de disco
Procesos: Estados
37. Procesos: Estados
1. El proceso se bloquea para recibir E/S
2. El planificador selecciona otro
proceso
3. El planificador selecciona este
proceso
4. La E/S ya está disponible
38. Procesos: Transiciones
1. De en Ejecución a Bloqueado
El SO descubre que el proceso no
puede seguir ejecutándose porque le
está faltando algún dato
El proceso se pone en pausa (pulse
una tecla para continuar)
39. Procesos: Transiciones
1. De en Ejecución a Listo
El SO cree que el proceso ya se ha
ejecutado suficiente tiempo
Guarda el estado del proceso y lo
envía a Listo para ejecutarse
40. Procesos: Transiciones
1. De Listo a en Ejecución
Vuelve a tocarle en suerte continuar
ejecutándose, desplazando al
anterior ocupante de la CPU
Retoma desde el punto en que había
quedado
41. Procesos: Transiciones
1. De Bloqueado a Listo
Cuando lo que estaba esperando
llega, el proceso vuelve a estar listo
para ejecutarse, pero debe ponerse
en la fila a esperar su turno
42. Procesos: Hilos
Se los conoce como micro-
procesos
Son procesos dentro de otro
Varios hilos de procesamiento en
un mismo espacio de direcciones
43. Procesos: Hilos
Más ligeros y fáciles de crear y
destruir que los procesos
Muy útiles en sistemas con varias
CPU
44. Procesos: Hilos
Por ejemplo cuando estamos
escribiendo un documento largo,
el procesador de texto guarda
cada cierto tiempo el trabajo.
Eso no requiere de un proceso
nuevo, puede utilizarse un hilo