View syllabus
OPERATING SYSTEMS
MARCO AVVENUTI
Academic year2019/20
CourseCOMPUTER ENGINEERING
Code544II
Credits9
PeriodSemester 1
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
SISTEMI OPERATIVIING-INF/05LEZIONI90
MARCO AVVENUTI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Al termine del corso, lo studente:

  • avrà acquisito conoscenze relative ai modelli, all'organizzazione e alle tecniche utilizzate per realizzare un sistema operativo multiprogrammato
  • avrà acquisito i principi della programmazione concorrente
  • avrà le basi concettuali per acquisire ulteriori conoscenze su specifici sistemi operativi, inclusi sistemi embedded e sistemi in tempo reale
Knowledge

By the end of the course:

  • students will have acquired knowledge about the models, organization and techniques used to create a multiprogrammed operating system
  • students will have acquired the principles of concurrent programming
  • students will have the conceptual basis for acquiring further knowledge on specific operating systems, including embedded systems and real-time systems
Modalità di verifica delle conoscenze
  • Durante le lezioni e le esercitazioni, gli studenti saranno coinvolti nel proporre una soluzione ai problemi individuati dal docente
  • L'accertamento finale delle conoscenze sarà svolto tramite una prova orale, durante la quale lo studente sarà valutato per la sua capacità di comprendere, presentare e risolvere le problematiche relative ai sistemi operativi, usando una terminologia appropriata
Assessment criteria of knowledge
  • During the lectures, the students will be involved in proposing a solution to the problems identified by the teacher
  • The final assessment of the knowledge will be carried out through an oral exam, during which the student will be assessed for his ability to understand, present and solve problems related to operating systems, using appropriate terminology
Capacità

Al termine del corso, lo studente:

  • saprà svolgere le funzioni fondamentali di amministratore di un sistema UNIX-based
  • saprà programmare sistemi a processi in ambiente UNIX
  • sapra programmare applicazioni concorrenti (multi-threaded) usando le librerie aderenti allo standard POSIX
Skills

By the end of the course:

  • students will be able to perform the basic functions of a UNIX-based system administrator
  • students will be able to program process systems in a UNIX environment
  • students will know how to program concurrent (multi-threaded) applications using POSIX-compliant libraries
Modalità di verifica delle capacità
  • Durante le lezioni in laboratorio, lo studente verrà stimolato a risolvere esercizi ed eseguire programmi, sulla base di quesiti e template forniti dal docente
  • La verifica finale avverrà in sede di esame richiedendo allo studente di svolgere alcuni esercizi in forma scritta
Assessment criteria of skills
  • During laboratory lectures, students will be asked to solve exercises and run programs, based on questions and templates provided by the teacher
  • An assessment will take place during the final exam by requesting the student to do some exercises in writing
Comportamenti

Lo studente verrà stimolato ad usare un linguaggio tecnico non ambiguo nel definire un problema, e ad esercitare un motivato spirito critico nel descrivere e analizzare le soluzioni.

Behaviors

Students will be encouraged to use an unambiguous technical language to define a problem, as well as to exercise a motivated critical approach in describing and analyzing solutions.

Modalità di verifica dei comportamenti

Durante l'esame orale, lo studente dovrà rispondere seguendo uno schema "problema-soluzione-analisi", curando precisione e appropriatezza del linguaggio.

Assessment criteria of behaviors

During the oral examination, the student will have to answer following a "problem-solution-analysis" scheme, taking care of the accuracy and appropriateness of the language.

Prerequisiti (conoscenze iniziali)

Conoscenze di base di programmazione e sull’architettura di un calcolatore.

Prerequisites

Basic knowledge of programming and computer architecture.

Indicazioni metodologiche

Lezioni frontali, con ausilio di lavagna e slide. Esercitazioni in laboratorio con presenza di docente di supporto; si possono usare sia i PC delle aule informatiche, che i PC personali, se disponibili.

Teaching methods

Lectures, with the aid of blackboard and slide. Laboratory exercises with the presence of a support teacher; students can use both PCs in computer lab and personal PCs, if available.

Programma (contenuti dell'insegnamento)

Concetti introduttivi. Principali funzioni di un sistema operativo. Cenni storici sull’evoluzione dei sistemi operativi. Richiami di architetture dei sistemi di elaborazione. Struttura dei sistemi operativi.

Gestione dei processi. Definizione di processo. Stati di un processo. Descrittore di un processo. Code di processi. Cambio di contesto. Creazione e terminazione dei processi. Interazione tra i processi. Richiami sul nucleo di un sistema a processi. Classificazione degli algoritmi di short-term scheduling e metriche per la loro valutazione (FCFS, SJF, SRTF, RR). Schedulazione di sistemi hard real-time (RM, EDF). Thread.

Sincronizzazione dei processi. Tipi di interazione tra processi. Problema della mutua esclusione. Problemi di sincronizzazione: Produttori-Consumatori, Lettori-Scrittori, 5 Filosofi. Semafori. Monitor. Primitive send e receive. Soluzione ai problemi di mutua esclusione, sincronizzazione e comunicazione tra processi. Blocco critico: condizioni, prevenzione statica e dinamica, rilevamento e recupero.

Gestione della memoria. Introduzione alla gestione della memoria. Memoria virtuale. Tecniche di gestione della memoria: segmentazione, paginazione, rimpiazzamento.

Gestione delle periferiche (I/O)Organizzazione logica del sottosistema di I/O. Gestore di un dispositivo. Device driver. Gestione e organizzazione dei dischi.

Il file system. Organizzazione del file system. La struttura logica del file system. Accesso al file system. Organizzazione e allocazione fisica.

Protezione e sicurezza. Modelli, politiche e meccanismi di protezione. Domini di protezione. Il modello matrice degli accessi. Realizzazione della matrice degli accessi. Sistema di sicurezza multilivello. Controllo degli accessi basato sui ruoli. Autenticazione degli utenti.

Esercitazioni in laboratorio su sistema operativo Linux. Comandi, shell, editor. Processi: gestione e interazione. Librerie per programmazione multi-thread. File system. Strumenti di sviluppo.

Syllabus

Introductory concepts. Main functions of an operating system. Historical notes on the evolution of operating systems. Recalls of architectures of processing systems. Structure of operating systems.

Process management. Process definition. States of a process. Descriptor of a process. Process queues. Context-switch. Creation and termination of processes. Interaction between processes. Recalls on the kernel of a process system. Classification of short-term scheduling and metrics algorithms for their evaluation (FCFS, SJF, SRTF, RR). Scheduling of hard real-time systems (RM, EDF). Thread.

Process synchronization. Types of process interaction. Mutual exclusion. Synchronization problems: Producers-Consumers, Readers-Writers, 5 Philosophers. Semaphores. Monitor. Send and Receive primitives. Solution to problems of mutual exclusion, synchronization and communication. Deadlock: conditions, prevention, avoidance, detection and recovery.

Memory management. Introduction to memory management. Virtual memory. Memory management techniques: segmentation, pagination, replacement techniques.

I/O Subsystem. Logical organization of the I/O subsystem. Device driver. Disk management and organization.

The file system. File system organization. The logical structure of the file system. Access to the file system. Organization and physical allocation.

Protection and security. Models, policies and protection mechanisms. Domains of protection. The Access Control Matrix model. Access Control List and Capability List. Multilevel security system. Role-based access control. User authentication.

Laboratory exercises on Linux operating system. Commands, shell, editor. Processes: management and interaction. Libraries for multi-thread programming. File system. Development tools.

 

 

Introduction: need for and types of OSs; their characteristics and desirable features; brief history of OS.

Process management and synchronisation: notion of a process; virtual processor; the process control block; operations on a process; scheduling policies; synchronisation primitives; producer-consumer problems; mention of various communication mechanisms; deadlocks, Banker's algorithm.

Memory management: need for memory management; virtual memory concept; paged and non-paged allocation (and replacement) policies/strategies; mention of thrashing.

Device management: need for device management: interrupts; buffering, spooling; structure of a device driver; algorithms for I/O requests and handlers.

File system management: importance of file system; file structure and organisation; file devices and file descriptors.

Protection: motivation for security; mention of protection mechanisms; access control lists and capabilities; file protection schemes.

Laboratory: Linux OS.

Bibliografia e materiale didattico

Libro di testo:

P. Ancilotti, M.  Boari, A .Ciampolini, G.Lipari, Sistemi Operativi, 2ed, Mc Graw-Hill. 

Bibliography

Textbook:

P. Ancilotti, M.  Boari, A .Ciampolini, G.Lipari, Sistemi Operativi, 2ed, Mc Graw-Hill. 

Modalità d'esame

L'esame è composto da una prova orale.
La prova orale è suddivisa in due parti: inizialmente, ai candidati viene richiesto di rispondere, generalmente in forma scritta in un tempo compreso fra 30 e 45 minuti, ad alcuni quesiti riguardanti le esercitazioni di laboratorio. L'esame prosegue con un colloquio, della durata media di 20 minuti, tra il candidato, il docente titolare e un suo collaboratore. 

Il calendario degli appelli è stabilito dalla Scuola di Ingegneria.

E' necessario iscriversi sul sito: esami.unipi.it

Assessment methods

The final assessment consists of an oral test.

The oral test is divided into two parts: initially, candidates are asked to respond, usually in written form in a time ranging 30 to 45 minutes, to some questions regarding laboratory exercises. The exam continues with an interview, lasting 20 minutes on average, between the candidate, the professor and a collaborators.

The examination agenda is coordinated and published by the School of Engineering.

It is mandatory to register at the site: esami.unipi.it

Updated: 17/03/2020 16:45