re distinto

Trabajo práctico Cuatrimestral

NADA

No asumir

como real

Joaquin

“Florius”

Azcarate

faq.utnso.com/ redistinto-ppt

¿y por qué che?

almacenamiento

procesamiento

Redis

Neo4J

Aerospike

HBase

Agenda

Instancia

Lenguaje

Coordinador

Planificador

ESI

Instancia

Storage

Entradas

Tabla de Entradas

Dump

Storage

Entradas

Tabla de Entradas

Dump

~50MB (100 e * 525kb)

El storage es solamente un malloc grande, continuó con información.

Storage

Entradas

Tabla de Entradas

Dump

Cada entrada es una sección de información lógica

Storage

Entradas

Tabla de Entradas

Dump

valores

Storage

Entradas

Tabla de Entradas

Dump

valores

Un valor como minimo vá a ocupar 1 entrada. Cualquier otra parte que quede “libre”, no puede ser utilizada

Storage

Entradas

Tabla de Entradas

Dump

valores

Podría ocupar el total de más de una entrada

Storage

Entradas

Tabla de Entradas

Dump

valores

Podría ocupar menos de todas dos entradas completas; pero siempre vá a usar la entrada completa

Storage

Entradas

Tabla de Entradas

Dump

valores

La división entera empieza a ser su amiga.

Storage

Entradas

Tabla de Entradas

Dump

clave

entrada

tamaño

k2003

8

k2004

19

matrix

10011010

La tabla es la estructura que mapea nombres de claves, a valores reales

Storage

Entradas

Tabla de Entradas

Dump

clave

entrada

tamaño

k2003

8

k2004

19

matrix

10011010

k2004?

Inst

?

Si llegase un pedido de acceder a la clave “k2004” ¿qué debería pasar?

Storage

Entradas

Tabla de Entradas

Dump

clave

entrada

tamaño

k2003

8

k2004

19

matrix

10011010

k2004?

Inst

?

Debería buscar por la tabla según las “claves”

Storage

Entradas

Tabla de Entradas

Dump

clave

entrada

tamaño

k2003

8

k2004

19

matrix

10011010

k2004?

Inst

?

Si la encuenta, ver donde está almacenada en el storage

Storage

Entradas

Tabla de Entradas

Dump

clave

entrada

tamaño

k2003

8

k2004

19

matrix

10011010

k2004?

Inst

?

Leer 19 bytes desde ese lugar

Storage

Entradas

Tabla de Entradas

Dump

clave

entrada

tamaño

k2003

8

k2004

19

matrix

10011010

Inst

!

Debería devolver eso mismo

Storage

Entradas

Tabla de Entradas

Dump

clave

entrada

tamaño

k2003

8

k2004

19

matrix

10011010

serendipity?

Inst

?

Y si no tiene esa clave?

Storage

Entradas

Tabla de Entradas

Dump

ESI

El ESI debería abortar

Storage

Entradas

Tabla de Entradas

Dump

clave

entrada

tamaño

k2003

8

k2004

19

matrix

10011010

El ESI debería abortar

¿Alguna pregunta sobre

Algoritmos de Reemplazo

Circular / Least

Recently Used

Compactación

¿Alguna pregunta sobre

Circular

Inst

Circular

Inst

Circular

Inst

Se fué llenando el storage

Circular

Inst

Despues se liberaron un par. El puntero no se mueve

Circular

Inst

Si llegase al final

Circular

Inst

Si se completan; cicla al principio; sin importar que haya espacios libres

Circular

Inst

Igual remplaza donde está el puntero; sin importar que haya agujeros más adelante/atras

Circular

Inst

Igual remplaza donde está el puntero; sin importar que haya agujeros más adelante/atras

Least

Recently Used

En LRU, en vez de importar donde está cada clave

Least

Recently Used

Uso

Se codifica el úso.

Least

Recently Used

Uso

Se codifica el úso.

Least

Recently Used

Uso

Se codifica el úso.

Least

Recently Used

Uso

Si se empata; es el primero libre

Compactación

Inst

Si quissese poner estos 3 valores, si bien hay espacio; no es continuo

Compactación

Inst

Así que pongo todos los libres al principio; y ahora si puedo

Qué pasa si así y todo no entran

Compactación

Inst

Así que pongo todos los libres al principio; y ahora sí puedo

Compactación

Inst

ESI

Se muere el ESI? No!

Remplazo!!

Lenguaje

ESI

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas bibendum cursus tempor. Vivamus vel eros nisi. In at neque non justo pulvinar lacinia at ac arcu. Sed tristique lorem urna, non mattis dui suscipit ac. Pellentesque suscipit nibh eros, et porttitor libero ultricies placerat. Aliquam sed sagittis nulla, at volutpat purus. Donec eget facilisis enim. Praesent quis vulputate diam, sed tincidunt dui. Etiam tincidunt nulla a mi venenatis posuere eu sed leo. Suspendisse tincidunt porttitor convallis. Phasellus ut gravida arcu. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla elementum elit fringilla risus pulvinar, sit amet consequat velit euismod. Vivamus in lacinia quam. Fusce porttitor facilisis metus ut placerat. Fusce vel bibendum augue.

/home/utnso/archivo_a_ejecutar.si

parser

El ESI (con el parser que estamos preparando); va a poder interpretar un archivo de texto, como operaciones

ESI

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas bibendum cursus tempor. Vivamus vel eros nisi. In at neque non justo pulvinar lacinia at ac arcu. Sed tristique lorem urna, non mattis dui suscipit ac. Pellentesque suscipit nibh eros, et porttitor libero ultricies placerat. Aliquam sed sagittis nulla, at volutpat purus. Donec eget facilisis enim. Praesent quis vulputate diam, sed tincidunt dui. Etiam tincidunt nulla a mi venenatis posuere eu sed leo. Suspendisse tincidunt porttitor convallis. Phasellus ut gravida arcu. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla elementum elit fringilla risus pulvinar, sit amet consequat velit euismod. Vivamus in lacinia quam. Fusce porttitor facilisis metus ut placerat. Fusce vel bibendum augue.

/home/utnso/archivo_a_ejecutar.si

parser

leer

Para eso leerá el archivo

ESI

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas bibendum cursus tempor. Vivamus vel eros nisi. In at neque non justo pulvinar lacinia at ac arcu. Sed tristique lorem urna, non mattis dui suscipit ac. Pellentesque suscipit nibh eros, et porttitor libero ultricies placerat. Aliquam sed sagittis nulla, at volutpat purus. Donec eget facilisis enim. Praesent quis vulputate diam, sed tincidunt dui. Etiam tincidunt nulla a mi venenatis posuere eu sed leo. Suspendisse tincidunt porttitor convallis. Phasellus ut gravida arcu. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla elementum elit fringilla risus pulvinar, sit amet consequat velit euismod. Vivamus in lacinia quam. Fusce porttitor facilisis metus ut placerat. Fusce vel bibendum augue.

/home/utnso/archivo_a_ejecutar.si

parser

una linea

Le pasará una linea al parser

ESI

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas bibendum cursus tempor. Vivamus vel eros nisi. In at neque non justo pulvinar lacinia at ac arcu. Sed tristique lorem urna, non mattis dui suscipit ac. Pellentesque suscipit nibh eros, et porttitor libero ultricies placerat. Aliquam sed sagittis nulla, at volutpat purus. Donec eget facilisis enim. Praesent quis vulputate diam, sed tincidunt dui. Etiam tincidunt nulla a mi venenatis posuere eu sed leo. Suspendisse tincidunt porttitor convallis. Phasellus ut gravida arcu. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla elementum elit fringilla risus pulvinar, sit amet consequat velit euismod. Vivamus in lacinia quam. Fusce porttitor facilisis metus ut placerat. Fusce vel bibendum augue.

/home/utnso/archivo_a_ejecutar.si

parser

set ...

El parser le dá una estructura que representa una operación (con sus posibles parametros

SET

STORE

GET

Solo tiene 3 primitivas

SET deportes futbol

SET

STORE

GET

SET deportes futbol

SET

STORE

GET

Clave

SET deportes futbol

SET

STORE

GET

Valor

STORE deportes

SET

STORE

GET

Store libera y dumpea

GET deportes

SET

STORE

GET

Get solo obtiene un recurso. No afecta a la instancia

dualidad de clave / semáforo

Palabras sabias

Coordinador

ESI

coordinador

Inst

Inst

Inst

Algoritmos de Distribución

Equitative Load

Least Space Used

Key Explicit

coordinador

Key Explicit

coordinador

Inst

Inst

Inst

Inst

a-g

h-m

n-t

u-z

f

Key Explicit

coordinador

Inst

Inst

Inst

Inst

a-g

h-m

n-t

u-z

f

Key Explicit

coordinador

Inst

Inst

Inst

Inst

a-g

h-m

n-t

u-z

f

a

Key Explicit

coordinador

Inst

Inst

Inst

Inst

a-g

h-m

n-t

u-z

f

a

Key Explicit

coordinador

Inst

Inst

Inst

Inst

a-g

h-m

n-t

u-z

f

a

Si sa cae una instancia

Key Explicit

coordinador

Inst

Inst

Inst

a-i

j-r

s-z

f

a

Se re-calculan los indices pero no se mueve ninguna clave de lugar

Key Explicit

coordinador

Inst

Inst

Inst

a-i

j-r

s-z

f

a

q

S

Key Explicit

coordinador

Inst

Inst

Inst

a-i

j-r

s-z

f

a

q

S

Key Explicit

Inst

Inst

Inst

Inst

a-g

h-m

n-t

u-z

coordinador

f

a

q

q

S

Key Explicit

Inst

Inst

Inst

Inst

a-g

h-m

n-t

u-z

coordinador

f

a

q

q

S

Planificador

rafaga

ESI1

GET a

GET b

STORE a

ESI 1

est 5

rec ∅

a: libre

b: libre

Imaginemos este estado: ESI 1 que pretendería hacer GET a, GET b y STORE a. Tiene un valor de estimación de 5, y ningún recurso asignado. a y b están libres

rafaga

ESI1

GET a

GET b

STORE a

ESI 1

est 5

rec ∅

a: libre

b: libre

Intenta tomar “a”

rafaga

ESI1

GET a

GET b

STORE a

ESI 1

est 5

rec a

a: tomado

b: libre

Puede, entonces se lo asigna

rafaga

ESI1

GET a

GET b

STORE a

ESI 1

est 5

rec a,b

a: tomado

b: tomado

Intenta tomar b, puede y se lo asigna

rafaga

ESI1

GET a

GET b

STORE a

ESI 1

est 5

rec b

a: libre

b: tomado

Cuando hace store; ahora a está libre, y no lo tiene más el ESI1

Ahora, imaginemos otro caso

rafaga

ESI1

GET a

GET b

STORE a

ESI 1

est 5

rec ∅

a: libre

b: tomado

Donde alguien tiene b tomado

rafaga

ESI1

GET a

GET b

STORE a

ESI 1

est 5

rec a

a: tomado

b: tomado

Empieza igual

rafaga

ESI1

GET a

GET b

STORE a

ESI 1

est 5

rec a

a: tomado

b: tomado

Intenta tomar b

rafaga

ESI1

GET a

GET b

STORE a

ESI 1

est 4

rec a

a: tomado

b: tomado

Ya no sigue ejecutando; y su rafaga fué solo de una instrucción

Shortest Job First

ESI 2

est 9

ESI 3

est 4

ejecutando

ESI 1

est 2

Dado 3 ESIs, si ninguno está ejecutando; cual elijiría

Shortest Job First

ESI 1

est 2

ESI 2

est 9

ESI 3

est 4

ejecutando

Dado 3 ESIs, si ninguno está ejecutando; cual elijiría

Shortest Job First

ESI 1

est 1

ESI 2

est 9

ESI 3

est 4

ejecutando

hace un poco de trabajo, se bloquea despues de 2 instrucciones

Shortest Job First

ESI 1

est 1

ESI 2

est 9

ESI 3

est 4

ejecutando

hace un poco de trabajo, se bloquea después de 2 instrucciones

Shortest Job First

ESI 3

est 4

ESI 1

est 1

ESI 2

est 9

ejecutando

hace un poco de trabajo, se bloquea después de 2 instrucciones

Shortest Job First

ESI 3

est 4

ESI 1

est 2

ESI 2

est 9

ejecutando

Solo importa cuando ready

Notita: el “estimado”, no se recalcula en cada instrucción; si no solo cuando alguien entra a ready

Shortest Job First

ESI 3

est 4

ESI 1

est 1

ESI 2

est 9

ejecutando

3

Si el ESI 1 saliese de block a ready; se compara con la estimación real del que esté ejecutando. Si hubiese solo llegado a ejecutar una instrucción; al haber desalojo -> re-entra el ESI1

Shortest Job First

con desalojo

ESI 3

est 4

ESI 1

est 1

ESI 2

est 9

ejecutando

3

Al haber desalojo -> re-entra el ESI1

Shortest Job First

con desalojo

ESI 3

est 3

ESI 2

est 9

ejecutando

ESI 1

est 1

Al haber desalojo -> re-entra el ESI1

Ahora, imaginemos otro caso

Shortest Job First

sin desalojo

ESI 3

est 4

ESI 1

est 1

ESI 2

est 9

ejecutando

3

Al no haber desalojo si el ESI 3 no se bloqueó; el ESI1 no lo saca

Shortest Job First

sin desalojo

ESI 3

est 4

ESI 1

est 1

ESI 2

est 9

ejecutando

Al haber desalojo -> re-entra el ESI1

ESI

Creería que no hay nada mucho más interesante del ESI

¡Éxitos!

Sistemas Operativos - Re Distinto - 1C2018 - Google Slides