lunedì 23 novembre 2015

Operazioni base del OS

Operazioni base del OS
Un computer quando viene acceso o riavviato, ha bisogno di un programma iniziale per l’esecuzione. Questo programma iniziale, detto bootstrap program tende ad essere semplice e di solito è memorizzato nell’hardware nella memoria read-only (ROM) o eletrically erasable programmable read-only memory (EEPROM), generalmente detto firmware. Il bootstrap per adempiere al suo compito, deve allocare il kernel del s.o. e caricarlo in memoria.
Una volta che il kernel è stato caricato ed è in esecuzione, comincia a fornire dei servizi al sistema e ai suoi utenti. Qualcuno tra questi è fuori dal kernel, attraverso programmi di sistema che sono caricate in memoria all’accensione per diventare processi di sistema, o system daemons, che restano in esecuzione per tutta l’esecuzione del kernel.


Interrupt
Dopo che il primo processo di init viene eseguito, e fa partire altre catene di daemons, il sistema è stato caricato e aspetta il verificarsi di un evento per partire.
Questo evento è segnalato da un interrupt, dall’hardware o dal software.
Dall’hardware i segnali possono essere innescati mandando un segnale alla CPU, attraverso il bus di sistema, mentre dal software l’interrupt è dato da una speciale operazione chiamata system call.
Quando la CPU riceve un interrupt, ferma l’esecuzione attualmente in corso e la trasferisce in una determinata posizione che contiene l’indirizzo di partenza nella quale è posizionata la service routine per l’interrupt. Così viene eseguito l’interrupt service routine e una volta completata, la CPU riprende l’operazione interrotta.
L’interrupt trasferisce il controllo all’appropriata routine richiamata.
Poiché vi è un numero predefinito di interrupts possibili, si utilizza una tabella per fornire la velocità necessaria.

Next > (Tratti generali)

domenica 22 novembre 2015

Sistema Operativo

Un sistema operativo è un programma che gestisce l’hardware del computer e agisce da intermediario tra l’utente e l’hardware. Alcuni SO sono progettati per essere convenienti e altri per essere efficienti, altri per essere ibridi.


Cosa fa il sistema operativo
Un sistema computerizzato può essere diviso approssimativamente in hardware, sistema operativo, applicazioni, utenti.
L’hardware (la CPU, la memoria, i dispositivi di I/O) fornisce le risorse base per il sistema.
Le applicazioni definiscono i modi in cui le risorse vengono utilizzate dai vari utenti.
Il sistema operativo controlla l’hardware e ne coordina l’uso da parte delle applicazioni.
In questo contesto, il sistema operativo può essere visto anche come un allocatore di risorse e un programma di controllo, che gestisce l’esecuzione dei programmi dell’utente per prevenire eventuali errori e un uso improprio del computer.

Data la difficoltà nel dare una definizione appropriata di un sistema operativo, per la vastità di progettazioni possibili, da un leggero e semplice editor fullscreen a un complesso e pesante sistema basato su finestre grafiche, per una definizione comune è l’unico programma in esecuzione in ogni momento sul computer, comunemente chiamato kernel.

Next >
(Operazioni base del S.O.)

martedì 10 novembre 2015

isMatrixSim_RICORSIVA

int isMatrixSim(int matrix[][Dim], int sI, int  sJ, int dim) {
    printf("matrix[%d][%d]:%d == matrix[%d][%d]:%d \n", sI, sJ, matrix[sI][sJ], sJ, sI, matrix[sJ][sI]);
    if (sI == dim || dim == 1)
        return 1;
    else {
        if (sJ <= dim - 1){
            if (matrix[sI][sJ] == matrix[sJ][sI])
                return isMatrixSim(matrix, sI, sJ+1, dim);
            else
                return 0;
        } else
            return isMatrixSim(matrix, sI+1, 0, dim);
    }
}