|Teoria||9||I semestre||Tiziano Villa|
|Laboratorio||3||II semestre||Nicola Drago|
Knowledge and understanding: students wiil learn the theory and practice to realize an algorithm in hardware, exploring a spectrum of options ranging from dedicated specialized devices to programs on a general-purpose processor; they will understand how a processor works and how an high-level program is translated into machine language and then executed; they will understand the organization of a computer system and of the operating systems running on it, with the related issues of correctness and efficiency.
Capabilities to apply knowledge and understanding: the students will be able to design specialized hardware for simple algorithms; translate simple programs from an high-level specification to machine language; write shell scripts using system calls in C in the UNIX environment; manage an information system, especially for what the installation and maintenance of applications and resources is concerned.
Fundamentals: information coding, Boolean functions, arithmetic.
Digital design: combinational circuits, sequential circuits, special purpose architectures (control unit + data path), programmable units.
Computer architecture: basic principles, instruction set, processor, memory hierarchy, I/O organization.
Practical exercises: assembly programming of LC-3 architecture.
Evolution and role of the operating system. Architectural concepts. Organization and functionality of an operating system.
Process Management: Processes. Process status. Context switch. Process creation and termination. Thread. User-level threads and kernel-level threads. Process cooperation and communication: shared memory, messages. Direct and indirect communication.
Scheduling: CPU and I/O burst model. Long term, short term and medium term scheduling. Preemption. Scheduling criteria. Scheduling algorithm: FCFS, SJF, priority-based, RR, HRRN, multiple queues with and without feedback. Algorithm evaluation: deterministic and probabilistic models, simulation.
Process synchronization: data coherency, atomic operations. Critical sections. SW approaches for mutual exclusion: Peterson and Dekker's algorithms, baker's algorithm. HW for mutual exclusion: test and set, swap. Synchronization constructs: semaphores, mutex, monitor.
Deadlock: Deadlock conditions. Resource allocation graph. Deadlock prevention. Deadlock avoidance. Banker's algorithm. Deadlock detection e recovery.
Memory management: Main memory. Logical and physical addressing. Relocation, address binding. Swapping. Memory allocation. Internal and external fragmentation. Paging. HW for paging: TLB. Page table. Multi-level paging. Segmentation. Segment table. Segmentation with paging.
Virtual memory: Paging on demand. Page fault management. Page substitution algorithms: FIFO, optimal, LRU, LRU approximations. Page buffering. Frame allocation: local and global allocation. Thrashing. Working set model. Page fault frequency.
Secondary memory. Logical and physical structure of disks. Latency time. Disk scheduling algorithms: FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOK. RAID.
File System: file, attributes and related operation. File types. Sequential and direct access. Directory structure. Access permissions and modes. Consistency semantics. File system structure. File system mounting. Allocation techniques: adjacent, linked, indexed. Free space management: bit vector, lists. Directory implementation: linear list, hash table.
I/O subsystem: I/O Hardware. I/O techniques: programmed I/O, interrupt, DMA. Device driver and application interface. I/O kernel services: scheduling, buffering, caching, spooling.
Practical exercises: system-level and shell programming with C.
Written test for the theoretical part with questions and exercises (3/4 of the final grade).
Programming projects and written test for the laboratory (1/4 of final grade).
|Teoria||R.Katz, G.Borriello||Contemporary logic design (Edizione 2)||Pearson Education International||2005||0-13-127830-4|
|Teoria||Franco Fummi, Mariagiovanna Sami, Cristina Silvano||Progettazione Digitale (Edizione 2)||McGraw-Hill||2007||8838663521|
|Title||Format (Language, Size, Publication date)|
|Architettura - Cap. 1-10 CLD Borriello-Katz||x-gzip (en, 745 KB, 01/10/18)|
|Architettura - Dispense LC3-Patt||x-gzip (it, 6576 KB, 03/12/18)|
|Architettura - Lezioni Vahid||x-gzip (it, 291 KB, 03/12/18)|
|Lezione Storia dei Sistemi di Calcolo||pdf (en, 3100 KB, 11/01/19)|
|Lezioni UCB Sistemi Operativi (fino a lez. 15)||pdf (en, 9620 KB, 11/01/19)|
|XX-TV Temi d'esame||x-gzip (it, 3914 KB, 23/11/18)|
|BASH - Elenco comandi di base shell||pdf (it, 236 KB, 29/03/19)|
|BASH - Esercizi di base gestione file e procesi||pdf (it, 228 KB, 29/03/19)|
|BASH - Esercizi su utilizzo SHELL||plain (it, 2 KB, 05/04/19)|
|BASH - Lucidi Unix Shell.pdf||pdf (it, 4992 KB, 22/03/19)|
|BASH- Progetto di laboratorio 2019.pdf||pdf (it, 545 KB, 25/04/19)|
|LC3 - ASCII TABLE.pdf||pdf (it, 91 KB, 22/03/19)|
|LC3 - Esercizi.pdf||pdf (it, 255 KB, 22/03/19)|
|LC3 - IstructionSet.pdf||pdf (it, 43 KB, 08/03/19)|
|LC3 - Lezione1.pdf||pdf (it, 474 KB, 08/03/19)|
|LC3 - Lezione2.pdf||pdf (it, 540 KB, 08/03/19)|
|LC3 - Lezione3.pdf||pdf (it, 409 KB, 15/03/19)|
|SystemCall - Esercizio su fork dup exec||octet-stream (it, 1 KB, 27/05/19)|
|SystemCall - Esercizio su fork dup exec Pipe||octet-stream (it, 1 KB, 27/05/19)|