Docente
|
DE VIRGILIO ROBERTO
(programma)
- Computer Architecture, CPU, Registry, execution, interrupt, memory hierarchy, I/O, procedure - Panoramica sui sistemi operativi moderni: definizione di sistema operativo, scopi, architettura a strati, kernel/user mode, caratteristiche salienti processi: dispatching, stati, descrizione e controllo, modelli tipici di sistemi operativi e di uso della memoria nei processi - tecniche di gestione della memoria centrale: allocatori di memoria, partitioning, best/first/next fit, buddy algorithm, paging, segmentation - Memoria virtuale. (parte del materiale è solo su slides), - Generalità: process address space, page fault, trashing, policies: fetch cleaning eviction placement, page buffering, load control, disk caching, memory mapped files. - Hw support: paginazione, page tables a più livelli, inverted page tables, modelli MAS e SAS, TLB, considerazioni sulla grandezza delle pagine, segmentazione, segmentazione paginata - Resident set management: OPT, LRU, FIFO, CLOCK, CLOCK con bit di modifica, Aging. - Working set: definizione, comportamento in transitorio, relazione con LRU, approssimazione mediante PFF. - Scheduling a breve medio e lungo termine, algoritmi per cpu scheduling: FCFS, RR, VRR, SPN, SRT, FB, comparazioni, linux 2.6 - Disk Scheduling, RAID (materiale solo su slides) - UNIX File Management, inode, Linux VFS, ext2
-gestione dei processi in linguaggio C
- introduzione a linux - documentazione in linea (man, info, less), organizzazione del filesystem, primi comandi (ls, pwd, cd, cat). - la shell: bash, prompt, 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 - editors e ambienti grafici: vi, emacs, X, window manager, gnome, kde, kwrite, gedit - linux: shell, ambiente, filtri, piping - Linux e shell: i processi, gli stati sleeping ready/running e stopped, terminali di controllo, standard input, output, error, I/O, redirection, ps, top, pstree, ^C, ^Z, processi in background, bg, fg, &, kill, kill -9, segnali - linux: espressioni regolari e grep, sed, stdin, stdout, stderr, redirection (,,, 2), esecuzione in background (&), and (&&), or (||), time, alias, du, df, g(un)zip, b(un)zip, (un)lzma, tar - Scripting e awk (patterns, statements, costrutti per il controllo di flusso, variabili, array, $0..$n, FS, RS, NR, NF, esempi d'uso). - linux filesystem: mount, stat, ln - Debugger: gdb stepping, breakpoints, watching, backtrace. Comandi gdb: r, quit, b, info br, help, l, n, s, dis, del, bt, frame, c, ignore, cond, p, display.
- virtualizzazione di servizi: Docker - Docker Run - Terminology -2.0 Webapps with Docker - Docker Images - Dockerfile - Docker on AWS -3.0 Multi-container Environments - Docker Network - Docker Compose
(testi)
Il corso è in parte basato sul testo
W. Stallings, "Operating Systems: Internals and Design Principles", 6th edition. Prentice Hall.
Tuttavia alcuni argomenti sono trattati solo sulle slide linkate nel programma del corso. Per le parti pratiche non vi sono testi di riferimento e si presume che lo studente segua le lezioni ma la seguente documentazione può essere molto utile.
Documentazione on-line dei comandi Unix/Linux installati nel sistema stesso. M. Cooper - Advanced Bash-Scripting Guide Uno qualsiasi dei Tutorial per Awk Uno qualsiasi dei Tutorial per Programmazione in Linguaggio C
|