|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:pero' posso dire che un processo e' in esecuzione solo affermo che un processo e' un sottoprogramma e non che il processo sia l'esecuzione di un sottoprogramma. In tal caso processo in esecuzione= programma in esecuzione. La definizione di Processo è "un Programma in fase di esecuzione". Un Processo può essere attivo oppure no in qualsivoglia momento dato. Se è attivo, si dice -colloquialmente- che tale Processo è in esecuzione in quel momento; se, invece, NON è attivo, si dice che tale Processo, NON "viene eseguito" in quel momento. Non perché possa "esistere" un PROCESSO INATTIVO (il solo Processo "inattivo" che c'è è -per definizione- quello INESISTENTE), bensì perché dobbiam poter comunicare fra di noi. Se io debbo dirti che un certo Processo NON è attivo nel mio sistema (e invece dovrebbe esserci, per cui il fatto che manchi è un problema anche grave, ragion per cui sto domandando aiuto al Forum), scriverò che tale Processo non è "in esecuzione" (nel senso che non c'è, il che è anormale). Tu capirai quello che intendo (o lo farà un altro alutamico al posto tuo), e -se lo sai- proverai a suggerirmi cos'è che debbo fare per aggiustar le cose. mago30 ha scritto:Inoltre,se io avvio un programma,essendo questo formato da tante porzioni di codice,non dovrebbero automaticamente essere tutte poste in esecuzione,visto che cliccando sul file exe io eseguo il programma,essendo questo la sommatoria di tanti sottoprogrammi? NO: il Programma si compone di "porzioni di codice" DEBITAMENTE COMPILATO (il che, fra le tante altre cose, include l'istituzione di GERARCHIE, interne al Programma, fra le varie "porzioni di codice"): sicché le varie "porzioni di codice" che costituiscono i diversi "sottoprogrammi" verranno "eseguite" DAL SISTEMA OPERATIVO nell'ordine esatto che è stato previsto dallo Sviluppatore che ha creato e sviluppato quel Programma.
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
aspetta. il programma e' una sequenza di istruzioni gerarchicamente strutturata dal programmatore per cui le porzioni di codice (i pezzi di programma) vengono eseguite nell'ordine stabilito e fin qui ci siamo. Se io clicco sul file exe,da quel momento in poi la CPU eseguire le istruzioni contenute nel programma dalla prima all'ultima riga di codice nell'ordine stabilito?
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:Se io clicco sul file exe,da quel momento in poi la CPU eseguire le istruzioni contenute nel programma dalla prima all'ultima riga di codice nell'ordine stabilito? L'espressione "nell'ordine stabilito" (dallo Sviluppatore) NON deve necessariamente venire intesa come "dal PRIMO all'ULTIMO della lista (una riga di codice dopo l'altra, ciascuna scritta immediatamente dietro a quella eseguita in precedenza)", perché lo Sviluppatore può anche sceglier di organizzar le gerarchie in modo differente (di far eseguire, per esempio, prima una serie di ordini presenti in una certa porzione del file EXE, poi una serie di ordini presenti in una certa porzione di codice che si trova in una specifica DLL, poi una serie di ordini presenti in una porzione di codice che si trova anch'essa nel file EXE, ma -nell'ordini di lettura di un lettore "umano"- risulta scritta prima di quella che ha avviato l'intera serie, poi una porzione di codice che sta scritta dentro ad un file di database, etc... etc... sino a portare a compimento -nell'ordine esatto previsto dallo Sviluppatore- tutta quanta la serie di ordini prevista). Ma, detto questo, è vero che se tutto è stato fatto bene e se le condizioni del Sistema Operativo son tali da permettergli di funzionar come dovrebbe... avviando il Programma vien eseguita, secondo una serie pre-definita dallo Sviluppatore, tutta una sequenza di istruzioni.
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
scusami facciamo l'esempio di explorer.exe. io clicco sul file. da questo momento in poi cosa succede,detto in maniera elementare?
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
Succede che: avviando Esplora Risorse vien eseguita, secondo una serie pre-definita dallo Sviluppatore, tutta una sequenza di istruzioni. Che, dato il scopo specifico di questo Programma, si concretizza nel fatto che vedrai apparire sul desktop le varie icone e cartelle (Windows Explorer ha, infatti, proprio il compito di "disegnar sul desktop" icone, cartelle, sottocartelle e finestre).
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
tu hai detto che il sistema operativo esegue una sequenza di istruzioni. La CPU esegue tutte le istruzioni contenute in un programma e sempre secondo un ordine prestabilito? Per sequenza di istruzioni intendi una sequenza preordinata di righe di codice ognuna delle quali corrisponde ad un sottorprogramma?
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:tu hai detto che il sistema operativo esegue una sequenza di istruzioni. Sì, infatti è proprio così. mago30 ha scritto:La CPU esegue tutte le istruzioni contenute in un programma e sempre secondo un ordine prestabilito? Beh, la CPU rappresenta solo i valori coinvolti di UNO dei "componenti harware" coinvolti nella cosa. Ad eseguire è il Sistema Operativo, ovviamente. Che si appoggia sulla presenza -e sul lavoro- dei vari componenti hardware: Processore, RAM, Hard Disk, etc... Quello che effettivamente "esegue" è il Sistema Operativo. mago30 ha scritto:Per sequenza di istruzioni intendi una sequenza preordinata di righe di codice ognuna delle quali corrisponde ad un sottoprogramma? Sì, è così... detta "in soldoni" (ossia, se non si vuole tanta precisione).
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
ok! a questo punto mi chiedo questo: se io devo fare un dolce,ho una ricetta alla quale mi atterro' dall'inizio alla fine per ottenere il risultato finale secondo un dato ordine,stabilito dal libro. Se io clicco su explorer.exe,il codice dovrebbe essere caricato in RAM ed essere eseguito per intero secondo l'ordine stabilito dal programmatore ?
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:a questo punto mi chiedo questo: se io devo fare un dolce,ho una ricetta alla quale mi atterro' dall'inizio alla fine per ottenere il risultato finale secondo un dato ordine,stabilito dal libro. Se io clicco su explorer.exe,il codice dovrebbe essere caricato in RAM ed essere eseguito per intero secondo l'ordine stabilito dal programmatore ? Il "caricamento" può essere anche "progressivo" (una parte -la parte che serve in quella specifica fase in cui ci si trova- viene caricata, il resto ancora no; superata quella fase, viene caricata un'altra parte, etc... sino a completamento di quanto previsto). Non è indispensabile (è cosa che dipende da quel che ha stabilito lo Sviluppatore, a conti fatti) che TUTTO venga "caricato in RAM" sin dall'inizio.
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
be pero' allora (se per esempio non clicchero' mai sui preferiti) puo' anche capitare che qualcosa non venga proprio caricata in ram. Quindi anche se il codice e' contenuto in un unico file exe puo' essere caricato a pezzi? Io pensavo che fosse caricato tutto il file in memoria.
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:... pensavo che fosse caricato tutto il file in memoria. Non sempre ciò accade, come già detto.
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
il caricamento di un pezzo di codice implica che questo debba essere eseguito ? il codice viene prima inserito nella ram e successivamente eseguito? La fase di caricamento quando inizia e quando finisce?
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:il caricamento di un pezzo di codice implica che questo debba essere eseguito ? Il caricamento è parte integrante dell'esecuzione: tutto quel che vien "caricato" viene anche "eseguito". mago30 ha scritto:il codice viene prima inserito nella ram e successivamente eseguito? Stiamo parlando di velocità ENORMI (la velocità della luce, in pratica), per cui la distanza fra due eventi successivi è di miliardesimi di millisecondo. Meglio è concepir l'esecuzione come un tutt'uno. mago30 ha scritto:La fase di caricamento quando inizia e quando finisce? La fase di caricamento comincia con l'inizio dell'esecuzione e termina col termine dell'esecuzione stessa (se serve, può accadere anche che si "ri-carichi" all'istante quel che già si era, prima, già "caricato"). Dopo, può seguire (oppure no, secondo quel che ha stabilito lo Sviluppatore), un'altra "fase di caricamento" (ossia, di esecuzione)... etc...
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
ho un dubbio che mi porterebbe a smontare la tesi dell'esecuzione preordinata. Se il programmatore ha deciso che il sistema operativo debba eseguire le istruzioni secondo un ordine prefissato,tuttavia questo si scontra con le preferenze dell'utente. Se l'utente clicca prima su un menu' e poi su un altro,le istruzioni eseguite si invertono e quindi come puo' determinarsi una sequenza rigorosamente prefissata dal momento che l'utente puo' cliccare a suo piacimento i pulsanti di un programma (e attivare quindi i processi) a propria discrezione?
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:ho un dubbio che mi porterebbe a smontare la tesi dell'esecuzione preordinata. Se il programmatore ha deciso che il sistema operativo debba eseguire le istruzioni secondo un ordine prefissato,tuttavia questo si scontra con le preferenze dell'utente. Se all'Utente NON va bene un dato Programma, può ben disinstallarlo e poi installarne un altro. Del resto, si tratta della sola ed unica via: cercare di dar "ordini" in contrasto con quelli stabiliti dallo Sviluppatore conduce semplicemente ad una "segnalazione di errore" (e, se l'errore è grave, ad un vero e proprio "crash"). Se non ti andasse a genio un programma "di Sistema" (com'è "Esplora Risorse", per esempio) la sola via d'uscita che avresti consisterebbe nel cambiar Sistema Operativo (e adottare Linux, per esempio). mago30 ha scritto:Se l'utente clicca prima su un menu' e poi su un altro,le istruzioni eseguite si invertono e quindi come puo' determinarsi una sequenza rigorosamente prefissata dal momento che l'utente puo' cliccare a suo piacimento i pulsanti di un programma (e attivare quindi i processi) a propria discrezione? Se l'Utente s'incaponisce -assurdamente, giacché la cosa non ha proprio nessun senso- a cercar di far fare ad un Programma cose che non sono previste (che lo Sviluppatore, insomma, NON ha specificamente programmato) oppure cerca di cambiare l'ordine degli eventi, tutto ciò che otterrà sarà di ottenerne tutta una bella serie di sterili "errori" (magari, con correlati "messaggi d'errore), se non addirittura un bel "crash" (cioè, un repentino collasso) del Programma.
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
aspetta perche' forse mi sono spiegato male. intendo qualcosa di molto semplice che tutti fanno. Per esempio,dopo aver aperto explorer,clicco sui preferiti,poi dopo due minuti clicco sul menu' strumenti,etc. In questo caso,il programma non seguira' un ordine prefissato di esecuzione delle istruzioni in quanto non puo' sapere,per esempio,quale menu' eventualmente l'utente aprira' per primo,quale per secondo,etc.
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:aspetta perche' forse mi sono spiegato male. intendo qualcosa di molto semplice che tutti fanno. Per esempio,dopo aver aperto explorer,clicco sui preferiti,poi dopo due minuti clicco sul menu' strumenti,etc. In questo caso,il programma non seguira' un ordine prefissato di esecuzione delle istruzioni in quanto non puo' sapere,per esempio,quale menu' eventualmente l'utente aprira' per primo,quale per secondo,etc. No, ti sbagli: qualunque "ordine" tu possa dare "cliccando" sull'interfaccia grafica, o rispetta quel che è stato previsto dallo Sviluppatore che ha creato il Programma (e allora funzionerà ogni cosa) o crea un "errore" che -se è rilevante- potrà dare problemi al Programma, sino a farlo, in casi estremi, addirittura collassare. I soli (non ci sono eccezioni) "ordini" che puoi dare tramite GUI son quelli previsti da chi ha creato la GUI: se cerchi di uscirne, metti in crisi il programma, il quale ti darà "errore". Se fai qualche cosa (quale che essa sia) e questa tua trovata "funziona", significa semplicemente che quello che hai fatto era già stato previsto (e preparato) dallo Sviluppatore. Il solo e unico modo di far fare ad un programma qualcosa che lo Sviluppatore che l'ha creato NON ha programmato consiste nell'andare TU a MODIFICARE il programma (riscrivendolo, in tutto oppure in parte; cosa legalmente possibile, ad esempio, con svariati Programmi opensource, ma che richiede tanta abilità [pratica che è assolutamente ILLEGALE, invece, con i Programmi "closed", ossia "proprietari"]) al fine di ottener quello che vuoi. Ma il Programma che otterrai, alla fine (ammesso che funzioni), sarà comunque diverso da quello originale.
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
ok pero' nel momento in cui io clicco sul menu' preferiti,questa operazione corrispondera' ad una riga di istruzione. Se dopo due minuti clicco sul menu' strumenti,questa corrispondera' ad un'altra riga di istruzione. Io avrei potuto pero' anche invertire i menu' selezionati generando una inversione delle istruzioni da eseguire. Come si concilia questo aspetto perfettamente fattibile con la necessita' che il S.O debba eseguire tutte le istruzioni del programma secondo un ordine prefissato?
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:ok pero' nel momento in cui io clicco sul menu' preferiti,questa operazione corrispondera' ad una riga di istruzione. Se dopo due minuti clicco sul menu' strumenti,questa corrispondera' ad un'altra riga di istruzione. Io avrei potuto pero' anche invertire i menu' selezionati generando una inversione delle istruzioni da eseguire. Come si concilia questo aspetto perfettamente fattibile con la necessita' che il S.O debba eseguire tutte le istruzioni del programma secondo un ordine prefissato? Dipende semplicemente dal fatto che lo Sviluppatore ha previsto e impostato queste specifiche funzioni (incluso il fatto che l'Utente possa desiderar di attivarne una oppure un'altra). Non si può far NULLA (a parte mandare il crash il programma, ovviamente... o prendere a martellate il proprio computer [azione poco astuta, che però si può fare]) che lo Sviluppatore non abbia -in precedenza- debitamente programmato.
|
|
Rank: AiutAmico
Iscritto dal : 7/2/2010 Posts: 483
|
@mago30. Lo sei o lo fai?
|
|
Guest |