Offerta Didattica

 

INFORMATICA

OPERATING SYSTEMS

Classe di corso: L-31 - Scienze e tecnologie informatiche
AA: 2021/2022
Sedi: MESSINA
SSDTAFtipologiafrequenzamoduli
INF/01CaratterizzanteLiberaLibera
CFUCFU LEZCFU LABCFU ESEOREORE LEZORE LABORE ESE
128049648048
Legenda
CFU: n. crediti dell’insegnamento
CFU LEZ: n. cfu di lezione in aula
CFU LAB: n. cfu di laboratorio
CFU ESE: n. cfu di esercitazione
FREQUENZA:Libera/Obbligatoria
MODULI:SI - L'insegnamento prevede la suddivisione in moduli, NO - non sono previsti moduli
ORE: n. ore programmate
ORE LEZ: n. ore programmate di lezione in aula
ORE LAB: n. ore programmate di laboratorio
ORE ESE: n. ore programmate di esercitazione
SSD:sigla del settore scientifico disciplinare dell’insegnamento
TAF:sigla della tipologia di attività formativa
TIPOLOGIA:LEZ - lezioni frontali, ESE - esercitazioni, LAB - laboratorio

Obiettivi Formativi

L'obiettivo principale del corso è l'acquisizione delle conoscenze di base sulla struttura dei moderni Sistema Operativoi"general purpose” mettendo in evidenza i meccanismi di basso livello che rendono possibile il funzionamento multiprogrammato, distribuito e virtualizzato.

Learning Goals

The main objective of the course is to acquire basic knowledge on the structure of modern "general purpose" operating systems, highlighting the low-level mechanisms that make possible to have multi-programmed, distributed and virtualized activities.

Metodi didattici

Al fine di raggiungere gli obiettivi formativi previsti, il corso si articola attraverso lezioni frontali, esercitazioni in aula, esercitazioni guidate dal docente. Tutte le attività sono svolte con supporto di slide delle lezioni. Le slide presentate sono condivise tramite la classe MS Teams dedicata.

Teaching Methods

In order to achieve the expected objectives, the course is organized in lectures, practical based lessons in the class and guided exercises with teacher support. All activities are carried out with the support of lecture slides. Slides presented during the lecture are shared through the MS Teams classroom.

Prerequisiti

Conoscenze di programmazione C, e di algoritmi e strutture dati avanzate. Nozioni di architetture dei calcolatori.

Prerequisites

Knowledge of C programming, advanced algorithms and data structures. Basic knowledge of computer architectures.

Verifiche dell'apprendimento

La verifica orale ha una valutazione massima di 26. L’esame prevede un progetto opzionale, a scelta dello studente. Il progetto viene discusso in sede di verifica orale ed ha una valutazione compresa tra 0 e 5. Il voto finale è dato dalla somma del voto dell’esame orale ed, eventualmente, del progetto.

Assessment

The oral exam gives a maximum score of 26. The exam includes an optional project, chosen by the student. The project is discussed during the oral exam and has a score between 0 and 5. The final evaluation is given by the sum of the oral exam and, possibly, the project scores.

Programma del Corso

------------------------------------------------------------ Modulo: A000869 - VIRTUALIZATION SYSTEMS ------------------------------------------------------------ Sistemi di I/O: Hardware di I/O, I/O memory mapped; tecniche per la gestione dei dispositivi di I/O: a controllo di programma, Polling, I/O interrupt driven e Direct Memory Access; interfaccia di I/O delle applicazioni, sottosistema I/O del kernel; Loadable Kernel Module (LKM), Linux I/O, directory /dev e /proc. Memoria di massa: struttura dei dispositivi di memorizzazione, scheduling dei dischi rigidi e di dispositivi NVM, rilevamento e correzione degli errori; connessione dei dispositivi di memorizzazione: host attached storage, network-attached storage, cloud storage, storage area network, storage array; mirroring, striping, strutture RAID, Multiple Device Administrator (mdadm) tool. Reti e sistemi distribuiti: sistemi operativi di rete e distribuiti; file system distribuiti: Network File System (NFS),Google File System (GFS) e Hadoop File System (HDFS). Macchine virtuali: trap and emulate, traduzione binaria, assistenza hardware; tipologie di virtualizzazione: hypervisor, paravirtualizzazione, virtualizzazione dell'ambiente di programmazione, emulazione. Gestione di CPU, memoria, archiviazione e dispositivi aggiuntivi per una VM. Comprensione delle applicazioni in una VM. Confronto tra hypervisor, VMware ESX, CitrixXen, Microsoft Hyper-V, altre soluzioni. Migrazione delle VM, Migrazione Cold e Live, pre-copy e post-copy. Differenza tra Container e Macchine Virtuali, Orchestrazione di VM. Container engine. Applicazioni monolitiche e orientate ai microservizi. Cloud computing, livelli di servizi: IaaS, PaaS e SaaS; Cloud pubbliche, private e ibride; Windows Azure, Google App Engine, Amazon Web Services; Cloud Operating System, scalabilità verticale ed orizzontale. Componenti architetturali di un IaaS, gestione distribuita delle infrastrutture virtuali, tecniche di schedulazione per la prenotazione anticipata di capacità, gestione della capacità per soddisfare i requisiti di SLA. Openstack. La Supply Chain Cloud, le metodologie di integrazione, un framework di integrazione sensore-cloud. ------------------------------------------------------------ Modulo: A000939 - OPERATING SYSTEMS ------------------------------------------------------------ Le strutture dei Sistemi operativi Processi Threads & Concurrency CPU Scheduling Strumenti di sincronizzazione Esempi di sincronizzazione deadlock memoria centrale memoria virtuale struttura della memoria di massa sistemi di I/O File-System Interface File-System Internals Security Protection Macchine virtuali Real-Time Operating Systems

Course Syllabus

------------------------------------------------------------ Modulo: A000869 - VIRTUALIZATION SYSTEMS ------------------------------------------------------------ I/O systems: I/O hardware, memory-mapped I/O; techniques for I/O device management: program control, Polling, I/O interrupt driven and Direct Memory Access; application I/O interface, kernel I/O subsystem; Loadable kernel module (LKM), Linux I/O, /dev and /proc directories. Mass storage: structure of memory devices, programming of hard disks and NVM devices, error detection and correction; connection of the devices: host attached storage, network-attached storage, cloud storage, storage area network, storage array; mirroring, striping, RAID structures, Multiple Device Administrator (mdadm) tool. Networks and distributed systems: network and distributed operating systems; distributed file systems: Network File System (NFS), Google File System (GFS) and Hadoop File System (HDFS). Virtual machines: trap and emulate, binary translation, hardware assistance; types of virtualization: hypervisor, paravirtualization, virtualization of the programming environment, emulation. Managing CPU, Memory, Storage and additional devices for a VM. Understanding applications in a VM. Comparing Hypervisors, VMware, ESX, CitrixXen, Microsoft Hyper-V , Other Solutions. VM migration, Cold and Live migration, pre-copy and post-copy. Difference between Containers and Virtual Machines, VM Orchestration. Container engine. Monolithic and microservice oriented applications. Cloud computing, service levels: IaaS, PaaS and SaaS; public, private and hybrid clouds; Windows Azure, Google App Engine, Amazon Web Services; Cloud operating system, vertical and horizontal scalability. Architectural components of an IaaS, Distributed Management of Virtual Infrastructures, Scheduling Techniques for Advance Reservation of Capacity, Capacity Management to meet SLA Commitments. Openstack. The Cloud Supply Chain. the Integration Methodologies, a framework of Sensor—Cloud Integration. ------------------------------------------------------------ Modulo: A000939 - OPERATING SYSTEMS ------------------------------------------------------------ Course Syllabus Chapter 1 1.1 What Operating Systems Do 1.2 Computer-System Organization 1.3 Computer-System Architecture 1.4 Operating-System Structure 1.5 Resource Management 1.6 Protection and Security 1.7 Virtualization 1.8 Distributed Systems 1.9 Kernel Data Structures 1.10 Computing Environments 1.11 Free/Libre and Open-Source Operating Systems Chapter 2 Operating-System Structures 2.1 Operating-System Services 2.2 User and Operating-System Interface 2.3 System Calls 2.4 System Services 2.5 Linkers and Loaders 2.6 Why Applications Are Operating-System Specific 2.7 Operating-System Design and Implementation 2.8 Operating-System Structure 2.9 Building and Booting an Operating System 2.10 Operating-System Debugging Chapter 3 Processes 3.1 Process Concept 3.2 Process Scheduling 3.3 Operations on Processes 3.4 Interprocess Communication 3.5 IPC in Shared-Memory Systems 3.6 IPC in Message-Passing Systems 3.7 Examples of IPC Systems 3.8 Communication in Client-Server Chapter 4 Threads & Concurrency 4.1 Overview 4.2 Multicore Programming 4.3 Multithreading Models 4.4 Thread Libraries 4.5 Implicit Threading 4.6 Threading Issues Chapter 5 CPU Scheduling 5.1 Basic Concepts 5.2 Scheduling Criteria 5.3 Scheduling Algorithms 5.4 Thread Scheduling 5.5 Multi-Processor Scheduling 5.6 Real-Time CPU Scheduling 5.8 Algorithm Evaluation Chapter 6 Synchronization Tools 6.1 Background 6.2 The Critical-Section Problem 6.3 Peterson’s Solution 6.4 Hardware Support for Synchronization 6.5 Mutex Locks 6.6 Semaphores 6.7 Monitors 6.8 Liveness Chapter 7 Synchronization Examples 7.1 Classic Problems of Synchronization 7.2 Synchronization within the Kernel 7.3 POSIX Synchronization Chapter 8 Deadlocks 8.1 System Model 8.2 Deadlock in Multithreaded Applications 8.3 Deadlock Characterization 8.4 Methods for Handling Deadlocks 8.5 Deadlock Prevention 8.6 Deadlock Avoidance 8.7 Deadlock Detection 8.8 Recovery from Deadlock Chapter 9 Main Memory 9.1 Background 9.2 Contiguous Memory Allocation 9.3 Paging 9.4 Structure of the Page Table 9.5 Swapping Chapter 10 Virtual Memory 10.1 Background 10.2 Demand Paging 10.3 Copy-on-Write 10.4 Page Replacement 10.5 Allocation of Frames 10.6 Thrashing 10.7 Memory Compression 10.8 Allocating Kernel Memory Chapter 11 Mass-Storage Structure 11.1 Overview of Mass-Storage Structure 11.2 HDD Scheduling 11.3 NVM Scheduling 11.4 Error Detection and Correction 11.5 Storage Device Management 11.6 Swap-Space Management 11.7 Storage Attachment 11.8 RAID Structure Chapter 12 I/O Systems 12.1 Overview 12.2 I/O Hardware 12.3 Application I/O Interface 12.4 Kernel I/O Subsystem 12.5 Transforming I/O Requests to Hardware Operations 12.6 STREAMS Chapter 13 File-System Interface 13.1 File Concept 13.2 Access Methods 13.3 Directory Structure 13.4 Protection 13.5 Memory-Mapped Files Chapter 14 File-System Implementation 14.1 File-System Structure 14.2 File-System Operations 14.3 Directory Implementation 14.4 Allocation Methods 14.5 Free-Space Management 14.6 Efficiency and Performance 14.7 Recovery Chapter 15 File-System Internals 15.1 File Systems 15.2 File-System Mounting 15.3 Partitions and Mounting 15.4 File Sharing 15.5 Virtual File Systems 15.6 Remote File Systems 15.7 Consistency Semantics 15.8 NFS Chapter 16 Security 16.1 The Security Problem 16.2 Program Threats 16.3 System and Network Threats 16.4 Cryptography as a Security Tool 16.5 User Authentication 16.6 Implementing Security Defenses Chapter 17 Protection 17.1 Goals of Protection 17.2 Principles of Protection 17.3 Protection Rings 17.4 Domain of Protection 17.5 Access Matrix 17.6 Implementation of the Access Matrix 17.7 Revocation of Access Rights 17.8 Role-Based Access Control 17.9 Mandatory Access Control (MAC) 17.10 Capability-Based Systems 17.11 Other Protection Improvement Methods 17.12 Language-Based Protection Chapter 18 Virtual Machines 18.1 Overview 18.2 History 18.3 Benefits and Features 18.4 Building Blocks 18.5 Types of VMs and Their Implementations 18.6 Virtualization and Operating-System Components Real-Time Operating Systems 1. RTOS families 2. Differences between RTOS and general OS 3. Applications of RTOS 4. Free RTOS 5. Lua RTOS

Testi di riferimento: ------------------------------------------------------------ Modulo: A000869 - VIRTUALIZATION SYSTEMS ------------------------------------------------------------ A.Silberschatz, P.B.Galvin, G.Gagne, Operating System Concepts, Matthew Portnoy, Virtualization Essentials, 2nd Edition, John Wiley & Sons. Rajkumar Buyya, James Broberg , Andrzej M. Goscinski. CLOUD COMPUTING Principles and Paradigms, Wiley. ------------------------------------------------------------ Modulo: A000939 - OPERATING SYSTEMS ------------------------------------------------------------ 1. Operating System Concepts Tenth Edition Avi Silberschatz Peter Baer Galvin Greg Gagne John Wiley & Sons, Inc. ISBN 978-1-118-06333-0 2. FreeRTOS Documentation https://www.freertos.org/Documentation/RTOS_book.html 3. Mark Mitchell, Jeffrey Oldham, Alex Samul, "Advanced Linux Programming" (https://richard.esplins.org/static/downloads/linux_book.pdf)

Elenco delle unità didattiche costituenti l'insegnamento

Docente: MARIA FAZIO

Orario di Ricevimento - MARIA FAZIO

Dato non disponibile

Docente: ANTONINO GALLETTA

Orario di Ricevimento - ANTONINO GALLETTA

Dato non disponibile
  • Segui Unime su:
  • istagram32x32.jpg
  • facebook
  • youtube
  • twitter
  • UnimeMobile
  • tutti