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 procesosJavier 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 linuxjcfarit
 
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++Alfredo Rivera
 
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 conocerOpenWebinars.net
 
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 ingenierosMaria jose Ramirez perez
 
Tareas programadas
Tareas programadasTareas programadas
Tareas programadasLauC2457
 
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.Javier Martin Rivero
 
Apache Storm: Instalación
Apache Storm: InstalaciónApache Storm: Instalación
Apache Storm: InstalaciónStratebi
 
Apache Storm: Desarrollo
Apache Storm: DesarrolloApache Storm: Desarrollo
Apache Storm: DesarrolloStratebi
 

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

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 datosYefri Altamirano
 
BASE DE DATOS INTRODUCCION
BASE DE DATOS INTRODUCCIONBASE DE DATOS INTRODUCCION
BASE DE DATOS INTRODUCCIONejjsm
 
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 escolarLuiz Castro
 
Qué Son Las Bases De Datos
Qué Son Las Bases De DatosQué Son Las Bases De Datos
Qué Son Las Bases De DatosMarichelo Gómez
 
Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)Diapositivas sobre BD (Base de Datos)
Diapositivas sobre BD (Base de Datos)angeljlp08
 
Caracteristicas de las bases de datos
Caracteristicas de las bases de datosCaracteristicas de las bases de datos
Caracteristicas de las bases de datosNelson Rubio
 

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

Procesos concurrencia
Procesos  concurrenciaProcesos  concurrencia
Procesos concurrenciapuracastillo
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un procesoi92almaa
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosChiNo Sosa Erazo
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosUCC
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosLidia
 
7 standard io and pipes
7 standard io and pipes7 standard io and pipes
7 standard io and pipesJuan Camilo
 
7 standard io and pipes
7 standard io and pipes7 standard io and pipes
7 standard io and pipescyberleon95
 
7 standard io and pipes
7 standard io and pipes7 standard io and pipes
7 standard io and pipesyimfer1
 
Lw2010 Pedro Valera
Lw2010 Pedro ValeraLw2010 Pedro Valera
Lw2010 Pedro Valeraguestf280e2
 
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 Redesguest5d7f33c
 
Semana 9 -_standard_io_and_pipes
Semana 9 -_standard_io_and_pipesSemana 9 -_standard_io_and_pipes
Semana 9 -_standard_io_and_pipesvictdiazm
 
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesospainni
 
Apuntes02ele
Apuntes02eleApuntes02ele
Apuntes02eleparrau
 

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.