0% encontró este documento útil (0 votos)
15 vistas90 páginas

Modulo 2-3 So

El documento aborda la administración de procesos en sistemas operativos, describiendo conceptos clave como procesos, hilos y modelos de estados. Se analizan diferentes algoritmos de planificación, incluyendo FCFS, SJF, SRTF y Round Robin, así como sus características y aplicaciones. Además, se discuten objetivos de rendimiento y administración en entornos multitarea y multiprocesados.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
15 vistas90 páginas

Modulo 2-3 So

El documento aborda la administración de procesos en sistemas operativos, describiendo conceptos clave como procesos, hilos y modelos de estados. Se analizan diferentes algoritmos de planificación, incluyendo FCFS, SJF, SRTF y Round Robin, así como sus características y aplicaciones. Además, se discuten objetivos de rendimiento y administración en entornos multitarea y multiprocesados.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

SISTEMAS OPERATIVOS – MÓDULO II - III

AÑO 2023
PROF. ING. JORGE L.MODICA

ADMINISTRACIÓN DE PROCESOS
PROCESOS: MODELOS DE ESTADOS - TRANSICIONES

• Instancia de un programa admitido por el S.O.


• Cuando hace uso de CPU está en ejecución
• Posee distintos estados entre los que transiciona
• Existen distintos modelos de estados de proceso
PROCESOS Y THREADS (HILOS)
• PROCESO:
• INSTANCIA DINAMICA DE UN PROGRAMA
• UNIDAD INDEPENDIENTE
• CONMUTACION DE CONTEXTO PESADA
• CADA PROCESO ES PROPIETARIO DE SUS RECURSOS
• HILO:
• ES UNA PORCION ADMINISTRABLE DE UN PROCESO
• COMPARTEN RECURSOS ARCHIVOS Y ESPACIO DE MEMORIA
• SON INTERRUMPLIBLES
• CONMUTACIÓN DE CONTEXTO LIVIANA
MODELO DE 5 ESTADOS GENERAL

INACTIVO ACTIVO LISTO

PCB
BLOQUEADO EJECUCIÓN
INFORMACION
DE PROCESOS
OBJETIVOS DE LA ADMINISTRACIÓN DE PROCESOS

❖MANTENER OCUPADO EL CPU (REDUCIR TIEMPOS OCIOSOS) → RENDIMIENTO


(THROUGPUT)
❖REALIZAR LA MAYOR CANTIDAD DE TAREAS POSIBLES
❖TIEMPO DE RETORNO
❖TIEMPO DE ESPERA
❖TIEMPO DE RESPUESTA
❖EQUITATIVIDAD → TODOS LOS PROCESOS DEBEN TENER OPORTUNIDAD DE USAR EL
CPU
ALGORITMOS DE ADMINISTRACIÓN
LTS

INACTIVO ACTIVO LISTO

STS
MTS

MEMORIA BLOQUEADO EJECUCIÓN


SECUNDARIA
MONOPROCESO Y MULTIPROCESO

• CADA PROCESO TIENE SUS RECURSOS


• SE DIFICULTA LA CODIFICACIÓN PARA
SIMULTANEIDAD
• DEPURACIÓN MAS SIMPLE
• PROTECCIÓN DE ACCESO A MEMORIA
MULTIHILO (MULTITHREAD)

• PROCESO PADRE: HILO PRINCIPAL


• PROCESOS HIJOS
• COMPARTEN ESPACIO DE CODIGO DATOS Y ARCHIVOS
• CADA HILO TIENE SU PROPIO CODIGO, REGISTROS Y
PILA
• COMPARTEN RECURSOS
• COMUNIICACIÓN MAS RAPIDA ENTRE THREADS
• EL THREADING SIMULTANEO ES MAS FACIL DE
IMPLEMENTAR
• CONMUTACIÓN DE CONTEXTO MAS RAPIDA
ADMINISTRACIÓN DE PROCESOS

• SE PARTE DE UNA SITUACIÓN MULTITAREA


• ENTORNO MONOPROCESADO: ADMINISTRACIÓN DE PROCESOS
• ENTORNO MULTIPROCESADO: ADMINISTRACIÓN DE PROCESADORES (CPU)
+ ADMINISTRACIÓN DE PROCESOS
• UTILIZAN ALGORITMOS DE ADMINISTRACIÓN DE PROCESOS
• UTILIZAN ALGORITMOS DE ADMINISTRACIÓN DE PROCESADORES
• CONCEPTOS DE AFINIDAD, EQUILIBRIO DE CARGA Y MIGRACIÓN
CARACTERISTICA DE EJECUCIÓN DE PROCESOS

• MULTITAREA SECUENCIAL (FIFO)


• MULTITAREA INTERCALADA
• MULTITAREA TIEMPO REAL
• PROCESOS BATCH (BACKGROUND)
COMPARATIVA DE RENDIMIENTO (THROUGPUT)

A1 a1 A2

B1 b1 B2 b2 B3

C1 c1 C2 c2 C3 c3 A4

A1 a1 A2 B1 b1 B2 b2 B3 C1 c1 C2 c2 C3 c3 A4

Ƞ % = (9ut / 21ut) x 100 = 42,85 %


MULTITAREA INTERCALADA

c1 c2 c3

b1 b2

a1

A1 B1 C1 A1 B2 C2 B3 C3 C4

Ƞ % = (9 ut /12 ut) x 100 = 75 %


MULTITAREA EN TIEMPO REAL (PRIORIDADES)
A

B1 B2 B3 B4 B5

T0 → 5 LECTURAS

P B1 B2 P A B3 P B4 B5 P
ALGORITMOS DE ADMINISTRACION
• ADMINISTRADOR DE LARGO PLAZO
• ADMISIÓN, EXPULSION, CONCLUSION
• PROPORCIONA EL NIVEL DE MULTIPROGRAMACIÓN
• SE EJECUTA CON MUY BAJA FRECUENCIA
• ADMISNISTRADOR DE MEDIO PLAZO
• TRANSACCIONES ENTRE DISCO Y MEMORIA
• FRECUENCIA DE EJECUCION INTERMEDIA, SEGÚN LA NECESIDAD DE ESPACIO DE MEMORIA
• ADMINISTRADOR DE CORTO PLAZO
• DISTINTAS ESTRATEGIAS SEGÚN CAARACTERISTICAS DE PROCESO
• SE EJECUTAN CON ALTA FRECUENCIA
ALGORITMOS DE ADMINISTRACIÓN DE CORTO PLAZO
(SCHEDULING)
• FCFS BASADO EN COLA FIFO
• SJF BASADO EN DURACIÓN DE PROCESO, NO APROPIATIVO
• SRTJF BASADO EN TIEMPO RESTANTE DE PROCESO, VERSION APROPIATIVA DE SJF
• ROUND ROBIN BASADO EN SLOTS DE TIEMPO (QUANTUM)
• VRR RR PARA PROCESOS INTERACTIVOS
• PRIORIDAD SIMPLE COLA APROPIATIVO/NO APROPIATIVO
• PRIORIDAD COLAS MULTIPLES SIN REALIMENTAR CADA COLA ES FIFO
• PRIORIDAD COLAS MULTIPLES CON REALIMENTACIÓN COLAS FIFO
APROPIATIVIDAD Y NO APROPIATIVIDAD

❖NO APROPIATIVO: LOS PROCESOS QUE TIENEN PRIORIDAD NO EXPROPIAN


LA CPU AL PROCESO QUE ESTÁ EN EJECUCIÓN
❖APROPIATIVO (EXPROPIATIVO) : LOS PROCESOS QUE TIENEN MAS
PRIORIDAD QUE EL QUE ESTA EN EJECUCIÓN, EXPROPIAN LA CPU
PCB E IMAGEN DE PROCESO

PCB (PROGRAM CONTROL BLOC)


▪ INFORMACIÓN DEL PROCESO ADMITIDO (ESTADO ACTIVO )
▪ CONTIENE INFORMACION COMPLETA DEL PROCESO
▪ SE CREA CUANDO SE PLANIFICA EL PROCESO
▪ SE ELIMINA CUANDO EL PROCESO TERMINA
▪ IMAGEN DE PROCESO ES LA INFO MINIMA REQUERIDA EN LOS PROCESOS DE CONUTACION DE
CONTEXTO
PCB: CONTENIDO

• ID DE PROCESO (NUMERO ASIGNADO POR S.O.)


• CANTIDAD DE PROCESOS ADMITIDOS
• ESTADO DEL PROCESO
• NUMERO DE PROCESO (THREAD)
• CONTADOR DE PROGRAMA
• ESPACIO DE DIRECCIONES
• PRIORIDAD
• TIEMPO DE EJECUCIÓN
• LISTA DE RECURSOS ASIGNADOS
• ARCHIVOS ABIERTOS
• IMAGEN DE PROCESO
• PERMISOS
• SE UBICA EN RAM PROTEGIDA DEL ACCESO DE PROCESOS DE USUARIO
FCFS: FIRST COME FIRST SERVED
• Este algoritmo está basado en una cola FIFO
• Los procesos son despachados de acuerdo al orden de llegada según su admisión
• Es de fácil implementación
• Penaliza los procesos de menor duración
• Utilizado para procesos BATCH
• Normalmente se implementa con mecanismos de administración con prioridad
• No es apropiativo
FCFS TE’ Y TR’
PROCESOS RAFAGA (ut) LLEGAGA
P0 25 0
P1 10 0
P2 15 0
P3 5 0

P0 P1 P2 P3
25 35 50 55

TEP0=0 TE’= 110/4 TRP0=25 TR’= 165/4


TEP1=25 TRP1=35
TEP2= 35 TRP2= 50
TEP3 =50 27,5 ut TRP3 =55 41,25 ut
FCFS – OTRO EJEMPLO
PROCESOS RAFAGA (ut) LLEGAGA
P3 5 0
P1 10 0
P2 15 0
P0 25 0
P3 P1 P2 P0

5 15 30 55

TEP0=30 TE’= 50/4 TRP0=55 TR’= 105/4


TEP1=5 TRP1=15
TEP2= 15 TRP2= 30
TEP3 =0 12,5 ut TRP3 =5 26,25 ut
SHORT JOB FIRST (PRIMERO LA TAREA MAS CORTA)

• PRIMERO EL TRABAJO MAS CORTO: SE ORDENAN LOS PROCESOS DE DURACIÓN MENOR A MAYOR
• NO APROPIATIVO
• REQUIERE DE ALGORITMO PREDICTOR PARA ESTIMAR LA RAFAGA DE CADA PROCESO
• APTO PARA PROCESOS BATCH
• VERSION OPTIMIZADA SOBRE FCFS
SJF: EJEMPLO APLICATIVO PROCESOS RAFAGA (ut) LLEGAGA
P3 5 5
P1 10 0
P2 15 0
P0 25 0

P1 P3 P2 P0

5 10 15 30 55
P3
TEP0=30 TRP0=55
TE’=60/4 TRP1=10 TE’=105/4
TEP1=0
P2
TEP2=15 15ut TRP2=30 26,25ut
TEP3=5 TRP3=10
P0
EJEMPLO SJF CON DISTINTOS TIEMPOS DE LLEGADA
TP1= 0 TP1= 8

TP2= 8-1=7 TP2= 12-1=11

TP3= 17-2=15 TP3= 26-2=24

TP4= 12-3=9 TP4= 17-3=14

TE’= 7,75 TR’= 14,25


SJF: ALGORITMO DE ENVEJECIMIENTO (PREDICTOR)

• FACTOR DE ENVEJECIMIENTO: α; 0 ≤ α ≤ 1
• VALOR UTILIZADO NORMALMENTE 1/2
• TIEMPO EN EL INSTANTE tn TIEMPO MEDIDO DE LA DURACION DE LA RAFAGA
• Ƭ TIEMPO CALCULADO POR EL ALGORITMO
• EL ALGORITMONECESITA DATOS DE INICIO PARA OPERAR, SE SUELE COLOCAR UN VALOR
INICIAL O ALGUN PROMEDIO PREVIO REGISTRADO Ƭ0
• CONVERGENCIA RÁPIDA
EJEMPLO APLICACIÓN ALGORITMO DE AGING
DATOS INICIALES PARA EL ALGORITMO:
Ƭ0= t0= 4
α = 0,5

Ƭ1= α t0+ (1- α ) Ƭ0


Ƭ1= 0,5 .4 + 0,5 .4 Ƭ1=4 t1=6
Tiempos
Ƭ2= α t1+ (1- α ) α t0 +(1- α Ƭ0)2 medidos
Ƭ2= 0,5 .6 + 0,5 . 0,5 .4 + (0,5)2 . 4 Ƭ2=2,3 t2=1 después de
cada
Ƭ3= α t2 + (1- α ) α t1+ (1- α )2 α t0 +(1- α )4 Ƭ0 ejecución
Ƭ3= 0,5 . 1 + 0,52 .6 + 0,53 . 4 + (0,5)4 . 4 Ƭ3=2,75 t3=2,8

Ƭ4= α t3 + (1- α ) α t2 + (1- α )2 α t1+ (1- α )3 α t0 +(1- α )5 Ƭ0


Ƭ4= 0,5 . 2,8 + 0,52 .1 + 0,53 .6 + 0,54 . 4 + (0,5)5 . 4 Ƭ4=2,775
SRTJF (SJF APROPIATIVO O SRTF) SRTF
TE1=0 + (10-1)=9
SJF
TE1= 0
TE2=0 TE2= 8-1=7
• ALGORITMO APROPIATIVO TE3=17-2=15 TE3= 17-2=15
• SE BASA EN EL MENOR TIEMPO RESTANTE TE4=5-3= 2 TE4=12-3=9

• UTILIZA PARA ESTIMAR RAFAGAS EL ALGORITMO DE ENVEJECIMIENTO


TÉ=6,5 TÉ=7,75

SJF
SRTF
TR1= 8
TR1=17
TR2= 12-1=11
TR2=5-1=4
TR3= 26-2=24
TR3=26-2=24
TR4=17-3=14
TR4=10-3=7
TR’=14,25
TR’= 13
ROUND ROBIN (TURNO ROTATIVO)

• ALGORITMO APTO PARA PROCESOS INTERACTIVOS


• ALGORITMO APROPIATIVO
• PENALIZA A LOS PROCESOS CON E/S
• CONMUTACIONES DE CONTEXTO CADA Q (Q PUEDE DIFERIR ENTRE S.O.)
• CONMUTACIÓN DE CONTEXTO BASADA EN CLOCK
• PARAMETRO CRITICO Q (QUANTUM O SLICE)
• BASADO EN COLA FIFO
• ES UN ALGORITMO EQUITATIVO (JUSTO)
• FACIL IMPLEMENTACIÓN
• UTILIZADO EN S.O. TRADICIONALES
EJEMPLO DE PLANIFICACIÓN ROUND ROBIN
PROCESOS LLEGADA RAFAGA
TEA=0 + (35-10)+(58-45) = 38
A 0 30 TEB= 10
B 0 5 TEC= 15 + (45-25)= 35
Q= 10ut
TED= 25 + (55-35)= 45
C 0 20
D 0 13 TE’ = 32
68

TRA=68
20 X 10 3 10 X X X TRB= 15
TRC= 55
A B C D A C D A TRD= 58

10 15 25 35 45 55 58 68 TE’ = 49
VRR: VIRTUAL RR

• UTILIZA UNA COLA DE PROCESOS LISTOS (FIFO)


• UTILIZA UNA COLA AUXILIAR(FIFO) QUE CONTINE PROCESOS QUE HAYAN TERMINADO SU OPERACIÓN
DE E/S.
• LA COLA AUXILIAR SE PLANIFICA ANTES QUE LA DE PROCESOS LISTOS
• UTILIZA VARIAS COLAS DE OPERACIONES DE E/S, IDENTIFICADAS SEGÚN SEAN 1, 2, 3, ETC.
OPERACIONES DE SALIDA.
• SI UN PROCESO TIENE 2 OPERACIONES DE E/S, LA PRIMERA VEZ EL PROCESO ESPERA EN COLA E/S1, LA
SEGUNDA VEZ EN COLA E/S2, Y ASI SUCESIVAMENTE
• UNA VEZ QUE TERMINA UNA OPERACIÓN DE E/S, EL PROCESO SE UBICA EN LA COLA AUXILIAR
VRR
LOS PROCESOS INGRESANTES SE PLANIFICAN EN LA COLA
DE PROCESOS LISTOS

LOS PROCESOS DE LA COLA AUXILIAR TERMINARON AL


MENOS UNA OPERACIÓN DE E/S

LOS PROCESOS DE LA COLA AUXILIAR SE PLANIFICAN


ANTES QUE LOS DE LA COLA PRINCIPAL
PRIORIDAD CON COLA SIMPLE

• EXISTE UNA ÚNICA COLA


• LOS PROCESOS SE PLANIFICAN SEGÚN SU PRIORIDAD
• PUEDE SER APROPIATIVO O NO APROPIATIVO
• LOS PROCESOS CON IGUAL PRIORIDAD SE ORDENAN SEGÚN
UNA PILA FIFO
• LOS VALORES DE PRIORIDAD PUEDEN SER DIRECTOS (N A 0) O
INDIRECTOS (0 A N)
NO APROP. APROP.
TRA=10 TEA=0 + 16-3=13
TABLA DE EJERCITACION NO APROP. TRB=23-3=20 TEB=0 + 11-6=5
TEA=0 TRC=38-5=33 TEC=23-5=18
TEB=15-3=12 TRD=15-6=9 TED=0
TEC=23-5=18
PROC. LLEGADA RAFAGA PRIOR
TED=10-6=4 TR’=18 TE’= 9
A 0 10 3
B 3 8 2 TE’=8,5
C 5 15 3
D 6 5 1
APROP.
TRA=23
7 5 X X X TRB=16-3=13
TRC=38-5=33
A B D B A C TRD=5

TR’= 18,5

11 16 23 38
3 5 6
COLAS MÚLTIPLES DE PRIORIDAD SIN REALIMENTAR

➢ EXISTEN VARIAS COLAS


➢ CADA COLA TIENE SU PRIORIDAD Y LOS PROCESOS SE INGRESAN EN MODO
FIFO
➢ UNA COLA DE MENOR PRIORIDAD SOLO SE DESPEJA SI NO HAY COLAS DE
MAYOR PRIORIDAD CON PROPCESOS
➢ PUEDE EXISTIR INANICIÓN DE PROCESOS DE MENOR PRIORIDAD POR SER
APROPIATIVO
➢ MECANISMO DE QOS EN DISPOSITIVOS DE RUTEO
ORGANIZACIÓN EN COLAS MÚLTIPLES DE PRIORIDAD SIN
REALIMENTACIÓN
MÁXIMA PRIORIDAD:PPROCESOS DEL SISTEMA

MÍNIMA PRIORIDAD: BACKGROUND Y TERCEROS


COLAS MÚLTIPLES DE PRIORIDAD REALIMENTADAS

• SE IMPLEMENTAN VARIAS COLAS CON DISTINTAS PRIORIDADES


• SE UTILIZAN COLAS DE S.O. Y COLAS DE PROCEOS DE USUARIO
• CADA GRUPO DE COLAS PUEDE SER A SU VEZ PLANIFICADA CON RR PARA PROCEOS INTERACTIVOS Y
FIFO PARA PROCESOS NO INTERACTIVOS
• LOS PROCESOS QUE NO SE TERMINAN DE EJECUTAR EN UNA COLA PASAN A LA SIGUIENTE COLA DE
PRIORIDAD. (REALIMENTACIÓN)
• METODO UTILIZADO POR LA MAYORIA DE LOS S.O.
• UNIX CUENTA CON UN MECANISMO LLAMADO NICE PARA MODIFICAR LA PRIORIDAD DE LOS PROCESOS
A FIN DE BRINDARLE POSIBILIDADES A LOS PROCESOS DE MENOR PRIORIDAD
• WINDOWS UTILIZA 32 NIVELES DE PRIORIDAD, RESERVA DE 0 A 15 PARA KERNEL Y 16 A 31 USUARIO
COLAS MÚLTIPLES DE PRIORIDAD CON REALIMENTACIÓN
ADMINISTRACIÓN DE PROCESOS EN
MULTIPROCESADORES

• LA PROGRAMACIÓN DE MÚLTIPLES PROCESADORES ES


IMPORTANTE PORQUE PERMITE QUE UN SISTEMA INFORMÁTICO
REALICE MÚLTIPLES TAREAS SIMULTÁNEAMENTE, LO QUE PUEDE
MEJORAR EN GRAN MEDIDA EL RENDIMIENTO Y LA EFICIENCIA
GENERAL DEL SISTEMA.
ADMINISTRACION DE PROCESOS EN ENTORNOS
MULTIPROCESADOS

• EN UN ENTORNO MUTIPROCESADO SE TIENEN LAS SIGUIENTES


SITUACIONES:
➢ ASIGNACIÓN DE PROCESOS A PROCESADORES
➢ USO DE MULTIPROGRAMACION EN PROCESOS (MULTITHREADING)
➢ DESPACHO DEL PROCESO ACTUAL
MODELOS DE ADMINISTRACION EN
MULTIPROCESADORES
ADMINISTRACION EN SISTEMAS MULTIPROCESASOS

• MÚLTIPLES PROCESADORES O MULTIPLES NUCLEOS


• MÚLIPLES PROCESOS O THREADS SIMULTANEOS
• PLANIFICACIÓN DE CPU + PLANIFICACION DE PROCESOS (MAYOR COMPEJIDAD)
• BALANCEO DE CARGA
• USO EQUITATIVO DE CPUS
• OPORTUNIDAD PARA TODOS LOS PROCESOS
• ADMINISTRACIÓN DE RECURSOS
• SYNCRONIZACION
SISTEMAS MULTIPROCESADOR MODELOS DE HARD
MULIPROCESO INDEPENDIENTE

• CADA PROCESADOR TIENE SU PROPIO ADMINISTRADOR


• NO SE HACE USO EQUITATIVO DE LA CPU
• CADA CPU TIENE UNA COLA PRIVADA DE PROCESOS LISTOS
• LOS PROCESOS DE LAS COLAS INDIVIDUALES SE TOMAN DE
UNA COLA PRINCIPAL
• PROBLEMAS DE SINCRONIZACIÓN (ACCESO A COLA)
MULTIPROCESO MAESTRO ESCLAVO (ASIMÉTRICO)

• UN PROCESADOR ES EL ENCARGADO DE ADMINISTRAR LAS CPUs


• FALLO DEL ADMINISTRADOR Y FALLA EL MECANISMO
• IMPLEMENTACIÓN SENCILLA
• UNA ÚNICA COLA ADMINISTRADA POR EL PROCESADOR MAESTRO
• BAJO RENDIMIENTO
• NO HAY POSIBILIDAD DE BALANCEO DE CARGA
MULTIPROCESO SIMÉTRICO

• CADA CPU CORRE SU PROPIO ADMINISTRADOR


• CASO 1: PUEDE UTILIZAR COLA GLOBAL DE PROCESOS LISTOS (LINUX 2.4)
• CASO 2: PUEDE USAR UNA COLA GLOBAL ADEMAS CADA CPU TIENE SU PROPIA COLA DE
PROCESOS LISTOS
• BUEN APROVECHAMIENTO DE LAS CPUs
• AFINIDAD DE PROCESADOR DÍFICIL DE LOGRAR
• LOGRA EQUIDAD PARA LOS PROCESOS
• EL ACCESO A LA COLA PRINCIPAL DEBE CONTROLARSE PARA EVITAR CARRERAS
• LO ANTERIOR HACE QUE ESTA ESTRATEGIA NO SEA ESCALABLE
PROBLEMAS

• COHERENCIA DE CACHE
• RESERVA DE RECURSOS BLOQUEO
• DATOS COMPARTIDOS
• AFINIDAD DE PROCESADOR
SI P1 MODIFICA EL BLOQUE
COHERENCIA DE CACHE EN SU PROPIA CAHE ESTE
CAMBIO SE TIENE QUE
REFLEJAR EN EL RESTO DE
LOS BLOQUES A FIN DE
SOSTENER LA COHERENCIA
DE LOS DATOS. CASO
CONTRRIO HABRA
INCONSISTENCIA DE CACHE

PARA EVITAR ESTA


INCONSISTENCIA CUANDO
UNA CPU MODIFICA SU CACHE
TAMBIEN MODIFICA EL
BLOQUE EN MEMORIA
PRINCIPAL Y LANZA UNA
ADVERTENCIA AL RESTO DE
LOS PROCESADORES
AFINIDAD DE PROCESADORES

• LOS PROCESOS TIENEN AFINIDAD POR EL PROCESADOR


SOBRE EL CUAL ESTÁN CORRIENDO ACTUALMENTE
• PARA EVITAR LA INVALIDACIÓN O REPLOBLAMIENTO DE
CACHÉS
• LOS SISTEMAS SMP TRATAN DE EVITAR LA MIGRACIÓN DE
PROCESOS DESDE UN PROCESADOR A OTRO
• HAY DOS TIPOS DE AFINIDAD: SOFT Y HARD
TIPOS DE AFINIDAD
Afinidad suave (Soft affinity): cuando un sistema operativo tiene la política de
mantener un proceso ejecutándose en el mismo procesador pero sin garantizar
que lo hará, esta situación se denomina afinidad suave.

Afinidad fuerte(Hard Affinity): Permite que un proceso especifique un


subconjunto de procesadores en los que puede ejecutarse. Algunos sistemas Linux
implementan afinidad suave y proporcionan llamadas al sistema
como sched_setaffinity() que también admiten afinidad fuerte.
SQMS: SINGLE QUEUE MULTIPROCESSOR SCHEDULING

❖SIMPLE
❖TODOS LOS CPU SE ALIMENTAN DE UNA MISMA COLA FIFO
❖NO ESCALABLE
❖NO EQUITATIVO
SQMS – PROBLEMAS DE AFINIDAD DE CACHE
AFINIDAD DE CACHE - SITUACIÓN

1- CPU-I LEE D DE MEMORIA PRINCIPAL


2- CPU-I GUARDA D EN SU CACHE L1
3- CPU-I MODIFICA D → D’
4- CPU-D LEE D Y NO D’
5- CPU-D LEE VERSION INCORRECTA
SQMS

• LA AFINIDAD DE CACHE SE PUEDE RESOLVER PERMITIENDO QUE LOS THREADS DE UN PROCESO SE


REALICEN EN EL MISMO NUCLEO O PROCESADOR.
MQMS: MULTIPLE QUEUE MULTI PROESSOR SHEDULLING

CADA COLA TIENE SU PROPIO ALGORITMO DE ADMINISTRACION DE PROCESOS, POR EJ RR


CADA PROCESADOR ATIENDE UNA COLA
NO HAY BALANCEO DE CARGA
LOS PROCESOS SE MANTIENEN EN EL PROCESADOR DONDE ARRANCAN
EL SISTEMA OPERATIVO DECIDE EN QUE COLA UBICA A CADA PROCESO
MQMS ES ESCALABLE CON EL NUMERO DE CPU
ADMINISTRACIÓN HIBRIDA

• USA UNA COLA GLOBAL PARA TODOS LOS


PROCESADORES
• USA UNA COLA LOCAL POR PROCESADOR
• FACILITA EL BALANCEO DE CARGA ENTRE
LAS COLAS
• AFINIDAD POR CPU
• MECANISMO UTILIZADO EN LINUX 2.6
BALANCEO DE CARGA

EL BALANCEOO EQUIBRIO DE CARGA REQUIERE LA MOVILIDAD PERMANENTE DE LOS PROCESOS ENTRE LOS
DISTINTOS PROCESADORES, ESTE MOVIMIENTO SE DENOMINA MIGRACIÓN:
• MIGRACION PUSH (EMPUJAR): (de inserción)
• SE MONITOREA PERMANENTEMENTE EL ESTADO DE CARGA DE CADA PROCESADOR
• SI SE DETECTA DESBALANCE DE CARGA SE MIGRAN PROCESOS DESDE CPU SOBRECARGADOS A CPUS MAS ALIVIADOS
• MIGRACION POP (SACAR): (de extracción)
• UN CPU OCIOSO EXTRAE UN PROCESO DE UNA COLA DE UN PROCESADOR SOBRECARGADO
• PROCESO DE MIGRACIÓN
• DIFICIL DE IMPLEMENTAR
• REQUIERE REPOBLACION DE LA MEMORIA → SOBRECARGA
• SE IMPLEMENTA SOLO SI ES ESTRICTAMENTE REQUERIDO
MIGRACIÓN
ADMINISTRACIÓN GANG O PARTICIONADA

• GANG: RACIMO /PANDILLA


• IDEAL PARA PROCESOS DEPENDIENTES O COOPERATIVOS
• TODOS LOS THREADS DE UN PROCECO (GANG) CORREN JUNTOS EN DISTINTOS CPU
• TODOS LOS MIEMBROS DEL GANG COMIENZAN Y TERMINAN LOS SLICES JUNTOS
• TODAS LAS CPUs SE ADMINISTRAN SINCRÓNICAMENTE
• EL TIEMPO SE DIVIDE EN QUANTUM
• RESUELVE PROBLEMAS DE COMUNICACIÓN ENTRE THREADS
• SOPORTA LAS ESTRATEGIAS DE ADMINISTRACION DE PROCESOS MONOPROCESADO
REGIONES CRÍTICAS - SOLUCIONES

MODULO III

AÑO 2023Prof. Jorge L.Modica


REGIONES CRÍTICAS – EXCLUSIÓN MUTUA
• REGION DE CODIGO QUE ESCOPARTIDA POR 2º MAS PROCESOS
• LOS RECURSOS SON LIMITADOS O ACCESO CONCURRENTE
• UNA REGION CRITICA PUEDE SER UN RECURSO HARDWARE O DE SOFTWARE
• VARIABLE GLOBAL
• ACCESSO A DISCO
• ACCESO A BD
• SI NO SE CONTROLA PRODUCE CARRERAS
• LA SOLUCIÓN ES LA EXCLUSIÓN MUTUA
PROPIEDADES DE UNA RC

❖ PUEDEN EXISTIR VARIAS RC


❖ SOLO UN PROCESO PUEDE ESTAR DENTRO DE SU RC
❖ UN PROCESO DEBE LIBERAR LA RC EN CUANTO LA DEJE DE UTILIZAR
❖ UN PROCESO FUERA DE SU RC NO PUEDE DETENER A OTRO PROCESO
❖ NO SE HACEN CONSIDERACIONES DE DURACION DE LOS PROCESOS
❖ NO SE HACEN CONSIDERACIONES EN RELACION A LA CANTIDAD DE CPU
❖ TODOS LOS PROCESOS DEBEN TENER LA OPERTUNIDAD DE EJECUTAR SU RC
❖ UN PROCESO NO PUEDE QUEDAR IDEFINIDAMENTE DENTRO DE LA RC
❖ ESPERA LIMITADA UN PROCESO NO PUEDE ESPERAR INDEFINIDAMENTE PARA ACCEDER A SU RC
EXCLUSIÓN MUTUA

• SE IMPLEMENTA A TRAVES DE DISTINTOS


ALGORITMOS
• PUEDE SER CON TIEMPO DE ESPERA OCUPADA
• PUEDE SER SIN TIEMPO DE ESPERA OCUPADA
EXCLUSION MUTUA CON ESPERA OCUPADA

• VARIABLE LOCK SIN INHIBICION DE INTERRUPCIONES

• VARIABLE LOCK CON INHIBICIÓN DE INERRUPCIONES

• ALGORITMO DE DECKKER DE 2 TURNOS

• ALGORITMO DE PETERSON PARA MAS TURNOS

• INSTRUCCIÓN TSL
ALGORITMOS EN C – SINTAXIS BASICA

• COMENTARIOS EN C
• /* COMENTARIO DE VARIAS LINEAS……………………………..*/
• //COENTARIO DE UNA SOLA LINEA
• FUNCIONES { }
• VECTORES [N]
• ARREGLOS [N][M]
• SENTENCIAS SIMPLES ;
• SENTENCIAS COMPUESTAS { ;}
SINTAXIS BASICA C

• DECLARADORES: char, int, long, double, struct, class


• ENCABEZADOS: #include <>; #CONSTANTES SIMBÓLICAS
• DECLARADORES DE TIPO: typedef
• SENTENCIAS DE DECISIÓN: if-else, if, while, do while, case
• SENTENCIAS DE REPETICION: for(in;cond;act)
SENTENCIA while (mientras)

while (cond)
{
while (cond)
Sentencia 1;
Sentencia 1;
Sentencia 2;
…….. …….. …
}

cond≠0 → TRUE
cond=0 → FALSE
SENTENCIA do while (Hacer mientras)

do {
do Sentencia 1;
Sentencia 1; Sentencia 2;
while (cond); …….. …….. …
} while (cond);

cond≠0 → TRUE
cond=0 → FALSE
SENTENCIA if – if else (si – si/sino)
If (cond)
Sentencia 1;
If (cond)
If(cond) If (cond)
{ Sentencia 1;
if(cond)
sent1; else
sent2; if(cond)
Sentencia 2;
……… sent;
}

cond≠0 → TRUE
cond=0 → FALSE
OPERDORES C

• OPERADORES COMPUESTOS ASIGNACION: =, =+, =-, =*, =/, =%, =^


• + , - , * , /, %,
• PREINCREMENTO/POSTINCREMENTO: ++X, X++ y=++x; x=10 1)x+1=11; y=11
• Y=x++; y=10; x=11
• PREDECREMENTO/POSTDECREMENTO: --X, X--;
• OPERACIONES BITWISE: ^ XOR, | OR, & AND, ~; >>; <<
• OPERACIONES LOGICAS: ! NO; || OR; && AND; if(x==1||y>2)
• OPERADORES RELACIONALES: ==; <=; >=; <; >; !=
EXCLUSIÓN MUTUA MEDIANTE USO DE LOCK
EXCLUSIÓN MUTUA CON STI/CLI
ALGORITMO DE DECKER – ALTERNANCIA ESTRICTA
TURNOS (SOLO 2 PROCESOS)
ALGORITMO DE DEKKER VERSION 2

• CADA PROCESO DEPENDE DEL OTRO PARA FINALIZAR SU EJECUCIÓN


• SI UN PROCESO TIENE EL TURNO Y NO INGRESA A LA RC, OTRO PROCESO NO PODRA INGRESAR Y SE
VIOLA UNA DE LAS REGLAS DE RC
• SE CUMPLE EFECTAMENTE LA CONDICION DE EXCLUSIÓN MUTUA
• SI UN PROCESO DEMORA MUCHO TIEMPO EN SU RC TAMBIEN ES UN PROBLEMA DE ESPERA PARA
OTROS PROCESOS
• PARA RESOLVER ESTA SITUACION SE AGREGA LA NECESIDAD DE UN PROCESO DE ACCEDER A LA RC. SI
UN PROCESO TIENE EL TURNO PERO NO ESTÁ DENTRO DE LA RC, ENTONCES OTRO PROCESO PUEDE
TOMAR EL TURNO SI TIENE ACTIVA LA NECESIDAD, ESTA ES LA SEGUNDA VERSION DEL ALGORITMO.
ALGORITMO DE DEKER SEGUNDA VARIANTE
(PETERSON)
ALGORITMO DE PETERSON (PARA 2 PROCESOS)
INSTRUCCIÓN TSL (TEST AND SET LOCK O TAS)
• Introduce atomicidad
• Tiempo de espera ocupada
• Utilizada en entornos multiprocesados o multinucleos
EXCLUSIÓN MUTUA SIN ESPERA OCUPADA

• Algoritmo del productor consumidor


• Procesos sleep y wake up
• Semáforos (UP/DOWN-SIGNAL/WAIT-P/V)
• Buzones
• Monitores
• Aplicación de semáforos al algoritmo del PRODUCTOR y CONS.
ALGORITMO DEL PRODUCTOR CONSUMIDOR
• IPC SIN TIEMPO DE ESPERA OCUPADA
• LOS PROCESOS NO ESPERAN EN LOOP, SINO QUE CAMBIAN SU ESTADO A BLOQUEO
• TAMBIEN LLAMADO PROBLEMA DEL BUFFER FINITO (O LIMITADO)
• EL BUFFER REPRESENTA UNA RC

PRODUCIR INTRODUCIR EXTRAER CONSUMIR


C
P

PIEZA
ITEM
BUFFER PIEZA
ALGORITMO DEL PRODUCTOR - CONSUMIDOR
ALGORITMO DEL PRODUCTOR - CONSUMIDOR
SITUACIONES DE CONTENCIÓN
• VIOLACION DE LA EXCLUSION MUTUA
• SITUACION DE INTERBLOQUEO
• BLOQUEO INDEFINIDO INICIADO POR EL PRODUCTOR
• SI EL PROCESO PRDUCTOR SE INTERRUMPE DESPUES DE LA EVALUACION if(cont==N)
• QUEDA PENDIENTE LA OPERACIÓN sleep()
• EL CONSUMIDOR REALIZA LA OPERACIÓN count-1 y luego if(count ==N-1)
• EL CONSUMIDOR INTERPRETA QUE EL PRODUCTOR ESTA BLOQUEADO Y REALIZA wakeup( )
• LA SEÑAL wakeup( ) NO PUEDE SER INTERPRETADA POR EL PRODUCTOR SI LÓGICAMENTE NO SE HA BLOQUEADO
• CUANDO VUELVE EL PRODUCTOR REALIZA LA OPERACIÓN PENDIENTE sleep(), BLOQUEANDOSE
• EL CONSUMIDOR TERMINARA BLOQUENDOSE CUANDO TERMINE DE CONSUMIR
SITUACIONES DE CONTENCIÓN (CONT.)

• BLOQUEO INDEFINIDO INICIADO POR EL CONSUMIDOR


• SI EL PROCESO CON SUMIDOR SE INTERRUMPE DESPUES DE LA EVALUACION if(count==0)

• QUEDA PENDIENTE LA OPERACIÓN sleep( )

• EL PRODUCTOR REALIZA LA OPERACIÓN count + 1 y luego if(count ==1)

• EL PRODUCTOR INTERPRETA QUE EL CONSUMIDOR ESTA BLOQUEADO Y REALIZA wakeup( )

• LA SEÑAL wakeup( ) NO PUEDE SER INTERPRETADA POR EL CONSUMIDOR SI LÓGICAMENTE NO SE HA


BLOQUEADO

• CUANDO VUELVE EL CONSUMIDOR REALIZA LA OPERACIÓN PENDIENTE sleep( ), BLOQUEANDOSE


• EL PRODUCTOR TERMINARA BLOQUENDOSE CUANDO LLENE EL BUFFER
SEMAFORO VARIABLE ENTERA: UP() / DOWN ()

• SEMAFORO ES UNA VARIABLE ENTERA


• NO ADMITE VALORES NEGATIVOS
• S=0 PUEDE O NO TENER PROCESOS BLOQUEADOS
• S≠0 NO EXISTEN PROCESOS BLOQUEADOS Y QUEDAN SEÑALES PENDIENTES DE DESBLOQUEO
• UNA OPERACIÓN UP SOBRE S=0 SIN PROCESOS BLOQUEADOS INCRENETA S
• UNA OPERCIÓN UP SOBRE S=0 CON PROCESOS BLOQUEADOS, DESBLOQUEA UN PROCESO Y S=0
• UNA OPERACIÓN DOWN SOBRE S=1, PONE S=0 Y EL PROCESO NO SE BLOQUEA
• UNA OPERACIÓN DOWN SOBRE S≠0 DECREMENTA S
• UNA OPERACIÓN DOWN SOBRE S=0 BLOQUEA AL PROCESO
PRODUCTOR CONSUMIDOR CON SEMAFOROS
PRODUCTOR CONSUMIDOR CON SEMAFOROS
Proceso consumidor
LECTORES ESCRITORES – ACCESO A BASE DE DATOS

Mutex: control de
acceso RC
ACCESO A BASE DE DATOS LECTORES ESCRITORES
MONITORES

• ESTRUCTURA DE PROGRAMACION OOP


• CODIGO + VARIABLES
• EXCLUSION MUTUA NATURAL
• 1 UNICO PROCESO EN EL MONITOR
BUZONES – (COMUNICACIÓN)

SINCRONIZACIÓN + PASO DE
INFORMACIÓN
FIN DE LA PRESENTACIÓN
DUDAS???

También podría gustarte