C2 Admin is Trac Ion Procesador SO

URP Sistemas Operativos Estructura del Kernel El kernell está conformado por 5 grandes subsistemas.  El planificador

Views 235 Downloads 2 File size 761KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

URP

Sistemas Operativos

Estructura del Kernel El kernell está conformado por 5 grandes subsistemas.  El planificador de procesos (sched).  El administrador de memoria (mm).  El sistema del archivo virtual (vfs).  La interface de la red (net).  La comunicación inter-procesos (ipc).

Introduccion Diaz Muñante Jorge Raúl

Administracion Procesador

Sistemas Operativos

Ciclo 2011-2

2

Descomposición conceptual

Tablas del sistema

3

Tipos de procesamiento

Administrador del procesador  El administrador del procesador (processor manager) está a cargo de asignar el CPU a los programas que se ejecutan (los procesos).  Para los sistemas operativos, un programa es una unidad inactiva (estático) representada por un archivo almacenado en disco.  Un proceso, sin embargo, es una instancia de un programa en ejecución y se considera una entidad activa (dinámico).  Ejemplo:  Ejecutemos dos instancias de Internet Explorer. • Mismo programa. • Procesos separados.  El CPU no trabaja con programas sino con procesos.

R=lect. X=Ejec. P=Impr.

R1

R1

X1

R2

X1

P1

R3

X2

P1

R2

R4

X3

P2

X2

R5

X4

P3

Secuencial

Concurrente 6

Jorge Diaz Muñante

1

URP

Sistemas Operativos

Proceso del Nucleo

Esquema de Ejecución de un SO

 Proceso (o threads) de núcleo  Ejecuta sólo código del S.O., siempre en modo sistema  Normalmente se crean en la fase inicial del S.O.  Módulos del S.O. pueden crear más procesos de núcleo  En Windows existe conjunto de procesos “trabajadores” de núcleo, cuya única misión es ejecutar peticiones de otros módulos  Labores vinculadas con gestión de memoria y mantenimiento de caché del Sistema de Archivos  Realiza labores del sistema que se hacen mejor en el contexto de un proceso independiente  Se pueden realizar operaciones de bloqueo  Normalmente, alta prioridad, pero no siempre (p.e. proceso nulo)  No confundir con “procesos del sistema”

7

9

Proceso del sistema Procesos de usuario creados por el superusuario Ejecutan en modo usuario  “Pero sus llamadas al sistema son siempre atendidas” En sistemas monolíticos realizan labores del sistema como spooling o servicios de red (demonios de UNIX) En sistemas microkernel realizan funcionalidades “clásicas” del S.O. como p.e. la gestión de archivos

Estados de un Proceso

Admision

Nuevo

Interrupción

Despachador Fin de E/S o evento

E/S o un evento Espera

11

Estado de un Proceso

Estado

Descripción

Ejecución

En ese momento el CPU esta ejecutando las instrucciones en el código del proceso

Bloqueado

Esperar hasta que se conceda una petición de un recurso o hasta que ocurra un evento

Listo

El proceso esta pendiente de usar el CPU

Terminado

La ejecución del proceso ha terminado normalmente o el SSOO lo ha abortado

Terminado

Ejecución

Listo

10

El estado de un proceso es un indicador de la naturaleza de la actividad actual en un proceso

Salida

Transiciones de estados Transición

Descripción

Listo  ejecución

El proceso se despacha. El CPU inicia la ejecución de sus instrucciones

Bloqueado  listo

Termina la solicitud hecha por el proceso o ocurre el evento que estaba esperando

Ejecución  listo

El proceso se interrumpe porque se decide planificar otro proceso. Ocurre porque un proceso de mas alta prioridad ha sido admitido o ha expirado el Quantum

Ejecución  bloqueado

Proceso hace una solicitud a un recurso o hasta que ocurra un evento especifico. Las causas principales son: •Solicita una operación de E / S •Solicita memoria adicional u otro recurso •Desea espera durante un intervalo de tiempo •Espera el mensaje de otro •Desea esperar alguna accion de otro proceso

Ejecucion  terminado

La ejecucion del proceso se completa o termina. Las causas: •Autoterminacion. Se encontro la ultima instrucción •Terminacion de un padre. •Utilizacion excesido de un recurso (time-out) •Condiciones anormales durante la ejecucion •Incorrecta interaccion con otro proceso. Ejm. Abrazo mortal

12

Jorge Diaz Muñante

2

URP

Sistemas Operativos

El PCB: bloque control procesos La abstracción de proceso en el SO es representada mediante una estructura de control que recibe el nombre de PCB  Tiene todos los detalles de un proceso. Id. del proceso

Credenciales de seguridad

Estado del proceso

Nombre del usuario propietario

Registros de propósito general

Apuntadores a la cola de procesos

Apuntador a pila

Máscara de señales

Contador de programa

Administración de memoria

Microkernel – Definicion del PCB

 S.O. es sólo otro programa: Usa definiciones convencionales typedef struct PCB_t { int id; /* pid */ int estado; contexto_t contexto_regs; /* copia de regs. */ void * pila; /* dir. inicial de la pila */ PCBptr siguiente; /* puntero a otro PCB */ void *info_mem; /* descriptor mapa memoria */ } PCB; PCB * p_proc_actual; PCB tabla_procs[MAX_PROC];

Información contable 14

15

Tabla de procesos

Procesos en estado de “listo”

La tabla de procesos, es una estructura en memoria que contiene la ubicación de los PCB de todos los

Cola listo

PCB

PCB

PCB

PCB

PCB

PCB

PCB

PCB

PCB

PCB

PCB

PCB

PCB

procesos del sistema. A través de esta, el kernel puede conocer el estado de cada proceso, saber

o

en parte de la memoria se encuentra, etc.

0

1

2

Process Table

3

4

Cola listo 1

PCB

Cola listo 2

PCB

5

Estado del Proceso

Estado del Proceso

Estado del Proceso

Estado del Proceso

Estado del Proceso

Estado del Proceso

Process ID

Process ID

Process ID

Process ID

Process ID

Process ID

Parent Process ID

Parent Process ID

Parent Process ID

Parent Process ID

Parent Process ID

Parent Process ID

Program Counter

Program Counter

Program Counter

Program Counter

Program Counter

Registros

Registros

Registros

Registros

Registros

Registros

Límites de memoria

Límites de memoria

Límites de memoria

Límites de memoria

Límites de memoria

Límites de memoria

Listado de archivos abiertos

Listado de archivos abiertos

Listado de archivos abiertos

Listado de archivos abiertos

Listado de archivos abiertos

Listado de archivos abiertos



Program Counter

Cola listo n

PCB

17 16

17

Posibles operaciones procesos

Posibles operaciones procesos ….

 Creación procesos, lo cual involucra:  nombre procesos  insertarlo en la lista de procesos  determinar prioridad inicial proceso  crear su PCB  asignarle sus recursos iniciales  Procesos padres crean procesos hijos, y estos a su vez crean otros procesos, formando un árbol de procesos, compartiendo recursos y ejecución.  Destrucción procesos  liberar mapa de memoria (pila de usuario incluida)  cerrar Archivos y liberar otros recursos  eliminar PCB de cola de procesos listos  liberar entrada de tabla de procesos  liberar pila del sistema  activa planificador y realiza c. de contexto al proceso elegido  En UNIX estas operaciones están repartidas entre:  EXIT: realiza la mayor parte de las operaciones  WAIT: libera entrada de tabla de procesos 18

Jorge Diaz Muñante

Suspención de procesos, Reanudación procesos Cambio de prioridad, Bloquear un proceso Despertar a un proceso, Dispatch un proceso Permitir que un proceso se pueda comunicar con otro

19

3

URP

Sistemas Operativos

Las suspenciones y reanudaciones  Puede ser iniciada por el propio proceso o por otros  Aplicaciones  Sistema muy sobrecargado  Sistema funciona mal y es probable que falle, se pueden suspender procesos activos para reanudarlos una vez que se corrigió el problema  Un usuario desconfía de los resultados parciales de un proceso  Necesidad de recuperar la terminal de conrtrol  Uso principal: balanceo carga del sistema  Modificación diagrama estados, nuevas transiciones:  suspend(procname): listo-> listo_susp  resume(procname): listo_sup -> listo  suspend(procname): bloqueado -> bloqueado_susp  resume(procname): bloqueado_sup -> bloqueado

En ejecución

T3

Bloqueado

Listo T4

suspender (suspend)

reanudar (resume)

Listo_suspendido 21

Schedulers

Colas de los Procesos

Colas listos CPU

E/S

Cola de E/S

Cola de Listos: Contiene todos los procesos residentes en memoria principal, listos y esperando ejecutarse.

E/S

Cola de E/S

Colas de dispositivos de E / S. Contiene todo los procesos esperando por dispositivo E / S Un proceso migra entre las distintas colas.

E/S

reanudar (resume)

suspender (suspend)

Bloqueado_suspendido 20

Cola de listos

Estado de Procesos y Suspenciones

T2

T1

Cola de E/S

22

Cola de Jobs

CPU

Cola(s) IO Espera I/O

Scheduler “long-term” (Job scheduler). Selecciona que procesos seran puestos en la cola de listos. Scheduler “short-term” (Cpu Scheduler). Selecciona que Procesos sera el siguiente en ejecutarse, asignado la CPU. El Cpu scheduler es requerido muy frecuentemente (en miliseg.) Debe ser rapido. El Job scheduler es requerido con poca frecuencia (en seg)... Puede ser lento. Este controla el grado de multiprogramación. 24

Diagrama Estados y Transiciones de un proceso en Unix

Diagrama de estados de Microsoft

User Running 1

sys. call interrupt

interrupt, interrupt return

return to user return Kernel Running

2

9

7

exit

Zombie

Preempted reschedule process

sleep

4

Ready to Run in Memory

3

wake up

Asleep in Memory

enough memory swap in

swap out

swap out

8

fork

not enough memory (swapping system only)

6

wake up

Sleep, Swapped

5

Ready to Run, Swapped

25

Jorge Diaz Muñante

27

4

URP

Sistemas Operativos

Las interrupciones   



Altera secuencia procesador ejecuta las instrucciones Interrupción generada por el hardware del sistema IA-32 tiene un IDT con 256 entradas  32 (0 - 31) predefinidas y reservadas  224 (32 - 255) definidas por el usuario

Programa # 2

Cada interrupcion esta asociado con un codigo o rutina a traves del IDT : 1.

Proceso en ejecucion hasta la interrupcion

2.

Captura el estado, intercambia el control y encuentra la rutina

3.

Ejecuta la rutina respectiva

Memoria Principal usuario

Restaura el proceso interrumpido

5.

Continua la ejecucion

Interrupcion al disco (x)

29

Threads / Hilos / Procesos ligeros

 Supongamos un proceso que realiza dos actividades paralelizables. ¿Sería interesante convertirlo en dos procesos?



A A

B

 Si sistema es multiprocesador: Núcleo 1

A0

A1

A2

A3

A4

Núcleo 2

B0

B1

B2

B3

B4

 Si sistema no multiprocesador A0

B0

A1

B1

A2

B2

Servicio

Llamadas al Sistema o Supervisor (SVC)

Threads / Hilos / Procesos ligeros

¿

Modo Kernel Rutina de

2

Rutina de interrupcion

28

Un núcleo

3 Tabla de Despacho

kernel

4.

B

4 1

IDT:

Modo User

Programa # 1 Llamada al Supervisor

A3

B3

A4

?

Concepto moderno de proceso:

 Contiene múltiples flujos de ejecución (threads o procs. ligeros)  El proceso se corresponde con un entorno de ejecución:  Un mapa de memoria  Un conjunto de recursos asociados (ficheros, semáforos, ...)  Un conjunto de threads  Proceso tiene un thread implícito: el flujo de ejecución inicial  Threads de un mismo proceso comparten:  Mapa de memoria (código, datos, zonas de mem. compartida, ...)  Recursos asociados al proceso (ficheros, semáforos, ...)  Cada thread tiene recursos propios:  Una pila, un estado y una copia del contenido de los regs.  Colas de listos y bloqueo contienen threads en vez de procesos

B4 31

Multithreading vs. Singlethreading  Multithreading  Cuando el SO soporta múltiple threads de ejecución, dentro de un solo proceso.  Single threading  Cuando el SO no reconoce el concepto de thread.  MS-DOS soporta un solo proceso de usuario.  Los sistemas UNIX tradicionales soportan múltiples procesos de usuario pero sólo soporta un thread por proceso.  Solaris soporta múltiples threads.

Procesos / Hilos

MS/DOS

Un proceso,1 hilo

Multiprocesos,1 hilo Sistemas embedded Vxworks, Java OS

Jorge Diaz Muñante

Tradicional UNIX

Un proceso, varios hilos

Multiprocesos, multihilos Mach, OS/2, Linux, Win NT a XP, Solaris

5

URP

Sistemas Operativos

Beneficios de los threads  Toma menos tiempo crear un nuevo thread que un proceso.  Toma menos tiempo terminar un thread que un proceso.  Toma menos tiempo cambiar entre dos thread dentro del mismo proceso.  Capacidad de Respuesta.  Continuidad de ejecución en determinados escenarios.  Compartición de recursos.

Ejemplos Ejemplo 1. Una aplicación.  Un thread puede estar mostrando la visualización de menús.  Otro leyendo la entrada del usuario.  Mientras que otro thread ejecuta comandos del usuario. Ejemplo 2: Explorador Web.  Un thread por acción requerida.  Descarga de imágenes.  Ingreso de datos en un formulario.  Interacción con el usuario.

Ejemplo de hilos Ejemplo3. Word - Procesador de texto con 3 hilos

Jorge Diaz Muñante

6