Vai al contenuto

Tentativo di discussione razionale sulle filosofie dell'informatica consumer


loric

Messaggi Raccomandati:

Cosa aspettano ad assumerti a Cupertino allora?! :D Avrai rifiutato più volte, immagino!

La corbelleria che hai detto è "la memoria comunque è allocata" cosa che invece non sussiste.

E' comunque allocata.

Se non è allocata li, è allocata sullo swap, perchè, se tu sapessi cosa stati dicendo, sapresti che lo swap viene usato come estensione della paginazione della memoria primaria.

Ergo, lo stesso array di indirizzi viene risolto allo stesso modo sulla ram e sulla swap dal sistema operativo.

Il problema è che mentre la ram è una memoria ad accesso casuale, il supporto fisico su cui è memorizzata la swap è un supporto ad accesso sequenziale, e, per di più, è mediamente molto più lento (anche se con gli SSD dei telefoni ad oggi la situazione è meno disperata).

Quindi, non è che, siccome la paginazione scarica dalla ram alla swap, allora le applicazioni "spariscono".

Le applicazioni sono li, e nel momento in cui verranno chiamate verrano risolte, deallocato qualcos'altro che sta in ram, allocata l'applicazione risolta al suo posto.

(tutto questo per semplificare MOLTISSIMO il concetto).

Ergo, ogni volta che tiri su l'applicazione costringi il sistema ad un costoso context switch e a moltissimi cicli di lettura e scrittura.

In sostanza, udisci udisci, con molte applicazioni aperte il sistema diventa lento!

Enjoy!

(E ripeto, non è nulla di strano in tutto ciò, è normalissimo e succede a qualsiasi sistema operativo del pianeta. iOS non ne è immune.)

Dirò una boiata, ma a me non risulta che su iOS vi sia uno swapping nel vero senso della parola. Quando c'è da reclamare risorse, i programmi vengono forzati a passare a "not running" da "suspended". In altre parole vengono graziosamente killati. Certo, finché questo non succede, rimangono là con le loro risorse (memoria) allocate.

Dipende all'implementazione della swap.

Ci sono quelle che allocano su filesystem, replicando la paginazione su un raw disk, quelle che scrivono e leggono su un file in un altro filesystem (di solito quello di archiviazione) e quelle che killano il processo e salvano l'heap del processo su file, tenendo paginato solo un riferimento.

Quando il riferimento viene chiamato il sistema operativo tira su il processo, gli appiccica l'heap vecchio e lo ributta in ram.

L'ultimo è particolarmente adatto alle memorie piccole o a situazioni in cui pochi processi sono spesso usati frequentemente (l'heap rimane sempre quello), ma certamente è il più lento.

Dipende da come si vuole fare... semplicemente spesso i sistemi operativi implementano tutti o alcuni di questi metodi, e ne usano di diversi in condizioni d'uso diverse.

Modificato da Regazzoni
--- uniti messaggi: DEVI USARE il tasto "multi-quote", quello col "+", per rispondere a più messaggi in una volta sola ---

"Fico, io ti rispondo che al buio tutti i gatti sembrano leopardi e che non bisogna mai comprare un gatto in un sacco. C'entrano qualcosa? Probabilmente no, esattamente come la tua metafora." [Loric]

Link al commento
Condividi su altri Social

  • Risposte 65
  • Creato
  • Ultima Risposta

I più attivi nella discussione

I più attivi nella discussione

Dipende all'implementazione della swap.

Ci sono quelle che allocano su filesystem, replicando la paginazione su un raw disk, quelle che scrivono e leggono su un file in un altro filesystem (di solito quello di archiviazione) e quelle che killano il processo e salvano l'heap del processo su file, tenendo paginato solo un riferimento.

Quando il riferimento viene chiamato il sistema operativo tira su il processo, gli appiccica l'heap vecchio e lo ributta in ram.

L'ultimo è particolarmente adatto alle memorie piccole o a situazioni in cui pochi processi sono spesso usati frequentemente (l'heap rimane sempre quello), ma certamente è il più lento.

Dipende da come si vuole fare... semplicemente spesso i sistemi operativi implementano tutti o alcuni di questi metodi, e ne usano di diversi in condizioni d'uso diverse.

Mi spiego meglio: iOS non ha (recte: non dovrebbe) avere uno swap file. Il solito discorso: le flash RAM non sono proprio il massimo per queste cose.

Alfiat Bravetta senza pomello con 170 cavalli asmatici che vanno a broda; pack "Terrone Protervo" (by Cosimo) contro lo sguardo da triglia. Questa è la "culona".

Link al commento
Condividi su altri Social

E' comunque allocata.

Se non è allocata li, è allocata sullo swap, perchè, se tu sapessi cosa stati dicendo, sapresti che lo swap viene usato come estensione della paginazione della memoria primaria.

Ergo, lo stesso array di indirizzi viene risolto allo stesso modo sulla ram e sulla swap dal sistema operativo.

Il problema è che mentre la ram è una memoria ad accesso casuale, il supporto fisico su cui è memorizzata la swap è un supporto ad accesso sequenziale, e, per di più, è mediamente molto più lento (anche se con gli SSD dei telefoni ad oggi la situazione è meno disperata).

Quindi, non è che, siccome la paginazione scarica dalla ram alla swap, allora le applicazioni "spariscono".

Le applicazioni sono li, e nel momento in cui verranno chiamate verrano risolte, deallocato qualcos'altro che sta in ram, allocata l'applicazione risolta al suo posto.

(tutto questo per semplificare MOLTISSIMO il concetto).

Ergo, ogni volta che tiri su l'applicazione costringi il sistema ad un costoso context switch e a moltissimi cicli di lettura e scrittura.

In sostanza, udisci udisci, con molte applicazioni aperte il sistema diventa lento!

Enjoy!

(E ripeto, non è nulla di strano in tutto ciò, è normalissimo e succede a qualsiasi sistema operativo del pianeta. iOS non ne è immune.)

Mi chiedo se tu abbia aperto il link o l'abbia preventivamente cassato in quanto "cazzata" a tuo dire.

Comunque...

You may think that, if an app is resident in memory, you have to somehow remove it to conserve memory. You don't because iOS does it for you. If there are Suspended apps lying around and you launch a memory-intensive app such as a big game, iOS will start to purge Suspended apps and move them to the Not Running state. That is, they will be completely removed from memory and will launch afresh the next time you tap their icon.

e

When an app is sent to the Background, it usually moves to the Suspended state in a few seconds. An app can request an extension to this by declaring that it's starting a "background task".A good example is an app that downloads largish files from the web such as Instacast, my favourite podcast app. When Instacast is Active, it can start to download new podcasts. If I then hit the home button on my iPhone, Instacast gets five seconds to run in the Background state and then it's Suspended. That interrupts the download of my podcasts, which might take 5 minutes or more.

iOS allows Instacast to declare that a download is a "background task". This allows Instacast an extra period of background running after I hit the home button to complete the podcast download. While apps can request additional Background time, that time is not infinitely long. The app gets about 10 minutes of Background running time and then it is forcibly suspended by iOS. Again, you don't have to worry about this yourself.

All apps get 5 seconds of Background running. Some apps can request a 10-minute extension. There are a small number of apps that genuinely need to run indefinitely in the background and iOS allows this.

There are exactly five kinds of apps allowed to run indefinitely in the Background state in iOS 5:

  • Apps that play audio while in the Background state. A good example is Instacast while it's playing a podcast.
  • Apps that track your location in the Background. For example, you still want voice prompts from your TomTom navigation app, even if another app is Active.
  • Apps that listen for incoming VOIP calls. If you use Skype on iOS, you can receive incoming Skype calls while the app is in the Background.
  • Newsstand apps that are downloading new content.
  • Apps that receive continuous updates from an external accessory in the Background.

All well-written apps in the above categories should become Suspended when they are no longer performing the task in hand. When Instacast finishes playing a podcast, it should be Suspended. There are some built-in apps that also run continuously in the background on iOS - the most-used one is probably Mail.

BMW M135i xDrive 306 cv

Link al commento
Condividi su altri Social

Mi spiego meglio: iOS non ha (recte: non dovrebbe) avere uno swap file. Il solito discorso: le flash RAM non sono proprio il massimo per queste cose.

No infatti, sicuramente non ha uno swapfile.

Del resto nemmeno android, e a voler essere proprio pignoli nè i Linux nè gli Unix che siano (Mach compreso) hanno mai usato uno swapfile.

Dovrei andare a ripassare, ma con ogni probabilità un po' usa un'aera di memoria dedicata direttamente allocata (come Android e come tutti i *nix), e poi, se butta veramente ma veramente male, usa la tecnica dell'heap store, che ho descritto sopra.

Android quest'ultima non la usa. Quando finisce tutto, ma proprio tutto, semplicemente comincia a crashare qualcosa e la memoria si libera :D

"Fico, io ti rispondo che al buio tutti i gatti sembrano leopardi e che non bisogna mai comprare un gatto in un sacco. C'entrano qualcosa? Probabilmente no, esattamente come la tua metafora." [Loric]

Link al commento
Condividi su altri Social

Android quest'ultima non la usa. Quando finisce tutto, ma proprio tutto, semplicemente comincia a crashare qualcosa e la memoria si libera :D

Alfiat Bravetta senza pomello con 170 cavalli asmatici che vanno a broda; pack "Terrone Protervo" (by Cosimo) contro lo sguardo da triglia. Questa è la "culona".

Link al commento
Condividi su altri Social

Mi chiedo se tu abbia aperto il link o l'abbia preventivamente cassato in quanto "cazzata" a tuo dire.

Comunque...

Modificato da Regazzoni
--- uniti messaggi: DEVI USARE il tasto "multi-quote", quello col "+", per rispondere a più messaggi in una volta sola ---

"Fico, io ti rispondo che al buio tutti i gatti sembrano leopardi e che non bisogna mai comprare un gatto in un sacco. C'entrano qualcosa? Probabilmente no, esattamente come la tua metafora." [Loric]

Link al commento
Condividi su altri Social

In sostanza stiamo parlando di un comportamento assolutamente normalissimo già in sistemi *nix di 15 anni fa :D

Nessuna nuova rocket science by Apple, pare.

Alfiat Bravetta senza pomello con 170 cavalli asmatici che vanno a broda; pack "Terrone Protervo" (by Cosimo) contro lo sguardo da triglia. Questa è la "culona".

Link al commento
Condividi su altri Social

No, non ho conoscenze fuori dal normale, sono solo un programmatore, e nemmeno troppo brillante.

Semplicemente, la gestione della memoria di Mach è qualcosa che si studia in sistemi operativi all'università.

Il mio libro ti stampa tutto il codice bello bello in una pagina di esercizi.

Semplicemente, se ho detto una frase sulla gestione della memoria di iOS, che non era poi sta gran frase, ho solo detto che le applicazioni sono comunque allocate anche se sono in saved state.

Il che è normale.

Ma mi si risponde che non è necessario chiuderle perchè iOS le dealloca sullo swap quando la memoria diventa piena.. suvvia, è un pattern di gestione della memoria degli anni 80.

Non è che se sposti le applicazioni nella swap queste "spariscono". Si spostano nella swap e la swap ha altri svantaggi.

Ma ripeto, la mia non è un'obiezione ad iOS, perchè iOS ha un comportamento NORMALISSIMO, come tutti i sistemi operativi dell'universo conosciuto.

Semplicemente, su iOS serve chiudere le applicazioni esattamente come serve per qualunque altro sistema operativo dell'universo conosciuto.

Quindi mi chiedi perchè ce l'ho con la Apple?

Facile: perchè ha creato un'utenza che, di fronte ad un'osservazione del genere, mi risponde:

"su iPhone non serve chiudere le applicazioni."

Come se fosse una feature, e soprattutto come se fosse vero.

E' sufficiente?

Chiudo l'OT.

"post fata resurgam." (cit.)

Link al commento
Condividi su altri Social

diciamo anche 40 anni fa....:) quando la memoria era a banchi e la RAM in ferrite.
Modificato da loric

Alfiat Bravetta senza pomello con 170 cavalli asmatici che vanno a broda; pack "Terrone Protervo" (by Cosimo) contro lo sguardo da triglia. Questa è la "culona".

Link al commento
Condividi su altri Social

Crea un account o accedi per lasciare un commento

Devi essere iscritto per commentare e visualizzare le sezioni protette!

Crea un account

Iscriviti nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

×
×
  • Crea Nuovo...

 

Stiamo sperimentando dei banner pubblicitari a minima invasività: fai una prova e poi facci sapere come va!

Per accedere al forum, disabilita l'AdBlock per questo sito e poi clicca su accetta: ci sarai di grande aiuto! Grazie!

Se non sai come si fa, puoi pensarci più avanti, cliccando su "ci penso" per continuare temporaneamente a navigare. Periodicamente ricomparità questo avviso come promemoria.