Estructuras de datos y su relación con los sistemas operativos
1. República Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación Superior
I.U.P. “Santiago Mariño”
Sistemas Operativos
ESTRUCTURA DE DATOS, ALMACENAMIENTO Y SU
RELACIÓN CON LOS SISTEMAS OPERATIVOS
Integrantes:
Ing. Miguel Ramírez C.I. 21.354.096
Ing. Alejandro Pérez C.I. 18.285.681
Maracaibo, Junio 2013
2. Ing. Miguel Ramírez
C.I. 21.354.096
0426-9077587
Shinya.mcl@gmail.com
Ing. Alejandro Pérez
C.I. 18.285.681
0426-4668544
Friz133@hotmail.com
3. Estructura de Datos
La información que se procesa en la computadora
es un conjunto de datos, que pueden ser simples o
estructurados. Los datos simples son aquellos que
ocupan sólo una localidad de memoria, mientras que los
estructurados son un conjunto de casillas de memoria a
las cuales hacemos referencia mediante un identificador
único.
Debido a que por lo general tenemos que tratar con
conjuntos de datos y no con datos simples (enteros,
reales, booleanos, etc.) que por sí solos no nos dicen
nada, ni nos sirven de mucho, es necesario tratar con
estructuras de datos adecuadas a cada necesidad.
Ing. Miguel Ramírez
4. Estructura de Datos
Las estructuras de datos son una colección de datos cuya
organización se caracteriza por las funciones de acceso que se
usan para almacenar y acceder a elementos individuales de datos.
Una estructura de datos se caracteriza por lo siguiente:
Pueden descomponerse en los elementos que la forman.
La manera en que se colocan los elementos dentro de la
estructura afectará la forma en que se realicen los accesos a
cada elemento.
La colocación de los elementos y la manera en que se accede a
ellos puede ser encapsulada.
Ing. Miguel Ramírez
5. Estructura de Datos
Otras operaciones que se pueden realizar son:
Ordenamiento, de los elementos pertenecientes a la
estructura.
Apareo, dadas dos estructuras originar una nueva
ordenada y que contenga a las apareadas.
Cada estructura ofrece ventajas y desventajas en
relación a la simplicidad y eficiencia para la
realización de cada operación. De esta forma, la
elección de la estructura de datos apropiada para
cada problema depende de factores como la
frecuencia y el orden en que se realiza cada
operación sobre los datos.
Ing. Miguel Ramírez
6. Tipos de datos elementales
Binarios
• Bit
• Byte
Numéricos
• Entero
• Real
Alfanuméricos
• Carácter
• Cadena
Ing. Miguel Ramírez
7. Estructura de Datos
Vectores (matriz o array)
Registro (estructura de datos)
Listas Enlazadas
• Listas Simples
• Listas Dobles
• Listas Circulares
• Listas por saltos (Skip lists)
Pilas (stack)
Colas (queue)
Árboles
8. Tipos de Estructura de Datos
Estructuras de datos estáticas
Estructuras de datos dinámicas
9. Clasificación de los Tipos de
Datos
Tipos de Datos
Estáticos
Simples
Dinámicos
Cadena Estructu-
rados
Puntero
-Ordinales:
Integer
Bolean
Char
Enumerados
Subrango
-No Ordinales
Reales
Arrays
Registros
Archivos
Procedimi
entos
Ing. Miguel Ramírez
Siguiente
10. Vectores (Matriz o array)
Es una zona de almacenamiento continuo, que contiene una serie de elementos del
mismo tipo, los elementos de la matriz. Desde el punto de vista lógico una matriz se puede ver
como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones).
En principio, se puede considerar que todas las matrices son de una dimensión, la
dimensión principal, pero los elementos de dicha fila pueden ser a su vez matrices (un proceso
que puede ser recursivo), lo que nos permite hablar de la existencia de matrices
multidimensionales, aunque las más fáciles de imaginar son los de una, dos y tres dimensiones.
Arreglo Unidimensional
Arreglo Bidimensional
Ing. Alejandro Pérez
Atrás
11. Registro (estructura de datos)
Registros es un tipo de
datos formado por una colección
finita de elementos no
necesariamente homogéneos.
El acceso se realiza a
través de una referencia al
nombre del registro seguido del
campo específico al que se desea
acceder y delimitado por un
punto.
Ing. Alejandro Pérez
Atrás
12. Listas enlazadas
En una lista enlazada, los datos se almacenan dinámicamente y cada nodo se crea
conforme se necesita. Las listas de datos pueden almacenarse en arreglos, pero las listas
enlazadas proporcionan varias ventajas. Una lista enlazada es adecuada cuando es impredecible
el número de datos a almacenar en la estructura. Las listas enlazadas pueden mantenerse de
forma ordenada simplemente insertando cada nuevo dato en el punto adecuado de la lista sin
necesidad de mover los elementos existentes en la lista.
Las listas enlazadas tienen la desventaja que por cada dato de la lista requiere de un
espacio de memoria para el enlace al próximo dato, adicionalmente la asignación dinámica de
memoria incurre en la sobrecarga de llamadas a función a diferencia del acceso a un elemento de
un arreglo, que se realiza directamente calculando la posición del elemento con respecto a la
dirección de inicio del arreglo.
Ing. Miguel Ramírez
Atrás
13. Pilas (stack)
Una pila (stack) es un tipo especial
de una lista enlazada, ya que los nuevos
nodos sólo pueden agregarse o eliminarse
por la cabecera de la lista, generalmente
llamado tope o cima de la pila. Se
caracteriza por ser una estructura LIFO
(último en entrar primero en salir, Last
Input First Output).
A la derecha podemos observar la
implementación de una pila en una lista
enlazada.
Ing. Miguel Ramírez
Atrás
14. Colas (queue)
Una cola (queue) es similar a una
cola de personas para comprar entradas al
cine, la primera persona que está en la
cola, es la primera en ser atendida, las
nuevas personas que lleguen deben
agregarse al final de la cola. En una cola
implementada con una lista enlazada, los
nodos de una cola se eliminan solamente
desde el inicio de la lista y se insertan
solamente al final de la lista. Se caracteriza
por ser una estructura FIFO (primero en
entrar primero en salir, First Input First
Output).
Atrás
15. Árboles
Pueden usarse los árboles para
representar la información en una
estructura jerárquica. Los árboles pueden
procesarse en forma recursiva y son muy
adaptables a pruebas matemáticas. El
estudio de árboles ilustra las conexiones
entre varios temas de la matemática
discreta y ofrece oportunidades para
aprovechar la matemática formal en la
programación práctica. La idea de
estructura jerárquica es muy usada en la
práctica. Por ejemplo, los libros son a
menudo organizados como una sucesión
de capítulos cada uno de los cuales son
una sucesión de secciones que puede
tener subdivisiones, y así sucesivamente.
Una empresa puede organizarse como las
colecciones de unidades comerciales cada
uno de las cuales pueden tener varias
secciones. Las secciones, a su vez,
pueden tener secciones múltiples, y así
sucesivamente.
Ing. Alejandro Perez
Siguiente
16. Tipos de estructura de datos
Estructura de Datos Estáticas:
Son aquellas en las que el tamaño ocupado en memoria se define
antes de que el programa se ejecute y no puede modificarse dicho
tamaño durante la ejecución del programa.
Estas estructuras están implementadas en casi todos los lenguajes.
Su principal característica es que ocupan solo una casilla de memoria,
por lo tanto una variable simple hace referencia a un único valor a la
vez, dentro de este grupo de datos se encuentra:
- Enteros
- Reales
- Caracteres
- Boléanos
- Enumerados
- Subrangos
Nota: Los últimos no existen en algunos lenguajes de programación.
Atrás
Ing. Miguel Ramírez
17. Tipos de estructura de datos
Estructura de Datos Dinámicas:
No tienen las limitaciones o restricciones en el tamaño de
memoria ocupada que son propias de las estructuras
estáticas.
Mediante el uso de un tipo de datos especifico, denominado
puntero, es posible construir estructuras de datos dinámicas
que no son soportadas por la mayoría de los lenguajes, pero
que en aquellos que si tienen estas características ofrecen
soluciones eficaces y efectivas en la solución de problemas
complejos.
Se caracteriza por el hecho de que con un nombre se hace
referencia a un grupo de casillas de memoria, es decir un
dato estructurado tiene varios componentes.
Siguiente
Ing. Alejandro Pérez
18. Almacenamiento y su relación
con los sistemas operativos
Cantidades de datos se manejan con el uso del computador,
son absolutamente necesarios y son generados por los diferentes
procesos o por el Usuario, ante esto el Sistema Operativo almacena
dichos datos mediante las funciones de:
Gestión de la memoria principal: la memoria es una gran tabla de
palabras o bytes que se referencian cada una mediante una dirección
única. Este almacén de datos de rápido acceso es compartido por el
CPU y los dispositivos de E/S, es volátil y pierde su contenido ante
fallos del sistema.
Gestión del almacenamiento secundario: un sistema de
almacenamiento secundario es necesario, ya que la memoria principal
(almacenamiento primario) es volátil y además muy pequeña para
almacenar todos los programas y datos. También es necesario
mantener los datos que no convenga mantener en la memoria
principal.
Ing. Alejandro Pérez
19. Almacenamiento y su relación
con los sistemas operativos
El Sistema Operativo es responsable de:
conocer qué partes de la memoria están siendo utilizadas y por
quién, también se encarga de decidir qué procesos se cargarán
en memoria cuando haya espacio disponible asignar y reclamar
espacio de memoria cuando sea necesario.
El Sistema Operativo se encarga de:
Planificar los discos.
Gestionar el espacio libre.
Asignar el almacenamiento.
Verificar que los datos se guarden en orden
Ing. Alejandro Pérez