Vai al contenuto

darkmod

Utente
  • Numero contenuti

    42
  • Iscritto

  • Ultima visita

Tutti i contenuti di darkmod

  1. PER QUALSIASI DOMANDA CONTATTATEMI ALL'INDIRIZZO EMAIL: info@darkmod.it
  2. Bhe per quello spero di riuscire a parlare del downclock cpu
  3. Come già detto nel thread precedente, il CPU burst è l'intervallo di tempo dedicato al processo per essere elaborato dalla CPU. Consapevoli del fatto che i processi hanno ragion di esistere proprio per essere dati in pasto all'unità centrale di elaborazione, sono di notevole importanza diversi meccanismi che consentono la sostituzione dell'attuale processo in esecuzione. Fondamentali perchè il processore dovrà evitare l'esecuzione di istruzioni dovute ad utenti/processi non autorizzati. Il particolare stato del sistema operativo (OS) durante il quale avviene il cambiamento del processo in esecuzione sulla CPU prende il nome di Context Switch. Ci chiediamo in modo abbastanza scontato: come agisce la CPU per proteggersi da tali accessi non autorizzati? Esistono 3 diversi approcci... Protezione in base al tempo Protezione in base alla RAM Protezione in base alle istruzioni privilegiate e modalità duale Protezione in base al tempo: E' realizzabile solo nel caso in cui vi sia un dispositivo temporizzatore a disposizione della CPU. In altre parole deve esistere un contatore di decremento. Quando quest'ultimo arriva a zero viene lanciata una eccezione e di conseguenza il processo smette di essere elaborato, si crea quindi una sorta di interavallo temporale all'interno del quale è possibile eseguire il processo. Al di fuori di tale intervallo qualsiasi altra istruzione dello stesso, non verrà più elaborata. Protezione in base alla RAM: In tal caso la situazione è un pò più complicata in quanto è necessario introdurre alcuni concetti fondamentali riguardanti la determinazione dell'indirizzo fisico a partire da quello logico all'interno della memoria. Ritengo dunque necessario dare una piccola spiegazione riguardante tale argomento per poi definire in modo opportuno il meccanismo di protezione basato sull'utilizzo della memoria RAM. Tutti i programmi/processi utilizzano un indirizzamento relativo ovvero non sfruttano indirizzi di memoria fissi perché in qualsiasi momento potrebbe essere opportuno eseguire qualche istruzione che non appartiene a quel programma ma bensì ad un altro (sistema concorrente). Nell'immagine appena sopra è possibile notare sia il metodo di assegnazione dell'indirizzo fisico a partire da quello logico, sia il meccanismo di protezione basato sulla RAM (vedi limite). A destra della stessa immagine è anche presente una tabella, ma andiamo per gradi e analizziamo tutti gli aspetti... L'indirizzo fisico come già detto in precedenza, viene ricavato da quello logico una volta che è stato sommato alla base. Quest'ultima altro non è che il primo indirizzo di memoria utile che può essere assegnato ad un determinato processo. Nel diagramma viene anche effettuato un controllo che da ora in poi indicheremo sempre con un rombo in questi schemi. Tale controllo viene fatto prendendo in considerazione il limite ovvero l'ultimo indirizzo di memoria che può essere sfruttato dal processo in esame. Se l'indirizzo logico è minore o uguale al limite tutto procede in modo regolare al fine di determinare l'indirizzo fisico, in caso contrario il processo viene escluso dall'elaborazione da parte della CPU. Quello appena descritto è il meccanismo che si trova alla base del metodo di protezione che implica l'utilizzo della memoria RAM. Al fine di comprendere al meglio tale funzionamento possiamo fare un paragone con il meccanismo di protezione basato sul tempo, infatti in quest'ultimo veniva assegnato un determinato intervallo di tempo utile al processo per essere elaborato, mentre nel caso della protezione basata su RAM viene assegnata una porzione di memoria utile al processo stesso. La tavola sul lato destro della figura prende il nome di tabella di allocazione della memoria dove ogni processo oltre ad essere identificato dal PID (process identifier), presenta quella che è la sua base e il suo limite. I processi sono stati indicati con la lettera P iniziale (per comodità) ma in realtà vengono rappresentati con l'utilizzo di interi. Se avete Windows fate CTRL+ALT+CANC per verificare :-) Protezione in base alle istruzioni privilegiate e modalità duale: La CPU può trovarsi in diversi stati, ogni stato è identificato da una serie di bit. Dunque in base alle operazioni che deve eseguire l'unità centrale, essa salta da uno stato all'altro. Ogni CPU ha n bit di memoria disponibili per gli stati, quindi può trovarsi esattamente in 2^n stati differenti. Tra questi, al fine di spiegare (spero) al meglio il meccanismo di protezione basato sulle istruzioni privilegiate consideriamo gli stati seguenti: Modalità utente (operazioni privilegiate proibite) Stato supervisivo (operazioni privilegiate consentite) Ognuno degli stati precedenti è caratterizzato da un bit di modo (0/1), la sua variazione rientra tra quelle che sono le istruzioni eseguibili con determinati privilegi. Ma come funziona nello specifico? Il tutto si basa sull'utilizzo delle trappole ovvero sulla creazione di zone che circondano uno o più stati privilegiati. Quando la CPU tra un "salto e l'altro" entra nella trappola, il corrispondente processo viene immediatamente interrotto. A titolo di esempio una istruzione privilegiata è una qualsiasi istruzione che richiede l'accesso all'hardware. Allora come si riesce ad eseguire comunque una istruzione privilegiata da parte di un utente? Esegui come amministratore? Direi di si! :-) Nello specifico si opera la cosiddetta chiamata a sistema (System Call). Quest'ultima consente: Tutti gli accessi alle risorse HW Tutte le operazioni di controllo dei processi Tutte le richieste di rilascio delle risorse E' importante precisare che chi esegue tale funzione non è l'utente ma il sistema stesso o meglio un modulo fidato di quest'ultimo. L'utente ha esclusivamente il compito di passare i parametri della funzione relativi all'operazione privilegiata che effettivamente si vuole eseguire. Risulta banale ma opportuno da precisare, che la variazione del bit di modo che consente l'esecuzione di istruzioni con privilegi viene operata dal sistema.
  4. Lo stato della batteria si controlla permendo il tasto centrale. Tu cosa vorresti?
  5. Salve a tutti! Ho da poco maturato l'idea di scrivere una serie di thread cercando di entrare più nel dettaglio nell'ambito dei sistemi operativi (da ora in poi OS). Non lo definirei un corso ma più che altro una serie di incontri dove mi piacerebbe confrontarci tutti, su questi programmi di complessità particolarmente rilevante. Non farò riferimento ad un particolare tipo di OS ma cercherò di fare una panoramica generale di quelli che sono (tutti o quasi) i meccanismi alla base di tali software. Tale idea spero di portarla a compimento volta per volta (cercherò di trovare il tempo) e verrà realizzata per puro spirito di condivisione, se poi sarà utile a qualcuno ben venga. Ovviamente questo scritto non può essere minimamente paragonato ad un libro di testo, dunque già vi anticipo che molte cose non le approfondirò e quasi sicuramente commetterò degli errori. In tali casi vi invito a consultare se volete il libro di riferimento o qualsiasi altro testo che riterrete opportuno. Riferimenti: Testo: Sistemi Operativi - Abraham Silberschatz, P. Baer Galvin, Greg Gagne Corso di Sistemi Operativi a.a. 2011 - Università di Roma "La Sapienza" Che cos'è un OS? Un sistema operativo altro non è che un programma come qualunque altro! La cosa particolare è che esso agisce da intermediario tra l'utente e gli elementi che compongono un sistema di elaborazione. Come già detto in precedenza sono dei software di dimensioni consistenti e per tale motivo la loro realizzazione deve essere di tipo modulare (un pezzettino alla volta). L'utilizzo degli OS e quindi il loro approccio semplifica: lo sviluppo di programmi, l'esecuzione dei processi (avremo modo di approfondirli) e la gestione delle risorse del sistema di elaborazione. Dal punto di vista del calcolatore, l'OS è visto come un assegnatore di risorse in quanto quasi tutti i moderni sistemi sono di tipo concorrente. Un OS di tipo concorrente si basa sulla possibilità di assegnare le diverse risorse ai più processi che ne fanno richiesta, ovviamente ci sono diversi meccanismi che consentono il corretto funzionamento dell'intero sistema senza andare incontro a problematiche conflittuali. Ma quali sono le risorse di cui parliamo? Tempo di impiego della CPU (chiamato anche CPU burst che per essere precisi altro non è che l'intervallo di tempo che la CPU dedica al processo che deve essere elaborato) Utilizzo della memoria Gestione dei dispositivi di I/O Gestione delle risorse grafiche ecc. Dal punto di vista dell'utente l'OS è strettamente legato all'interfaccia e ve ne sono di moltissime. Ovviamente noi comuni mortali riterremo migliore un sistema operativo con una buona interfaccia ma c'è comunque da considerare la questione relativa alle prestazioni e all'utilizzo delle risorse. In altre parole diciamo che ci deve essere un giusto equilibrio tra quelle che sono le caratteristiche sopra elencate. Un calcolatore è costituito da uno o più processori e da una serie di controllori dei dispositivi, che sono connessi all'intero sistema di elaborazione attraverso un "canale" chiamato bus. A tutti i dispositivi presenti viene concesso l'utilizzo e quindi l'accesso ad una memoria. Nel seguito di questi thread spero riusciremo a vedere le sostanziali differenze tra memoria condivisa e memoria a scambio di messaggi. Come si interfacciano i dispositivi con il sistema operativo? Esistono diverse tecniche di interfacciamento, quelle che analizzeremo sono: Buffering: il buffer è un deposito temporaneo che semplifica la sincronizzazione del dispositivo con l'esterno. Il concetto può essere reso più chiaro attraverso un esempio. La CPU lavora con velocità più o meno pari a 1ns (nano-secondo), mentre la RAM con velocità pari a 50ns quindi per farli lavorare insieme è possibile utilizzare la tecnica del buffering, ovvero un dispositivo più lento della CPU (vedi RAM) inizia la lettura e la memorizzazione dei file nel suo buffer interno, ancora prima che la CPU ne faccia esplicitamente richiesta. Quando la CPU effettivamente ha bisogno di tali file questi saranno già presenti nel buffer e quindi pronti per essere trasmessi. In tal modo si ottimizzano i tempi quando si hanno a che fare con dispositivi relativamente più lenti rispetto alla CPU. Spooling: è una tecnica che consiste nell'effettuare operazioni simultanee anche se la CPU è impegnata in altre operazioni. In altre parole si "salta" il passaggio relativo all'interrogazione della CPU. Per essere più precisi se ad esempio voglio stampare un file, i dispositivi protagonisti sono la stampante e il disco, dunque la CPU da solo l'abilitazione all'accesso al bus di sistema, poi sarà la stampante a dialogare con il disco senza più impegnare la CPU. Caching: la cache è un "magazzino" locale a portata di mano all'interno della CPU. Sono memorie estremamente veloci! Dunque il caching è una tecnica che consente di ottenere costi bassi e massime prestazioni. Mi avvalgo di un esempio: quando il sistema ha bisogno di prelevare una determinata istruzione, non viene presa solo quella ma l'intero blocco. Tale blocco o meglio insieme di istruzioni viene memorizzato all'interno della cache in modo tale che quando l'OS ne fa richiesta queste saranno immediatamente disponibili. A primo acchito sembra un tecnica "sprecona" o almeno al sottoscritto diede tale impressione ai tempi, ma in realtà non è così perché il principio si basa sul fatto che con probabilità molto elevata se l'OS ha bisogno di una istruzione, a breve avrà bisogno anche delle altre che la contornano. Non è sicuro che l'intero blocco servirà ma viene preso comunque per le motivazioni dette poco prima, ad ogni modo se le istruzioni memorizzate nella cache non risulteranno essere utili verranno eliminate. Interrupt: immaginiamo che ci sia un programma in esecuzione e che ad un certo punto l'utente sposti il mouse in una qualsiasi posizione. Cosa succede? Viene lanciata una interruzione alla CPU che stava tranquillamente eseguendo il programma insieme alle altre milioni di operazioni. La CPU a questo punto è come se facesse una fotografia della sua situazione attuale memorizzandola all'interno della RAM, fatto ciò viene eseguito un programma diagnostico con l'intento di valutare se effettivamente il mouse è stato spostato oppure no. In caso positivo viene eseguito quel frammento di codice corrispondente all'esigenza e successivamente aggiornate le informazioni dell'intero sistema. Infine viene recuperato dalla RAM lo stato precedente (prima dell'interrupt) della CPU e quindi portati a termine tutti i processi a partire dal punto in cui sono stati interrotti.Un sistema che funziona con il meccanismo delle interruzioni prende il nome di sistema a multiprogrammazione.
  6. Interventi di questo tipo da parte tua non sono sporadici, le segnalazioni ricevute sono già abbastanza. Ti invito cortesemente a non riproporli. 2° avvertimento. Grazie per la collaborazione
  7. Non fare doppi post... Continuiamo nell'altro thread http://www.nonsologaming.com/showthread.php?76470-Mettere-in-parallelo-due-schede-grafiche-quot-quasi-quot-differenti Chiudo
  8. Ovviamente dal registratore usa una chiavetta per passare poi i dati sul pc
  9. Mai avuti problemi con bootcamp. Sarà sicuramente il tuo disco originale microsoft ad essere usurato
  10. Ragionamento sensato. Auguri per il futuro
  11. Bhe io controllerei in alternanza (non intendo a.c.) se c'è continuità o meno tra gate source e drain, poi testerei anche i condensatori
  12. Anche un po' di più direi... o sono io ad aver acquistato dal più caro...
  13. Ciao @LizZoOo contattami su info@darkmod.it
  14. Ciao max contattami su info@darkmod.it Saluti
  15. Mi viene solo da dire che adoro il tuo modo di fare e le cose che dici.
  16. @catoz82 risposto in prv
  17. darkmod

    saluto al forum

    I tuoi finali sono fantastici. Rimani un amico anche fuori dal forum. Saluti e un bacio all'erede
  18. @detz risposto in prv
  19. @newtrix risposto in prv!
  20. darkmod

    Buone vacanze

    Che vita! Ciao Briatore
  21. @mytyko74 contattato in prv. Saluti :)
  22. @didemiliano Risposto in privato...
  23. @dopeboy Si è possibile. Contattami in privato per maggiori info saluti ;)
×
×
  • Crea Nuovo...