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.