Al termine del corso, lo studente:
By the end of the course:
Al termine del corso, lo studente:
By the end of the course:
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.
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.
Durante l'esame orale, lo studente dovrà rispondere ai quesiti seguendo uno schema "problema-soluzione-analisi", curando precisione e appropriatezza del linguaggio.
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.
Conoscenze di base di programmazione e sull’architettura di un calcolatore.
Basic knowledge of programming and computer architecture.
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.
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.
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.
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.
Libro di testo:
P. Ancilotti, M. Boari, A .Ciampolini, G.Lipari, Sistemi Operativi, 2ed, Mc Graw-Hill.
Textbook:
P. Ancilotti, M. Boari, A .Ciampolini, G.Lipari, Sistemi Operativi, 2ed, Mc Graw-Hill.
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
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