|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
ciao! grazie mille per le informazioni! Intanto,stavo proprio per ragionare sulla terminologia che mi sembra a volta un po' macchinosa se applicata a questo contesto dei processi e del programma. Ti spiego,tu magari correggimi se vuoi. Hai detto che ciascun sottoprocesso si basa su un sottoprogramma; questo perche' il sottoprocesso e' la "messa in atto" di quanto stabilito dal sottoprogramma,dei suoi ordini? Hai anche parlato dell'insieme di tutti i sottoprogrammi di un processo; anche qui intendi dire che vi e' una relazione tra i sottoprogrammi e il processo che e' la risultante della loro esecuzione complessiva?
Ora arrivo al mio dubbio,anzi diciamo che sono rimasto "intrappolato" in un gioco di terminologico dal quale ti chiedo un aiuto al fine di risolverlo. Parlando di sottoprogramma,il sottoprocesso e' la sua risultante ovvero deriva dall'esecuzione delle istruzioni del suo sottoprogramma; esecuzione che puo' avvenire con diverse modalita' e talvolta anche ,per volonta' dello sviluppatore,subordinata all'attivazione di altri processi perche' da cio' che hai detto ovviamente molti processi possono essere eseguiti nello stesso momento e "incrociarsi" secondo opportuni criteri prestabiliti. Correggimi laddove sbagliassi :-) Tutto ruota attorno ad alcuni verbi che non rendono bene l'idea della distinzione,da me capita comunque,tra programma e processo (chiamiamoli cosi' anche se ci riferiamo ai sottoprocessi). Per esempio,il verbo eseguire sta a significare "mettere in atto" qualcosa che e' solo a livello potenziale per cui il processo e' il risultato che si ottiene nel momento in cui il S.O esegue quanto scritto nel programma. In sostanza,il S.O cosa fa nel momento in cui esegue quanto "ordinato" dal programma? In cosa consiste il suo lavoro? Nell'esecuzione di programma che tipo di operazioni in genere vengono contemplate? Il programma quindi e' come un piano di ordini e istruzioni atto a descrivere e prevedere un insieme di azioni che poi nel concreto verranno svolte dal S.O. Tu prima hai parlato del sottoprogramma di un processo. Che significa in sostanza? La pianificazione potenziale delle azioni caratterizzanti il processo? Una sorta di "libretto di istruzioni" cui si basa il processo nel suo compiersi,ovviamente tramite il S.O ?
Si puo' porre l'equivalenza S.O esegue le istruzioni di programma=S.O svolge le azioni e le operazioni previste dal programma oppure la seconda e' la conseguenza della prima? La differenza e' sottile. Inoltre,dire "processo in esecuzione" significa dire che il S.O sta eseguendo il processo ma cio' vuol dire che contestualmente sta eseguendo anche gli ordini del suo sottoprogramma? So che e' un po' da capogiro pero' puoi chiarirmi in maniera semplice questi aspetti? grazie :-)
|
|
Rank: AiutAmico
Iscritto dal : 2/6/2010 Posts: 947
|
@ monsee: ..... Le risposte che ho dato ....., sono serie... e potranno servire (forse) un giorno o l'altro, ad altra gente (interessata per davvero all'argomento, intendo). Dunque, non van sprecate in nessun caso.
Sono perfettamente d'accordo e Ti ringrazio: a me sono servite non poco!
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
ginodalcol ma e' una provocazione? :-)
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:... per ragionare sulla terminologia che mi sembra a volta un po' macchinosa se applicata a questo contesto dei processi e del programma. Ti spiego,tu magari correggimi se vuoi. Hai detto che ciascun sottoprocesso si basa su un sottoprogramma; questo perche' il sottoprocesso e' la "messa in atto" di quanto stabilito dal sottoprogramma,dei suoi ordini? In pratica, la puoi mettere così: il programma è la partitura musicale della sinfonia (scritta sulla carta, sul pentagramma), mentre il processo è la musica della sinfonia che senti nell'aria. mago30 ha scritto:Hai anche parlato dell'insieme di tutti i sottoprogrammi di un processo; anche qui intendi dire che vi e' una relazione tra i sottoprogrammi e il processo che e' la risultante della loro esecuzione complessiva? Nell'esempio di prima, i "sottoprogrammi" puoi immaginarli come quelle pagine della partitura che contengono i singoli Movimenti (classicamente, una sinfonia si compone di 4 Movimenti). Tutte assieme, compongono la partitura dell'intera sinfonia. Possono venir eseguiti anche da soli (dall'orchestra, per esempio), oppure tutti assieme. mago30 ha scritto:Ora arrivo al mio dubbio,anzi diciamo che sono rimasto "intrappolato" in un gioco di terminologico dal quale ti chiedo un aiuto al fine di risolverlo. Parlando di sottoprogramma,il sottoprocesso e' la sua risultante ovvero deriva dall'esecuzione delle istruzioni del suo sottoprogramma; esecuzione che puo' avvenire con diverse modalita' e talvolta anche ,per volonta' dello sviluppatore,subordinata all'attivazione di altri processi perche' da cio' che hai detto ovviamente molti processi possono essere eseguiti nello stesso momento e "incrociarsi" secondo opportuni criteri prestabiliti. Hai scritto: "il sottoprocesso [...] deriva dall'esecuzione delle istruzioni del suo sottoprogramma", che suona un pochino confuso: un sottoprocesso è nient'altro che l'esecuzione di un sottoprogramma. mago30 ha scritto:Tutto ruota attorno ad alcuni verbi che non rendono bene l'idea della distinzione,da me capita comunque,tra programma e processo (chiamiamoli cosi' anche se ci riferiamo ai sottoprocessi). La distinzione fra "programma" e "processo" è semplicissima: il processo è l'esecuzione del programma. Non conta se il programma sia lungo o corto: anche l'esecuzione di un "pezzo completo" di programma (un sottoprogramma) si può far rientrar tranquillamente nella categoria dei "processi" (esattamente come l'esecuzione della partitura di un singolo Movimento sinfonico è pursempre MUSICA per le orecchie (non è l'intera sinfonia, siamo d'accordo, ma è musica comunque). mago30 ha scritto:... il verbo eseguire sta a significare "mettere in atto" qualcosa che e' solo a livello potenziale per cui il processo e' il risultato che si ottiene nel momento in cui il S.O esegue quanto scritto nel programma. In sostanza,il S.O cosa fa nel momento in cui esegue quanto "ordinato" dal programma? In cosa consiste il suo lavoro? Il suo lavoro consiste nell'eseguire gli ordini contenuti nel programma (che puoi anche immaginare come una sorta di "papiro" scritto, straboccante di ordini). mago30 ha scritto:Nell'esecuzione di programma che tipo di operazioni in genere vengono contemplate? Quelle previste dal programmatore che ha creato quel programma, ovvero... quelle scritte nel programma medesimo. mago30 ha scritto:Il programma quindi e' come un piano di ordini e istruzioni atto a descrivere e prevedere un insieme di azioni che poi nel concreto verranno svolte dal S.O. Atto a "descrivere" va bene. "A prevedere", no. Non c'è bisogno alcuno di "prevedere" alcunché: quello che può avvenire è solamente ciò che il programmatore ha impostato nella sequenza di ordini che ha redatto. Se avviene qualcosa di estraneo a quel che il programmatore ha impostato, si ha un "errore"... in casi gravi, un "crash". mago30 ha scritto:Tu prima hai parlato del sottoprogramma di un processo. Davvero? Più probabilmente, avrò citato l'esecuzione di un sottoprogramma come appartenente alla categoria del "processi" (a voler essere fiscali, dei "sottoprocessi"). mago30 ha scritto:Che significa in sostanza? La pianificazione potenziale delle azioni caratterizzanti il processo? Una sorta di "libretto di istruzioni" cui si basa il processo nel suo compiersi,ovviamente tramite il S.O ? Qui, non m'è affatto chiaro quel che intendi e cosa chiedi. In modo grossolano, posso comunque dirti che l'esecuzione di un programma (alias "il processo") dipende da due cose soltanto: il Sistema Operativo (che è quello che esegue [diciamo, l'Orchestra]) e quello che sta scritto dentro al programma (nell'esempio nostro, qui, la partitura musicale vergata su pentagramma). mago30 ha scritto:Si puo' porre l'equivalenza S.O esegue le istruzioni di programma=S.O svolge le azioni e le operazioni previste dal programma oppure la seconda e' la conseguenza della prima? La differenza e' sottile. Talmente sottile che la direi impalpabile, inconsistente.. Dir che l'SO "esegue le istruzioni del programma" e dir che l'SO "svolge le operazioni previste dal programma" è, a tutti gli effetti, la medesima cosa. mago30 ha scritto:Inoltre,dire "processo in esecuzione" significa dire che il S.O sta eseguendo il processo ma cio' vuol dire che contestualmente sta eseguendo anche gli ordini del suo sottoprogramma? So che e' un po' da capogiro pero' puoi chiarirmi in maniera semplice questi aspetti? Il Sistema Operativo è in grado di porre in esecuzione -purché siano a sua disposizione sottoprogrammi e programmi- più di un sottoprogramma e più di un programma. Dov'è la cosa strana? Sul tuo PC, quando l'avvii, una miriade di "servizi" (che son -spesso, anche se non sempre- dei sottoprogrammi) e di programmi veri e propri viene avviata, praticamente in contemporanea. Il numero di processi che il sistema Operativo è in grado di gestir contemporaneamente dipende dalle caratteristiche dell'Hardware (migliore è il processore, più celere e potente, e meglio è; maggiore e la RAM disponibile e meglio è) e da talune intrinseche caratteristiche del Sistema Operativo stesso (ci sono, per esempio, dei Sistemi Operativi che NON sono in grado di usare più di un "tot" di RAM [e addirittura degli altri che vanno in crisi se la RAM fisica a loro disposizione è troppo elevata]). In questo senso, i Sistemi operativi a 64 bit (che girano solo su Processori a 64 bit) son molto più "potenti" di quelli a 32 bit: proprio perché consentono di utilizzare assai più RAM.
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:ginodalcol ma e' una provocazione? :-) Non penso proprio, Mago. Mi ha solo postato un messaggio gentile. PER Gino: Grazie a te!
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
ok! ti chiedevo questo perche',da cavilloso della terminologia, avrebbe avuto senso dire "programma in esecuzione" e non processo in esecuzione. Che senso ha dire processo in esecuzione? Il processo E' il programma in esecuzione.
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:ok! ti chiedevo questo perche',da cavilloso della terminologia, avrebbe avuto senso dire "programma in esecuzione" e non processo in esecuzione. Che senso ha dire processo in esecuzione? Il processo E' il programma in esecuzione. Il senso è lo stesso che c'è nel dire: "il camion correva veloce" (se "corre", dirai, è ovvio che vada veloce!... oh sì, ma è un modo di dire che rende ancor meglio l'idea).
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
io pensavo "processo in esecuzione" nel senso che viene svolto (o eseguito o anche attuato) dal S.O. E' cosi?
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
Un processo è -a tutti gli effetti- un programma in esecuzione. E l'unico in grado di "eseguire" è il Sistema Operativo. Questo concetto, nel corso di questo thread, se vai a rileggere, l'ho ripetuto a iosa. Pensa al programma come a una commedia scritta sulla carta. E alla sua esecuzione (il processo) come alla recita che una Compagnia teatrale (il Sistema Operativo), mette in scena (ovvero, recita sul palco) per il sollazzo degli astanti. Ciascuno compie gesti (perché se li è prima studiati, leggendoli, così come son scritti sulla carta) e dice frasi e parole (che, pure loro, vengon recitate a memoria così come stan scritte sulla carta), usa dei toni di un tipo o di un altro (e anche i toni da usare stanno scritti sulla carta). Dunque. la "rappresentazione scenica" è il Processo, mentre il copione sul quale essa si basa è il Programma. La Compagnia Teatrale è il Sistema Operativo (e il Teatro Stabile in cui "si è di scena", in questo caso, è l'hardware). Dire che un "processo è in esecuzione" (in un momento dato, come -ad esempio- nella frase "Ho aperto il Task Manager e c'erano tre processi [vale lo stesso, in questo caso, dire "tre istanze", ma è una questione di lana caprina] di iexplore.exe in esecuzione") serve a precisare che in un dato momento (nel nostro esempio: quando mi decisi ad aprire il Task manager), c'erano ,attive (visibili sul desktop), tre differenti "finestre" di Internet Explorer. E a che mai può servire? Ti chiederai tu... Può essere -ad esempio- un modo di comunicare qual'è la situazione ad un amico che si sforza di aiutarmi, (qui sul Forum) a risolvere il fatto che il mio Internet Explorer consumi molte più "risorse" del dovuto.... (è un esempio inventato, ovviamente! [io NON lo apro proprio MAI, Internet Explorer]).
|
|
Rank: AiutAmico
Iscritto dal : 2/6/2010 Posts: 947
|
mago30 ha scritto:ginodalcol ma e' una provocazione? :-) No, non rientra nel mio stile: anche a me interessa molto quello che dice monsee che ha il merito di essere molto chiaro e disponibile.
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
grazie mille! in effetti e' un concetto che ho molto chiaro proprio perche' ripetuto spesso. Il mio "problema" riguarda solo l'aspetto terminologico nel senso che ho la necessita' di porre in relazione i termini con i concetti informatici. Il programma descrive azioni,connessioni,calcoli,etc. Il S.O eseguira' cio' che e' compilato,attenendosi RIGOROSAMENTE a cio' che e' scritto nel programma. In effetti,forse c'era un sottilissimo dettaglio che non avevo compreso bene. Quindi,in definitiva,il S.O esegue cio' che e' scritto ma a questo punto entrano in gioco alcuni termini che vorrei tu potessi in qualche modo aiutarmi a collocare nella loro giusta "posizione". Nel momento in cui il S.O esegue cio' che e' scritto nel programma,implicitamente compie qualcosa. C'e' un agire che e' la conseguenza dell'esecuzione del programma. Non sempre l'esecuzione di qualcosa e' un "agire",ecco perche' avevo posto la domanda relativa all'equivalenza perfetta tra S.O esegue il programma=S.O compie determinate azioni.
In definitiva quindi l'insieme delle azioni,operazioni e trasmissioni dati tra S.O e componenti hardware costituisce un processo giusto? (OVVIAMENTE SULLA BASE DI UN PROGRAMMA DI "APPOGGIO").
Di seguito,ti pongo alcune domande sulle quali mi basta anche solo un si o un no o comunque qualcosa di molto generico.
1."compilare" un programma fa riferimento alla scrittura di un codice eseguibile? 2. avviare (lanciare) un programma (o un sottoprocesso) significa "porlo in esecuzione" ? 3. confema di una domanda gia' posta: basta anche solo un processo in esecuzione per affermare che il programma e' in esecuzione? 4. un ulteriore chiarimento: "processo in esecuzione" sta a significare che un dato processo e' attivo e che pertanto in un dato istante il suo SOTTOPROGRAMMA E' ESEGUITO DAL S.O ? 5. la CPU in generale che ruolo ha ? 6. l'espressione generica "eseguire un programma" sta a significare porlo in esecuzione o in linea di massima non ha molto senso? 7.(domanda sulla quale mi basta anche solo un si o un no): quando si stabilisce una connessione tra il pc e una periferica,la trasmissione dati puo' essere anche bidirezionale? grazie mille ancora! sei bravissimo! 6.
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:... l'insieme delle azioni,operazioni e trasmissioni dati tra S.O e componenti hardware costituisce un processo giusto? (OVVIAMENTE SULLA BASE DI UN PROGRAMMA DI "APPOGGIO"). L'integrazione fra Sistema Operativo e hardware è affidata a degli specifici "interfaccia" (i cosiddetti "drivers"), dei quali, però NON SEMPRE c'è bisogno (esempio: non c'è bisogno di nessun driver per far lavorare il Sistema Operativo con i Banchi RAM). Il processo è una creazione del sistema Operativo (eseguita in base a ordini scritti nel programma). L'hardware è semplicemente l'ambiente concreto "materiale" che sorregge la faccenda (un poco come il teatro sinfonio [l'edificio, intendo, con annessi e connessi... strumenti musicali inclusi] è il luogo in cui si mette in scena una sinfonia). mago30 ha scritto:1."compilare" un programma fa riferimento alla scrittura di un codice eseguibile? Sì, per la precisione: di un codice che assicuri l'esecuzione del programma (la sua "eseguibilità") da parte di uno specifico Sistema Operativo. mago30 ha scritto:2. avviare (lanciare) un programma (o un sottoprocesso) significa "porlo in esecuzione" ? Sì, significa ordinare al Sistema Operativo di creare un processo -o più processi, secondo i casi- in base a quel programma. mago30 ha scritto:3. ... basta anche solo un processo in esecuzione per affermare che il programma e' in esecuzione? Basta, ma senza dimenticare che tale esecuzione riguarda soltanto una parte del programma (non l'intero programma). mago30 ha scritto:4. "processo in esecuzione" sta a significare che un dato processo e' attivo e che pertanto in un dato istante il suo SOTTOPROGRAMMA E' ESEGUITO DAL S.O ? Può essere "in esecuzione" (in un dato "istante") anche più di un suo "sottoprogramma" (tre, dieci, anche tutti). mago30 ha scritto:5. la CPU in generale che ruolo ha ? La puoi vedere come "l'indice di impegno" del tuo Processore (più è alta la percentuale, più in tuo Processore è impegnato, in quel momento, nel suo lavoro di elaborazione). mago30 ha scritto:6. l'espressione generica "eseguire un programma" sta a significare porlo in esecuzione o in linea di massima non ha molto senso? "Eseguire un programma" sta per "creare, dal programma, un processo". mago30 ha scritto:7. ... quando si stabilisce una connessione tra il pc e una periferica,la trasmissione dati puo' essere anche bidirezionale? Sì: è sempre il Sistema Operativo che si occupa di "spostare" (copiare e scrivere) i dati. Ma i dati possono venir "spostati" in ambedue le direzioni: dalla periferica all'Hard Disk "interno" oppure dall'Hard Disk "interno" alla periferica. Si occupan di tali "spostamenti" degli appositi programmi (ad esempio: se vuoi "copiare" dei dati su CD o DVD [che son "supporti esterni" pure loro] ci vuole un apposito programma detto "Programma di Masterizzazione"; il processo "copiatura" -e contestuale "scrittura" sul supporto di destinazione- di dati su CD o DVD si chiama, infatti "processo di masterizzazione").
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
ok grazie! Solo alcuni dubbi sui quali vorrei tornare un attimo. 1.quando clicco su un file exe,generalmente aspetto qualche secondo e poi si apre un'interfaccia. Quella fase di attesa corrisponde al caricamento del programma o comunque di una parte di esso ma l'esecuzione si avvia subito dopo la fine del caricamento per cui l'esecuzione non e' inclusa nel caricamento??? Puoi un attimo chiarirmi in termini molto elementari il concetto di caricamento? 2. non ho capito bene che funzione ha il processore,in parole molto semplici. 3.relativamente all'espressione "eseguire un programma" di cui parlavi prima,spesso leggo in alcuni forum persone che dicono frasi tipo,"ora eseguo il programma" oppure "il programma va eseguito aprendo una data cartella",come a voler dire "lanciare" il programma,porlo in esecuzione,avviarlo. Non mi quadra molto,forse sbaglio,non so. 4.all'inizio citavi spesso l'articolo "IL" programma distinguendolo da UN programma. Era solo per chiarire meglio i concetti o ha un senso logico rispetto ai sottoprogrammi ? Non possiamo comunque dire che disponiamo di UN programma costituito da tantissimi sottoprogrammi? 5.che terminologia si usa per indicare che uno o piu' processi relativi ad un programma piu' ampio sono in esecuzione? Per esempio,qualora vi siano 2 sottoprocessi attivi nell'ambito di un processo relativo al programma. C'e' una termine per correlare i due sottoprocessi e IL programma piu' ampio di riferimento? 6.la creazione del processo,a partire dal programma,e' frutto del S.O giusto? 7.infine,se il S.O crea il processo dal programma,vuol dire che lo eseguira'. Per chiarire un punto su cui prima forse non abbiamo discusso, c'e' un agire da parte del S.O che e' la conseguenza dell'esecuzione del programma. Non sempre l'esecuzione di qualcosa e' un "agire",ecco perche' avevo posto la domanda relativa all'equivalenza perfetta tra S.O esegue il programma=S.O compie determinate azioni. Sul piano logico,da un lato abbiamo l'esecuzione,dall'altro la creazione. Sono equivalenti sul piano strettamente concettuale? (non parlo di senso comune delle cose).
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:1.quando clicco su un file exe,generalmente aspetto qualche secondo e poi si apre un'interfaccia. Quella fase di attesa corrisponde al caricamento del programma o comunque di una parte di esso ma l'esecuzione si avvia subito dopo la fine del caricamento per cui l'esecuzione non e' inclusa nel caricamento??? Puoi un attimo chiarirmi in termini molto elementari il concetto di caricamento? Questione già affrontata e cui ho già risposto (più di una volta). Il "tempo" di attesa è quello della fase di interfacciamento fra il Sistema Operativo e il programma (antecedente all'esecuzione vera e propria, dunque). La fase di "caricamento" (durante la quale il Sistema procede a caricare in RAM quel che si va a mano a mano creando a partir dal programma) è parte integrante della fase di esecuzione. mago30 ha scritto:2. non ho capito bene che funzione ha il processore,in parole molto semplici. Il processore è la componente hardware che fa tutto il lavoro di "elaborazione dei dati": è il cuore ed il cervello del PC. mago30 ha scritto:3.relativamente all'espressione "eseguire un programma" di cui parlavi prima,spesso leggo in alcuni forum persone che dicono frasi tipo,"ora eseguo il programma" oppure "il programma va eseguito aprendo una data cartella",come a voler dire "lanciare" il programma,porlo in esecuzione,avviarlo. Non mi quadra molto,forse sbaglio,non so. Si tratta di "modi di dire" un po' imprecisi e tuttavia molto diffusi fra gli Utenti. mago30 ha scritto:4.all'inizio citavi spesso l'articolo "IL" programma distinguendolo da UN programma. Era solo per chiarire meglio i concetti o ha un senso logico rispetto ai sottoprogrammi ? Lo dicevo per chiarire meglio i concetti. mago30 ha scritto:Non possiamo comunque dire che disponiamo di UN programma costituito da tantissimi sottoprogrammi? Nulla impedisce di dirlo. mago30 ha scritto:5.che terminologia si usa per indicare che uno o piu' processi relativi ad un programma piu' ampio sono in esecuzione? Si usa l'accorgimento di chiamare quei processi col termine "sottoprocesso" (anche quest'argomento l'abbiamo già trattato a più riprese). mago30 ha scritto:Per esempio,qualora vi siano 2 sottoprocessi attivi nell'ambito di un processo relativo al programma. C'e' una termine per correlare i due sottoprocessi e IL programma piu' ampio di riferimento? Tu stesso, se ti leggi, usi il termine "sottoprocesso" nel senso inteso da me poco sopra. La correlazione fra due sottoprocessi creati a partir da sottoprogrammi di un medesimo programma è che essi posson esser parte (qualora il programma dal quale provengono venga eseguito in tutta completezza) dello stesso processo. mago30 ha scritto:6.la creazione del processo,a partire dal programma,e' frutto del S.O giusto? Giusto: è un compito che appartiene unicamente al Sistema Operativo: l'abbiam chiarito già parecchie volte. mago30 ha scritto:7.infine,se il S.O crea il processo dal programma,vuol dire che lo eseguira'. Tempo verbale sbagliato. La frase giusta dovrebbe essere: "Se il S.O. crea il processo sulla base degli ordini contenuti nel programma, vuol dire che lo sta eseguendo". mago30 ha scritto:Per chiarire un punto su cui prima forse non abbiamo discusso, c'e' un agire da parte del S.O che e' la conseguenza dell'esecuzione del programma. Il programma si definisce "eseguibile" precisamente perché il Sistema Operativo è in grado di eseguirlo. E ne è in grado unicamente perché il programmatore che ha scritto il programma l'ha scritto in maniera tale che lo fosse. Non c'è alcuna "volitività", nell' agire del Sistema Operativo: non si tratta manco di un vero e proprio "agire"... Il Sistema Operativo esiste proprio "eseguendo" programmi e sottoprogrammi. Sempre si trova impegnato nell'eseguir qualcosa. Quando non è così, significa che il Sistema Operativo non sta (in quel momento) ancora funzionando (perché il PC è spento). Non c'è alcun "agire" (alcuna scelta, alcun pensiero, alcuna volontà, neanche larvale), nell' "eseguire" che caratterizza l'essenza stessa di qualsivoglia Sistema Operativo. Soltanto e unicamente il programmatore decide cos'è che il Sistema Operativo che sta "eseguendo" il suo programma sceglierà di fare o non farà. mago30 ha scritto:Non sempre l'esecuzione di qualcosa e' un "agire",ecco perche' avevo posto la domanda relativa all'equivalenza perfetta tra S.O esegue il programma=S.O compie determinate azioni. Sul piano logico,da un lato abbiamo l'esecuzione,dall'altro la creazione. L'esecuzione è proprio la "creazione di un processo": dunque, le due cose NON sono distinte in alcun modo e l'una implica l'altra (sono la stessa cosa, ma vista da due angoli diversi). mago30 ha scritto:Sono equivalenti sul piano strettamente concettuale? (non parlo di senso comune delle cose). Sono la stessa cosa, ma NON "sul piano concettuale" (sul piano puramente concettuale, si tratta di due concetti ben distinti). Sono la stessa cosa, invece, sul piano strettamente PRATICO, concreto.
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
ti ringrazio. so che spesso ti pongo domande simili ma questo solo perche' ho necessita' di puntualizzare alcuni dettagli che mi sfuggono o che magari non ho appreso completamente. Volevo un attimo riprendere il discorso dell'esecuzione del programma. Andando per passi,il programma e' un piano di azioni descritte mediante istruzioni rigorosamente compilate. Il S.O esegue i comandi del programma ma proprio qui c'e' un blocco concettuale. Nel momento in cui il S.O "obbedisce" agli ordini contenuti nel programma vuol dire che li esegue. Eseguire un comando contenuto in un programma tecnicamente a cosa EQUIVALE? Per dare concretezza al concetto di esecuzione di un ordine di programma a cosa possiamo fare riferimento anche per offrirne maggiore chiarezza? Significa dare vita ad un sistema di azioni predefinite e gia' prefissate nel programma? Il "dar vita" a questo sistema di azioni (sempre fedele al programma) sostanzialmente e' come affermare che il S.O sta eseguendo il programma ma nello stesso tempo il S.O sta anche eseguendo il sistema di azioni stabilite dal programma. Forse mi sto complicando la vita,spero tu abbia intuito dove sta il nodo del problema. Del resto,ho sempre amato "filosofeggiare" sui termini per acquisirne maggiore padronanza,specie in questo campo a me sconosciuto.
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
mago30 ha scritto:Il S.O esegue i comandi del programma ma proprio qui c'e' un blocco concettuale. Nel momento in cui il S.O "obbedisce" agli ordini contenuti nel programma vuol dire che li esegue. Il Sistema Operativo NON "obbedisce" (e neanche "disobbedisce", giacché non ha alcunché che possa essere immaginato come una specie -sia pure larvatissima- di coscienza): si limita a far quello che è stato programmato a fare, cioè proprio "eseguire" precisamente dei programmi. mago30 ha scritto:Eseguire un comando contenuto in un programma tecnicamente a cosa EQUIVALE? Guarda che l'hai già chiesto e t'ho pure già risposto. Eseguire un programma, tecnicamente, significa creare un processo sulla base delle righe di codice contenute nel programma.Ed è sempre il Sistema Operativo ad occuparsi della cosa. mago30 ha scritto:Per dare concretezza al concetto di esecuzione di un ordine di programma a cosa possiamo fare riferimento anche per offrirne maggiore chiarezza? Io ci ho provato dandoti due esempi molto chiari e -ciascuno a proprio modo- aderenti. Il primo è quello della partitura musicale (puoi immaginar che la "partitura musicale", scritta sulla carte, sia il programma) e del concerto che viene ascoltato, poi, dal pubblico (la partitura scritta viene "eseguita" dall'Orchestra [che, qui, è un po' il Sistema Operativo] che, così, crea SUONO [e puoi paragonarlo al processo che, in base a quanto scritto nel programma, l'SO crea]). L'altro esempio è quello della rappresentazione teatrale (paragonabile a un processo) che il pubblico applaude, messa in scena da una Compagnia Teatrale (che gioca il ruolo del Sistema Operativo) all'interno di un Teatro Stabile (che, qui, gioca il ruolo dell'Hardware): rappresentazione scenica basata su di un copione scritto (che, qui, puoi paragonare al programma) sulla base del quale la Compagnia Teatrale fa ogni cosa. mago30 ha scritto:Significa dare vita ad un sistema di azioni predefinite e gia' prefissate nel programma? Significa creare uno o più processi così come indicato nelle righe di codice del programma. mago30 ha scritto:Il "dar vita" a questo sistema di azioni (sempre fedele al programma) sostanzialmente e' come affermare che il S.O sta eseguendo il programma ma nello stesso tempo il S.O sta anche eseguendo il sistema di azioni stabilite dal programma. La parola "vita", in questo tipo di contesti, tradizionalmente, è fuorviante. Non c'è alcunché che somiglia alla "vita" (o al "dare vita") in tutto questo: ci sono solamente PROCESSI creati dal sistema Operativo in base a quanto scritto nelle righe di codice di un programma "pinco" o di un programma "pallino". mago30 ha scritto:... spero tu abbia intuito dove sta il nodo del problema. No, veramente no. La sola impressione che ho è che tu abbia qualche difficoltà ad accettare che quel che avviene (sia "sul piano teorico" che "nel concreto") in ambito informatico è cosa -per quanto possa essere complessa ai miei e tuoi occhi- sempre assai lineare, un po' come lo son le Leggi della Fisica, che esclude TOTALMENTE ogni possibile immagine di tipo "vitalista"; detta in soldoni: qui, tutto avviene nel mondo dell' inorganico ed è in ogni sua fase voluto (dal programmatore che lo ha ideato e realizzato), pianificato e programmato (direi che ben di rado un termine fu così azzeccato). Tutto qui: non c'è nient'altro.
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
hai ragione in effetti. ho una predisposizione all'osservazione critica,nei minimi dettagli e questo porta spesso a complicarsi la vita. Comunque,grazie ancora dell'aiuto sempre preziosissimo!
Quindi a partire dal programma il S.O crea processi in relazione a quanto stabilito,ordinato dalle righe di codice del programma stesso. Il S.O e' un mero esecutore di quanto descritto nel programma,senza che abbia alcun margine di "autonomia". Il programma costituisce una sorta di "piano di azione",come all'inizio lo avevi definito tu che poi il S.O andra' concretamente a svolgere;ne da' concretezza e rende esecutivo cio' che rigorosamente e' compilato nel programma creando cosi' processi ovvero un insieme di azioni "poste in essere" secondo le istruzioni del codice. Fin qui credo di aver detto bene. In pratica,il S.O si occupa di svolgere cio' che e' compilato nel programma,attenendosi fedelmente agli ordini contenuti. Cio' che e' scritto nel programma viene posto in atto dal S.O. Quindi,in definitiva,il S.O esegue il programma nel senso che ESEGUE O ANCHE SVOLGE QUANTO IN ESSO ORDINATO,NE' PIU' NE' MENO.
E' giusto?
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
Li chiamiamo "ordini", ma -per l'SO- si tratta più di qualcosa di "naturale" (un po' come per noi lo è il semplice "respirare"). L'SO non "obbedisce agli ordini": semplicemente, è nella sua natura rispondere "automaticamente" a certi fatti (che noi possiamo anche chiamare [è ben poco preciso e anche un po' arbitrario, certo, ma... rende il concetto] "stimoli") reagendo secondo quel che davvero è (ossia, secondo quel che sta scritto nelle righe di codice che lo compongono [dato che anche il sistema Operativo è composto da righe di codice compilato da uno Programmatore o -spesso- molti diversi Programmatori che hanno lavorato alla sua creazione in sinergia]).
|
|
Rank: AiutAmico
Iscritto dal : 5/27/2010 Posts: 255
|
ok! pero',in termini grezzi,potremmo anche dire che obbedisce agli ordini nel senso che fa cio' che il programma ordina.
|
|
Rank: AiutAmico
Iscritto dal : 4/5/2005 Posts: 22,971
|
Facciamo un esempio: TU non stai obbedendo ad alcun "ordine" quando prendi un bel respiro. Stai semplicemente facendo una cosa "che ti è naturale" (possiedi un bel paio di polmoni: se fossi, invece, un pesce useresti le tuo branchie e NON prenderesti mai "un bel respiro" ma raccatteresti ossigeno filtrando l'acqua). La stessa cosa vale -ovviamente- anche per il Sistema Operativo. Fa quello che gli è più naturale, automaticamente. Perché ciò è NELLA SUA NATURA, non perché abbia un qualche "ordine superiore" cui deve obbedire. Proprio come fa il fulmine quando parte da un punto per giungere ad un altro; non è l'ordine -intendo: il comando- di Giove pluvio a indirizzarlo: sono semplicemente le differenze di potenziale elettrico.
|
|
Guest |