Está en la página 1de 34

Sistemas Operativos Profesor:

Your picture here


Ciclo 2019-1 Diaz Muñante Jorge

Administracion del Procesador


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).

2
Descomposición conceptual

3
Tablas del sistema
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.
§ El numero de procesos esta limitado al numero de CPU / Core
Tipos de procesamiento

R1 R1

X1 R2 X1

R=lect. P1 R3 X2 P1
X=Ejec.
P=Impr. R2 R4 X3 P2

X2 R5 X4 P3
Secuencial Concurrente
6
Esquema de Ejecución de un SO

7
Proceso del Nucleo

§ 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”

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

10
Estados de un Proceso

Nuevo Admision Interrupción Salida Terminado

Listo Ejecución

Despachador
Fin de E/S o evento E/S o un evento
Espera

11
Estado de un Proceso

§ El estado de un proceso es un indicador de la naturaleza de la actividad


actual en 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

12
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
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

Información contable

14
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];

15
Tabla de procesos

La tabla de procesos, es una estructura en memoria que contiene la


ubicación de los PCB de todos los procesos del sistema. A través de
esta, el kernel puede conocer el estado de cada proceso, saber en parte
de la memoria se encuentra, etc.

Process Table
0 1 2 3 4 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 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

16
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 17
Posibles operaciones procesos ….

§ Suspensió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

18
Las suspensiones 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
19
En ejecución

Estado de
T2 Procesos y
T1
T3 Suspensiones

Bloqueado Listo

T4

suspender reanudar reanudar


(suspend) suspender (resume)
(resume)
(suspend)

Bloqueado_suspendido Listo_suspendido
20
Colas de los Procesos

Cola de listos CPU

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

Colas de dispositivos de E / S.
E/S Cola de E/S Contiene todo los procesos esperando por
dispositivo E / S

Un proceso migra entre las distintas


colas.

E/S Cola de E/S

21
Schedulers o Planificadores

Scheduler “short-
Scheduler “long-term”
term”
• Job scheduler • Cpu Scheduler
• Selecciona que • Selecciona que
procesos serán procesos será el
puestos en la cola de siguiente en ejecutarse
listos. • Requerido muy
• Requerido con poca frecuentemente (en
frecuencia (en seg) miliseg.)
• Puede ser lento • Debe ser rapido
• Controla el “grado de
multiprogramacion”
Diagrama Estados y Transiciones de un proceso en Unix

User Running

sys. call
interrupt, interrupt return to user
interrupt return
return

Kernel Running
9 2 7
exit
Zombie Preempted
reschedule
sleep process

Ready to Run
4 3 in Memory
wake up
Asleep in
Memory enough memory

swap out swap swap fork


in out 8

not enough memory


(swappingsystem only)
6 5
wake up
Sleep, Swapped Ready to Run, Swapped
24
Diagrama de procesos (actividades) de Android
Descripción de las actividades …

Estado Descripcion

onCreate Se dispara cuando la Activity es llamada por primera vez. Aquí


es donde debemos crear la inicialización normal de la
aplicación, crear vistas, hacer los bind de los datos, etc. Este
método te da acceso al estado de la aplicación cuando se
cerró. Después de esta llamada siempre se llama al onStart().
onRestart Se ejecuta cuando tu Activity ha sido parada, y quieres volver
a utilizarla. Si ves el diagrama podrás ver que después de un
onStop() se ejecuta el onRestart() e inmediatamente llama a
un onStart().
onStart Se ejecuta cuando la Activity se está mostrando apenas en la
pantalla del dispositivo del usuario
onResume Se ejecuta una vez que la Activity ha terminado de cargarse
en el dispositivo y el usuario empieza a interactuar con la
aplicación. Cuando el usuario ha terminado de utilizarla es
cuando se llama al método onPause
Descripción de actividades

Estado Descripcion

onPause Se ejecuta cuando el sistema arranca una nueva Activity que


necesitará los recursos del sistema centrados en ella. Hay que
procurar que la llamada a este método sea rápida ya que
hasta que no se termine su ejecución no se podrá arrancar la
nuevaActivity. Después de esta llamada puede venir un
onResume() si la Activity que haya ejecutado el onPause()
vuelve a aparecer en primer plano o un onStop() si se hace
invisible para el usuario
onStop Se ejecuta cuando la Activity ya no es visible para el usuario
porque otra Activity ha pasado a primer plano. Si vemos el
diagrama, después de que se ha ejecutado este método nos
quedan tres opciones: ejecutar el onRestart() para que la
Activity vuelva a aparecer en primer plano, que el sistema
elimine este proceso porque otros procesos requieran
memoria o ejecutar el onDestroy() para apagar la aplicación
Descripción de actividades

Estado Descripcion

onDestroy Esta es la llamada final de la Activity, después de ésta, es


totalmente destruida. Esto pasa por los requerimientos de
memoria que tenga el sistema o porque de manera explícita el
usuario manda a llamar este método. Si quisiéramos volver a
ejecutar la Activity se arrancaría un nuevo ciclo de vida.
Diagrama de estados de Microsoft

30
Las interrupciones
v Altera secuencia procesador ejecuta las instrucciones
v Interrupción generada por el hardware del sistema
v IA-32 tiene un IDT con 256 entradas
§ 32 (0 - 31) predefinidas y reservadas
§ 224 (32 - 255) definidas por el usuario
v 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
usuario
3. Ejecuta la rutina respectiva kernel
IDT: Rutina de interrupcion
Interrupcion al disco (x)
4. Restaura el proceso interrumpido

5. Continua la ejecucion

31
Threads / Hilos / Procesos ligeros
v Supongamos un proceso que realiza dos actividades
paralelizables. ¿Sería interesante convertirlo en dos
procesos?

A
A
B ¿ B
?
v Si sistema es multiprocesador:
Núcleo 1 A0 A1 A2 A3 A4

Núcleo 2 B0 B1 B2 B3 B4
v Si sistema no multiprocesador

Un núcleo A0 B0 A1 B1 A2 B2 A3 B3 A4 B4
Procesador Sun UltraSPARC T1
Threads / Hilos / Procesos ligeros

v Concepto moderno de proceso:


§ Contiene múltiples flujos de ejecución (threads o procs. ligeros)
v 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
v Proceso tiene un thread implícito: el flujo de ejecución inicial
v Threads de un mismo proceso comparten:
§ Mapa de memoria (código, datos, zonas de mem. compartida, ...)
§ Recursos asociados al proceso (ficheros, semáforos, ...)
v Cada thread tiene recursos propios:
§ Una pila, un estado y una copia del contenido de los regs.
v Colas de listos y bloqueo contienen threads en vez de
procesos
34
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