sistemas operativos 6 chp

Upload: juan-manuel-rodriguez-gonzalez

Post on 06-Jul-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Sistemas Operativos 6 Chp

    1/68

    Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Capítulo 6: Programación dela CPU

  • 8/18/2019 Sistemas Operativos 6 Chp

    2/68

    6.2 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Capítulo 6: Programación de la CPU

    Conceptos básicosCriterios de programaciónProgramación de Algoritmosprogramación de subprocesosProgramación de procesador múltiple

    Real-Time planicación de la CPUEjemplos de Sistemas OperativosEvaluación algoritmo

  • 8/18/2019 Sistemas Operativos 6 Chp

    3/68

    6.3 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    objetivos

    Para introducir la programación de la CPU, que es la base para lossistemas operativos multiprogramadosPara describir varios algoritmos de programación de la CPUPara discutir los c riterios de evaluación para la selección de unalgoritmo de programación de la CPU para un sistema particular

    Para examinar los a lgoritmos de planicación de varios sistemasoperativos

  • 8/18/2019 Sistemas Operativos 6 Chp

    4/68

    6.4 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Conceptos básicos

    la máxima utilización de la CPUobtenida con multiprogramaciónCPU-I O Ciclo / Ráfaga -Ejecución proceso consiste enuna ciclo de ejecución de CPU yE / S esperarráfaga de CPU seguido por Meráfaga de E / S

    distribución ráfaga de CPU es deinterés principal

  • 8/18/2019 Sistemas Operativos 6 Chp

    5/68

    6.5 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    -burst

  • 8/18/2019 Sistemas Operativos 6 Chp

    6/68

    6.6 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    planificador de la CPU

    Planicador de c orto plazo selecciona de entre los procesos en cola de

    listos, y asigna la CPU a una de ellosCola puede ser ordenado de diversas maneras

    las decisiones de programación de la CPU pueden tener lugar cuando unproceso:1. Cambia de correr a estado de espera2. Cambia de funcionamiento al estado lista3. Cambia de espera de listo4. termina

    La programación de los puntos 1 y 4 es nonpreemptiveTodos los demás programación es con derecho preferente

    Considere la posibilidad de acceso a los datos compartidosConsidere la posibilidad de preferencia, mientras que en el modo denúcleoConsidere la posibilidad de interrupciones que se producen durante lasactividades cruciales del sistema operativo

  • 8/18/2019 Sistemas Operativos 6 Chp

    7/686.7 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Transportista

    módulo despachador da el control de la CPU al procesoseleccionado por el planicador de corto plazo; esto implica:

    el cambio de contextoel cambio al modo de usuariosaltar a la ubicación correcta en el programa de usuariopara reiniciar dicho programa

    latencia d e d espacho - Tiempo que toma al despachadordetener un proceso e iniciar otra ejecución

  • 8/18/2019 Sistemas Operativos 6 Chp

    8/686.8 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Criterios de programación

    utilización de la C PU - Mantener la CPU tan ocupada como seaposiblerendimiento - # De procesos que completan su ejecución porunidad de tiempoEl tiempo de respuesta - Cantidad de tiempo para ejecutar unproceso particularTiempo de espera - Cantidad de tiempo que un proceso haestado esperando en la cola de preparadosTiempo de respuesta - Cantidad de tiempo que transcurredesde que se presentó una solicitud hasta que se produce laprimera respuesta, no salida (para el entorno de tiempocompartido)

  • 8/18/2019 Sistemas Operativos 6 Chp

    9/686.9 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    programación del algoritmo

    aprovechamiento máximo de la CPUrendimiento máximomin tiempo de respuestamin tiempo de esperael tiempo mínimo de respuesta

  • 8/18/2019 Sistemas Operativos 6 Chp

    10/686.10 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    !e primer llegado" primer servido-#c$eduling %&C'

    Proceso Tiempo quemado P 1 24 P 2 3 P 33 Supongamos que los procesos llegan en el orden: P 1 , P 2 , P 3El diagrama de Gantt para el horario es:

    Tiempo de espera para P 1 = 0; P 2 = 24; P 3= 27Tiempo medio de espera: (0 + 24 + 27) / 3 = 17

    P P P1 2 3

    0 24 3027

  • 8/18/2019 Sistemas Operativos 6 Chp

    11/686.11 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    &C Programación %Cont('

    Supongamos que los procesos llegan en el orden: P 2 , P 3 , P 1 El diagrama de Gantt para el horario es:

    Tiempo de espera para P 1= 6 ;P 2 = 0 ;P 3=3Tiempo medio de espera: (6 + 0 + 3) / 3 = 3Mucho mejor que caso anteriorefecto convoy - Corto proceso detrás proceso largo

    Considere la posibilidad de que yo los procesos de E / S con destinoa vinculados a l a CPU y muchos

    P1

    0 3 6 30

    P2

    P3

  • 8/18/2019 Sistemas Operativos 6 Chp

    12/686.12 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    - -Programación

    Asociar con cada proceso la longitud de su siguiente ráfaga deCPU

    Utilice estas longitudes para programar el proceso con eltiempo más corto

    SJF es óptimo - da tiempo medio de espera mínimo para undeterminado conjunto de procesos

    La dicultad es saber la longitud de la siguiente petición de laCPUSe puede pedir al usuario

  • 8/18/2019 Sistemas Operativos 6 Chp

    13/686.13 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    +jemplo de #*&

    Proceso Hora de llegada Tiempo quemado P 1 0.0 6 P 2 2.0 8 P 3 4.0 7 P 4 5.0 3

    SJF gráco de programación

    Tiempo medio de espera = (3 + 9 + 16 + 0) / 4 = 7

    P3

    0 3 24

    P4

    P1

    169

    P2

  • 8/18/2019 Sistemas Operativos 6 Chp

    14/686.14 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    siguiente ráfaga de CPU

    Sólo se puede estimar la longitud - debe ser similar a la anteriorA continuación, elija proceso con menor predicho siguienteráfaga de CPU

    Se puede hacer mediante el uso de la longitud de las ráfagas de

    CPU anteriores, utilizando el promedio exponencial

    Comúnmente, α conjunto a ½versión preferente llamada más corto restante e n tiempo-primero

    :Define 4.10, 3.

    burst CPUnextthefor valuepredicted 2.burst CPUof len th actual 1.

    ≤≤

    =

    =

    +

    α α

    τ 1n

    thn nt

    ( ) .11 nnn t τ α α τ −+==

  • 8/18/2019 Sistemas Operativos 6 Chp

    15/686.15 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Predicción de la longitud de la siguiente ráfaga de CPU

  • 8/18/2019 Sistemas Operativos 6 Chp

    16/686.16 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    +jemplos de promedio e ponencial

    α = 0 τ n + 1 = τ norteLa historia reciente no cuenta

    α = 1 τ n + 1 = α tnorte

    Sólo el último recuento real de la CPU se echóSi ampliamos la fórmula, obtenemos:

    τ norte +1 = T α norte + (1 - α ) α tnorte -1 + ... + ( 1 - α ) j α tnorte - j + ... + ( 1 - α ) norte +1 τ 0

    Dado que tanto α y (1 - α ) son menos que o igual a 1, cadatérmino sucesivo tiene menos peso que su predecesor

    j l d á i

  • 8/18/2019 Sistemas Operativos 6 Chp

    17/686.17 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    +jemplo de más corta-restante-tiempo-primero

    Ahora añadimos los conceptos de diferentes tiempos de llegada y d epreferencia al análisis Proceso UN arri Llegada Hora TTiempo quemado P 1 0 8 P 2 1 4

    P 3 2 9 P 4 3 5Con derecho preferente Gráco Gantt SJF

    Tiempo medio de espera = [(10-1) + (1-1) + (17-2) + 5-3)] / 4 = 26/4 =6.5 mseg

    P4

    0 1 26

    P1

    P2

    10

    P3

    P1

    5 17

  • 8/18/2019 Sistemas Operativos 6 Chp

    18/686.18 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    prioridad de programación

    Un número de prioridad (entero) se asocia con cada proceso

    La CPU se asigna al proceso con la prioridad más alta (menorentero ≡ prioridad más a lta)

    Con derecho preferentenonpreemptive

    SJF es programación de prioridad donde la prioridad es la inversadel tiempo predicho siguiente ráfaga de CPU

    Problema ≡ Inanición - Los procesos de baja prioridad no puedenejecutar

    solución ≡ Envejecimiento - A medida que pasa el tiempoaumentar la prioridad del proceso

  • 8/18/2019 Sistemas Operativos 6 Chp

    19/686.19 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    programación

    Proceso Un arri Tiempo quemado T Prioridad P 1 10 3 P 2 1 1 P 3 2 4 P 4 1 5

    P 55 2

    Prioridad Gráco Gantt para la programación

    tiempo de espera promedio = 8.2 ms

    1

    0 1 19

    P1

    P2

    16

    P4

    P3

    6 18

    P

  • 8/18/2019 Sistemas Operativos 6 Chp

    20/686.20 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    .ound .obin %..'

    Cada proceso obtiene una pequeña unidad de tiempo de CPU(hora cuántico q), Por lo general 10 a 100 milisegundos.Después de transcurrido este tiempo, el proceso se adelantó y seañade al nal de la cola de listos.Si hay norte Los procesos e n la cola de listos y el cuanto detiempo es q, Entonces cada proceso obtiene 1 / norte del tiempo

    de CPU en trozos de a lo sumo q unidades de tiempo a la vez.Ningún proceso espera más de ( norte -1) qunidades de tiempo.Temporizador interrumpe cada cuántica para programar elpróximo proceso deActuación

    q grande ⇒ FIFOq⇒ pequeña qdebe ser grande con respecto al cambio decontexto, de lo contrario sobrecarga es demasiado alto

  • 8/18/2019 Sistemas Operativos 6 Chp

    21/686.21 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    +jemplo de .. con Time /uantum 0 1

    Proceso Tiempo quemadoP 124 P 2 3 P 33El diagrama de Gantt es:

    Por lo general, un mayor cambio promedio que SJF, pero mejorrespuestaq debe ser grande en comparación con el tiempo de cambio de contextoq normalmente 10 ms a 100 m s, cambio de contexto

  • 8/18/2019 Sistemas Operativos 6 Chp

    22/686.22 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    de conte to

  • 8/18/2019 Sistemas Operativos 6 Chp

    23/686.23 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Tiempo de respuesta varía con el tiempo /uantum

    80% de las ráfagas deCPU debe ser más cortoque q

  • 8/18/2019 Sistemas Operativos 6 Chp

    24/68

    6.24 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    multinivel cola

    cola de listos s e divide en colas s eparadas, por ejemplo:

    primer plano (interactivo)fondo (l ote)

    Proceso de forma permanente en una cola dadaCada cola tiene su propio algoritmo de planicación:

    primer plano - RRbackground - FCFSLa programación debe realizarse entre las colas:

    programación de prioridad ja; (Es decir, servir a todos desde elprimer plano de fondo a continuación). Posibilidad de hambre.

    rebanada de tiempo - cada cola para crear una cierta cantidadde tiempo de CPU que se puede programar entre sus procesos;es decir, el 80% a los conocimientos previos en RR20% a fondo en el orden de llegada

  • 8/18/2019 Sistemas Operativos 6 Chp

    25/68

    6.25 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Programación de colas multinivel

  • 8/18/2019 Sistemas Operativos 6 Chp

    26/68

    6.26 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Comentarios cola de multinivel

    Un proceso puede moverse entre las distintas colas; elenvejecimiento puede ser implementado de esta maneraplanicador multinivel-feedback-cola denida por los s iguientesparámetros:

    número de colas

    algoritmos de planicación para cada colamétodo utilizado para determinar el momento de actualizar unproceso demétodo utilizado para determinar cuándo se debe degradar unproceso demétodo utilizado para determinar qué cola un proceso entrarácuando ese proceso requiere un servicio

  • 8/18/2019 Sistemas Operativos 6 Chp

    27/68

    6.27 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    multinivel

    Tres colas:Q0 - RR con cuanto de tiempo de 8milisegundosQ1 - RR tiempo de 16 milisegundos cuánticaQ2 - FCFS

    programaciónUn nuevo trabajo entra en cola Q0 que sesirve FCFS

    Cuando llega al CPU, trabajo recibe 8milisegundosSi no termina en 8 ms, el trabajo semueve a l a cola Q1

    AQ1 trabajo está otra vez con FCFS yrecibe 16 milisegundos a dicionales

    Si aún no se completa, hasta que seaapropiado y se trasladó a la cola Q2

  • 8/18/2019 Sistemas Operativos 6 Chp

    28/68

    6.28 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    programación de subprocesos

    Distinción entre el nivel de usuario y las discusiones a nivel del núcleoCuando las roscas compatibles, las discusiones programadas, no losprocesosMuchos-a-uno y muchos-a-muchos modelos, hilos de rosca horarios dela biblioteca de nivel de usuario se ejecutan en LWP

    Conocido como alcance d el proceso de co ntención (PCS )ya que lacompetencia de programación es en el proceso deNormalmente hecho a través de prioridad establecido por elprogramador

    hilo del núcleo programado en la CPU disponible es alcance sistema d econtención ( SCS )- La competencia entre todos los hilos en el sistema

  • 8/18/2019 Sistemas Operativos 6 Chp

    29/68

    6.29 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    programación pt$read

    API permite especicar cualquiera de PCS o SCS durante lacreación del hiloPTHREAD_SCOPE_PROCESS horarios hilos utilizandoPCS programaciónPTHREAD_SCOPE_SYSTEM horarios hilos utilizando SCSprogramación

    Puede ser limitado por el sistema operativo - Linux y Mac OS Xsólo permiten PTHREAD_SCOPE_SYSTEM

  • 8/18/2019 Sistemas Operativos 6 Chp

    30/68

    6.30 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Pt$read Programación 3P4# include

    #include

    NUM_THREADS #define int !ain "int ar c$ char % ar & '() *

    int i$ +!,ito de aplicaci-n pthread_t tid 'H/01S NUM(

    attr pthread_attr_t

    2 % 1,tener los atri,utos por defecto % 2

    pthread_attr_init "3 attr)

    2 % Se de,er+ consultar en el +!,ito actual % 2 si "pthread_attr_ etscope "3 attr$ 3 +!,ito de aplicaci-n)4 5 6)

    fprintf "stderr$ 7No se puede o,tener la pro ra!aci-n de alcance 8n7)

    else *

    si "55 alcance 9THREAD_S:19E_9R1:ESS)

    printf " 79THREAD_S:19E_9R1:ESS7)

    else if "alcance 55 9THREAD_S:19E_S;STEM)printf " 79THREAD_S:19E_S;STEM7)

    !+s fprintf "stderr$ 7 alor ile al alcance. 8 n7)

    =

  • 8/18/2019 Sistemas Operativos 6 Chp

    31/68

    6.31 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Pt$read Programación 3P4

    2 % Esta,lecer el al orit!o de planificaci-n de 9:S o S:S % 2

    pthread_attr_setscope "3 attr$ 9THREAD_S:19E_S;STEM)2 % :rear los hilos % 2

    for "i 5 6 i

  • 8/18/2019 Sistemas Operativos 6 Chp

    32/68

    6.32 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Programación de procesador m5ltiple

    planicación de la CPU más complejo cuando varias CPU están

    disponiblesHomogéneo procesadores dentro de un multiprocesadormultiprocesamiento asimétrico - Sólo un procesador accede a lasestructuras de datos del sistema, aliviando la necesidad deintercambio de datosEl multiprocesamiento simétrico (SMP )- Cada procesador es auto-programación, todos los procesos en cola de preparados común, ocada uno tiene su propia cola privada de los procesos listos

    Actualmente, más comúnla a nidad del procesador - Proceso tiene anidad por elprocesador en el que se está ejecutando actualmente

    anidad suaveanidad duro

    Las variaciones incluyendo los c onjuntos d e p rocesadores

  • 8/18/2019 Sistemas Operativos 6 Chp

    33/68

    6.33 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    U)3 2 CPU Programación

    Tenga en cuenta que los algoritmos de memoria de colocacióntambién pueden considerar afinidad

    ar as en a programac n e procesa or -

  • 8/18/2019 Sistemas Operativos 6 Chp

    34/68

    6.34 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    ar as en a programac n e procesa or +8uilibrio de carga

    Si SMP, la necesidad de mantener todas las CPU cargadospara la ecienciaBalanceo de carga los intentos de mantener la carga detrabajo distribuida uniformementela migración de em puje - Comprobaciones periódicas detrabajo se cargan en cada procesador, y si se encuentra tareaempuja desde la CPU sobrecargada con otras CPUsla m igración de a rrastre - Procesadores ociosos esperandotirones tarea de procesador ocupado

  • 8/18/2019 Sistemas Operativos 6 Chp

    35/68

    6.35 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    n5cleos

    tendencia reciente para colocar múltiples núcleos deprocesador en mismo chip físicoMás rápido y consume menos energíaMúltiples hilos por núcleo también está creciendo

    Se aprovecha de la parada de memoria para avanzar enotro hilo, mientras que la memoria recuperar sucede

  • 8/18/2019 Sistemas Operativos 6 Chp

    36/68

    6.36 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    #istema multin5cleo multi$ilo

  • 8/18/2019 Sistemas Operativos 6 Chp

    37/68

    6.37 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    .eal-Time planificación de la CPU

    Puede presentar desafíos obvios

    sistemas d e tiempo real suaves -Se programará ninguna garantía encuanto al proceso cuando críticosen tiempo realLos sistemas d e tiempo real -Tarea debe ser reparado por su

    plazoHay dos tipos de latencias afectanal rendimiento

    1. Interrupción de latencia - tiempo desdela llegada de interrupción al inicio de larutina que interrumpen los s ervicios

    2. Despacho de latencia - tiempo para elhorario para tomar proceso actual de laCPU y cambiar a otro

  • 8/18/2019 Sistemas Operativos 6 Chp

    38/68

    6.38 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Programación %Cont('

    fase de latencia

    conicto de expedición:1. Derecho preferente

    de compra decualquier procesoque se ejecuta enmodo de núcleo

    2. La liberación por elproceso de bajaprioridad de losrecursosnecesarios para losprocesos de altaprioridad

  • 8/18/2019 Sistemas Operativos 6 Chp

    39/68

    6.39 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Programación basada en prioridades

    Para la programación en tiempo real, el planicador debe ser

    compatible con la programación preventiva, basada en prioridadesPero sólo garantiza suave en tiempo real

    Por tiempo real duro también debe proporcionar la capacidad paracumplir los plazosLos procesos tienen nuevas características: periódico cuáles

    requieren de la CPU a intervalos constantesTiene tiempo de procesamiento t, fecha tope re, período p0 ≤ t ≤ re ≤ pTarifa de la tarea periódica es 1 / p

  • 8/18/2019 Sistemas Operativos 6 Chp

    40/68

    6.40 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    7irtuali ación 2 Programación

    horarios de software de virtualización de múltipleshuéspedes Onto CPU (s)Cada invitado haciendo su propia programación

    Sin saber que doesn't poseen las CPUsPuede resultar en un tiempo de respuesta

    Puede afectar los relojes de la hora del día en loshuéspedesPuede deshacer buenos esfuerzos algoritmo deplanicación de los huéspedes

  • 8/18/2019 Sistemas Operativos 6 Chp

    41/68

    6.41 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Programación tasa )ontonic

    Se asigna una prioridad basada en la inversa de su periodo

    períodos más cortos = mayor prioridad;

    Los períodos más largos = prioridad más baja

    P1 se le asigna una prioridad mayor que P 2 .

    ncump m ento e p a os con una tasa e

  • 8/18/2019 Sistemas Operativos 6 Chp

    42/68

    6.42 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    p p)onotónica Programación

    a ec a m e m s emprana r mera

  • 8/18/2019 Sistemas Operativos 6 Chp

    43/68

    6.43 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    a ec a m e m s emprana r meraProgramación %+!&'

    Las prioridades se asignan de acuerdo a los plazos:

    cuanto antes de la fecha límite, mayor es la prioridad;la tarde de la fecha límite, menor será la prioridad

  • 8/18/2019 Sistemas Operativos 6 Chp

    44/68

    6.44 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Compartir proporcional Programación

    T se asignan cuotas entre todos los procesos en el sistema

    Una aplicación recibe norte acciones cuando N

  • 8/18/2019 Sistemas Operativos 6 Chp

    45/68

    6.45 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Programación P9#4 en tiempo real

    los estándar POSIX.1b

    API proporciona funciones para la gestión en tiempo real traposrerecisa dos clases de planicación para las discusiones en tiemporeal:

    n SCHED_FIFO - hilos se programan utilizando una estrategia FCFS conuna cola FIFO. No hay tiempo compartido de hilos de igual prioridad

    n SCHED_RR - Similar a SCHED_FIFO excepto el tiempo compartido seproduce de hilos de igual prioridadDene dos funciones para obtener y establecer la política deprogramación:

    n pthread_attr_getsched_policy(pthread_attr_t *attr,int

    *política)n pthread_attr_setsched_política(pthread_attr_t

    *attr,int política)

    en empo rea e

  • 8/18/2019 Sistemas Operativos 6 Chp

    46/68

    6.46 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    en empo rea eprogramación

    # include

    #include

    NUM_THREADS #define int !ain "int ar c$ char % ar & '()

    *

    int i$ la pol?tica pthread_t_tid 'NUM_THREADS(

    attr pthread_attr_t

    2 % 1,tener los atri,utos por defecto % 2

    pthread_attr_init "3 attr)

    2 % 1,tener la pol?tica de planificaci-n actual % 2 si "pthread_attr_ etschedpolic3 "3 attr$ 3 la pol?tica)4 5 6)

    fprintf "stderr$ 7No se puede o,tener la pol?tica. 8 n7)

    else *

    si "55 pol?tica S:HED_1THER) printf " 7S:HED_1THER 8 n7)

    else if "pol?tica 55 S:HED_RR) printf " 7S:HED_RR 8 n7)else if "pol?tica 55 S:HED_C/C1) printf " 7S:HED_C/C1 8 n7)

    =

  • 8/18/2019 Sistemas Operativos 6 Chp

    47/68

  • 8/18/2019 Sistemas Operativos 6 Chp

    48/68

    (

  • 8/18/2019 Sistemas Operativos 6 Chp

    49/68

    6.49 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

  • 8/18/2019 Sistemas Operativos 6 Chp

    50/68

    6.50 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Programación ,inu en la versión

  • 8/18/2019 Sistemas Operativos 6 Chp

    51/68

    6.51 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    .endimiento #&C

    i P ió %C t('

  • 8/18/2019 Sistemas Operativos 6 Chp

    52/68

    6.52 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    ,inu Programación %Cont('

    programación en tiempo real de acuerdo con POSIX.1b

    tareas e n tiempo real tienen prioridades e státicasEn tiempo real más el mapa normal en régimen de prioridad globalBuen valor de los mapas de -20 a 100 prioridad globalBuen valor de 19 se asigna a la prioridad 139

    ió d @i d @

  • 8/18/2019 Sistemas Operativos 6 Chp

    53/68

    6.53 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    programación de @indo@s

    Windows utiliza la programación preventiva basada en

    prioridadessubproceso de prioridad más a lta corre juntoTransportista es planicadorEl hilo se termina hasta que (1) bloques, (2) utiliza porciónde tiempo, (3) apropiado por mayor prioridad hilo

    las discusiones en tiempo real pueden adelantarse entiempo no realesquema de prioridad de 32 nivelesvariable d e c lase es 1-15, clase en tiempo real es 16-31La prioridad 0 es el hilo de administración de memoriaCola para cada prioridadSi hay hilo de ejecución podrá, corre subproceso inactivo

    l d i id d d Ai d @

  • 8/18/2019 Sistemas Operativos 6 Chp

    54/68

    6.54 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    ,as clases de prioridad de Aindo@s

    Win32 API identica varias clases de prioridad a los que un proceso puede

    pertenecer REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS,ABOVE_NORMAL_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS,BELOW_NORMAL_PRIORITY_CLASS, IDLE_PRIORITY_CLASSTodos son variables, excepto TIEMPO REAL

    Un hilo dentro de una clase de prioridad dada tiene una prioridad relativa

    TIME_CRITICAL, MÁS ALTO, ABOVE_NORMAL, NORMAL, BELOW_NORMAL,BAJO, EN REPOSO

    clase de prioridad y la prioridad que se combinan para dar prioridad numéricaprioridad de base es normal dentro de la claseSi expira cuántica, la prioridad baja, pero nunca por debajo de la base

    l d i id d d Ai d @ %C t('

  • 8/18/2019 Sistemas Operativos 6 Chp

    55/68

    6.55 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    ,as clases de prioridad de Aindo@s %Cont('

    Si se produce de espera, la prioridad aumentó en función de lo queestaba esperadoventana en primer plano 3x dada aumento de prioridadWindows 7 ha añadido programación en modo de usuario (UMS )

    Las aplicaciones crean y administran las discusionesindependientes del núcleoPara gran número de hilos, mucho más ecienteUMS programadores provienen de bibliotecas lenguaje deprogramación como C ++ Tiempo de ejecución concurrente(ConcRT) Marco

    P i id d d @i d @

  • 8/18/2019 Sistemas Operativos 6 Chp

    56/68

    6.56 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Prioridades de @indo@s

    #olaris

  • 8/18/2019 Sistemas Operativos 6 Chp

    57/68

    6.57 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    #olaris

    La programación basada en prioridad

    Seis clases disponibles El tiempo compartido (por defecto) (TS)Interactiva (IA)en tiempo real (RT)Sistema (SYS)De reparto justo (FSS)prioridad ja (PF)

    subproceso dado puede estar en una clase a la vezCada clase tiene su propio algoritmo de planicación

    El tiempo compartido es cola de retroalimentación de varios nivelescargable tabla congurable por el administrador de sistemas

    Tabla de despac$o de #olaris

  • 8/18/2019 Sistemas Operativos 6 Chp

    58/68

    6.58 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Tabla de despac$o de #olaris

    g ió d # l i

  • 8/18/2019 Sistemas Operativos 6 Chp

    59/68

    6.59 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    programación de #olaris

    P g ió d # l i %C t('

  • 8/18/2019 Sistemas Operativos 6 Chp

    60/68

    6.60 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Programación de #olaris %Cont('

    Programador convierte prioridades especícas de clase en una

    prioridad global hilos porHilo con mayor prioridad pasa al ladoSe ejecuta hasta que (1) bloques, (2) utiliza porción detiempo, (3) apropiado por mayor prioridad hiloVarios subprocesos al mismo prioridad seleccionados a travésde RR

    +valuación algoritmo

  • 8/18/2019 Sistemas Operativos 6 Chp

    61/68

    6.61 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    +valuación algoritmo

    ¿Cómo seleccionar el algoritmo de CPU-programación para unsistema operativo?Determinar los c riterios, a continuación, evaluar los a lgoritmosmodelado determinista

    Tipo de evaluación analíticaToma una carga de trabajo particular predeterminada y dene elrendimiento de cada algoritmo para que la carga de trabajo

    Considere 5 procesos que lleguen a tiempo 0:

    l ió d i i

  • 8/18/2019 Sistemas Operativos 6 Chp

    62/68

    6.62 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    +valuación determinista

    Para cada algoritmo, calcular el tiempo medio de espera mínimoSencillo y rápido, pero requiere los números exactos de entrada, seaplica únicamente a las entradas

    FCS es 28ms:

    No preferente USF es 13ms:

    RR es 23 ms:

    ) d l d l

  • 8/18/2019 Sistemas Operativos 6 Chp

    63/68

    6.63 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    )odelos de colas

    Describe la llegada de los procesos, y la CPU y E / S irrumpe

    probabilísticamenteComúnmente exponencial, y descrito por mediaCalcula la media utilización de rendimiento, tiempo deespera, etc.

    sistema informático descrito como la red de servidores, cada unocon cola de procesos en espera

    Conocer las tasas de llegada y las tarifas de serviciosCalcula la utilización, la longitud media de la cola, el tiempopromedio de espera, etc.

    P 8 B &ó l

  • 8/18/2019 Sistemas Operativos 6 Chp

    64/68

    6.64 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    Pe8ueBo s &órmula

    norte = Longitud media de la cola

    W = Tiempo medio de espera en la colaλ = Tasa media de llegada a la colaPequeño'Ley s - en estado estacionario, dejando procesa la coladebe ser igual a los procesos de llegar, por lo tanto: norte =λ incógnita W

    Válido para cualquier algoritmo de planicación y distribuciónde la llegada

    Por ejemplo, si una media de 7 procesos llegar por segundo, ynormalmente 14 procesos en la cola, el tiempo promedio deespera entonces por proceso = 2 segundos

    i l i

  • 8/18/2019 Sistemas Operativos 6 Chp

    65/68

    6.65 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    simulaciones

    modelos de colas limitadossimulaciones más preciso

    modelo programada del sistema informáticoReloj es una variableRecopilar estadísticas que indican rendimiento de los a lgoritmos

    Datos a l a unidad de simulación conseguida a través delGenerador de números aleatorios de acuerdo a las probabilidadesDistribuciones dene matemáticamente o empíricamenteTraza cintas s ecuencias de registro de eventos reales en sistemasreales

    va uac n e a c e u ers por#imulación

  • 8/18/2019 Sistemas Operativos 6 Chp

    66/68

    6.66 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    #imulación

    4mplementación

  • 8/18/2019 Sistemas Operativos 6 Chp

    67/68

    6.67 Silberschatz, Galvin an d Gagne ©2013Operating System Concepts – 9 th Edition

    4mplementación

    simulaciones incluso tienen una precisión limitada

    Sólo aplicar nuevo planicador y la prueba en sistemas realesAlto costo, de alto riesgoambientes varían

    La mayoría de los programadores exibles pueden ser modicadospor el lugar o por sistemaO API para modicar las prioridadesPero una vez más entornos varían

  • 8/18/2019 Sistemas Operativos 6 Chp

    68/68

    &inal del capítulo 6