Università degli Studi di Urbino Carlo Bo / Portale Web di Ateneo


SISTEMI OPERATIVI
OPERATING SYSTEMS

Sistemi Operativi
Operating Systems

A.A. CFU
2012/2013 12
Docente Email Ricevimento studentesse e studenti
Emanuele Lattanzi giovedì - 16:00-18:00

Assegnato al Corso di Studio

Giorno Orario Aula

Obiettivi Formativi

Il Corso ha lo scopo di illustrare la struttura di un sistema operativo multiprogrammato e le relative politiche di amministrazione delle risorse computazionali, con particolare riferimento alla schedulazione della CPU e alla gestione della memoria centrale, del file system e dei dispositivi di I/O.

English Version:

To illustrate operating systems concepts, focusing on description of operating system building blocks such as process management, scheduling, virtual memory and I/O management. 

Programma

01. Introduzione:
  01.01 Introduzione ai sistemi operativi.
  01.02 Strutture dei sistemi operativi.
  01.03 Principali funzioni di un sistema operativo.
  01.04 Chiamate di sistema.

02. Processi:
  02.01 Gestione dei processi.
  02.02 Context switch.
  02.03 Thread vs. processi.
  02.04 Comunicazione tra processi.

03. Sincronizzazione:
  03.01 Il problema della sezione critica.
  03.02 Strumenti per la sincronizzazione e loro uso.
  03.03 Problemi di sincronizzazione e deadlock.

04. Scheduling:
  04.01 Concetti fondamentali.
  04.02 Criteri di scheduling.
  04.03 Algoritmi di scheduling.
  04.04 Scheduling dei thread.

05. Scheduling in Linux:
  05.01 Process descriptor.
  05.02 Caratteristiche principali.
  05.03 Lo scheduler 2.4.x.
  05.04 Lo scheduler 2.6.x.
  05.05 Lo scheduler SMP.

06. Memoria principale:
  06.01 Organizzazione della memoria principale.
  06.02 Paginazione.
  06.03 Struttura della tabella delle pagine.
  06.04 Segmentazione.
  06.05 Esempi: Pentium Intel, Linux.

07. Memoria virtuale:
  07.01 Paginazione su richiesta.
  07.02 Sostituzione delle pagine.
  07.03 Allocazione dei frame.
  07.04 File mappati in memoria.

08. File system:
  08.01 Concetto di file system.
  08.02 Montaggio, condivisione e protezione.
  08.03 Implementazione.
  08.04 Metodi di allocazione.
  08.05 Gestione dello spazio libero.

09. Dischi magnetici:
  09.01 Struttura del disco.
  09.02 Performance dei dischi.
  09.03 Algoritmi di scheduling.

10. Sistemi di input/output:
  10.01 Polling, interrupt e DMA.
  10.02 Dispositivi a caratteri, a blocchi e di rete.
  10.03 Interfaccia del kernel per l'I/O.

11. Macchine virtuali:
  11.01 Macchine virtuali astratte.
  11.02 Macchine virtuali reali.
  11.03 Struttura delle macchine virtuali.
  11.04 JVM - Java Virtual Machine.

12. Il sistema operativo Android:
  12.01 Struttura.
  12.02 La Virtual Machine Dalvik.
  12.03 Applicazioni.
  12.04 Message passing: Intents.

13. Attività di laboratorio:
  13.01 Gestione dei processi nei sistemi UNIX-like.
  13.02 Gestione dei thread nei sistemi UNIX-like.
  13.03 Introduzione alla programmazione Java.
  13.04 Gestione dei thread in Java.
  13.05 Strumenti per la sincronizzazione dei thread in Java.

English version:

01. Introduction:

     01.01 Introduction to the operating systems.
     01.02 Operating systems structure.
     01.03 Operating System functions.
     01.04 System calls.

02. Processes:
     02.01 Processes management.
     02.02 Context switch.
     02.03 Thread vs. Processes.
     02.04 Communication between processes.

03. Synchronization:
     03.01 The critical sections problem.
     03.02 Synchronization tools.
     03.03 Synchronization problems and deadlock.

04. Scheduling:
     04.01 Basic scheduling concepts.
     04.02 Scheduling policies
     04.03 Scheduling algorithm.
     04.04 Thread scheduling.

05. Linux scheduling:
      05.01 Process descriptor.
      05.02 Main characteristics.
      05.03 The 2.4.x. scheduler.
      05.04 The 2.6.x. scheduler
      05.05 The SMP scheduler.

06. Main memory:
     06.01 Main memory organization.
     06.02 Paging.
     06.03 Structure of the page table.
     06.04 Segmentation.
     06.05 Examples: Pentium Intel, Linux.

07. Virtual memory:
     07.01 Demand paging.
     07.02 Page replacement.
     07.03 Frames allocation.
     07.04 Memory mapped files.

08. File system:
     08.01 File system concepts.
     08.02 Mounting, sharing, protection.
     08.03 Implementation.
     08.04 Allocation methods.
     08.05 Free space management.

09. Magnetic disks:
      09.01 Disk structure.
      09.02 Disk performace.
      09.03 Scheduling algorithms.

10. Input/output systems:
     10.01 Polling interrupt and DMA.
     10.02 Block and character devices.
     10.03 Kernel I/O subsystem.

11. Virtual machines:
     11.01 Abstract virtual machines.
     11.02 Real virtual machines.
     11.03 Virtual machines structures.
     11.04 JVM - Java Virtual Machine.

12. The Android OS:
     12.01 Structure.
     12.02 The Dalvik virtual machine.
     12.03 Applications.
     12.04 Message passing: Intents.

13. Laboratory activity:
     13.01 Processes management in UNIX-like operating systems.
     13.02 Thread management in UNIX-like operating systems: pThread
(POSIX) library.
     13.03 Introduction to Java programming language.
     13.04 Java threads management.
     13.05 Java synchronization tools.


Eventuali Propedeuticità

Programmazione degli Elaboratori, Architettura degli Elaboratori, Algoritmi e Strutture Dati.

Modalità Didattiche, Obblighi, Testi di Studio e Modalità di Accertamento

Modalità didattiche

Lezioni frontali ed esercitazioni di laboratorio

English version: Theory lectures and laboratory exercises, both face-to-face and on-line.

Obblighi

Nessuno.

Testi di studio
  • Silbershatz, Galvin, Gagne, "Sistemi Operativi Concetti ed Esempi", Pearson
  • Tanenbaum, "I Moderni Sistemi Operativi", Pearson
  • Ancilotti, Boari, "Programmazione Concorrente e Distribuita", McGraw-Hill.
  • Bovet, Cesati, "Understanding the Linux Kernel", O'Reilly
  • Goetz, Peierls, Bloch, Bowbeer, Holmes, Lea, "Java Concurrency in Practice", Addison-Wesley
  • Modalità di
    accertamento

    Prova scritta, progetto individuale di laboratorio e prova orale.

    La prova scritta viene valutata in trentesimi ed è ritenuta sufficiente se il relativo voto, che rimane valido per tutti gli appelli dell'anno accademico in cui la prova viene sostenuta, è di almeno 18/30.
    Il progetto, da svolgere individualmente su un tema concordato con il docente, deve essere consegnato almeno una settimana prima della prova orale e il relativo esito rimane valido per tutti gli appelli dell'anno accademico in cui il progetto viene consegnato.
    La prova orale può essere sostenuta solo previo superamento delle altre due prove e comprende una discussione del progetto. Se sufficiente, l'esito della prova orale, assieme a quello del progetto, comporta un aggiustamento per eccesso o per difetto di al più 10/30 del voto della prova scritta, determinando così il voto finale.

    English version: Individual project, written exam, and oral exam.

    The individual project, which has to be submitted at least seven days before the written exam, is passed if the mark (which is valid for all the exam calls on the academic year) is at least 18/30.
    The written exam, which can be taken only if the project is passed, is passed if the mark (which is valid for all the exam calls on the academic year) is at least 18/30.
    The oral exam, which can be taken only if the project and the written exam are passed, determines a spread between -10/30 and 10/30 of the average of the two previous marks, thus yielding the final mark.

    Disabilità e DSA

    Le studentesse e gli studenti che hanno registrato la certificazione di disabilità o la certificazione di DSA presso l'Ufficio Inclusione e diritto allo studio, possono chiedere di utilizzare le mappe concettuali (per parole chiave) durante la prova di esame.

    A tal fine, è necessario inviare le mappe, due settimane prima dell’appello di esame, alla o al docente del corso, che ne verificherà la coerenza con le indicazioni delle linee guida di ateneo e potrà chiederne la modifica.

    Note

    Il corso è erogato sia nel "percorso in presenza" che nel "percorso online" del Corso di Laurea di Informatica Applicata.

    English version: The course is offered both face-to-face and on-line within the Laurea Degree Program in Applied Computer Science

    « torna indietro Ultimo aggiornamento: 21/05/2013


    Il tuo feedback è importante

    Raccontaci la tua esperienza e aiutaci a migliorare questa pagina.

    Posta elettronica certificata

    amministrazione@uniurb.legalmail.it

    Social

    Università degli Studi di Urbino Carlo Bo
    Via Aurelio Saffi, 2 – 61029 Urbino PU – IT
    Partita IVA 00448830414 – Codice Fiscale 82002850418
    2024 © Tutti i diritti sono riservati

    Top