08574 - Operating Systems

Academic Year 2021/2022

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.
  • Concurrent programming.
  • Deadlock, Starvation e Busy Waiting.
  • Inter Process Communications.
  • CPU scheduling.
  • Memory management and virtual memory.
  • Secondary memory management and file systems.
  • I/O management.
  • Case study: Linux and Windows.
  • Linux Kernel.
  • 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.

    In consideration of the type of activity and the teaching methods adopted, the attendance of this training activity requires the preventive participation of all students in the training modules 1 and 2 on safety in the study places, in e-learning mode [https://elearning-sicurezza.unibo.it/ ].


    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.

    PLEASE NOTE: as long as the covid emergency lasts, the examination tests will be carried out online, with the students at home and working on their pc. In such a case, both practical and written tests will last only one hour. To be able to take the practical test, the student will have to install a shell bash, the gcc compiler, make, tar, wget commands, and libraries to use posix threads on his pc. Please, verify that you can complete and execute all the examples of concurrent programming and the bash scripts presented in lesson.
    Students who cannot equip the instruments indicated above, inform me as soon as possible and we will define together an alternative method to take the exam.

    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

    SDGs

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

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