Il 0% ha trovato utile questo documento (0 voti)
15 visualizzazioni

08 Software

Il documento tratta delle tecnologie per la traduzione, focalizzandosi su software e sistemi operativi. Viene definito il concetto di problema, algoritmo, programma e si distingue tra hardware e software, evidenziando le differenze tra software libero e proprietario. Inoltre, si approfondiscono le funzionalità del sistema operativo, l'architettura software e il file system, con particolare attenzione all'interazione utente-sistema.

Caricato da

fixowe5936
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
15 visualizzazioni

08 Software

Il documento tratta delle tecnologie per la traduzione, focalizzandosi su software e sistemi operativi. Viene definito il concetto di problema, algoritmo, programma e si distingue tra hardware e software, evidenziando le differenze tra software libero e proprietario. Inoltre, si approfondiscono le funzionalità del sistema operativo, l'architettura software e il file system, con particolare attenzione all'interazione utente-sistema.

Caricato da

fixowe5936
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 23

Università di Padova

Dipartimenti di Studi Linguistici e Letterari

Tecnologie per la Traduzione 2020/2021

Software e Sistema Operativo


Giorgio Maria Di Nunzio
Obiettivi

• Dalla definizione di problema a quella di software

• Conoscere le varie tipologie di software

• Conoscere alcuni dettagli del Sistema Operativo


Problema (definizione)

• Un problema è una classe di domande omogenee alle quali è


possibile dare una risposta attraverso un metodo o una procedura
uniforme.

• Ogni specifica domanda della classe si chiama istanza del problema.

• Un problema deve contenere uno o più termini variabili

• Quando le variabili assumono un valore, generano le diverse istanze del


problema.

• Si chiamano variabili di ingresso o dati (input)

• Il risultato (output) di un problema è anch’esso un termine variabile che


dipende dai dati di input.
Algoritmo (definizione)

• Un algoritmo è costituito da un insieme di regole che,


eseguite secondo un ordine prestabilito, permettono la
soluzione di un problema in un numero finito di passi.

• Aspetti da tenere presente nella definizione

• insieme finito di regole o istruzioni

• le regole o istruzioni vanno eseguite in una sequenza prestabilita

• dati necessari alla soluzione del problema (input)

• dati da fornire come soluzione del problema (output)


Programma (definizione)

• Un programma è un algoritmo scritto in un linguaggio


comprensibile per il computer (linguaggio di programmazione)
Computer (definizione)

• Un computer è un sistema che ricevendo in ingresso:

• un algoritmo risolvente di un dato problema (scritto in un linguaggio


di programmazione)

• un opportuno insieme di dati iniziali

• produce in uscita i risultati dell’esecuzione dell’algoritmo per quei


dati iniziali
Hardware e Software

• L’hardware è l’insieme dei dispositivi fisici (meccanici,


magnetici, elettrici ed elettronici) che compongono un
computer.

• Il software è l’insieme delle istruzioni e dei programmi usati


per determinare le operazioni di un computer.
Hardware e Software

• Le prestazioni di un computer dipendono dall’insieme


dell’hardware e del software.

• Un computer potente (cosa vuol dire?) non garantisce


necessariamente alte prestazioni, perché può essere poco
sfruttato da software scadente.

• Un programma, un software, ha normalmente bisogno di un


hardware adeguato per poter funzionare correttamente.

• Si parla di requisiti minimi dell’hardware per un dato software.


Software

• Software libero o proprietario

• open source, freeware, shareware, commerciale

• Software di sistema

• Software applicativo
Software libero

• Gli utenti hanno la libertà di eseguire, copiare, distribuire, studiare,


modificare e migliorare il software.

• Quattro libertà fondamentali:

• Libertà di eseguire il programma, per qualsiasi scopo.

• Libertà di studiare come funziona il programma e di modificarlo in modo da


adattarlo alle proprie necessità (accesso al codice sorgente).

• Libertà di ridistribuire copie.

• Libertà di migliorare il programma e distribuirne pubblicamente i


miglioramenti apportati, in modo tale che tutta la comunità ne tragga
beneficio (accesso al codice sorgente).
Software Libero vs Open Source Software

• Articolo di Richard Stallman

• http://www.gnu.org/philosophy/open-source-misses-the-point.it.html
Software proprietario

• Software proprietario è quello che non è libero

• Il suo utilizzo, la ridistribuzione o modifica sono proibiti o


richiedono un permesso o sono sottoposti a tali vincoli che in
pratica non si possono fare liberamente.

• Mezzi tecnici: non mettere a disposizione il codice

• Mezzi legali: copyright, brevetti


Freeware, shareware, commerciale

• Il termine "freeware" non ha una definizione comunemente


accettata, ma è solitamente utilizzato per i pacchetti software che
possono essere ridistributi ma non modificati (il loro codice
sorgente non è disponibile).

• Lo “shareware” è un software che dà la possibilità di ridistribuire


copie, ma impone a chiunque continui ad usarne una copia di
pagarne la licenza d'uso.

• Software “commerciale” è un software sviluppato da un'azienda


allo scopo di guadagnare dal suo uso. "commerciale" e
"proprietario" non sono la stessa cosa.

• Commercial open source, free proprietary software…


Software di sistema e software applicativo

• Il termine software indica un programma, o un insieme di programmi, in


grado di funzionare su un calcolatore.

• In genere il software si divide in due classi:

• Software di sistema (system software, o software di base)

• Indica tutto il software necessario per far funzionare un calcolatore.

• Sistema operativo

• Driver dei dispositivi input/output

• Software applicativo

• Indica quei programmi che sfruttano le capacità di un calcolatore per uno specifico compito che
l’utente vuole svolgere.
Architettura software

Programmi applicativi

Sistema Operativo
Driver

Hardware
Macchina virtuale

• I sistemi informatici moderni raggiungono alcuni obiettivi (un


esempio è il cloud storage) grazie alla definizione di
“macchine virtuali” che vengono realizzate al di sopra della
macchina hardware reale.

• Una macchina virtuale costituisce un livello di software che


realizza una macchina astratta con le funzionalità desiderate e
facile da utilizzare.

• Il termine macchina virtuale indica un software che crea un


ambiente virtuale in cui l'utente può eseguire delle
applicazioni.
Sistema operativo

• Il sistema operativo (SO) è un insieme complesso di


programmi che, in modo coordinato, controlla le risorse del
sistema e i processi che usano queste risorse.

• Per evidenziare le funzionalità delle parti del sistema e le


interazioni fra esse si utilizza un modello basato su livelli di
macchina virtuale (virtualizzazione delle risorse).

• Il SO è organizzato in strati funzionali dove ciascun strato


realizza una macchina virtuale.
Interazione con il SO

• I linguaggi di interazione fra l’utente e il sistema operativo sono


profondamente diversi al variare del sistema operativo

• In generale, si possono distinguere due tipologie di interazione:

• interazione testuale (Textual User Interface TUI): l’utente fornisce i


comandi al sistema mediante un linguaggio testuale, ogni comando ha
un suo nome e una sintassi di interazione ben precisa; l’utente deve
ricordarsi nome e sintassi di ciascun comando;

• interazione grafica (Graphical User Interface GUI): sono rese disponibili


all’utente delle rappresentazioni grafiche delle funzioni disponibili; ogni
rappresentazione grafica può essere selezionata mediante strumenti di
puntamento, tipicamente il mouse; in questo caso non è necessario che
l’utente si ricordi nomi e sintassi dei comandi.
Parti principali di un SO

• Il sistema operativo (SO) è un insieme complesso di programmi che, in modo


coordinato, controlla le risorse del sistema e i processi che usano queste risorse.

• Un generico sistema operativo moderno si compone di alcune parti ben definite:

• un kernel, nucleo del sistema (a seconda del SO può ricoprire diverse funzioni).

• uno scheduler che assicura ai vari processi in esecuzione una ben definita quantità di tempo
di elaborazione,

• un gestore di memoria che alloca la memoria centrale in base alle richieste dei processi e
liberarla al momento opportuno,

• un gestore di file system che si occupa di esaudire le richieste di accesso alle memorie di
massa,

• una interfaccia utente (TUI o GUI) che permette agli esseri umani di interagire con la
macchina.
Il file

• Un file è una struttura informativa che contiene un insieme di


informazioni organizzate in forma sequenziale e trattate come
un’unità.

• Il file è un meccanismo di strutturazione delle informazioni,


che consente di aggregare dati semplici in strutture
complesse.

• L’effettiva organizzazione delle diverse informazioni nel file


dipende da chi crea il file stesso.
File System (FS)

• Fornisce un meccanismo per creare e identificare i file, associando lo spazio


fisico sulle memorie secondarie a un nome.

• L’effettiva struttura fisica del supporto è trasparente all’utente.

• L’occupazione dello spazio libero e di quello ricavato da cancellazioni è gestito


automaticamente

• Fornisce opportuni metodi per accedere ai dati.

• Fornisce le funzioni di lettura e modifica dei dati

• Realizza meccanismi di protezione dei dati che permettono di stabilire chi e come può
accedere alle informazioni memorizzate sui supporti

• Si utilizza una struttura gerarchica per rappresentare il contenuto di un disco o


altra unità di memorizzazione permanente ad accesso diretto.
Il FS dal punto di vista dell’utente

• Struttura gerarchica ad albero.

• I file vengono inclusi all’interno di strutture, dette directory (o cartelle).

• Le directory possono contenere diversi file e anche avere al loro interno


diverse sotto-directory;

• Ciascun file ha un pathname (o nome completo) che include l’intero


cammino dalla radice della struttura fino al file stesso

• Tutti i file o directory presenti in una medesima directory devono avere un


nome differente, di conseguenza ogni pathname è unico.

• C:\utenti\lettere\elenco.txt (Windows)

• /Users/giorgiomariadinunzio/Documenti (Linux, OS X)
Concetto di contesto corrente

• Il contesto corrente: consente di riferirsi implicitamente a una directory


senza dover indicare l’intero pathname ad ogni operazione.

• Molto comodo nell’interazione con comandi testuali

• Nelle interfacce grafiche viene considerato come contesto corrente l’ultima


directory visitata (o quella attualmente visibile).

• Cambiamento del contesto corrente: fornisce la possibilità all’utente di


indicare esplicitamente la posizione all’interno dell’albero delle
directory.

• Nell’interazione testuale vengono utilizzati alcuni caratteri speciali per


indicare i riferimenti dal contesto corrente e gli spostamenti all’interno
dell’albero delle directory.

Potrebbero piacerti anche