C2_Administracion_Procesador_SS00.pdf

download C2_Administracion_Procesador_SS00.pdf

of 35

Transcript of C2_Administracion_Procesador_SS00.pdf

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    1/35

    Administracion del Procesador

    Your picture hereSistemas Operativos

    Ciclo 2016-1

    Profesor:

    Diaz Muñante Jorge

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    2/35

    2

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

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    3/35

    3

    Descomposición conceptual

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    4/35

    Tablas del sistema

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    5/35

    Administrador del procesador

    El administrador del procesador (processor manager ) está a cargo deasignar 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óny 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

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    6/35

    6

    R1

    X1

    P1

    R2

    X2

    R1

    R2

    R3

    R4

    R5

    X1

    X2

    X3

    X4

    P1

    P2

    P3Secuencial Concurrente

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

    ipos de procesamiento

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    7/35

    7

    Esquema de Ejecución de un SO

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    8/35

    8

    Modos de ejecución del Procesador

    Procesador proporciona distintos modos de ejecución con diferentesprivilegios

    S.O. requiere al menos 2: – Uno con privilegio total y otro con privilegio mínimo

     – Incluso aunque haya más (Intel tiene 4) sólo usa 2

     – Moraleja: S.O. se conforma con mínimos (más transportable)

    Modo usuario (no privilegiado): – Acceso restringido a instrucciones (ej, HALT), registros (ej, RIED,

    registro de estado), E/S

     – Memoria: Sólo accesible direcciones lógicas de usuario

    Modo sistema (núcleo o privilegiado): – Privilegio total

     – Procesador se inicia en modo núcleo

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    9/35

    9

    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 unproceso independiente

     – Se pueden realizar operaciones de bloqueo

    Normalmente, alta prioridad, pero no siempre (p.e. proceso nulo)

    No confundir con “procesos del sistema”

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    10/35

    10

    Proceso del sistema

    Procesos de usuario creados por el superusuario

    Ejecutan en modo usuario

     – “Pero sus llamadas al sistema son siempreatendidas”

    En sistemas monolíticos realizan labores del sistema como spooling oservicios de red (demonios de UNIX)

    En sistemas microkernel realizan funcionalidades “clásicas” del S.O.como p.e. la gestión de archivos

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    11/35

    11

    Estados de un Proceso

    Nuevo

    Listo Ejecución

    Espera

    TerminadoAdmision Interrupción Salida

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

    Despachador

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    12/35

    12

    Estado de un Proceso

    El estado de un proceso es un indicador de la naturaleza de la actividadactual en un proceso

    Estado Descripción

    Ejecución En ese momento el CPU esta ejecutando las

    instrucciones en el código del procesoBloqueado 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 normalmenteo el SSOO lo ha abortado

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    13/35

    Transiciones de estados

    Transición Descripción

    Listo ejecución El proceso se despacha. El CPU inicia la ejecución de susinstrucciones

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

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    14/35

    14

    El PCB: bloque control procesos

    La abstracción de proceso en el SO es representada mediante unaestructura 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

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    15/35

    15

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

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    16/35

    16

    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 

    Listado de archivos abiertos

    Límites de memoria

    Registros

    Program Counter

    Parent Process ID

    Process ID

    Estado del Proceso

    Listado de archivos abiertos

    Límites de memoria

    Registros

    Program Counter

    Parent Process ID

    Process ID

    Estado del Proceso

    Listado de archivos abiertos

    Límites de memoria

    Registros

    Program Counter

    Parent Process ID

    Process ID

    Estado del Proceso

    Listado de archivos abiertos

    Límites de memoria

    Registros

    Program Counter

    Parent Process ID

    Process ID

    Estado del Proceso

    Listado de archivos abiertos

    Límites de memoria

    Registros

    Program Counter

    Parent Process ID

    Process ID

    Estado del Proceso

    Listado de archivos abiertos

    Límites de memoria

    Registros

    Program Counter

    Parent Process ID

    Process ID

    Estado del Proceso

    Listado de archivos abiertos

    Límites de memoria

    Registros

    Program Counter

    Parent Process ID

    Process ID

    Estado del Proceso

    Listado de archivos abiertos

    Límites de memoria

    Registros

    Program Counter

    Parent Process ID

    Process ID

    Estado del Proceso

    Listado de archivos abiertos

    Límites de memoria

    Registros

    Program Counter

    Parent Process ID

    Process ID

    Estado del Proceso

    Listado de archivos abiertos

    Límites de memoria

    Registros

    Program Counter

    Parent Process ID

    Process ID

    Estado del Proceso

    Listado de archivos abiertos

    Límites de memoria

    Registros

    Program Counter

    Parent Process ID

    Process ID

    Estado del Proceso

    Listado de archivos abiertos

    Límites de memoria

    Registros

    Program Counter

    Parent Process ID

    Process ID

    Estado del Proceso

    0 1 2 3 4 5

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    17/35

    17

    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

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    18/35

    18

    Posibles operaciones procesos ….

    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

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    19/35

    19

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

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    20/35

    20

    En ejecuci!n

    "lo#ueado $isto

    1 3

    2

    4

    $isto%suspendido"lo#ueado%suspendido

    suspender &suspend' 

    reanudar &resume' 

      suspender 

    &suspend' 

    reanudar &resume' 

    Estado de Procesos ( Suspenciones 

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    21/35

    21

    Colas de los Procesos

    Cola de listos CPU

    Cola de E/SE/S

    Cola de E/SE/S

    Cola de E/SE/S

    Cola de Listos:Contiene todos los procesos residentes enmemoria principal, listos y esperando

    ejecutarse.

    Colas de dispositivos de E / S.Contiene todo los procesos esperando pordispositivo E / S

    Un proceso migra entre las distintas

    colas.

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    22/35

    22

    Colas de Procesos

    S.O. enlaza PCBs en colas (PCB contiene punteros para ello)

     – Procesos en el mismo estado

    Cola de procesos listos

     – en muchos sistemas, proceso en ejecución también está en ella

    Cola de procesos bloqueados. Alternativas de diseño:

     – Una para todos los bloqueados: Ineficiente – Una por evento (p. ej. Linux): gasto de memoria tolerable

     – Varios eventos por cola (UNIX System V)

    Si proceso en 1 cola en cada instante: basta con puntero en PCB

    En Linux, colas de bloqueados: wait queues

     – No usan puntero del PCB, incluyen el puntero al siguiente

    Cambio de estado implica pasar el PCB de una cola a otra

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    23/35

    Scheduler “long-term” 

    • Job scheduler • Selecciona que

    procesos seránpuestos en la cola delistos.

    • Requerido con pocafrecuencia (en seg)

    • Puede ser lento• Controla el “grado demultiprogramacion”

    Scheduler “short- term”

    • Cpu Scheduler • Selecciona que

    procesos será elsiguiente en ejecutarse

    • Requerido muyfrecuentemente (enmiliseg.)

    • Debe ser rapido

    Schedulers o Planificadores

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    24/35

    24

    1

    2

    34

    5

    9 7

    8

    6

    User Running

    return to user

    sys. callinterrupt

    return

    Kernel Running

    Preempted

    Ready to Runin Memory

    interrupt,interrupt return

    Zombie

    exit

    sleep

    Asleep inMemory

    swap out

    Sleep, Swapped Ready to Run, Swapped

    swapin

    swapout

    enough memory

    fork

    not enough memory(swapping system only)

    wake up

    wake up

    rescheduleprocess

    Diagrama Estados y Transiciones de un proceso en Unix

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    25/35

    Viendo todos los procesos en *nix

    ps au o ps aux

     – Muestra todos los procesos ps au

    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

    bart 3039 0.0 0.2 5916 1380 pts/2 S 14:35 0:00 /bin/bashbart 3134 0.0 0.2 5388 1380 pts/3 S 14:36 0:00 /bin/bashbart 3190 0.0 0.2 6368 1360 pts/4 S 14:37 0:00 /bin/bash

    bart 3416 0.0 0.0 0 0 pts/2 W 15:07 0:00 [bash]

    PID: Process idVSZ: Virtual process size (code + data + stack)RSS: Process resident size: number of KB currently in RAMTTY: Terminal

    STAT: Status: R (Runnable), S (Sleep), W (paging), Z (Zombie)...

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    26/35

    26

    Diagrama de estados de Microsoft

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    27/35

    27

    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

    Cada interrupcion esta asociado con un codigo o rutina atraves del IDT

    1. Proceso en ejecucion hasta la interrupcion

    2. Captura el estado, intercambia el controly encuentra la rutina

    3. Ejecuta la rutina respectiva

    4. Restaura el proceso interrumpido

    5. Continua la ejecucion

    usuario

    kernelIDT:

    Interrupcion al disco (x) Rutina de interrupcion

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    28/35

    Threads / Hilos / Procesos ligeros

    !upongamos un proceso "ue reali#a dos actividadesparaleli#a$les% &!er'a interesante convertirlo en dosprocesos(

    A

    BA B¿ ?

    !i sistema es multiprocesador

    !i sistema no multiprocesador

    A0 B0 A1 B1 A2 B2 A3 B3 A4 B4Un núcleo

    A0 A1 A2 A3 A4Núcleo 1

    B0 B1 B2 B3 B4Núcleo 2

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    29/35

    Procesador Sun UltraSPARC T1

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    30/35

    30

    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 deprocesos

    Threads / Hilos / Procesos ligeros

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    31/35

    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.

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    32/35

    Procesos / Hilos

    Un proceso,1 hilo Un proceso, varios hilos

    Multiprocesos,1 hilo Multiprocesos, multihilos

    MS/DOS Tradicional UNI

    Sistemas embeddedVxworks, Java OS Mach, OS/2, Linux, Win NT a XP, Solaris

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    33/35

    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 delmismo proceso.

    Capacidad de Respuesta. Continuidad de ejecución en determinados escenarios.

    Compartición de recursos.

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    34/35

    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.

  • 8/16/2019 C2_Administracion_Procesador_SS00.pdf

    35/35

    Ejemplo de hilos

    Ejemplo3. Word - Procesador de texto con 3 hilos