prof. Nunzio Brugaletta

atapSO

EnneBi – Computer Science
AvantiIndietroInizio




Il time-sharing

Time-sharing è un termine comune per indicare i sistemi multiprogrammati e multiutente. Un sistema multiutente permette a due o più terminali di accedere allo stesso calcolatore.

Come già accennato in precedenza, i sistemi batch rappresentarono un grosso passo in avanti in termini di incremento delle prestazioni di un sistema di elaborazione, ma restava un problema: se il programma in esecuzione richiede l'intervento delle unità di I/O, la CPU resta inattiva e questo avviene tanto più spesso quanto più sono le richieste. Per poter sfruttare al meglio il tempo macchina, si può cercare di sfruttare l'inattività della CPU, quando il programma è in attesa di una operazione di I/O, impegnandola per l'esecuzione di un altro programma. Il principale scopo dei sistemi multiutente in generale, e dei sistemi time-sharing in particolare, è quello di fornire buoni tempi di risposta. I sistemi time-sharing cercano di distribuire in maniera equa le risorse fra gli utenti: le elaborazioni che richiedono maggior uso della CPU vengono fatte aspettare più a lungo.

Il sistema per fornire all'utente l'illusione di avere una macchina a propria disposizione si basa sulla suddivisione del tempo macchina in piccole parti chiamate time-slice e sull'assegnazione, a turno, dei time-slice ai vari programmi in esecuzione. Viene assegnato un time-slice ad un programma, quando il time-slice termina, l'esecuzione del programma viene sospesa e, si assegna un time-slice ad un altro programma, e così via. Chiaramente si avrà tanto più l'illusione di avere a disposizione una macchina quanto più sarà oculata l'assegnazione dei time-slice.

La copresenza e l'esecuzione contemporanea, nel senso già trattato, di più programmi pone problemi di due tipi:

Per il momento si tratterà dei problemi di sicurezza. In un sistema multiutente esiste, ed è il primo utente messo a disposizione dal sistema, un utente che ha accesso a tutte le risorse disponibili e a cui è demandato il compito di creare gli account per gli altri utenti. L'utente di cui si parla viene chiamato amministratore di sistema, superutente o anche utente root (nel sistema Linux). Un utente per poter usare le risorse di una macchina è necessario che abbia un account, cioè sia stato registrato, dall'utente root, come utente con determinati diritti che, a seconda delle politiche di sicurezza adottate, sono soggette a restrizioni nelle operazioni permesse: si può andare, per esempio, dal limitare l'accesso delle directory di sistema alla sola lettura, per arrivare anche a non permettere nemmeno la lettura o a limitare la parte di hard disk che l'utente può utilizzare.

Una volta che l'account è attivo, l'utente può accedere, per mezzo della procedura di login, specificando il proprio user-id o identificativo utente, il nome con cui è registrato come utilizzatore della macchina, e la propria password, una parola segreta che conferma la identità dell'utente. Quando un utente finisce il suo lavoro effettua la procedura di logout e si scollega dal sistema. In generale lo spegnimento della macchina è un privilegio dell'utente root e, d'altra parte, un utente non può avere il potere di spegnere il sistema: potrebbero esserci altri utenti collegati. La procedura di spegnimento o shutdown, forza la chiusura di programmi ancora in esecuzione e lo scollegamento forzato di eventuali utenti ancora collegati. Quando si ha necessità di effettuare, per esempio per motivi di manutenzione del sistema, lo spegnimento del sistema, può essere avviato uno shutdown differito, mandandone comunicazione, per permettere agli utenti di chiudere le proprie sessioni di lavoro in maniera normale effettuando il backup dei propri dati.




AvantiIndietro - Inizio

http://ennebi.solira.org

ennebi@solira.org