Introduction to computer architecture and operating systems (2016/2017)

Course code
Tiziano Villa
Academic sector
Language of instruction
Teaching is organised as follows:
Activity Credits Period Academic staff Timetable
Teoria 9 I sem. Tiziano Villa
Laboratorio 3 II sem. Nicola Drago

Lesson timetable

Learning outcomes

The first part of the class describes how to implement an algorithm into a digital architecture. Some design alternatives are presented ranging from a pure software, running on a general purpose computer, to an ad-hoc hardware implementation. The goal is to understand the compilation steps transforming an high-level programming language into machine-level code.

The second part of the class describes the architecture of an operating system, with the objective to understand the management and synchronization of processes and resources of a general-purpose computing system.


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.

Assessment methods and criteria

Written text for the theoretical part (3/4 of final grade).

Programming projects and written text for the laboratory (1/4 of final grade).

Reference books
Activity Author Title Publisher Year ISBN Note
Teoria R.Katz, G.Borriello Contemporary logic design (Edizione 2) Pearson Education International 2005 0-13-127830-4
Teoria Y.N. Patt, S.J. Patel Introduction to Computing Systems (Edizione 2) McGrawHill 2004 978-0-07-246750-5
Teoria Franco Fummi, Mariagiovanna Sami, Cristina Silvano Progettazione Digitale (Edizione 2) McGraw-Hill 2007 8838663521
Teoria Abraham Silberschatz, Peter Baer Galvin, Greg Gagne Sistemi operativi. Concetti ed esempi. (Edizione 9) Pearson 2014 9788865183717
Teaching aids
Title Format (Language, Size, Publication date)
Architettura - Cap. 1-10 CLD Borriello-Katz  x-gzipx-gzip (it, 745 KB, 02/10/16)
Architettura - Dispense LC-3 Patt  x-gzipx-gzip (it, 6573 KB, 31/10/16)
Architettura - Lezioni Vahid  x-gzipx-gzip (en, 291 KB, 29/11/16)
Lezione Storia dei Sistemi di Calcolo  pdfpdf (en, 3100 KB, 15/01/17)
Lezioni UCB Sistemi Operativi (fino a lez. 15)  pdfpdf (en, 9620 KB, 15/01/17)
XX-TV Temi d'esame  x-gzipx-gzip (it, 2835 KB, 19/11/16)
17-02-21 Esame.pdf  pdfpdf (it, 38 KB, 08/06/17)
countDown.asm  octet-streamoctet-stream (it, 0 KB, 08/06/17)  zipzip (it, 127 KB, 27/04/17)
ElaboratoSystemCall.pdf  pdfpdf (it, 417 KB, 31/05/17)
EserciziCodeMessaggiConSoluzioni.tgz  x-gzipx-gzip (it, 41 KB, 01/06/17)
EserciziFile.txt plain plain (it, 0 KB, 20/04/17)
EserciziForkExec(caricaAnchetgz).txt plain plain (it, 1 KB, 20/04/17)
EserciziForkExec(conTraccia).tgz  x-gzipx-gzip (it, 3 KB, 20/04/17)
EserciziForkExec_Soluzioni.tgz  x-gzipx-gzip (it, 17 KB, 04/05/17)
EserciziMessaggi.tgz  x-gzipx-gzip (it, 15 KB, 11/05/17)
EserciziShell-Soluzioni.tgz  x-gzipx-gzip (it, 1 KB, 20/04/17)
EserciziShell.txt plain plain (it, 1 KB, 13/04/17)
EserciziSignalsPipe.tgz  x-gzipx-gzip (it, 28 KB, 04/05/17)
Istruction SET - LC3.pdf  pdfpdf (it, 43 KB, 07/03/17)
Lezione 1 - LC3.pdf  pdfpdf (it, 262 KB, 07/03/17)
Lezione 2 - LC3.pdf  pdfpdf (it, 369 KB, 07/03/17)
Lezione 3 - LC3.pdf  pdfpdf (it, 268 KB, 07/03/17)
SHELL - Esercizi Comandi Base.pdf  pdfpdf (it, 83 KB, 30/03/17)
SHELL - Esercizi Comandi Medio.pdf  pdfpdf (it, 133 KB, 30/03/17)
SlideSystemCall.pdf  pdfpdf (it, 594 KB, 13/04/17)
Testo Elaborato Shel-Correttol.pdf  pdfpdf (it, 128 KB, 27/04/17)
Testo Elaborato Shell.pdf  pdfpdf (it, 126 KB, 13/04/17)
toLower-LC3.asm  octet-streamoctet-stream (it, 1 KB, 08/06/17)
Unix SHELL - Lucidi.pdf  pdfpdf (it, 4992 KB, 30/03/17)