Sistema Operativo
Programmi di base per utilizzare “facilmente” il sistema
Funzioni
svolte:
1.
Gestire memoria
centrale e CPU
2.
Gestire i file
3.
Gestire le unitŕ di I/O
4.
Gestire i malfunzionamenti hardware/software
5.
Controllare l’utilizzo
del sistema da parte degli utenti
6.
Rendere
disponibili agli utenti i programmi applicativi
7.
Accettare ed
eseguire i comandi degli utenti
Gestione
delle risorse (CPU, memoria, periferiche)
·
tenere traccia dello
stato della risorsa
·
criterio di
assegnazione (FIFO od ottimizzante)
·
allocare (assegnare)
la risorsa
·
deallocare la
risorsa, temporaneamente o definitivamente
Il S.O. maschera
l’hardware e presenta una macchina virtuale
COPY A:PIPPO C:
PIPPO
A: C:
Linguaggio
macchina virtuale = linguaggio di controllo
eseguito dall’interprete dei comandi
|
compilatori/interpreti |
software
applicativo |
|
|||||||||||||
Livello 5 |
interprete
dei comandi |
sistema
sviluppo software |
|
|||||||||||||
Livello 4 |
Gestione
file (file
system) |
nucleo |
||||||||||||||
Livello 3 |
Gestione I/O |
nucleo |
||||||||||||||
Livello 2 |
Gestione memoria centrale |
nucleo |
||||||||||||||
Livello 1 |
Gestione CPU |
nucleo |
||||||||||||||
Livello 0 |
· |
hardware |
||||||||||||||
Problema: suddivisione risorse piů veloci e pregiate (CPU e memoria)
tra gli utenti, sfruttando i tempi di I/O (==> multiprogrammazione)
Stati di un
processo (gestiti dal nucleo):
·
esecuzione
·
pronto (esecuzione+pronto = attivo)
·
bloccato
Lo schedulatore:
1.
assegna la Cpu ai
processi
2.
salva lo stato di un processo
3.
gestisce le sincronizzazioni tra i processi
==>
+ CPU virtuali
Interruzione
meccanismo che
sospende l’evoluzione di un processo, ne salva lo stato e provoca l’esecuzione
di un programma speciale, detto programma
di risposta all’interruzione
Scheduling
selezione di un processo pronto e sua esecuzione ==>
tutti i processi ricevono la CPU
Tipologie di sistemi operativi
MULTIPROGRAMMAZIONE
· ad ogni interrupt viene selezionato il processo a piů alta
prioritŕ
· processi +CPU => bassa prioritŕ
· processi +I/O => alta prioritŕ
· prioritŕ dinamica
TIME SHARING
· tutti i processi stessa prioritŕ
· max tempo di CPU ciascuno (time-slice)
REAL-TIME
· ogni processo ha una prioritŕ fissa
· interrupt ad intervalli regolari
· i processi possono generare interrupt (oltre a quelli di
I/O)
· ad ogni interrupt viene selezionato il processo a piů alta
prioritŕ.
· N.B.:
real-time = tempo utile
Gestione della memoria
Rilocazione: indirizzi
fisici ==> indirizzi relativi, effettuata dal loader
Frammentazione
= aree di memoria non utilizzate
Soluzioni:
a)segmentazione
(si suddivide il programma in segmenti; si puň anche caricare solo un segmento
per volta)
b) swapping
(parcheggio temporaneo dei processi su memorie di massa)
c) paginazione (suddivisione della memoria in blocchi della stessa dimensione)
d) memoria virtuale
(non tutte le pagine sono presenti in memoria; disco come estensione virtuale
della memoria centrale, per non piů del 50%)
File system
|
Organizzazione logica
e fisica degli archivi (file) sui
supporti di memoria esterna
Funzioni:
· creazione e cancellazione file;
· accesso ai file (lettura/scrittura);
·
gestione spazio
memorie di massa;
· protezione file da accessi non autorizzati;
·
copia, cambio nome,
spostamento, etc.
File
management system
|
sistema
di gestione dei file (da parte del S.O.)
Classificazione dei File System
|
·
allocazione
contigua
-
gestione piů semplice
-
accesso piů veloce
(posizione x del record = i0 + (r-1)·d)
-
impossibilitŕ di
espandere un file (==> compressione del disco)
|
·
allocazione
sparsa
- gestione piů complessa
-
ricerca non immediata
(sequenziale sulle estensioni)
Strutturazione logica degli archivi:
Ţ
byte-stream
(S.O. per PC; Unix)
Ţ
record-oriented
(medi sistemi)
Ţ
database
(sistemi medio-grandi; database machine)
Raggruppamento archivi di tipo:
*
piatto
(tutti i file allo stesso livello)
*
gerarchico
(file raggruppati in directory o
cartelle)
Descrittori e Directory
Directory = legame tra i descrittori dei file e le loro locazioni
fisiche
Nome file AGENDA
Lunghezza 22450
Data
creazione 12/09/94
Tipo
accesso lettura/scrittura
Blocco 0: da traccia 4 settore 6
a traccia 5 settore 7 mappatura
Blocco 1: da traccia 26 settore 12 del file su disco
a traccia 28 settore 2
Organizzazione Gerarchica
delle Directory
root directory
iniziale
COMMAND.COM
AUTOEXEC.BAT
file
CONFIG.SYS
ANNA directory
MARCO
CASSA.PAS
TETRIS.EXE CASSA.EXE
GRANPRIX.EXE WINWORD
PAGHE.PAS
DATI.DAT
LETTERA.DOC
FATTURA.DOC
WORD.EXE
Sistema Operativo UNIX
X I U
Cenni storici:
·
fine anni ‘60
laboratori Bell (dal progetto MULTICS)
·
supporto attivitŕ
sviluppo software
·
indipendenza
dall’hardware
·
scritto in linguaggio
C
·
diffuso gratuitamente
alle universitŕ (Berkeley)
·
1984 prima commercializzazione
·
1989 consorzio UNIX
INTERNATIONAL (versione standard System V) vs
consorzio O.S.F.
·
standard POSIX
(governo U.S.A.) vs consorzio
europeo X/OPEN
Situazione attuale:
·
realizzato su PC,
mini, mainframe, supercalcolatori
·
in atto processo di
standardizzazione di S.O. basato su UNIX
·
versioni di UNIX
proprietarie
·
S.O. proprietari
simili a UNIX (BTOS, GCOS, ...)
·
attualmente marchio
UNIX di proprietŕ di X/OPEN
|
Caratteristiche UNIX
·
time-sharing
(versioni particolari multiprocessor e
real-time);
·
elevata portabilitŕ (solo
nucleo compilatore C in assembler);
·
orientato sviluppo
software;
·
ha favorito la
nascita di INTERNET;
·
“aperto” nell’ottica
hardware/software:
- facile
collegamento periferiche
- facile
espandibilitŕ sw di base
-
documentazione e standard pubblici
·
relativamente pochi
concetti base; logica uniforme.
|
Punti deboli
·
orientato a utenti
esperti;
·
progetto risalente
anni ‘60 (attualmente in aggiornamento);
·
linguaggio C
difficile, poco affidabile, (ma comunque meglio dell'assembler).
|
Vantaggi
· portabilitŕ
· standard
· apertura
· bassi costi
Il file system di Unix
Concetto
generalizzato di file, utilizzato per:
·
archiviazione vera e
propria
·
indirizzamento di
dispositivi hardware
·
comunicazione tra
processi
·
messaggi di posta
elettronica
·
etc.
==> Indipendenza dai
dispositivi fisici
Tipi
di file:
·
ordinari
·
directory
·
speciali
(corrispondenti ai dispositivi di I/O)
· code (FIFO), per la gestione delle "pipe"
Altre
caratteristiche:
Ţ
organizzazione del
file system ad albero gerarchico
Ţ
uso di caratteri jolly
Ţ
sistema di gestione
utenti, password e diritti di accesso ai
file (lettura, scrittura, esecuzione)
Ţ
super utente ROOT
I Comandi di UNIX
SHELL
= interprete dei comandi
(Bourne,
C, Korn, Visual, ...)
|
·
comandi
predefiniti nella shell
(pochi ed essenziali)
·
programmi eseguibili (parte integrante di UNIX o esterni)
·
procedure di shell (SCRIPT)
I comandi Unix sono:
Ţ
alcune centinaia (simili a quelli MSDOS);
Ţ
combinati tra di loro tramite pipe, ridirezionamento,
filtri.
Moduli e Ambienti del S.O. UNIX
·
linguaggi per la
definizione delle caratteristiche di terminali e di stampanti;
·
editor a linee (ed) ed a pagine (vi);
·
AWK, linguaggio
interpretato ad alto livello per procedure batch che operano su file ASCII;
·
YACC e LEX, strumenti di definizione e di analisi
sintattica e lessicale;
·
UUCP, software per
il collegamento remoto;
·
MAIL, software per
lo scambio di messaggi:
·
SCCS (Source Code
Control System), per la gestione delle versioni di prodotti software;
·
emulatori di MsDos e
altri sistemi operativi (Windows, Mac);
·
sistema di
contabilizzazione dell’utilizzo delle risorse;
·
NFS (Network File
System) per la gestione di file system distribuiti;
·
programmi ed utility
di rete per il collegamento nativo ad INTERNET
mediante il protocollo TCP/IP.
Il Sistema Operativo MSDOS
MSDOS = MicroSoft Disk Operating System
·
nasce nel 1981 col
primo PC IBM
·
monoutente e
monotasking
·
max memoria centrale
direttamente utilizzabile = 640KB
·
inizialmente limiti
sulle memorie di massa, ora superati (dischi sino a 1GB)
·
set di caratteri
limitato (maiuscole e minuscole equivalenti)
·
sintassi dei comandi
semplice
·
stralcio
“semplificato” di Unix (sintassi dei comandi, struttura del file system, etc.)
·
ad oggi (1995)
versione 6.2
·
successo dovuto a
varie ragioni "commerciali"
ŢVarianti: DR-DOS, Concurrent DOS
Architettura hardware INTEL
famiglia 80x86 ==> S.O.
“proprietario”
In
fase di sostituzione con Windows
(3.1,
3.11, '95, NT)
La memoria centrale nell’MSDOS
File System MSDOS
Pathname = nome del percorso
[drive]:[\]directory1\directory2\...\nomefile
· pathname completo
· pathname parziale
· pathname assoluto
· pathname relativo
Directory corrente = . (punto)
Directory precedente = .. (doppio
punto)
Unitŕ
disco (HD, floppy) = A: B: C:
(drive
default)
Nome
file max 8 caratteri
+ estensione
max 3 caratteri
Esempi di pathname
C:\BOLLETTE\CENTRO\MIO
(completo assoluto)
\BOLLETTE\SUD\MIO
(parziale
assoluto)
C:FATTURE\OVEST
(completo
relativo)
..\CONTAB\TUO
(parziale
relativo)
C:..\BOLLETTE\SUD\MIO
(completo relativo)
Estensioni standard in MsDos
· COM (comandi, in linguaggio macchina);
· EXE (programmi eseguibili, in linguaggio macchina);
· BAT (file di comandi);
· SYS (programmi in linguaggio macchina per la gestione di
dispositivi periferici).
Nomi delle unitŕ in MSDOS
|
CON:
tastiera/video
|
LPT1:, LPT2:, LPT3:, PRN: porte parallele (stampanti)
|
NUL: unitŕ "fantasma"
|
COM1:, COM2:, AUX: porte seriali (modem)
I
Comandi MsDos
Struttura: PAROLA_CHIAVE parametri indicatori
· interni (all'interprete dei comandi COMMAND.COM)
- piů veloci
- occupano permanentemente
memoria
· esterni (file eseguibili .BAT
.COM .EXE)
- registrati su
disco
- esecuzione piů
lenta
-
estensibili (da parte dell'utente)
Caratteri jolly ? e *
? ==> singolo carattere. Esempio: A?BCD
* ==>
zero o piů caratteri. Esempi:
*.* (tutti
i nomi con tutte le estensioni)
PIPPO.* (tutti i file di nome PIPPO con qualunque estensione)
PIP* (tutti i file il cui nome inizia con PIP ed aventi qualsiasi
estensione)
PI?.* (tutti i file aventi un nome di tre caratteri iniziante con
PI e qualunque estensione)
P*.COM (tutti i file aventi il nome che inizia per P ed estensione
COM)
*.COM (tutti i file con estensione COM)
C o m a n d i M s D o s
F o n d a m e n t a l i
FORMAT inizializza un floppy
FORMAT [drive]
Indicatori: /S per trasferire i
file di sistema (MSDOS.SYS ed IO.SYS)
Esempio: FORMAT A:/S
DIR visualizza il contenuto di una
directory
DIR [drive] [directory]
Indicatori: /P
per fermarsi ad ogni pagina del video;
/W per vedere solo i nomi (elenco piů
compatto).
Esempio: DIR C:\CONTAB\A*.DO?
DISKCOPY duplica un floppy
DISKCOPY [sorgente] [destinazione]
Indicatori: /V = verifica correttezza
copia (esecuzione piů lenta).
Esempi:
DISKCOPY
B: A:
DISKCOPY
A: (il
drive di destinazione č quello di default)
COPY copia file
COPY file_sorgente [file_destinazione]
COPY pathname1 [+pathname2 +
...] [pathname]
Indicatori: /V verifica la correttezza della copia
effettuata;
/A
concatena file di testo (ASCII);
/B
concatena file binari.
Esempi:
COPY *.TXT BIG.TXT
COPY *.* B:
COPY
A.COM+B.COM
COPY *.LST+*.REF *.MIO
COPY CON:
MIOFILE
COPY MIOFILE
CON:
COPY MIOFILE
PRN:
COPY B:*.* PRN:
MKDIR (oppure MD):
creazione di una directory
MD directory
Esempi:
MKDIR \BOLLETTE
MD C:\BOLLETTE\SUD
CHDIR (oppure CD):
cambio directory
CD [directory]
(senza
parametri, il solo comando visualizza la directory corrente).
Esempi:
CHDIR
\ BOLLETTE
CD
\CONTAB
RMDIR (oppure RD):
cancella una directory
RD directory
(solo se č vuota, altrimenti č
piů comodo utilizzare il comando DELTREE;
la directory corrente non viene cancellata).
PATH [pathname][;[pathname] ... ]
CHKDSK [drive:] (ora
sostituito da SCANDISK)
TREE [drive:] [pathname]
COMP [file1] [file2]
DATE [data]
DISKCOMP [drive1:] [drive2:]
ERASE (oppure DEL) pathname
REN (oppure RENAME) pathname1 pathname2
TIME [ora]
TYPE nomefile
PRINT nomefile ...
XCOPY origine [destinazione] [indicatori]
MOVE origine destinazione
R i d i r e z i o n a m e n t o
> ridirige lo standard output (video)
< ridirige lo standard input (tastiera)
Esempi:
DIR > PRN:
DIR > LISTATO
PROGR < FILE.IN
>> (accoda ad un file,
se esiste, altrimenti lo crea)
DIR >>LISTATO
F i l t r i
standard input
==> standard output
FIND (visualizza le
righe di un file che contengono una stringa data)
Esempi:
FIND “CAPITOLO” LIBRO
FIND /V “CAPITOLO” LIBRO > TES
FIND “CAPITOLO” LIBRO.* > PRN:
MORE (visualizza un file, una schermata alla volta)
Esempi:
MORE < LIBRO
SORT (ordina il contenuto di un file)
Esempi:
SORT < LIBRO1
SORT < LIBRO1 > LIBRO1.OLD
SORT /R < LIBRO1 > LIBRO1.REV (l’opzione /R effettua l’ordinamento inverso)
P i p e (comando1 | comando2)
Esempi:
TYPE LIBRO.DOC | MORE
DIR | SORT | MORE
B a c k - U p
Perdita dati per:
· errore
dell’utente
(per es. comandi FORMAT, COPY, DISKCOPY errati);
· deterioramento
del supporto magnetico;
· errore
di un programma applicativo;
· etc.
č necessario avere copie dei file (dati e programmi)
Comando MSBACKUP
|
· copia da hard-disk su piů dischetti
· copie non leggibili, utili solo per il ripristino dei dati
· dischetti utilizzati sovrascritti
· ripristino nel giusto ordine
F i l e B a t c h
File di testo contenente comandi
Msdos
AUTOEXEC.BAT
= file batch speciale eseguito all'avvio
Max 10 parametri: %0 ... %9 (%0 = nome del file batch)
Esempi di file
batch
FILECOM.BAT
(senza parametri):
COPY MIOFILE.TXT TUOFILE.TXT
PAUSE
TYPE
TUOFILE.TXT
PRINT
FILECOM.BAT
FILECOM.BAT (con parametri):
COPY %1.TXT %2.TXT
PAUSE
TYPE %2.TXT
PRINT %0.BAT
FILECOM MIOFILE TUOFILE
==> MIOFILE
sostituisce %1 e TUOFILE sostituisce %2
Comandi
utilizzabili solo nei file batch:
· GOTO etichetta (salto
incondizionato)
· PAUSE [messaggio] (visualizza un messaggio e si ferma)
· REM [commento] (visualizza il commento, se ECHO č ON)
· FOR ... DO ... (esegue cicli)
Il comando:
FOR %%F IN (F1 F2 F3) DO DIR
%%F
produce lo
stesso effetto dei tre comandi:
DIR F1
DIR F2
DIR F3
·
IF condizione comando
(il comando č eseguito se la
condizione č vera)
Condizione:
-
di errore (variabile ERRORLEVEL)
-
di uguaglianza: stringa1 == stringa2
-
di esistenza file: EXIST nomefile
-
NOT (negazione)
Esempio:
rem
COPIAMI.BAT
set TARGET =
%1
:CICLO
shift
if
"%1" == "" goto FINE
copy %1
%TARGET%
goto CICLO
:FINE
echo Copia
completata.