La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Universidad Central de Venezuela Procesos e IPC 2do. Semestre 2006.

Presentaciones similares


Presentación del tema: "Universidad Central de Venezuela Procesos e IPC 2do. Semestre 2006."— Transcripción de la presentación:

1 Universidad Central de Venezuela Procesos e IPC 2do. Semestre 2006

2 2/68 Universidad Central de Venezuela Semestre 2-2006 ¿Por qué procesos? Simplicidad + Velocidad Cientos de cosas que se mantienen en el sistema ¿Cómo hace estas cosas simples?  Separa cada una en un proceso aislado  Descomposición ¿Cómo aumenta la velocidad?  Solapa las ráfagas de E/S de un proceso con las ráfagas de CPU de otro gcc emacs nfsd lpr ls www emacsnfsd lpr ls www OS

3 3/68 Universidad Central de Venezuela Semestre 2-2006 ¿Qué es un proceso? Una tarea creada por el SO, ejecutándose en un ambiente de máquina virtual limitado – un CPU virtual, ambiente de memoria virtual, que realiza la interfaz al SO por medio de las llamadas al sistema (system calls) La unidad de ejecución La unidad de planificación Hilo de ejecución + Espacio de direcciones Es un programa en ejecución  Secuencial, ejecución de un programa una instrucción a la vez. Es igual hablar de “trabajo” o “tarea” o “proceso secuencial”

4 4/68 Universidad Central de Venezuela Semestre 2-2006 ¿Qué es un programa? Un programa consiste de:  Código: instrucciones de máquina  Datos: variables almacenadas y manipuladas en la memoria variables inicializadas (globales) variables asignadas dinámicamente (malloc, new) variables de la pila (variables automáticas de C, argumentos de funciones)  DLLs: las bibliotecas que no fueron compiladas o enlazadas con el programa. contienen código & datos, posiblemente compartido con otros programas  archivos mapeados: segmentos de memoria que contienen variables. (mmap()) usado frecuentemente en programas de bases de datos Un proceso es un programa en ejecución

5 5/68 Universidad Central de Venezuela Semestre 2-2006 Preparando un programa archivo fuente compilador/ ensamblador archivos.o Enlazador Archivo ejecutable (debe seguir un formato estándar, Tal como ELF sobre Linux, Microsoft PE sobre Windows) Encabezado Código Datos inicializados BSS Tabla de símbolos Números de línea Refer. ext. librerías estáticas (libc, streams…)

6 6/68 Universidad Central de Venezuela Semestre 2-2006 Ejecutando un programa El SO crea un “proceso” y asigna memoria para él El cargador:  lee e interpreta el archivo ejecutable  establece la memoria del proceso para que contenga el código & datos desde el ejecutable  mete “argc”, “argv”, “envp” en la pila  establece apropiadamente los registros del CPU & llama “__start()” [Parte de crt0] El programa comienza ejecutándose en __start(), el cual llama a main()  decimos que el “proceso” está ejecutándose y no pensamos más en el “programa” Cuando main() retorna, crt0 llama a “exit()”  destruye el proceso y retorna todos los recursos

7 7/68 Universidad Central de Venezuela Semestre 2-2006 Proceso != Programa Encabezado Código Datos inicializados BSS Tabla de símbolos Números de línea Refer. ext. Código Datos inicializados BSS Heep Pila DLL’s segmentos mapeados Ejecutable Espacio de direcciones del proceso El programa es pasivo Código + datos El proceso es un programa en ejecución pila, registros, contador de programa Ejemplo: Ejecutemos dos IE: - Mismo programa - Procesos separados

8 8/68 Universidad Central de Venezuela Semestre 2-2006 Estados de un proceso Muchos procesos en el sistema, solo uno en el procesador “Estado de ejecución” de un proceso:  Indica que esta haciendo Básicamente tres (3) estados: Preparado: el proceso esta a la espera de que le asignen a un procesador En ejecución: se están ejecutando las instrucciones en el procesador En espera: esta esperando a que se produzca un evento, i.e. terminación de E/S Los procesos se mueven a través de diferentes estados

9 9/68 Universidad Central de Venezuela Semestre 2-2006 Transiciones de estado de los procesos Nuevo PreparadoEn ejecución Terminado Es espera admitido Interrupción En espera de evento o de terminación de E/S Terminación de un evento o de operación de E/S despacho salida Los procesos saltan a través de los estados como consecuencia de: Las acciones que ellos realizan, p.ej. llamadas al sistema (system calls) Acciones realizadas por el SO, p.ej. replanificación Acciones externas, p.ej. E/S

10 10/68 Universidad Central de Venezuela Semestre 2-2006 Estructuras de datos de los procesos El SO representa un proceso usando un PCB  Process Control Block (bloque de control de procesos)  Tiene todos los detalles de un proceso Id del proceso Estado del proceso Registros de propósito general Apuntador a la pila Contador de programa Información contable Credenciales de seguridad Nombre de usuario del propietario Apuntadores a la cola Máscaras de señales Administración de memoria …

11 11/68 Universidad Central de Venezuela Semestre 2-2006 Cambio de contexto Para un proceso ejecutándose  Todos los registros son cargados en el CPU y modificados P.ej. Contador de Programa, Apuntador a la Pila, Registros de Propósito General Cuando un proceso solicita el CPU, el SO  Salvaguarda los valores de los registros en el PCB de ese proceso Para ejecutar otro proceso, el SO  Carga los valores de los registros desde el PCB de ese proceso  Cambio de contexto  Tarea de conmutar el CPU desde un proceso a otro  Muy dependiente de la máquina debido a los tipos de registros

12 12/68 Universidad Central de Venezuela Semestre 2-2006 Detalles del cambio de contexto Bastante difícil de poner en práctica  El SO debe salvaguardar el estado sin cambiar dicho estado  Debería ejecutarse sin tocar ningún registro CISC: una única instrucción salvaguarda todo el estado RISC: reserva registros para el núcleo (kernel)  O alguna forma de salvaguardar un registro y entonces continuar Desperdicio: El CPU está ocioso durante un cambio de contexto  Explicito: el costo directo de cargar/almacenar registros de/en memoria principal  Implícito: Costo de oportunidad al realizar el vaciado de caches útiles (cache, TLB, etc.) Espera por el pipeline para su vaciado en procesadores segmentados

13 13/68 Universidad Central de Venezuela Semestre 2-2006 Intercambio de Contexto

14 14/68 Universidad Central de Venezuela Semestre 2-2006 Intercambio de Contexto Cuando el CPU intercambia a otro proceso, el sistema debe salvar el estado del proceso actual y cargar el estado salvado del nuevo proceso intercambiado El tiempo usado en el Intercambio de Contexto es overhead; el sistema no hace trabajo util mientras dura el intercambio Su duración depende del soporte del hardware

15 15/68 Universidad Central de Venezuela Semestre 2-2006 Colas de Planificación de Procesos Cola de Trabajos – conjunto de todos los procesos en el sistema Cola de Listo – conjunto de todos los procesos residentes en memoria principal, listos y esperando ser ejecutados Colas de Dispositivos – conjunto de procesos esperando por algún dispositivo de E/S Los procesos emigran entre varias colas

16 16/68 Universidad Central de Venezuela Semestre 2-2006 Colas de Planificación de Procesos

17 17/68 Universidad Central de Venezuela Semestre 2-2006 Representación de la Planificación de Procesos

18 18/68 Universidad Central de Venezuela Semestre 2-2006 Planificadores Planificación a Largo Plazo (o planificador de trabajos) – selecciona cuales procesos deben ser admitidos en la cola de listos Planificación A Corto Plazo (Planificador del CPU) – cual proceso listo se ejecutará a continuación y le asigna el CPU

19 19/68 Universidad Central de Venezuela Semestre 2-2006 Adición de la Planificación a Mediano Plazo

20 20/68 Universidad Central de Venezuela Semestre 2-2006 Planificadores La Planificación a Corto Plazo es invocada muy frecuentemente (milisegundos)  (debe ser rápida) La Planificación a Largo Plazo es invocada muy infrecuentemente (segundos, minutos)  (puede ser lento) La Planificación a Largo Plazo controla el grado de multiprogramación

21 21/68 Universidad Central de Venezuela Semestre 2-2006 Planificadores Los procesos pueden ser descritos como:  procesos I/O-bound– utilizan más tiempo haciendo I/O que cálculo, muchas ráfagas cortas de CPU  procesos CPU-bound– utilizan más tiempo haciendo cálculo que I/O, pocas ráfagas largas de CPU

22 22/68 Universidad Central de Venezuela Semestre 2-2006 ¿Cómo crear un proceso? ¿Doble clic sobre un ícono? Después de arrancar el SO inicia el primer proceso  P.eje. sched en Solaris, ntoskrnel.exe en XP El primer proceso crea otros procesos:  el creador es llamado el proceso padre  el creado es llamado el proceso hijo  la relación padre/hijo es expresada por un árbol de procesos Por ejemplo, en UNIX el segundo proceso es llamado init  éste crea todos los gettys (procesos para realizar login) y demonios  nunca debe morir  controla la configuración del sistema (#procesos, prioridades…) Explorer.exe en Windows para la interfaz gráfica

23 23/68 Universidad Central de Venezuela Semestre 2-2006 Procesos bajo UNIX La llamada al sistema fork() es la única vía para crear un nuevo proceso int fork() hace muchas cosas seguidamente:  crea un nuevo espacio de direcciones  copia el espacio de direcciones del padre en el del hijo  comienza un nuevo hilo de control en el espacio de direcciones del hijo  padre e hijo son equivalentes -- casi en el padre, fork() retorna un entero distinto de cero en el hijo, fork() retorna un cero la diferencia permite al padre y al hijo distinguirse int fork() retorna DOS VECES!

24 24/68 Universidad Central de Venezuela Semestre 2-2006 Creación de Procesos en UNIX Cada proceso, excepto el proceso 0, es creado por la llamada del sistema Fork() Fork() asigna (allocates) una entrada en la tabla de procesos y asigna un único PID (process ID) al proceso hijo El hijo obtiene una copia de la imagen del proceso padre:Hijo y padre están ejecutando el mismo código fork(). Pero fork() retorna el PID del hijo al proceso padre y retorna 0 al proceso hijo

25 25/68 Universidad Central de Venezuela Semestre 2-2006 Creación de Procesos en UNIX El Proceso 0 es creado en tiempo de boot (boot time) y se vuelve el “swapper” después de forking el proceso 1 (el proceso INIT) Cuando un usuario hace login: proceso 1 crea un proceso para ese usuario

26 26/68 Universidad Central de Venezuela Semestre 2-2006 Ejemplo main(int argc, char **argv) { char *myName = argv[1]; int cpid = fork(); if (cpid == 0) { printf(“The child of %s is %d\n”, myName, getpid()); exit(0); } else { printf(“My child is %d\n”, cpid); exit(0); } ¿Qué imprime este programa?

27 27/68 Universidad Central de Venezuela Semestre 2-2006 Extraño pero verdadero lace:tmp cc a.c lace:tmp./a.out foobar The child of foobar is 23874 My child is 23874 Padre Hijo Sistema Operativo fork() retsys v0=0v0=23874

28 28/68 Universidad Central de Venezuela Semestre 2-2006 fork es la mitad de la historia fork() nos consigue un nuevo espacio de direcciones,  pero el padre y el hijo comparten TODO memoria, estado en el sistema operativo int exec(char *programName) completa el cuadro  saca afuera el contenido del espacio de direcciones del invocador  Reemplaza éste con el programa nombrado por programName  comienza ejecutándose en header.startPC  No retorna Pros: claro, simple Contras: operaciones duplicadas

29 29/68 Universidad Central de Venezuela Semestre 2-2006 Comenzar un nuevo programa main(int argc, char **argv) { char *myName = argv[1]; char *progName = argv[2]; int cpid = fork(); if (cpid == 0) { printf(“The child of %s is %d\n”, myName, getpid()); execlp(“/bin/ls”, // executable name “ls”, NULL); // null terminated argv printf(“OH NO. THEY LIED TO ME!!!\n”); } else { printf(“My child is %d\n”, cpid); exit(0); }

30 30/68 Universidad Central de Venezuela Semestre 2-2006 Un árbol de procesos sobre un Solaris Típico

31 31/68 Universidad Central de Venezuela Semestre 2-2006 Procesos bajo Windows Se crean en la API de Win32 a través de la función CreateProcess() CreateProcess() requiere la carga de un programa específico en el espacio de direcciones del proceso hijo durante su creación. CreateProcess() requiere que se le pasen al menos 10 parámetros. Ver ejemplo Silberschatz, pág. 85.

32 32/68 Universidad Central de Venezuela Semestre 2-2006 Terminación de procesos El proceso ejecuta su última instrucción y el SO decide (exit)  Datos de salida desde el hijo a el padre (via wait)  Los recursos del proceso son desasignados por el SO El padre puede terminar la ejecución de procesos hijos (abort)  El hijo a excedido el uso de los recursos asignados  La tarea asignada al hijo ya no es necesaria  Si el padre esta abandonando el sistema Algunos SO’s no permiten que un hijo continúe si su padre ya ha terminado  Todos los hijos terminados – terminación en cascada

33 33/68 Universidad Central de Venezuela Semestre 2-2006 Comunicación Interprocesos (InterProcess Communication - IPC)

34 34/68 Universidad Central de Venezuela Semestre 2-2006 Procesos Cooperantes Procesos Independientes:  No pueden afectar o verse afectados por la ejecución de otros procesos. Procesos Cooperantes:  Pueden afectar o verse afectados por la ejecución de otros procesos.

35 35/68 Universidad Central de Venezuela Semestre 2-2006 ¿Por qué IPC? Procesos independientes vs. cooperativos ¿Por qué dejar a los procesos cooperar?  Compartir información  Acelerar los cálculos  Modularidad  Conveniencia Dos modelos fundamentales  Memoria compartida  Paso de mensajes

36 36/68 Universidad Central de Venezuela Semestre 2-2006 Modelos de IPC: a) Paso de mensajes b) Memoria Compartida

37 37/68 Universidad Central de Venezuela Semestre 2-2006 Memoria Compartida Los procesos establecen un segmento de memoria como compartida  Normalmente parte de la memoria del proceso que crea el segmento de memoria compartida. Otros procesos deben conectarse a su espacio de memoria. Requiere que los procesos acuerden eliminar la protección de memoria para la sección compartida  Recordar que el SO habitualmente protege a los procesos de escribir en la memoria de los otros

38 38/68 Universidad Central de Venezuela Semestre 2-2006 Problema del Productor-Consumidor Paradigma para procesos cooperantes, consiste en un proceso productor que produce información que es consumida por un proceso consumidor Dos variantes:  Búfer no acotado: no coloca limites prácticos sobre el tamaño del buffer  Búfer no acotado: asume que el buffer es de un tamaño fijo

39 39/68 Universidad Central de Venezuela Semestre 2-2006 Productor/Consumidor usando memoria compartida El proceso productor produce información consumida por el proceso consumidor  Un paradigma muy común. #define BUFFER_SIZE 10 typedef struct{..some stuff.. }item; item buffer[BUFFER_SIZE]; int in = 0 int out = 0;

40 40/68 Universidad Central de Venezuela Semestre 2-2006 Productor/Consumidor (1/2) Proceso productor: item nextProduced; while(true) { /*Produce an item in next produced*/ while(((in + 1) % BUFFER_SIZE) == out) //do nothing… buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; }

41 41/68 Universidad Central de Venezuela Semestre 2-2006 Productor/Consumidor (2/2) Proceso consumidor: item nextConsumed; while(true) { while(in == out) //do nothing.. nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; /* Consume item in nextConsumed */ }

42 42/68 Universidad Central de Venezuela Semestre 2-2006 Sincronización El código anterior solo permite BUFFER_SIZE-1 ítems al mismo tiempo. Requiere que el programador de la aplicación escriba explicítamente el código para acceder y manipular la memoria compartida. Para remediar esto, los procesos necesitarían sincronizar sus accesos al búfer. (Este es un largo tema, se tratará posteriormente).

43 43/68 Universidad Central de Venezuela Semestre 2-2006 #include main(int argc, char **argv) { char* shared_memory; const int size = 4096; int segment_id = shmget(IPC_PRIVATE, size, S_IRUSR |S_IWUSR); int cpid = fork(); if (cpid == 0) { shared_memory = (char*) shmat(segment_id, NULL, 0); sprintf(shared_memory, "Hi from process %d",getpid()); } else { wait(NULL); shared_memory = (char*) shmat(segment_id, NULL, 0); printf("Process %d read: %s\n", getpid(), shared_memory); shmdt(shared_memory); shmctl(segment_id, IPC_RMID, NULL); } EjemploEjemplo

44 44/68 Universidad Central de Venezuela Semestre 2-2006 Paso de Mensajes Mecanismo para que los procesos comuniquen y sincronicen sus acciones Es un sistema de mensajes, los procesos se comunican entre sí, sin basarse en variables compartidas La facilidad de Pase de Mansajes provee dos operaciones:  send(mensaje) – el mensaje puede ser de tamaño fijo o variable  receive(mensaje)

45 45/68 Universidad Central de Venezuela Semestre 2-2006 Paso de Mensajes Si P y Q necesitan comunicarse, requerirán:  Establecer un enlace de comunicación entre ellos  Intercambiar mensajes através de send/receive Implementación de enlaces de comunicación  Física (e.g., Memoria Compartida,bus hardware  Lógica (e.g., propiedades lógicas) Normalmente requiere la intervención del núcleo (kernel)

46 46/68 Universidad Central de Venezuela Semestre 2-2006 Cuestiones de Implementación ¿Cómo se establecen los enlaces? ¿Cómo un enlace se puede asociar con dos o más procesos? ¿Cuántos enlaces se pueden establecer entre cada par de procesos comunicantes? ¿Cuál es la capacidad del enlace? ¿Es fijo o variable el tamaño de los mensajes que el enlace puede aceptar? ¿EL enlace es unidireccional o bi-direccional?

47 47/68 Universidad Central de Venezuela Semestre 2-2006 Comunicación Directa Los procesos deben nominar explícitamente con quien se comunican:  send (P, mensaje) – envía un mensaje al proceso P  receive(Q, mensaje) – recibe un mensaje del proceso Q

48 48/68 Universidad Central de Venezuela Semestre 2-2006 Comunicación Directa Propiedades del enlace de comunicación  El enlace se establece automáticamente.  Un enlace está asociado con exactamente un par de procesos comunicantes.  Entre cada par de procesos existe exactamente un enlace.  El enlace puede ser unidireccional, pero usualmente es bi-direccional.

49 49/68 Universidad Central de Venezuela Semestre 2-2006 Comunicación Indirecta Los mensajes son dirigidos y recibidos desde buzones (también referidos como puertos)  Cada buzón tiene un identificador único  Los procesos pueden comunicarse sólo si comparten un buzón

50 50/68 Universidad Central de Venezuela Semestre 2-2006 Comunicación Indirecta Propiedades del enlace de comunicación  El enlace se establece sólo si los procesos comparten un buzón  Un enlace puede establecerse con muchos procesos  Cada par de procesos puede compartir varios enlaces de comunicación  El enlace puede ser unidireccional o bi- direccional

51 51/68 Universidad Central de Venezuela Semestre 2-2006 Comunicación Indirecta Operaciones  Crear un nuevo buzón  Enviar y Recibir mensajes mediante el buzón  Destruir un buzón Las primitivas se definen como : send (A, mensaje) – envía un mensaje al buzón A receive (A, mensaje) – recibe un mensaje del buzón A

52 52/68 Universidad Central de Venezuela Semestre 2-2006 Comunicación Indirecta Buzones Compartidos  P 1, P 2, y P 3 comparten el buzón A  P 1, envía; P 2 y P 3 reciben  ¿Quién obtiene el mensaje? Soluciones  Permitir que un enlace este asociado con máximo dos procesos  Permitir que sólo un proceso a la vez pueda realizar la operación de recibir  Permitir al sistema seleccionar arbitrariamente al receptor. Al emisor se le notifica quien fue el receptor

53 53/68 Universidad Central de Venezuela Semestre 2-2006 Sincronización El pase de mensajes puede ser bloqueante o no bloqueante Bloqueante se considera sincrónico  send Bloqueante : el emisor se bloquea hasta que el receptor recibe el mensaje  receive Bloqueante : el receptor se bloquea hasta que hay un mensaje disponible Cuando send y receive son bloqueantes, se dice que tenemos un rendezvous (encuentro) entre los procesos.

54 54/68 Universidad Central de Venezuela Semestre 2-2006 Sincronización El pase de mensajes puede ser bloqueante o no bloqueante No Bloqueante se considera asincrónico  send no Bloqueante : el emisor envía el mensaje y continua  receive no Bloqueante : el receptor recibe un mensaje válido o nulo (no espera por un mensaje disponible)

55 55/68 Universidad Central de Venezuela Semestre 2-2006 Almacenamiento en búfer Búfer de capacidad cero  Necesita un transmisor síncrono. Búfer de capacidad limitada  Si el búfer está lleno, el transmisor debe bloquearse. Búfer de capacidad ilimitada  El transmisor nunca se bloquea

56 56/68 Universidad Central de Venezuela Semestre 2-2006 Comunicación Cliente-Servidor Sockets Remote Procedure Calls (RPC) Remote Method Invocation (RMI, Java)

57 57/68 Universidad Central de Venezuela Semestre 2-2006 Sockets Un socket se define como un endpoint para la comunicación Es la concatenación de una dirección IP y un puerto El socket 161.25.19.8:1625 se refiere al puerto 1625 sobre el host 161.25.19.8 La comunicación consiste en un par de sockets

58 58/68 Universidad Central de Venezuela Semestre 2-2006 Socket Communication Analice Ejemplo Planteado en Silberschatz, Cap. 3.

59 59/68 Universidad Central de Venezuela Semestre 2-2006 Sockets Los servidores que implementan servicios específicos se ponen a la escucha de puertos conocidos. Por debajo de 1024. A los clientes se les asignan números de puertos arbitrarios superiores a 1024. Todas las conexiones deben disponer de una pareja distinta de sockets. Se considera una forma de bajo nivel de comunicación entre sistemas distribuidos:  Sólo permiten que se intercambie un flujo no estructurado de bytes entre los hilos de comunicación.  Es responsabilidad de la aplicación cliente o servidor imponer una estructura a los datos

60 60/68 Universidad Central de Venezuela Semestre 2-2006 Remote Procedure Calls Remote Procedure Call (RPC) es una abstracción para las llamadas a procedimientos entre sistemas en una red. Los mensajes se encuentran bien estructurados, en vez de simples paquetes de datos. Cada msj envía a un demonio RPC que escucha en un puerto del sistema remoto. Cada msj contiene un identificador de la función que se va a ejecutar y los parámetros para dicha función.

61 61/68 Universidad Central de Venezuela Semestre 2-2006 Remote Procedure Calls La función es ejecutada y devuelve los posibles datos de salida a quien haya ejecutado la solicitud usando un msj diferente. Un Puerto es simplemente un número incluido al principio del paquete

62 62/68 Universidad Central de Venezuela Semestre 2-2006 Semántica RPC Client-Stubs: Oculta los detalles de la comunicación del lado del cliente.  El Client-Stub localiza el puerto en el servidor y empaqueta (marshalling) los parámetros.  El Client-StubTransmite el msj al server. Server-Stub: Recibe el mensaje, desempaqueta los parámetros, y realiza el procedimiento sobre el servidor.

63 63/68 Universidad Central de Venezuela Semestre 2-2006 Consideración Especiales Diferencias en la representación de los datos entre el cliente y servidor. Semántica de una llamada. Actuar en respuesta a los msj:  Exactamente una vez.  Como mínimo una vez. Comunicación entre cliente y servidor:  Asociación predeterminada en direcciones fijas de puerto.  Asociación dinámica a través de la negociación. RPC es sumamente útil en Sistemas Archivos Distribuidos.

64 64/68 Universidad Central de Venezuela Semestre 2-2006 Ejecución de RPC

65 65/68 Universidad Central de Venezuela Semestre 2-2006 Remote Method Invocation Remote Method Invocation (RMI) es un mecanismo Java similar a RPCs. RMI permite a un programa Java sobre una máquina invocar un método sobre un objeto remoto.

66 66/68 Universidad Central de Venezuela Semestre 2-2006 RPC vs RMI RPC:  Programación procedimental (procedimentos ó funciones).  Parámetros son estructuras de datos ordinarias.  Client-Stubs y Server-Stubs RMI:  Invocación de métodos correspondientes a objetos remotos.  Pasar objetos como parámetros a métodos remotos.  Stubs y Esqueletos: Stubs es un proxy para el objeto remoto y reside en el cliente. El esqueleto reside en el server, desenvuelve los parámetros e invoca al método deseado, regresa el resultado al Stub.

67 67/68 Universidad Central de Venezuela Semestre 2-2006 Marshalling Parameters

68 68/68 Universidad Central de Venezuela Semestre 2-2006 Tarea de Investigación Investigue como se realiza la creación de procesos utilizando la API de Win32. Investigue como se realiza la creación de procesos en Java. Investigue como los SO POSIX, Mach y WinXP implementan los mecanismos de Paso de Mensajes


Descargar ppt "Universidad Central de Venezuela Procesos e IPC 2do. Semestre 2006."

Presentaciones similares


Anuncios Google