Sistemi Operativi - 02: Strutture dei Sistemi Operativi

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quale delle seguenti affermazioni descrive meglio il ruolo del sistema operativo nella gestione dei file?

  • Il SO non è responsabile della gestione dei file.
  • Il SO gestisce la creazione, cancellazione e memorizzazione efficiente dei file. (correct)
  • Il SO può solo creare file.
  • Il SO deve solo trovare file quando necessario.

Il sistema operativo deve permettere a un processo di accedere liberamente ai dati di un altro processo.

False (B)

Qual è la funzione principale della memoria secondaria nel sistema operativo?

Memorizzare i file permanentemente.

Il sistema operativo deve trovare velocemente spazio libero quando un file viene ______.

<p>creato</p> Signup and view all the answers

Abbina le seguenti funzioni del sistema operativo con le loro descrizioni:

<p>Creazione di file = Consente di creare nuovi file nel file system Cancellazione di file = Permette di eliminare file non più necessari Gestione della memoria = Ottimizza l'uso della memoria in un sistema Protezione dei processi = Impedisce accessi non autorizzati tra processi</p> Signup and view all the answers

Quale dei seguenti servizi è considerato completamente invisibile agli utenti?

<p>Gestione dei processi (C)</p> Signup and view all the answers

L'interprete dei comandi fa parte del kernel del sistema operativo.

<p>False (B)</p> Signup and view all the answers

Cosa fa un interprete dei comandi quando l'utente scrive un comando?

<p>Cerca e lancia il file eseguibile associato al comando.</p> Signup and view all the answers

In un sistema operativo Unix-like, il comando per rimuovere un file è ___.

<p>rm</p> Signup and view all the answers

Abbina i seguenti interpreti dei comandi ai loro nomi:

<p>Shell = Bourne-again-shell C-shell = Korn-shell Bourne-shell = Bourne-shell Bash-shell = Shell</p> Signup and view all the answers

Quale affermazione è vera riguardo le interfacce dei sistemi operativi?

<p>Possono combinare interfacce grafiche e interpreti di comandi. (B)</p> Signup and view all the answers

Le chiamate di sistema sono sempre visibili agli utenti.

<p>False (B)</p> Signup and view all the answers

Elenca due esempi di interpreti dei comandi.

<p>Shell dell'Ms-Dos e shell Unix.</p> Signup and view all the answers

Chi ha inventato le interfacce grafiche nel 1973?

<p>Xerox (D)</p> Signup and view all the answers

Windows è stato lanciato nel 1995 come un sistema operativo indipendente.

<p>False (B)</p> Signup and view all the answers

Quali sono due esempi di interfacce grafiche per Unix?

<p>KDE e GNOME</p> Signup and view all the answers

Gli ________ sono programmi di sistema utilizzati per comunicare via email e navigare in rete.

<p>programmi</p> Signup and view all the answers

Abbina i seguenti tipi di programmi ai loro scopi:

<p>Editor = Modificare i file Compilatori = Programmare Task Manager = Monitorare lo stato del sistema Browser = Navigare in rete</p> Signup and view all the answers

Quale di queste affermazioni sui programmi di sistema è vera?

<p>Possono essere facilmente aggiunti a un'installazione di un SO. (B)</p> Signup and view all the answers

I processi sono programmi in esecuzione.

<p>True (A)</p> Signup and view all the answers

Qual è uno dei compiti del task manager di Windows?

<p>Monitorare lo stato del sistema</p> Signup and view all the answers

Il sistema operativo Macintosh è stato lanciato nel ______.

<p>1984</p> Signup and view all the answers

Quale di queste opzioni non è un tipo di programma di sistema menzionato?

<p>Giochi (C)</p> Signup and view all the answers

Quale di queste affermazioni descrive meglio una Chiamata di Sistema?

<p>Un'interazione diretta tra processi utente e Sistema Operativo. (D)</p> Signup and view all the answers

Le API sono una via diretta per effettuare chiamate di sistema.

<p>False (B)</p> Signup and view all the answers

Cosa fa una Chiamata di Sistema 'open' in un programma C?

<p>Apre un file in modalità di scrittura.</p> Signup and view all the answers

Le ______ sono utilizzate per facilitare l'interazione con il Sistema Operativo.

<p>API</p> Signup and view all the answers

Abbina le seguenti funzioni alle loro descrizioni:

<p>open = Apre un file write = Scrive dati in un file close = Chiude un file read = Legge dati da un file</p> Signup and view all the answers

Quanti processi possono attivare chiamate di sistema in un sistema multi-utente?

<p>Fino a centinaia o migliaia ogni secondo (C)</p> Signup and view all the answers

Le API sono specifiche per ogni linguaggio di programmazione.

<p>False (B)</p> Signup and view all the answers

Qual è la funzione principale delle API nel contesto delle chiamate di sistema?

<p>Fornire un'interfaccia semplificata per l'uso delle system call.</p> Signup and view all the answers

Le API per i sistemi Windows sono chiamate ______.

<p>API Windows</p> Signup and view all the answers

Quale dei seguenti linguaggi permette di utilizzare direttamente le system call in Unix?

<p>C (C)</p> Signup and view all the answers

Quale delle seguenti operazioni è svolta dalla chiamata di sistema 'fopen'?

<p>Aprire un file (A)</p> Signup and view all the answers

Un sistema operativo gestisce solo uno alla volta i processi in esecuzione.

<p>False (B)</p> Signup and view all the answers

Qual è la responsabilità principale del sistema operativo nella gestione dei processi?

<p>Fornire risorse ai processi senza danneggiarsi a vicenda.</p> Signup and view all the answers

La chiamata di sistema 'fclose' serve a ______ un file aperto.

<p>chiudere</p> Signup and view all the answers

Abbina le seguenti operazioni ai loro relativi tipi di gestione.

<p>Creazione di processi = Gestione dei processi Caricamento in RAM = Gestione della memoria primaria Comunicazione tra processi = Gestione dei processi Distribuzione della RAM = Gestione della memoria primaria</p> Signup and view all the answers

Quale tra le seguenti non è un tipo di operazione nella gestione dei processi?

<p>Eliminazione dei file (D)</p> Signup and view all the answers

Il sistema operativo deve gestire l'accesso simultaneo alla memoria RAM da parte di più processi.

<p>True (A)</p> Signup and view all the answers

Cos'è un processo concorrente?

<p>Un processo che compete con altri per utilizzare le risorse hardware.</p> Signup and view all the answers

La funzione 'fprintf' è utilizzata per ______ dati su un file.

<p>scrivere</p> Signup and view all the answers

Quale sistema operativo utilizza principalmente le chiamate di sistema descritte?

<p>tutti i precedenti (B)</p> Signup and view all the answers

Flashcards

Sistema Operativo

Un insieme di programmi che gestiscono le risorse di un computer e forniscono un'interfaccia agli utenti.

Interfacce del Sistema Operativo

Modi in cui gli utenti interagiscono con un sistema operativo, come l'interpretazione di comandi o le interfacce grafiche.

Interpreta di Comandi

Un programma che interpreta comandi testuali digitati dall'utente.

Eseguibile

Un programma che esegue un comando specifico, come eliminare un file o copiare un file.

Signup and view all the flashcards

Shell

Un programma che si occupa di trovare ed eseguire gli eseguibili, interpretando i comandi.

Signup and view all the flashcards

Interfaccia Grafica Utente (GUI)

Un'interfaccia che utilizza finestre, icone e menu per interagire con il sistema operativo.

Signup and view all the flashcards

Kernel

La parte centrale del sistema operativo, responsabile della gestione delle risorse di base del computer.

Signup and view all the flashcards

Chiamate di Sistema

Operazioni che permettono ai programmi di interagire direttamente con il sistema operativo.

Signup and view all the flashcards

File

Un insieme di informazioni memorizzato su un computer ed identificato da un nome e proprietà.

Signup and view all the flashcards

File System

Una struttura gerarchica che organizza i file su un computer.

Signup and view all the flashcards

Memoria Secondaria

La memoria permanente che ospita i file.

Signup and view all the flashcards

Sistema di protezione

Un componente del sistema operativo che gestisce la protezione dei file e delle risorse.

Signup and view all the flashcards

Gestione dei file

Il processo di creazione e cancellazione di file e directory.

Signup and view all the flashcards

Cosa è una GUI?

Un'interfaccia grafica (GUI) è un metodo di interazione con un computer che utilizza elementi visivi, come icone, menu e finestre, per facilitare l'utilizzo.

Signup and view all the flashcards

Chi ha introdotto la prima GUI di successo?

La prima GUI di successo commerciale è stata sviluppata da Xerox ma il Macintosh di Apple nel 1984 ha portato la GUI al grande pubblico.

Signup and view all the flashcards

Come è nato Windows?

Windows è stato inizialmente sviluppato come GUI da lanciare su MS-DOS, ma è diventato parte del sistema operativo nel 1995.

Signup and view all the flashcards

Differenza tra kernel e programmi di sistema?

Il kernel è il cuore del sistema operativo, responsabile delle funzioni di base come la gestione della memoria e dei processi. I programmi di sistema, come gli editor di testo o i browser web, non fanno parte del kernel ma sono forniti insieme al sistema operativo.

Signup and view all the flashcards

Qual è lo scopo dei programmi di sistema?

I programmi di sistema facilitano l'utilizzo del sistema operativo fornendo strumenti e servizi aggiuntivi. Possono essere aggiunti facilmente al sistema operativo, a differenza del kernel che è più complesso da modificare.

Signup and view all the flashcards

Quali sono alcuni esempi di programmi di sistema per programmare?

Gli editor di testo permettono di creare e modificare file di testo, i compilatori traducono il codice sorgente in codice eseguibile, gli assemblatori traducono il codice assembly in codice macchina, i debugger aiutano a trovare e correggere errori nel codice, gli interpreti eseguono il codice riga per riga.

Signup and view all the flashcards

Cosa sono le chiamate di sistema?

Le chiamate di sistema sono richieste fatte da un processo al kernel per accedere a risorse del sistema come la memoria o i dispositivi di input/output.

Signup and view all the flashcards

Cosa è un processo?

Un processo è un programma in esecuzione, quasi tutte le azioni eseguite su un computer avvengono tramite un processo.

Signup and view all the flashcards

Quali sono alcuni esempi di programmi di sistema per la comunicazione?

I browser web, i client di posta elettronica e i programmi di messaging sono esempi di programmi di sistema per la comunicazione.

Signup and view all the flashcards

Chiamata di sistema (System Call)

Un processo utente può richiedere al sistema operativo di svolgere un'azione delicata usando una chiamata di sistema, anche nota come System Call.

Signup and view all the flashcards

System Call: Interfaccia tra processi utente e SO

Le system call sono il ponte tra i programmi degli utenti e il sistema operativo. In pratica, sono una serie di istruzioni che i programmi possono usare per richiedere servizi al sistema operativo.

Signup and view all the flashcards

System Call in Unix

In Unix le system call sono implementate come procedure che possono essere direttamente inserite in programmi scritti in linguaggi di alto livello come C o C++.

Signup and view all the flashcards

Esecuzione della System Call

Quando viene eseguita una system call, il controllo passa al sistema operativo, in particolare alla parte di codice che gestisce quella specifica system call.

Signup and view all the flashcards

Esempio: scrivere su un file in Unix

Per scrivere in un file in Unix, puoi usare le funzioni open(), write() e close(). Queste funzioni sono implementazioni di system call che permettono al programma di interagire con il sistema operativo per la gestione dei file.

Signup and view all the flashcards

API: Interfaccia di programmazione per applicazioni

Le API (Application Programming Interface) forniscono un livello intermedio tra i programmi e le system call, semplificando l'utilizzo e migliorando la portabilità delle applicazioni.

Signup and view all the flashcards

API per diversi sistemi operativi

Le API sono specifiche per ogni sistema operativo: Windows ha le API Windows, mentre Unix, Linux e Mac OS X usano le API POSIX.

Signup and view all the flashcards

Funzioni API e System Call

Le funzioni API, per eseguire le loro azioni, invocano le system call corrispondenti. Spesso c'è una corrispondenza diretta tra una funzione API e una system call.

Signup and view all the flashcards

API: Esempio della libreria C in Unix

La libreria C dell'ambiente Unix è un esempio di API semplice. Fornisce un set di funzioni che possono essere usate dai programmatori per interagire con il sistema operativo.

Signup and view all the flashcards

Importanza delle System call

Le system call permettono ai programmi di usare le risorse di base del sistema operativo (come la gestione dei file, la memoria o la CPU) in modo sicuro e controllato.

Signup and view all the flashcards

Processo

Un insieme di comandi che un programma esegue in sequenza.

Signup and view all the flashcards

Processo concorrente

Un processo che compete per le risorse con altri processi in esecuzione.

Signup and view all the flashcards

Gestione dei processi

La parte del sistema operativo che gestisce l'esecuzione dei processi e le loro risorse.

Signup and view all the flashcards

Cosa gestisce la Gestione dei processi?

Creazione di nuovi processi o eliminazione di quelli terminati, sospensione e riavvio, sincronizzazione e comunicazione tra processi

Signup and view all the flashcards

Memoria primaria

Funziona come la memoria RAM (RAM) del computer, fornendo uno spazio dove i programmi possono essere eseguiti.

Signup and view all the flashcards

Cosa gestisce la Gestione della memoria primaria?

Il sistema operativo deve tener traccia di quali parti della memoria primaria sono utilizzate da ogni processo, gestire l'assegnazione della memoria e adattarla alle esigenze dei processi.

Signup and view all the flashcards

Time-sharing

La possibilità di avere più processi attivi contemporaneamente, dividendo il tempo di esecuzione della CPU tra loro.

Signup and view all the flashcards

Gestione dei dispositivi

La capacità del sistema operativo di gestire l'accesso ai dispositivi di input e output come tastiera, mouse, monitor, stampante, hard disk, ecc.

Signup and view all the flashcards

Study Notes

Strutture dei Sistemi Operativi

  • Un sistema operativo fornisce molti servizi agli utenti e ai loro programmi (Figura 2.1).
  • Questi servizi includono l'esecuzione di programmi, operazioni di input/output (I/O), gestione dei file, comunicazioni, allocazione delle risorse, gestione degli errori e altro ancora.
  • Alcune parti dei servizi sono completamente invisibili all'utente, altre sono parzialmente visibili, mentre altre vengono usate direttamente dall'utente. Il livello di visibilità dipende dal tipo di utente.
  • Ad esempio, l'interfaccia utente con il sistema operativo (GUI, touch-screen, riga di comando) è visibile, mentre le chiamate di sistema, la gestione di processi e memoria sono quasi sempre invisibili. La protezione e la sicurezza sono parzialmente visibili.

Interfaccia col Sistema Operativo

  • L'interfaccia è lo strumento che gli utenti usano per interagire con il sistema operativo (SO) e utilizzare i suoi servizi.
  • Può essere un interprete di comandi o un'interfaccia grafica (GUI) con finestre e menu, o una combinazione di entrambi.

Interprete dei comandi

  • Generalmente non fa parte del kernel del SO, ma è un programma separato.
  • Esempi includono la shell di MS-DOS e le shell Unix.
  • La shell si aspetta istruzioni dall'utente, legge la riga di comando, esegue l'istruzione e passa eventuali argomenti del programma all'eseguibile appropriato.
  • I comandi vengono solitamente interpretati e poi lanciati come file eseguibili.

Interfaccia grafica

  • I moderni SO offrono interfacce grafiche per gli utenti.
  • Sono generalmente più facili da usare rispetto a un'interfaccia di testo.
  • I primi successi commerciali delle GUI risalgono a Macintosh (1984).
  • Windows ha poi adottato questo paradigma e lo ha integrato in futuro.
  • Sistemi operativi come Unix offrono varie interfacce grafiche proprietarie e open source (ad esempio KDE e GNOME).

Programmi/Servizi di Sistema

  • Non fanno parte del kernel del SO, ma vengono forniti con esso.
  • Facilitano l'utilizzo del sistema.
  • Esempi includono gli editor di testo, compilatori, debugger, interpreti, ambienti di sviluppo, programmi di posta elettronica e browser web, e il task manager.

Chiamate di sistema (System Call)

  • Rappresentano l'interfaccia tra i processi degli utenti e il SO.
  • Consentono ai processi degli utenti di richiedere servizi al SO.
  • In Unix, le system call sono procedure che possono essere inserite direttamente nei programmi scritti in linguaggi ad alto livello come C o C++.
  • Sembrano subroutine ma trasferiscono il controllo al SO per l'esecuzione della system call.

Chiamate di sistema (System Call): le API

  • I programmatori possono utilizzare le API, interfacce per la programmazione di applicazioni, invece delle system call.
  • Le API sono uno strato intermedio tra le applicazioni e le system call.
  • Questo rende più facile l'utilizzo e migliora la portabilità delle applicazioni perché possono essere utilizzate in più ambienti.
  • Esistono API specifiche per vari sistemi operativi, come le API Windows e le API POSIX per varie versioni di Unix, Linux e macOS.

Categorie di system call

  • Ogni operazione ha un tipo di system call.
  • Ecco alcuni esempi per Windows e Unix (Figura 2.8a).

Gestione dei processi

  • In un determinato momento, possono essere attivi più processi anche se solo uno è in esecuzione.
  • I processi competono per le risorse hardware come la CPU, memoria primaria e secondaria, e dispositivi di input/output.
  • Il SO regola e gestisce l'accesso ai processi per evitare conflitti.

Gestione della memoria primaria

  • I programmi devono essere caricati in memoria primaria per essere eseguiti.
  • Un sistema time sharing ha più processi contemporaneamente attivi e i relativi codici e dati vengono caricati in memoria.
  • Il SO deve tenere traccia di quali parti della RAM sono utilizzate da quali processi.
  • Il sistema gestisce la RAM in base alle necessità e all'evoluzione del lavoro dei diversi processi.

Gestione dei file e del file system

  • Quasi tutte le informazioni in un sistema sono in file.
  • I file sono organizzati gerarchicamente in un file system utilizzando cartelle o directory.
  • Il SO gestisce la creazione, la cancellazione, e la manutenzione di file e directory.
  • In particolare, il sistema deve gestire la memorizzazione efficiente del file system in memoria secondaria.

Gestione della memoria secondaria

  • I file sono memorizzati permanentemente in memoria secondaria (disco rigido).
  • Il SO deve decidere dove e come memorizzare i file, e trovarli velocemente quando necessari.
  • Il sistema deve gestire lo spazio libero ed accessi concorrenti per efficienza.

Gestione di un sistema di protezione

  • Il SO deve proteggere ogni processo dalle attività degli altri processi.
  • Ad esempio, evitare che un processo usurpi risorse o acceda a dati protetti di altri processi

Macchine virtuali

  • Il SO trasforma la macchina reale in una sorta di macchina virtuale.
  • Questo permette agli utenti di utilizzare la MV indipendentemente dall'hardware sottostante.
  • L'utente ha a disposizione risorse virtuali, come CPU, file system, etc. condivise con altri utenti e con il SO.
  • Aumenta la portabilità delle applicazioni tra diversi sistemi operativi.

Approfondimenti

  • Sezione 2.6: spiega il rapporto tra applicazione e sistema operativo.
  • Sezione 2.8: dettaglio sulla struttura del sistema operativo.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Command Line Navigation Quiz
3 questions
Linux Command Line Basics
9 questions

Linux Command Line Basics

SmootherTsavorite avatar
SmootherTsavorite
Linux File Management Commands
41 questions
Use Quizgecko on...
Browser
Browser