This course introduces the structure of operating systems, the functions of the modules they are organized into, and the algorithms and software structures used.
The aim of the course is to help students develop awareness of fundamentals of modern Operating Systems (OS) and system programming through current ones. To this end, the course will teach the algorithms and policies necessary to manage the internals of operating systems, specifically interprocess communications, process scheduling, resource management, memory management, file systems, and I/O scheduling, as well as the architectures of operating systems and computer networks. Particular attention will be given to a comparative overview of Microsoft operating systems (especially Windows 10/11) and Linux distributions (such as Ubuntu), as well as the structure of the Internet and its main services based on TCP/IP. The course also aims to provide students with practical skills on system programming through hands-on activities.
At the end of this course, students will be expected to be able to proficiently perform system programming tasks, as well as to explain differences among current operating systems architectures (either server/desktop/mobile/embedded). The students will known the principal management policies and algorithms to achieve various tasks in operating systems and use the acquired skills to tune better their programs.
Lectures (in presence and/or online), supported by videotutorials and laboratory exercises (even virtual) and by in-depth seminars.
The teaching methodology used in the course will be based on the active involvement of students in the learning process, and will be re-contextualized for integrated digital didactics (IDD). It will therefore be a hybrid methodology between frontal lessons, Flipped Classroom.
PART ONE - Fundamentals of Operating Systems
The structure of a generic operating system, with an emphasis on the algorithms and data structures needed to perform various tasks to manage processes, resources, memory, files, and IO devices. Topics:
PART TWO - System Programming
Ricevimento: In attendance: by appointment via e-mail at the DIBRIS (office TA.10, Villa Bonino - Mezzanine floor) in Viale Francesco Causa 13, Genoa or at the 3DLabFactory (room T.008, Palazzina Lagorio, ground floor), Campus di Savona, Via A. Magliotto 2, Savona Remote call: by appointment via e-mail at gianni.vercelli@unige.it During the semester the teacher will be available at the end of the planned activities, always by appointment, except impediments.
GIANNI VIARDO VERCELLI (President)
The timetable for this course is available here: Portale EasyAcademy
Written exam based on closed and open–ended questions, followed by oral discussion.
The written test will assess:
Students with certification of Specific Learning Disabilities (SLD), disabilities, or other special educational needs must contact the instructor at the beginning of the course to agree on teaching and examination methods that, while respecting the course objectives, take into account individual learning styles and provide appropriate compensatory tools. It is reminded that the request for compensatory/dispensatory measures for exams must be sent to the course instructor, the School representative, and the “Settore servizi per l'inclusione degli studenti con disabilità e con DSA” office (dsa@unige.it<mailto:dsa@unige.it>) at least 10 working days before the test, as per the guidelines available at the link: https://unige.it/disabilita-dsa