Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Complementi di programmazione
Introduzione
- Programma = sequenza di istruzioni scritte nel linguaggio interpretabile dal calcolatore che portano ad un particolare risultato.
- Algoritmo = sequenza di istruzioni che eseguiti ordinatamente a partire dai dati di input del problema consentono di ricavare dei dati di output utili al fine di risolvere un problema.
- Linguaggio macchina = unico linguaggio che la macchina è in grado di interpretare (esercita a basso livello, livello 0 - di alto livello).
Visito che si può dare un programma usando il linguaggio macchina, richiede la conoscenza ampia sia del calcolatore ad esso applicato. Per ovviare a questo problema, sono stati sviluppati dei linguaggi di programmazione (a metà tra basso e alto livello).
Eseguire un programma
Un programma in esecuzione prende il nome di processo. La sua struttura in memoria (RAM) si suddivide in:
- codice e costantiNelle istruzioni in linguaggio macchina che costituiscono il programma da eseguire.
- dati staticiDati allocati per tutta la durata del programma (variabili: statiche e globali).
- heap memoria destinata all'allocazione dei dati allocati dinamicamente (variabili dinamiche), linguaggi moderni a gestione automatica della memoria usano il ciclo di vita del programma.
Chiamata di una funzione
All'inizio dell'istruzione, in genere, la chiamata viene allocata allo stack. Viene allocato lo spazio necessario per le variabili automatiche della funzione.
Traduzione e programmazione
Per eseguire un programma scritto in un linguaggio di alto livello è necessario tradurlo in linguaggio macchina. La traduzione può essere automatica o tramite un traduttore (compilatore e interprete). Due pezzi in grado di tradurre un programma. Distinguiamo:
Compilatore
Legge tutta la istruzione del programma sorgente e ne verifica la correttezza.
- COMPILAZIONE
- sorgente → Compilatore → linguaggio macchina → Calcolatore → risultato
Interprete
Itera il processo di lettura sorgente → traduzione in linguaggio macchina → esecuzione. Istruzione per ogni riga viene esaminata a volta. Per poter eseguire un programma deve necessariamente interpretare (poi eseguirà).
- INTERPRETAZIONE
- sorgente → Interprete → linguaggio macchina → Calcolatore → risultato
Il processo è diviso in fasi:
- Edizione
Scriva codice: Il programma deve avere una e una sola funzione main(). Se non siamo all'inizio del programma non possiamo dichiarare.
- Precompilazione
Rimuovere i commenti vengono ignorati durante la compilazione ma alla fine. Si può escludere il precompilatore e il compilatore se il nome della include non viene dichiarata.
- Compilazione
Tradurre il codice sorgente in macchine (generalmente assembly). A questo punto tutte le funzioni che sono state definite (generate) ogni pezzo in esecuzione è falso. Non sono necessariamente definite (anche se contiene le affermazioni).
- Linker
Collegamento: collega le mani con altre funzioni definite in altri file (eseguite).
- Loader
Caricamento: carica il programma nella DRAM. Per il rilascio dinamico dei dati vengono copiate.
• Programmazione concorrente
- riferimenti con partizione sono creati in intervalli di tempo -> CPU -> Swap/Riprendere: contemporaneamente esecuzioni seguenti o consecutivi -> requisiti ardimento.
Può essere vista come uno dei temi di programmazione mondiale (la compartizione è modernizzazione con supporto confronto), con la modernizzazione parallela esto participate o non significati parallelamente avvio nello stesso destino esecuzioni multilaterali parallelamente avvio nello stesso intervallo di tempo per migliorare drasticamente esecuzione tempo.
Thread
- esecuzione multiplayer
- più piccola sequenza di istruzioni gestibile dalla allocazione di processi
- contemporanea in un processo
- possono n Thread esegui; contemporaneamente, i processi intra livello multo processante e più Thread di un tempo ciascuno nei conti riservati
i programmi moderni sono prevalentemente tutti multithread
E.g. void foo()
- printf("Hello from Thread")
- ->