CAPITULO 5

5.- PROCESOS 5.1.- Concepto de proceso 5.1.1.- Servicios de procesos 5.1.2.- Jerarquía de proceso 5.2.- Entorno del proceso 5.3.- Multitarea 5.3.1.- Base de la multitarea 5.3.2.- Planificador Vs. Activador 5.3.3.- Ventajas de la multitarea 5.3.5.- Grado de multiprogramación y necesidades de memoria principal

Introducción Sistemas Operativos.

1

Ing. Johnny Larrea P.

5.1.-¿ Qué es un proceso ?
Deitel:  Programa en ejecución  Actividad asíncrona  “Espíritu animado” de un procedimiento  La entidad a la que se asignan los procesadores. Tanenbaum: Un programa en ejecución

E. Alcalde/J.Morera J.A. Perez-Campanero Un proceso es un programa en ejecución junto con su entorno asociado (registros, variables, etc.
Introducción Sistemas Operativos. 2 Ing. Johnny Larrea P.

5.1.- Concepto de proceso
• Programa en ejecución • UNIDAD DE PROCESAMIENTO GESTIONADA POR EL SISTEMA OPERATIVO.

PROGRAMA
Conjunto De Instrucciones

PROCESO
Surge programa pone en Ejecución

EJERCICIO
Introducción Sistemas Operativos. 3 Ing. Johnny Larrea P.

MODELO
Consideremos un científico de la computación con una mente culinaria, que está cocinando el pastel de cumpleaños de su hija. El tiene una receta para elaborar un pastel de cumpleaños y una cocina bien abastecida con los ingredientes necesarios: harina, huevo, azúcar, extracto de vainilla, etc. Realice una analogía con los siguientes elementos: Programa: …………………….. CPU: …………………………. Datos de entrada: ……………. Proceso: ………………………

Introducción Sistemas Operativos.

4

Ing. Johnny Larrea P.

RESULTADOS DE LA ANALOGÍA
En esta analogía, la receta es el programa (es decir, un algoritmo expresado en cierta notación adecuada), el científico de computación es el procesador (CPU) y los ingredientes del pastel son los datos de entrada. El proceso es la actividad que consiste en leer la receta, obtener los ingredientes y hornear el pastel.

Introducción Sistemas Operativos.

5

Ing. Johnny Larrea P.

DIFERENCIA ENTRE PROGRAMA Y PROCESO
El programa corresponde a una entidad pasiva, en cambio el proceso corresponde a una entidad activa. Los recursos que utilizan ambos conceptos, podemos decir, que el programa utiliza únicamente memoria secundaria, en cambio el proceso utiliza memoria principal y procesador.
•Varios procesos pueden estar ejecutando el mismo programa, por ejemplo, si dos o más usuarios están usando simultáneamente el mismo editor de texto. El programa es el mismo, pero cada usuario tiene un proceso distinto (y con distintos datos). •Conceptualmente cada proceso tiene su propia CPU virtual. En la práctica, hay una sola CPU real, que cambia periódicamente la ejecución de un proceso a otro, pero para entender el sistema es más fácil modelarlo como una colección de procesos secuenciales que ejecutan concurrentemente (pseudoparalelismo).
Introducción Sistemas Operativos. 6 Ing. Johnny Larrea P.

Uur s s aio Por msd uur r ga a e s aio W3 in 2 Se 1 hll Se 2 hll PS OIX Vr sAI aia P

Gs nd Sg r a Cmn a . etió e e uidd o u ic c Gs nd Gs nd Gs nd etió e etió e etió e y ac iv sy rho y poe o mmr r c s s e oia laE /S d e toio po c ió s co iz ir c r s r te c n inr n .

S te a is m oeaiv pr t o

Nc o úle Hr wr ad ae
Introducción Sistemas Operativos. 7 Ing. Johnny Larrea P.

5.1.1.- SERVICIOS DE PROCESOS

• Creación

• Ejecución
• Muerte
•CREAR UN PROCESO.- Es creado por el S.O. cuando lo solicita otro proceso, que se convierte en el padre del nuevo. Existen 2 modos de creación: Creación a partir de un proceso Padre. El proceso Hijo es una copia exacta del proceso Padre. Creación a partir de un archivo ejecutable. Se define en el API Win32 de Windows NT.
Introducción Sistemas Operativos. 8 Ing. Johnny Larrea P.

… SERVICIOS DE PROCESOS
• EJECUTAR UN PROCESO.- Se ejecutan de 2 formas: Batch e Interactiva – BATCH.- Llamado Background, no está asociado a ningún terminal. Deberá tomar sus datos de entrada de un archivo y deberá depositar sus resultados en otro archivo. Ej: proceso de nóminas. – INTERACTIVA.- Proceso asociado a una terminal, por el que recibe la información del usuario y por el que contesta con los resultados. Ej. Proceso de edición.

Introducción Sistemas Operativos.

9

Ing. Johnny Larrea P.

… SERVICIOS DE PROCESOS
• TERMINAR EJECUCION UN PROCESO.- Puede finalizar por varias causas:  Ha terminado de ejecutar el programa.  Se produce una condición de error en su ejecución. Ej: Divisíón por cero o violación de memoria.  Otro proceso o el usuario deciden que ha de terminar.

• CAMBIAR EL PROGRAMA DE UN PROCESO.- Cambia el programa que se está ejecutando un proceso por otro programa almacenado en disco.

Introducción Sistemas Operativos.

10

Ing. Johnny Larrea P.

5.1.2.- Jerarquía de procesos
• Grupos de procesos dependientes de cada shell • Familia de procesos P roc. In ic.
• • • • Proceso hijo Proceso padre Proceso hermano Proceso abuelo
In icio S ell h In icio In icio S ell h P roceso A In icio
D . Im r. em p D .C m em o ..

• Vida de un proceso
• Crea • Ejecuta • Muere o termina

E ito d r P roceso B P roceso E P roceso F

P roceso D

P roceso C

• Ejecución del proceso
• Batch • Interactivo

 En los sistemas de multiprogramación es importante
mantener un registro a que usuario pertenece cada proceso.
uid gid (identificación del usuario) (identificación del grupo)
11 Ing. Johnny Larrea P.

• Grupo de procesos
Introducción Sistemas Operativos.

5.2.- ENTORNO DEL PROCESO
ENTORNO

INFORMACION REGISTROS
DATOS EN PILA (STACK) DATOS EN VARIABLES INSTRUCCIONES Programa en ejecución

Introducción Sistemas Operativos.

12

Ing. Johnny Larrea P.

5.2.- ENTORNO DEL PROCESO
• Consiste conjunto variables que se le pasan al proceso en el momento de su creación.

Nombre-Valor
Valor Nombre variable

Ejemplo Unix: PATH=/usr/bin:/home/pepe/bin HOME=/home/pepe PWD=/home/pepe/libros/primero

Introducción Sistemas Operativos.

13

Ing. Johnny Larrea P.

ACTIVIDADES DEL S.O.
Actividades:

El S.O. Decide detener la ejecución de un proceso y comenzar la
ejecución de otro. Ej: 1 proceso ha utilizado una porción de tiempo de CPU mayor de la permitida.

Proceso que se detiene debe volver a inicializarse en el mismo estado
en que se encontraba.

Las llamadas al sistema de control de procesos son las que se ocupan
de la creación y fin de los procesos. Ej: Un proceso puede crear uno o más procesos (Hijos) y estos procesos pueden crear a su vez procesos hijos.
Introducción Sistemas Operativos. 14 Ing. Johnny Larrea P.

Usuario
• Usuario: Persona autorizada a utilizar un sistema – Se identifica en la autenticación mediante:
• Código de cuenta • Clave (password)

– Internamente el SO le asigna el “uid” (user identification) • Super-usuario – Tiene todos los derechos – Administra el sistema • Grupo de usuarios – Los usuarios se organizan en grupos
• Alumnos • Profesores

– Todo usuario ha de pertenecer a un grupo
Introducción Sistemas Operativos. 15 Ing. Johnny Larrea P.

5.3.- MULTITAREA
N po e o º r css 1 1 Nuu r s º s aio msd 1 á e Mn po e o oor c s Mn u u r o o s aio msd 1 á e Mlt r c s u ipo e o Mn u u r o o s aio Mlt r c s u ipo e o Mlt s aio u iu u r

S.O. Puede ser: • Monotarea ó Monoproceso • Multitarea ó Multiproceso • Monousuario • Multiusuario (tiempo compartido)
Introducción Sistemas Operativos. 16 Ing. Johnny Larrea P.

PARALELISMO.
Es la ejecución de diversas actividades simultáneamente en varios procesadores. Si sólo existe un procesador gestionando multiprogramación, se puede decir que existe PSEUDOPARALELISMO.

CONCURRENCIA.
Es la existencia de varias actividades ejecutándose simultáneamente, y necesitan sincronizarse para actuar conjuntamente. Se trata de un concepto lógico, ya que sólo hace referencia a las actividades, sin importar el número de procesadores presentes.
Introducción Sistemas Operativos. 17 Ing. Johnny Larrea P.

5.3.1.- Base de la multitarea
Se basa en tres características:

 Paralelismo real entre E/S y UCP (DMA)  Alternancia en los procesos de fases de E/S y de procesamiento  La memoria almacena varios procesos activos.
Procesamiento Entrada/salida Tiempo
Alternancia de un Proceso con E/S
Introducción Sistemas Operativos. 18 Ing. Johnny Larrea P.

Ejemplo de ejecución en un sistema multitarea
Proceso A Proceso B Proceso C Procesador Tiempo Ejecución de un Sistema Multitarea
• Proceso Nulo.- Bucle infinito que no realiza níguna operación útil. El objetivo de este proceso es Entretener al procesador cuando no hay ninguna otra tarea. Introducción Sistemas Operativos. 19 Ing. Johnny Larrea P.

Procesamiento Entrada/salida Listo SO

A
B C CPU
a b c d e f g h i j k l m n o

Tiempo

a: A en CPU, B y C bloqueados b: A llama al SO para E/S c: Todos bloqueados (CPU idle) d: Acaba E/S de B (despierta y dispatch) e: B en ejecución f: Acaba E/S de C (despierta), B ready g: Sigue B en CPU y C ready h: B hace syscall. SO despacha C y bloquea B Sistemas operativos 20

i: C en CPU, A y B bloqueados j: C llama al SO para E/S y A se despierta k: A en ejecución l: Una int E/S llama al SO para despertar B m: A continua en Run y B espera ready n: A se bloquea o: B pasa a ejecución (run) Félix García Carballeira (1999) CPU ocupada siempre salvo en c

5.3.2.- PLANIFICADOR Y ACTIVADOR
• Planificador.- (scheduler) forma parte del S.O. Entra en ejecución cada vez que se activa el S.O. y su misión es seleccinar el proceso que se ha de ejecutar a continuación. • Activador.- (Dispatcher) forma parte del S.O. Su función es poner en ejecución el proceso seleccionado por el planificador.

Introducción Sistemas Operativos.

21

Ing. Johnny Larrea P.

5.3.3.- Ventajas de la multitarea
La multiprogramación presenta varias ventajas: • Facilita la programación, dividiendo los programas en procesos (modularidad) • Permite el servicio interactivo simultáneo de varios usuarios de forma eficiente • Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S • Aumenta el uso de la CPU

S.O.

MULTITAREA

Introducción Sistemas Operativos.

22

Ing. Johnny Larrea P.

5.3.5.- Grado de multiprogramación
• Grado de multiprogramación: nº de procesos activos • Necesidades de memoria principal: Sistema sin memoria virtual

P cs A r eo o P cs B r eo o P cs C r eo o S O M oa e r mi pni a r c l i p C a r cs r s e a p eoei d o d t t l et e M o m en . a n p
Introducción Sistemas Operativos.

Utilización del procesador

10 0%

0 %

G d d mtp g m i n r o e ui r r a ó a l oa c
23 Ing. Johnny Larrea P.

Necesidades de memoria principal
• Necesidades de memoria principal: Sistema con memoria virtual

Marcos de página por proceso

Aam t ren ed mtp g m i n l u e a l i l e ui r r a ó a n v l oa c c d p c s l t c n eo mc s e ái a aa r eoeoa m s a o d pg o n r n

1

2

3

4

Ned Mtp g m i n i l e ui r r a ó v l oa c
24 Ing. Johnny Larrea P.

Introducción Sistemas Operativos.

Rendimiento del procesador y grado de multiprogramación
• Necesidades de memoria principal: Sistema con memoria virtual
1% 0 0 1% 0 0

% Utilización de UCP

Ltdoldov i iapesso m r ipt o ii daan egc pnó i i

% Utilización de UCP
25

Ltdoldov i iapesso m r ipt o ii daan egc pnó i i

Nd urg an ie Mom v e li r c l t ai p ó M REE E I PU M QA O A Ñ
Introducción Sistemas Operativos.

Nd urg an ie Mom v e li r c l t ai p ó MR R E E I GD M A O N A
Ing. Johnny Larrea P.