La parola algoritmo trae origine dal nome del matematico arabo medioevale Al-Khawarizmi. In pratica con algoritmo si intende la procedura da compiere per eseguire un calcolo. Il termine sembra un parolone che talora incute timore, quando invece l'algoritmo lo conoscono molto bene tutti coloro che hanno un minimo di istruzione. I primi algoritmi li abbiamo appresi addirittura alle scuole elementari. Ad esempio per sommare due numeri come 23 e 78, la maestra pressappoco ci insegnava:
1) Metti i due numeri in colonna I punti 1, 2 e 3 danno un semplice esempio di algoritmo. Nessuno ce l'aveva mai detto, perciò quando si studia l'informatica sembra che il concetto di algoritmo sia qualcosa di completamente nuovo.
Il termine 'algoritmo' ha oggi ampliato il suo significato per comprendere insieme al calcolo qualsiasi regola per ottenere dati, ad esempio si hanno 'algoritmi di ricerca', 'algoritmi di ordinamento', 'algoritmi grafici', algoritmi per la scrittura ecc. Queste ultime funzioni si capisce bene che hanno poco a che fare con la matematica. L'algoritmo definisce un piano di lavoro, ed il programmatore traduce un algoritmo mediante il linguaggio Fortran, il Pascal o altro. Nel gergo quotidiano 'programma' ed 'algoritmo' sono spesso sinonimi anche se ciò è inesatto perché il programma contiene due parti:
- Le istruzioni, Soltanto la prima parte contiene le istruzioni dell'algoritmo mentre le dichiarative determinano i campi con cui le istruzioni operano (vedi anche risposta 39). Quando un esperto software deve creare un programma ci sono due possibiità:
a) L'algoritmo gli viene illustrato con ogni
dettaglio nelle specifiche di progetto,
Il caso a) è comune nelle aziende, nelle
banche e nelle istituzioni (vedi
risposta 38). Ad esempio una banca segue i calcoli dietro le
accurate istruzioni della Banca Europea. Il caso b) è tipico dei centri di ricerca e dei
centri di produzione.
anno 2008 |
151. Quali sono le origini dell'algoritmo? |
152.Per cortesia una breve spiegazione della paginazione. |
In un computer la limitata estensione della memoria centrale rispetto all'enorme estensione delle memorie esterne appare evidente. Per fissare le idee prendiamo un personal computer con 40 Giga di hard disk e 1 Giga di RAM: la prima memoria è 40 volte maggiore della seconda. Gli esperti hanno pensato bene di sfruttare la memoria di massa per eseguire i programmi. Vi possono risiedere infatti molti programmi anche di grande estensione. E per raggiungere questo obbiettivo hanno semplicemente trasferito l'intera organizzazione della memoria centrale sull'hard disk.
Poiché i programmi non sono eseguibili su disco, come funzionano le cose?
La memoria centrale
reale
nell'unitò centrale e quella
virtuale
(su disco) vengono divise in
pagine
tutte uguali
delle dimensioni di qualche Kbyte (es. 2 oppure 4 byte). Poiché la CPU
lavora soltanto nella memoria centrale, la pagina che deve essere elaborata viene trasferita dalla memoria
virtuale in quella reale. Al termine dell'elaborazione la pagina viene riportata indietro.
Il guadagno offerto dalla memoria virtuale in termini di
occupazione è ben evidente. Il prezzo da pagare è il lavoro di
page-in
e page-out
chiamato il italiano
paginazione
il quale viene affidato a speciali dispositivi hardware e ad alcune parti del Sistema Operativo.
anno 2008 |