SlideShare uma empresa Scribd logo
1 de 60
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
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.
Estados de los Procesos (Windows)
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.
Estado de los Procesos (Linux)
Formación de un proceso
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.
• El usuario llama un proceso:
ejemplo cuando el usuario
ejecuta una aplicación hace
doble clic.
• 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.
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.
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
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
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).
Estados de los hilos
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.
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.
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.
Ejemplo de trabajar solo en el hilo principal
Ejemplo de trabajar con un el hilo principal solo para
la interfaz grafica y el resto en segundo plano
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.
Planificación de procesos
e hilos
FCFS (FIFO): First-come, first-served
Forma lineal FCFS (FIFO)
SJF : Shortest job first.
Forma lineal SJF
SRTF: Shortest Remaining Time First.
Forma lineal SRTF
RR – Round Robin (Cola circular)
Forma lineal RR
Servicios POSIX para la
gestión de procesos
Baldwin Cesé
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:
Identificación de procesos
Identificación de procesos
• La función para obtener el identificador del proceso padre es:
Identificación de procesos
• La función para obtener el identificador de usuario real es:
Identificación de procesos
• La función para obtener el identificador de grupo real es:
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:
Entorno de un proceso
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.
Entorno de un proceso
Creación de procesos
• La función para crear un proceso es:
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:
Creación de procesos
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.
Terminación de procesos
• La función para terminar un proceso es:
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.
Espera la terminación de un proceso
• Las funciones para esperar por la finalización de un proceso hijo
son:
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.
Programa de ejemplo
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
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.
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.
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
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.
Sistema Operativo IOS
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.
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.
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.
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.
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos

Mais conteúdo relacionado

Mais procurados

Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosKarina Rivra
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
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
 
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSUnidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSYessica Hyuga Soto
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalizacióncintiap25
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesossueich
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosayreonmx
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPUEduardo Suarez
 
Sistemas operativos por estructura
Sistemas operativos por estructuraSistemas operativos por estructura
Sistemas operativos por estructuraProf. Javier Troya
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores JUANR1022
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEustakiu Padilla
 
Sistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosSistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosJesús Navarro
 
Procesos Planificacion de los Sistemas Operativos
 Procesos Planificacion de los Sistemas Operativos Procesos Planificacion de los Sistemas Operativos
Procesos Planificacion de los Sistemas OperativosG Hoyos A
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
Diferencias entre arquitectura y organización
Diferencias entre arquitectura y organizaciónDiferencias entre arquitectura y organización
Diferencias entre arquitectura y organizaciónAngel Aguilar
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software'Jorge Martinez
 

Mais procurados (20)

Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas Operativos
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
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.
 
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSUnidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesos
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
Sistemas operativos por estructura
Sistemas operativos por estructuraSistemas operativos por estructura
Sistemas operativos por estructura
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
 
Sistemas operativos para servidores
Sistemas operativos para servidoresSistemas operativos para servidores
Sistemas operativos para servidores
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Sistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosSistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidos
 
Procesos Planificacion de los Sistemas Operativos
 Procesos Planificacion de los Sistemas Operativos Procesos Planificacion de los Sistemas Operativos
Procesos Planificacion de los Sistemas Operativos
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Diferencias entre arquitectura y organización
Diferencias entre arquitectura y organizaciónDiferencias entre arquitectura y organización
Diferencias entre arquitectura y organización
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software
 

Semelhante a Procesos e Hilos en los Sistemas Operativos

Semelhante a Procesos e Hilos en los Sistemas Operativos (20)

Administración y Comando Básicos
Administración y Comando BásicosAdministración y Comando Básicos
Administración y Comando Básicos
 
Presentacion
PresentacionPresentacion
Presentacion
 
Hilo de ejecución
Hilo de ejecuciónHilo de ejecución
Hilo de ejecución
 
PPT CAP 2 Proceso e hilo.pdf
PPT CAP 2 Proceso e hilo.pdfPPT CAP 2 Proceso e hilo.pdf
PPT CAP 2 Proceso e hilo.pdf
 
Hilos hebras
Hilos hebrasHilos hebras
Hilos hebras
 
Sistemas operativos threads
Sistemas operativos   threadsSistemas operativos   threads
Sistemas operativos threads
 
Uso de threads en C#
Uso de threads en C#Uso de threads en C#
Uso de threads en C#
 
Conceptos fundamentales 2ª Diapositiva
Conceptos fundamentales 2ª DiapositivaConceptos fundamentales 2ª Diapositiva
Conceptos fundamentales 2ª Diapositiva
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Libro so
Libro soLibro so
Libro so
 
Unidad2
Unidad2Unidad2
Unidad2
 
S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
Funciones del s.o
Funciones del s.oFunciones del s.o
Funciones del s.o
 
Leng prog clase_01
Leng prog clase_01Leng prog clase_01
Leng prog clase_01
 
855
855855
855
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesos
 
hilos informatica
hilos informatica hilos informatica
hilos informatica
 
Procesos, cuotas y control parental
Procesos, cuotas y control parentalProcesos, cuotas y control parental
Procesos, cuotas y control parental
 
Tema3 procesos
Tema3 procesos Tema3 procesos
Tema3 procesos
 
Estructura de los Sistemas Operativos
Estructura de los Sistemas OperativosEstructura de los Sistemas Operativos
Estructura de los Sistemas Operativos
 

Último

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 

Último (10)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
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.
  • 3. Estados de los Procesos (Windows)
  • 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.
  • 5. Estado de los Procesos (Linux)
  • 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).
  • 14. Estados de los hilos
  • 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.
  • 18. Ejemplo de trabajar solo en el hilo principal
  • 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.
  • 22. FCFS (FIFO): First-come, first-served
  • 24. SJF : Shortest job first.
  • 28. RR – Round Robin (Cola circular)
  • 30. Servicios POSIX para la gestión de procesos Baldwin Cesé
  • 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:
  • 33. Identificación de procesos • La función para obtener el identificador del proceso padre es:
  • 34. Identificación de procesos • La función para obtener el identificador de usuario real es:
  • 35. Identificación de procesos • La función para obtener el identificador de grupo real 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:
  • 37. Entorno de un proceso
  • 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.
  • 39. Entorno de un proceso
  • 40. Creación de procesos • La función para crear un proceso es:
  • 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.
  • 44. Terminación de procesos • La función para terminar un proceso es:
  • 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.