Sistemi Operativi: Componenti e Caratteristiche

UnparalleledChrysoberyl avatar
UnparalleledChrysoberyl
·
·
Download

Start Quiz

Study Flashcards

41 Questions

Qual è uno degli scopi principali del sistema operativo?

Virtualizzare risorse per rendere facilmente disponibili ai software applicativi

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

True

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.

interoperabilità

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

Virtualizzare tutto per le applicazioni

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

False

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

I dati in attesa di smistamento.

Il demultiplexing dei dati ricevuti è effettuato dal ________.

sistema operativo

Quale funzione serve a mandare in esecuzione un file eseguibile?

execve

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

True

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

Un processo che ha invocato la exit e aspetta di essere terminato.

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

init

Abbinare le seguenti segnalazioni con i relativi significati:

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)

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

Virtualizzare le risorse hardware

I kernel moderni sono di tipo modulare.

True

Cos'è una system call?

Una chiamata di sistema che permette a un'applicazione di richiedere funzionalità al sistema.

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

log

Abbina le seguenti componenti alle loro descrizioni:

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

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

Perdita di dati

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

Superblock e file system descriptor

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

False

Cosa succede quando si elimina un file?

Viene eliminato solo il link specifico, non l'inode e i dati associati.

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

inode

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

Violazione del principio di minimo privilegio

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

Il file verrà eseguito con i permessi del proprietario del file.

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

0

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

False

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

File regolare = Contiene dati di qualunque tipo File speciale = Usato per accedere a dispositivi

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

HTAccess

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

False

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

20

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

TCP

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

1

Le comunicazioni tra thread avvengono attraverso aree di memoria comuni.

True

Cosa fa la funzione pthread_join?

blocca il thread che la chiama finché l'esecuzione di un altro thread specificato non termina

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

mutex

Abbinare i tipi di sincronizzazione alla loro descrizione:

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

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

Gestisce le trap delle macchine virtuali

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

False

Cosa è un rootkit difensivo?

Un hypervisor che controlla il comportamento del sistema operativo.

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

thread stessi

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.

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.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free

More Quizzes Like This

Operating System Types and Platforms
15 questions
Operating System Components
38 questions

Operating System Components

PrivilegedMoscovium avatar
PrivilegedMoscovium
Inleiding tot Besturingssystemen
12 questions
Client-Server Architecture
6 questions
Use Quizgecko on...
Browser
Browser