- tutte le strutture dati
- gli algoritmi che le gestiscono
all’interno del Sistema Operativo.
Strutture Dati
In informatica una struttura dati è un’entità usata per organizzare un insieme di dati all’interno della memoria del computer, ed eventualmente per memorizzarli in una memoria di massa.
…
La struttura dati è un metodo di organizzazione dei dati, quindi prescinde dai dati effettivamente contenuti.
…
i linguaggi forniscono un insieme predefinito di tipi di dato elementari, e le strutture dati sono strumenti per costruire tipi di dati aggregati più complessi.
Il tipo di dati elementare di cui parla wikipedia è ad esempio la variabile, mentre le strutture dati che aggregano le variabili sono ad esempio:
- un array o vettore che a sua volta può essere
- monodimensionale
- bidimensionale detto matrice
- ecc.
- un record o struttura
- una classe
- una lista
- un albero
- un grafo
- una tabella hash
Algoritmi
Gli algoritmi, come noto, sono una sequenza finita di passi elementari da svolgere per risolvere un determinato problema; sono cioè quei passi che elaborano i dati di input ricavandone i dati di output (risultato).
Per continuare:
La scelta delle strutture dati da utilizzare è strettamente legata a quella degli algoritmi; per questo, spesso essi vengono considerati insieme. Infatti, la scelta della struttura dati influisce inevitabilmente sull’efficienza degli algoritmi che la manipolano.
Per capire il collegamento tra algoritmi e strutture dati si può dire ad esempio che una stessa struttura dati come la lista può essere gestita in vari modi tra cui:
- a Coda o FIFO (First In First Out)
- a Pila o LIFO (Last In First Out)
Quindi ad esempio il programma che gestisce una coda di stampa in un Sistema Operativo può essere un esempio di algoritmo che usa la struttura dati Lista con la politica FIFO (il primo lavoro che arriva sarà quello che verrà stampato).
Esempi
Un esempio di architettura di Sistema Operativo è quello descritto in maniera completa nel libro: “Unix Architettura di Sistema” che descrive appunto le strutture dati e tutti gli algoritmi del sistema operativo Unix; questo libro fu poi seguito da Linus Torvalds per scrivere il codice sorgente di Linux che diventerà poi il kernel dei sistemi operativi cosiddetti GNU/Linux.