Procesos e Hilos en los Sistemas Operativos

EmmanuelGarcaFortuna 9,556 views 60 slides Jan 08, 2019
Slide 1
Slide 1 of 60
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60

About This Presentation

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.


Slide Content

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: S e 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 . Ejemplo 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.