Scheda programma d'esame
OPERATING SYSTEMS
MARCO AVVENUTI
Academic year2023/24
CourseCOMPUTER ENGINEERING
Code544II
Credits9
PeriodSemester 1
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
SISTEMI OPERATIVIING-INF/05LEZIONI90
MARCO AVVENUTI unimap
MAURIZIO PALMIERI 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 in 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 acquire knowledge about the models, organization and techniques used in a multiprogrammed operating system
  • students will acquire the principles of concurrent programming
  • students will possess 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 identifying a solution to the problems proposed by the teacher
  • The final assessment will be carried out through an oral exam, during which the student will be evaluated for his ability to understand, present and solve problems related to operating systems, using an appropriate terminology
Capacità

Al termine del corso, lo studente:

  • saprà svolgere le funzioni fondamentali di amministratore di un sistema operativo 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 administrator in a UNIX-based operating system 
  • 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 a unambiguous technical language in defining 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 ai quesiti 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 questions 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 support of a co-teacher; students can use both provided desktop PCs 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. 

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 evolution of operating systems. Recall of computer architectures. 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. Recall 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.

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 può essere suddivisa in due parti: inizialmente, ai candidati viene richiesto di rispondere, generalmente in forma scritta, 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 can be carried out in two phases: first, candidates are asked to give written answers 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: 31/07/2023 10:36