Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione al Software: Algoritmi, Linguaggi di Programmazione e Macchine Virtuali, Schemi e mappe concettuali di Fondamenti di informatica

Una introduzione al concetto di software, descrivendo l'esempio pratico di un algoritmo per fare una torta e introdurre il concetto di programmatori, linguaggi di programmazione e traduttori. Viene inoltre discusso il vantaggio dell'uso di compilatori rispetto ai traduttori interprete e l'introduzione alla macchina di Turing come sistema automatico per l'elaborazione dell'informazione.

Tipologia: Schemi e mappe concettuali

2020/2021

Caricato il 08/01/2022

nicole-liborio
nicole-liborio 🇮🇹

16 documenti

1 / 9

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
IL SOFTWARE
CAPITOLO 2
pf3
pf4
pf5
pf8
pf9

Anteprima parziale del testo

Scarica Introduzione al Software: Algoritmi, Linguaggi di Programmazione e Macchine Virtuali e più Schemi e mappe concettuali in PDF di Fondamenti di informatica solo su Docsity!

IL SOFTWARE

CAPITOLO 2

IL SOFTWARE:

è un’unità di memorizzazione e di elaborazione di dati all’interno del calcolatore. Grazie adesso il calcolatore è una macchina estremamente flessibile. Esso si divide in

  • sistema operativo
  • sistema applicativo

GLI ALGORITMI

Un algoritmo è una sequenza di istruzioni per realizzare un trattamento dell'informazione oh per risolvere un problema. Esso ha bisogno di determinate caratteristiche:

  • deve esserci qualcuno in grado di eseguirloàesecutore, egli esegue le istruzioni di input in un ordine ben preciso per ottenere un risultato di output.
  • deve essere formulato in un linguaggio comprensibile dall'esecutore (linguaggio non ambiguo)
  • deve prevedere solo istruzioni elementari che comportano quindi a semplici operazioni
  • L'esecuzione deve terminare fornendo i dati di output in un tempo finito.
  • L'algoritmo deve essere deterministico : eseguendolo più volte, il risultato deve essere sempre lo stesso.
  • Algoritmo parametrico → è in grado di risolvere una classe di problemi. esempio pratico di un algoritmo: la ricetta per fare una torta o tutti i passaggiàdati di input o il risultato finale quindi la tortaàdato di output

PROGRAMMI.LINGUAGGI E TRADUTTORI

Programmatoreà è una persona che insegna algoritmi ai calcolatori scrivendo programmi linguaggio macchinaàlinguaggio di programmazione, e un linguaggio formale usato per descrivere algoritmi che poi vengono eseguiti dal calcolatore. esso è costituito dalla codifica in binario di istruzioni. Programmare in linguaggio macchina è un processo che richiede molto tempo, i programmatori anno quindi inventato il linguaggio assemblatore (o a basso livello), molto macchinoso ossia un linguaggio di programmazione che a ogni istruzione associa una codifica mnemonica in lingua inglese. Nel linguaggio ad alto livelloà il sistema operativo esegue le istruzioni in maniera automatica, l’ambiente di programmazione traduce le istruzioni in modo che possano essere tradotte ed eseguite dalla CPU. In quello a basso livello sono io che devo descrivere le istruzioni nello stesso linguaggio del sistema. Questa attività può essere condotta a sua volta da un calcolatore sotto la guida di un particolare programma definito traduttore Specifico per il linguaggio di programmazione e per il linguaggio macchina. ci sono due tipi di traduttori:

  • Traduttore compilatore: riceve l'intero programma in un linguaggio di alto livello e produce in output la sua traduzione il linguaggio macchina.
  • traduttore interprete: riceve in input il programma sorgente e ne traduce le singole istruzioni facendole eseguire direttamente.
  1. implementazione o codificaàrealizzazione di uno o più programmi che costituiscono il prodotto del software
  2. collaudoàsequenza di test per verificare se il software soddisfa i requisiti indicati nella fase di analisi
  3. rilascioàconsiste nell'installazione del prodotto software, consegnato o rilasciato sul mercato o al mittente
  4. manutenzioneàcomprende le attività, dopo il rilascio, di modifica per l'eliminazione di malfunzionamenti CASE=

IL SOFTWARE OPERA DI INGEGNO:

Il software è un'opera dell'ingegno e come tale è soggetto a norme sul diritto d'autore. Chi produce un software è il titolare del relativo diritto d'autore e chi lo utilizza deve quindi conoscere le norme che ne regolamentano l’uso. Quando la software House ( azienda specializzata nella produzione di software), produce una specifica applicazione per una determinata azienda che rispetti le esigenze di essa, il committente acquista dal produttore anche la versione sorgente e il diritto d'autore per poter liberamente impiegare il software. vi sono quindi varie tipologie di licenze:

  1. licenza d'uso: il produttore immette il proprio prodotto sul mercato mantenendo il diritto d'autore concedendo l'utilizzo in maniera limitata.
  2. licenza shareware : è una licenza che permette all'utente di utilizzare il software solo per un determinato periodo di prova(generalmente 30 giorni)
  3. licenza freeware : in cui il prodotto viene distribuito gratuitamente dal titolare, che posso anche ricondividere con qualcun altro senza violare il diritto d’autore in quanto presenti gratuitamente in rete. (esempio libre office, simili a word office)
  4. Software libero o open source : distribuito gratuitamente dal titolare assieme alla versione sorgente

IL SOFTWARE APPLICATIVO:

Generalmente il software viene classificato in due categorie:

  • software applicativoà applicazioni, che risolvono e supportano l'utente nella risoluzione di problemi specifici
  • software di baseàprogrammi di uso generale che consentono l'interazione tra utente e calcolatore Le applicazioni in ambito applicativo sono molteplici, tra quelle di uso più comune di sono i software di produttività individuale, come per esempio: Microsoft Office, Apache open office. Vi sono quindi applicazioni di: § videoscrittura= usate per la stesura di documenti di testo, correzioni, formattazioni. § per la gestione di fogli elettronici= come Microsoft Excel, usati come fogli di calcoli o per l'elaborazione dei dati mediante tabelle. § per la produzione di presentazione multimediali= mediante l'uso di slide come per esempio PowerPoint § applicativi per la gestione di basi di dati= che raccolgono e organizzano i dati in tabelle § Applicazioni di desktop Publishing= per la creazione di volantini § Applicazioni di editor web= per la realizzazione di piccoli siti web § applicazioni grafiche o fotoritocco § applicazioni per la realizzazione di diagrammi

§ applicazione per la gestione delle finanze individuali § organizer= che sostituiscono l'agenda cartacea § applicazioni di project management= per la gestione e la pianificazione di un progetto Con la diffusione della connessione a Internet vi sono poi diffuse numerose applicazioni per l'impiego di specifici servizi disponibili online come per esempio:

  • applicazioni OCR (optical character recognition)= per il riconoscimento dei caratteri all'interno delle immagini
  • applicazioni CAD(computer idea design)= per disegno tecnico anche in tridimensionale
  • videogiochi
  • audio player e video player Sono anche diffuse le mobile application, ossia applicazioni specifiche realizzate per smartphone,tablet e altri dispositivi che mirano a for minire all'utente la possibilità di trarre massimi benefici su tali dispositivi. esse sono caratterizzate dalla massima semplicità di installazione ed uso e vengono scaricate via Internet. inoltre possono essere gratis o a pagamento. IL SOFTWARE DI BASE: È un sistema operativo costituito da più macchine virtuali. L'hardwareàossia la macchina fisica, viene corredato da un primo strato di software Che costituisce la macchina virtuale (piattaforma). offrendo così un'interfaccia che fornisce ad altri programmi la possibilità di trarre vantaggio dall'impiego di queste funzionalità. Moderno software operativo o di base è costituito da: o il nucleo= che gestisce la CPU o gestore della memoria o gestore di dispositivi I/O o file system= per l'archiviazione di dati o gestione della rete= che permette la comunicazione con altri calcolatori connessi alla rete o interprete di comandi le CPU associano alle proprie istruzioni dei livelli di privilegio, alcune possono essere eseguite solo da programmi che rientrano in una delle macchine virtuali che gestiscono il sistema operativo. Tempi di sistemi operativi sono: Linux, Windows, Android, Mac OS, IOS ecc.

GESTIONE DELLA CPU:

I primi calcolatori erano mono programmati, ossia erano in grado di mantenere in memoria centrale ed eseguire un solo programma alla volta. Successivamente venne introdotto il monitor e un sistema operativo in grado di ottimizzare l'avvio dei programmi. mediante il job control Language JCL, si poteva disporre di un job ossia un programma eseguito dal monitor per organizzare l'esecuzione di un certo numero di programmi. i calcolatori impiegati secondo mediante modalità vennero definiti sistemi Batch. Negli anni 60 per migliorare ulteriormente lo sfruttamento e della CPU, si è pensato di recuperare i tempi di inattività corrispondenti all'attesa per le operazioni asincrone. I calcolatori divennero quindi sistemi multi programmati, in grado cioè di tenere nella RAM più programmi alla volta. nacquero quindi molte applicazioni classificate in: Þ applicazioni I/O Boundàgeneralmente interattive che favoriscono lo spreco della risorsa si più

  1. il processo opera su ciascuna periferica in condizioni di device indipendence, impiega cioè i comandi di alto livello appropriati al tipo di periferica. il driveràfornisce al sistema operativo i dettagli operativi per gestire una periferica. Molti sistemi operativi presenti sul computer supportano il plug and play (PnP) , Quando il calcolatore rileva la presenza di una nuova periferica, è in grado di riconoscere il driver appropriato per essa, installarlo e configurarlo.

GESTIONE DEI FILE

Il FILE SYSTEM à è una componente del sistema operativo che si occupa della gestione del memorie di massa, al cui interno i dati sono organizzati in file. Spesso esso costruisce, all'interno della memoria di massa, una struttura logica gerarchica, ossia viene creata una cartella in un supporto di memoria denominata radice (root). Essa può contenere file o cartelle che a loro volta possono contenere file o cartelle dando quindi origine ad una struttura ad albero. Ogni file e ogni cartella sono poi identificati da un nome e da un pathname àdescrizione del percorso più breve per raggiungerli partendo dalla radice. Molti file system supportano la possibilità di sovrapporre alla struttura ad albero dei riferimenti (collegamenti, link) che consentono di simulare all'interno di una cartella, la presenza di un'altra cartella situata altrove. Per ogni file o cartella il file system deve anche memorizzare e gestire delle proprietà tra cui:

  • il formato
  • le dimensioni
  • data e ora di creazione
  • data e ora dell'ultima modifica
  • autorizzazioni varie Inoltre il file system deve anche consentire delle operazioni specifiche quali; creazione, lettura del contenuto, modifica del file, eliminazione, backup.

GESTIONE DELLA RETE

I moderni sistemi operativi hanno una componente importante il cui compito e la gestione della rete. Vengono definiti sistemi operativi di rete (NOS network operating system) proprio perché sono progettati con l'obbligo di avere la connessione del calcolatore alla rete. La gestione della rete deve garantire: I. la device indipendence grazie alla quale gli utenti e le applicazioni usufruiscono dai servizi disponibili in rete. II. la corretta gestione delle autorizzazioni all'accesso Vi sono diverse modalità di interazione tra utente e calcolatore:

  • interazione uomo-calcolatore localeàe l'interazione tradizionale senza l'impiego della connessione di rete
  • interazione uomo-calcolatore remotoàeffettuata tramite un'applicazione(CLIENT), l'utente interagisce con un'altra applicazione (SERVER)
  • interazione tra uomini mediata da calcolatoriàl'utente interagisce con un'altro utente che a sua volta impiega un client in esecuzione sul suo calcolatore. sono per esempio le chat.

INTERFACCIA CON L’UTENTE

L'interfaccia con l'utenteà è la componente del sistema operativo che gestisce direttamente l'interazione con l'utente. Essa consente all'utente di comunicare con il sistema operativo. All'inizio di una sessione di lavoro il sistema operativo deve identificare con certezza l'utente, mediante l'autenticazione, che intende accedere al calcolatore, al fine di: o garantire autorizzazioni a lui riservate per l'accesso delle risorse o personalizzare l'ambiente applicativo secondo le sue preferenze o fatturare all'utente il consumo delle risorse secondo le tariffe concordate L'autenticazione informatica può essere condotta mediante tre modalità:

  • dimostrazione di conoscenzaàchiedendo username e password
  • dimostrazione di possessoàl'utente deve dimostrare di possedere un oggetto fisico come una smart card
  • dimostrazione di caratteristiche fisicheàimpronte digitali Si possono identificare alcune figure di riferimento a cui il sistema operativo deve garantire delle autorizzazioni diverse: Þ amministratore di sistema (sistemista)= garantisce il funzionamento del calcolatore Þ operatore di sistema= sostituisce l'amministratore dietro una delega Þ programmatore= realizza le applicazioni Þ utente applicativo= colui che utilizza le applicazioni Nei sistemi operativi più vecchiàl'interazione avveniva mediante un'interfaccia a linee di comandi (CLI). Le prime applicazioni interattive offrivano all'utente un'interfaccia interattiva modale, In cui l'applicazione proponeva una serie di domande a cui l'utente dava delle risposte. successivamente iniziava la fase di elaborazione e visualizzazione del risultato. L'evoluzione portò allo sviluppo di applicazioni con interfaccia interattiva non modale àIn cui l'utente inserisce dei valori di input e seleziona il pulsante X per terminare l'applicazione. La tendenza attuale è fortemente orientata alle interfacce multimediali che si avvalgono di: § input; testo,grafica,suoni § output; testi, immagini, filmati, suoni.

LA VIRTUALIZZAZIONE

Virtualeàè usato in informatica per indicare un sistema che simula caratteristiche oh funzioni diverse da quelle reali. Realtà virtualeàespressione coniata negli anni 70 del secolo scorso, per indicare la simulazione della collocazione all'interno di un mondo diverso da quello in cui è realmente collocata. Essa è usata molto nei videogiochi.