utfsm sistemas operativos n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Ayudantía 3: Procesos y threads PowerPoint Presentation
Download Presentation
Ayudantía 3: Procesos y threads

Loading in 2 Seconds...

play fullscreen
1 / 17

Ayudantía 3: Procesos y threads - PowerPoint PPT Presentation


  • 96 Views
  • Uploaded on

UTFSM - Sistemas Operativos. Ayudantía 3: Procesos y threads. Contenido. Process /threads Scheduling Context switch Comunicación: Productor consumidor Inter- Process communication (IPC) Remote Procedure Calls (RPC) Remote Method Invocation (RMI). Preguntas de procesos.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Ayudantía 3: Procesos y threads' - uttara


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
contenido
Contenido
  • Process/threads
  • Scheduling
  • Contextswitch
  • Comunicación: Productor consumidor
  • Inter-Processcommunication (IPC)
  • RemoteProcedureCalls (RPC)
  • RemoteMethodInvocation (RMI)

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

preguntas de procesos
Preguntas de procesos
  • ¿Qué es un proceso? ¿y un trabajo?
  • Un programa en ejecución.
  • ¿Qué es el PCB?

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

conceptos
Conceptos
  • Proceso:
    • Programcounter
    • Stack
    • Data
    • Y por debajo (PCB):
      • Estado
      • Registros (CPU)
      • Scheduling
      • Memoria (límite de memoria pedida)
      • Usuarios
      • Archivos abiertos

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

ejercicios de fork
Ejercicios de fork()
  • Explicación
  • Ejercicio: Indicar pid, getppid(), getpid() de los casos que aparecerán en la pizarra.

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

caracter sticas de un thread
Características de un thread
  • Un thread tiene acceso directo a la sección de data de un proceso, un proceso tiene una copia de la sección de data del proceso padre.
  • Los threads se pueden comunicar con otros threads del mismo proceso, los procesos deben utilizar “inter-processcommunication”.
  • Los threads casi no tienen overhead, los procesos sí.
  • Un thread se crea altiro, un proceso debe copiar el proceso padre.
  • Un thread puede controlar otros threads, un proceso sólo puede ser controlado por su proceso padre.

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

preguntas de contexto
Preguntas de contexto
  • ¿Qué 2 ventajas tiene un thread sobre múltiples procesos? ¿y una desventaja?
  •  Los threads son baratos de crear y destruir.
  •  Usan pocos recursos (no tienen espacios de memoria separados complétamente).
  •  Deben confiar entre sí para no dañar la memoria compartida.

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

recursos de threads y procesos
Recursos de threads y procesos
  • ¿Qué recursos se usan cuando se crea un proceso?
  •  Se colocan las instrucciones del programa y la “data” en la memoria, además de almacenar el/los threads. El código también se puede colocar en memoria.
  • ¿Qué recursos se usan cuando se crea un thread?
  •  Se debe crear un contexto, incluyendo una ubicación para almacenamiento de registros durante un cambio de contexto, y un stack local para almacenar las llamadas a procedimientos, valores de retorno y direcciones de retorno, además de almacenamiento local paralelo del thread.

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

preguntas de contexto1
Preguntas de contexto
  • ¿Qué es un cambio de contexto?
  •  El tiempo necesario para cambiar de un proceso a otro.
  • Indique las distintas maneras de “crear-nuevo-proceso”
  •  El padre sigue ejecutándose, el padre deja de ejecutarse hasta que terminen los hijos, padre e hijos comparten todas-algunas-ninguna de las variables.

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

preguntas de scheduling planificaci n
Preguntas de scheduling (planificación)
  • ¿Qué hace el planificador a largo plazo?
  •  Determina qué trabajos pertenecen a la lista de trabajos corriendo/esperando.
  • ¿Qué hace el planificador a corto plazo?
  •  Determina cuál de los trabajos correrá en el próximo burst del CPU.
  • ¿Cuál planificador tiene que ser el más rápido, para no desperdiciar recursos?
  •  El de corto plazo.

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

productor consumidor
Productor-consumidor
  • Describa el problema del productor-consumidor
  •  Un consumidor no podrá ver un mensaje hasta que el productor lo haya hecho, el productor no puede hacer un mensaje si el buffer está lleno.

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

productor consumidor1
Productor-consumidor
  • Implementación (compartiendo memoria):

#define BUFFER_SIZE 3

typedefstruct {

. . .

} item;

item buffer[BUFFER_SIZE];

int in = 0;

intout = 0;

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

productor consumidor2
Productor-consumidor

while (true) {

//Hacer un mensaje

item = producirMensaje();

//No producir si buffer esta lleno

while (

((in + 1) % BUFFER_SIZE ) == out);

//Meter mensaje en buffer

buffer[in] = item;

//Setearproximo elemento

in = (in + 1) % BUFFER_SIZE;

}

while (true) {

// No hacer nada, no hay mensajes

while (in == out);

// Consumir un mensaje

item = buffer[out];

//Indicar posicion libre en buffer

out = (out + 1) % BUFFER SIZE;

returnitem;

}

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

ejercicio
Ejercicio
  • ¿Cuánto buffer puede usar el productor?
  •  n-1 items.
  • Modificar solución anterior para que use todo el buffer.
  •  Agregando un arreglo compartido que indique posiciones libres del buffer, para así no comparar el último mensaje consumido con el último producido.

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

comunicaci n entre procesos
Comunicación entre procesos
  • Primitivas: enviar, recibir
  • Directa:
    • Links automáticos.
    • Links son de a pares de procesos.
    • Unidireccionales o bidireccionales.
  • Indirecta:
    • Existen casillas de correo únicas.
    • Comunicación entre procesos se hace compartiendo la casilla.
    • Varios procesos pueden compartir una casilla.
    • Unidireccionales o bidireccionales.

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

ejercicio ipc indirecto casillas de correo
Ejercicio IPC indirecto (casillas de correo)
  • Un proceso P quiere esperar 2 mensajes, uno de la casilla A y uno de la casilla B. ¿Qué secuencia de enviar-recibir se debiera ejecutar?
  • Si consideráramos mensajería sincrónica (una operación recibir hace que un proceso espere hasta que la casilla deje de estar vacía), idee un sistema que permita saber cuando una casilla está vacía.
      • Recordar que hay bloqueo.
  • ¿Y cómo se haría con mensajería asincrónica?
      • Recordar que no hay bloqueo.

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com

otros m todos de comunicaci n
Otros métodos de comunicación
  • Sockets
    • Serialización
  • Remoteprocedurecalls (RPC)
    • Stubs: Un prototipo del procedimiento/función.
    • Marshalling: Traspasar los parámetros a la función que corresponde.
    • Existe un daemon.
  • Remotemethodinvocation (RMI)
    • Stub
    • Llamada a un objeto remoto.

Ayudantía Sistemas Operativos - http://villaseca.wordpress.com