Estratto del documento

PARTE DI SISTEMI OPERATIVI

CAPITOLO 1 – INTRODUZIONE

Le 4 componenti di un sistema di calcolo:

1) Hardware

2) Sistema operativo

3) Software applicativo

4) Utente

Schema a cipolla del SISTEMA DI CALCOLO:

1) HARDWARE

2) KERNEL ( nucleo del S.O.) 

3) SHELL ( interfaccia per i programmi) l’utente interagisce per mezzo di una shell

Schema a cipolla del SISTEMA OPERATIVO

1) KERNEL ( nucleo) è il NUCLEO del Sistema Operativo in CONTATTO DIRETTO con L’HARDWARE.

La gestione di quest’ultimo avviene per via di FUNZIONI elementari contenute dal kernel stesso. E’

SEMPRE IN ESECUZIONE durante il funzionamento del COMPUTER.

2) Gestione della MEMORIA PRINCIPALE

3) Gestione delle PERIFERICHE

4) Gestione del FILE SYSTEM

5) Interprete dei comandi

6) Sw Applicativo 

Com’è è fatto il Sistema Operativo per Dispositivi MOBILI ? è costituito da 2 parti:

1) KERNEL 

2) MIDDLEWARE ( o software di infrastruttura) permette l’interfacciamento tra componenti sw e

hardware ( collezione di ambienti SW per gli sviluppatori)

Schema del SISTEMA DI CALCOLO CPU / controller collegati ad un unico bus con MEMORIA CONDIVISA

in COMUNE

Come avviene la fase di AVVIAMENTO ?

 Accendendo il PC : il Bios (memorizzato sulla ROM) carica una parte di codice chiamato

PROGRAMMA DI BOOTSTRAP presente sull’ Hard Disk in una partizione denominata MASTER

BOOT RECORD. Questo codice contiene le istruzioni necessarie per “mettere in sesto da solo il

computer” . Successivamente avverrà il caricamento del KERNEL del sistema operativo (

quest’ultimo prenderà il controllo di tutto)

GESTIONE DELLE INTERRUPTS:

1) Il processore sta elaborando qualcosa

2) Arriva un INTERRUPT

3) Viene salvato il PC e relative informazioni necessarie

4) L’interrupt avrà un codice ID che sarà corrispondente con una ISR ( presente sulla memoria DRAM

a indirizzi bassi e disposta in un VETTORE DI INDIRIZZI DI INTERRUPTS [interrupts vettorizzato])

5) Una volta gestita la situazione si riparte dall’elaborazione del punto 1 , dopo aver ripristinato tutto

Si possono avere INTERRUPTS durante la gestione di una INTERRUPT da parte di una ISR? NO! Durante

la gestione di una interrupt , gli altri interrupts sono MOMENTANEAMENTE DISABILITATI

Che cos’è una TRAP ? La TRAP è un’eccezione di tipo SOFTWARE derivante da un ERRORE o da una

RICHIESTA UTENTE. Le TRAP sono effettuate mediante le SYSTEM CALLS

Perché un S.O. è detto INTERRUPT DRIVER? perché deve gestire continuamente le interruzioni

Perché un S.O. è detto DEVICE DRIVEN ? Esistono controllori di DEVICE (periferica) per ognuna di esse

per guidare le operazioni di I/O

Che cos’è il DEVICE DRIVER? Il Kernel può interagire con i CONTROLLORI DI DEVICES solo ed

esclusivamente mediante un DEVICE DRIVER.

Come può essere gestita l’I/O? come ben sappiamo l’I/O è gestita mediante INTERRUPTS :

1) Un programma richiede di usare una periferica

2) Arriva quindi un INTERRUPT alla CPU

3) La gestione può avvenire secondo 2 Modalità:

Si

a) I/O SINCRONO restituisce il controllo al processo utente solo al termine della gestione

dell’INTERRUPT per l’I/O (le risorse rimangono inattive e quindi la CPU non fa null’altro)

Durante

b) I/O A-SINCRONO la gestione di I/O le risorse vengono usate da altri processi ( la

CPU elabora dati e istruzioni di altri processi)

Il DIRECT MEMORY ACCESS (già incontrato)

ARCHITETTURA DI VON NEUMANN con DMA ( SCHEMA) 

Che tipi di ELABORAZIONI possono essere fatte con i MULTIPROCESSORI ? I multiprocessori sono più

PROCESSORI che funzionano come se fossero UNO sincronizzati e comunicanti. Esistono 2 elaborazioni

possibili: 

1) MULTIELABORAZIONE SIMMETRICA Ogni processore ha la stessa priorità e può operare

indipendentemente  SIMMETRICA

2) MULTIELABORAZIONE A-SIMMETRICA C’è un processore che sovraintende ( svolge il ruolo di

controllore) e gli altri processori che operano. (“AMP” : A-simmetric MultiProcessing)

Che cos’è un MULTICORE? è un tipo di MULTIPROCESSORE : abbiamo più core in un’unica piastrina.

Qual è più efficiente tra MULTICORE e MULTIPROCESSORE STANDARD? sicuramente il MULTICORE: la

comunicazione e sincronizzazione dei core presenti su UN UNICO CHIP velocizza le cose. INOLTRE un

unico chip in termini di consumo è migliore.

SISTEMI DI TIPO CLUSTER sono interi CALCOLATORI COMPLETI collegati tra loro ( per questo sono detti

“NODI”) collegati ad un’ UNICA MEMORIA SECONDARIA CONDIVISA ( chiamata SAN [STORAGE AREA

NETWORK])

Un Sistema di tipo cluster può essere di 2 tipi:

1) SIMMETRICO tutti i nodi hanno uguale priorità

2) A-SIMMETRICO un NODO è un SUPERVISORE di tutti gli altri ( che operano)

 CLUSTERING SIMMETRICO

Quali sono i vantaggi della multiprogrammazione? più task ( JOB ) sono memorizzati in memoria

contemporaneamente : questo implica un utilizzo migliore delle risorse ( la CPU è sempre occupata ).

Avendo più JOB in memoria , la CPU dovrà scegliere quale elaborare attraverso uno SCHEDULING

Che cos’è il MULTITASKING (detto anche TIMESHARING)? La cpu passa velocemente dall’esecuzione di

uno JOB ad un altro in maniera da dare l’impressione che l’elaborazione di tutti gli JOB sia contemporanea

. E’ il passaggio dall’esecuzione di un TASK ad un ALTRO in maniera talmente veloce da dare

impressione che siano eseguiti contemporaneamente 

Cosa succede se non ho spazio nella memoria per inserire un TASK ? viene fatto uno SWAPPING in base

alla priorità appoggiandosi ad una MEMORIA VIRTUALE sulla memoria SECONDARIA che conterrà quelli

meno importanti e che poi saranno ripresi. 

Che cos’è il SISTEMA del S.O. chiamato DUAL MODE? Esistono due modalità operative:

1) MODALITA’ UTENTE (BIT-MODE a ZERO)

2) MODALITA’ KERNEL (BIT-MODE a UNO)

Per il passaggio da una modalità ad un’altra viene settato un BIT-MODE appositamente per capire in quale

modalità elaborare. 

Cosa succede se un processo rimane bloccato in KERNEL MODE? entra in gioco un TIMER ( clock +

contatore) che dopo un tempo prefissato emette un INTERRUPT che fa uscire il processo dalla modalità.

Due tipi di processi: 

1) I Processi a Singolo Thread un processo unico senza altri sottoprocessi con un unico PC che ci

da l’istruzione successiva da eseguire

2) I Processi a MULTI-THREAD un processo composto da più sottoprocessi (threads) . Ognuno di

questi threads avrà un PC pertinente.

Che sono i DEADLOCK ? un deadlock avviene quando l’esecuzione di uno o più processi si ARRESTA

perché uno aspetta una risorsa che deve dargli l’altro(che ancora non arriva) e/o viceversa

Che cos’è la memoria TERZIARIA ? identifica (in chiave moderna) le memorie estraibili

Che cos’è la COERENZA DELLE CACHE? Se un dato deve essere modificato ad un particolare livello di

cache allora dovrà necessariamente subire la stessa modifica in tutti gli altri livelli.

Cos’è il SOTTOSISTEMA DI I/O? un sottosistema comprendente 3 parti:

1) Buffer di periferica

2) Cache di periferica

3) Spool di periferica ( per la gestione asincrona dell’I/O)

Quali sono le possibili violazioni di SICUREZZA?

1) DENIAL OF SERVICE malfunzionamento per attacco informatico

2) WORM malware auto-replicante

3) TROJAN programmi con all’interno funzionalità nascoste pericolose

4) VIRUS porzioni di codice dannoso che si ATTACCA a programmi preesistenti

 

HACKER viola la protezione del sistema prelevando solo informazioni

 

CRACKER viola la protezione e causa danni voluti al sistema

Che strutture dati usa il KERNEL? poiché il kernel ha elementi che possono avere dimensione variabile,

usa tipicamente le strutture DINAMICHE : le LINKED LIST

1) LINKED LIST SEMPLICI l’elemento i-esimo contiene un riferimento al prossimo elemento (oltre

che a un campo dati) 

2) LINKED LIST DOPPIAMENTE CONCATENATE l’elemento i-esimo contiene un riferimento

all’elemento successivo e un riferimento all’elemento precedente (oltre che a un campo dati)

Il Kernel utilizza anche lo STACK (PILA LIFO) usato per gestire le chiamate alle funzioni

Il Kernel utilizza anche le CODE ( sono FIFO) come ad esempio la lista per l’attesa dei documenti da

stampare

Il Kernel usa anche ALBERI BINARI DI RICERCA

Cos’è un HASH? è una STRINGA a dimensione fissa ricavata da un input di una qualsiasi dimensione ( la

trasformazione non è reversibile). Viene tipicamente utilizzata per le credenziali di accesso.

Cosa sono gli STANDAL-ONE? sono macchine in grado di funzionare in maniera indipendente

Che cos’è la VIRTUALIZZAZIONE ? è una tecnica ideata da IBM negli anni 60 che permette

l’ESECUZIONE di un S.O. come applicazione all’interno di un altro S.O.

La virtualizzazione si appoggia a del SW di EMULAZIONE ( che deve ricreare l’HW “virtualmente”)

Macchina Virtuale ( o virtual machine) è un programma che ricrea l’HW ideale per eseguire del SW

compatibile con una macchina fisica che non è quella della macchina di riferimento. La virtual machine

prende parte delle risorse reali per garantire l’HW IDEALE. Questo compito spetta ad un HYPERVISOR (

Virtual Machine Manager)

Il CLOUD COMPUTING sfrutta la VIRTUALIZZAZIONE .

Che cosa sono gli ASIC? sono dei SISTEMI di tipo EMBEDDED ( Application Software Integrate Circuit ) .

Sono sprovvisti di S.O.

CAPITOLO 2 – STRUTTURA del SISTEMA OPERATIVO

Qual è la differenza tra CLI e GUI ? CLI : command line interface / GUI Graphic User Interface

Che cos’è una SHELL ? è un interprete di comando ( permette l’interfacciamento con l’USER)

sono

Che cosa sono le SYSTEM CALLS? semplici istruzioni che permettono l’interfaccia tra USER

PROCESSES e SERVIZI DEL S.O. 

Quanti tipi di System Calls abbiamo? 6 TIPI

1) Syscall di Controllo Processi

2) Syscall di Gestione FILE

3) Syscall di Gestione I/O

4) Syscall di Gestione delle Informazioni

5) Syscall di Comunicazione

6) Syscall di PROTEZIONE 

Cosa sono i PROGRAMMI DI SISTEMA? sono programmi appartenenti al S.O. che vanno a supporta

degli USER PROCESSES

Che cos’è il REGISTRY? È un FILE dei sistemi operativi WINDOWS che contiene INFORMAZIONI DI STATO

relative ai programmi installati.Più programmi installeremo , più si ingrandirà.

Che cosa sono i DAEMON ? sono servizi che vengono eseguiti in BACKGROUND

In che linguaggi è scritto un S.O.? Tipicamente con un MIX di linguaggi: Assembly , C ( il Kernel è scritto

in C), e vari altri linguaggi per i programmi di sistema.

SISTEMI A MICROKERNEL ? sono dei sistemi tipicamente implementati su macchine con HW

abbastanza potente. Il s.o. contiene un KERNEL ridotto al minimo ( solo l’indispensabile per GESTIONE

PROCESSI, GESTIONE MEMORIA , GESTIONE COMUNICAZIONE).

Tutto il resto funziona in modalità UTENTE.

Un KERNEL MONOLITICO che cos’è? è un kernel che contiene in un unico file tutte le FUNZIONI

PRIMARIE DEL S.O. compresi i DRIVER delle varie PERIFERICHE. 

Linus ad esempio (come windows) è un sistema con KERNEL MONOLITICO composto anche da MODULI

sono dei PEZZI che si aggiungono al KERNEL MONOLITICO per offrire ulteriori funzionalità ( presenti in una

cartella denominata MODULES)

CAPITOLO 3 – I PROCESSI 

Che cos’è un PROCESSO ? è un programma in esecuzione nella CPU

Esistono 5 STADI di vita per un PROCESSO:

1) NEW IL PROCESSO VIENE CREATO

2) RUNNING IL PROCESSO VIENE ESEGUITO

3) WAITING il processo è in ATTESA

4) READY IL PROCESSO è in attesa di essere affidato ad un PROCESSORE

5) TERMINATED IL PROCESSO termina la propria esecuzione

Che cos’è il PROCESS CONTROL BLOCK ? è un “BLOCCO” contenente informazioni su un PROCESSO (

ogni processo avrà il suo PCB) e accessibile solo dal KERNEL ( risiede in memoria). IL PMB è composto da:

1) STATO DEL PROCESSO

2) NOME DEL PROCESSO (identificato da un numero)

3) CONTESTO DEL PROCESSO (pc e registri della cpu)

4) INFORMAZIONI DI SCHEDULING

5) INFORMAZIONI sulla gestione della memoria

6) Informazioni di contabilizzazione delle risorse

7) Informazioni sull’I/O  

Che cos’è il CONTEXT SWITCH? è lo scambio dei processi nella CPU . Come avviene? “SCHEMA PCB0

e PCB1” 

JOB QUEUE la coda dei processi del sistema

READY QUEUE la coda dei processi in fase di “READY” ( e quindi pronti per essere schedulati)

Devices QUEUE ( o coda dei dispositivi) è la coda dei processi inerenti ai dispositivi di I/O

Esistono 2 tipi di SCHEDULER: 

1) Lo scheduler a LUNGO TERMINE è più lento ma efficiente : entra in gioco ogni GROSSO LASSO

DI TEMPO ( fa parte dei SISTEMI BATCH)

2) Lo scheduler a BREVE TERMINE è quello presente nei nostri sistemi operativi (entra in gioco

spesso … è il cosiddetto SCHEDULER DELLA CPU)

2 tipi di PROCESSI: 

1) I/O BOUND sono orientati all’INPUT/OUTPUT

utilizzano

2) CPU-BOUND molta CPU e poco I/O ( orientati alla CPU)

Il Sistema operativo deve mescolare in maniera efficiente PROCESSI I/O Bound e CPU Bound

I processi nei dispositivi mobili sono 2:

1) PROCESSO PRINCIPALE maggior dispendio di risorse ( è quello che l’utente visualizza a schermo

nello stato corrente) 

2) PROCESSI IN BACKGROUND i processi che pur non essendo visualizzati , sono in esecuzione (

minor dispendio di risorse rispetto al processo principale)

Come vengono creati i PROCESSI ? sono creati talvolta a catena da altri processi ( costituendo un vero e

proprio albero di processi) in legami PADRE E FIGLIO

I processi padre creano dei processi figli . VI E’ un’identificazione per ogni processo tramite un “PI” (

Process Identifier) 

Come avviene la condivisione delle risorse tra PADRE e FIGLIO ? può avvenire in 3 modalità:

1) Padre-Figlio condividono le stesse risorse

2) Figli condividono una parte delle risorse del PADRE

3) Padre-Figlio non condividono risorse secondo

Come avviene l’esecuzione dei processi PADRE-FIGLI? 2 modalità possibili:

1) Il padre e i figli vengono eseguiti in maniera CONCORRENTE

2) I Figli vengono eseguiti PRIMA DEL PADRE. IL PADRE ATTENDE PRIMA DI ESSERE ESEGUITO

Come avviene la gestione dello spazio indirizzi per PADRE-FIGLI? secondo 2 modalità:

1) Il figlio è un DUPLICATO DEL PADRE

2) Nel figlio è stato caricato un diverso programma 

Qual è il PROCESSO PADRE a capo dell’albero dei processi in UNIX ? IL PROCESSO “INIT”. Esso ha codice

identificativo “PI” pari a 1.

PROCESSI PADRE-FIGLIO in UNIX

fork() permette di DUPLICARE UN PROCESSO. In questo caso viene duplicato un PROCESSO PADRE in UN

PROCESSO FIGLIO.

 

Se la FORK mi restituisce ZERO Procedo verso il PROCESSO FIGLIO

 

Se la FORK mi restituisce un VALORE MAGGIORE di ZERO Procedo verso il PROCESSO PADRE

 

Se la FORK mi restituisce un valore negativo C’è stato un ERRORE 

exec() manda in esecuzione il processo figlio. Durante l’esecuzione il PADRE è il “wait()” attende la

morte del figlio per essere eseguito.

exit() è una syscall mandata da un PROCESSO AL SISTEMA OPERATIVO per avvertirlo della sua

TERMINAZIONE 

Che cos’è la SYSCALL abort()? è una system call che permette ad un PROCESSO PADRE di UCCIDERE UN

PROCESSO FIGLIO ( o per lo meno permette di terminare in maniera forzata un processo)

Cos’è un Processo ZOMBIE? è un processo che pur avendo terminato la sua ESECUZIONE , serve ancora

al PADRE ( per cui possiede ancora un PI e un PCB di riferimento).

Il Padre ottiene un RISULTATO da un processo figlio al termine della WAIT().

Che cosa succede se un processo padre muore prima del processo figlio ? il processo figlio diventa un

PROCESSO ORFANO. 

Che cos’è l’INTER PROCESS COMMUNICATION o IPC ? è la parte del SISTEMA OPERATIVO che

GARANTISCE LA COMUNICAZIONE TRA I PROCESSI 

In che modo può avvenire la comunicazione tra processi? IN DUE MODALITA’:

1) SCAMBIO MESSAGGI (MESSAGE PASSING) i processi si scambiano messaggi di tipo mittente-

destinatario ( usato ed efficiente nei sistemi MULTICORE). AVVIENE IN 2 STEPS:

a) SEND MESSAGE ( viene inviato un messaggio con dimensione FISSA o VARIABILE)

b) RECEIVE MESSAGE ( viene ricevuto il messaggio inviato)

I due passi possono avvenire secondo 2 modalità:

  

COMUNICAZIONE DIRETTA NAMING ESPLICITO I PROCESSI NOMINANO ESPLICITAMENTE

con chi devono scambiare messaggi. I processi devono CONOSCERSI NECESSARIAMENTE.

 

COMUNICAZIONE NON DIRETTA c’è una MAILBOX dopo vengono messi i messaggi . I due

processi non devono necessariamente “CONOSCERSI” per comunicare

2) SHARED MEMORY ( o MEMORIA CONDIVISA) è il sistema di COMUNICAZIONE TRA PROCESSI

più UTILIZZATO IN ASSOLUTO. Viene utilizzato quando la memoria principale ( a livello fisico) è

EFFETTIVAMENTE CONDIVISA)

MEMORIA con SCAMBIO MESSAGGI: MEMORIA CON SHARED MEMORY:

Quando due processi si dicono COOPERANTI ? quando si scambiano dati e sono INFLUENZATI l’uno

dall’altro.

Anteprima
Vedrai una selezione di 10 pagine su 51
Appunti di Architettura - Parte Sistemi Operativi con spiegazioni semplicissime Pag. 1 Appunti di Architettura - Parte Sistemi Operativi con spiegazioni semplicissime Pag. 2
Anteprima di 10 pagg. su 51.
Scarica il documento per vederlo tutto.
Appunti di Architettura - Parte Sistemi Operativi con spiegazioni semplicissime Pag. 6
Anteprima di 10 pagg. su 51.
Scarica il documento per vederlo tutto.
Appunti di Architettura - Parte Sistemi Operativi con spiegazioni semplicissime Pag. 11
Anteprima di 10 pagg. su 51.
Scarica il documento per vederlo tutto.
Appunti di Architettura - Parte Sistemi Operativi con spiegazioni semplicissime Pag. 16
Anteprima di 10 pagg. su 51.
Scarica il documento per vederlo tutto.
Appunti di Architettura - Parte Sistemi Operativi con spiegazioni semplicissime Pag. 21
Anteprima di 10 pagg. su 51.
Scarica il documento per vederlo tutto.
Appunti di Architettura - Parte Sistemi Operativi con spiegazioni semplicissime Pag. 26
Anteprima di 10 pagg. su 51.
Scarica il documento per vederlo tutto.
Appunti di Architettura - Parte Sistemi Operativi con spiegazioni semplicissime Pag. 31
Anteprima di 10 pagg. su 51.
Scarica il documento per vederlo tutto.
Appunti di Architettura - Parte Sistemi Operativi con spiegazioni semplicissime Pag. 36
Anteprima di 10 pagg. su 51.
Scarica il documento per vederlo tutto.
Appunti di Architettura - Parte Sistemi Operativi con spiegazioni semplicissime Pag. 41
1 su 51
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher giuscobebbo di informazioni apprese con la frequenza delle lezioni di Architettura dei calcolatori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi del Sannio o del prof Villano Umberto.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community