38
Jump to first page [email protected] Sistemas Operativos Procesos

Proceso

Embed Size (px)

Citation preview

Page 1: Proceso

Jump to first [email protected]

Sistemas Operativos

Procesos

Page 2: Proceso

Jump to first [email protected]

Definición Una forma sistemática de monitorear y

controlar la ejecución de programas es a través de procesos. Un proceso es un programa en ejecución con:

Datos asociados (variables, buffers) Contexto de ejecución: toda la información que

el CPU necesita para ejecutarlo• registros• prioridades• eventos por los que espera

Page 3: Proceso

Jump to first [email protected]

Procesos

Un sistema operativo ejecuta una variedad de programas:

– Sistemas por lotes – trabajos

– Sistemas de tiempo compartido – programas de usuario o tareas

• Los términos usados trabajo y proceso se refieren a lo mismo

Page 4: Proceso

Jump to first [email protected]

Proceso

User Program and data

a

programcounter

registers

temporarydata

...

Context

Page 5: Proceso

Jump to first [email protected]

Por que necesitamos mas de un Proceso? Aplicaciones simples: Queremos que cosas ocurran

concurrentemente. (ejemplo: spell-checker, listener in a web station)

Multiples aplicaciones: procesos ejecutandose en background (ejemplo windows).

Multiples usuarios: Por ejemplo el departamento de computación.

Page 6: Proceso

Jump to first [email protected]

Requerimientos al OS Maximizar el uso del CPU , permitiendo la

ejecución de muchos procesos. Proveer un tiempo de respuesta razonable. Asignar recursos a procesos mientras no

permite que ocurra deadlock. Permitir comunicación entre procesos. Creación de procesos por parte del usuario.

Page 7: Proceso

Jump to first [email protected]

Como alcanzar las metas?

Planificando(Schedule) y despachando procesos para su ejecución por el procesador.

Implementado una política segura y justa de asignación de recursos a procesos.

Responder a los requerimientos de los programas usuarios.

Construir y mantener tablas para cada entidad manejada por el sistema operativo.

Page 8: Proceso

Jump to first [email protected]

Dispatcher Componente del OS que se encarga de

otorgar a los procesos, el procesador.

Previene que un proceso se tome todo el

tiempo de CPU.

Toma la decisión de cual proceso recibirá el

CPU en base al algoritmo de scheduling.

Page 9: Proceso

Jump to first [email protected]

Planificadores

Planificador a largo plazo

– Planificador de tareas

– Selecciona que procesos se llevan a la cola de listos

• Planificador a corto plazo

– Planificador del CPU

– Selecciona que proceso debe ser el próximo en ejecutarse y otorgársele el CPU

Page 10: Proceso

Jump to first [email protected]

Planificadores El planificador a corto plazo se invoca con

mucha frecuencia

– Milisegundos

– Debe ser rápido El planificador a largo plazo se invoca con poca

frecuencia

– Segundos o minutos

– Puede ser lento El planificador a largo plazo controla el grado de

multiprogramación

Page 11: Proceso

Jump to first [email protected]

Planificadores Los procesos pueden describirse de las

siguientes formas

– E/S – gastan mucho de su tiempo ejecutando E/S en vez de cálculos, muchos períodos cortos de uso del CPU

– CPU – gastan mucho tiempo haciendo cómputo (uso del CPU), muy pocos períodos largos de uso de CPU

Page 12: Proceso

Jump to first [email protected]

PCB (Process Control Block ) PCB : Estructura de datos que contiene

información relevante del proceso. Contenido:

Identificación (PID,UID, ID proceso padre) Información del procesador (PC, CPU registros…,

PSW, SP) Información de control (,Prioridad ,estado del proceso,

evento por los que espera, links a otros procesos) Información de memoria ( localización y estado de

acceso de los datos usuarios) Información de Archivos (archivos y dispositivos

abiertos )

Page 13: Proceso

Jump to first [email protected]

Estados de un Proceso Running

Proceso que está usando el CPU. Ready

Proceso listo para ser ejecutado. Hay muchos en este estado. Temporalmente parado.

Blocked Proceso que espera por algún evento

(completar E/S) para continuar con la ejecución. Un proceso se puede bloquear el mismo pero

no el mismo ponerse en ejecución.

Page 14: Proceso

Jump to first [email protected]

Modelo de Estado

Ready

a

Running

Dispatch

a

Timeout

Running

a

Event Occurs

Blocked

Event Wait

Page 15: Proceso

Jump to first [email protected]

Otros estados New

Proceso creado pero no admitido, por recursos limitados

Exit Proceso que terminó pero conserva aún

información temporal (el prog. accounting). Cuando esta información no se necesita mas el proceso sale del sistema

Page 16: Proceso

Jump to first [email protected]

Modelo de 5 estados

a

A new process is created to executea program

a

New

a

The operating system will move aprocess from the New state to theReady state when it is prepared to takean additional process

a

ReadyAdmit

a

Running

Dispatch

a

Timeout

Running

a

Event Occurs

a

ExitRelease

a

Blocked

Event Wait

Page 17: Proceso

Jump to first [email protected]

Modelo de Colas

a

Ready Queue

Event n Queue

Event 2 Queue

Event 1 Queue

ProcessorDispatch Release

Event 1 Wait

Event 2 Wait

Event n Wait

Event 1Occurs

Event 2Occurs

Event nOccurs

Admit

Page 18: Proceso

Jump to first [email protected]

Swapping Muchos processos en memoria deterioran el

desempeño del sistema. El SO puede necesitar suspender algunos

procesos, es decir los saca a una área de swap, por ej. Disco.

Dos nuevos estados Blocked Suspend : procesos bloqueados que

han sido sacados a discos Ready Suspend: procesos ready que han sido

sacados a discos

Page 19: Proceso

Jump to first [email protected]

Características Un proceso suspendido tiene las siguientes

características: NO se encuentra disponible para ejecución Si esta suspendido + espera por evento, la

ocurrencia del evento no habilita que el proceso pueda ser ejecutado

Un proceso se colocó en suspendido por un agente: si mismo, proceso padre, OS.

Sale del estado de suspensión por odenes del agente

Page 20: Proceso

Jump to first [email protected]

Razones para suspend Por requerimientos del padre: examinar los

hijos o coordinar actividades. Por tiempo (Timming) :corre periódicamente Por problemas: OS suspende los procesos

sospechosos. Necesidad de memoria.

Page 21: Proceso

Jump to first [email protected]

Modelo de 7 estados

ReadySuspend

Ready Running Exit

BlockedBlockedSuspend

Activate Dispatch

Timeout

Release

Suspend

EventWait

EventOccurs

Event

Occurs

Suspend

Activate

New

Page 22: Proceso

Jump to first [email protected]

Transiciones Bloqueado a bloqueado suspendido

Todos los procesos estan bloqueados y el OS hace espacio para traer procesos ready

Bloqueado suspendio a Ready suspendidoCuando ocurre el evento por el cual esperaba

Ready suspendido a ReadyCuando no hay mas procesos ready en memoria

Ready a Ready suspendido No hay procesos bloqueados y debe liberar memoria para mejorar desempeño

Page 23: Proceso

Jump to first [email protected]

Gerencia de Procesos-Operaciones

Creación y terminación de procesos. Planificación y dispacho de procesos. Switching de procesos. Sincronización y comunicación de procesos.

In order to do so the system Manages Process Control Blocks (PCB)

Page 24: Proceso

Jump to first [email protected]

Tablas del Sistema

Page 25: Proceso

Jump to first [email protected]

Process-Management - Implementation

Page 26: Proceso

Jump to first [email protected]

Imagen de un Proceso

Processidentification

Processor states

information

Process controlinformation

User stack

Private useraddress Space

prog+data

PCB

Page 27: Proceso

Jump to first [email protected]

Localiz. de la Imagen Proceso Cada imagen del proceso está en Memoria

Virtual.

En la tabla de procesos existe una entrada que apunta a cada imagen de proceso .

Para que el OS pueda manejar el proceso, al menos parte de su imagen debe ser llevado a memoria principal.

Page 28: Proceso

Jump to first [email protected]

Operaciones Crear : Identificación, crear PCB ,Insertarlo en

la lista de procesos conocidos, asignarle recursos (memoria), asignar prioridad.

Terminar: Devolver los recursos al SO, Sacarlo de todas las lista y tablas del sistema, Eliminar PCB . Hijos?

Suspender: Recursos? Reasumir:

Page 29: Proceso

Jump to first [email protected]

Crear Cuando un proceso crea un proceso hijo, el

podría: Compartición de recursos, puede ser de las

siguientes formas El padre y el hijo comparten todos los recursos El hijo comparte un subconjunto de recursos del

padre. Cuando un proceso se ejecuta, puede que

exista Padre e hijo se ejecutan concurrentemente El padre espera a que el hijo termine

Page 30: Proceso

Jump to first [email protected]

Crear Espacio de direcciones :

El hijo duplica el del padre Proceso hijo tiene un programa diferente

cargado en memoria.

Ejemplos en UNIX

– La llamada fork crea un proceso nuevo

– La llamada execve usada después del fork para reemplazar el espacio de memoria del proceso con un programa nuevo

Page 31: Proceso

Jump to first [email protected]

Terminacion

El proceso ejecuta la última sentencia y le indica al

sistema salir (exit)

– Envío de datos del hijo al padre (vía wait)

– Los recursos de los procesos son des-asignados por el sistema operativo

Page 32: Proceso

Jump to first [email protected]

Terminacion

El padre debe terminar la ejecución del proceso hijo

(abort)

– El hijo excedió los recursos asignados

– Ya no se requieren las tareas asignadas a los hijos

– El padre termina

• El caso de que el sistema operativo no permite que el hijo continúe si el padre termina

• Terminación en cascada

Page 33: Proceso

Jump to first [email protected]

Cooperacion

Los procesos que están en un sistema pueden ser ejecutados independientes o cooperantes Independiente: No pueden afectarse o ser

afectados por la ejecución de otro proceso Cooperante: Pueden afectarse o ser afectados por

la ejecución de otros procesos.

Ventajas de la cooperación de procesos

– Intercambio de información

– Velocidad de computación

– Modularidad

Page 34: Proceso

Jump to first [email protected]

Cooperacion

Ventajas de la cooperación Compartir información .Ej. Editor Acelerar los cálculos: se dividen en subtareas y

se ejecutan paralelas. Modularidad: dividir las funciones del sistema

en varios procesos. Conveniencia: para que varias tareas se

realicen a la vez.Ej. Imprimir compilar, editar un archivo.

Page 35: Proceso

Jump to first [email protected]

Comunicación (IPC)

Mecanismos para comunicar procesos y sincronizar sus acciones

– Señales

– Memoria compartida

– Semáforos

– Sistema de mensajes

Page 36: Proceso

Jump to first [email protected]

Resumen Proceso es el bloque de construcción básico

de un OS. OS es responsable de su creación, manejo,

terminación e interacción. OS mantiene la descripción cada procesos. OS mueve los procesos entre los diferentes

estados. Un proceso running puede switch a modo

kernel via una interrupción o system call.

Page 37: Proceso

Jump to first [email protected]

The ls Command

Steps in executing the command ls, typed to the shell

Page 38: Proceso

Jump to first [email protected]

System Calls for Process Management

s is an error code

pid is a process ID

residual is the remaining time from the previous alarm