1 din 3
1
Memorie alocata
  [ Ignoră ]
Avatar
RankRankRankRank
Sr. Member
Din: Cluj
Macuser din: 18.10.05

O intrebare de newbie in mac OS X: exista o posibilitate de alocare de “memorie virtuala” sau de creere a unui “disk de memorie virtuala”, asa cum era la OS9?
Sau, altfel spus, ce se intampla cand sistemul, prin aplicatiile deschise, ajunge la limita? Da crash sau incearca sa minimizeze memoria alocata unor anumite aplicatii?

Profil
 
  [ Ignoră ]   [ # 1 ]
Avatar
RankRankRankRank
Administrator
Din: județul Devon, UK
Macuser din: 18.10.05

In mod sigur sunt altii mai mesteri ca mine, dar eu pot sa spun ca sistemul isi face o zona de swap memory. Care cred ca e dinamica.

Profil
 
  [ Ignoră ]   [ # 2 ]
Avatar
RankRankRank
Member
Din: Ploiești
Macuser din: 08.11.05

Managementul memoriei este unix-like, deci mai bun de-atât nu există momentan. Pe scurt, un proces pe 32 de biți are disponibili 4 gb de memorie, iar unul pe 64 biți are 18 eb. Cum nu prea ai atâta RAM în sistem, se folosește spațiul liber de pe partiția de boot pentru memorie virtuală (simulează memoria RAM prin stocarea temporară a datelor pe disc).

În utilizare “curentă”, nu am întâlnit încă aplicații care să atingă limita de 4 gb pe proces. Nu ai treabă, dpdv utilizator, cu memoria virtuală; sistemul se ocupă transparent de redimensionarea memoriei virtuale, alocarea memoriei RAM, mutarea paginilor de memorie șamd. Și crede-mă că o face foarte bine smile ca un exemplu, la mine spațiul ocupat de swap se încadrează în utilizare normală undeva pe la nivelul de 6-8 ori memoria fizică. Mie mi se pare că OSX își alocă mult mai multă memorie virtuală decât ar fi necesară în primă instanță (am rulat sisteme Linux care aveau limitată memoria virtuală la o dimensiune egală cu memoria fizică instalată în sistem, și nu au avut nici o problemă ani de zile), dar probabil e o măsură de siguranță luată în calcul de cei care au proiectat sistemul de management al memoriei.

Ca să răspund la întrebare: pe măsură ce vei deschide mai multe aplicații simultan, OSX va începe (transparent) să aloce memorie virtuală pe discul sistem, din ce în ce mai multă pe măsură ce deschizi aplicații noi. Aplicațiile pe care ai focus (adică cele cu care lucrezi în momentul respectiv) vor primi mai multă memorie RAM decât cele din fundal, pentru a lucra mai rapid; când trimiți în Dock o aplicație cu care ai lucrat, și aduci alta în prim-plan, aplicația pe care-ai pus-o “on hold” va ceda o parte din memoria RAM aplicației curente, la schimb cu niște memorie virtuală, și invers. Am explicat cam ambiguu, dar ideea e că totul se petrece transparent și nici nu vei simți cum se desfășoară respectiva manevră (poate vei simți o intensificare a activității hard-diskului, dar asta e tot). Singura problemă care ar putea apărea ar fi ca memoria virtuală necesară să depășească spațiul liber existent pe partiție, dar nici atunci nu se va petrece un crash, ci doar o încetinire (considerabilă) a sistemului.

Pe scurt, sistemul de memory management de la Apple este deocamdată “ză best” smile

Teoria: http://developer.apple.com/documentation/Performance/Conceptual/ManagingMemory/Articles/AboutMemory.html
Rezumat: http://homepage.mac.com/simx/mughelp/English/overview.html

 Semnătură 

to the aiiirpoooort…

Profil
 
  [ Ignoră ]   [ # 3 ]
Avatar
RankRankRankRank
Sr. Member
Din: Cluj
Macuser din: 18.10.05

Cont…
Vaxxie, super raspuns, multumesc pentru timpul acordat.
Si totusi… daca proc-ul si sistemul de operare aloca gigi de memorie pe disc, de ce se mai lupta lumea pentru cateva sute de K de Ram suplimentare (care totusi costa bani buni)? Sa inteleg ca totusi, cu cat mai mult RAM real, cu atat mai rapid, sau proc-ul lucreaza mai relax? Nu se pune problema de spatiu insuficient pe disc, evident.

Profil
 
  [ Ignoră ]   [ # 4 ]
Avatar
RankRankRankRank
Sr. Member
Din: Cluj
Macuser din: 18.10.05

Am citit si link-ul. Se pare ca intr-adevar, sistemul ruleaza mai rapid daca are mai multa memorie RAM fizica.

Profil
 
  [ Ignoră ]   [ # 5 ]
Avatar
RankRankRank
Member
Din: Ploiești
Macuser din: 08.11.05

Exact, cu cât ai mai mult RAM fizic, cu atât sistemul va putea să păstreze mai multe pagini de memorie în memoria reală, fără să o mute în memoria virtuală. O regulă generală pentru sistemele Unix (și implicit și OSX) este următoarea: cu cât mai mult RAM, cu atât mai bine !

Să explic și motivul. Managementul unixish este deștept; dacă are memorie RAM liberă, o va folosi la ceva, și n-o va lăsa neutilizată. Să zicem că ai 1 gb de RAM, și aplicațiile tale au nevoie de 2 gb RAM. Sistemul nu va aloca toată memoria RAM disponibilă unei aplicații, ci va păstra o porțiune din RAM pentru a stoca paginile de memorie mai des utilizate dintre cele care au fost la un moment dat trimise în memoria virtuală, deoarece este mai rapid să păstrez paginile des utilizate în RAM (chiar dacă ele nu sunt folosite de aplicația curentă, și va fi nevoie să aloc niște memorie virtuală aplicației din foreground)—chestia asta va accelera mult relansarea aplicației anterioare. De asemenea, dacă ai mai multă memorie RAM decât este necesar pentru aplicații, sistemul n-o va lăsa nefolosită (că doar ai dat banii pe ea, nu ? smile ) și o va folosi pentru caching la fișiere. Asta e o chestie care șochează la început pe oricine vine de pe un alt sistem: când vrei să vezi memoria liberă pe un sistem cu memory management unixish, va fi foarte puțină memorie RAM liberă, și următoarea afirmație este ceva de genul “hehe, ce sistem prost, abia mai ai oleacă de RAM liber”, când de fapt realitatea este că un sistem care lasă memorie RAM neutilizată este un sistem prost, pentru că nu utilizează la maxim resursele disponibile.

Ca să vezi informații despre memoria virtuală în MacOS X, deschide un Terminal și tastează “vm_stat <RETURN>”.

Va apărea ceva de genul ăsta (exemplu de pe sistemul meu):

Mach Virtual Memory Statistics: (page size of 4096 bytes// asta înseamnă că o pagină de memorie are 4 kb
Pages free:                    18353. // câte pagini de memorie sunt libere
Pages active:                  27107. // pagini active
Pages inactive:                68181. // pagini inactive
Pages wired down:              17431. // pagini "fixate" (vezi mai jos)
Translation faults:        2095501. // "lost in translation" :)) pagini care nu s-au mai potrivit când au fost readuse din swap
Pages copy-on-write:           24474.
Pages zero filled
:           1086856. // câte pagini au fost "eliberate", șterse
Pages reactivated:                 0. 
Pageins
:                       18934. // câte pagini de memorie au fost mutate în swap
Pageouts:                          0. // câte pagini de memorie au fost recuperate din swap
Object cache5108 hits of 14313 lookups (35hit rate// performanța cache-ului, destul de slabă după cum se vede, deoarece sistemul a fost restartat recent 

Paginile fixate sunt paginile de memorie care nu vor părăsi niciodată memoria RAM, de exemplu bucățile de cod din kernel.

Cam asta ar fi. E o întreagă teorie a memory managementului, s-au scris cărți întregi pe chestia asta.

 Semnătură 

to the aiiirpoooort…

Profil
 
  [ Ignoră ]   [ # 6 ]
Avatar
RankRankRankRank
Sr. Member
Din: Cluj
Macuser din: 18.10.05

Super raspuns, multumesc mult. Cred ca si altii vor profita; si vom captura si pe alti “Bill Gate-isti”. Oricum, vorba francezului, chapeau pentru ce a facut Bill in momentul respectv.
Nu, nu sunt Calul Troian al lui Microsoft - am lucrat pe Mac din perioada Classic-ului, cand il foloseam si ca portabil (in portbagajul masinii…)

Profil
 
  [ Ignoră ]   [ # 7 ]
Avatar
RankRankRankRank
Sr. Member
Din: Cluj
Macuser din: 18.10.05

Inca o intrebare, pe aceeasi tema: alocarea memoriei functioneaza si in Mac OS classic 9 environment? Adica, daca deschid o aplicatie pentru MAC OS 9 (dar prin X), trebuie sa ii mai aloc memorie anterior deschiderii sau nu?
As putea incerca, poate, dar sunt de principiul ca e bine sa afli mai intai, si apoi sa incerci.
Multumesc

Profil
 
  [ Ignoră ]   [ # 8 ]
Avatar
RankRankRank
Member
Din: Ploiești
Macuser din: 08.11.05

Recunosc că am început direct cu OSX, și nu cunosc reminescențele Classic-ului în ce privește fundația; însă în momentul actual, obiectiv vorbind, OSX bate la fund orice sistem de operare comercial de pe lumea asta (nu discut rara avis-urile pentru aplicații in-house, memorii de peste 16 gb, volume uriașe de date, magistrale optice ... și alte SF-uri; vorbesc strict la nivel end-user). Este o arhitectura Unix, care nu degeaba e lăudată atât, cu un melanj Apple format din ceea ce lipsește comunității open-source: o viziune de ansamblu, finanțare, unitate în elementele grafice, etc.

Și chiar ei o recunosc wink

 Semnătură 

to the aiiirpoooort…

Profil
 
  [ Ignoră ]   [ # 9 ]
Avatar
RankRankRank
Member
Din: Ploiești
Macuser din: 08.11.05
macold - 01 Decembrie 2005 03:06 AM

Inca o intrebare, pe aceeasi tema: alocarea memoriei functioneaza si in Mac OS classic 9 environment? Adica, daca deschid o aplicatie pentru MAC OS 9 (dar prin X), trebuie sa ii mai aloc memorie anterior deschiderii sau nu?
As putea incerca, poate, dar sunt de principiul ca e bine sa afli mai intai, si apoi sa incerci.
Multumesc

Recunosc că nu am studiat problema (n-am folosit environmentul de Classic), dar din câte am observat, acest “environment” este o aplicație nativă OSX care rulează aplicațiile pentru Classic, deci teoretic nu ar trebui să ridice absolut nici o problemă. Nu știu exact cum lucrează “emulatorul de Classic” (căci asta este, până la urmă), dar presupun că cei ce l-au scris s-au gândit la problema asta.

 Semnătură 

to the aiiirpoooort…

Profil
 
  [ Ignoră ]   [ # 10 ]
Avatar
RankRankRankRank
Administrator
Din: bucurești
Macuser din: 11.10.05

bineinteles ca nu functioneaza in sistemul 9….  acolo, in fereastra info despre aplicatie, setai manual cita memorie sa-i aloci

Profil
 
  [ Ignoră ]   [ # 11 ]
Avatar
RankRankRankRank
Sr. Member
Din: Cluj
Macuser din: 18.10.05

Cum se explica atunci faptul ca, dupa ce am alocat din “get info’ de la dreamweaver 3 (aplicatie pentru 9) 100M de memorie, si am deschis dreaweaver-ul prin environment-ul din X, meter-ul din meniul de la X nu mi-a indicat un “consum” de memorie marit?

Profil
 
  [ Ignoră ]   [ # 12 ]
Avatar
RankRankRank
Member
Din: Ploiești
Macuser din: 08.11.05

Cred că se explică destul de simplu: “emulatorul” Classic din OSX ignoră pur și simplu valoarea pentru memorie alocată pentru aplicația respectivă din Classic (practic, nu are nici o importanță câți mega îi dai în “get info”), și se ocupă extern de managementul memoriei, așa încât aplicația din 9 crede că are tot timpul memorie destulă. Poți să aloci și o valoare maximă pentru memorie ? dacă da, fă un test simplu: alocă-i în 9 aplicației doar 1 mb de memorie, și vezi dacă pornește wink

 Semnătură 

to the aiiirpoooort…

Profil
 
  [ Ignoră ]   [ # 13 ]
Avatar
RankRankRankRank
Administrator
Din: The Colony, TX
Macuser din: 11.10.05
VAXXi - 01 Decembrie 2005 03:09 AM

însă în momentul actual, obiectiv vorbind, OSX bate la fund orice sistem de operare comercial de pe lumea asta

Apple fanboy smile smile smile
How many times da I have to tell ya…the right tool for the right job!” - Scotty, Star Trek V: The Final Frontier
Nu exista sistem de operare perfect in toate privintele.

OS9 si cele dinainte aveau memory managementul similar cu cel de la win3.1. Isi facea un fisier de swap de marime fixa si aplicatiile trebuiau sa declare de la inceput cata memorie vor.
OSX foloseste standardul unix in care orice proces poate sa aloce cata memorie doreste (in anumite limite setate in prealabil) si el va tine in memorie doar paginile necesare. Acum unele unix-uri arunca pe swap doar ce nu incape in memorie (ex: Linux) iar altele prealoca swap pt orice este sau poate fi in ram ca sa fie sigure ca au unde sa aloce swap (ex: HP/UX si am impresia ca si OSX face la fel). De aia Linux se multumeste cu swap putin. Celelalte unix-uri tin swap-ul pe o partite separata sau intr-un fisier pre-alocat. OSX-ul a venit cu o chestie noua - genereaza dinamic fisiere de swap care le pune pe volumul System.
Asta e un lucru pe de o parte bun - ca nu mai sta user-ul sa se gandeasca cat swap sa puna si nu sta o partite cu spatiu nefolosit daca nu e nevoie de swap si nu apar probleme daca user-ul porneste tone de aplicatii si se consuma swap-ul. Pe de cealalta parte - faptul ca acele fisiere sunt alocate dinamic ii scade CRUNT performantza la lucrul cu swap-ul (fata de swap pe o partitie separata) si daca se umple filesystem-ul System in afara de problemele obisnuite mai apare si faptul ca nu mai poti aloca memorie - ceea ce pt un sistem unix e rau. De asemenea - ai un program care are un memory leak - aloca swap intr-una si te trezesti ca ai discul plin si nu mai poti salva nimic.
Eu unul preferam sa am optiunea sa ii fac partitie separata de swap.

 Semnătură 

Apple:5x macmini (G4, 2007, 2009, 2010, 2012)
UNIX:IBM 7011-250/AIX 5.1, HP Jornada 680/JLime, HP 9000 F20/HP-UX 11.11
PC:PentiumD/Debian, HP t5300/Debian
Misc:Spectrum 48k, 8x Raspberry Pi, 2x CHIP

Profil
 
  [ Ignoră ]   [ # 14 ]
Avatar
RankRankRankRank
Sr. Member
Din: Buchenland
Macuser din: 06.09.05
psergiu - 01 Decembrie 2005 02:17 PM

Eu unul preferam sa am optiunea sa ii fac partitie separata de swap.

Daca tii neaparat, poti face asta si in OS X.

 Semnătură 

⌘-N

Profil
 
  [ Ignoră ]   [ # 15 ]
Avatar
RankRankRankRank
Administrator
Din: bucurești
Macuser din: 11.10.05

iata solutia aleasa de mine: partitionarea hardului in 3 volume: 1 pentru sistem si aplicatii, 2 pentru scratch disk si 3 pentru lucrari ( toate fisierele pe care le lucrez, creez, modific etc - nu salvez nimic in user/home, adica pe partitia care contine sistemul si aplicatiile)

dupa ce am setat toate aplicatiile care au nevoie de scratch (photoshop, illustrator etc) sa aleaga pentru asta partitia special creata, am folosit un programel cu care am mutat setarea implicita a fisierului (invizibil) swap pe aceeasi partitie de scrath (si asa am observat ca uneori ramin cu 48K pe aceasta partitie care are 20 G)

iar daca lucrez la greu cu photoshop, prefer ca uneori, in functie de marimea fisierelor pe care le prelucrez, sa inchid aplicatia si sa o deschid din nou inainte de a trece la un alt fisier mare cu multe layere /  ba uneori mai dau si log off la user (restartul mai rapid)

cit despre aplicatiile din os 9, prefer sa le rulez nativ pe un G4 -  merg mult mai bine decit in mediul emulat din os x

Profil
 
   
1 din 3
1
 
‹‹ Masurare latime de banda      Software Update ››