Está en la página 1de 52

Bienvenidos a

Estructuras de Datos II
El que logra
empezar un
camino lo tiene
ya medio hecho
Seneca
Siga estas instrucciones
• Antes de comenzar, asegúrese de:
– Ubicarse en un lugar aislado del ruido
– Prepare su micrófono. Apague si micrófono.

– Actualice su perfil, coloque una foto suya actual.


Presentación, Repaso y
Conceptos Básicos
M. Oscar F. D’Cuire Galeano
Objetivos
• Al final de esta semana el alumno será capaz
de:
– Listar las actividades que se desarrollarán a lo
largo del periodo académico.
– Identificar los niveles de jerarquía de memoria a
través de la revisión de las presentaciones de
clase.
– Explicar y distinguir los diferentes tipos de
almacenamiento.
Contenido
• Presentación
• Discusión del Silabo y Políticas de Clase
• Repaso de conceptos
• Clasificación de almacenamiento
– Volatilidad
– Jerarquía de memoria
• Dispositivos de almacenamiento secundario
Presentación
• Oscar Fernando D’Cuire Galeano
– Ingeniero en Sistemas Computacionales
– Master en Administración de Proyectos
– 17+ años experiencia en programación y manejo
de proyectos de TI
– 7+ años experiencia docente
– odcuire@unitec.edu
– WhatsApp : 33458102
Asista a las sesiones de clase
• Estructura de Datos I (Sección 851-1270)
• Martes y Jueves 6:00 p.m. - 7:30 p.m.
• Asistencia:
– 10 minutos después de comenzar la clase
– Final de la clase
Políticas del Curso
1. Planifique la entrega de actividades y tareas con suficiente
anticipación.
2. Participe en todas las actividades.
3. La evaluación de las actividades se basa en rúbricas.
4. Nunca asuma.
5. Pregunte, analice, critique.
6. Aprenda a trabajar de manera independiente. Esta clase no incluye
laboratorios.

7. SIGA INSTRUCCIONES
Siga estas recomendaciones
•No tenga pena
Participe en realizar
y preguntas
Pregunte dentro y fuera
de la clase.
•Cerciórese de
comprender
No
Asuma bien los
objetivos y las
instrucciones.

Siga
•No hay mas que
instrucci
ones decir aquí.

•Estudie,
Prepárese dedíquele
para sus
exámenes tiempo a esta
asignatura.

Tareas, •Realice las


foros y actividades
Proyecto asignadas de
s este periodo.

Trabaje
•Aprenda a
indepen
diente trabajar solo.
Contenido de la Clase
Compresión y Cifrado

Ordenamiento

Hashing y manejo de colisiones.

Árboles binarios, AVL, B+.

Longitud fija y variable.

Archivos físicos y lógicos. Índices.

Sistemas de Archivos

Jerarquía de Memoria, HD
Programación de actividades
– Semana Académica: Lunes a Domingo
– Tareas: Sábado / Domingo (Generalmente) – 11:00 p.m.
– Exámenes:
• I parcial: Jueves 19 de mayo 2022
• II Parcial: Jueves 23 de junio 2022
• Reposición: Viernes 24 de junio 2022
– (Contenido: I y II Parcial)
• Entrega de notas registro: Lunes 27 de junio 2022
Políticas sobre actividades
• Durante la clase desarrollaremos dos tipos de actividades:
– Formativas
• Se evaluará al final el % de participación con respecto al total de las
actividades, si no presenta el proyecto de clase pierde cualquier puntaje
posible. Debe obtener 60% en proyecto de cada parcial.
• Entrega opcional
• Tienen fecha mas amplia para entrega
– Sumativas
• Tienen asignados un puntaje específico
• De carácter obligatorio
• No es lo mismo del periodo pasado
• Incluyen: 9 tareas (Programas, ejercicios, otros),
3 foros, 1 proyecto, 2 pruebas
Políticas sobre actividades
• Las tareas en las que tiene que desarrollar un programa utilice
cualquier lenguaje. El código será asignado en PSEINT
• Penalización por entrega tardía
– 1 / 2 días
• Tareas individuales, 2 tareas “Muy parecidas” tendrán 0
• Busque, lea, analice, piense…. No copie
• Investigue por su cuenta
• Ante cualquier situación comuníquese con el docente.
• En caso de COVID:
• Notifíquelo
• Recuerde contar con respaldo médico
Cuadro de Actividades
Foros
• Foro I
– Depende de su numero de cuenta
– Sábado 14 de mayo 2022 23h00
– Recuerde retroalimentar a compañeros
• Foro Glosario
– Se asignará una lista de términos
– Deberán publicar
• Definición
• Breve historia del concepto
• Publicar noticia relacionada
– En las sesiones:
• Responder a consultas sobre el término
– A partir del próxima semana
Proyecto de Clase

• Disponible en Semana 1 Recursos


• Participar en Foro para asignación de un caso / escenario
• A partir del caso deberá desarrollar
– Interacción con archivo de datos ( Leer, escribir, eliminar, compactar)
– Interacción con archivo índice (Escribir, eliminar)
– Interacción con lista de disponibles (Escribir)
• Lenguaje Libre
• Documentación.
– Descripción del código
– Caso a resolver
– Descripción de archivo
– Lenguaje de programación
– Video youtube
Proyecto de Clase

Datos

Lista de
Disponibles
Índice
Este es el momento de evacuar sus
dudas
• Sobre:
– La clase
– Su organización
– La manera en que trabajaremos
– Comunicación
Clasificación de Almacenamiento
• Jerarquía
Clasificación de Almacenamiento
• Identificamos tres tipos de almacenamiento:
– Primario
• Volátil, rápido. Ejm. Registros, caché, RAM
– Secundario
• No volátil, velocidad media. Ejm. Flash, discos duros,
SSD.
– Terciario
• No volátil, mas lento. Ejm. Cinta, óptico (DVD/BlueRay)
Almacenamiento Secundario
• Son todos aquellos elementos / mecanismos
cuya función es almacenar datos.

• Es necesario buscar el medio adecuado para el


tipo de información que se va a almacenar.
Factores a Considerar
• ¿Qué factores consideraría al momento de
seleccionar el siguiente dispositivo de
almacenamiento?
A: Disco Duro – C: Medio para
Almacenar mas B: Almacenar fotos y almacenar respaldo
datos en un películas personales. de datos históricos en
la empresa
servidor.

E: Utilización de la nube
D: Almacenamiento
para almacenar datos F: Teléfono celular:
portátil – Compra de
de una aplicación no agregar memoria
una nueva pc/laptop
crítica en la empresa

G: Mejorar el
desempeño de un
servidor a nivel de
transaccionalidad.
Factores a Considerar
• ¿Qué factores consideraría al momento de
seleccionar el siguiente dispositivo de
almacenamiento?
A: Disco Duro – Almacenar B: Almacenar fotos y películas C: Medio para almacenar respaldo
mas datos en un servidor. de datos históricos en la empresa
personales.

D: Almacenamiento portátil E: Utilización de la nube para F: Teléfono celular:


– Compra de una nueva almacenar datos de una aplicación
no crítica en la empresa agregar memoria
pc/laptop

G: Mejorar el desempeño de
un servidor a nivel de
transaccionalidad.
Factores a Considerar
• Los factores a considerar al momento de elegir
un dispositivo / medio de almacenamiento:
Rendimiento
Capacidad ¿Cómo se comportará en el
desempeño real?
¿Se adecúa al volumen de
Tiene que relacionarse con el uso que
datos que se manejará? se los equipos necesarios para
interactuar con el dispositivo

Disponibilidad (fiabilidad) Recuperabilidad


¿Cuándo estará disponible la • ¿Nos interesa el respaldo?
información ? • ¿Cómo recuperamos la
información respaldada?
¿Cómo responderá ante
cualquier fallo?
Ejemplos
¿Cuáles factores son los de mayor importancia al momento de escoger un
dispositivo de almacenamiento para cada uno de estos casos?
Capacidad Rendimiento Disponibilidad Recuperabilidad Dispositivo
A/S
Tareas del
periodo
Archivos de
Clientes activos
Transacciones
históricas de la
empresa de
años anteriores
Fotos de las
vacaciones
Base de Datos
de la empresa
Ejemplos
¿Cuáles factores son los de mayor importancia al momento de escoger un
dispositivo de almacenamiento para cada uno de estos casos?
Capacidad Rendimiento Disponibilidad Recuperabilidad Dispositivo
A/S
Tareas del X HDD
periodo
Archivos de X X HDD
Clientes activos
Transacciones Cinta, DVD
históricas de la
empresa de
X X
años anteriores
Fotos de las X HDD
vacaciones
Base de Datos X X X X HDD, Nube
de la empresa
Los discos SSD se van posicionando
dentro del mercado
Envíos de HDD/SSD a nivel mundial (Marzo 2020)
Discos Duros
• Los discos duros son dispositivos
electromecánicos que se utilizan para el
almacenamiento no volátil de información.
• Almacenan datos basado en la lectura /
escritura de los discos que se encuentran
recubiertos de un material magnético, el cual
es leído por las cabezas lectoras / escritoras.
• Hoy por hoy, sigue siendo el medio de
almacenamiento mas utilizado.
Partes de un Disco Duro
Partes de un Disco Duro
• Un disco consta de varios platos.
• Un plato esta formado por dos caras o superficies.
• Una cara tiene círculos concéntricos llamados pistas.
• Una pista se divide en fragmentos iguales llamados
sectores.
– Dos o mas sectores continuos se conocen como bloques
• Las pistas a la misma distancia del centro
forman un cilindro.
Partes de un Disco Duro
Partes de un Disco Duro
• Identificar
– Platos
– Pista
– Cilindro
– Sectores
• En el ejemplo. Si en una superficie del disco hay 100 pistas.
– ¿Cuántas pistas tiene el disco?
– ¿Cuántos cilindros tiene el disco?
– ¿Cuántos sectores habría en una superficie / disco si se pueden almacenar 25 sectores
por pista?
Ejercicios
# 1: ¿Cuál sería la capacidad de almacenamiento
de un disco duro con las siguientes
características:
-16 Cabezas Lectoras/ Escritoras
-50 Sectores/Pista
-2500 Cilindros
-250 Bytes/Sector?
Ejercicios
# 1: ¿Cuál sería la capacidad de almacenamiento de un disco duro con las siguientes características:
-16 Cabezas Lectoras/ Escritoras → 16 superficies o caras
-50 Sectores/Pista
-2500 Cilindros → 2500 pistas
-250 Bytes/Sector?
Ejercicios
# 1: ¿Cuál sería la capacidad de almacenamiento de un disco duro con las siguientes características:
-16 Cabezas Lectoras/ Escritoras → 16 superficies o caras
-50 Sectores/Pista
-2500 Cilindros → 2500 pistas
-250 Bytes/Sector?

16 𝑐𝑎𝑟𝑎𝑠 2500 𝑝𝑖𝑠𝑡𝑎𝑠 50 𝑠𝑒𝑐𝑡𝑜𝑟𝑒𝑠 250 𝑏𝑦𝑡𝑒


𝐸𝑠𝑝𝑎𝑐𝑖𝑜 𝑒𝑛 𝐷𝑖𝑠𝑐𝑜 = ∗ ∗ ∗
1 𝑑𝑖𝑠𝑐𝑜 1 𝑐𝑎𝑟𝑎 1 𝑝𝑖𝑠𝑡𝑎 1 𝑠𝑒𝑐𝑡𝑜𝑟

500 000 000 𝑏𝑦𝑡𝑒𝑠


𝐸𝑠𝑝𝑎𝑐𝑖𝑜 𝑒𝑛 𝐷𝑖𝑠𝑐𝑜 = 1 𝑑𝑖𝑠𝑐𝑜
Ejercicios
# 2: Una unidad de disco cuenta con varios
cilindros que están numerados
consecutivamente del 0 al 299; 4 cabezas de
Lectura/Escritura y 18 sectores por pista, de 500
bytes cada uno.
• 1) ¿Cuántas pistas tiene el disco en su
totalidad? ¿Cuántos sectores?
• 2) Calcular la capacidad del Disco.
Ejercicios
# 2: Una unidad de disco cuenta con varios cilindros numerados consecutivamente del 0 al 299, 4 cabezas de
Lectura/Escritura y 18 sectores por pista, de 500 bytes cada uno.
• 1) ¿Cuántas pistas tiene el disco en su totalidad? ¿Cuántos sectores?
• 2) Calcular la capacidad del Disco.
• 4 cabezas → 4 superficies
• 300 cilindros -> 300 pistas por superficie
Ejercicios
# 2: Una unidad de disco cuenta con varios cilindros numerados consecutivamente del 0 al 299, 4 cabezas de
Lectura/Escritura y 18 sectores por pista, de 500 bytes cada uno.
• 1) ¿Cuántas pistas tiene el disco en su totalidad? ¿Cuántos sectores?
• 2) Calcular la capacidad del Disco.
• 4 cabezas → 4 superficies
• 300 cilindros -> 300 pistas por superficie
4 𝑐𝑎𝑟𝑎𝑠 300 𝑝𝑖𝑠𝑡𝑎𝑠
𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑝𝑖𝑠𝑡𝑎𝑠 𝑑𝑖𝑠𝑐𝑜 = ∗
1 𝑑𝑖𝑠𝑐𝑜 1 𝑐𝑎𝑟𝑎
1200 𝑝𝑖𝑠𝑡𝑎𝑠
𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑝𝑖𝑠𝑡𝑎𝑠 𝑑𝑖𝑠𝑐𝑜 =
1 𝑑𝑖𝑠𝑐𝑜
1200 𝑝𝑖𝑠𝑡𝑎𝑠 18 𝑠𝑒𝑐𝑡𝑜𝑟𝑒𝑠 21600 𝑠𝑒𝑐𝑡𝑜𝑟𝑒𝑠
𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑠𝑒𝑐𝑡𝑜𝑟𝑒𝑠 = ∗ =
1 𝑑𝑖𝑠𝑐𝑜 1 𝑝𝑖𝑠𝑡𝑎 1 𝑑𝑖𝑠𝑐𝑜
21600 𝑠𝑒𝑐𝑡𝑜𝑟𝑒𝑠 500 𝑏𝑦𝑡𝑒𝑠 10,800,000 𝑏𝑦𝑡𝑒𝑠
𝐶𝑎𝑛𝑡𝑖𝑑𝑎𝑑 𝑑𝑒 𝑠𝑒𝑐𝑡𝑜𝑟𝑒𝑠 = ∗ =
1 𝑑𝑖𝑠𝑐𝑜 1 𝑠𝑒𝑐𝑡𝑜𝑟 1 𝑑𝑖𝑠𝑐𝑜
Sectores
• La dirección física de un sector está constituida por una terna
(cilindro, pista, sector).
• El SO trata el disco como una tabla de bloques de disco
unidimensional, donde cada bloque es un sector.
• La traducción de un número de bloque en una dirección física
depende de la numeración del disco
– Empezar desde el cilindro exterior, superficie superior y un sector al
azar marcándolo como (0, 0, 0)
– Completar los sectores de la pista actual hasta (0, 0, s)
– Pasar a la siguiente superficie con (0, 1, 0)
– Repetir para todas las pistas del cilindro hasta (0, p, s)
– Pasar al siguiente cilindro, superficie superior (1, 0, 0)
– Completar con los cilindros interiores (cl, p, s)
Sectores
Sectores y Direcciones
• En un disco con P pistas/cilindro y S
sectores/pista:
– Para calcular el número de bloque de una
dirección física (i, j, k):
b = i*P*S + j*S + k
– Para obtener la dirección física de un bloque b:
i = int(b/PS) r = mod(b/PS)
j = int(r/S)
k = mod(r/S)
Ejercicios
# 3: Una unidad de disco tiene 300 cilindros
numerados del 0 al 299, 4 cabezas de
Lectura/Escritura y 18 sectores por pista, de 512
bytes cada uno.
• 1) Calcular la dirección del bloque que se encuentra en el
Cilindro 20, Superficie 2 y Sector 10.
• 2)¿Cuál sería la dirección física del bloque 50410? ¿Es un
bloque válido para este disco?
Ejercicios
# 3: Una unidad de disco tiene 300 cilindros numerados del 0 al 299, 4
cabezas de Lectura/Escritura y 18 sectores por pista, de 512 bytes cada uno.
• 1) Calcular la dirección del bloque del Cilindro 20, Superficie 2 y Sector 10.
• 2)¿Cuál sería la dirección física del bloque 50410? ¿Es un bloque válido para este disco?

• Identifique: 2) Dirección física del bloque 50410


– i: clindro = 20 i = int(b/PS) = int(50410/ (300*18)) = 9
– j: superficie: 2 r = mod(b/PS) = mod (50410/ (300*18)) = 1810
– K: sector: 10 j = int(r/S) = int(1810/18) = 100
– p: pistas por superficie: 300 k = mod(r/S) = mod(1810/18) = 10
– s: sectores por pista: 18

• 1) b = i*P*S + j*S + k Dirección física (9, 100, 10)

• b = 20 * 300 * 18 + 2 * 18 + 10
El disco tiene 4 cabezas de lecturas, es
• b = 108000 + 36 + 10 = 108046 decir 4 superficies, por lo tanto j
debe ser un valor entre 0 y 3. No es
un bloque válido.
Ejercicios
# 4: Un sector tiene la siguiente dirección física
(5, 8, 59). De características de un disco para el
cual la dirección sea válida.
Tiempos
• Al trabajar con discos hay que considerar
varios tiempos:
– Tiempo de posicionamiento (Tp): tiempo en que se tarda en posicionar una cabeza
lectora/escritora sobre una pista específica.
– Tiempo de latencia: Es el promedio de tiempo para que el disco una vez en la pista
correcta encuentre el sector deseado, es decir el tiempo que tarda el disco en dar media
vuelta.
• Depende de la velocidad del Disco (normalmente dado en RPM)
• Si un disco es de 3600 RPM, quiere decir que será de 60 revoluciones por segundo, es decir 1 revolución cada
0.016 seg., por lo que para dar media vuelta sería 0.008 seg o 80 milisegundos
– Tiempo de transferencia (Tr): Tiempo en que los datos (bits) pueden transferirse desde
el disco a la unidad central.
• Corresponde al tiempo en que un puede leerse un sector
– Tiempo para leer n sectores distribuidos aleatoriamente :
• T = ( Tp + Tr + Tl ) n
– Tiempo para leer n sectores consecutivos:
• T = Tp + Tl + Tr * n
Tiempos HDD vs Tiempos SSD
• Tiempos de Transferencia de Datos
Ejercicios
# 5: Un disco posee sectores de 500 bytes cada
uno. El disco gira a 7200 rpm y el tiempo medio
de posicionamiento es de 30 milisegundos. La
velocidad de transferencia de datos es de 4
Mb/seg (Asuma 1 MB = 1000 KB = 1000000
Bytes)
1) Calcular el tiempo necesario para leer 1 sector.
2) Calcular el tiempo necesario para leer 3.540 bytes,
distribuidos aleatoriamente en el disco.
3) Calcular el tiempo necesario para leer 3,540 bytes,
distribuidos de manera continua en el disco.
Ejercicios
# 5: Un disco posee sectores de 500 bytes cada uno. El disco gira a 7200 rpm y el
tiempo medio de posicionamiento es de 30 milisegundos. La velocidad de
transferencia de datos es de 4 Mb/seg . (Asuma 1 MB = 1000 KB = 1000000 Bytes)
1) Calcular el tiempo necesario para leer 1 sector.
2) Calcular el tiempo necesario para leer 3,540 bytes, distribuidos aleatoriamente en el disco.
3) Calcular el tiempo necesario para leer 3,540 bytes, distribuidos de manera continua en el disco.

Calcular:
- Tiempo posicionamiento: 30 ms
- Tiempo latencia:
7200 𝑟𝑒𝑣𝑜𝑙𝑢𝑐𝑖𝑜𝑛𝑒𝑠 1 𝑚𝑖𝑛𝑢𝑡𝑜 120 𝑟𝑒𝑣
𝑇𝑖𝑒𝑚𝑝𝑜 𝐿𝑎𝑡𝑒𝑛𝑐𝑖𝑎 = ∗ =
1 𝑚𝑖𝑛𝑢𝑡𝑜 60 𝑠𝑒𝑔 1 𝑠𝑒𝑔
Si 120 rev en 1 segundo, ¿Cuánto tiempo tarda en dar 0.5 revoluciones? = 0.004167 segundos = 4.167 ms
• Tiempo de transferencia: ¿Cuánto tiempo toma en transferir los datos de un sector?
– Velocidad = 4 MB / s
4 𝑀𝐵 1 𝑠𝑒𝑔𝑢𝑛𝑑𝑜 1 𝑀𝑖𝑙𝑙𝑜𝑛 𝑏𝑦𝑡𝑒𝑠 1 𝑠𝑒𝑐𝑡𝑜𝑟
𝑇𝑖𝑒𝑚𝑝𝑜 𝑇𝑟𝑎𝑛𝑠𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎 = 1 𝑠𝑒𝑔𝑢𝑛𝑑𝑜 ∗ * ∗
1000 𝑚𝑠 1 𝑀𝐵 500 𝑏𝑦𝑡𝑒𝑠
1 𝑠𝑒𝑐𝑡𝑜𝑟
𝑇𝑖𝑒𝑚𝑝𝑜 𝑇𝑟𝑎𝑛𝑠𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎 = → 8 ms / sector
8 𝑚𝑠
Ejercicios
# 5: Un disco posee sectores de 500 bytes cada uno. El disco gira a 7200 rpm y el
tiempo medio de posicionamiento es de 30 milisegundos. La velocidad de
transferencia de datos es de 4 Mb/seg . (Asuma 1 MB = 1000 KB = 1000000 Bytes)
1) Calcular el tiempo necesario para leer 1 sector.
2) Calcular el tiempo necesario para leer 3,540 bytes, distribuidos aleatoriamente en el disco.
3) Calcular el tiempo necesario para leer 3,540 bytes, distribuidos de manera continua en el disco.

Calcular:
- Tiempo posicionamiento: 30 ms
- Tiempo latencia: 4.167 ms
- Tiempo transferencia: 8 ms

- 1) tp + tl + tr = 30 ms + 4.167 ms + 8 ms = 42.167 ms
- 2) 3540 / 500 bytes por sector = 8 (no pueden ser 7) → 8 (30+4.167+8) = 337.36 ms
- 3) Cuando los sectores son continuos el único tiempo oque se repetirá por sector será el de transferencia:
- Tp + tl + n* tr
- 30 ms + 4.167 ms + 8 * 8 ms = 98.167 ms
Conclusiones
• El almacenamiento puede clasificarse por:
– Volatilidad
– Jerarquía (implicaciones en costo, velocidad y capacidad)
• Al momento de seleccionar un dispositivo de almacenamiento
secundario deben considerarse:
– Capacidad, fiabilidad, recuperabilidad, disponibilidad
• Conocimos los componentes básicos de un disco:
Sector → pista → cilindro → cara → plato
• 27 de abril
– Actividad Inicial de Periodo
– Tarea Introductoria
Actividades
Pendientes • Proyecto I Parcial
– Participar en Foro antes del 2 de mayo
– Entrega 22 de mayo
• Esta semana
– Revisar Foro Proyecto
– Revisar Foro Glosario
– Participación en Foro de Proyecto

También podría gustarte