SlideShare una empresa de Scribd logo
1 de 24
Multiprogramación Procesos Cecilia Hernández 2007-1
Terminología ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],gcc firefox word firefox tiempo
Procesos ,[object Object],[object Object],[object Object],código (text segment) Datos estáticos (data segment) heap (mem dinámica) stack (mem dinámica) Espacio de direccionamiento SP PC
Multiplexando CPU en el tiempo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PCB ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estados de los procesos En ejecución listo Bloqueado Interrupción Sale de CPU Se despacha a CPU interrupción (completa E/S) Espera E/S
Colas de procesos ,[object Object],[object Object],[object Object],[object Object]
Colas de Procesos ,[object Object],Ptr head Ptr tail firefox pcb emacs pcb gcc pcb cat pcb firefox pcb Ptr head Ptr tail Encabezado cola espera Encabezado cola listos
Cambio de contexto ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cambio de contexto en linux ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Procesos en Unix ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Creación de procesos en Unix ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo fork ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Qué valor es impreso en pantalla?
Fork versus exec ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Variaciones de exec() ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Variaciones wait() pid_t wait(int *status) pid_t waitpid(pid_t, int *status, int options)
Shell Unix int main(int argc, char **argv) { while (1) { char *cmd = get_next_command(); int child_pid = fork(); if (child_pid == 0) { exec(cmd); // vea variaciones de exec panic(“exec failed!”); } else {   int st; waitpid(child_pid, &st,  WIFEXITED(st) ); } } }
Comunicación entre procesos ,[object Object],[object Object],[object Object],[object Object],[object Object]
Pipe en un proceso pipe Proceso de usuario write fd read fd -> Flujo de datos -> kernel
Código que representa pipe en un proceso ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Pipe en proceso padre/hijo después de fork pipe -> Flujo de datos -> write fd read fd write fd read fd fork Proceso padre Proceso hijo kernel
Comunicando padre con hijo en una dirección pipe -> Flujo de datos -> write fd read fd write fd read fd fork Proceso padre Proceso hijo kernel
Usando dup2 ,[object Object],[object Object]
Ejemplo usando dup2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Linux ud7 - gestion de procesos
Linux   ud7 - gestion de procesosLinux   ud7 - gestion de procesos
Linux ud7 - gestion de procesos
Javier Muñoz
 
Unidad 3 gestion de procesos en linux
Unidad 3 gestion de procesos en linuxUnidad 3 gestion de procesos en linux
Unidad 3 gestion de procesos en linux
jcfarit
 
Tareas programadas
Tareas programadasTareas programadas
Tareas programadas
LauC2457
 

La actualidad más candente (17)

Linux ud7 - gestion de procesos
Linux   ud7 - gestion de procesosLinux   ud7 - gestion de procesos
Linux ud7 - gestion de procesos
 
Manual linux
Manual linuxManual linux
Manual linux
 
Unidad 3 gestion de procesos en linux
Unidad 3 gestion de procesos en linuxUnidad 3 gestion de procesos en linux
Unidad 3 gestion de procesos en linux
 
INVESTIGACION DE ELEMENTOS Y CODIGOS DE C++
INVESTIGACION DE ELEMENTOS Y CODIGOS DE C++INVESTIGACION DE ELEMENTOS Y CODIGOS DE C++
INVESTIGACION DE ELEMENTOS Y CODIGOS DE C++
 
20 comandos linux que todos los administradores deben conocer
20 comandos linux que todos los administradores deben conocer20 comandos linux que todos los administradores deben conocer
20 comandos linux que todos los administradores deben conocer
 
Perl4 io
Perl4 ioPerl4 io
Perl4 io
 
Codigos de terminal linux
Codigos de terminal linuxCodigos de terminal linux
Codigos de terminal linux
 
Apunt2a
Apunt2aApunt2a
Apunt2a
 
Funciones de Cadenas/ Computación para ingenieros
Funciones de Cadenas/ Computación para ingenierosFunciones de Cadenas/ Computación para ingenieros
Funciones de Cadenas/ Computación para ingenieros
 
Ejercicios sobre procesos en Windows y Linux
Ejercicios sobre procesos en Windows y LinuxEjercicios sobre procesos en Windows y Linux
Ejercicios sobre procesos en Windows y Linux
 
Tareas programadas
Tareas programadasTareas programadas
Tareas programadas
 
Utilización de Ssh entre varios servidores.
Utilización de Ssh entre varios servidores.Utilización de Ssh entre varios servidores.
Utilización de Ssh entre varios servidores.
 
Apache Storm: Instalación
Apache Storm: InstalaciónApache Storm: Instalación
Apache Storm: Instalación
 
Assembler 2do laboratorio
Assembler 2do laboratorioAssembler 2do laboratorio
Assembler 2do laboratorio
 
Assembler 1er laboratorio
Assembler 1er laboratorioAssembler 1er laboratorio
Assembler 1er laboratorio
 
Apache Storm: Desarrollo
Apache Storm: DesarrolloApache Storm: Desarrollo
Apache Storm: Desarrollo
 
100 1
100 1 100 1
100 1
 

Destacado (9)

Base de Datos: introduccion a sistemas de base de datos
Base de Datos: introduccion a  sistemas de base de datosBase de Datos: introduccion a  sistemas de base de datos
Base de Datos: introduccion a sistemas de base de datos
 
BASE DE DATOS INTRODUCCION
BASE DE DATOS INTRODUCCIONBASE DE DATOS INTRODUCCION
BASE DE DATOS INTRODUCCION
 
Conceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de DatosConceptos Fundamentales de Base de Datos
Conceptos Fundamentales de Base de Datos
 
Taller de base de datos ags dic_2014 control escolar
Taller de base de datos ags dic_2014 control escolarTaller de base de datos ags dic_2014 control escolar
Taller de base de datos ags dic_2014 control escolar
 
Qué Son Las Bases De Datos
Qué Son Las Bases De DatosQué Son Las Bases De Datos
Qué Son Las Bases De Datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)
 
Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"Bases De Datos "Conceptos Basicos"
Bases De Datos "Conceptos Basicos"
 
Caracteristicas de las bases de datos
Caracteristicas de las bases de datosCaracteristicas de las bases de datos
Caracteristicas de las bases de datos
 

Similar a Procesos

7 standard io and pipes
7 standard io and pipes7 standard io and pipes
7 standard io and pipes
cyberleon95
 
7 standard io and pipes
7 standard io and pipes7 standard io and pipes
7 standard io and pipes
yimfer1
 
Semana 9 -_standard_io_and_pipes
Semana 9 -_standard_io_and_pipesSemana 9 -_standard_io_and_pipes
Semana 9 -_standard_io_and_pipes
victdiazm
 
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesos
painni
 

Similar a Procesos (20)

Procesos concurrencia
Procesos  concurrenciaProcesos  concurrencia
Procesos concurrencia
 
Gestión de procesos
Gestión de procesosGestión de procesos
Gestión de procesos
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un proceso
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesos
 
Procesos sistema computacional UNIX
Procesos sistema computacional UNIXProcesos sistema computacional UNIX
Procesos sistema computacional UNIX
 
procesos.ppt
procesos.pptprocesos.ppt
procesos.ppt
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
C++
C++ C++
C++
 
7 standard io and pipes
7 standard io and pipes7 standard io and pipes
7 standard io and pipes
 
7 standard io and pipes
7 standard io and pipes7 standard io and pipes
7 standard io and pipes
 
7 standard io and pipes
7 standard io and pipes7 standard io and pipes
7 standard io and pipes
 
Lw2010 Pedro Valera
Lw2010 Pedro ValeraLw2010 Pedro Valera
Lw2010 Pedro Valera
 
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En RedesLw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
Lw2010 - Uso De La Programacion En Linux Para La Seguridad En Redes
 
Procesos
ProcesosProcesos
Procesos
 
Procesos
ProcesosProcesos
Procesos
 
Procesos
ProcesosProcesos
Procesos
 
Semana 9 -_standard_io_and_pipes
Semana 9 -_standard_io_and_pipesSemana 9 -_standard_io_and_pipes
Semana 9 -_standard_io_and_pipes
 
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesos
 
Apuntes02ele
Apuntes02eleApuntes02ele
Apuntes02ele
 

Más de Stefano Salvatori (20)

Salida a Volcán Copahue Febrero 2011
Salida a Volcán Copahue Febrero 2011Salida a Volcán Copahue Febrero 2011
Salida a Volcán Copahue Febrero 2011
 
Salida a Aguas Calientes abril 2011
Salida a Aguas Calientes abril 2011Salida a Aguas Calientes abril 2011
Salida a Aguas Calientes abril 2011
 
Sistema de capas
Sistema de capasSistema de capas
Sistema de capas
 
Enumeracion de Goedel
Enumeracion de GoedelEnumeracion de Goedel
Enumeracion de Goedel
 
Maquinas Abstractas
Maquinas AbstractasMaquinas Abstractas
Maquinas Abstractas
 
Intro
IntroIntro
Intro
 
Pipelining
PipeliningPipelining
Pipelining
 
Memoria I I
Memoria  I IMemoria  I I
Memoria I I
 
I S A
I S AI S A
I S A
 
C P U Uniciclo
C P U  UnicicloC P U  Uniciclo
C P U Uniciclo
 
Mips1
Mips1Mips1
Mips1
 
Exc Int
Exc IntExc Int
Exc Int
 
DesempeñO
DesempeñODesempeñO
DesempeñO
 
Mips
MipsMips
Mips
 
Memoria I
Memoria  IMemoria  I
Memoria I
 
Codificacion
CodificacionCodificacion
Codificacion
 
Multiciclo
MulticicloMulticiclo
Multiciclo
 
Semaforos
SemaforosSemaforos
Semaforos
 
Planificacion Procesos Gral
Planificacion Procesos GralPlanificacion Procesos Gral
Planificacion Procesos Gral
 
Memoria Soporte Hw
Memoria Soporte HwMemoria Soporte Hw
Memoria Soporte Hw
 

Procesos

  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Estados de los procesos En ejecución listo Bloqueado Interrupción Sale de CPU Se despacha a CPU interrupción (completa E/S) Espera E/S
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. Variaciones wait() pid_t wait(int *status) pid_t waitpid(pid_t, int *status, int options)
  • 17. Shell Unix int main(int argc, char **argv) { while (1) { char *cmd = get_next_command(); int child_pid = fork(); if (child_pid == 0) { exec(cmd); // vea variaciones de exec panic(“exec failed!”); } else { int st; waitpid(child_pid, &st, WIFEXITED(st) ); } } }
  • 18.
  • 19. Pipe en un proceso pipe Proceso de usuario write fd read fd -> Flujo de datos -> kernel
  • 20.
  • 21. Pipe en proceso padre/hijo después de fork pipe -> Flujo de datos -> write fd read fd write fd read fd fork Proceso padre Proceso hijo kernel
  • 22. Comunicando padre con hijo en una dirección pipe -> Flujo de datos -> write fd read fd write fd read fd fork Proceso padre Proceso hijo kernel
  • 23.
  • 24.