SEARCH
You are in browse mode. You must login to use MEMORY

   Log in to start

level: architettura dei sistemi operativi

Questions and Answers List

level questions: architettura dei sistemi operativi

QuestionAnswer
nella creazione di un sistema operativo, che cosa prevede la fase preliminare?- uno studio preliminare o progettazione - definizione degli scopi del sistema operativo - definire una architettura di partenza - definizione dei meccanismi (come vengono fatte le cose dal SO) e criteri(ordine e quali cose fare)
Quali sono gli svantaggi di un sistema operativo monolitico?- Se una parte del SO fallisce di conseguenza altre parti possono fallire - È difficile da mantenere poiche ogni modifica al sistema potrebbe influire indirettamente su altre parti. - Difficilmente scalabile.
Quali sono i vantaggi di un sistema operativo stratificato?- Piu sicuro per la suddivisione dei ruoli del SO e se una parte fallisce allora puo' essere sostituita - È efficiente. - Piu' facilmente scalabile e - Facilmente manutenibile
Qual è lo svantaggio di un sistema operativo a microkernel?- sovraccarico di lavoro per il kernel le chiamate fra un modulo utente e un altro devono passare sempre dal kernel - Piu complesso di altri sistemi
Quali sono i vantaggi di un sistema operativo stratificato?- Facile da mantenere poiche lavora a compartimenti stagni fra moduli - Facile da espandere.
Quali sono gli svantaggi di un sistema operativo a macchina virtuale?- Difficile condivisione fra macchine virtuali (a meno che non si utilizzi un disco condiviso) - Non è efficiente. una chiamata deve passare per il kernel della VM e dal kernel del OS
spiega il sistema monoliticoesegue tutte le funzioni del sistema dalla gestione della CPU all’interfaccia utente. Non vi è alcun ordinamento tra le funzioni del sistema: tutte le funzioni e le strutture dati sono accessibili da qualsiasi punto del kernel. Manutenzione ed espansione sono molto diffcili: ad esempio un bug nella funzione potrebbe causare il blocco dell’intero sistema, e trovarlo e risolverlo potrebbe essere complicato. Il vantaggio principale di quest’approccio è che il sistema è compatto, veloce ed eciente, quindi è un approccio adatto a sistemi semplici.
spiega un sistema a struttura gerarchicaorganizza il sistema su livelli funzionali. Una funzione di un certo livello può chiamare solo funzioni di livello inferiore. Non vi è comunque una separazione tra le componenti del SO. - Distinguere le dipendenze gerarchiche potrebbe non essere immediato. - Manutenzione ed espansione rimangono dicili, ma sono più gestibili di un sistema monolitico.
spiega il sistema stratificatoè scomposto in un certo numero di livelli (il più basso è l’hw). Ogni livello è un modulo che implementa un componente del SO (gestione CPU, memoria, ...), nasconde i propri dettagli implementativi agli altri e può comunicare con il livello sottostante attraverso un’interfaccia ben definita. Lo sviluppo e il debug del sistema sono facilitati: quando si implementa un nuovo livello, si presume che quelli sottostanti funzionino correttamente, poiché sono già stati testati; e dopo aver implementato e testato anche il nuovo livello, si può passare a un livello superiore in modo analogo. - I vantaggi quindi sono la modularità e la facilità di sviluppo e manutenzione. - Gli svantaggi sono la possibile dicoltà nell’identificare i livelli e l’ecienza limitata: una chiamata a una funzione di un certo livello deve passare attraverso tutti i livelli sopra ad esso, riducendo le prestazioni del sistema.
spiega il sistema a microkernel- struttura il sistema rimuovendo dal kernel tutte le funzioni non indispensabili, implementandole come servizi a livello utente. - Il kernel così creato è molto piccolo e ha solo funzioni minime di gestione processi, memoria e comunicazione. Lo scopo principale del microkernel è di permettere la comunicazione tra programmi client e servizi, oltre che tra i servizi stessi così che possano richiedersi funzioni l’un l’altro. - La comunicazione avviene tramite messaggi scambiati dal kernel, quindi c’è un grande sovraccarico di gestione, che incide sull’ecienza del sistema. - Questo modello permette la massima separazione tra meccanismi e politiche (è sempre bene separare il “come si fa” dal “cosa si fa”), una facile modificabilità, la massima portabilità (basta reimplementare le poche funzioni del microkernel utilizzate dai servizi per far funzionare il sistema su una macchina diversa) e adabilità: - se un servizio fallisce, il resto del sistema rimane inalterato, e si può riavviare il servizio.
spiega il sistema modulareQuest’approccio coinvolge l’uso di tecniche di programmazione a oggetti, ed è il più utilizzato. Come nell’approccio a microkernel, il kernel possiede solo un insieme minimo di funzioni, ma qui si collega dinamicamente ai moduli che implementano le varie funzioni del sistema al boot e durante l’esecuzione. Come nel modello a strati, le implementazioni di ogni modulo sono nascoste agli altri ma hanno interfacce ben definite per comunicare. La comunicazione è diretta, migliorando così le prestazioni rispetto all’approccio a microkernel (rimangono però limitate). Gli altri vantaggi di questa implementazione sono gli stessi dei sistemi a microkernel.
come il sistema operativo è in grado di misurare le sue performance?esistono due modi principali: - viene implementato un codice che esegue delle misurazioni sul comportamento come la stesura dei timestamp delle esecuzioni di processi e ne mostra i risultati (es dei file di log) successivamente un programma di analisi è in grado di estrapolarnele informazioni sulle performacne - includere nel sistema stru­ menti interattivi che permettano a utenti e amministratori di interrogare lo status dei vari componenti del sistema per individuare i colli di bottiglia
come vengono gestiti i segnali e i messaggi fra processi?le comunicazioni fra processi possono avvenire in 2 modi principalmente - comunicazione diretta: i processi sono identificati e i messaggi sono spediti ad uno specifico destinatario (es. messaggi, memoria condivisa, socket) - comunicazione indiretta: in cui i processi comunicanti non si conoscono direttamente ma comunicano attraverso un terzo mezzo (es. mailbox, file, socket)
che cosa e' il bootstrap e quali tipi ne esistono?e' la procedura di avviamento di un sistema da parte del kernel i vari tipi sono: - a un passo: il SO si trova in memoria ROM (caricamento veloce ma non modificabile, poco sicuro) - a due passi: in ROM e' presente solo il bootloader che carica dalla memoria di massa il SO in RAM(piu scalabile e facile da implementare del primo, piu lento del primo) - a tre passi : in ROM c'e' un base loader che carica il loader che carica solo le sezioni del SO che sono necessarie (piu lento, piu flessibile, occupa meno memoria RAM, piu sicuro dei tre)
quali sono i diversi servizi forniti da un sistema operativo?Interfaccia con l'utente: consente all'utente di interagire con il sistema operativo e di eseguire programmi. Esecuzione di un programma: carica un programma in memoria e lo avvia. Operazioni di I/O: consente ai programmi di accedere ai dispositivi di I/O. Gestione del file system: consente ai programmi di creare, leggere, scrivere e cancellare file. Comunicazioni: consente ai processi di scambiare informazioni tra loro. Rilevamento degli errori: rileva e gestisce gli errori che possono verificarsi nel sistema. Assegnazione delle risorse: alloca le risorse del sistema agli utenti e ai processi. Contabilizzazione dell'uso delle risorse: registra l'utilizzo delle risorse da parte degli utenti. Protezione e sicurezza: protegge le informazioni e il sistema da accessi non autorizzati.
quali sono le principali interfacce di un sistema operativo?interfaccia a riga di comando (interprete di comandi) si avvale di un interprete di comandi per eseguire il comando testuale impartito dall'utente interfaccia grafica: piu intuitive da usare, si avvale di una o piu finestre con i relativi menu
che cosa sono le chiamate di sistema?Le chiamate di sistema sono le funzioni che consentono ai programmi utenti di accedere ai servizi del sistema operativo.Le chiamate di sistema sono generalmente disponibili sotto forma di routine scritte in C o C++, sebbene per alcuni compiti di basso livello sia necessario il ricorso a istruzioni in linguaggio assembly.
come vengono misurate le prestazioni dei sistemi operativi?di solito i task compiuti da un sistema operativo vengono segnati in un file di log con annessa data di esecuzione, con il giusto software il sistema operativo è in grado di estrapolarne informazioni riguardanti le prestazioni