SlideShare una empresa de Scribd logo
1 de 65
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Capítulo 3: Procesos
3.2 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Capítulo 3: Procesos
 Concepto de proceso
 Proceso de programación
 Operaciones en Procesos
 Comunicación entre procesos
 IPC en sistemas de memoria compartida
 IPC en sistemas de paso de mensajes
 Ejemplos de sistemas IPC
 Comunicación en sistemas cliente-servidor
3.3 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Objetivos
 Identifique los componentes separados de un proceso e
ilustre cómo están representados y programados en un
sistema operativo.
 Describa cómo se crean y terminan los procesos en un
sistema operativo, incluido el desarrollo de programas
utilizando las llamadas apropiadas del sistema que realizan
estas operaciones.
 Describir y contrastar la comunicación entre procesos
utilizando la memoria compartida y el paso de mensajes.
 Diseñe programas que utilicen tuberías y memoria
compartida POSIX para realizar la comunicación entre
procesos.
 Describa la comunicación cliente-servidor mediante sockets y
llamadas a procedimientos remotos.
 Diseñar módulos del kernel que interactúen con el sistema
operativo Linux.
3.4 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Concepto de proceso
 Un sistema operativo ejecuta una variedad de programas que se
ejecutan como un proceso.
 Proceso - un programa en ejecución; El proceso de ejecución
debe progresar de manera secuencial.
 Múltiples partes
 El código del programa, también llamado sección de texto.
 Actividad actual incluyendo el contador del programa (PC),
registros del procesador
 Pila (Stack) que contiene datos temporales
 Parámetros de función, direcciones de retorno, variables
locales
 Sección de datos que contiene variables globales.
 Montón (Heap) que contiene memoria asignada
dinámicamente durante el tiempo de ejecución
3.5 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Concepto de Proceso (Cont.)
 El programa es una entidad pasiva almacenada en el disco
(archivo ejecutable); el proceso está activo
 Programa se convierte en proceso cuando el archivo
ejecutable se carga en la memoria
 La ejecución del programa comenzó a través de los clics del
mouse en la GUI, la entrada de la línea de comandos de su
nombre, etc.
 Un programa puede ser varios procesos.
 Considere múltiples usuarios ejecutando el mismo programa
3.6 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Proceso en memoria
3.7 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Diseño de memoria de un programa en C
3.8 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Estado del proceso
 A medida que se ejecuta un proceso, cambia de estado.
 Nuevo: se está creando el proceso.
 Corriendo: las instrucciones se están ejecutando
 En espera: el proceso está esperando que ocurra algún
evento
 Listo: el proceso está en espera de ser asignado a un
procesador
 Terminado: El proceso ha finalizado su ejecución.
3.9 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Diagrama del estado del proceso
3.10 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Bloque de control de proceso (PCB)
Información asociada a cada proceso.
(También llamado bloque de control de tareas)
 Estado del proceso - en ejecución, en espera, etc.
 Contador de programas - ubicación de la
instrucción para la próxima ejecución
 Registros de CPU: contenido de todos los
registros centrados en el proceso
 Información de planificación de CPU:
prioridades, planificación de los punteros de la cola
 Información de gestión de memoria - memoria
asignada al proceso.
 Información contable: CPU utilizada, tiempo de reloj
transcurrido desde el inicio, límites de tiempo
 Información de estado de E / S: dispositivos de E /
S asignados para procesar, lista de archivos
abiertos
3.11 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Threads
 Hasta ahora, el proceso tiene un solo Threads de ejecución.
 Considere tener múltiples contadores de programas por
proceso
 Pueden ejecutarse múltiples ubicaciones a la vez
 Múltiples Threadsde control -> Threads.
 Luego debe tener almacenamiento para los detalles de los
Threads, múltiples contadores de programas en PCB
 Explora en detalle en el Capítulo 4
3.12 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Representación de procesos en Linux
Represented by the C structure task_struct
pid t_pid; /* process identifier */
long state; /* state of the process */
unsigned int time_slice /* scheduling information */
struct task_struct *parent;/* this process’s parent */
struct list_head children; /* this process’s children */
struct files_struct *files;/* list of open files */
struct mm_struct *mm; /* address space of this process */
3.13 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Planificación de Procesos
 Maximice el uso de la CPU, cambie rápidamente los procesos
al núcleo de la CPU
 El programador de procesos selecciona entre los procesos
disponibles para la próxima ejecución en el núcleo de la CPU
 Mantiene las colas de programación de los procesos.
 Cola de listos: conjunto de todos los procesos que residen
en la memoria principal, listos y en espera de ejecutarse
 Cola de espera: conjunto de procesos que esperan un
evento (es decir, E / S)
 Procesos migran entre las distintas colas.
3.14 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Colas en la planificación de procesos
3.15 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Representación de la planificación de
procesos
3.16 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
CPU Cambiar de proceso a proceso
A context switch occurs when the CPU
switches from one process to another.
3.17 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Context Switch
 Cuando la CPU cambia a otro proceso, el sistema debe
guardar el estado del proceso anterior y cargar el estado
guardado para el nuevo proceso a través de un cambio de
contexto.
 Contexto de un proceso representado en el PCB.
 El tiempo de cambio de contexto es una sobrecarga; El
sistema no hace ningún trabajo útil al cambiar
 Cuanto más complejos sean los SO y los PCB - más largo
será el cambio de contexto
 El tiempo depende del soporte de hardware
 Algún hardware proporciona múltiples conjuntos de
registros por CPU- múltiples contextos cargados a la vez
3.18 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Multitarea en sistemas móviles
 Algunos sistemas móviles (por ejemplo, la versión temprana de iOS)
permiten que solo se ejecute un proceso, otros se suspenden
 Debido a las propiedades inmobiliarias de la pantalla, los límites de la
interfaz de usuario que proporciona iOS
 Proceso de primer plano controlado por la interfaz de usuario.
 Múltiples procesos en segundo plano: en memoria, en ejecución,
pero no en la pantalla, y con límites
 Los límites incluyen tareas simples y cortas, recepción de
notificaciones de eventos, tareas específicas de larga duración
como la reproducción de audio
 Android se ejecuta en primer plano y en segundo plano, con menos
límites.
 Proceso en segundo plano utiliza un servicio para realizar tareas
 El servicio puede seguir funcionando incluso si se suspende el
proceso en segundo plano
 El servicio no tiene interfaz de usuario, uso de memoria pequeña
3.19 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Operaciones en Procesos
 El sistema debe proporcionar mecanismos para:
 Creación de procesos
 terminación del proceso
3.20 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Creación de Procesos
 El proceso principal crea procesos secundarios que, a su vez,
crean otros procesos, formando un árbol de procesos.
 Generalmente, el proceso se identifica y se maneja a través de
un identificador de proceso (pid)
 Opciones de intercambio de recursos
 Padres e hijos comparten todos los recursos
 Los hijos comparten un subconjunto de los recursos
proporcionados por los padres
 Padre e hijo no necesariamente comparten recursos
 Opciones de ejecución
 Padres e hijos ejecutan concurrentemente
 El padre espera hasta que los hijos terminen
3.21 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Árbol de procesos en Linux
3.22 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Creación de Procesos (Cont.)
 Espacio de dirección
 hijo duplicado de padre
 El hijo tiene un programa cargado en él
 Ejemplos de UNIX
 La llamada al sistema fork () crea un nuevo proceso
 La llamada al sistema exec () se usa después de un fork ()
para reemplazar el espacio de memoria del proceso con un
nuevo programa
 El proceso principal llama al espera () para que el niño
termine
3.23 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
C Programa de bifurcación proceso
separado
3.24 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Creación de un proceso separado a través de
la API de Windows
3.25 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Terminación del proceso
 El proceso ejecuta la última instrucción y luego le pide al sistema
operativo que la elimine mediante la llamada al sistema exit ().
 Devuelve datos de estado del hijo al padre (a través de wait ())
 Los recursos del proceso son desasignados por el sistema
operativo.
 El padre puede terminar la ejecución de los procesos hijos utilizando
la llamada al sistema abort (). Algunas razones para hacerlo:
 El niño ha excedido los recursos asignados
 La tarea asignada al hijo ya no es necesaria
 El padre está saliendo y los sistemas operativos no permiten
que un niño continúe si su padre termina
3.26 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Terminación del proceso
 Algunos sistemas operativos no permiten que exista un hijo si su
padre ha terminado. Si un proceso termina, entonces todos sus
hijos también deben ser terminados.
 terminación en cascada. Todos los hijos, nietos, etc. son
despedidos.
 La terminación es iniciada por el sistema operativo.
 El proceso principal a que termine un proceso secundario
utilizando la llamada puede esperar al sistema wait (). La llamada
devuelve información de estado y el pid del proceso terminado
pid = wait (&status);
 Si ningún padre esperando (no invocó el proceso de wait ()) es un
zombie
 Si el padre terminó sin invocar a la wait, el proceso es un huérfano
3.27 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Jerarquía de importancia del proceso de
Android
 Los sistemas operativos móviles a menudo tienen que terminar procesos
para reclamar recursos del sistema, como la memoria. De más a menos
importante:
 Proceso de primer plano
 Proceso visible
 Proceso de servicio
 Proceso de fondo
 Proceso vacío
 Android comenzará a terminar procesos que son los menos importantes.
3.28 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Arquitectura multiproceso - Navegador
Chrome
 Muchos navegadores web se ejecutaron como un solo proceso (algunos
todavía lo hacen)
 Si un sitio web causa problemas, todo el navegador puede bloquearse o
bloquearse
 El navegador Google Chrome es multiproceso con 3 tipos diferentes de
procesos:
 El proceso del navegador administra la interfaz de usuario, el disco y la
I/O de la red.
 El proceso de renderizado representa las páginas web, trata con HTML,
Javascript. Un nuevo renderizador creado para cada sitio web abierto.
 Se ejecuta en una zona de pruebas que restringe la I/O del disco y la red,
minimizando el efecto de las vulnerabilidades de seguridad
 Proceso de plug-in para cada tipo de plug-in.
3.29 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Comunicación entre procesos
 Los procesos dentro de un sistema pueden ser independientes o
cooperantes
 El proceso de cooperación puede afectar o ser afectado por otros
procesos, incluido el intercambio de datos
 Razones para cooperación entre procesos:
 Intercambio de información
 Computación acelerada
 Modularidad
 Conveniencia
 La cooperación entre procesos requiere comunicación entre
procesos (IPC)
 Dos modelos de IPC.
 Memoria compartida
 Paso de mensajes
3.30 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Modelos de comunicaciones
(a) Shared memory. (b) Message passing.
3.31 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Cooperación de Procesos
 Los procesos independientes no pueden afectar o verse afectados
por la ejecución de otros procesos
 Los procesos cooperantes pueden afectar o ser afectados por la
ejecución de otro proceso.
 Ventajas de la cooperación entre procesos.
 El intercambio de información
 Aceleración de la computación
 Modularidad
 Conveniencia
3.32 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Problema productor-consumidor
 Paradigma para cooperación de procesos, el proceso
productor produce información que es consumida por un
proceso de consumo
 buffer ilimitado no pone ningún límite práctico en el
tamaño del búfer
 bounded-buffer asume que hay un tamaño de buffer
fijo
3.33 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Comunicación Entre Procesos - Memoria Compartida
 Un área de memoria compartida entre los procesos que
desean comunicarse.
 La comunicación está bajo el control de los procesos
de los usuarios, no del sistema operativo.
 El principal problema es proporcionar un mecanismo que
permita a los procesos del usuario sincronizar sus
acciones cuando acceden a la memoria compartida.
 La sincronización se trata con gran detalle en los capítulos
6 y 7.
3.34 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Comunicación entre procesos - paso de mensajes
 Mecanismo para que los procesos se comuniquen y
sincronicen sus acciones.
 Sistema de mensajes: los procesos se comunican entre sí sin
recurrir a variables compartidas
 IPC proporciona al menos dos operaciones:
 enviar (mensaje)
 recibir (mensaje)
 El tamaño del mensaje puede ser fijo o variable.
3.35 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Paso de mensajes (cont.)
 Si los procesos P y Q desean comunicarse, deben:
 Establecer un enlace de comunicación entre ellos.
 Intercambiar mensajes a través de enviar / recibir
 Problemas de implementación:
 ¿Cómo se establecen los enlaces?
 ¿Se puede asociar un enlace a más de dos procesos?
 ¿Cuántos enlaces puede haber entre cada par de procesos de
comunicación?
 ¿Cuál es la capacidad de un enlace?
 ¿El tamaño de un mensaje que el enlace puede acomodar fijo o
variable?
 ¿Es un enlace unidireccional o bidireccional?
3.36 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Paso de mensajes (cont.)
 Implementación del enlace de comunicación.
 Físico:
 Memoria compartida
 Bus de hardware
 Red
 Lógico:
 Directo o indirecto
 Síncrono o asíncrono
 Almacenamiento en búfer automático o explícito
3.37 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Comunicación directa
 Los procesos deben nombrarse explícitamente:
 enviar (P, mensaje) - enviar un mensaje al proceso P
 recibir (Q, mensaje) - recibir un mensaje del proceso Q
 Propiedades del enlace de comunicación.
 Los enlaces se establecen automáticamente.
 Un enlace está asociado exactamente con un par de procesos de
comunicación.
 Entre cada par existe exactamente un enlace.
 El enlace puede ser unidireccional, pero generalmente es
bidireccional.
3.38 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Comunicación indirecta
 Los mensajes son dirigidos y recibidos desde buzones (también
conocidos como puertos)
 Cada buzón tiene una identificación única
 Los procesos solo pueden comunicarse si comparten un buzón
 Propiedades del enlace de comunicación.
 Enlace establecido solo si los procesos comparten un buzón
común
 Un enlace puede estar asociado con muchos procesos.
 Cada par de procesos puede compartir varios enlaces de
comunicación.
 El enlace puede ser unidireccional o bidireccional.
3.39 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Comunicación indirecta
 Operaciones
 crear un nuevo buzón (puerto)
 enviar y recibir mensajes a través del buzón
 destruir un buzón
 Los primitivos se definen como:
enviar (A, mensaje) - enviar un mensaje al buzón A
recibir (A, mensaje) - recibe un mensaje del buzón A
3.40 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Comunicación indirecta
 Intercambio de buzones
 P1, P2, y P3 comparten buzón A
 P1, envía; P2 y P3 reciben
 ¿Quién recibe el mensaje?
 Soluciones
 Permitir que un enlace se asocie a lo sumo con dos
procesos
 Permitir solo un proceso a la vez para ejecutar una
operación de recepción
 Permitir que el sistema seleccione arbitrariamente el
receptor. Se notifica al remitente quién era el
destinatario.
3.41 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Sincronización
 El paso del mensaje puede ser bloqueado o no bloqueado
 El bloqueo se considera síncrono
 Bloqueo de envío: el remitente se bloquea hasta que se
recibe el mensaje
 Bloqueo de recepción: el receptor se bloquea hasta que haya
un mensaje disponible
 El no bloqueo se considera asíncrono.
 Envío sin bloqueo: el remitente envía el mensaje y continúa.
 Recepción no bloqueante - el receptor recibe:
 Un mensaje válido, o
 Mensaje nulo
 Diferentes combinaciones posibles
 Si tanto el envío como la recepción están bloqueados,
tenemos una cita
3.42 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Productor - Memoria compartida
message next_produced;
while (true) {
/* produce an item in next_produced */
send(next_produced);
}
3.43 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Productor - Memoria compartida
message next_consumed;
while (true) {
receive(next_consumed)
/* consume the item in next_consumed */
}
3.44 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Buffering
 Cola de mensajes adjuntos al enlace.
 Implementado en una de tres formas.
1. Capacidad cero: no hay mensajes en cola en un enlace. El
remitente debe esperar al receptor (rendezvous)
2. Capacidad limitada: longitud finita de n mensajes El remitente
debe esperar si el enlace está completo
3. Capacidad ilimitada: longitud infinita El remitente nunca
espera
3.45 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Ejemplos de sistemas IPC - POSIX
 POSIX Memoria Compartida
 El proceso primero crea el segmento de memoria compartida
shm_fd = shm_open (nombre, O CREAT | O RDWR, 0666);
 También se utiliza para abrir un segmento existente.
 Establecer el tamaño del objeto.
ftruncate (shm_fd, 4096);
 Use mmap () para asignar en memoria un puntero de archivo al
objeto de memoria compartida
 La lectura y escritura en la memoria compartida se realiza
mediante el puntero devuelto por mmap ().
3.46 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
IPC POSIX Producer
3.47 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
IPC POSIX Consumer
3.48 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Ejemplos de sistemas IPC - Mach
 La comunicación de Mach está basada en mensajes.
 Incluso las llamadas al sistema son mensajes
 Cada tarea obtiene dos puertos en la creación: Kernel y Notify
 Los mensajes se envían y se reciben utilizando la función mach_msg ()
 Puertos necesarios para la comunicación, creados a través de.
mach_port_allocate ()
 El envío y la recepción son flexibles, por ejemplo, cuatro opciones si el
buzón está lleno:
 Esperar indefinidamente
 Espera a lo sumo n milisegundos
 Volver inmediatamente
 Cachear temporalmente un mensaje
3.49 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Mensajes de mach
#include<mach/mach.h>
struct message {
mach_msg_header_t header;
int data;
};
mach port t client;
mach port t server;
3.50 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Paso de mensajes Mach - Cliente
3.51 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Paso de mensajes Mach - Servidor
3.52 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Ejemplos de sistemas IPC - Windows
 Centrado en el paso de mensajes a través de la facilidad de
llamada de procedimiento local avanzado (LPC)
 Solo funciona entre procesos en el mismo sistema.
 Utiliza puertos (como buzones) para establecer y mantener
canales de comunicación.
 La comunicación funciona de la siguiente manera:
 El cliente abre un identificador para el objeto de puerto
de conexión del subsistema.
 El cliente envía una solicitud de conexión.
 El servidor crea dos puertos de comunicación privados
y devuelve el identificador a uno de ellos al cliente.
 El cliente y el servidor utilizan el identificador de puerto
correspondiente para enviar mensajes o devoluciones
de llamada y para escuchar las respuestas.
3.53 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Procedimiento local de llamadas en
Windows
3.54 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Pipes
 Actúa como conducto, permitiendo la comunicación de dos
procesos.
 Cuestiones:
 ¿La comunicación es unidireccional o bidireccional?
 En el caso de comunicación bidireccional, ¿es half o full-
duplex?
 ¿Debe existir una relación (es decir, padre-hijo) entre los
procesos de comunicación?
 ¿Se pueden utilizar las tuberías a través de una red?
 Tuberías ordinarias: no se puede acceder desde fuera del proceso
que lo creó. Normalmente, un proceso principal crea un conducto y
lo utiliza para comunicarse con un proceso secundario que creó.
 Canalizaciones con nombre: se puede acceder sin una relación
padre-hijo.
3.55 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Ordinary Pipes
 Las tuberías comunes permiten la comunicación en el estilo estándar
de productor-consumidor
 El productor escribe en un extremo (el extremo de escritura de la
tubería (the write-end of the pipe)
 El consumidor lee desde el otro extremo (el extremo de lectura de la
tubería (the read-end of the pipe)
 Las tuberías ordinarias son por lo tanto unidireccionales.
 Requerir relación padre-hijo entre procesos de comunicación.
 Windows llama a estos tubos anónimos anonymous pipes
3.56 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Named Pipes(Tubos con nombre)
 Las tuberías con nombre son más poderosas que las tuberías
comunes
 La comunicación es bidireccional.
 No es necesaria una relación padre-hijo entre los procesos de
comunicación.
 Varios procesos pueden utilizar la tubería con nombre para la
comunicación.
 Se proporciona en sistemas UNIX y Windows
3.57 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Comunicaciones en sistemas cliente-servidor
 Sockets (sockets)
 Llamadas a procedimiento remoto
3.58 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Sockets
 Un socket se define como un punto final para la comunicación
 Concatenación de la dirección IP y el puerto: un número incluido al inicio del
paquete de mensajes para diferenciar los servicios de red en un host
 El socket 161.25.19.8:1625 se refiere al puerto 1625 en el host 161.25.19.8
 La comunicación consiste entre un par de hosts.
 Todos los puertos inferiores a 1024 son bien conocidos, utilizados para
servicios estándar
 Dirección IP especial 127.0.0.1 (loopback) para referirse al sistema en el que
se está ejecutando el proceso
3.59 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Socket Communication
3.60 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Sockets in Java
 Three types of sockets
 Connection-oriented
(TCP)
 Connectionless (UDP)
 MulticastSocket
class– data can be sent
to multiple recipients
 Consider this “Date” server
in Java:
https://github.com/greggagne/osc10e/blob/master/ch3/DateServer.java
3.61 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Sockets in Java
The equivalent Date client
https://github.com/greggagne/osc10e/blob/master/ch3/DateClient.java
3.62 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Llamadas a procedimiento remoto
 La llamada a procedimiento remoto (RPC) extrae llamadas de
procedimiento entre procesos en sistemas en red
 Nuevamente usa puertos para la diferenciación de servicios.
 Stubs: proxy del lado del cliente para el procedimiento real en el
servidor
 El código auxiliar del lado del cliente ubica el servidor y calcula los
parámetros
 El apéndice del lado del servidor recibe este mensaje,
desempaqueta los parámetros calculados y realiza el procedimiento
en el servidor
 En Windows, el código de código auxiliar se compila a partir de la
especificación escrita en Microsoft Interface Definition Language
(MIDL)
3.63 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Procedimiento de llamadas remotas (cont.)
 Representación de datos manejada a través del formato de
Representación de datos externos (XDL) para tener en
cuenta diferentes arquitecturas
 Big-endian y little-endian
 La comunicación remota tiene más escenarios de fallos que
los locales.
 Los mensajes se pueden entregar exactamente una vez
en lugar de a lo sumo
 El sistema operativo generalmente proporciona un servicio de
cita (o matchmaker) para conectar al cliente y al servidor
3.64 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Ejecución de RPC
Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition
Fin del Capítulo 3

Más contenido relacionado

Similar a Sistemas - Operativos: Procesos, Silberschatz.pptx

Similar a Sistemas - Operativos: Procesos, Silberschatz.pptx (20)

Plataformas
PlataformasPlataformas
Plataformas
 
Semana 10 administracion de procesos
Semana 10 administracion de procesosSemana 10 administracion de procesos
Semana 10 administracion de procesos
 
capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01capitulo5-2011-110612183514-phpapp01
capitulo5-2011-110612183514-phpapp01
 
Gestion de procesos
Gestion de procesosGestion de procesos
Gestion de procesos
 
Gestion de procesos
Gestion de procesosGestion de procesos
Gestion de procesos
 
S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesos
 
Procesos.pptx
Procesos.pptxProcesos.pptx
Procesos.pptx
 
Capitulo5 2011
Capitulo5 2011Capitulo5 2011
Capitulo5 2011
 
Descripcion y control de procesos
Descripcion y control de procesosDescripcion y control de procesos
Descripcion y control de procesos
 
Gestion de procesos Android
Gestion de procesos AndroidGestion de procesos Android
Gestion de procesos Android
 
Procesos
ProcesosProcesos
Procesos
 
MAPAS
MAPASMAPAS
MAPAS
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
Procesos
ProcesosProcesos
Procesos
 
prueba
pruebaprueba
prueba
 
Fase4 301402 48
Fase4 301402  48Fase4 301402  48
Fase4 301402 48
 
Administración de Procesos
Administración de ProcesosAdministración de Procesos
Administración de Procesos
 
Tema2.L2-Planificacion-de-procesos.pdf
Tema2.L2-Planificacion-de-procesos.pdfTema2.L2-Planificacion-de-procesos.pdf
Tema2.L2-Planificacion-de-procesos.pdf
 
Programaciongnulinux
ProgramaciongnulinuxProgramaciongnulinux
Programaciongnulinux
 

Último

4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENSLuisLobatoingaruca
 
TALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaTALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaSantiagoSanchez353883
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfMirthaFernandez12
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
SSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTSSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTGestorManpower
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestajeffsalazarpuente
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 

Último (20)

4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
 
TALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaTALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación pública
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
SSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SSTSSOMA, seguridad y salud ocupacional. SST
SSOMA, seguridad y salud ocupacional. SST
 
Diapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuestaDiapositiva de Topografía Nivelación simple y compuesta
Diapositiva de Topografía Nivelación simple y compuesta
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 

Sistemas - Operativos: Procesos, Silberschatz.pptx

  • 1. Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Capítulo 3: Procesos
  • 2. 3.2 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Capítulo 3: Procesos  Concepto de proceso  Proceso de programación  Operaciones en Procesos  Comunicación entre procesos  IPC en sistemas de memoria compartida  IPC en sistemas de paso de mensajes  Ejemplos de sistemas IPC  Comunicación en sistemas cliente-servidor
  • 3. 3.3 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Objetivos  Identifique los componentes separados de un proceso e ilustre cómo están representados y programados en un sistema operativo.  Describa cómo se crean y terminan los procesos en un sistema operativo, incluido el desarrollo de programas utilizando las llamadas apropiadas del sistema que realizan estas operaciones.  Describir y contrastar la comunicación entre procesos utilizando la memoria compartida y el paso de mensajes.  Diseñe programas que utilicen tuberías y memoria compartida POSIX para realizar la comunicación entre procesos.  Describa la comunicación cliente-servidor mediante sockets y llamadas a procedimientos remotos.  Diseñar módulos del kernel que interactúen con el sistema operativo Linux.
  • 4. 3.4 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Concepto de proceso  Un sistema operativo ejecuta una variedad de programas que se ejecutan como un proceso.  Proceso - un programa en ejecución; El proceso de ejecución debe progresar de manera secuencial.  Múltiples partes  El código del programa, también llamado sección de texto.  Actividad actual incluyendo el contador del programa (PC), registros del procesador  Pila (Stack) que contiene datos temporales  Parámetros de función, direcciones de retorno, variables locales  Sección de datos que contiene variables globales.  Montón (Heap) que contiene memoria asignada dinámicamente durante el tiempo de ejecución
  • 5. 3.5 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Concepto de Proceso (Cont.)  El programa es una entidad pasiva almacenada en el disco (archivo ejecutable); el proceso está activo  Programa se convierte en proceso cuando el archivo ejecutable se carga en la memoria  La ejecución del programa comenzó a través de los clics del mouse en la GUI, la entrada de la línea de comandos de su nombre, etc.  Un programa puede ser varios procesos.  Considere múltiples usuarios ejecutando el mismo programa
  • 6. 3.6 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Proceso en memoria
  • 7. 3.7 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Diseño de memoria de un programa en C
  • 8. 3.8 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Estado del proceso  A medida que se ejecuta un proceso, cambia de estado.  Nuevo: se está creando el proceso.  Corriendo: las instrucciones se están ejecutando  En espera: el proceso está esperando que ocurra algún evento  Listo: el proceso está en espera de ser asignado a un procesador  Terminado: El proceso ha finalizado su ejecución.
  • 9. 3.9 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Diagrama del estado del proceso
  • 10. 3.10 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Bloque de control de proceso (PCB) Información asociada a cada proceso. (También llamado bloque de control de tareas)  Estado del proceso - en ejecución, en espera, etc.  Contador de programas - ubicación de la instrucción para la próxima ejecución  Registros de CPU: contenido de todos los registros centrados en el proceso  Información de planificación de CPU: prioridades, planificación de los punteros de la cola  Información de gestión de memoria - memoria asignada al proceso.  Información contable: CPU utilizada, tiempo de reloj transcurrido desde el inicio, límites de tiempo  Información de estado de E / S: dispositivos de E / S asignados para procesar, lista de archivos abiertos
  • 11. 3.11 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Threads  Hasta ahora, el proceso tiene un solo Threads de ejecución.  Considere tener múltiples contadores de programas por proceso  Pueden ejecutarse múltiples ubicaciones a la vez  Múltiples Threadsde control -> Threads.  Luego debe tener almacenamiento para los detalles de los Threads, múltiples contadores de programas en PCB  Explora en detalle en el Capítulo 4
  • 12. 3.12 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Representación de procesos en Linux Represented by the C structure task_struct pid t_pid; /* process identifier */ long state; /* state of the process */ unsigned int time_slice /* scheduling information */ struct task_struct *parent;/* this process’s parent */ struct list_head children; /* this process’s children */ struct files_struct *files;/* list of open files */ struct mm_struct *mm; /* address space of this process */
  • 13. 3.13 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Planificación de Procesos  Maximice el uso de la CPU, cambie rápidamente los procesos al núcleo de la CPU  El programador de procesos selecciona entre los procesos disponibles para la próxima ejecución en el núcleo de la CPU  Mantiene las colas de programación de los procesos.  Cola de listos: conjunto de todos los procesos que residen en la memoria principal, listos y en espera de ejecutarse  Cola de espera: conjunto de procesos que esperan un evento (es decir, E / S)  Procesos migran entre las distintas colas.
  • 14. 3.14 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Colas en la planificación de procesos
  • 15. 3.15 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Representación de la planificación de procesos
  • 16. 3.16 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition CPU Cambiar de proceso a proceso A context switch occurs when the CPU switches from one process to another.
  • 17. 3.17 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Context Switch  Cuando la CPU cambia a otro proceso, el sistema debe guardar el estado del proceso anterior y cargar el estado guardado para el nuevo proceso a través de un cambio de contexto.  Contexto de un proceso representado en el PCB.  El tiempo de cambio de contexto es una sobrecarga; El sistema no hace ningún trabajo útil al cambiar  Cuanto más complejos sean los SO y los PCB - más largo será el cambio de contexto  El tiempo depende del soporte de hardware  Algún hardware proporciona múltiples conjuntos de registros por CPU- múltiples contextos cargados a la vez
  • 18. 3.18 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Multitarea en sistemas móviles  Algunos sistemas móviles (por ejemplo, la versión temprana de iOS) permiten que solo se ejecute un proceso, otros se suspenden  Debido a las propiedades inmobiliarias de la pantalla, los límites de la interfaz de usuario que proporciona iOS  Proceso de primer plano controlado por la interfaz de usuario.  Múltiples procesos en segundo plano: en memoria, en ejecución, pero no en la pantalla, y con límites  Los límites incluyen tareas simples y cortas, recepción de notificaciones de eventos, tareas específicas de larga duración como la reproducción de audio  Android se ejecuta en primer plano y en segundo plano, con menos límites.  Proceso en segundo plano utiliza un servicio para realizar tareas  El servicio puede seguir funcionando incluso si se suspende el proceso en segundo plano  El servicio no tiene interfaz de usuario, uso de memoria pequeña
  • 19. 3.19 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Operaciones en Procesos  El sistema debe proporcionar mecanismos para:  Creación de procesos  terminación del proceso
  • 20. 3.20 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Creación de Procesos  El proceso principal crea procesos secundarios que, a su vez, crean otros procesos, formando un árbol de procesos.  Generalmente, el proceso se identifica y se maneja a través de un identificador de proceso (pid)  Opciones de intercambio de recursos  Padres e hijos comparten todos los recursos  Los hijos comparten un subconjunto de los recursos proporcionados por los padres  Padre e hijo no necesariamente comparten recursos  Opciones de ejecución  Padres e hijos ejecutan concurrentemente  El padre espera hasta que los hijos terminen
  • 21. 3.21 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Árbol de procesos en Linux
  • 22. 3.22 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Creación de Procesos (Cont.)  Espacio de dirección  hijo duplicado de padre  El hijo tiene un programa cargado en él  Ejemplos de UNIX  La llamada al sistema fork () crea un nuevo proceso  La llamada al sistema exec () se usa después de un fork () para reemplazar el espacio de memoria del proceso con un nuevo programa  El proceso principal llama al espera () para que el niño termine
  • 23. 3.23 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition C Programa de bifurcación proceso separado
  • 24. 3.24 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Creación de un proceso separado a través de la API de Windows
  • 25. 3.25 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Terminación del proceso  El proceso ejecuta la última instrucción y luego le pide al sistema operativo que la elimine mediante la llamada al sistema exit ().  Devuelve datos de estado del hijo al padre (a través de wait ())  Los recursos del proceso son desasignados por el sistema operativo.  El padre puede terminar la ejecución de los procesos hijos utilizando la llamada al sistema abort (). Algunas razones para hacerlo:  El niño ha excedido los recursos asignados  La tarea asignada al hijo ya no es necesaria  El padre está saliendo y los sistemas operativos no permiten que un niño continúe si su padre termina
  • 26. 3.26 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Terminación del proceso  Algunos sistemas operativos no permiten que exista un hijo si su padre ha terminado. Si un proceso termina, entonces todos sus hijos también deben ser terminados.  terminación en cascada. Todos los hijos, nietos, etc. son despedidos.  La terminación es iniciada por el sistema operativo.  El proceso principal a que termine un proceso secundario utilizando la llamada puede esperar al sistema wait (). La llamada devuelve información de estado y el pid del proceso terminado pid = wait (&status);  Si ningún padre esperando (no invocó el proceso de wait ()) es un zombie  Si el padre terminó sin invocar a la wait, el proceso es un huérfano
  • 27. 3.27 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Jerarquía de importancia del proceso de Android  Los sistemas operativos móviles a menudo tienen que terminar procesos para reclamar recursos del sistema, como la memoria. De más a menos importante:  Proceso de primer plano  Proceso visible  Proceso de servicio  Proceso de fondo  Proceso vacío  Android comenzará a terminar procesos que son los menos importantes.
  • 28. 3.28 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Arquitectura multiproceso - Navegador Chrome  Muchos navegadores web se ejecutaron como un solo proceso (algunos todavía lo hacen)  Si un sitio web causa problemas, todo el navegador puede bloquearse o bloquearse  El navegador Google Chrome es multiproceso con 3 tipos diferentes de procesos:  El proceso del navegador administra la interfaz de usuario, el disco y la I/O de la red.  El proceso de renderizado representa las páginas web, trata con HTML, Javascript. Un nuevo renderizador creado para cada sitio web abierto.  Se ejecuta en una zona de pruebas que restringe la I/O del disco y la red, minimizando el efecto de las vulnerabilidades de seguridad  Proceso de plug-in para cada tipo de plug-in.
  • 29. 3.29 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Comunicación entre procesos  Los procesos dentro de un sistema pueden ser independientes o cooperantes  El proceso de cooperación puede afectar o ser afectado por otros procesos, incluido el intercambio de datos  Razones para cooperación entre procesos:  Intercambio de información  Computación acelerada  Modularidad  Conveniencia  La cooperación entre procesos requiere comunicación entre procesos (IPC)  Dos modelos de IPC.  Memoria compartida  Paso de mensajes
  • 30. 3.30 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Modelos de comunicaciones (a) Shared memory. (b) Message passing.
  • 31. 3.31 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Cooperación de Procesos  Los procesos independientes no pueden afectar o verse afectados por la ejecución de otros procesos  Los procesos cooperantes pueden afectar o ser afectados por la ejecución de otro proceso.  Ventajas de la cooperación entre procesos.  El intercambio de información  Aceleración de la computación  Modularidad  Conveniencia
  • 32. 3.32 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Problema productor-consumidor  Paradigma para cooperación de procesos, el proceso productor produce información que es consumida por un proceso de consumo  buffer ilimitado no pone ningún límite práctico en el tamaño del búfer  bounded-buffer asume que hay un tamaño de buffer fijo
  • 33. 3.33 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Comunicación Entre Procesos - Memoria Compartida  Un área de memoria compartida entre los procesos que desean comunicarse.  La comunicación está bajo el control de los procesos de los usuarios, no del sistema operativo.  El principal problema es proporcionar un mecanismo que permita a los procesos del usuario sincronizar sus acciones cuando acceden a la memoria compartida.  La sincronización se trata con gran detalle en los capítulos 6 y 7.
  • 34. 3.34 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Comunicación entre procesos - paso de mensajes  Mecanismo para que los procesos se comuniquen y sincronicen sus acciones.  Sistema de mensajes: los procesos se comunican entre sí sin recurrir a variables compartidas  IPC proporciona al menos dos operaciones:  enviar (mensaje)  recibir (mensaje)  El tamaño del mensaje puede ser fijo o variable.
  • 35. 3.35 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Paso de mensajes (cont.)  Si los procesos P y Q desean comunicarse, deben:  Establecer un enlace de comunicación entre ellos.  Intercambiar mensajes a través de enviar / recibir  Problemas de implementación:  ¿Cómo se establecen los enlaces?  ¿Se puede asociar un enlace a más de dos procesos?  ¿Cuántos enlaces puede haber entre cada par de procesos de comunicación?  ¿Cuál es la capacidad de un enlace?  ¿El tamaño de un mensaje que el enlace puede acomodar fijo o variable?  ¿Es un enlace unidireccional o bidireccional?
  • 36. 3.36 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Paso de mensajes (cont.)  Implementación del enlace de comunicación.  Físico:  Memoria compartida  Bus de hardware  Red  Lógico:  Directo o indirecto  Síncrono o asíncrono  Almacenamiento en búfer automático o explícito
  • 37. 3.37 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Comunicación directa  Los procesos deben nombrarse explícitamente:  enviar (P, mensaje) - enviar un mensaje al proceso P  recibir (Q, mensaje) - recibir un mensaje del proceso Q  Propiedades del enlace de comunicación.  Los enlaces se establecen automáticamente.  Un enlace está asociado exactamente con un par de procesos de comunicación.  Entre cada par existe exactamente un enlace.  El enlace puede ser unidireccional, pero generalmente es bidireccional.
  • 38. 3.38 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Comunicación indirecta  Los mensajes son dirigidos y recibidos desde buzones (también conocidos como puertos)  Cada buzón tiene una identificación única  Los procesos solo pueden comunicarse si comparten un buzón  Propiedades del enlace de comunicación.  Enlace establecido solo si los procesos comparten un buzón común  Un enlace puede estar asociado con muchos procesos.  Cada par de procesos puede compartir varios enlaces de comunicación.  El enlace puede ser unidireccional o bidireccional.
  • 39. 3.39 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Comunicación indirecta  Operaciones  crear un nuevo buzón (puerto)  enviar y recibir mensajes a través del buzón  destruir un buzón  Los primitivos se definen como: enviar (A, mensaje) - enviar un mensaje al buzón A recibir (A, mensaje) - recibe un mensaje del buzón A
  • 40. 3.40 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Comunicación indirecta  Intercambio de buzones  P1, P2, y P3 comparten buzón A  P1, envía; P2 y P3 reciben  ¿Quién recibe el mensaje?  Soluciones  Permitir que un enlace se asocie a lo sumo con dos procesos  Permitir solo un proceso a la vez para ejecutar una operación de recepción  Permitir que el sistema seleccione arbitrariamente el receptor. Se notifica al remitente quién era el destinatario.
  • 41. 3.41 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Sincronización  El paso del mensaje puede ser bloqueado o no bloqueado  El bloqueo se considera síncrono  Bloqueo de envío: el remitente se bloquea hasta que se recibe el mensaje  Bloqueo de recepción: el receptor se bloquea hasta que haya un mensaje disponible  El no bloqueo se considera asíncrono.  Envío sin bloqueo: el remitente envía el mensaje y continúa.  Recepción no bloqueante - el receptor recibe:  Un mensaje válido, o  Mensaje nulo  Diferentes combinaciones posibles  Si tanto el envío como la recepción están bloqueados, tenemos una cita
  • 42. 3.42 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Productor - Memoria compartida message next_produced; while (true) { /* produce an item in next_produced */ send(next_produced); }
  • 43. 3.43 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Productor - Memoria compartida message next_consumed; while (true) { receive(next_consumed) /* consume the item in next_consumed */ }
  • 44. 3.44 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Buffering  Cola de mensajes adjuntos al enlace.  Implementado en una de tres formas. 1. Capacidad cero: no hay mensajes en cola en un enlace. El remitente debe esperar al receptor (rendezvous) 2. Capacidad limitada: longitud finita de n mensajes El remitente debe esperar si el enlace está completo 3. Capacidad ilimitada: longitud infinita El remitente nunca espera
  • 45. 3.45 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Ejemplos de sistemas IPC - POSIX  POSIX Memoria Compartida  El proceso primero crea el segmento de memoria compartida shm_fd = shm_open (nombre, O CREAT | O RDWR, 0666);  También se utiliza para abrir un segmento existente.  Establecer el tamaño del objeto. ftruncate (shm_fd, 4096);  Use mmap () para asignar en memoria un puntero de archivo al objeto de memoria compartida  La lectura y escritura en la memoria compartida se realiza mediante el puntero devuelto por mmap ().
  • 46. 3.46 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition IPC POSIX Producer
  • 47. 3.47 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition IPC POSIX Consumer
  • 48. 3.48 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Ejemplos de sistemas IPC - Mach  La comunicación de Mach está basada en mensajes.  Incluso las llamadas al sistema son mensajes  Cada tarea obtiene dos puertos en la creación: Kernel y Notify  Los mensajes se envían y se reciben utilizando la función mach_msg ()  Puertos necesarios para la comunicación, creados a través de. mach_port_allocate ()  El envío y la recepción son flexibles, por ejemplo, cuatro opciones si el buzón está lleno:  Esperar indefinidamente  Espera a lo sumo n milisegundos  Volver inmediatamente  Cachear temporalmente un mensaje
  • 49. 3.49 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Mensajes de mach #include<mach/mach.h> struct message { mach_msg_header_t header; int data; }; mach port t client; mach port t server;
  • 50. 3.50 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Paso de mensajes Mach - Cliente
  • 51. 3.51 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Paso de mensajes Mach - Servidor
  • 52. 3.52 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Ejemplos de sistemas IPC - Windows  Centrado en el paso de mensajes a través de la facilidad de llamada de procedimiento local avanzado (LPC)  Solo funciona entre procesos en el mismo sistema.  Utiliza puertos (como buzones) para establecer y mantener canales de comunicación.  La comunicación funciona de la siguiente manera:  El cliente abre un identificador para el objeto de puerto de conexión del subsistema.  El cliente envía una solicitud de conexión.  El servidor crea dos puertos de comunicación privados y devuelve el identificador a uno de ellos al cliente.  El cliente y el servidor utilizan el identificador de puerto correspondiente para enviar mensajes o devoluciones de llamada y para escuchar las respuestas.
  • 53. 3.53 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Procedimiento local de llamadas en Windows
  • 54. 3.54 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Pipes  Actúa como conducto, permitiendo la comunicación de dos procesos.  Cuestiones:  ¿La comunicación es unidireccional o bidireccional?  En el caso de comunicación bidireccional, ¿es half o full- duplex?  ¿Debe existir una relación (es decir, padre-hijo) entre los procesos de comunicación?  ¿Se pueden utilizar las tuberías a través de una red?  Tuberías ordinarias: no se puede acceder desde fuera del proceso que lo creó. Normalmente, un proceso principal crea un conducto y lo utiliza para comunicarse con un proceso secundario que creó.  Canalizaciones con nombre: se puede acceder sin una relación padre-hijo.
  • 55. 3.55 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Ordinary Pipes  Las tuberías comunes permiten la comunicación en el estilo estándar de productor-consumidor  El productor escribe en un extremo (el extremo de escritura de la tubería (the write-end of the pipe)  El consumidor lee desde el otro extremo (el extremo de lectura de la tubería (the read-end of the pipe)  Las tuberías ordinarias son por lo tanto unidireccionales.  Requerir relación padre-hijo entre procesos de comunicación.  Windows llama a estos tubos anónimos anonymous pipes
  • 56. 3.56 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Named Pipes(Tubos con nombre)  Las tuberías con nombre son más poderosas que las tuberías comunes  La comunicación es bidireccional.  No es necesaria una relación padre-hijo entre los procesos de comunicación.  Varios procesos pueden utilizar la tubería con nombre para la comunicación.  Se proporciona en sistemas UNIX y Windows
  • 57. 3.57 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Comunicaciones en sistemas cliente-servidor  Sockets (sockets)  Llamadas a procedimiento remoto
  • 58. 3.58 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Sockets  Un socket se define como un punto final para la comunicación  Concatenación de la dirección IP y el puerto: un número incluido al inicio del paquete de mensajes para diferenciar los servicios de red en un host  El socket 161.25.19.8:1625 se refiere al puerto 1625 en el host 161.25.19.8  La comunicación consiste entre un par de hosts.  Todos los puertos inferiores a 1024 son bien conocidos, utilizados para servicios estándar  Dirección IP especial 127.0.0.1 (loopback) para referirse al sistema en el que se está ejecutando el proceso
  • 59. 3.59 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Socket Communication
  • 60. 3.60 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Sockets in Java  Three types of sockets  Connection-oriented (TCP)  Connectionless (UDP)  MulticastSocket class– data can be sent to multiple recipients  Consider this “Date” server in Java: https://github.com/greggagne/osc10e/blob/master/ch3/DateServer.java
  • 61. 3.61 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Sockets in Java The equivalent Date client https://github.com/greggagne/osc10e/blob/master/ch3/DateClient.java
  • 62. 3.62 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Llamadas a procedimiento remoto  La llamada a procedimiento remoto (RPC) extrae llamadas de procedimiento entre procesos en sistemas en red  Nuevamente usa puertos para la diferenciación de servicios.  Stubs: proxy del lado del cliente para el procedimiento real en el servidor  El código auxiliar del lado del cliente ubica el servidor y calcula los parámetros  El apéndice del lado del servidor recibe este mensaje, desempaqueta los parámetros calculados y realiza el procedimiento en el servidor  En Windows, el código de código auxiliar se compila a partir de la especificación escrita en Microsoft Interface Definition Language (MIDL)
  • 63. 3.63 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Procedimiento de llamadas remotas (cont.)  Representación de datos manejada a través del formato de Representación de datos externos (XDL) para tener en cuenta diferentes arquitecturas  Big-endian y little-endian  La comunicación remota tiene más escenarios de fallos que los locales.  Los mensajes se pueden entregar exactamente una vez en lugar de a lo sumo  El sistema operativo generalmente proporciona un servicio de cita (o matchmaker) para conectar al cliente y al servidor
  • 64. 3.64 Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Ejecución de RPC
  • 65. Silberschatz, Galvin and Gagne ©2018 Operating System Concepts – 10th Edition Fin del Capítulo 3