SlideShare une entreprise Scribd logo
1  sur  50
Procesos e Hilos Estamos a punto de emprender un estudio detallado de cómo los sistemas operativos son diseñados y construidos. Bienvenidos!!
Procesos Consideremos un servidor a donde convergen las peticiones de páginas Web provenientes de todo lado. Cuando llega una petición el servidor verifica si la página está en la caché. De ser así devuelve la página. Si no está en la caché inicia una petición al disco para obtenerla. (dada la velocidad de la CPU esta petición tarda eternidades) Mientras la petición se ejecuta muchas peticiones concurrentes pueden ejecutarse, sobre el mismo disco u otros. Lo importante es Modelar y controlar la Concurrencia
Procesos En una PC: Mientras arranca el Sistema Operativo, en secreto se ejecutan: Correo electrónico. Actividades que comprueban la disponibilidad de nuevas versiones de virus….. Mientras navega en la Web: Quema CDs Imprime archivos
Procesos En cualquier sistema de multiprogramación, la CPU conmuta de un  proceso a otro con rapidez, dando la apariencia de paralelismo  o pseudoparalelismo.
El modelo del proceso
El modelo del proceso Todo el software ejecutable en la computadora, en el que se incluye el sistema operativo se organiza en varios procesos secuenciales. Un proceso es una instancia de un programa en ejecución, incluyendo los registros , contador de programa y variables. En concepto cada proceso tiene su CPU virtual, aunque la CPU real conmuta de un proceso a otro.
El modelo del proceso (a) Esta figura muestra una computadora multiprogramando 4 programas en memoria.
El modelo del proceso (b) Lista 4 procesos cada una con su propio flujo de control, con su contador de programa lógico y cada uno ejecutándose en forma independiente. Desde luego que solo hay un contador de programa físico por lo que cuando se ejecuta cada proceso se carga su contador de programa lógico en el contador de programa real.
El modelo del proceso (c) En la figura podemos ver que en un intervalo suficientemente largo todos los procesos han progresado, pero en cualquier momento dado solo hay un proceso en ejecución.
El modelo de proceso La CPU conmuta rápidamente entre un proceso y otro, la velocidad a la que el proceso ejecuta sus cálculos no es reproducible, aunque se ejecuten los mismos procesos de nuevo.
Diferencia entre proceso y programa. Instrucciones para hacer el pastel . (programa) El hacer el pastel siguiendo las instrucciones es el proceso. Los ingredientes son los datos.
Procesos – programas - prioridad Si al estar haciendo el pastel , llega su hijo llorando por que le picó una abeja, el cocinero deja de hacer el pastel y abre un libro de primeros auxilios, en este momento pasó a un proceso de mayor prioridad, cuando termine  volverá  y continuará   con el anterior proceso.
CREACIÓN DE UN PROCESO Los Sistemas Operativos necesitan cierta forma  de crear y terminar procesos, según sea necesario durante la operación: Hay 4 eventos principales  que provocan la creación de procesos: El arranque del sistema. La ejecución, desde un proceso, de una llamada al sistema para creación de procesos. Una petición de Usuario para crear un proceso. El inicio de un trabajo por lotes.
CREACIÓN DE UN PROCESO Arranque del sistema (1): Cuando arranca el SO se crean varios procesos,: En primer plano: Es decir procesos que interactúan con los usuarios (humanos) y realizan trabajo para ellos.
CREACIÓN DE UN PROCESO Arranque del sistema: Cuando arranca el SO se crean varios procesos (2): En segundo Plano: son los que  no están asociados con usuarios sino con funciones específicas Ejemplo: manejar actividades como correo electrónico, para avisar que llega un correo entrante, aceptar peticiones entrantes de  páginas Web, noticias, impresiones etc. Estos se conocen como demonios (daemons).   Los sistemas grandes tiene   docenas de ellos. Verlos en Administrador de tareas
CREACIÓN DE UN PROCESO La ejecución desde un proceso en ejecución: Un proceso a menudo llama al sistema para crear uno o más procesos, para que le ayuden a realizar su trabajo. Ejemplo para obtener una gran cantidad de datos desde la red para su posterior  procesamiento: Se creará un proceso para obtener datos  y colocarlos en un buffer compartido, Mientras un segundo proceso remueve los datos del buffer y los procesa. En un multiprocesador esto se realiza con mayor rapidez.
CREACIÓN DE UN PROCESO Petición de un usuario para crear un proceso: El usuario puede crear un proceso con un doble clic en un ícono.
CREACIÓN DE UN PROCESO Procesamiento por lotes: Aplica a mainframes grandes. Los usuarios pueden enviar trabajos de procesamiento por lotes al sistema, (posiblemente en forma remota). El sistema operativo decide que tiene los recursos para ejecutar otro trabajo, crea el proceso y ejecuta el siguiente de la cola.
Terminación de procesos Una vez que se crea el proceso, comienza a ejecutarse y realiza el trabajo al que está destinado. Las condiciones de término son: Salida normal (voluntaria). Salida por error (voluntaria). Error fatal (involuntaria). Eliminado por otro proceso (involuntaria).
Terminación de procesos Salida Normal. ExitProcess, en windows.  Exit en Unix. Procesadores de palabras, exploradores y otros, todos tienen un ícono para indicar que todos los archivos se cierren y termine.
Terminación de procesos Salida por Error. Por ejemplo si el usuario escribe el comando para ejecutar el programa y no existe dicho archivo.
Terminación de procesos Error Fatal: Ejecución de una instrucción ilegal, hace referencia a una dirección de memoria que no existe. División por 0. Algunos programas permiten tomar control de ese ese error y  no terminar el proceso.
Terminación de procesos Eliminado por otro proceso: Un proceso puede solicitar al SO que elimine otros procesos. Los procesos deberían tener la autorización necesaria, para realizar la eliminación. Cuando un proceso termina, todos los procesos creados se eliminan de inmediato también.
Jerarquías de Procesos En algunos sistemas, cuando un proceso crea a otro, el proceso padre y el proceso hijo continúan asociados. El proceso hijo puede crear por si mismo más procesos, formando una jerarquía de procesos.
Jerarquías de Procesos Unix tiene el concepto de jerarquía de procesos. Un proceso nunca deshereda a otro.
Jerarquías de Procesos Windows  no tiene el concepto de jerarquía de procesos. Todos los procesos son iguales. Una jerarquía de procesos, se simula, cuando se crea un proceso el padre recibe un indicador especial, un token (llamado manejador) que puede  utilizar para controlar al hijo. Tiene la libertad de pasar ese indicador  a otros procesos, con lo cual invalida  la Jerarquía.  (deshereda)
Estados de un proceso Aunque cada proceso, es una entidad independiente, con su propio contador de programa y estado interno, a menudo los procesos necesitan interactuar con otros.  Un proceso  puede generar otra salida que otro proceso utiliza como entrada.
Estados de un proceso Cuando un proceso se bloquea, lo hace debido a que por lógica no puede continuar, comúnmente porque está esperando una entrada, que todavía no está disponible. En este caso la suspensión es inherente al problema.
Estados de un proceso También es posible que un proceso, que esté listo en concepto y pueda ejecutarse, se detenga debido a que el SO decidió asignar la CPU a otro proceso por cierto tiempo. En este segundo caso es un tecnicismo del sistema, no hay suficientes  CPU como para otorgar a cada proceso un procesador privado.
Estados de un proceso Los tres estados en los que se puede encontrar un proceso son: En ejecución (usando la CPU en ese instante) Listo (ejecutable, se detuvo temporalmente para dejar que se ejecute otro proceso)  No hay una CPU para él. Bloqueado (no puede ejecutarse sino hasta que ocurra cierto evento externo). No puede ejecutarse aunque  haya una CPU disponible.
Estados de un proceso Hay cuatro transiciones disponibles entre estos tres estados. Transición 1. ocurre cuando el SO descubre que el proceso  no puede continuar.  En algunos sistemas el proceso ejecuta una llamada al sistema como Pause. En otros como Unix solo se bloquean automáticamente.
Estados de un proceso Transiciones 2 y 3. son producidas por el planificador de procesos, una parte del SO, sin que el proceso sepa siquiera acerca de ellas. La transición 2 ocurre cuando el planificador, decide que el proceso en ejecución se ha ejecutado el tiempo suficiente y es momento de dejar que otro proceso tenga parte del tiempo de la CPU. La transición 3 ocurre cuando todos los demás procesos han tenido su parte del tiempo de la CPU y es momento de que el primer proceso  obtenga la CPU para ejecutarse de nuevo.
Estados de un proceso Transición 4.  ocurre cuando se produce el evento externo por el que un proceso estaba esperando, como la llegada de ciertos datos de entrada. Si no hay otro proceso en ejecución en ese instante se activa la transición 3 y el proceso empieza a ejecutarse. Caso contrario debe esperar en estado listo por unos instantes, hasta que la CPU esté disponible y sea su turno de utilizarla.
Estados de un proceso El nivel más bajo del SO es el planificador, con una variedad de procesos encima de él. Todo el manejo de las interrupciones y los detalles relacionados como el iniciar y detener los procesos se ocultan en el planificador. El resto del SO está estructurado en procesos.
Implementación de Procesos Para implementar el modelo de procesos el SO mantiene una tabla (un  arreglo de estructuras), llamada Tabla de procesos, con solo una entrada por cada proceso (llamadas  bloques de control de procesos) Una entrada contiene información importante acerca del:  estado del proceso,  Incluyendo su contador de programa y Su apuntador  de pila, Asignación de memoria,  Archivos abiertos,  Información de contabilidad y planificación y mas… Y todo lo que debe guardar cuando cambia del estado en ejecución a listo,
Implementación de los procesos Campos clave en un sistema  típica en la tabla de procesos
Implementación de los procesos Para explicar como la ilusión de varios procesos secuenciales se mantiene en una o en varias CPU. Con cada clase de E/S hay una ubicación asociada (por lo general una ubicación cerca de la parte final de la memoria) a la cual se le llama vector de interrupción. Esta ubicación contiene la dirección del procedimiento de interrupciones
Implementación de los procesos Suponga que el proceso de usuario 3 está en ejecución cuando ocurre una interrupción de disco. El contador de programa, la palabra  de estado del programa y algunas veces uno o más registros del proceso del usuario 3 se meten en la pila(actual), mediante el hardware de interrupción. Esto es todo lo que hace el hardware. De aquí en adelante todo depende del software y en especial del servicio de interrupciones.
Implementación de los procesos Todas las interrupciones empiezan por guardar los registros a menudo en la entrada de la tabla de procesos para el proceso actual. Después, se quita la información que la interrupción metió en la pila y el apuntador de pila se establece para que apunte a una pila temporal utilizada por el manejador de procesos.
Implementación de los procesos Las acciones como guardar los registros y establecer el apuntador de pila no se pueden expresar ni siquiera en un lenguaje de alto nivel, por lo que se realizan en lenguaje ensamblador, que por lo general es la misma para todas las interrupciones, ya que el trabajo de guardar los registros es idéntico, sin importar cual sea la causa de la interrupción.
Implementación de los procesos Cuando termina esta rutina llama a un procedimiento en el lenguaje en el que fue programado el SO, para realizar el resto del trabajo, para este tipo de interrupción específico. Cuando ha terminado su trabajo y talvés ocasionando que  algún otro proceso esté entonces listo, el planificador es llamado para ver que proceso se debe ejecutar a continuación.
Implementación de los procesos Después de eso, el control se pasa de vuelta al código en lenguaje ensamblador para cargar los registros y el mapa de memoria para el proceso que entonces es el actual y se empieza a ejecutar. En el cuadro de la siguiente diapositiva,  se sintetiza el manejo de interrupciones, y la planificación del proceso.
Implementación de procesos
Implementación de Procesos Cuando el proceso termina, el sistema operativo muestra un carácter indicador y espera un nuevo comando. Cuando recibe el comando, carga un nuevo programa en memoria, sobre escribiendo el anterior.
Modelación de la Multiprogramación Cuando se utiliza la multiprogramación, el uso de la CPU se puede mejorar. Dicho de otra manera: si el proceso realiza cálculos solo el 20 por ciento del tiempo que está en la memoria, con cinco procesos en memoria a la vez la CPU deberá estar ocupada todo el tiempo. Sin embargo, este modelo es demasiado optimista, ya que se supone que los 5 procesos, nunca estarán esperando la E/S al mismo tiempo.
Modelación de la Multiprogramación Un mejor modelo es analizar el uso de la CPU de un modo probabilístico. Si un proceso gasta una fracción p esperando a que se complete una operación de E/S. Con n procesos en memoria a la vez, la probabilidad de que todos los n procesos estén esperando la E/S (en cuyo caso, la CPU estará inactiva) es pn
Modelación de la Multiprogramación Entonces, el uso de la CPU se obtiene mediante la fórmula: Uso de la CPU= 1-pn Ejemplo: Suponga que una computadora, tiene 512 MB de memoria, de la cual el SO ocupa 128 MB y cada programa ocupa otros 128MB.  Estos tamaños permiten que hayan 3 programas de usuario en memoria a la vez. Con un promedio de 80%  de tiempo de espera de E/S. la utilización de la CPU (ignorando la sobrecarga del SO) de 1-0.83  o de aproximadamente 49 por ciento.
Modelación de la Multiprogramación Si agregamos 512MB más de memoria, el sistema puede pasar  de la multiprogramación de tres vías a una multiprogramación de siete vías, con lo cual el uso de la CPU se eleva hasta el 79%. En otras palabras, los 512MB elevarán el rendimiento el 30%.
Modelación de la Multiprogramación Si volvemos a agregar  otros 512MB el uso de la CPU solo se incrementaría del 79 al 91% , con lo cual se elevaría el rendimiento solo el 12% adicional. De acuerdo a este modelo, se diría que la primera inversión es buena inversión pero la segunda no.
Bibliografía Sistemas Operativos Modernos Andrew Tanenbaum 3 edición 2009

Contenu connexe

Tendances

Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estadosstill01
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicasdanielchecar
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
Sistemas Operativos I-Particionamiento de memoria
Sistemas Operativos I-Particionamiento de memoriaSistemas Operativos I-Particionamiento de memoria
Sistemas Operativos I-Particionamiento de memoriaMari Cruz
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de usoSaul Mamani
 
Modelo de procesos
Modelo de procesosModelo de procesos
Modelo de procesossiamu_evap
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivoseduardoed5
 
Analisis y diseño diagrama de caso de uso
Analisis y diseño diagrama de caso de usoAnalisis y diseño diagrama de caso de uso
Analisis y diseño diagrama de caso de usoYovana Connie Roca Avila
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosEmmanuel Fortuna
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesosayreonmx
 
Administracion de usuarios y grupos
Administracion de usuarios y gruposAdministracion de usuarios y grupos
Administracion de usuarios y gruposJACKELIN SORALUZ
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativosDaniel Vargas
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.Carlos Solano
 
Paginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónPaginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónNatalia Ludeña
 

Tendances (20)

Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 
Conceptos de software
Conceptos de softwareConceptos de software
Conceptos de software
 
Interbloqueos
InterbloqueosInterbloqueos
Interbloqueos
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicas
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Sistemas Operativos I-Particionamiento de memoria
Sistemas Operativos I-Particionamiento de memoriaSistemas Operativos I-Particionamiento de memoria
Sistemas Operativos I-Particionamiento de memoria
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
 
Modelo de procesos
Modelo de procesosModelo de procesos
Modelo de procesos
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivos
 
Analisis y diseño diagrama de caso de uso
Analisis y diseño diagrama de caso de usoAnalisis y diseño diagrama de caso de uso
Analisis y diseño diagrama de caso de uso
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Administracion de usuarios y grupos
Administracion de usuarios y gruposAdministracion de usuarios y grupos
Administracion de usuarios y grupos
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
 
Sistemas operativos; procesos
Sistemas operativos; procesosSistemas operativos; procesos
Sistemas operativos; procesos
 
Gestion de memoria_en_android
Gestion de memoria_en_androidGestion de memoria_en_android
Gestion de memoria_en_android
 
Principios del RUP
Principios del RUPPrincipios del RUP
Principios del RUP
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.
 
Paginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónPaginación, Segmentación y Fragmentación
Paginación, Segmentación y Fragmentación
 

Similaire à Procesos e hilos- Parte 1

Cuestionario procesos
Cuestionario procesos Cuestionario procesos
Cuestionario procesos Gabriel Garcia
 
Cuarta clase - Procesos Primera Parte
Cuarta clase - Procesos Primera ParteCuarta clase - Procesos Primera Parte
Cuarta clase - Procesos Primera PartePablo Macon
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESOFiorelaL.V
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESOFiorelaL.V
 
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSGESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSomarhcc
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESOFiorelaL.V
 
Procesos Introduccion a los sistemas operativos
 Procesos Introduccion a los sistemas operativos Procesos Introduccion a los sistemas operativos
Procesos Introduccion a los sistemas operativosG Hoyos A
 
Tarea 3 actividad individual
Tarea 3 actividad individualTarea 3 actividad individual
Tarea 3 actividad individualAngelicaMaria99
 
procesos de los sistemas operativos
 procesos de los sistemas operativos  procesos de los sistemas operativos
procesos de los sistemas operativos G Hoyos A
 
gestion de procesos
gestion de procesosgestion de procesos
gestion de procesossaoriiih
 
Expocontrolcalidad
ExpocontrolcalidadExpocontrolcalidad
ExpocontrolcalidadLenin Lucano
 

Similaire à Procesos e hilos- Parte 1 (20)

27 de oct
27 de oct27 de oct
27 de oct
 
Cuestionario procesos
Cuestionario procesos Cuestionario procesos
Cuestionario procesos
 
Proceso
ProcesoProceso
Proceso
 
acti27 de oct
acti27 de octacti27 de oct
acti27 de oct
 
Cuarta clase - Procesos Primera Parte
Cuarta clase - Procesos Primera ParteCuarta clase - Procesos Primera Parte
Cuarta clase - Procesos Primera Parte
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSGESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
 
SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOSSISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
GESTION DE PROCESO
GESTION DE PROCESOGESTION DE PROCESO
GESTION DE PROCESO
 
Procesos Introduccion a los sistemas operativos
 Procesos Introduccion a los sistemas operativos Procesos Introduccion a los sistemas operativos
Procesos Introduccion a los sistemas operativos
 
27 de oct
27 de oct27 de oct
27 de oct
 
Tarea 3 actividad individual
Tarea 3 actividad individualTarea 3 actividad individual
Tarea 3 actividad individual
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
Tarea3 fernando lopez
Tarea3   fernando lopezTarea3   fernando lopez
Tarea3 fernando lopez
 
procesos de los sistemas operativos
 procesos de los sistemas operativos  procesos de los sistemas operativos
procesos de los sistemas operativos
 
gestion de procesos
gestion de procesosgestion de procesos
gestion de procesos
 
Expocontrolcalidad
ExpocontrolcalidadExpocontrolcalidad
Expocontrolcalidad
 
Procesos
ProcesosProcesos
Procesos
 

Plus de Maritzol Tenemaza

Plus de Maritzol Tenemaza (9)

Clase 3 tipos de sistemas
Clase 3 tipos de sistemasClase 3 tipos de sistemas
Clase 3 tipos de sistemas
 
Clase n.2 què es sistema operativo
Clase n.2 què es sistema operativoClase n.2 què es sistema operativo
Clase n.2 què es sistema operativo
 
Cómo mejorar una imagen en adobe fireworks
Cómo mejorar una imagen en adobe fireworksCómo mejorar una imagen en adobe fireworks
Cómo mejorar una imagen en adobe fireworks
 
Clase 4 -
Clase 4 -Clase 4 -
Clase 4 -
 
Bases clase 2
Bases  clase 2Bases  clase 2
Bases clase 2
 
CóMo Planificar Y Realizar Un Seminario
CóMo Planificar Y Realizar Un SeminarioCóMo Planificar Y Realizar Un Seminario
CóMo Planificar Y Realizar Un Seminario
 
Los Objetivos
Los ObjetivosLos Objetivos
Los Objetivos
 
La Clase
La ClaseLa Clase
La Clase
 
Planificación grupo P
Planificación grupo PPlanificación grupo P
Planificación grupo P
 

Procesos e hilos- Parte 1

  • 1. Procesos e Hilos Estamos a punto de emprender un estudio detallado de cómo los sistemas operativos son diseñados y construidos. Bienvenidos!!
  • 2. Procesos Consideremos un servidor a donde convergen las peticiones de páginas Web provenientes de todo lado. Cuando llega una petición el servidor verifica si la página está en la caché. De ser así devuelve la página. Si no está en la caché inicia una petición al disco para obtenerla. (dada la velocidad de la CPU esta petición tarda eternidades) Mientras la petición se ejecuta muchas peticiones concurrentes pueden ejecutarse, sobre el mismo disco u otros. Lo importante es Modelar y controlar la Concurrencia
  • 3. Procesos En una PC: Mientras arranca el Sistema Operativo, en secreto se ejecutan: Correo electrónico. Actividades que comprueban la disponibilidad de nuevas versiones de virus….. Mientras navega en la Web: Quema CDs Imprime archivos
  • 4. Procesos En cualquier sistema de multiprogramación, la CPU conmuta de un proceso a otro con rapidez, dando la apariencia de paralelismo o pseudoparalelismo.
  • 5. El modelo del proceso
  • 6. El modelo del proceso Todo el software ejecutable en la computadora, en el que se incluye el sistema operativo se organiza en varios procesos secuenciales. Un proceso es una instancia de un programa en ejecución, incluyendo los registros , contador de programa y variables. En concepto cada proceso tiene su CPU virtual, aunque la CPU real conmuta de un proceso a otro.
  • 7. El modelo del proceso (a) Esta figura muestra una computadora multiprogramando 4 programas en memoria.
  • 8. El modelo del proceso (b) Lista 4 procesos cada una con su propio flujo de control, con su contador de programa lógico y cada uno ejecutándose en forma independiente. Desde luego que solo hay un contador de programa físico por lo que cuando se ejecuta cada proceso se carga su contador de programa lógico en el contador de programa real.
  • 9. El modelo del proceso (c) En la figura podemos ver que en un intervalo suficientemente largo todos los procesos han progresado, pero en cualquier momento dado solo hay un proceso en ejecución.
  • 10. El modelo de proceso La CPU conmuta rápidamente entre un proceso y otro, la velocidad a la que el proceso ejecuta sus cálculos no es reproducible, aunque se ejecuten los mismos procesos de nuevo.
  • 11. Diferencia entre proceso y programa. Instrucciones para hacer el pastel . (programa) El hacer el pastel siguiendo las instrucciones es el proceso. Los ingredientes son los datos.
  • 12. Procesos – programas - prioridad Si al estar haciendo el pastel , llega su hijo llorando por que le picó una abeja, el cocinero deja de hacer el pastel y abre un libro de primeros auxilios, en este momento pasó a un proceso de mayor prioridad, cuando termine volverá y continuará con el anterior proceso.
  • 13. CREACIÓN DE UN PROCESO Los Sistemas Operativos necesitan cierta forma de crear y terminar procesos, según sea necesario durante la operación: Hay 4 eventos principales que provocan la creación de procesos: El arranque del sistema. La ejecución, desde un proceso, de una llamada al sistema para creación de procesos. Una petición de Usuario para crear un proceso. El inicio de un trabajo por lotes.
  • 14. CREACIÓN DE UN PROCESO Arranque del sistema (1): Cuando arranca el SO se crean varios procesos,: En primer plano: Es decir procesos que interactúan con los usuarios (humanos) y realizan trabajo para ellos.
  • 15. CREACIÓN DE UN PROCESO Arranque del sistema: Cuando arranca el SO se crean varios procesos (2): En segundo Plano: son los que no están asociados con usuarios sino con funciones específicas Ejemplo: manejar actividades como correo electrónico, para avisar que llega un correo entrante, aceptar peticiones entrantes de páginas Web, noticias, impresiones etc. Estos se conocen como demonios (daemons). Los sistemas grandes tiene docenas de ellos. Verlos en Administrador de tareas
  • 16. CREACIÓN DE UN PROCESO La ejecución desde un proceso en ejecución: Un proceso a menudo llama al sistema para crear uno o más procesos, para que le ayuden a realizar su trabajo. Ejemplo para obtener una gran cantidad de datos desde la red para su posterior procesamiento: Se creará un proceso para obtener datos y colocarlos en un buffer compartido, Mientras un segundo proceso remueve los datos del buffer y los procesa. En un multiprocesador esto se realiza con mayor rapidez.
  • 17. CREACIÓN DE UN PROCESO Petición de un usuario para crear un proceso: El usuario puede crear un proceso con un doble clic en un ícono.
  • 18. CREACIÓN DE UN PROCESO Procesamiento por lotes: Aplica a mainframes grandes. Los usuarios pueden enviar trabajos de procesamiento por lotes al sistema, (posiblemente en forma remota). El sistema operativo decide que tiene los recursos para ejecutar otro trabajo, crea el proceso y ejecuta el siguiente de la cola.
  • 19. Terminación de procesos Una vez que se crea el proceso, comienza a ejecutarse y realiza el trabajo al que está destinado. Las condiciones de término son: Salida normal (voluntaria). Salida por error (voluntaria). Error fatal (involuntaria). Eliminado por otro proceso (involuntaria).
  • 20. Terminación de procesos Salida Normal. ExitProcess, en windows. Exit en Unix. Procesadores de palabras, exploradores y otros, todos tienen un ícono para indicar que todos los archivos se cierren y termine.
  • 21. Terminación de procesos Salida por Error. Por ejemplo si el usuario escribe el comando para ejecutar el programa y no existe dicho archivo.
  • 22. Terminación de procesos Error Fatal: Ejecución de una instrucción ilegal, hace referencia a una dirección de memoria que no existe. División por 0. Algunos programas permiten tomar control de ese ese error y no terminar el proceso.
  • 23. Terminación de procesos Eliminado por otro proceso: Un proceso puede solicitar al SO que elimine otros procesos. Los procesos deberían tener la autorización necesaria, para realizar la eliminación. Cuando un proceso termina, todos los procesos creados se eliminan de inmediato también.
  • 24. Jerarquías de Procesos En algunos sistemas, cuando un proceso crea a otro, el proceso padre y el proceso hijo continúan asociados. El proceso hijo puede crear por si mismo más procesos, formando una jerarquía de procesos.
  • 25. Jerarquías de Procesos Unix tiene el concepto de jerarquía de procesos. Un proceso nunca deshereda a otro.
  • 26. Jerarquías de Procesos Windows no tiene el concepto de jerarquía de procesos. Todos los procesos son iguales. Una jerarquía de procesos, se simula, cuando se crea un proceso el padre recibe un indicador especial, un token (llamado manejador) que puede utilizar para controlar al hijo. Tiene la libertad de pasar ese indicador a otros procesos, con lo cual invalida la Jerarquía. (deshereda)
  • 27. Estados de un proceso Aunque cada proceso, es una entidad independiente, con su propio contador de programa y estado interno, a menudo los procesos necesitan interactuar con otros. Un proceso puede generar otra salida que otro proceso utiliza como entrada.
  • 28. Estados de un proceso Cuando un proceso se bloquea, lo hace debido a que por lógica no puede continuar, comúnmente porque está esperando una entrada, que todavía no está disponible. En este caso la suspensión es inherente al problema.
  • 29. Estados de un proceso También es posible que un proceso, que esté listo en concepto y pueda ejecutarse, se detenga debido a que el SO decidió asignar la CPU a otro proceso por cierto tiempo. En este segundo caso es un tecnicismo del sistema, no hay suficientes CPU como para otorgar a cada proceso un procesador privado.
  • 30. Estados de un proceso Los tres estados en los que se puede encontrar un proceso son: En ejecución (usando la CPU en ese instante) Listo (ejecutable, se detuvo temporalmente para dejar que se ejecute otro proceso) No hay una CPU para él. Bloqueado (no puede ejecutarse sino hasta que ocurra cierto evento externo). No puede ejecutarse aunque haya una CPU disponible.
  • 31. Estados de un proceso Hay cuatro transiciones disponibles entre estos tres estados. Transición 1. ocurre cuando el SO descubre que el proceso no puede continuar. En algunos sistemas el proceso ejecuta una llamada al sistema como Pause. En otros como Unix solo se bloquean automáticamente.
  • 32. Estados de un proceso Transiciones 2 y 3. son producidas por el planificador de procesos, una parte del SO, sin que el proceso sepa siquiera acerca de ellas. La transición 2 ocurre cuando el planificador, decide que el proceso en ejecución se ha ejecutado el tiempo suficiente y es momento de dejar que otro proceso tenga parte del tiempo de la CPU. La transición 3 ocurre cuando todos los demás procesos han tenido su parte del tiempo de la CPU y es momento de que el primer proceso obtenga la CPU para ejecutarse de nuevo.
  • 33. Estados de un proceso Transición 4. ocurre cuando se produce el evento externo por el que un proceso estaba esperando, como la llegada de ciertos datos de entrada. Si no hay otro proceso en ejecución en ese instante se activa la transición 3 y el proceso empieza a ejecutarse. Caso contrario debe esperar en estado listo por unos instantes, hasta que la CPU esté disponible y sea su turno de utilizarla.
  • 34. Estados de un proceso El nivel más bajo del SO es el planificador, con una variedad de procesos encima de él. Todo el manejo de las interrupciones y los detalles relacionados como el iniciar y detener los procesos se ocultan en el planificador. El resto del SO está estructurado en procesos.
  • 35. Implementación de Procesos Para implementar el modelo de procesos el SO mantiene una tabla (un arreglo de estructuras), llamada Tabla de procesos, con solo una entrada por cada proceso (llamadas bloques de control de procesos) Una entrada contiene información importante acerca del: estado del proceso, Incluyendo su contador de programa y Su apuntador de pila, Asignación de memoria, Archivos abiertos, Información de contabilidad y planificación y mas… Y todo lo que debe guardar cuando cambia del estado en ejecución a listo,
  • 36. Implementación de los procesos Campos clave en un sistema típica en la tabla de procesos
  • 37. Implementación de los procesos Para explicar como la ilusión de varios procesos secuenciales se mantiene en una o en varias CPU. Con cada clase de E/S hay una ubicación asociada (por lo general una ubicación cerca de la parte final de la memoria) a la cual se le llama vector de interrupción. Esta ubicación contiene la dirección del procedimiento de interrupciones
  • 38. Implementación de los procesos Suponga que el proceso de usuario 3 está en ejecución cuando ocurre una interrupción de disco. El contador de programa, la palabra de estado del programa y algunas veces uno o más registros del proceso del usuario 3 se meten en la pila(actual), mediante el hardware de interrupción. Esto es todo lo que hace el hardware. De aquí en adelante todo depende del software y en especial del servicio de interrupciones.
  • 39. Implementación de los procesos Todas las interrupciones empiezan por guardar los registros a menudo en la entrada de la tabla de procesos para el proceso actual. Después, se quita la información que la interrupción metió en la pila y el apuntador de pila se establece para que apunte a una pila temporal utilizada por el manejador de procesos.
  • 40. Implementación de los procesos Las acciones como guardar los registros y establecer el apuntador de pila no se pueden expresar ni siquiera en un lenguaje de alto nivel, por lo que se realizan en lenguaje ensamblador, que por lo general es la misma para todas las interrupciones, ya que el trabajo de guardar los registros es idéntico, sin importar cual sea la causa de la interrupción.
  • 41. Implementación de los procesos Cuando termina esta rutina llama a un procedimiento en el lenguaje en el que fue programado el SO, para realizar el resto del trabajo, para este tipo de interrupción específico. Cuando ha terminado su trabajo y talvés ocasionando que algún otro proceso esté entonces listo, el planificador es llamado para ver que proceso se debe ejecutar a continuación.
  • 42. Implementación de los procesos Después de eso, el control se pasa de vuelta al código en lenguaje ensamblador para cargar los registros y el mapa de memoria para el proceso que entonces es el actual y se empieza a ejecutar. En el cuadro de la siguiente diapositiva, se sintetiza el manejo de interrupciones, y la planificación del proceso.
  • 44. Implementación de Procesos Cuando el proceso termina, el sistema operativo muestra un carácter indicador y espera un nuevo comando. Cuando recibe el comando, carga un nuevo programa en memoria, sobre escribiendo el anterior.
  • 45. Modelación de la Multiprogramación Cuando se utiliza la multiprogramación, el uso de la CPU se puede mejorar. Dicho de otra manera: si el proceso realiza cálculos solo el 20 por ciento del tiempo que está en la memoria, con cinco procesos en memoria a la vez la CPU deberá estar ocupada todo el tiempo. Sin embargo, este modelo es demasiado optimista, ya que se supone que los 5 procesos, nunca estarán esperando la E/S al mismo tiempo.
  • 46. Modelación de la Multiprogramación Un mejor modelo es analizar el uso de la CPU de un modo probabilístico. Si un proceso gasta una fracción p esperando a que se complete una operación de E/S. Con n procesos en memoria a la vez, la probabilidad de que todos los n procesos estén esperando la E/S (en cuyo caso, la CPU estará inactiva) es pn
  • 47. Modelación de la Multiprogramación Entonces, el uso de la CPU se obtiene mediante la fórmula: Uso de la CPU= 1-pn Ejemplo: Suponga que una computadora, tiene 512 MB de memoria, de la cual el SO ocupa 128 MB y cada programa ocupa otros 128MB. Estos tamaños permiten que hayan 3 programas de usuario en memoria a la vez. Con un promedio de 80% de tiempo de espera de E/S. la utilización de la CPU (ignorando la sobrecarga del SO) de 1-0.83 o de aproximadamente 49 por ciento.
  • 48. Modelación de la Multiprogramación Si agregamos 512MB más de memoria, el sistema puede pasar de la multiprogramación de tres vías a una multiprogramación de siete vías, con lo cual el uso de la CPU se eleva hasta el 79%. En otras palabras, los 512MB elevarán el rendimiento el 30%.
  • 49. Modelación de la Multiprogramación Si volvemos a agregar otros 512MB el uso de la CPU solo se incrementaría del 79 al 91% , con lo cual se elevaría el rendimiento solo el 12% adicional. De acuerdo a este modelo, se diría que la primera inversión es buena inversión pero la segunda no.
  • 50. Bibliografía Sistemas Operativos Modernos Andrew Tanenbaum 3 edición 2009