Sistemi Operativi e Laboratorio: introduzione e programma del corso

Slide dal Dipartimento di Scienze Matematiche, Informatiche e Fisiche su Sistemi Operativi e Laboratorio. Il Pdf, destinato a studenti universitari di Informatica, offre un programma dettagliato, testi di riferimento e concetti fondamentali, inclusi bash Unix e programmazione C, per facilitare l'apprendimento.

Mostra di più

18 pagine

Introduzione
Sistemi Operativi e Laboratorio
A. Formisano
Dipartimento di Scienze Matematiche, Informatiche e Fisiche
Anno Accademico 2024-25
Informazioni
Programma in breve:
teoria
Generalità sui sistemi operativi.
Processi e thread.
Scheduling della CPU.
Sincronizzazione dei processi.
Blocco critico.
Gestione della memoria centrale.
Memoria secondaria.
Nozioni base sul file system.
laboratorio
La bash di Unix.
Introduzione al linguaggio C.
Programmazione di sistema in UNIX/Linux: principali system call per
gestione dei processi, gestione file e memoria, IPC.
Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 2
Informazioni
Principali testi:
A.Silberschatz, P.Galvin, G.Gagne. Sistemi Operativi. Concetti ed Esempi. 10 ed.,
Pearson, 2019.
G.Glass e K.Ables, Unix for Programmers and Users. 3a ed., PrenticeHall, 2003.
B.W. Kernighan, D.M. Ritchie. Linguaggio C, 2a ed., 1989.
Manuale del sistema operativo unix/linux (man).
Tutte le informazioni su testi, esercizi, argomenti svolti a lezione,...
in elearning.uniud.it/moodle/course/view.php?id=5642
Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 3
Contenuti
1
Cosa è un Sistema Operativo
2
Organizzazione di un Sistema di Calcolo
3
Sistemi Mono/Multi-programmati
4
Principali Funzionalità di un Sistema Operativo
Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 4

Visualizza gratis il Pdf completo

Registrati per accedere all’intero documento e trasformarlo con l’AI.

Anteprima

Introduzione al Corso

Sistemi Operativi e Laboratorio A. Formisano Dipartimento di Scienze Matematiche, Informatiche e Fisiche Anno Accademico 2024-25

Informazioni sul Programma

Programma in breve: teoria

  • Generalità sui sistemi operativi.
  • Processi e thread.
  • Scheduling della CPU.
  • Sincronizzazione dei processi.
  • Blocco critico.
  • Gestione della memoria centrale.
  • Memoria secondaria.
  • Nozioni base sul file system.

Programma in breve: laboratorio

  • La bash di Unix.
  • Introduzione al linguaggio C.
  • Programmazione di sistema in UNIX/Linux: principali system call per gestione dei processi, gestione file e memoria, IPC.

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 2Informazioni

Testi e Risorse

  • Principali testi: . A.Silberschatz, P.Galvin, G.Gagne. Sistemi Operativi. Concetti ed Esempi. 10 ed., Pearson, 2019. . G.Glass e K.Ables, Unix for Programmers and Users. 3a ed., PrenticeHall, 2003. . B.W. Kernighan, D.M. Ritchie. Linguaggio C, 2a ed., 1989.
  • Manuale del sistema operativo unix/linux (man).
  • Tutte le informazioni su testi, esercizi, argomenti svolti a lezione, ... in elearning. uniud. it/moodle/course/view.php?id=5642

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 3

Contenuti del Corso

  1. Cosa è un Sistema Operativo
  2. Organizzazione di un Sistema di Calcolo
  3. Sistemi Mono/Multi-programmati
  4. Principali Funzionalità di un Sistema Operativo

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 4Cosa è un Sistema Operativo

Definizione di Sistema Operativo

Cosa è un Sistema Operativo Un sistema operativo è un insieme di programmi che operano sull'hardware di un sistema di calcolo. Gli obiettivi principali di un S.O. sono: · semplificare all'utente l'uso e lo sviluppo di programmi · rendere efficiente l'utilizzo delle risorse hardware

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 6

Componenti del Sistema di Calcolo

Sistema Operativo nel Sistema di Calcolo ...

Un sistema di calcolo è composto di user 1 user 2 user 3 ... user n · dispositivi fisici · sistema operativo compiler assembler text editor ... database system system and application programs · programmi (applic. e di sistema) · utenti operating system computer hardware più in dettaglio ...

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 7Cosa è un Sistema Operativo

Dettaglio Componenti del Sistema

.. . più in dettaglio: Dispositivi fisici: CPU, memorie, periferiche, ... Sistema operativo: gestisce e controlla l'utilizzo dell'hardware da parte dei programmi Programmi di sistema: forniscono una interfaccia verso le risorse gestite dal S.O., semplificando lo sviluppo e l'esecuzione di programmi applicativi (gestione file, configurazione del sistema, editor, compilatori, ... ) Programmi applicativi: applicazioni che risolvono problemi specifici (es. DBMS, Word processor, Web browser, ... ) Utenti: qualsiasi agente che usi il sistema di calcolo per risolvere un problema (può essere un utente umano, un altro sistema operativo, ... )

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 8

Punti di Vista sul Sistema Operativo

Cosa è un Sistema Operativo Punti di Vista sul Sistema Operativo Utente: Il S.O. è un interfaccia verso l'hardware che renda facile, efficace ed efficiente risolvere un problema Sistema di calcolo: Il S.O. è "il programma" più strettamente correlato ai dispositivi fisici. Tale programma funge al contempo da assegnatore di risorse e controllore del loro utilizzo

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 9Cosa è un Sistema Operativo

Obiettivi Primari del Sistema Operativo

Obiettivi primari di un S.O. Un sistema operativo può essere definito come quel programma che permette di · realizzare un sistema di calcolo che supporti l'esecuzione dei programmi utente in modo utile, efficace, efficiente, conveniente, equo, controllato · realizzare le funzionalità necessarie a gestire ed assegnare le risorse allo/agli utilizzatori, supervisionandone le attività Solitamente si definisce il sistema operativo come quel programma sempre in esecuzione nel sistema di calcolo. Si usa il termine Kernel. Tutto "il resto" è costituito da programmi di sistema o applicativi.

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 10

Organizzazione di un Sistema di Calcolo

Schema di un Sistema di Calcolo

Schema di un Sistema di Calcolo mouse keyboard printer monitor disks on-line CPU disk controller USB controller graphics adapter memory CPU(s) e controller dei dispositivi (device controller) possono concorrere per l'uso del bus e per l'accesso alla memoria tramite il bus.

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 12Organizzazione di un Sistema di Calcolo

Dispositivi di I/O: Funzionamento Semplificato

Dispositivi di I/O: Un Semplice Schema di Funzionamento · CPU e device operano concorrentemente · un controller gestisce uno specifico device e utilizza un buffer locale per interagire con la CPU · il controller legge/scrive i dati nel suo buffer locale · la CPU legge/scrive nel buffer locale del controller · la sincronizzazione tra controller e CPU avviene tramite il meccanismo delle interruzioni

Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 13

Gestione delle Interruzioni

Gestione delle Interruzioni (1)

Gestione delle Interruzioni Gestione delle Interruzioni (1) · Il segnale d'interruzione viene inviato dal controller · Il processore intercetta il segnale e determina di quale interruzione si tratti · Il processore invoca l'esecuzione di una appropriata procedura di servizio per gestire l'interruzione · Lo stato della CPU viene salvato e ripristinato al termine della gestione · La tecnica più frequentemente impiegata sfrutta un vettore delle interruzioni

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 14Organizzazione di un Sistema di Calcolo

Gestione delle Interruzioni (2)

Gestione delle Interruzioni Gestione delle Interruzioni (2) CPU user process executing I/O interrupt processing I/O device idle transferring I/O request transfer done I/O request transfer done

Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 15

La Memoria

Distinzione Fondamentale della Memoria

Organizzazione di un Sistema di Calcolo La Memoria La Memoria Una distinzione fondamentale: · Memoria principale (RAM, random access memory) È l'unica memoria (di grandi dimensioni) accessibile direttamente dalla CPU È volatile · Memoria secondaria (dischi, nastri, flash memory, ... ) Sopperisce alle limitazioni della memoria principale È permanente I supporti ad oggi più diffusi sono i dischi magnetici (HD) e i dispositivi di memoria non-volatile (flash, SSD, ... ). Sono dotati di un controller che ne gestisce l'interazione con il resto del sistema.

Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 16Organizzazione di un Sistema di Calcolo

Gerarchia di Memoria

La Memoria Gerarchia di Memoria registers cache main memory electronic disk magnetic disk optical disk magnetic tapes

Sistemi Operativi e Lab. 24/25 A. Formisano , DMIF 17

Accesso Diretto alla Memoria (DMA)

Tecnica DMA

Organizzazione di un Sistema di Calcolo La Memoria Accesso Diretto alla Memoria (DMA) È una tecnica alternativa all'I/O guidato dalle interruzioni con la quale: · l'operazione viene iniziata dal processore che ne invia richiesta al controller · il controller di dispositivo può "in prima persona" trasferire i dati tra il suo buffer locale e la memoria principale (o viceversa) · il termine dell'operazione viene notificata dal controller al processore · la tecnica determina un aumento delle prestazioni perché il processore può eseguire in contemporanea all'operazione di I/O

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 18Organizzazione di un Sistema di Calcolo

Schema DMA

La Memoria Accesso Diretto alla Memoria (DMA) RAM 2 Processor Memory controller 2 1 - I/O controller Disk 2 3 1 A processor sends an I/O request to the I/O controller, which sends the request to the disk. The processor continues executing instructions. 2 The disk sends data to the I/O controller; the data is placed at the memory address specified by the DMA command. 3 The disk sends an interrupt to the processor to indicate that the I/O is done.

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 19

Sistemi Mono/Multi-programmati

Sistema Monoprogrammato

Sistemi Mono/Multi-programmati Sistema monoprogrammato sistema operativo programma applicativo · Oltre al S.O., in memoria risiede al più un applicativo · Il sistema esegue un lavoro (job) alla volta · Sistemi batch: Il S.O. è rudimentale: si limita a trasferire il controllo da un job al successivo

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 21Sistemi Mono/Multi-programmati

Sistema Multiprogrammato

Sistema multiprogrammato La caratteristica fondamentale di un moderno sistema operativo è la multiprogrammazione ovvero la possibilità di gestire più programmi residenti contemporaneamente nella memoria principale In memoria risiedono (parti de)i lavori da eseguire. Il S.O. ne seleziona uno e lo esegue fino a che termina o inizia un'attesa di un evento "esterno" (es. I/O). In tale situazione il S.O. passa ad eseguire un altro lavoro (tra quelli in memoria, non ancora completati) operating system job 1 job 2 job 3 job 4

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 22

Time Sharing e Multitasking

Raffinamento della Multiprogrammazione

Sistemi Mono/Multi-programmati Time Sharing Un raffinamento della multiprogrammazione impiega la tecnica del time sharing (o multitasking) · In questa tecnica i context switch (cambi di contesto) tra i lavori avvengono ad intervalli di tempo determinati da S.O. stesso (non necessariamente in corrispondenza di operazioni di I/O) · la risorsa "tempo di CPU" è suddivisa/condivisa tra più job/utenti · i context switch occorrono ad una frequenza tale che ogni utente abbia la percezione di utilizzare un sistema di calcolo a lui dedicato · consente un rapporto tra utente e S.O. più interattivo Due concetti fontamentali in questo ambito sono: processo e CPU scheduling

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 23Sistemi Mono/Multi-programmati

Esecuzione Sequenziale vs Time Sharing

Esecuzione Sequenziale vs Time Sharing Consideriamo tre lavori, P1, P2 e P3, che usano sia CPU che I/O: P. P3 * 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 . Esecuzione sequenziale. - -- i -> * P1 P2 P3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Esecuzione in multi-tasking.

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 24

Nozione di Processo

Definizione e Gestione del Processo

Sistemi Mono/Multi-programmati Nozione di Processo Processo Un programma caricato in memoria e predisposto per l'esecuzione è detto processo · Per ogni utente possono esistere uno o più processi contemporaneamente in memoria centrale · Tuttavia la memoria centrale potrebbe non essere sufficientemente ampia da contenere tutti i processi. Quindi alcuni di essi possono risiedere in memoria di massa in una zona detta job pool. · Il S.O. sceglie quali processi caricare in memoria principale (job scheduling) · Il S.O. sceglie quale processo eseguire tra quelli in memoria principale (CPU scheduling · Il S.O. può anche decidere di spostare dei processi dalla memoria principale alla memoria di massa (swap-out)

Sistemi Operativi e Lab. 24/25 A. Formisano, DMIF 25

Non hai trovato quello che cercavi?

Esplora altri argomenti nella Algor library o crea direttamente i tuoi materiali con l’AI.