Sistemi Operativi: Componenti e Caratteristiche
41 Questions
3 Views

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

Qual è uno degli scopi principali del sistema operativo?

  • Ridurre la virtualizzazione per aumentare le risorse fisiche
  • Limitare l'accesso alle risorse da parte dei software applicativi
  • Gestire tutte le risorse direttamente dai software applicativi
  • Virtualizzare risorse per rendere facilmente disponibili ai software applicativi (correct)

Il controllo degli accessi permette di sapere chi sta utilizzando la macchina e assegnare diversi privilegi a ciascun utente.

True (A)

Dove risiedono il codice di sistema e il codice delle applicazioni in un sistema operativo UNIX?

Segmenti diversi

Perché la standardizzazione è fondamentale nei sistemi operativi? Consente l'_ _ _ _ _ _ _ _ _ _ _ tra dispositivi e software di diversi produttori.

<p>interoperabilità</p> Signup and view all the answers

Qual è il passo successivo dopo aver visto come funziona la trasmissione e la ricezione dei dati da una macchina all'altra?

<p>Virtualizzare tutto per le applicazioni (D)</p> Signup and view all the answers

Il demultiplexing in ricezione è più complicato perché si sa esattamente con quali criteri è stato fatto il multiplexing sul trasmittente.

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

Cosa gestiscono i buffer generici usati per smistare i dati in attesa di ricezione?

<p>I dati in attesa di smistamento.</p> Signup and view all the answers

Il demultiplexing dei dati ricevuti è effettuato dal ________.

<p>sistema operativo</p> Signup and view all the answers

Quale funzione serve a mandare in esecuzione un file eseguibile?

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

Il PID identifica un processo in maniera univoca nel sistema operativo.

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

Cosa significa il termine 'zombie' nel contesto dei processi?

<p>Un processo che ha invocato la exit e aspetta di essere terminato.</p> Signup and view all the answers

Un nuovo processo generato dalla fork è in stato _____ fino a quando i suoi segmenti di memoria saranno inizializzati.

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

Abbinare le seguenti segnalazioni con i relativi significati:

<p>term = Invoca la exit terminando il processo ign = Handler vuoto, ignora la segnalazione core = Fa il core dump dello stato dell'applicazione stop = Mette il processo in attesa (passa in stato wait) cont = Riprende il processo che è attualmente in attesa (esce dallo stato wait)</p> Signup and view all the answers

Quale è la funzione principale del kernel di un sistema operativo?

<p>Virtualizzare le risorse hardware (B)</p> Signup and view all the answers

I kernel moderni sono di tipo modulare.

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

Cos'è una system call?

<p>Una chiamata di sistema che permette a un'applicazione di richiedere funzionalità al sistema.</p> Signup and view all the answers

Nei file di ____ vengono registrati tutti gli eventi che accadono sulla macchina.

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

Abbina le seguenti componenti alle loro descrizioni:

<p>Log = Registra gli eventi sulla macchina Applicazioni di gestione = Permettono all'utente di gestire il sistema operativo Applicazioni per lo sviluppo = Include compilatori, debugger, IDE</p> Signup and view all the answers

Qual è il problema principale di una comunicazione inefficiente tra due macchine remote?

<p>Perdita di dati (A)</p> Signup and view all the answers

Quali sono le due parti fondamentali memorizzate su un disco dopo il boot sector?

<p>Superblock e file system descriptor (A)</p> Signup and view all the answers

Un link simbolico è un tipo speciale di file che fa riferimento direttamente all'inode del file puntato.

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

Cosa succede quando si elimina un file?

<p>Viene eliminato solo il link specifico, non l'inode e i dati associati.</p> Signup and view all the answers

Per accedere a un file, bisogna vedere nella directory che lo contiene l'associazione tra il suo nome e i suoi ____.

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

Qual è la principale vulnerabilità dei sistemi UNIX derivante dalla presenza dell'utente root?

<p>Violazione del principio di minimo privilegio (A)</p> Signup and view all the answers

Cosa indica la presenza del bit 's' associato ad un file eseguibile in UNIX?

<p>Il file verrà eseguito con i permessi del proprietario del file.</p> Signup and view all the answers

Nei sistemi UNIX, l'utente root ha un UID di __.

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

Il file /etc/passwd in UNIX contiene le password degli utenti in chiaro.

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

Abbinare le caratteristiche di un file regolare con quelle di un file speciale in UNIX:

<p>File regolare = Contiene dati di qualunque tipo File speciale = Usato per accedere a dispositivi</p> Signup and view all the answers

Qual è il protocollo utilizzato per l'autenticazione che avviene direttamente a livello di protocollo e non richiede un login in una pagina web?

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

I cookies sono considerati sicuri per l'autenticazione degli utenti.

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

Qual è il limite massimo di cookies che possono essere memorizzati per dominio in un browser?

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

Il protocollo SMTP utilizza il protocollo di trasporto ____. Utilizza la porta 25 per connessioni non protette e la porta 465 per connessioni protette.

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

Quando creo un processo in un sistema POSIX quante thread vengono create all'interno?

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

Le comunicazioni tra thread avvengono attraverso aree di memoria comuni.

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

Cosa fa la funzione pthread_join?

<p>blocca il thread che la chiama finché l'esecuzione di un altro thread specificato non termina</p> Signup and view all the answers

Le primitive chiamate ____ fanno in modo che due thread non possano essere eseguiti contemporaneamente.

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

Abbinare i tipi di sincronizzazione alla loro descrizione:

<p>pthread_create = Crea un nuovo thread che esegue una funzione specificata. pthread_join = Blocca il thread finché non termina un altro thread specificato. mutex = Previene l'esecuzione simultanea di due thread. pthread_mutex_lock/unlock = Consente l'esecuzione di un thread alla volta. i = n</p> Signup and view all the answers

Cosa fa un ipervisore di tipo 1 una volta terminato l'avvio di una macchina virtuale?

<p>Gestisce le trap delle macchine virtuali (A)</p> Signup and view all the answers

Un rootkit è un software che viene utilizzato solo per attaccare un sistema.

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

Cosa è un rootkit difensivo?

<p>Un hypervisor che controlla il comportamento del sistema operativo.</p> Signup and view all the answers

Chi controlla la suddivisione delle risorse all'interno dell'ambiente per i thread?

<p>thread stessi</p> Signup and view all the answers

Study Notes

Sistemi Operativi

  • La virtualizzazione è un concetto chiave nei sistemi operativi: consente di rendere facilmente disponibili le risorse ai vari software applicativi senza conflitti in caso di più applicazioni eseguite contemporaneamente.
  • La standardizzazione è fondamentale per l'interoperabilità: un sistema operativo dovrà far funzionare assieme svariati dispositivi e software di diversi produttori.
  • La sicurezza di un sistema operativo comprende:
    • Controllo degli accessi
    • Integrità
    • Disponibilità
    • Affidabilità
    • Segretezza
  • L'efficienza di un sistema operativo è importante perché virtualizzare una grande quantità di risorse è più complicato di virtualizzarne poche.

Componenti di un Sistema Operativo

  • Il kernel è lo strato di base che implementa la virtualizzazione e solitamente anche il controllo degli accessi.
  • Il bootstrap è l'operazione che mi consente di caricare in memoria nuovo codice eseguibile.
  • Il kernel può essere:
    • Monolitico: un kernel che viene configurato prima della compilazione in modo da avere tutte le componenti necessarie per l'hardware sul quale dovrà essere installato.
    • Modulare: un kernel al quale possono essere aggiunti e tolti moduli che danno il supporto a particolari dispositivi, anche durante l'esecuzione.
  • Le librerie vanno ad aggiungere codice nel segmento applicativo dei processi e implementano le system call.
  • Altre componenti di un sistema operativo comprendono:
    • Log
    • Applicazioni di gestione
    • Applicazioni per lo sviluppo

Scambio di Dati via Rete

  • Il DMA (Direct Memory Access) channel è un coprocessore in grado di eseguire un piccolo sottoinsieme dell'instruction set del processore, tipicamente istruzioni relative alla copia di dati.
  • La trasmissione di dati via rete comprende:
    • Scrittura dei dati nel buffer di trasmissione
    • Copia dei dati dal buffer di trasmissione nel registro della NIC (Network Interface Card)
    • Trasmissione dei dati attraverso un canale di comunicazione
  • La ricezione di dati via rete comprende:
    • Ricezione dei dati dalla rete nella NIC
    • Copia dei dati dai registri della NIC nel buffer di ricezione
    • Segnalazione dell'arrivo di dati attraverso un interrupt
  • La sincronizzazione dell'attività del programma che trasmette e del programma che riceve è fondamentale per evitare perdite di dati.### Interfaccia di Rete e Trasmissione di Dati
  • La comunicazione tra macchine remote è difficile a causa delle velocità diverse dei clock del processore del transmitter e del receiver.
  • Il problema viene risolto attraverso algoritmi di flow control (controllo di flusso), che regolano la velocità di trasmissione e ricezione rispetto al canale di comunicazione.

Bufferizzazioni

  • La bufferizzazione è una tecnica utilizzata per evitare tempi morti nella trasmissione e ricezione di dati.
  • Un buffer è una porzione di memoria RAM utilizzata per memorizzare i dati in attesa di trasmissione o ricezione.
  • La bufferizzazione può essere implementata utilizzando un registro nella NIC (Network Interface Card).

Virtualizzazione dell'Attività di Rete

  • La virtualizzazione dell'attività di rete consente alle applicazioni di comunicare tra loro senza dover gestire i dettagli della comunicazione di rete.
  • Ciò avviene attraverso l'utilizzo di API (Application Program Interface) standard, come ad esempio MPI (Message Passing Interface).

Socket

  • Un socket è un'API di comunicazione utilizzata per stabilire una connessione di rete tra due processi.
  • Un socket è caratterizzato da un indirizzo di rete e una porta.
  • Le porte sono suddivise in well known e ephimeral, con le well known assegnate ai server e le ephimeral ai client.

File Descriptor

  • Un file descriptor è un numero intero che rappresenta una risorsa messa a disposizione dal sistema per un processo.
  • I file descriptor sono utilizzati per agire su diversi tipi di risorse, come ad esempio file, socket e dispositivi.
  • Le primitive read() e write() sono bloccanti, ovvero bloccano il processo che le ha lanciate se non sono in condizione di portare a termine il compito per mancanza di risorse.

Processi

  • In UNIX, i processi possono essere duplicati utilizzando la system call fork().

  • La fork crea una copia identica del processo che l'ha chiamata, inclusi i segmenti dati e codice.

  • La fork ritorna un valore diverso per il padre e il figlio, che possono essere utilizzati per differenziare il funzionamento dei due processi.

  • Il sistema operativo crea il primo processo, init, che può avviarne altri tramite la fork.

  • I processi possono essere identificati tramite un PID (process identifier).### Gestione dei processi

  • La system call signal (int signum, sighandler_t handler) consente di stabilire corrispondenze tra la segnalazione signum e la funzione handler da eseguire in caso di segnalazione.

  • La funzione handler non fa parte del normale flusso di esecuzione del programma.

  • Per inviare una segnalazione si utilizza la system call kill.

  • Gli handler di default del sistema sono:

    • term: invoca la exit terminando il processo
    • ign: handler vuoto, ignora la segnalazione
    • core: fa il core dump dello stato dell'applicazione
    • stop: mette il processo in attesa (passa in stato wait)
    • cont: riprende il processo che è attualmente in attesa (esce dallo stato wait)
  • La kill prende come parametro il PID del processo a cui inviare la segnalazione.

  • Occorrono controlli di sicurezza per evitare che un utente possa terminare i processi di un altro utente.

Controllo degli accessi

  • Un sistema operativo deve intermediare le richieste di accesso degli utenti alle risorse.
  • Esistono due approcci per l'assegnazione dei permessi: l'approccio mandatorio e l'approccio discrezionale.
  • L'approccio mandatorio è più adatto a sistema chiusi, dove il progettista del sistema decide manualmente i permessi.
  • L'approccio discrezionale delega all'amministratore di sistema la gestione dei permessi.
  • I principi di Denning per la gestione della sicurezza sono:
    • Anello debole: partire dal presupposto che chi attacca è più furbo di noi.
    • Minimo privilegio: assegnare ai permessi possibili nell'accesso alle risorse.
    • Cambio di contesto: assegnare permessi diversi in base al contesto attuale.

Permessi in UNIX

  • Non tutti i file system supportano la gestione dei permessi.
  • In UNIX esiste un utente root, con UID 0, che è proprietario di tutti i file.
  • L'utente proprietario del file può modificare i permessi con il comando chmod.
  • Il comando chmod prende come parametro una lettera (u, g, o) che indica l'utente o gruppo a cui attribuire i permessi.
  • I permessi di accesso ai file sono discrezionali, mentre il permesso di modificare i permessi è mandatorio.
  • Il comando chown consente di cambiare il proprietario del file.

Controllo degli accessi role-based

  • In UNIX ad ogni utente è assegnato un gruppo di appartenenza.
  • Un utente può essere membro di più gruppi.
  • Il file /etc/passwd contiene le informazioni degli utenti.
  • Il file /etc/group contiene le informazioni dei gruppi.
  • Il comando chmod può agire anche sui gruppi, col parametro g.

sudo e accesso root

  • Il comando sudo esegue un comando con permessi di root anche se lanciato da un altro utente.
  • Il file /etc/sudoers contiene le configurazioni di sudo.
  • sudo può essere configurato per richiedere una password.

File system

  • Il file system ext2 è il primo file system sviluppato appositamente per Linux.
  • Un file system deve memorizzare file di diversi tipi.
  • Esistono 5 tipi di file: regolari, directory, link, speciali e pipe.
  • I dati dei file sono suddivisi in blocchi, la cui dimensione varia da un file system all'altro.
  • L'inode contiene i metadati del file e i puntatori ai blocchi di dati.
  • L'indirizzamento diretto è inode->blocchi dati.
  • L'indirizzamento indiretto è inode->blocchi di indirizzamento->blocchi dati.
  • La dimensione degli indirizzi può essere 32 o 64 bit, a seconda dell'implementazione.
  • La dimensione dei blocchi di dati è il risultato di un compromesso tra le esigenze di spazio e di efficienza.

Studying That Suits You

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

Quiz Team

Related Documents

Description

Questo quiz verifica la tua comprensione dei componenti e delle caratteristiche dei sistemi operativi, tra cui la virtualizzazione, la standardizzazione, la sicurezza e l'efficienza.

More Like This

Firmware and Software Subsystems
10 questions
Operating System Components
38 questions

Operating System Components

PrivilegedMoscovium avatar
PrivilegedMoscovium
Inleiding tot Besturingssystemen
12 questions
Operating Systems Overview Quiz
55 questions
Use Quizgecko on...
Browser
Browser