Sistemi Operativi I
Anno Accademico 2005-2006
nuovo ordinamento, laurea specialistica, 1° anno, 5 cfu
Docente: Maurizio Pizzonia
Orario di ricevimento studenti:
tutti i mercoledi' dalle 17:30 alle 18:30 - DIA stanza 225
Periodo: 22 febbraio 2005 - 4 aprile 2005
Orario: 15:45 - 17:15
Aula: N1
Risultati dell'appello del 21 settembre 2006
Risultati
La verbalizzazione relativa si terrà
lunedì 16 ottobre 2006 alle ore 13:30 stanza 225.
E' necessario portare un documento e il libretto.
I risultati non sono protetti da password in conformità con un parere informale del Garante per la Protezione dei Dati Personali.
Risultati dell'appello del 7 luglio 2006
Risultati
La verbalizzazione relativa si terrà
venerdì 15 settembre 2006 alle ore 14:30 stanza 225.
E' necessario portare un documento e il libretto (o lo statino).
I risultati non sono protetti da password in conformità con un parere informale del Garante per la Protezione dei Dati Personali.
Mailing list degli avvisi relativi al corso.
Tutti gli studenti si devono iscrivere alla mailing list di avvisi tramite la quale potranno essere avvertiti tempestivamente di eventi relativi al corso e alle attività correlate (esami, ricevimento studenti, ecc).
http://list.dia.uniroma3.it/mailman/listinfo/so
L'archivio degli avvisi inviati alla mailing list e' disponibile on-line.
Solo il docente può inviare messaggi, gli studenti non possono postare messaggi alla mailing list.
Sintesi degli obiettivi del corso
Gli obiettivi del corso sono di fornire
- competenze sulla struttura di un generico sistema operativo moderno
- competenze sulla struttura di un sistema operativo Unix con particolare riferimento al sistema Linux
- conoscenza delle metodologie usate per risolvere le problematiche tipiche della gestione delle risorse in un sistema operativo moderno
- abilità nel uso di una piattaforma Unix a livello utente e amministratore
- abilità nello scripting Unix
- abilità di base nella programmazione di sistema
Materiale didattico
Esami e valutazione
Per chi intende fare l'esame è obbligatorio iscriversi mediante il servizio di prenotazione on-line prenota.uniroma3.it
L'esame prevede una prova di laboratorio ed una prova scritta.
La prova di laboratorio ha l'obiettivo di verificare le capacità
dello studente nella
realizzazione di script e nella programmazione di sistema. Durante la prova di laboratorio
è possibile consultare la documentazione on-line.
La prova scritta ha l'obiettivo di verificare le conoscenze dello studente
degli aspetti metodologici e architetturali relativi ad i sistemi operativi.
Testi della prova d'esame del 26 aprile 2005:
Testi della prova d'esame del 18 luglio 2005:
Testi della prova d'esame del 20 settembre 2005:
Testi della prova d'esame del 28 aprile 2006:
Testi della prova d'esame del 7 luglio 2006:
Testi della prova d'esame del 21 settembre 2006:
Programma delle Lezioni
Gli argomenti in corsivo vanno considerati provvisori
Gran parte del materiale è adattato dal materiale distribuito da W. Stallings.
- Introduzione al corso (22 feb. 2005)
- architettura di un elaboratore, CPU, registri, esecuzione di una istruzione, interrupt, gerarchie di memoria, localita', I/O, chiamate di procedura (22,23 feb. 2006)
- Panoramica sui sistemi operativi moderni: definizione di sistema operativo, scopi, architettura a strati, kernel/user mode, caratteristiche salienti (24,27 feb. 2006)
- introduzione a linux: bash, prompt, documentazione in linea (man e info), organizzazione del filesystem, primi comandi (ls, pwd, cd, cat) (27 feb. 2006)
-
Introduzione a linux: organizzazione del filesystem, comandi interni ed esterni, help, variabili di abiente, env, $PATH, export; comandi per la gestione di file e directory: touch, mv, rm, cp, mkdir, rmdir, vi, emacs. Stdin/out/err, pipelining, sort (28 feb. 2006)
- processi: dispatching, stati, descrizione e controllo
(1,3 mar. 2006)
- Linux e shell: i processi, gli stati sleeping ready/running e stopped, terminali di controllo, ps, top, pstree, ^C, ^Z, processi in background, bg, fg, &, kill, kill -9, segnali (3 marzo 2006)
- tecniche di gestione della memoria centrale: partitioning, best/first/next fit, buddy algorithm, paging, segmentation (6 marzo 2006)
- shell: sostituzioni ed espansioni (brace, tilde, variabili, command, pathname), word splitting, stderr redirection append, filtri (sort, uniq, tr, grep) (8 marzo 2006)
- filtri: wc, head tail awk (patterns, statements, costrutti per il controllo di flusso, variabili, $0..$n, FS, OFS, RS, NR, NF, esempi d'uso). (10 marzo 2006)
- shell: Introduzione allo scripting: #!, parametri, for-do-done, seq, test, if-else-fi. (13 marzo 2006)
- memoria virtuale: generalità, paginazione, page tables a più livelli, inverted page tables (materiale solo su slides), TLB, considerazioni sulla grandezza delle pagine, segmentazione, segmentazione paginata (13 marzo 2006)
- memoria virtuale e disk cache (materiale solo su slides), demand paging, OPT, LRU, FIFO, CLOCK (materiale solo su slides), aging (materiale solo su slides), page buffering, RS management, working set, PFF (materiale solo su slides), cleaning policy, load control, process suspension (14,15,17 marzo 2006)
-
c: intro, struttura, preprocessore, compilatore, linker. File oggetto. Compilazione con librerie statiche e dinamiche. Comandi cc, file, ldd, objdump, make (20 marzo 2006)
-
shell: strace, ltrace, time. Makefiles: regole, regole predefinite, variabili. Debugger: stepping, breakpoints e contati, watching, backtrace. Comandi: gdb (r, b, l, info, n, s, help, dis, del) (21 marzo 2006).
-
Comandi: gdb (bt, frame, info br, c, ignore, display, quit) (22 marzo 2006).
- Scheduling a breve medio e lungo termine, algoritmi per cpu scheduling: FCFS, RR, VRR, SPN, SRT, FB, comparazioni, applicazione a linux 2.6 (27,28 marzo 2006)
- shell: diff, patch, tar, gzip, zip, bzip, strip, find.(28 marzo 2006)
-
esercitazione su scripting system programming e debugger. Prova pratica del 20 settembre 2005. (29 marzo 2006)
- Disk Scheduling, RAID (31 marzo 2006)
- UNIX File Management, inode, Linux VFS, ext2 (31 marzo 2006)
- linux filesystem: fdisk -l, mount, stat, ln, /proc/devices
- shell: permessi, strace, ltrace; linux boot: init, getty, login, servizi, X, .bashrc; linux kernel: struttura dei sorgenti, configurazione, compilazione, moduli, installazione
- esercitazione su scripting
- una possibile soluzione all'esercizio su scripting "file identici"
- altro materiale per la preparazione all'esame
Appunti di informatica libera.
The Linux Documentation Project
Italian Linux Documentation Project
Jack Dent, Tony Gaddis - Guida a Unix con Linux - Apogeo
Bill McCarty - Learning Debian GNU/Linux
POSIX (IEEE Std 1003.1)
HTML.it Guida al linguaggio C
F. Quaglia, C. Demetrescu. "Programmazione in ambiente Unix"
Programming in C - UNIX System Calls and Subroutines using C,
The Linux kernel archives.
www.kernelhacking.org
Daniel P. Bovet, Marco Cesati - Understanding the Linux Kernel. O'Reilly. (3rd ed.)
Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman - Linux Device Drivers - O'Reilly (3rd ed.) (Under GNU Free Documentation License)
O'Reilly Open Books
Pagina del Collegio didattico di Ingegneria Informatica
Questa pagina è mantenuta da Mauruizio Pizzonia.