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


appunti di informatica, Dispense di Sistemi Informatici

definizioni chiave di informatica

Tipologia: Dispense

2022/2023

Caricato il 01/06/2023

valentina-soddu-1
valentina-soddu-1 🇮🇹

3 documenti

1 / 38

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
Informatica modulo I - A.A. 2021/2022
CAPITOLO 1
CHE COS’È L’INFORMATICA?
L’informatica è l’insieme dei processi e delle tecnologie che rendono possibile la creazione, la
raccolta, l’elaborazione, l’immagazzinamento e la trasmissione dell’informazione con metodologie
e strumenti automatizzati e avanzati tecnologicamente.
Queste tecnologie hanno principalmente tre funzioni:
1. Elaborare dati per ottenere informazioni significative.
2. Memorizzare le informazioni elaborate per utilizzarle in combinazione con altre, come dati
di un nuovo processo di elaborazione.
3. Organizzare e gestire le informazioni in una nuova forma in modo da renderle più
comprensibili, più utili o più accattivanti.
HARDWARE E SOFTWARE
Il termine hardware indica la struttura fisica dei dispositivi, costituita in genere da componenti
elettronici che svolgono specifiche funzioni nel trattamento e nella trasmissione dell’informazione.
Per hardware sin intendono anche tutti quegli elementi che collegano tra loro i sistemi informativi
(cavi telefonici, apparecchi televisivi, etc.).
Per software si intende il livello logico, ossia l’insieme di istruzioni che consentono all’hardware di
svolgere i propri compiti.
CICLI DI ELABORAZIONE DELL’INFORMAZIONE
l’elaborazione delle informazioni avviene attraverso diverse fasi:
1. INPUT. La fase di input consiste nell’ immissione di dati nel computer. I dispositivi di input
più comuni sono la tastiera, lo scanner, il mouse, il microfono e la telecamera. I dati da
inserire possono essere testi, numeri, immagini o suoni.
2. ELABORAZIONE. Una volta inseriti nel computer i dati possono essere elaborati; ad esempio,
si può paragonare, classificare o sommare numeri, formattare un testo o creare immagini e
suoni.
3. OUTPUT. Per vedere (o ascoltare) il risultato dell’elaborazione sono necessari dei dispositivi
di output, come lo schermo, la stampante e gli altoparlanti. Le informazioni ottenute
possono anche essere sottoposte a un’ulteriore elaborazione, ad esempio per integrare i
suoni e le immagini in una presentazione multimediale.
4. MEMORIZAZZIONE. I dati e i programmi al momento non utilizzati vengono memorizzati su
appositi nastri o dischi in modo da poter essere recuperati in qualsiasi momento.
5. DISTIBUZIONE. I dati possono essere stampati e distribuiti, oppure trasmessi direttamente
da un computer al altro; un esempio è l’invio di documenti come allegati della posta
elettronica o attraverso un sito web.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26

Anteprima parziale del testo

Scarica appunti di informatica e più Dispense in PDF di Sistemi Informatici solo su Docsity!

Informatica modulo I - A.A. 2021/

CAPITOLO 1

CHE COS’È L’INFORMATICA?

L’informatica è l’insieme dei processi e delle tecnologie che rendono possibile la creazione, la raccolta, l’elaborazione, l’immagazzinamento e la trasmissione dell’informazione con metodologie e strumenti automatizzati e avanzati tecnologicamente. Queste tecnologie hanno principalmente tre funzioni:

  1. Elaborare dati per ottenere informazioni significative.
  2. Memorizzare le informazioni elaborate per utilizzarle in combinazione con altre, come dati di un nuovo processo di elaborazione.
  3. Organizzare e gestire le informazioni in una nuova forma in modo da renderle più comprensibili, più utili o più accattivanti.

HARDWARE E SOFTWARE

Il termine hardware indica la struttura fisica dei dispositivi, costituita in genere da componenti elettronici che svolgono specifiche funzioni nel trattamento e nella trasmissione dell’informazione. Per hardware sin intendono anche tutti quegli elementi che collegano tra loro i sistemi informativi (cavi telefonici, apparecchi televisivi, etc.). Per software si intende il livello logico, ossia l’insieme di istruzioni che consentono all’hardware di svolgere i propri compiti.

CICLI DI ELABORAZIONE DELL’INFORMAZIONE

l’elaborazione delle informazioni avviene attraverso diverse fasi:

  1. INPUT. La fase di input consiste nell’ immissione di dati nel computer. I dispositivi di input più comuni sono la tastiera, lo scanner, il mouse, il microfono e la telecamera. I dati da inserire possono essere testi, numeri, immagini o suoni.
  2. ELABORAZIONE. Una volta inseriti nel computer i dati possono essere elaborati; ad esempio, si può paragonare, classificare o sommare numeri, formattare un testo o creare immagini e suoni.
  3. OUTPUT. Per vedere (o ascoltare) il risultato dell’elaborazione sono necessari dei dispositivi di output, come lo schermo, la stampante e gli altoparlanti. Le informazioni ottenute possono anche essere sottoposte a un’ulteriore elaborazione, ad esempio per integrare i suoni e le immagini in una presentazione multimediale.
  4. MEMORIZAZZIONE. I dati e i programmi al momento non utilizzati vengono memorizzati su appositi nastri o dischi in modo da poter essere recuperati in qualsiasi momento.
  5. DISTIBUZIONE. I dati possono essere stampati e distribuiti, oppure trasmessi direttamente da un computer al altro; un esempio è l’invio di documenti come allegati della posta elettronica o attraverso un sito web.

Sintetizzando possiamo dire che l’elaborazione delle informazioni segue un ciclo composto da cinque fasi: immetti l’input, lo elabori, ottieni l’output, memorizzi sul computer e infine distribuisci. (Esempio: simulazione di un processo nell’industria aeronautica per verificare il corretto funzionamento degli aerei)

I SISTEMI INFORMATIVI

Quando si ha a che fare con le tecnologie dell’informazione ha a che fare con un sistema. Il computer è il centro nevralgico dei sistemi informativi moderni e può essere definito come un elaboratore elettronico digitale. Elaboratore in quanto macchina in grado di rappresentare ed elaborare dati in base ad una serie di istruzioni (programma). Elettronico perché utilizza componenti elettronici per elaborare le informazioni. Digitale indica che il computer elabora e memorizza le informazioni rappresentate tramite le due cifre (digit) della numerazione binaria (0, 1). Con queste due cifre possono essere rappresentati tutti i dati (numeri, parole, suoni, immagini, video). Un sistema è un insieme di parti correlate tra loro che operano congiuntamente al fine di svolgere una specifica funzione. I sistemi informativi sono composti da componenti, che a seconda dei punti di vista possono essere considerati a loro volta dei sottosistemi del sistema a cui appartengono.

SOFTWARE E DATI

Il computer può svolgere le funzioni che gli sono state assegnate solo grazie al software. Possiamo definire il software come una sequenza di informazioni precise e dettagliate grazie al quale il computer è in grado di elaborare dati senza l’intervento dell’utente (a meno che non sia previsto nel processo). I software (o programmi) possono essere divisi in due grandi categorie:

  • Sistemi operativi, che permettono di gestire le risorse hardware del computer e di installare ed eseguire i programmi applicativi (Windows o MacOS, Unix o Linux);
  • i programmi applicativi (o software applicativi), che consentono di svolgere una molteplicità di operazioni (stesura di un documento, gestione contabilità, manipolazione di immagini, accesso a siti web, etc.). I programmi applicativi si dividono in numerose categorie e tipologie, a seconda delle funzioni per cui sono stati creati. Le categorie più diffuse sono:
  • browser per navigare sul web e client per e-mail;
  • programmi di videoscrittura;
  • fogli elettronici;
  • programmi per la gestione di basi di dati;
  • programmi di grafica;
  • programmi per l’archiviazione e la riproduzione di musica digitalizzata.

CAPITOLO 2

L’ARCHITETTURA DEL COMPUTER E LA CPU

Tipi di elaboratori. I supercomputer sono i più potenti elaboratori disponibili. Hanno numerose applicazioni tecniche e scientifiche, ad esempio, l’elaborazione delle previsioni del tempo, progettazione di automobili, creazione di effetti speciali cinematografici, etc. La visualizzazione grafica di dati numerici spesso necessita di una notevole potenza di calcolo che può essere fornita solo da un supercomputer. Negli anni ’80 sembrava che questi enormi, potenti e costosissimi elaboratori avessero fatto il loro tempo e fossero destinati ad essere sostituiti da reti di calcolatori meno potenti, ma a metà degli anni ’ si è riaccesa la corsa alla costruzione del supercomputer più veloce e potente. Il primo supercomputer capace di eseguire un trilione di operazioni al secondo è stato sviluppato dalla Intel nel 1996, dotato di più di 7000 processori. I mainframe , ora noti come server , sono utilizzati nelle grandi aziende per la gestione della contabilità o dei magazzini. I supercomputer, i mainframe e i server sono in grado di elaborare i dati immessi da centinaia o perfino migliaia di utenti contemporaneamente. Questo è possibile grazie alla costruzione di reti di computer. I minicomputer , ora chiamati anch’essi server, sono meno potenti dei mainframe e possono essere di diverse dimensioni. I Personal Computer ( PC ) possono lavorare autonomamente o elaborare dati ricevuti da altri computer a cui sono connessi. I terminali , pur essendo simili ai PC, offrono delle prestazioni molto più limitate. Sono dotati solamente di uno schermo, una tastiera e dei componenti elettronici per comunicare col computer a cui sono connessi. Servono unicamente per inviare e ricevere informazioni, non sono in grado di elaborare dati, perciò sono detti terminali stupidi. Vi sono tuttavia anche dei terminali intelligenti , che hanno una limitata capacità di elaborazione. Gli ultimi nati sono i network computer e i network PC , un incrocio tra PC veri e propri e terminali. Funzionano come terminali perché ricevono dati e programmi da computer più potenti, ma sono in gradi di elaborarli autonomamente come i PC. Con la crescita delle reti telematiche, i mainframe e i minicomputer sono diventati parte integrante di un sistema più grande, in cui hanno il compito di fornire i dati richiesti dagli altri computer e di eseguire i programmi che controllano le comunicazioni all’interno della rete. Ecco il motivo del nome server, che però viene usato anche per i desktop e le workstation, dato che possono svolgere la funzione di “servire” le necessità degli altri computer. Allo stato attuale il termine server non dà alcuna indicazione su grandezza e potenza del computer.

TIPI DI ELABORATORI

Con l’invenzione del microprocessore, prodotto in serie e a basso costo, è stata possibile la diffusione di questi computer anche nelle nostre case e lo sviluppo di una varietà di modelli.

Desktop e workstation Il più diffuso è il desktop , progettato appunto per essere posizionato su una scrivania. Le workstation sono invece dei computer personali ad alto rendimento e di piccole dimensioni, utilizzati prevalentemente da ingegneri, scienziati e grafici. I notebook sono computer portatili leggeri e maneggevoli che funzionano grazie a batterie ricaricabili, ma possono anche essere attaccati ad una docking station che consente di aumentarne il rendimento. I più piccoli sono gli organizer , i tablet pc , i computer palmari e smartphone , i PDA (Personal Digital Assistant).

LE BASI DELL’INFORMATICA MODERNA

ANALOGICO VS DIGITALE

È molto importante fare una differenza tra dispositivo analogico (ovvero l’informazione è esplicita nel supporto) e digitale (implicita nella rappresentazione, dunque, serve una codifica e una decodifica). Un dispositivo analogico ha una codifica diretta ovvero io salgo sulla bilancia analogica e la lancetta della bilancia riesce a darmi il peso senza nessun’operazione semplicemente mi pesa e la lancetta si sposta in proporzione al peso senza nessun calcolo. Se invece utilizziamo un dispositivo digitale noi saliamo sulla bilancia e compaiono dei numeri, dunque la bilancia avrà al suo interno un sistema che in base al peso mi fa comparire i giusti numeri rispetto al mio peso. Dunque, la bilancia digitale ha bisogno di codificare il mio peso e poi decodificarlo per far comparire i numeri sul display. Esempio digitale: ipotizziamo che siamo dal salumiere noi prendiamo il numero e nel video si accendono i numeri. Per accendere i numeri ci sono delle sbarrette che si devono accendere e altre che non si devono accendere. Se si accendono tutte otteniamo un 8, se invece dobbiamo fare un sei da un otto chiaramente una sbarretta deve rimanere spenta. Per fare questo noi dobbiamo mandare dei comandi al calcolatore, ma dobbiamo farlo in un linguaggio semplice che sia quindi comprensibile per il calcolatore come, ad esempio, il linguaggio binario ovvero quello che si indica con 0 e 1. Queste due cifre indicano due cose diverse, ad esempio 1 indica acceso e 0 spento. Dunque, se vogliamo fare un 6 dobbiamo fare 1 per tutte le posizioni accese e 0 per la posizione spenta. I computer e gli altri strumenti digitali rappresentano tutti i numeri con il sistema binario. Dato che il sistema binario utilizza solo le cifre 0 e 1, le combinazioni di 0 e 1 possono essere rappresentate dalle condizioni acceso/spento, alto/basso, luce/buio, etc. Un esempio di codice digitale è il telegrafo. Il dispositivo digitale del computer è il transistor, dispositivo che invia e riceve segnali e può avere due stati: acceso o spento.

LA LEGGE DI MOORE

Nel 1965 Gordon Moore, uno dei fondatori della Intel, aveva previsto che il numero di transistor contenuti in un chip sarebbe raddoppiato ogni anno e mezzo, tesi che si è rivelata corretta.

binario. È molto importante dire che 0 e 1 non sono dei numeri ma bensì dei simboli, i bit sono dei simboli. IL BYTE Una sequenza di 8 bit viene chiamata byte. Il byte viene usato come unità di misura per indicare le dimensioni della memoria, la velocità di trasmissione e la potenza di un elaboratore. OPERAZIONI BOOLEANE All’ interno del linguaggio macchina troviamo delle operazioni che sono dette operazioni booleane che spiegano come fare una cosa piuttosto che un'altra. PRIMA OPERAZIONE BOOLEANA (AND) (congiunzione) A (sole giallo) B (mare blu) A and B 0 0 0 0 1 0 1 0 0 1 1 1 Il sole è giallo AND il mare è blu Mettiamo che bit 0 indica falso e bit 1 indica vero, per ottenere il valore vero in questo caso dobbiamo avere sia il sole giallo che il mare blu. Dunque, se in corrispondenza di A troviamo 0 il valore sarà falso, se invece troviamo 1 il valore sarà vero. AND vuole che entrambe le frasi siano vere quindi noi dobbiamo avere il valore 1 sia in A che in B SECONDA OPERAZIONE BOOLEANA (OR) (DISGIUNZIONE) A B A OR B 0 0 0 0 1 1 1 0 1 1 1 1 Il sole è giallo OR il mare è rosa Dunque, mettiamo che bit 0 indica falso e bit 1 indica vero, per ottenere il valore vero dobbiamo avere il contrasto quindi o è uno o è l’altro. OR vuole il contrasto quindi l’opposto, perciò, un valore vero e uno falso danno origine ad un valore vero. TERZA OPERAZIONE BOOLEANA (NOT) (NEGAZIONE) A NOT A 0 1 1 0

La negazione ha un solo ingresso quindi o ne ha o non ne ha. Dunque, A è falso allora non ne ha quindi è l’opposto di A. oppure A è vero allora non A è falso. Dunque, uno esclude l’altro. Tutte queste operazioni booleane vengono implementate dalle porte logiche che sono contenute nei calcolatori. CODICE ASCII (AMERICAN STANDARD CODE FOR INFORMATION INTERCHANGE) Le informazioni testuali sono rappresentate tramite un codice I ad ogni simbolo è assegnata una configurazione univoca di bit. Il codice ASCII usa 8 bit per rappresentare le informazioni ovvero 2^8 quindi 256 informazioni. Il codice ASCII è un codice abbastanza semplice perché appunto utilizza solo 8 bit per rappresentare le informazioni, mentre il codice UNICODE utilizza ad esempio 16 bit quindi 2^16 oppure l’ISO che ne utilizza 32 quindi 232. Dunque, più aumentano i bit più il linguaggio diventa complicato e più informazioni si possono rappresentare. CODICI E FILE Un file costituito da una sequenza di simboli codificati in ASCII o Unicode è detto file di testo. È importante distinguere tra I File di testo semplici che vengono elaborati da editor di testo (ad esempio, notepad). File di testo elaborati che vengono elaborati da word processor (ad esempio, Word). Entrambi sono costituiti da testo. Un file di testo semplice contiene una codifica standard carattere per carattere. Un file prodotto con un word processor può contenere codici proprietari (diversi da ASCII o Unicode). RAPPRESENTAZIONE DEI VALORI NUMERICI Per memorizzare valori esclusivamente numerici, i codici tipo ASCII non sono una soluzione efficiente. Assumiamo di voler memorizzare il valore 25. In ASCII avremo bisogno di 16 bit (sono due simboli) In più, il valore più grande memorizzabile sarebbe 99. Usando la notazione binaria, usando 16 bit si può memorizzare un numero da 0 a 65535! Tale notazione (o sue varianti) viene usata per archiviare dati numerici codificati. La notazione binaria è un modo per rappresentare i valori numerici utilizzando solo le cifre 0 e 1. RAPPRESENTAZIONE DELLE IMMAGINI Per rappresentare le immagini utilizziamo due categorie di tecniche 1 Tecniche bitmap (“mappa di bit”). 2 Tecniche vettoriali. Ogni pixel dell’immagine è formato da 8 bit ed è rappresentato come combinazione di 3 colori (rosso, verde e blu). Il termine bitmap è stato esteso fino a comprendere tutti i sistemi per cui le immagini sono codificate pixel per pixel: Fotografie in bianco e nero: ogni pixel è formato da 8 bit (per rappresentare le sfumature di grigio). Immagini a colori: ogni pixel è rappresentato da una combinazione di bit che ne indica l’aspetto.

  1. RAM (Random Access Memory, memoria ad accesso diretto) memoria di lettura/scrittura, volatile ad accesso diretto di lavoro e dinamica.
  2. ROM (Read Only Memory, memoria di sola lettura): Memoria di sola lettura I dispositivi di memorizzazione, Consentono di immagazzinare programmi e dati in modo persistente. Il bus Insieme di collegamenti dotati di clock, che permettono lo scambio di dati tra vari componenti del pc. Le porte sono delle Prese situate tipicamente sul retro del computer, Servono per connettere al computer le periferiche (tastiera, stampante, monitor, …) mediante le quali è possibile immettere e ricevere dati. Gli slot di espansione., Servono ad inserire le schede degli adattatori, che contengono una serie di componenti elettronici volti a potenziare o espandere le prestazioni del computer. L’unità centrale di elaborazione (Central Processing Unit, CPU) Controlla tutte le funzioni del computer, esegue le operazioni logico aritmetiche ed elabora i dati ricevuti. La CPU è composta da:
  • unità di controllo che esegue le istruzioni, coordina le attività del processore e controlla il flusso di informazioni con la memoria, (CU)
  • unità aritmetico logica che effettua le operazioni aritmetiche e logiche (ALU)
  • registri: dispositivi in grado di memorizzazione una word (un dato, un indirizzo della RAM COME FUNZIONA LA CPU IL CICLO MACCHINA Memoria e CPU collaborano durante il ciclo macchina. La CPU ha un clock interno che scandisce il suo ritmo di lavoro, Durante un ciclo di clock, la CPU esegue le seguenti operazioni:
  1. La CU preleva (fetch) l’istruzione successiva presente in memoria e la immagazzina al suo interno in una piccola area di memorizzazione (registro dell’istruzione, IR).
  2. La CU interpreta (decode) l’istruzione e trasferisce i dati a cui questa fa riferimento dalla memoria alla ALU.
  3. La ALU esegue (execute) l’operazione richiesta.
  4. I risultati dell’operazione sono immagazzinati (storing) in memoria, Oppure in un registro dell’ALU chiamato accumulatore La CU regola il funzionamento della CPU, invia segnali di controllo sul bus, decodifica le istruzioni e gestisce il trasferimento di dati da e verso la CPU. Un elaboratore rappresenta i dati attraverso numeri interi scritti utilizzando le cifre binarie. Un programma, per poter essere eseguito, deve risiedere nella RAM Quindi, un programma altro non è che una sequenza (ordinata) di numeri interi scritti in binario e memorizzati in celle della RAM. Ogni cella della RAM ha un indirizzo e memorizza una word.

PERIFERICHE DI INPUT

Le periferiche di input sono tutti quei dispositivi che consentono l'inserimento di dati e istruzioni nel computer (dati di input) • tastiera (keyboard) • mouse/trackball/touchpad PERIFERICHE DI OUTPUT Le periferiche di output sono i dispositivi che consentono la comunicazione dei dati elaborati all'esterno (dati di output) • monitor(display,video,schermo) • proiettore PERIFERICHE DI INPUT E OUTPUT Le periferiche di input/output sono tutti i dispositivi che consentono sia l'inserimento dei dati di input, sia la visualizzazione dei dati di output • touchscreen • cuffia-microfono SOFTWARE E SISTEMI OPERATIVI Uno strato senza il quale non riusciremo ad utilizzare il calcolatore è il SOFTWARE: è un programma, o un insieme di programmi, in grado di funzionare su un qualsiasi dispositivo per il calcolo automatico. Un programma (o applicazione) è una sequenza ordinata di istruzioni (espresse secondo un insieme di regole noto a priori) che elaborano i dati di input per produrre dei dati di output. Avremo un’interazione di molto alto livello e più comprensibile dal nostro calcolatore che facendo i passaggi di rappresentazione ci renderà in grado di aprire un’applicazione e risolvere il problema che ci poniamo (somma di due numeri = calcolatrice). Due categorie principali:

  • Software applicativo: Ne fanno parte i programmi per l’esecuzione di compiti particolari, (Esempio: fogli elettronici, basi di dati, giochi), è qualcosa che a noi serve (WORD, per scrivere), ma di cui il calcolatore può fare a meno;
  • Software di sistema: Fornisce l’ambiente in cui risiede il software applicativo, ha vari compiti e il software operativo è uno di questi. Ci permette di far funzionare il calcolatore e utilizzarlo in maniera ottimale per tutta una serie di compiti. È essenziale, senza questo un calcolatore moderno non riusciremo a farlo partire e utilizzarlo; il software di sistema si divide in due categorie:
  1. Il sistema operativo stesso;
  2. Software di utilità: software che ci permettono di sfruttare o ampliare alcune caratteristiche del nostro sistema (finestrella della gestione delle attività che ci da un supporto per il monitoraggio, l’utilità che ci permette di comprimere ed estrarre i file), sono software che molte volte non servono all’utente ma servono più per specificità del sistema, non sono fondamentali per il sistema operativo stesso. Cosa è un sistema operativo? Un computer moderno è composto da tanti dispositivi di varia natura ognuno con un suo scopo specifico, in primis quelli necessari a far funzionare una macchina (memoria centrale, disco..) più quelli che ci possiamo agganciare tramite gli input/output (memoria esterna, mouse, stampanti e scanner..) che per essere utilizzati con profitto devono essere coordinati e gestiti in qualche modo: supponiamo di avere 2 PDF e di volerli stampare, 100 pagine ciascuna, noi tipicamente li apriamo e mandiamo in stampa, e generalmente l’operazione non inizia prima di 10 secondi e soprattutto la stampante, per quanto formidabile sia, non riesce in 10 secondi

di attaccare il disco ad un altro calcolatore e funziona tutto, invece così non è, a meno che non prendiamo una macchina che ha la stessa circuiteria identica sulla scheda madre (processore e memoria) su cui io avevo installato quel sistema. Se io prendo i file word funziona, il sistema operativo no, perché ha bisogno di questo strato (FIREWALL) per comunicare non solo con le stampanti, ma con tutto il resto dell’ HARDWER che c’è all’interno ed è questo il motivo per cui la procedura di installazione impiega tempo. Funzionalità e componenti principali (dal punto di vista di noi utenti) di un sistema operativo. Il compito principale del sistema operativo è quello di far funzionare la macchina e per questo servono dei programmi. Affinché questi programmi possano girare devono essere memorizzati da qualche parte (tipicamente una memoria di massa), e in parte poi portate alla memoria primaria affinché la CPU le elabori. Di questa operazione si occupa il sistema operativo. Questa operazione è molto più articolata di quanto può sembrare rispetto a questa semplice figura, perché devo tener traccia di un sacco di cose. Il programma sta nella memoria di massa, dove avrò una suddivisione. FUNZIONI PRINCIPALI:

  • Gestire le risorse dell’elaboratore;
  • Controlla che le operazioni vengano eseguite in modo rapido e regolare;
  • Coordina la comunicazione tra i vari componenti del computer;
  • Determina dove vanno memorizzati dati e programmi;
  • Gestisce l’interazione tra utente e programmi applicativi;
  • Protegge le risorse del calcolatore (sia a livello hardwer, quindi sovraintende il monitoraggio delle temperature interne e funzionamento delle ventole; sia a livello softwar, quindi utenti e le relative password, scritture e letture). Quando abbiamo parlato dell’architettura dei calcolatori e abbiamo visto la fattispecie della memoria primaria, ne abbiamo menzionato due: quella coinvolta nel ciclo di elaborazione dove andiamo a caricare i dati e i programmi da processare, RAM; e anche la ROM (memoria di sola lettura), che riesce a sopravvivere allo spegnimento del calcolatore perché dentro c’è una pila da orologio. La RO contiene il BIOS (Basic Input Output System), che è fondamentale per far partire il calcolatore. BASIC perché è un piccolo programma registrato in modo permanente che fa pochissime cose:
  • Interpreta i dati immessi dalla tastiera;
  • Visualizza i caratteri dello schermo;
  • Gestisce le comunicazioni che passano attraverso le porte del computer;
  • Controlla l’integrità del sistema ad ogni avvio Vari componenti di un sistema operativo che ci servono per capire quali sono le diverse funzionalità. Gli agenti sono sempre utenti e programmi applicativi (chi può interagire); interagiscono con i vari tipi di hardwer (processore, memorie etc.). l’unico strato con cui noi o i programmi applicativi si interfacciano possono essere Tool di sistema o librerie softwer che sono quelle che proprio

forniscono l’ambiente di esecuzione del programma applicativo. Poi ci sono altri due strati con cui noi non abbiamo niente a che fare: interfacce di sistema; quindi, non quelle grafiche con cui invece interagiamo; e il nucleo (kernel). Tutto ciò parlerà con i processori, le memorie e le periferiche. Tutto l’insieme di operazioni sono permesse dai sistemi operativi in maniera tale che avvengano in contemporanea (scrivo, ascolto musica). I programmi a basso livello sono delle entità piuttosto sequenziali (ho le istruzioni). Se però voglio sfruttare il fatto che il processore moderno (c’è scritto sul volantino quando compri il pc quanti miliardi di operazioni può svolgere contemporaneamente) ho bisogno di un’entità diversa dal programma (entità statica), ho bisogno di un processo: attività controllata da un programma che si svolge su un processore. I processi rappresentano il modo in cui un programma viene eseguito nel tempo (entità dinamica). A ciascuna programma possono corrispondere uno o più processi. I SISTEMI MULTITASKING I moderni SISTEMA OPERATIVO possono svolgere più compiti contemporaneamente come Es: scaricare un file da Internet e allo stesso tempo usare un applicativo. Il tempo di lavoro della CPU è suddiviso tra i vari programmi in esecuzione, parliamo di mukltitasking quando parliamo di processi tra applicazioni diverse. Il controllo della CPU è scambiato tra diversi processi Multitasking preempitive (con prelazione): l’accesso alla CPU è controllato dal SISTEMA OPERATIVO che gestisce una lista di processi con diverse priorità I sistemi multithreading I programmi elaborano dati e comandi in ordine sequenziale, parliamo di multithreading quando parliamo di processi nella stessa applicazione. Solo quando un’operazione è portata a termine se ne può iniziare un’altra, Se il SO è multithreading i programmi applicativi possono eseguire più operazioni Es: programma di videoscrittura può leggere i dati immessi dall’utente tramite tastiera e allo stesso tempo visualizzarli. Praticamente, è il multitasking applicato al singolo programma. ALTRE FUNZIONI DEL SISTEMA OPERATIVO Il SO si occupa anche di: Controllare continuamente il sistema e, in caso di disfunzioni, avvertire l’utente con un messaggio di errore, Assegnare a ogni programma uno spazio proprio, Se un’applicazione presenta un problema, non impatta sul funzionamento delle altre e infine Regola l’alimentazione di energia del sistema. IL FILE SYSTEM È un Meccanismo fornito dal Sistema Operativo che regola l'organizzazione fisica e logica dei dati su un qualunque supporto di memoria secondaria. Compiti del file system : Astrarre la diversa complessità di utilizzo dei diversi supporti di memoria secondaria e fornire un'interfaccia comune per tali supporti che sia efficiente e conveniente da usare. Il file system permette la visualizzazione dei dati utilizzando il concetto di file e directory (cartella).

Il file system mette a disposizione dell'utente una serie di operazioni che è possibile eseguire sulle directory. In generale, è sicuramente possibile effettuare le seguenti operazioni: Creazione, Cancellazione, accesso in sola lettura, accesso in lettura e scrittura, Rinomi nazione copia/spostamento e condivisione/protezione. Una directory non può̀ contenere due o più file con lo stesso nome (estensione compresa), una directory non può̀ contenere due o più directory con lo stesso nome perché le directory sono organizzate logicamente utilizzando diverse strutture gerarchiche:

  1. windows Ad albero (rovesciato) dove la directory radice dell'albero è costituita dall'unità di memoria di massa.
  2. Mac a graffo diretto aciclico tipicamente qui la directory radice dell'albero è costituita dall'insieme di tutte le unità di memoria di massa. Una differenza tra i due è sicuramente che nei Mac non abbiamo più una lettera per ogni dispositivo ma ne abbiamo una unica per tutto. Un’altra differenza sta sicuramente nel fatto che mentre nell’organizzazione del file sistem di windows un “figlio” può avere un solo “padre” nel Mac un “figlio” può avere più di un “padre”. PERCORSO ASSOLUTO DI UN FILE È il percorso che bisogna seguire nel file system per arrivare al file partendo dalla directory radice. permette di identificare il file all'interno del file system. PERCORSO RELATIVO DI UN FILE È il percorso che bisogna seguire nel file system per arrivare al file partendo da una directory prefissata. permette di identificare il file all'interno del file system rispetto alla directory prefissata. LE INTERFACCE UTENTE Sono i meccanismi con cui avviene l’interazione tra noi e il calcolatore. Per poter eseguire le azioni richieste da un utente, un sistema operativo deve poter comunicare con l’utente stesso. La parte di sistema operativo che definisce l'interfaccia tra il sistema operativo i suoi utenti è chiamata SHELL (in italiano Interprete dei comandi). Compito della SHELL è sicuramente quello di comunicare con gli utenti di un computer. Le SHELL moderne comunicano tramite GUI quindi l’interfaccia con icone, finestre e menù. Le interfacce grafiche (GUI) hanno elementi comuni, in modo da aiutare l'utente a muoversi in ogni ambiente con familiarità. Esistono vari tipi di interfacce: Interfacce grafiche (GUI), Interfacce a stilo ovvero un piccolo puntale per dare comandi su uno schermo sensibile • Interfacce touchscreen ovvero le Interazioni tramite contatto con le dita e le interfacce convenzionali ovvero quelle tramite interazione vocale. INTERFACCIA UOMO-MACCHINA Una interfaccia uomo-macchina, IUM, (in inglese Human-Machine Interface, HMI) si riferisce allo strato che separa un essere umano che sta utilizzando una macchina dalla macchina stessa. Abbiamo diversi tipi di IUM:
  1. Interfaccia a riga di comando (Command Line Interface, CLI) ➢ interazione di tipo testuale tra utente ed elaboratore ➢ l'utente impartisce comandi testuali in input, solitamente mediante tastiera, e riceve risposte testuali in output dall'elaboratore, solitamente mediante display
  2. Interfaccia grafica utente (Graphical User Interface, GUI) ➢ interazione per mezzo di oggetti grafici convenzionali. Nelle interfacce troviamo sicuramente ●Windows (finestre) ➢ programmi in esecuzione ● Icons (icone) ➢ risorse a disposizione ● Menus (menu) ➢ comandi disponibili ● Pointers (puntatori) ➢ permette l'interazione tra l'utente e le finestre, le icone e i menù. Nei sistemi operativi moderni vengono utilizzati anche altri componenti grafici detti widget, come ad esempio: Widget di comando, widget di dialogo, widget di input, widget di navigazione e widget di outpot.

LINGUAGGI DI PROGRAMMAZIONE

È costituito da: Un vocabolario. Un insieme di regole sintattiche che Specifica come comporre istruzioni ben formate, Una semantica

  • Associa un “significato” alle istruzioni ben formate.
  • Esplicita l’azione denotata da ciascuna istruzione. Rispetto ad una qualsiasi lingua parlata da esseri umani, un linguaggio di programmazione è molto più semplice, perché la sua sintassi è molto semplice. La teoria dei linguaggi formali fornisce una classificazione dei linguaggi in base alla loro “semplicità”. Linguaggi di programmazione le cui istruzioni corrispondono ad azioni elementari. Richiedono uno sforzo di codifica maggiore da parte di un programmatore. Linguaggi di programmazione le cui istruzioni corrispondono ad azioni elementari. Richiedono uno sforzo di codifica maggiore da parte di un programmatore:
  • Il processore è in grado di riconoscere (e quindi di eseguire) solo programmi scritti in un proprio linguaggio di basso livello (linguaggio macchina).
  • Ogni modello di processore (AMD, Pentium, Motorola, PowerPC) ha un proprio linguaggio macchina diverso da quello degli altri processori. Linguaggi di programmazione alle cui istruzioni corrisponde un insieme di azioni articolate. Richiedono uno sforzo di codifica inferiore da parte di un programmatore:
  • Un programma scritto in un linguaggio diverso dal linguaggio macchina deve essere quindi tradotto nel linguaggio che il processore sa riconoscere;
  • I soggetti preposti a questa traduzione sono a loro volta dei programmi (interpreti e compilatori). ESEMPIO: Il linguaggio L1 mette a disposizione i comandi:

diverso in base alla tipologia delle variabili. I dati possono essere di tipo semplice o di tipo strutturato:

  • Tipo semplice Hanno un solo valore. Tipi comuni:
  • Intero, ad esempio: - 158, 0, 32;
  • Reale, ad esempio: 1.414213562373, - 2.19, 1.00;
  • Logico: vero, falso;
  • Testo, ad esempio: “a”, “pippo”, “Mario Rossi”, “Antonio Bianchi”.
  • Tipo strutturato Possono contenere più valori:
  • Vettori (array) e matrici Strutture uniformi: hanno più valori dello stesso tipo Esempio: vettore di interi [2,5,7,3,12,43]
  • Record: Strutture non uniformi: hanno più valori non necessariamente dello stesso tipo. cognome Rossi nome Mario matricola 656565 ISTRUZIONI Tre categorie:
  • Ingresso e uscita (lettura e scrittura): Permettono di acquisire dati e di presentare risultati Es. READ A: “acquisisci un dato da tastiera e mettilo nel contenitore a”; PRINT “la media dei valori dati in ingresso è..” media: “stampa il contenuto di media proceduto da un commento”;
  • Aritmetico – logiche (assegnamento): Modificano lo stato di memoria, cioè i valori delle variabili. CONTENITORE= ESPRESSIONE: metti ESPRESSIONE IN CONTENITORE (a= b+3); ESPRESSIONE: una costante, una variabile, un’espressione vera e propria, una funzione. CONTENITORE: nome di una variabile. L’esecutore valuta l’ESPRESSIONE e mette il valore così calcolato in CONTENITORE, sostituendo il valore precedente.
  • Controllo (selezione, iterazione). Le ESPRESSIONI aritmetiche esprimono calcoli numerici:
  • Somma, sottrazione, prodotto, divisione;
  • Elevamento a potenza, radice, logaritmo, esponenziale, ecc;
  • Esempio: b^2 + 4 * a * c Le espressioni sui caratteri modificano parole e testi:
  • Concatenazione;
  • Esempio: auto&mobile (risultato= automobile) Le espressioni logiche (o booleane) esprimono calcoli logici e possono quindi assumere solo i valori vero o falso:
  • Operatori logici relazionali (confronto tra i due valori) X < y (x + 5) == y OPERAZIONI BOOLEANI AND, OR, NOT (x < y) AND (y < z) Un valore booleano (vero, falso) è rappresentabile con un bit (convenzionalmente si assegna 1 a vero, 0 a falso). Le espressioni di tipo booleano usate nelle ISTRUZIONI DI CONTROLLO, ci permettono di prendere delle decisioni: Le istruzioni di controllo permettono di modificare il flusso di esecuzione delle istruzioni all’interno di un programma:
  • Selezione: if, case, ...
  • Iterazione: while, repeat, for Si basano sull’uso di espressioni booleane: Esempio: se x > 0, calcola la radice quadrata di x

IL LINGUAGGIO SIMPLE

Questo linguaggio ci servirà quando andremo a utilizzare il foglio di calcolo (excel) I concetti sono di natura molto astratta. Concetto di programmazione (vedi prime lezioni, esempio quando abbiamo parlato dell’architettura del calcolatore: sequenza di istruzioni, ognuna con un determinato scopo, che aveva un determinato flusso). Un calcolatore, per eseguire compiti specifici, necessita di un programma. Un programma è una sequenza di istruzioni (paradigma imperativo). Un linguaggio di programmazione definisce in maniera formale:

  • La sintassi delle istruzioni