Správa paměti

Libor

Správa paměti
« kdy: 02. 03. 2013, 15:19:09 »
Zdravím,
nevíte někdo jak zjistím hodnoty relokačních (bázových) registrů pro jednotlivé stavy a úlohy v nich, pokud by došlo ke zhuštění?


Re:Správa paměti
« Odpověď #1 kdy: 02. 03. 2013, 15:34:41 »
Přiznám se, že otázce nerozumim. ...

Libor

Re:Správa paměti
« Odpověď #2 kdy: 02. 03. 2013, 15:52:10 »
Snad obrázky pomůžou pochopit, oč se mi jedná. Mám prostě paměť po statických sekcích a jde mi o to jak zjistím, hodnoty relokačních registrů pro jednotlivé úlohy a

Re:Správa paměti
« Odpověď #3 kdy: 02. 03. 2013, 15:58:22 »
Aha ... o jaké architektuře se bavíme. Protože toto rozhodně není nějaký moderní OS - chybí stránkování.

Předpokládám, že chceš zjisti hodnoty registrů i pro úlohy, které aktuálně nejsou běžící. To musí být někde zadokumentováno v OS. Ten si musí držet informace o spuštěných aplikacích a jejich registrech.

txt

Re:Správa paměti
« Odpověď #4 kdy: 02. 03. 2013, 17:38:04 »
Takže otázka zní: kam ukládá scheduler mnou použitého OS datovou strukturu PCB?


Libor

Re:Správa paměti
« Odpověď #5 kdy: 02. 03. 2013, 17:48:12 »
Nemyslím si že se jedná o PCB. O jakou architekturu jde netuším, ale myslím, že jsem to pochopil špatně a šel jsem na to poněkud složitě. Jak to může být někde zadokumentováno, když jsou ty úlohy pokaždé jiné nebo příjdou v jiném pořadí tzn. že jde o dynamický registr, který je pokaždý jiný. Snad jsem správně pochopil princip, ale nevím jakou hodnotou to mám zapsat a taky pokud mám třeba stav 2, tak úloha 4, 5 v té době neexistují a úloha 2 skončila, takže pokud mám tabulku kde mám vypsat ty hodnoty k jednolivým úlohám, tak mám napsat u těch úloh že neexistují?

Re:Správa paměti
« Odpověď #6 kdy: 02. 03. 2013, 18:07:37 »
Co to znamená, že proces neexistuje ? To také určitě příslušný OS definuje.

Začal bych prostudováním dokumentace daného OS a Architektury. Ty otázky, tak jak jsou položené nelze zodpovědět.

Buď je potřeba více informací a nebo lépe vysvětlit o co ti jde. Ale spíš teda více informací.

Zadokumentováno to může být velice snadno - např.:

Na adrese 0x0100 se nachází tabulka spuštěných procesů.
Deskriptor procesu
0x00 2 PID
0x04 4 Base register
0x08 8 Limit register
........


Samozřejmě realita se bude od příkladu lišit.



Ty asi nejsi programátor, že ? Nebo jsi zatím začátečník ? Napiš nám spíš, co je tvým úkolem. Takhle tu budem dumat ještě za měsíc :D

lons

Re:Správa paměti
« Odpověď #7 kdy: 02. 03. 2013, 18:12:43 »
no tak jedna sa o multiprogramovanie z usekmi variabilnej dlzky. preklad adries je pripocitanim relokacneho registra.

no tak v prvom rade urob co od teba ziadaju, t.j. tu relokaciu teda to skompaktnenie. Proste popresuvaj ty ulohy zaseba

No a potom vyrataj tie relokacne registre pre tie ulohy t.j. poscituj tie dlzky

Libor

Re:Správa paměti
« Odpověď #8 kdy: 02. 03. 2013, 18:27:04 »
Já bych sám sebe definoval jako svátečního programátora. Takže do jisté míry jsem začátečník. Studuju SŠ kde právě probíráme správu paměti.
lons asi pochopil o co mi jde, to že ty úlohy mám dát za sebe mi je jasný, akorát nevím jaký mám vypsat hodnoty k U1=?;U2=? atd. když v tý době/stavu ta určitá úloha prostě neprobíhala ani nečekala.

Ivan

Re:Správa paměti
« Odpověď #9 kdy: 03. 03. 2013, 12:53:03 »
Podivej se na soubor /proc/<pid>/smaps ten popisuje cely adresni prostor kazdeho procesu.

Re:Správa paměti
« Odpověď #10 kdy: 03. 03. 2013, 21:09:23 »
Ivan: tady se těžko mluví o nějakém UNIXu - podívej se ještě jednou na zadání ;-)

PanKapitanRUM

Re:Správa paměti
« Odpověď #11 kdy: 03. 03. 2013, 21:59:26 »
Některé posty by bylo lepší od začátku smazat.  ::)
Teď jsem nad tím přemýšlel pár minut a myslím, že jednak sám autor neví, na co se ptá a jednak nepoužil mozek.
Pokud by věděl, na co se ptá, nejspíš by už dávno napsal operační systém a platformu o které mluví.
Zdá se mi, že je na VŠ v prvním ročníku a má předmět operační systémy, tam mu vysvětlovali nějaký obecný paměťový model.
A on by se na to teď rád podíval, jak to vypadá ve skutečnosti.
Taky jsem byl na VŠ a něco podobného jsem tam určitě viděl.

Tedy v zásadě ASI, protože nás autor nechává hádat, se jedná o zjednodušený model chráněného režimu a toho, co se stane, když doje k výpadku stránky. ::)

Opravte mě....

PanKapitanRUM

Re:Správa paměti
« Odpověď #12 kdy: 03. 03. 2013, 22:04:01 »
Doplnění: To schéma možná ani není od žádného existujícího procesoru/architektury, protože se jedná o "školní model", na kterém se vysvětlují základy fungování operačního systému. Nedostatek informací pak není způsobený tím, že by je autor nechtěl poskytnout, ale protože prostě nemá páru o tom, že existují různé architektury natož různé adresovací režimy nebo na x86 stránky.

Pak by odpověď zněla:
Přijmi to, jak tě to škola učí, tohle je zjednodušený model.
S realitou to má společného asi tolik, kolik má obrázek výbuchu atomové bomby společného s její detailní konstrukcí  ::)

App, tohle jsou pro tebe nepodstatné věci, ty se nauč jako básničku a raději se šprtej matematiku.

Re:Správa paměti
« Odpověď #13 kdy: 03. 03. 2013, 22:06:15 »
Opravim: tady se evidentně nejedná o stránkování, ale o segmentaci - nějakou hodně primitivní. Podle mě je architekturou 8086ka - podle velikosti paměti 1MB. Je to ale jen tip. OS - těžko říct - v DOSu většina aplikací nebyla připravena na to, že je někdo začne za běhu přesouvat.

Jakub Galgonek

Re:Správa paměti
« Odpověď #14 kdy: 03. 03. 2013, 22:40:44 »
Pak by odpověď zněla:
Přijmi to, jak tě to škola učí, tohle je zjednodušený model.
S realitou to má společného asi tolik, kolik má obrázek výbuchu atomové bomby společného s její detailní konstrukcí  ::)

Také může jít o model nějakého hodně starého hardwaru. Neměl něco podobného CDC Cyber 6000?