Concetti Chiave

  • Il software è essenziale per il funzionamento dell'hardware, suddividendosi in software di base e applicativo, con il sistema operativo come componente fondamentale.
  • Il sistema operativo gestisce risorse hardware, memoria e file system, garantendo un accesso sicuro e ottimale ai dati archiviati.
  • Le interfacce utente, come CUI e GUI, consentono all'utente di interagire con il computer in modo intuitivo, facilitando l'uso del sistema.
  • Il programmatore gioca un ruolo cruciale nell'analisi dei problemi e nella scrittura di algoritmi, traducendo le soluzioni in linguaggio di programmazione.
  • L'algoritmo rappresenta una sequenza di passi per risolvere un compito complesso, utilizzando strumenti come diagrammi a blocchi e pseudolinguaggio.

Importanza del software

Il software consente il funzionamento di tutte le componenti hardware e senza di esso l’hardware sarebbe assolutamente inutile. Si suddivide in software di base e applicativo. Il software di base è rappresentato dal sistema operativo, che permette al computer di accendersi e di svolgere operazioni di fondamentale importanza. Quello applicativo invece è costituito dai programmi che svolgono dei compiti più disparati.

1. Gestisce le risorse Hardware;

2. Fornisce il supporto all’utente (l’utente può dialogare con la macchina senza approfondite conoscenze sull’Hw).

Risorse: sono gli elementi Hw e Sw del PC che vengono utilizzate da un programma per svolgere il proprio compito. Utente: utilizzatore del computer, cioè colui che può impartire dei comandi alla macchina grazie all’interfaccia utente.

Livelli del software

Il software è formato da sei livelli:

1° livello: nucleo (Kernel);

2° livello: gestore della memoria centrale;

3° livello: gestore delle periferiche;

4° livello: file system;

5° livello: interfaccia utente;

6° livello: programmi applicativi.

Gestisce la CPU e associa un processo ad ogni programma in esecuzione. I moderni sistemi operativi possono eseguire contemporaneamente più programmi e perciò si dicono multiprogrammi.

Gestione della memoria e file system

Il sistema operativo si occupa di frazionare la memoria e i programmi in sezioni chiamate pagine e segmenti, effettuando periodicamente il caricamento e lo scaricamento del programma man mano che viene eseguito, oppure termina la sua esecuzione. Inoltre, il sistema operativo garantisce sempre a ogni programma in esecuzione un'enorme quantità di memoria, detta memoria virtuale.

Il file system provvede alla gestione di tutto quanto deve essere archiviato sulle memorie di massa: ogni “elemento” che viene registrato su memoria di massa prende il nome di file. Il file system deve:

1. gestire in modo ottimale lo spazio disponibile della memoria di massa per le registrazioni richieste dagli utenti;

2. garantisce all’utente l’accesso ai dati contenuti in un file;

3. fornire agli utenti meccanismi di protezione dai file, a diversi livelli rispetto a interventi dannosi o non autorizzati da parte di altri utenti;

4. rende disponibili in modo semplice le operazioni di uso comune sui file.

Interfacce utente

L’interfaccia utente o shell indica quelle parti che si frappongono tra la macchina e l’utente. L’interfaccia utente può essere di tipo CUI (Command User Interface) o GUI (Graphical User Iterface).

Interfacce grafiche CUI: MS-DOS, Unix

Interfacce grafiche GUI: Windows, mac OS, Linux

Ruolo del programmatore

Il PC è una macchina complessa in grado di eseguire milioni di istruzioni al secondo, per poterle eseguire però ho bisogno di operazioni da compiere, quindi di dati, che consentono alla macchina di elaborare le informazioni.

Compito del calcolatore è risolvere un problema.

Il programmatore (analista) studia il problema e ne individua l’algoritmo risolutivo. Il programma viene scritto in linguaggio di programmazione. Il linguaggio di programmazione usato dal programmatore (linguaggio ad alto livello) è molto lontano dal codice binario (linguaggio a basso livello). Questa operazione viene eseguita dai compilatori che trasformano il codice sorgente in codice macchina. Alla base di un programma c’è l’esigenza di risolvere un problema. Per risolverlo si seguono due fasi:

1. comprensione del problema (analisi del problema);

2. come risolvere il problema (individuazione della strategia risolutiva).

L’algoritmo è una sequenza ordinata di passi semplici che hanno lo scopo di portare a termine un compito complesso. Per descrivere gli algoritmi vengono usate due modalità:

1. diagramma a blocchi (flow chart);

2. linguaggio di progetto (pseudolinguaggio).

L’algoritmo codificato in pseudolinguaggio è troppo complesso per essere eseguito dal calcolatore quindi attraverso il compilatore viene tradotto in linguaggio macchina.

Domande da interrogazione

  1. Qual è l'importanza del software rispetto all'hardware?
  2. Il software è essenziale per il funzionamento dell'hardware; senza di esso, l'hardware risulterebbe inutile. Esso si divide in software di base, come il sistema operativo, e software applicativo, che comprende vari programmi (testo).

  3. Come è strutturato il software?
  4. Il software è composto da sei livelli, che vanno dal nucleo (Kernel) alla gestione dei programmi applicativi, passando per la gestione della memoria e delle periferiche (testo).

  5. Qual è il ruolo del sistema operativo nella gestione della memoria?
  6. Il sistema operativo fraziona la memoria in pagine e segmenti, gestendo il caricamento e lo scaricamento dei programmi, e garantisce a ogni programma in esecuzione una quantità di memoria virtuale (testo).

  7. Che tipi di interfacce utente esistono?
  8. Le interfacce utente possono essere di tipo CUI (Command User Interface) o GUI (Graphical User Interface), con esempi come MS-DOS e Windows (testo).

  9. Qual è il compito del programmatore nel processo di sviluppo software?
  10. Il programmatore analizza un problema, individua un algoritmo risolutivo e scrive il programma in un linguaggio di programmazione, che viene poi tradotto in codice macchina tramite compilatori (testo).

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community