En esta presentación se presentan los siguientes temas:
Información, estado y formación de un proceso.
Concepto de hilo y su constitución.
Planificación de servicios POXIS.
Problemas clásicos en la comunicación de procesos.
Guia Basica para bachillerato de Circuitos Basicos
Procesos e Hilos en los Sistemas Operativos
1. Procesos e Hilos
Richard González #16-5033
Nicolás Rosario #16-2180
Emmanuel García #16-7103
Baldwin Cesé #16-5186
Edison Lopez #16-1469
2. Procesos
• Proceso es todo aquel programa en ejecución.
• Existen diferentes tipos de procesos.
• Necesitan recursos para ejecutarse correctamente (CPU,
memoria, archivos e dispositivos de È/S).
• El sistema es responsable de gestionar cada uno de los procesos
en ejecución.
4. Descripción de los Estados
• Nuevo: El proceso está siendo creado.
• En ejecución: Se están ejecutando las instrucciones.
• En espera: El proceso está esperando a que se produzca un suceso (como la
terminación de una operación de E/S o la recepción de una señal)
• Preparado: El proceso está a la espera de que le asignen a un procesador.
• Terminado: Ha terminado la ejecución del proceso.
7. Como se forma un proceso en un sistema
operativo
• Inicio de sistema: son
procesos en primer plano que
se realizan interactuando con
el usuario, es decir recibe la
entrada desde el teclado y
envía la salida a la pantalla.
• Luego están los procesos en
segundo plano no reciben
entradas desde el terminal en
general y se ejecutan
tranquilamente sin necesidad de
interacción.
8. • El usuario llama un proceso:
ejemplo cuando el usuario
ejecuta una aplicación hace
doble clic.
9. • El sistema llama un proceso:
Se realiza cuando él un proceso se
está ejecutando un proceso pero
no puede acceder a ciertos recursos
ya sea por motivos de
administración de recursos o
seguridad, entonces recurre a
llamar a otro proceso, como
resultados dividimos el problema
en varias tarea que serán
ejecutadas por distintos procesos.
10. Entonces como termina un proceso
• Puede terminar por varias
razones:
Terminación normal mediante un
exitprocess.
Terminación por error esto pude
pasar por acceso a memoria no
valido ,una operación que al
ejecutarse produzca un error.
También puede pasar que otro
proceso te elimine de la cpu.
11. Hilos ( threads )
• En sistemas operativos, un hilo de
ejecución, hebra o subproceso es la
unidad de procesamiento más
pequeña que puede ser planificada
por un sistema operativo.
• Un hilo es simplemente una tarea
que puede ser ejecutada al mismo
tiempo que otra tarea.
También llamados:
• Actividades concurrentes
• Procesos ligeros
• Contextos de ejecución
12. Estructura de los hilos
Informaciones propias
• Contador de programa
• Pila
• Registros
• Estado (ejecutando, listo o
bloqueado)
Comparten
• Espacio de memoria
• Variables globales
• Archivos abiertos
• Procesos hijos
• Señales y semáforos
13. Porque nacen los Hilos
• Los hilos nacen debido a la
necesidad de mejorar el
desempeño en la ejecución de
código, pues los procesadores
no estaban procesando con su
máximo potencial.
• Se necesitaba una unidad de
procesamiento mas
manejable: La hebra (hilo).
15. Utilización de los Hilos
• Servidores: Pueden utilizar las ventajas
del multihilo, creando un hilo gestor
diferente para cada petición entrante
de un cliente.
• Interfaces de usuario: Se pueden
obtener aumentos de rendimiento
empleando un hilo para interactuar con
un usuario, mientras se pasan las
peticiones a otros hilos para su
ejecución.
• En el diseño de un Kernel Multihilo:
Para un sistema operativo distribuido,
esto quiere decir que contribuya a
diferentes tareas entre hilos.
16. Ventajas de los hilos
• Se necesita menos tiempo para crear
y terminar un hilo que de un
proceso.
• El cambio entre hilos es mucho mas
rápido que entre dos procesos.
• El uso de hilos crea la impresión de
multitarea.
• Pueden comunicarse entre si sin
llamar al núcleo.
17. Funcionalidad de los hilos
• Los hilos pueden crear hilos hijos.
• Si un hilo se bloquea otro puede
ejecutarse.
• No son independientes entre sí.
• Operan en cierto sentido como los
procesos.
• La popularidad de los hilos esta
creciendo porque puede ejecutar
características de procesos pesados
con mayor eficiencia.
19. Ejemplo de trabajar con un el hilo principal solo para
la interfaz grafica y el resto en segundo plano
20. Imagina que queremos ver un listado de 100 imágenes que se descargan
desde Internet, como usuario ¿Cuál de las dos opciones siguientes
elegirías?:
• A) Descargar las imágenes 100 imágenes,
haciendo esperar al usuario con una pantalla de
“cargando” hasta que se descargan todas. Luego
podrá ver el listado con las imágenes.
• B) Que mientras se descargan las 100
imágenes, el usuario pueda ir viendo y usando
las que ya se han descargado.
31. Identificación de procesos
• POSIX identifica cada proceso por medio de un entero único
denominado identificador de proceso de tipo pid_t.
• La función para obtener el identificador del proceso que realiza la
llamada es:
36. Entorno de un proceso
• El entorno de un proceso consta de la lista de variables que se
pasan al proceso en el momento de empezar su ejecución.
• Son accesibles a través una variable externa que apunta a una
lista de variables de entorno:
38. Entorno de un proceso
• Algunas variable de entorno:
• HOME: directorio de trabajo inicial del usuario.
• LOGNAME: nombre del usuario asociado al proceso.
• La función para obtener el valor de una variable de entorno es
char.
41. Creación de procesos
• Devuelve el identificador del proceso hijo al proceso padre y 0 al
proceso hijo, devolverá -1 en caso de error.
• Crea un proceso hijo que ejecuta el mismo programa que el padre.
Hereda los ficheros abiertos (se copian los descriptores).
• Las funciones para ejecutar un programa (código) distinto son:
43. Creación de procesos
• Como argumentos se utilizan path, file del nombre del archivo
ejecutable y arg como argumentos del ejecutable.
• Devuelve -1 en caso de error. Si tiene éxito no devolverá ningún
valor.
• Cambia la imagen de memoria del proceso. El mismo proceso
ejecuta otro programa pero mantiene los ficheros abiertos.
45. Terminación de procesos
• Como argumento se utiliza estado, que es el código de retorno al
proceso padre.
• Finaliza la ejecución del proceso.
• Se cierran todos los descriptores de ficheros abiertos.
• Se liberan todos los recursos del proceso.
46. Espera la terminación de un proceso
• Las funciones para esperar por la finalización de un proceso hijo
son:
47. Espera la terminación de un proceso
• Como argumentos se utilizan estado, el identificador de
terminación del proceso hijo, pid, identificador del proceso,
opciones, identificador de opciones.
• Devuelve el identificador del proceso hijo ó -1 en caso de error.
• Permite a un proceso padre esperar hasta que termine la
ejecución de un proceso hijo.
49. La seccion critica es un Sistema compuesto por procesos en el
que casa uno tiene un fragmento de codigo. Dentro de la
seccion critica pueden estar accediendo y modificando
variables communes, registros de una base de datos, un
archivo o cualquier recurso compartido.
Caracteristica
mas importante
Cuando un proceso se encuentra ejecutando codigo de la
seccion critica, ningun otro proceso puede ejecutar en su
seccion.
El problema de la seccion critica
50. El problema productor-consumidor
En este tipo de problemas, uno o mas procesos, que se denominan
productores, generan cierto tipo de datos que son utilizados por otros
procesos, que se donominan consumidores.
El compilador, hace las funciones de productor al generar el
codigo ensamblador que consumira el proceso ensamblador para
generar el codigo maquina.
51. El problema de los lectores-escritores
En este problema existe un determinado objeto que puede ser un
archivo o un registro dentro de un archivo que va a ser utilizado y
compartido por una serie de procesos concurrentes.
En este tipo de problemas existen dos restricciones que han de segurise:
Solo se permite que un escritor tenga acceso al objeto al mismo tiempo. Mientras el
escritor este accediendo al objeto, ningun otro proceso lector o escritor podra
acceder a el.
Se permite, sin embargo, que multiples lectores tengan acceso al objeto, ya que
ellos nunca van a modificar el contenido del mismo
En este tipo de problemas es necesario disponer de servicios de sincronizacion que
permitan a los procesos lectores y escritores sincronizarse adecuadamente en el
acceso al objeto.
52. Comunicacion cliente-servidor
En el modelos cliente-servidor, los procesos llamados servidores ofrecen una serie
de servicios a otros procesos que se denominan clientes. El proceso servidor puede
residir en la misma maquina que el cliente o en una distinta, en cuyo caso la
comunicacion debera realizarse a traves de una red de interconnexion.
Ejemplos
• Correo electronico
• Transferencia de archivos
53. Problema de cena de filosofos
Semaforo: variable especial, que
realiza un metodo clasico para
restringir o permitir el acceso a
recursos compartidos como
almacenamiento de sistema o
variable del codigo fuente, en un
entorno de multiprocesamiento.
55. El Sistema operativo movil mas usado del mundo. Su ultima version fue
el IOS 12 salida en junio del 2018, creado para mejorar la experiencia de
usario. Los elementos de control consisten de deslizadores,
interruptores y botones. La respuesta a las ordenes del usuario es
inmediata y posee una interfaz fluida.
IOS Se deriva de macOS, que a su vez esta basado en Darwin BSD y por lo
tanto es un Sistema operativo tipo Unix.
IOS cuenta con 4 capas de abstraccion:
La capa del nucleo del Sistema operativo.
La capa de servicios principales.
La capa de medios.
La capa de cocoa touch.
56. Se indica que han sido vendidos mas de 600
millones de iDevice, los usuarios de IOS utilizan un
50% mas sus dispositivos que los de Android. El
Mercado web los domina IOS con un 60% y en
tabletas el iPad tiene el 82% del trafico web. Se
ubica en el lugar #1 de satisfaccion al cliente con
un 73%, seguido por Windows Phone con el 53% y el
93% tiene instalada la version actual del Sistema.
57. Mac OS
• El primer sistema operativo se crea en el año 1984 por la Empresa
Apple Computers Inc. llamados Macintosh.
• Las primeras 7 versiones fueron comercializados con el nombre de
System Software, después se paso a llamar MAC OS.
• MAC OS X esta construidos sobre UNIX.
• Usa una interfaz gráfica desarrollado por Apple llamada Aqua.
58. Procesos en Mac OS
• Estados del proceso en un sistema operativo Mac OS:
Listo: es cuando el estado esta listo para cumplir su función.
Ejecución: cuando el procesador esta ejecutando el proceso.
Bloqueado: el proceso pasa a la espera de ser llamado.