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 all'informatica: Storia, componenti e software, Sintesi del corso di Fondamenti di informatica

Riassunto dei primi due capitoli del libro - hardware e software

Tipologia: Sintesi del corso

2017/2018

Caricato il 04/04/2018

s.scassa
s.scassa 🇮🇹

1 documento

1 / 6

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Marco Lazzari – INFORMATICA UMANISTICA
CAPITOLO 1- FONDAMENTI DI INFORMATICA E HARDWARE
1. INFORMATICA Informatica deriva dal francese, informatique, ed è una disciplina tecnico scientifica che si
occupa della progettazione o della costruzione di macchine in grado di trattare, o elaborare in modo automatico
l’informazione. Primo degli strumenti è il calcolatore elettronico. Si tratta di elaboratori automatici, in grado di
compiere autonomamente attività di elaborazione dell’informazione e di garantire almeno la riduzione del tempo
di elaborazione, maggiore affidabilità, liberazione da incombenze noiose, più facile impiego di elaborazioni che
quando fatte dall’uomo richiedono competenze poco comuni.
Calcolatore/elaboratore inglese, computer computer science informatica/tecnologia dell’informazione (IT)
INFORMAZIONE: il termine assume significati e valenze diverse a seconda del contesto. Nell’ambito
dell’informatica e delle discipline a essa collegate è importante collegare a questo termine, il significato di dato
e conoscenza. Un DATO è un insieme di simboli tracciati su un supporto fisico che in qualche modo rappresenta
una proprietà di un oggetto nel mondo reale senza però contenere riferimenti alla proprietà stessa. Si può parlare
di CONOSCENZA quando si disponga di regole che permettono di tratte vantaggio da una informazione.
Per comunicare l’uomo ha sviluppato i Linguaggi Naturali. Una loro caratteristica è rappresentata dalla loro
ambiguità. Cioè che qualsiasi costrutto formulato da tali linguaggi è polisemico, cioè con piu significati. Per
comunicare con un calcolatore l’ambiguità rappresenta un grosso problema. si sviluppano i linguaggi formali
che sono impiegati negli ambiti in cui si deve evitare l’ambiguità. In un linguaggio formale bisogna individuare
un alfabeto formale, fatto da un elenco finito di simboli, e definire una grammatica formale, cioè un insieme di
regole che specifichino come i simboli dell’alfabeto possano essere combinati fra loro.
L’informazione è rappresentata da dati che a loro volta rappresentano simboli. L’informazione può essere
codificata con simboli e modalità diverse. Nei calcolatori ogni info è codificata in Bit (binary digit “cifra
binaria). Un alfabeto ridotto che contiene sono due simboli: 0, 1. L’adozione dell’alfabeto binario nella codifica
dell’informazione nei calcolatori è determinata dalla semplicità con cui i suoi simboli possono essere
rappresentati da dispositivi bistabili. Se un bit può assumere due configurazioni possibili, 0 e 1, quando si
considerano tutte le sequenze diverse che è possibile realizzare con 2 o piu bit si ottiene: n bit 2n sequenze
possibili. Si definisce byte una sequenza di 8 bit.
Gli stessi prefissi dei multipli del metro nel sistema internazionale, sono usati per esprimere i multipli del bit o
del byte con una differenza: nel SI i multipli sono declinati sulle potenze di 10 (103, 106..), in informatica i
multipli vengono declinate sulle potenze del 2 ( 210 220 230…). Un Kilobit, Kb indica pertanto 210 bit, metre un
Gigabyte, GB indica 230 byte. Multipli : kilo, mega, giga, tera,.. rispettive potenze: 210, 220, 230, 240,… nel SI :
103,106, 109,1012
Con le espressioni elaborazione dell’info o trattamento dell’info si indica qualsiasi attività condotta
sull’informazione stessa. Sono previsti i seguenti passi: l’info viene codificata sotto forma di dati, il supporto
viene sottoposto a una trasformazione fisica che genera nuovi dati, i passi generati dal passo precedente vengono
decodificati e apportano nuova info. L’info in ingresso all’elaborazione è detta input, mentre quella prodotta in
uscita è l’output. L’algoritmo serve per fornire a un esecutore le istruzioni che gli consentono di operare tale
trasformazione in modo autonomo e automatico. I linguaggi di programmazione sono linguaggi formali
progettati per descrivere algoritmi in modo tale che possano essere eseguiti da un moderno calcolatore. Ci sono
tre tipo di dispositivi per elaborare l’info: i sistemi manuali( che forniscono una codifica di dati ma affidano
all’uomo l’esecuzione delle trasformazioni fisiche su di essi; i sistemi semi automatici rigidi che sono in grado di
operare singole trasformazioni fisiche su dati, ma richiedono il continuo controllo dell’uomo; i sistemi
automatici flessibili, come il calcolatore, che dispongono di una memoria all’interno del quale sono rappresentati
i dati e le istruzioni, nonché una codifica esplicita delle trasformazioni fisiche da operare sui dati stessi.
EVOLUZIONE DEI SISTEMI PER L’ELABORAZIONE DELL’INFO: sin dal 2000 a C si ha notizia dell’uso
dell’abaco (sistema di calcolo manuale basato su una rappresentazione posizionale). Nel XVII secolo William
Outhred realizzò il primo regolo calcolatore, pochi anni dopo Blaise Pascal progettò e realizzò la Pascalina, una
calcolatrice meccanica, nello stesso periodo Charles Babbage fu il primo a introdurre il concetto di calcolatore
programmabile, progettà l’Analytical engine, una macchina in grado di operare in input e output su schede
pf3
pf4
pf5

Anteprima parziale del testo

Scarica Introduzione all'informatica: Storia, componenti e software e più Sintesi del corso in PDF di Fondamenti di informatica solo su Docsity!

Marco Lazzari – INFORMATICA UMANISTICA

CAPITOLO 1- FONDAMENTI DI INFORMATICA E HARDWARE

1. INFORMATICA Informatica deriva dal francese, informatique, ed è una disciplina tecnico scientifica che si occupa della progettazione o della costruzione di macchine in grado di trattare, o elaborare in modo automatico l’informazione. Primo degli strumenti è il calcolatore elettronico. Si tratta di elaboratori automatici, in grado di compiere autonomamente attività di elaborazione dell’informazione e di garantire almeno la riduzione del tempo di elaborazione, maggiore affidabilità, liberazione da incombenze noiose, più facile impiego di elaborazioni che quando fatte dall’uomo richiedono competenze poco comuni. Calcolatore/elaboratore inglese, computer computer science informatica/tecnologia dell’informazione (IT) INFORMAZIONE: il termine assume significati e valenze diverse a seconda del contesto. Nell’ambito dell’informatica e delle discipline a essa collegate è importante collegare a questo termine, il significato di dato e conoscenza. Un DATO è un insieme di simboli tracciati su un supporto fisico che in qualche modo rappresenta una proprietà di un oggetto nel mondo reale senza però contenere riferimenti alla proprietà stessa. Si può parlare di CONOSCENZA quando si disponga di regole che permettono di tratte vantaggio da una informazione. Per comunicare l’uomo ha sviluppato i Linguaggi Naturali. Una loro caratteristica è rappresentata dalla loro ambiguità. Cioè che qualsiasi costrutto formulato da tali linguaggi è polisemico, cioè con piu significati. Per comunicare con un calcolatore l’ambiguità rappresenta un grosso problema. si sviluppano i linguaggi formali che sono impiegati negli ambiti in cui si deve evitare l’ambiguità. In un linguaggio formale bisogna individuare un alfabeto formale, fatto da un elenco finito di simboli, e definire una grammatica formale, cioè un insieme di regole che specifichino come i simboli dell’alfabeto possano essere combinati fra loro. L’informazione è rappresentata da dati che a loro volta rappresentano simboli. L’informazione può essere codificata con simboli e modalità diverse. Nei calcolatori ogni info è codificata in Bit (binary digit “cifra binaria). Un alfabeto ridotto che contiene sono due simboli: 0, 1. L’adozione dell’alfabeto binario nella codifica dell’informazione nei calcolatori è determinata dalla semplicità con cui i suoi simboli possono essere rappresentati da dispositivi bistabili. Se un bit può assumere due configurazioni possibili, 0 e 1, quando si considerano tutte le sequenze diverse che è possibile realizzare con 2 o piu bit si ottiene: n bit 2 n^ sequenze possibili. Si definisce byte una sequenza di 8 bit.

Gli stessi prefissi dei multipli del metro nel sistema internazionale, sono usati per esprimere i multipli del bit o del byte con una differenza: nel SI i multipli sono declinati sulle potenze di 10 (10 3 , 10^6 ..), in informatica i multipli vengono declinate sulle potenze del 2 ( 2 10 2 20 2 30 …). Un Kilobit, Kb indica pertanto 2^10 bit, metre un Gigabyte, GB indica 2 30 byte. Multipli : kilo, mega, giga, tera,.. rispettive potenze: 2 10 , 2^20 , 2^30 , 2^40 ,… nel SI : 10 3 ,10 6 , 10^9 ,10^12 …

Con le espressioni elaborazione dell’info o trattamento dell’info si indica qualsiasi attività condotta sull’informazione stessa. Sono previsti i seguenti passi: l’info viene codificata sotto forma di dati, il supporto viene sottoposto a una trasformazione fisica che genera nuovi dati, i passi generati dal passo precedente vengono decodificati e apportano nuova info. L’info in ingresso all’elaborazione è detta input, mentre quella prodotta in uscita è l’output. L’algoritmo serve per fornire a un esecutore le istruzioni che gli consentono di operare tale trasformazione in modo autonomo e automatico. I linguaggi di programmazione sono linguaggi formali progettati per descrivere algoritmi in modo tale che possano essere eseguiti da un moderno calcolatore. Ci sono tre tipo di dispositivi per elaborare l’info: i sistemi manuali( che forniscono una codifica di dati ma affidano all’uomo l’esecuzione delle trasformazioni fisiche su di essi; i sistemi semi automatici rigidi che sono in grado di operare singole trasformazioni fisiche su dati, ma richiedono il continuo controllo dell’uomo; i sistemi automatici flessibili, come il calcolatore, che dispongono di una memoria all’interno del quale sono rappresentati i dati e le istruzioni, nonché una codifica esplicita delle trasformazioni fisiche da operare sui dati stessi.

EVOLUZIONE DEI SISTEMI PER L’ELABORAZIONE DELL’INFO: sin dal 2000 a C si ha notizia dell’uso dell’abaco (sistema di calcolo manuale basato su una rappresentazione posizionale). Nel XVII secolo William Outhred realizzò il primo regolo calcolatore, pochi anni dopo Blaise Pascal progettò e realizzò la Pascalina, una calcolatrice meccanica, nello stesso periodo Charles Babbage fu il primo a introdurre il concetto di calcolatore programmabile, progettà l’Analytical engine, una macchina in grado di operare in input e output su schede

perforate dotata di una memoria che poteva contenere1000 numeri di 50 cifre decimali ciascuno. Pochi anni dopo Ada King scrisse un programma che avrebbe consentito all’analytical engie di calcolare i numero dibernulli (prima programmatrice della storia). Con la 2^GM ci fu una grande spinta per lo sviluppo della ricerca nell’informatica. 1936 e 1941 Konrad Zuse : primi prototipi di calcolatore basati su rete elettromagnetici; 1943 Tommy Flowers primo calcolatore completamente elettronico: colussus; tra 1943 e 1945 ENIAC , POI EDVAC. Anni ’50 i transitor disponibili sul mercato; anni ’60 circuiti integrati microprocessori;…

Nel 1944 John Vonn Neumann sviluppa quella che è chiamata l’architettura di von neumann che divenne il riferimento per la quasi totalità dei calcolatori digitali progettati negli anni successivi fino ad oggi. Secondo questo apparato il calcolatore risulta composto da: il processore (CPU) che legge dalla memoria le istruzioni e le esegue operando trasformazioni sui dati; la memoria: un insieme di unità elementari di memorizzazione chiamate celle ciascuna delle quali può contenere un dato o un’istruzione ed è identificata da un indirizzo numerico;l’interfaccia che può essere di input o output e gestisce l’interazione con l’ambiente esterno collegandosi con le periferiche ovvero i dispositivi I/O; il bus cioè un canale ìdi comunicazione che gestisce lo scambio di informazioni tra gli altri sottoinsiemi. Un difetto noto come collo di bottiglia di von neumann è che una CPU moderna è in grado di elaborare dati con una velocità molto più levata rispetto a quella con cui il bus è in grado di trasferirli.

Software(SW ) è considerata la componente morbida e si riferisce alle istruzioni codificate all’interno della memoria per essere eseguite dall’hardware. Hardware(HW) è la componente dura, cioè costituita da tutte le parti tangibili, meccaniche elettriche etc. il software è costituito dai programmi che descrivono all’hardware gli algoritmi da seguire nelle sue elaborazioni.

2. STRUTTURA DEL CALCOLATORE Come esempio della struttura di un calcolatore moderno prendiamo quella del pc personal computer. Prescindendo dalle periferiche di I/O (tastiera mouse video stampante etc) l’unità centrale di un pc è costituita da una scatola metallica detta chassis o case, dotata di ventole, all’interno della quale c’è un alimentatore. All’interno della chassis è ancorata una scheda madre cioè una piastra di materiale plastico che funge da struttura portante per il calcolatore, grazie alla presenza di alloggiamenti (slot) per il montaggio degli altri componenti (CPU memoria, connettori per le periferiche..). su un apposito alloggiamento (lo zoccolo) della scheda madre è installato un microprocessore mentre su altre slot sono collegate una o piu schede di memoria centrale (RAM). Numerosi altri slot consentono l’installazione delle schede di espansione.

CLASSIFICAZIONE DEI CALCOLATORI: si possono differenziare per: la velocità; la capacità di archiviazione dei dati; l’affidabilità; la sicurezza; la dotazione di periferiche; la capacità di connettersi; le dimensioni; la modularità (attitudine a consentire la sostituzione di suoi componenti con altri grazie alla standardizzazione delle interfacce); la scalabilità (attitudine a consentire la sostituzione dei suoi componenti con il fine di migliorarlo); la semplicità dell’interazione da parte dell’utente; la dotazione SW; il prezzo.

Tanti tipi diversi di calcolatori. 5 categorie approssimative: *PERSONAL COMPUTER (PC) apparizione sul mercato negli anni ’70 ed è oggi il calcolatore più comune. Adatto all’uso da parte di un singolo utente (calcolatore mono-utente). Apprezzato per l’uso domestico (home computer). Diversi tipo per la forma dell’unità centrale di un PC: desktop; tower; small form factor. *LAPTOP è un pc progettato per la mobilità. Con riferimento alle sue dimensioni: notebook, subnotebook, netbook, tablet pc. * un PDA noto anche come hendheld pc, palmtop pc o pocket pc. Es smartphone. *una WORKSTATION è simile a un pc ma presenta una maggiore velocità della cpu nella capacità di memoria e nella qualità grafica di output.

PROCESSORE : CPU compito: eseguire istruzione codificate in binario all’interno della memoria centrale, andando cosi a modificare dati codificati in binario all’interno della memoria centrale stessa. La CPU tramite il bus legge o scrive in una cella di memoria specificandone l’indirizzo. Per lo svolgimento delle sue attività, si avvale di registri, piccole unità di memorizzazione interne a essa e caratterizzate da una notevole velocità di lettura/scrittura. La CPU continua a iterare in un ciclo composto di 4 attività: lettura di memoria (fetch), la decodifica, l’esecuzione e la scrittura. Nella fase di lettura la cpu legge un’istruzione dalla memoria centrale e la memorizza nel registro (IR). Il rispetto del corretto ordine di esecuzione è garantito da un altro registro, il PROGRAM COUNTER (PC). Il linguaggio macchina di ogni cpu prevede anche istruzioni salto (jump) che modificano il valore del program counter per consentire di modificare il flusso di esecuzione. All’interno del processore c’è un particolare dispositivo detto clock che, generando un impulso elettrico con frequenza regolare,

usati per consentire l’invio rapido di comandi al software applicativo. Ci sono poi taasti freccia e un tastierino numerico. VIDEO anche detto schermo, monitor o display, è il dispositivo di output più comune. È un’apparecchiatura elettronica in grado di visualizzare video immagini testi. È costituito da una matrice di piccoli puntini detti pixel. Il sistema attribuisce a ciascuno un colore generando un’immagine. Caratteristiche: dimensione dell’immagine misurata in pollici lungo la diagonale (da 4 a 27 circa); il rapporto d’aspetto è la frazione che esprime il rapporto tra la larghezza e l’altezza dell’immagine (4:3 16:9…); la risoluzione indica il n di pixel visualizzabili nelle due dimensioni. Più pixel ci sono maggiore è alta la risoluzione (1024x768, 1280x1024); altre caratteristiche sono la profondità del colore, la luminosità, il contrasto, la frequenza d’aggiornamento, l’angolo di visibilità. Le tecnologie più usate per la costruzione del video sono quelle a cristalli liquidi e al plasma. In passato erano usate anche quelle a raggi catodoci. DISPOSITIVI DI PUNTAMENTO sul video sono presenti oggetti grafici detti controlli, interattori, widget con il quale l’utente può interagire servendosi di un dispositivo di puntamento (pointing device). L’utente determina il movimento con un puntatore o cursore. Il dispositivo di puntamento per eccellenza è il mouse. Ci sono poi le trackball, il joystick,il touchpad, il touch screen.. LA STAMPANTE dispositivo in grado di imprimere testo e immagini su fogli di carta o altri supporti. Una caratteristica è determinata dal tipo e la dimensione della carta (stampanti per grandi formati: plotter). Altre caratteristiche: numero di colori (stampanti monocolore, e a colori), la risoluzione che si misura in DPI (punti per pollice), la velocità misurata in ppm (pagine al minuto). Diversi tipi: stampante a getto d’inchiostro (spruzzano sullacarta con testine di stampa minuscole gocce di inchiostro); stampanti laser (toner); stampanti a impatto (poco usate). DISPOSITIVI PER L’ACQISIZIONE DI IMMAGINI per digitalizzare l’immagine cioè generare una sua codifica in pixel. Lo scanner è impiegato per acquisire immagini riportate su un supporto. Altri es macchina fotografica digitale, lettore di codice a barre.

CAPITOLO 2 – IL SOFTWARE Il software è un’unità di memorizzazione in cui trovano posto oltre ai dati da elaborare anche le istruzioni eseguite dal calcolatore per condurre l’elaborazione stessa. ALGORITMO: sequenza di istruzioni la cui esecuzione consente di realizzare un particolare trattamento dell’informazione o, più in generale, di risolvere uno specifico problema. In varie forme, gli algoritmi sono presenti in gran numero nella nostra vita di tutti i giorni. Un algoritmo presuppone la presenza di qualcuno o qualcosa in grado di eseguirlo: l’esecutore. L’algoritmo viene letto dall’esecutore che esegue le istruzioni in esso riportate seguendo un ordine ben preciso e giungendo ad ottenere i dati di output. Un algoritmo deve essere in un linguaggio comprensibile all’esecutore. Un esecutore può eseguire un algoritmo formulato in un linguaggio che non conosce a patto che l’algoritmo stesso sia preventivamente tradotto in un linguaggio che invece gli è noto.

Un LINGUAGGIO DI PROGRAMMAZIONE è un linguaggio formale impiegato per descrivere gli algoritmi che devono essere eseguiti da un calcolatore e un programma è un algoritmo espresso in un linguaggio di programmazione. Il linguaggio macchina è un linguaggio di programmazione. È stato inventato un linguaggio assemblatore, un linguaggio di programmazione che a ogni istruzione binaria del linguaggio macchina associa una codifica mnemonica in lingua inglese. L’attività di traduzione nel linguaggio macchina corrispondente è fatto sotto la guida di un traduttore specifico per ogni linguaggio diverso. Ne esistono due tipi: compilatore e interprete. La combinazione di un calcolatore e del relativo traduttore di un linguaggio di programmazione ad alto livello costituisce una macchina astratta contrapposta dalla macchina fisica che è composta solo dal calcolatore. ALAN MATHISON TURING è considerato il padre della moderna informatica. Ha inventato la macchina di Turing (MdT) un dispositivo per l’elaborazione dell’informazione che si dimostra molto potente. Si può descrivere come costituita da: un alfabeto (un insieme finito di simboli), un nastro suddiviso in celle ognuna delle quali contiene un simbolo tratto dall’alfabeto, una testina che è sempre posizionata su una cella del nastro (cella corrente) ed è in grado di leggere il contenuto su di essa, un insieme finito di stati contenente uno stato iniziale e uno o piu altri stati tra cui alcuni stati finali, un registro di stato che memorizza lo stato corrente scelto, una tabella delle azioni e funzioni di transizione. In sostanza la MdT rappresenta un sistema automatico per l’elaborazione dell’informazione. Quando viene attivata essa inizia a iterare in un ciclo: lettura del simbolo contenuto nella cella corrente; individuazione della riga in cui i primi due elementi sono lo stato corrente e il simbolo contenuto nella cella corrente, essa riporterà il simbolo x, il verso v e lo stato s; scrittura di x nella cella corrente; spostamento della testina nella cella adiacente nel verso v; impostazione di s nel registro di stato.

L’iterazione si conclude quando lo stato corrente risulta essere uno degli stati finali. Turing definì Macchina di Turing Universale una macchina in grado di simulare il funzionamento di qualsiasi altra macchina di Turing e ne descrisse in dettaglio una possibile realizzazione. Dal lavoro di Turing è importante menzionare anche la tesi di Church – Turing o congettura di Church – Turing. Essa afferma che se una funzione è intuitivamente considerata calcolabile allora esiste una macchina di Turing in grado di calcolarla.

Si è quindi sviluppata L’INGEGNERIA DEL SOFTWARE, una branca dell’ingegneria che si occupa di sviluppare approcci sistematici e disciplinati allo sviluppo, alla messa in opera e alla manutenzione del software a livello industriale. Esiste un ciclo di vita del software che prevede alcune fasi: ANALISI che partendo da un’indagine ha come scopo la produzione di un documento di specifica contenente la definizione del problema che il software dovrà risolvere; la PROGETTAZIONE, partendo dal documento di specifica tratteggia la struttura del prodotto software generando un documento che ne delinea l’architettura di alto livello e ne definisce le caratteristiche dei singoli moduli che la compongono; L’IMPLEMENTAZIONE O CODIFICA si procede alla realizzazione di uno o piu programmi la cui integrazione costituirà il prodotto software; il COLLAUDO; il RILASCIO ; la MANUTENZIONE. Quando un’azienda commissiona a una software house la produzione di una applicazione il committente acquista dal produttore anche la versione sorgente e la titolarità del diritto d’autore. In altri casi il produttore di un software immette il proprio prodotto sul mercato mantenendone la titolarità del diritto d’autore e concedendo una licenza d’uso.. Il software per i calcolatori viene classificato in due categorie: applicativo (programmi detti applicazioni che risolvono o supportano l’utente nella risoluzione di problemi specifici in determinati ambiti applicativi; software di base programmi di utilizzo generale che consentono l’interazione dell’utente con il calcolatore. Innumerevoli sono le applicazioni, le piu comuni sono i software di produttività individuale spesso distribuiti in pacchetti che ne raggruppano alcuni (microsoft office, apache openoffice..): applicazioni di videoscrittura(es word), applicazioni per la gestione di fogli elettronici (es fogli di calcolo excel), applicazioni per le presentazioni multimediale (es powerpoint), applicazioni grafice e di fotoritocco (es photoshop). Sempre piu diffuse sono le mobile application o semplicemente app: si tratta di applicazione specificamente realizzate per smartphone.

Acquistando un calcolatore ci aspettiamo che l’hardware sia gia corredato da un sistema operativo, il software di base, cioè una collezione di programmi di uso generale per l’interazione tra utente e calcolatore. L’insieme dell’hardware e il software di base è una macchina virtuale che offre un’interfaccia che fornisce ad altri programmi la possibilità di trarre vantaggio dall’impiego di queste funzionalità aggiuntive. In genere un moderno sistema operativo include diverse componenti: nucleo (gestisce la CPU e il suo impiego da parte dei programmi); gestore della memoria (gestisce l’allocazione della RAM ai programmi in esecuzione); gestore dei dispositivi I/O; i file system; il gestore della rete; interprete di comandi. Alcuni sistemi sono: windows, linux, unix, ma cos, ios, android..

GESTIONE DELLA CPU -PROCESSO: un’entità dinamica in contrapposizione al programma che è un’entità statica. Quando è richiesta l’esecuzione di un programma il sistema operativo crea un nuovo processo in genere identificato con un numero univoco, e gli alloca in ram lo spazio per le istruzioni del programma e un ulteriore spazio per i dati. In ogni istante un processo si trova in uno dei seguenti stati: pronto ( il processo è inserito in una lista dei processi pronti, gestita da una componente detta sheduler, e attende il suo turno per essere chiamato a transitare nello stato in esecuzione); in esecuzione (il processo ha accesso alla cpu che ne esegue le istruzioni); in attesa (il processo è in attesa del completamento di un’operazione asincrona e di poter quindi transitare allo stato pronto.

GESTIONE DELLA MEMORIA l’esecuzione di un programma richiede la creazione di un processo a cui è necessario allocare nella ram spazio per il codice e per i dati. Ci deve essere all’interno del sistema operativo un gestore che deve essere in grado di controllare l’efficienza della ram, garantire lo spazio necessario a ciascun processo, proteggere lo spazio allocato a un processo da intrusioni non autorizzate da parte di altri processi, gestire spazi comuni. queste attività sono in genere con la tecnica della memoria virtuale. Il gestore suddivide la memoria centrale in pagine. Quando un programma viene caricato nella ram viene rilocato : il suo codice e la sua area dati vengono suddivisi in pagine e posizionati nelle pagine libere della ram grazie alla memory management unit. Se i processi richiedono l’occupazione di un numero di pagine maggiore di quello disponibile, il gestore provvede allo swapping cioè il trasferimento in un’apposita area di swap su memoria di massa.