08574 - Operating Systems

Course Unit Page

SDGs

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.

Quality education Decent work and economic growth Industry, innovation and infrastructure

Academic Year 2019/2020

Learning outcomes

The course introduces main issues related to design and implementation of modern operating systems. Moreover, the course provides the basic knowledges of their structure, implementation and system administration procedures.

Course contents

  • Introduction and history of operating systems.
  • ANSI C programming language.
  • Shell and Shell scripting.
  • Thread and processes.
  • Systems process synchronization and interprocess communication.
  • Deadlock.
  • Inter Process Communications.
  • CPU scheduling.
  • Memory management and virtual memory.
  • Secondary memory management and file systems.
  • I/O management.
  • Case study: Linux and Windows.
  • Kernel Linux.
  • Introduction to virtualization
  • Readings/Bibliography


    Silberschatz, P.B. Galvin, G. Gagne, Sistemi operativi. Concetti ed esempi, nona edizione, Pearson Education Italia (2014)
    (English version: A. Silberschatz, P.B. Galvin, G. Gagne, Operating System Concepts - Ninth Edition, John Wiley & Sons, Inc.).

    Teaching methods

    Classroom lectures and laboratory activities. The theoretical bases of the modern operating systems are presented during the traditional lectures. A lot of practical exercises are developed in the lectures so as to introduce the laboratory activities, in which the students, under the supervision of the professor, check their knowledge,  propose and solve their doubts, and improve their skill. Extensions of the lab activities are regularly suggested, and the solutions published, so as to allow individual studies and autonomous lab activities. Some laboratory activities simulate the execution of the practical exam so as to familiarize the students with the practical exam.

    Assessment methods

    The examination consists of a test of the candidate's practical skills, followed by a test regarding the theoretical aspects of the discipline. The admission to the latter test is conditioned to the positive outcome of the former.
    The 3-hours practical test is carried out in the same working environment as that used for the lab activities. It proposes a set of problems. The candidate has to design and implement a set of simply applications and scripts.
    The theoretical test is carried out as a 2-hours written exam (open questions). The test may involve any subject presented during the course, with a strong attention to those presented during lectures.

    Teaching tools

    Lessons: projection of slideshows and practical demonstrations of the concepts, algorithms, techniques, API and tools proposed in the lessons. The practical demonstration uses scripts and ANSI C code that are provided by means of the web page of the course. Hence, the students can follow and replicate the demonstrations on their laptot using the wifi connections available in the classroom.

    Practical laboratory activity: the teacher will guide the students to learn API and tools and solve problems regarding almost every subject of the course. A personal virtualized environment is available, where students can work with administrative privileges, allowing to simulate realistic system administrator operational procedures.

    Students can deploy the same virtual machines on their own personal computers, thus being able to access at home the same work environment they use in the laboratory. Obviously, the same work environment is used in the practical demonstrations during the lessons.

    Links to further information

    http://www.cs.unibo.it/~ghini/didattica/sistemioperativi/sistemioperativi_index.html

    Office hours

    See the website of Vittorio Ghini