1. {{
PROCESOS IPROCESOS I
Sistemas Operativos IISistemas Operativos II
Prof. Pablo MacónProf. Pablo Macón
profemacon@gmail.comprofemacon@gmail.com
http://pablomacon.wix.com/homehttp://pablomacon.wix.com/home
2. Para entender qué es unPara entender qué es un
proceso y tratar de dar unaproceso y tratar de dar una
definición, veamos primerodefinición, veamos primero
esta alegoría:esta alegoría:
ProcesosProcesos
3. Un “científico computacional”Un “científico computacional”
se propone a cocinar una tortase propone a cocinar una torta
Tiene laTiene la recetareceta, los, los
ingredientesingredientes y unay una cocinacocina aptaapta
para la tareapara la tarea
ProcesosProcesos
4. CocineroCocinero ProcesadorProcesador
RecetaReceta Programa (algoritmo)Programa (algoritmo)
IngredientesIngredientes Datos de entradaDatos de entrada
ProcesosProcesos
5. ElEl procesoproceso será la actividad deserá la actividad de
preparar la torta en sí, eso quierepreparar la torta en sí, eso quiere
decir que el cocinero vayadecir que el cocinero vaya
siguiendo los pasos de la receta,siguiendo los pasos de la receta,
agregando los ingredientes yagregando los ingredientes y
poniendo la torta en el hornoponiendo la torta en el horno
ProcesosProcesos
6. En un momento dado, aún noEn un momento dado, aún no
habiendo terminado de cocinar,habiendo terminado de cocinar,
se acerca la hija del cocinerose acerca la hija del cocinero
llorando porque se cortó un dedo.llorando porque se cortó un dedo.
ProcesosProcesos
7. Antes de ir a curarla, el cocineroAntes de ir a curarla, el cocinero
(que además es un científico(que además es un científico
computacional) anota el punto decomputacional) anota el punto de
la receta donde estaba (la receta donde estaba (se guardase guarda
el estado el procesoel estado el proceso))
ProcesosProcesos
8. Podemos decir que el procesadorPodemos decir que el procesador
conmuta de un proceso a otro deconmuta de un proceso a otro de
mayor prioridadmayor prioridad
ProcesosProcesos
9. Luego de terminar de atender aLuego de terminar de atender a
su hijita, lee de la memoria elsu hijita, lee de la memoria el
estado del proceso y continúa enestado del proceso y continúa en
elel mismo puntomismo punto en el que lo habíaen el que lo había
dejadodejado
ProcesosProcesos
10. Un proceso es una instancia de unUn proceso es una instancia de un
programa en ejecución.programa en ejecución.
Una abstracción del SistemaUna abstracción del Sistema
operativo, esencial en laoperativo, esencial en la
multiprogramaciónmultiprogramación
Procesos: DefiniciónProcesos: Definición
11. Varias instancias del mismoVarias instancias del mismo
programa corriendo al mismoprograma corriendo al mismo
tiempo son procesos diferentes,tiempo son procesos diferentes,
cada uno tiene su propiocada uno tiene su propio
contador de programa, variablescontador de programa, variables
y espacio en la memoriay espacio en la memoria
Procesos: PrincipiosProcesos: Principios
12. Cada proceso tiene su propiaCada proceso tiene su propia
máquina virtual y piensa que es elmáquina virtual y piensa que es el
únicoúnico proceso en el sistemaproceso en el sistema
En realidadEn realidad el procesador conmutael procesador conmuta
de uno a otro de manera muyde uno a otro de manera muy
rápidarápida
Procesos: PrincipiosProcesos: Principios
14. LaLa velocidad a la que se ejecuta unvelocidad a la que se ejecuta un
proceso no es siempre igualproceso no es siempre igual, puede, puede
variar de una instancia a otravariar de una instancia a otra
En los sistemas de Tiempo Real hayEn los sistemas de Tiempo Real hay
que tomar medidas para que noque tomar medidas para que no
varíe mucho (o nada)varíe mucho (o nada)
Procesos: PrincipiosProcesos: Principios
15. Los Procesos deben serLos Procesos deben ser creados porcreados por
el SOel SO en algún momento.en algún momento.
Los SO básicos tienen todos susLos SO básicos tienen todos sus
procesos presentes todo el tiempoprocesos presentes todo el tiempo
Los SO grandes debenLos SO grandes deben crearloscrearlos yy
terminarlosterminarlos en algún momentoen algún momento
Procesos: CreaciónProcesos: Creación
16. Existen cuatroExisten cuatro eventos queeventos que
provocan la creación de procesosprovocan la creación de procesos::
El Arranque del SistemaEl Arranque del Sistema
Un proceso que llama a otroUn proceso que llama a otro
Una petición del usuarioUna petición del usuario
Un trabajo por lotesUn trabajo por lotes
Procesos: CreaciónProcesos: Creación
17. En el Arranque del Sistema:En el Arranque del Sistema:
Se crean los procesos enSe crean los procesos en primer planoprimer plano
(interactúan con el usuario)(interactúan con el usuario)
Se crean losSe crean los demoniosdemonios (segundo(segundo
plano) con funciones específicasplano) con funciones específicas
Procesos: CreaciónProcesos: Creación
18. En los sistemas Unix-like (comoEn los sistemas Unix-like (como
GNU/Linux) existe una llamada alGNU/Linux) existe una llamada al
sistema denominadasistema denominada fork()fork()
Procesos: CreaciónProcesos: Creación
19. Cuando un proceso padre quiereCuando un proceso padre quiere
crear un proceso hijo ejecuta unacrear un proceso hijo ejecuta una
llamada al sistemallamada al sistema
fork()fork()
Crea una copia exacta del padreCrea una copia exacta del padre
Procesos: CreaciónProcesos: Creación
20. TanTan exactaexacta que comparten elque comparten el
espacio de memoria, las variables,espacio de memoria, las variables,
los registros y los archivoslos registros y los archivos
Procesos: CreaciónProcesos: Creación
21. Luego se separan, utilizando otraLuego se separan, utilizando otra
llamada al sistemallamada al sistema
execve()execve()
ElEl hijo reclamahijo reclama para sí, un espaciopara sí, un espacio
en la memoria, registros propios een la memoria, registros propios e
identificadores de archivosidentificadores de archivos
Procesos: CreaciónProcesos: Creación
22. Puede darse porPuede darse por
SalidaSalida normalnormal (voluntaria)(voluntaria)
Salida porSalida por errorerror (voluntaria)(voluntaria)
ErrorError FatalFatal (involuntaria)(involuntaria)
EliminadoEliminado por otro procesopor otro proceso
(involuntaria)(involuntaria)
Procesos: TerminaciónProcesos: Terminación
23. La mayoría de los procesosLa mayoría de los procesos
termina de manera normaltermina de manera normal
utilizando una llamada al sistema:utilizando una llamada al sistema:
UNIX y Linux:UNIX y Linux: exitexit
Windows:Windows: ExitProcessExitProcess
Procesos: TerminaciónProcesos: Terminación
24. UnUn error fatalerror fatal puede ser tratar depuede ser tratar de
dividir por cero o hacer referenciadividir por cero o hacer referencia
a una dirección de memoria que noa una dirección de memoria que no
existeexiste
Procesos: TerminaciónProcesos: Terminación
25. Para terminar un proceso debePara terminar un proceso debe
tener permisos específicostener permisos específicos
Se utilizan también llamadas alSe utilizan también llamadas al
sistema:sistema:
Unix/Linux:Unix/Linux: killkill
Windows:Windows: TerminateProcessTerminateProcess
Procesos: TerminaciónProcesos: Terminación
26. En otros sistemas (no en WindowsEn otros sistemas (no en Windows
ni en UNIX) cuando unni en UNIX) cuando un procesoproceso
padre terminapadre termina, se eliminan todos, se eliminan todos
sus hijossus hijos
Procesos: TerminaciónProcesos: Terminación
27. En UNIX cuando se inicia elEn UNIX cuando se inicia el
sistema se crea un proceso que essistema se crea un proceso que es
padre de todos:padre de todos:
initinit
A partir de él se crean todos losA partir de él se crean todos los
demásdemás
Procesos: JerarquíaProcesos: Jerarquía
28. Como los procesos hijos de init aComo los procesos hijos de init a
su vez van creando procesos hijos,su vez van creando procesos hijos,
se crea unase crea una estructuraestructura en forma deen forma de
arbolarbol
Procesos: JerarquíaProcesos: Jerarquía
30. En Windows no hay un conceptoEn Windows no hay un concepto
de jerarquía de procesosde jerarquía de procesos
Todos los procesos son igualesTodos los procesos son iguales
Procesos: JerarquíaProcesos: Jerarquía
31. La CPU solo puede ejecutar unLa CPU solo puede ejecutar un
proceso a la vezproceso a la vez
Eso quiere decir que puede haberEso quiere decir que puede haber
procesos que estén esperando paraprocesos que estén esperando para
ser ejecutados y uno usando laser ejecutados y uno usando la
CPUCPU
Procesos: EstadosProcesos: Estados
32. Hay 3 estados básicosHay 3 estados básicos
1.1. En EjecuciónEn Ejecución
2.2. ListoListo
3.3. BloqueadoBloqueado
Procesos: EstadosProcesos: Estados
33. En EjecuciónEn Ejecución
Está utilizando la CPU en esteEstá utilizando la CPU en este
momentomomento
Ningún otro proceso puede estarNingún otro proceso puede estar
ejecutándose en ese mismo momentoejecutándose en ese mismo momento
Procesos: EstadosProcesos: Estados
34. ListoListo
El proceso está en condiciones deEl proceso está en condiciones de
utilizar la CPU en cuanto se le déutilizar la CPU en cuanto se le dé
entradaentrada
No puede hacerloNo puede hacerlo porque hay otroporque hay otro
proceso usando la CPUproceso usando la CPU
DebeDebe esperaresperar a que la CPU se liberea que la CPU se libere
Procesos: EstadosProcesos: Estados
35. BloqueadoBloqueado
No puede ejecutarseNo puede ejecutarse aunque quisieraaunque quisiera
hasta que se cumpla determinadahasta que se cumpla determinada
condición externacondición externa
por ejemplo:por ejemplo: está esperando a que seestá esperando a que se
cargue un archivo de discocargue un archivo de disco
Procesos: EstadosProcesos: Estados
37. Procesos: EstadosProcesos: Estados
1.1. El proceso seEl proceso se bloqueabloquea para recibirpara recibir
E/SE/S
2.2. El planificador seleccionaEl planificador selecciona otrootro
procesoproceso
3.3. El planificador seleccionaEl planificador selecciona esteeste
procesoproceso
4.4. La E/S ya estáLa E/S ya está disponibledisponible
38. Procesos: TransicionesProcesos: Transiciones
1.1. De en Ejecución a BloqueadoDe en Ejecución a Bloqueado
El SO descubre que elEl SO descubre que el proceso noproceso no
puede seguir ejecutándosepuede seguir ejecutándose porque leporque le
está faltando algún datoestá faltando algún dato
El proceso se pone enEl proceso se pone en pausapausa (pulse(pulse
una tecla para continuar)una tecla para continuar)
39. Procesos: TransicionesProcesos: Transiciones
1.1. De en Ejecución a ListoDe en Ejecución a Listo
El SO cree que el proceso ya se haEl SO cree que el proceso ya se ha
ejecutadoejecutado suficiente tiemposuficiente tiempo
GuardaGuarda el estado del proceso y loel estado del proceso y lo
envía a Listo para ejecutarseenvía a Listo para ejecutarse
40. Procesos: TransicionesProcesos: Transiciones
1.1. De Listo a en EjecuciónDe Listo a en Ejecución
Vuelve a tocarle en suerteVuelve a tocarle en suerte continuarcontinuar
ejecutándoseejecutándose, desplazando al, desplazando al
anterior ocupante de la CPUanterior ocupante de la CPU
RetomaRetoma desde el punto en que habíadesde el punto en que había
quedadoquedado
41. Procesos: TransicionesProcesos: Transiciones
1.1. De Bloqueado a ListoDe Bloqueado a Listo
Cuando lo que estaba esperandoCuando lo que estaba esperando
llega, el proceso vuelve allega, el proceso vuelve a estar listoestar listo
para ejecutarse, pero debe ponersepara ejecutarse, pero debe ponerse
en la fila aen la fila a esperar su turnoesperar su turno
42. Procesos: HilosProcesos: Hilos
Se los conoce comoSe los conoce como micro-micro-
procesosprocesos
Son procesosSon procesos dentrodentro de otrode otro
Varios hilos de procesamiento enVarios hilos de procesamiento en
unun mismo espacio de direccionesmismo espacio de direcciones
43. Procesos: HilosProcesos: Hilos
MásMás ligerosligeros y fáciles de crear yy fáciles de crear y
destruir que los procesosdestruir que los procesos
MuyMuy útilesútiles en sistemas con variasen sistemas con varias
CPUCPU
44. Procesos: HilosProcesos: Hilos
Por ejemplo cuando estamosPor ejemplo cuando estamos
escribiendo un documento largo,escribiendo un documento largo,
el procesador de texto guardael procesador de texto guarda
cada cierto tiempo el trabajo.cada cierto tiempo el trabajo.
Eso no requiere de un procesoEso no requiere de un proceso
nuevo, puede utilizarse un hilonuevo, puede utilizarse un hilo