Torna alla pagina di Sistemi Operativi
:: Appunti caotici ::
Lezione 4
Interfacce dei sistemi operativi
Pag 1
Sommario
...
Pag 2
Interfaccia utente
...
Interazione con utente
...
Pag 3
Interfaccia programmativa
L'applicazione quando effettua una chiamata di sistema non può scegliere la parte della funzione che serve a lui. Una volta quindi che l'applicazione effettua tale chiamata si deve "cuccare" tutta la funzione.
Chiamata di sistema (1)
Tutti sanno che nella memoria sono presenti i programmi, i dati, e il sistema operativo. Quando un programma P effettua una chiamata di sistema chiama una funzione presente nel sistema operativo. Questo potrebbe creare dei problemi in quanto se il programma P genererebbe l'indirizzo della chiamata potrebbe finire un po' ovunque all'interno del codice del sistema operativo e potrebbe fare delle cose poco gradevoli, come modifiche al codice del sistema operativo.
Quindi ci dobbiamo assicurare che il programma P non generi l'indirizzo della chiamata.
Pag 4
Chiamata di sistema (2)
Per porre rimedio a questo piccolo problema si è pensato di effettuare un accesso forzato e controllato attraverso un'interruzione attivata via software.
Il programma P per far capire al sistema operativo che vorrebbe fosse avviata una chiamata di sistema deve usare un meccanismo hardaware, ovvero il meccanismo delle interruzioni. Dunque il programma P è costretto a mandare un'interruzione alla CPU (trap), la quale smette il suo lavoro e analizza la trap per poter comprendere chi ha effettuato tale richiesta ( questo avviene grazie a degli indentificatori di funzione posti sulla CPU ).
Il principio di funzionamento, necessario ad ovviare il problema delle chiamate casuali è che l'applicazione che chiama la chiamata di sistema è vista come componente passiva, mentre (PENSO) il sistema operativo è la componente attiva. Così facendo l'applicazione deve chiedere il permesso di effettuare tale chiamata per poter essere "guidata" alla zona di memoria contente il codice della funzione richiesta ed essere sottoposta di conseguenza a determinati controlli. La differenza è molto evidente, perchè effettuare una normale chiamata senza questo controllo vorrebbe dire chiamare una qualsiasi funzione. Menre facendo passare tale applicazione attraverso opportuni controlli vuol dire, oltre ad assicurarsi che il programma esegua tutta la funzione correttamente, limitare di conseguenza lo spazio di visibilità delle altre zone di memoria.
Torna alla pagina di Sistemi Operativi