![]() |
DEIS
- Facoltà di Ingegneria - Università di Bologna
Sistemi Operativi L-A |
![]() |
|
Presentazione del corso
Introduzione
- Che cosè un sistema operativo: ruolo, funzionalità e struttura
- Evoluzione dei sistemi operativi: batch, multiprogrammazione, time-sharing
- Richiami sul funzionamento di un elaboratore: interruzioni e loro gestione, I/O, modi di funzionamento single e dual, system call
Organizzazione di un Sistema Operativo
- Funzionalità
- Struttura: sistemi monolitici e modulari, sistemi stratificati, macchina virtuale
- Organizzazione e funzionalità del sistema operativo UNIX/Linux
- Organizzazione e funzionalità del sistema operativo MSWindowsXP
Processi e Thread
- Il concetto di processo pesante/leggero e sua rappresentazione nel sistema operativo
- Stati di un processo
- Gestione dei processi leggeri/pesanti da parte del SO
- Operazioni sui processi
- Classificazione dei processi
- La gestione dei processi in UNIX/Linux:
- stati, rappresentazione, gestione (scheduling), operazioni e comandi relativi ai processi
Scheduling della CPU
- Concetti generali: code, preemption, dispatcher
- Criteri di scheduling
- Algoritmi di scheduling: FCFS, SJF, con priorità, round-robin, con code multiple,
- Scheduling in UNIX, Linux e WinXP
Interazione tra processi mediante memoria condivisa
- il problema della sincronizzazione tra processi
- sezione critica e mutua esclusione
- i semafori
- strumenti hardware per la sincronizzazione: test-and-set
Interazione tra processi mediante scambio di messaggi:
- comunicazione diretta/indiretta,simmetrica/asimmetrica, buffering
- interazione tra processi Unix:
- comunicazione mediante pipe e fifo, sincronizzazione tramite segnali
Gestione della Memoria
- spazi degli indirizzi e binding
- allocazione della memoria
- contigua:
- a partizione singola e partizioni multiple; frammentazione;
- non contigua:
- paginazione, segmentazione
- memoria virtuale
- gestione della memoria in UNIX
Gestione del File System
- file system e sua realizzazione
- il file system di UNIX:
- organizzazione logica e fisica, comandi e system call per la gestione e laccesso a file/direttori
- protezione
Protezione
- Argomenti teorici
- Programmazione di sistema e applicativa: system call C/Linux, file comandi shell, Java thread
- Esercitazioni pratiche (attività in laboratorio)
Elementi di programmazione
- Algoritmi e linguaggi di programmazione
- Elementi di architettura dei calcolatori
- Linguaggio C
- Linguaggio Java