Procesos: Control y Planificación Unidad II Objetivos • Aboradar la sub-utilización del CPU: latencia y paralelismo • Entender qué es un proceso • Comprender el cómo se implementan un Sistema Operativo ¿Qué veremos hoy? 1. Concepto de Proceso 1.¿Para qué? 2.¿Qué es un proceso? 2. Comunicación entre procesos 3. Procesos y organización de memoria 4. Comunicación entre procesos Procesos: ¿Para qué? 1. Reducción de latencia (tiempos de espera) Fte: http://bit.ly/2TYlHoT Latencia de procesos (tiempo de espera) Procesos secuenciales: ! 40 segundos para que segundo proceso se complete. Concurrentemente: ! Un proceso termina antes ! El otro proceso es más lento que si tuviese toda la máquina para él solo 2. Incremento de uso de CPU ! Utilizar CPU en otro proceso, mientras uno está en espera. ¿Qué es un proceso? Proceso • Corresponde a la instancia de un programa que se está ejecutando • Los SOs modernos ejecutan procesos de forma simultánea • Ej: Word, Excel y Spotify pueden ejecutarse en paralelo. • Contra-ejemplo (un solo proceso) • Ventanas múltiples de Firefox Procesos en el mundo real • Los procesos y el paralelismo existen de hace mucho más tiempo que los Sist. Operativos. • Ej: A un trabajador le toma 10 meses fabricar un objeto. • La compañía puede contratar 100 trabajadores para fabricar 100 objetos. • Latencia para primer objeto >> 1/10 meses • Velocidad será < 10 objetos por mes (si no se logra paralelismo perfecto) • Y 100 trabajadores haciendo 10mil objetos, pueden lograr una velocidad > 10 objetos por mes Ahora a la máquina… Procesos y memoria • Cada proceso tiene su propio espacio de memoria reservado •Su propio espacio de direcciones de memoria - *(char *=0xc000) diferente para P1 y P2. •Sus propios archivos abiertos •Sus propios CPUs virtuales (preemptive multitasking: tiempos de CPU para cada proceso) • Simplifica el modelo de programación. •gcc es independiente de la ejecución de Word. • A veces se requiere interacción entre procesos. •A través de archivos: editor de texto edita archivos de texto, compilador compila archivo. •Entre comandos: pipes o tuberías en UNIX/Linux. Comunicación entre procesos En tiempo real: a) Intercambiando mensajes a través del kernel b) Compartiendo una región de memoria física c) A través de señales asíncronas ¿Objetivos logrados? • Abordar la sub-utilización del CPU: latencia y paralelismo • Entender qué es un proceso • Comprender el cómo se implementan un Sistema Operativo