Agenda Sistemas Operativos Notas Prueba #6. Procesos. Clase # 13 Procesos Lunes, 13 de Mayo de 2002 Iván Bernal, Ph.D. Escuela Politécnica Nacional email: imbernal@mailfie.epn.edu.ec Copyright @2002, I. Bernal 05/13/2002 Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 1 05/13/2002 Sistemas Operativos Procesos (1) – Se ejecuta cada programa por decenas o centenas de ms ms.. – El CPU solo ejecuta un programa en un instante dado. – En un segundo el CPU puede trabajar en varios programas. – Se da la ilusión de paralelismo. – En realidad pseudo pseudo--paralelismo paralelismo:: no es paralelismo real en hardware (n procesadores). Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 2 Procesos (2) Abstracción para un programa en ejecución. El concepto más importante en SOs SOs.. En un sistema con Multiprogramación, el CPU se comparte entre diferentes programas: 05/13/2002 Iván Bernal, Ph.D Ph.D.. 3 Abstracción para un programa en ejecución. El concepto más importante en SOs SOs.. En un sistema con Multiprogramación, el CPU se comparte entre diferentes programas: – Se ejecuta cada programa por decenas o centenas de ms ms.. – El CPU solo ejecuta un programa en un instante dado. – En un segundo el CPU puede trabajar en varios programas. – Se da la ilusión de paralelismo. – En realidad pseudo pseudo--paralelismo paralelismo:: no es paralelismo real en hardware (n procesadores). 05/13/2002 Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 4 1 Procesos-- Modelo (3) Procesos Procesos-- Modelo (4) Procesos Todo el software a ejecutarse, incluso el SO, se organiza en un conjunto de procesos secuenciales (o simplemente procesos). Un proceso es simplemente un programa en ejecución, lo que incluye: – Los valores presentes o corrientes de : PC (program (program counter counter). ). Registros. Variables. Con este modelo, conceptualmente, se tiene que cada programa tiene su propio CPU virtual. En realidad el CPU se asigna una y otra vez entre varios procesos. 05/13/2002 Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 5 Es más fácil visualizar un conjunto de procesos ejecutándose en (pseudo) paralelo, que tratar de seguir los pasos de este intercambio del CPU entre procesos. La siguiente figura presenta: – Cuatro procesos. – Cada proceso corre independientemente de los otros. – Cada proceso tiene su PC. – Físicamente existe un solo PC. Cuando cada proceso se ejecuta, su PC lógico se carga en el físico. – Cuando el CPU se reasigna, el PC actual se almacena en el PC lógico del proceso, en memoria. 05/13/2002 Procesos-- Modelo (5) Procesos Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 6 Procesos-- Modelo (6) Procesos Con todo el intercambio de procesos en el CPU, la forma en la que cada proceso ejecuta sus tareas no será uniforme y probablemente no será reproducible. Ningún proceso debe programarse asumiendo aspectos de tiempo. – Los procesos no deben ser afectados por la multiprogramación. – Los procesos no deben ser afectados por velocidades relativas entre procesos. 05/13/2002 Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 7 05/13/2002 Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 8 2 Procesos-- Modelo (7) Procesos Procesos-- Creación (8) Procesos Diferencia entre proceso y programa. – El programa es como una receta de cocina. – El cocinero es el CPU. – Los ingredientes son los datos. – Proceso es la actividad que consiste del cocinero: Leyendo la receta. Trayendo los ingredientes. Mezclando los ingredientes. 05/13/2002 Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 9 En un sistema se necesita una forma de crear y terminar procesos como sea necesario. Existen cuatro factores que determinan que un proceso se cree: – Inicialización del sistema. – Un proceso en ejecución utilice una llamada al sistema. – Un pedido de un usuario. – Inicio de un trabajo en modo batch batch.. 05/13/2002 Procesos-- Creación (9) Procesos Cuando el SO es inicializado: – Se crean generalmente varios procesos. – Algunos son para interactuar con el usuario (foreground (foreground processes processes). ). – Algunos no están para servir un usuario en particular (background (background processes processes). ). Un proceso para aceptar correo electrónico para todos los usuarios de la máquina. – Está “dormido” la mayor parte del día y reacciona cuando llegan mensajes. 05/13/2002 Un proceso para un servidor de Web, que despierta cuando exista un pedido por una página. Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 11 Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 10 Procesos-- Creación (10) Procesos Los procesos que permanecen en el background para realizar alguna actividad se denominan daemons (demonios demonios)). – Sistemas grandes pueden tener docenas de ellos. En UNIX, el programa ps lista los procesos existentes. En Windows, CTRLCTRL- ALT ALT-- DEL/ TaskManager presentan lo que está en ejecución. 05/13/2002 Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 12 3 Procesos-- Creación (11) Procesos Procesos-- Creación (12) Procesos Creación con llamadas al Sistema. – Un proceso existente puede hacer llamadas al sistema para crear uno o varios procesos que le ayuden en sus tareas. – Si se desea traer por la red una gran cantidad de datos: Un proceso puede manejar esta tarea y poner los datos en un buffer compartido. Otro proceso puede realizar el procesamiento de estos datos. 05/13/2002 Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 13 En sistemas interactivos, un usuario puede crear procesos escribiendo un comando o haciendo doble click en un ícono.. ícono – Se crean un proceso y se ejecuta el programa seleccionado. – En UNIX, con XX-Windows, el proceso pasa a controlar la ventana de comandos desde la que se creo el proceso. – En Windows, el proceso no tiene ventanas pero puede construirlas. 05/13/2002 Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 14 Procesos-- Creación (13) Procesos Creación de procesos: sistemas batch batch.. – Típicamente para grandes mainframes mainframes.. 05/13/2002 Sistemas Operativos Iván Bernal, Ph.D Ph.D.. 15 4