Download - Logická organizace paměti
Logická organizace paměti
Logická organizace pamětiLogická organizace paměti – jsou pravidla, kterými se řídí přidělování paměti
Paměť využívají :• uživatelské aplikace
• operační systém
• BIOS HW zařízení
• I/O zařízení (adresy)
Logická organizace pamětiPaměť je rozdělena na tři základní části, definované IBM při konstrukci PC-XT.Dnes je struktura pozměněna, ale základní definované oblasti paměti mají stále stejný význam :
• Konvenční paměť (Conventional Memory) 0 – 640 KB.
• Rezervovanou paměť (Reserved Memory) 640 – 1MB.
• Paměť nad 1 MB
Konvenční paměť 0 – 640 KB
Paměť je rozdělena na dvě části:
• oblast vstupně/výstupních adres.
• oblast určenou pro práci programů.
Konvenční paměť 0 – 640 KB• Paměť I/O adres (0 – 1 KB) – jedná se o prostor
určený pro vstupně/výstupní adresy pomocí kterých komunikuje mikroprocesor s okolím.
• Každá část PC má přidělenu I/O adresu, přes níž posílá svá data mikroprocesoru • Přidělování adres I/O se řídí přesnými
pravidly: • adresy od 000000 do 0FF – pro díly základní
desky • adresy od 100 do 3FF jsou určeny pro
rozšiřující desky
• Dvě zařízení nemohou využívat stejné adresy, mikroprocesor by nevěděl s kterou periferií komunikuje
• Při rozšíření počítače o novou desku nutno zadat originální DMA, IRQ a adresu I/O
Konvenční paměť 0 – 640 KBProgramová část konvenční paměti (1 KB - 640 kB):
• Sloužila pro MS DOS a 16 bitové programy, pro 32bitové OS nemá tato paměť význam
• Do paměti se načítaly také rezidentní programy a ovladače zařízení.
Rezidentní programy – jsou v paměti trvale a nahrával je tam sám uživatel
• Ovladače zařízení – ovladače určené pro hardwarová zařízení – např. CD, myš…, spouštěly se pomocí příkazů v config.sys
Ve Windows se načítají pomocí registrů
Rezervovaná paměť od 640 KB - 1 MB• Adresy této logické části paměti (od 640 KB - 1
MB) jsou rezervovány pro technické prostředky počítače. V rezervované paměti neumějí pracovat žádné programy (nepoužívají její adresy).
Je rozdělena do tří částí:• Na začátku paměti je vymezený prostor pro
grafický adaptér, adresy A0000 – C7FFF.
• Poté je prostor určený pro BIOS jiných komponent (jsou umístěny na rozšiřujících kartách)
• Na konci paměti je prostor pro systémový BIOS, adresy F0000 - FFFFF
HMA High Memory Area
• HMA je prvních 64 KB paměti nad jedním MB.
• Tuto paměť dokážou používat některé programy běžící pod MSDOS a také sám operační systém DOS, čímž se opět ušetří nějaká ta desítka KB v konvenční paměti.
Paměť nad 1 MB• Programy OS DOS mohly používat
paměť nad 1024 kB prostřednictvím speciálních programů – paměťové manažery.
• Byli definovány dva principy:
• stránkové manažeryEMS(Expanded Memory Specifikation) neboEMM (Expanded Memory Manager). Např. EMM386.EXE
• nestránkové manažeryXMM (eXtended Memory Manager). V DOSu se jmenoval HIMEM.SYS
Stránková paměť (EXPANDED – rozšířená)
• Byla zavedena jako první a dnes se příliš nepoužívá.
• Paměť nad 1 MB se rozdělila na stránky a do rezervované paměti se umístil přepínač (page frames), který požadavek "přeposílal výš".
• Přepínání adres zajišťoval program - stránkový manažer, označovaný EMS (Expanded Memory Specifikation) nebo EMM (Expanded Memory Manager). Např. EMM386.EXE
Nestránková paměť (EXTENDED – prodloužená)
• Její použití bylo umožněno rozšířením adresové sběrnice u PC-AT.
• Bylo možno generovat více adres, a proto není třeba používat stránky a přepínače pro přístup do paměti nad 1 MB.
• Přímé adresování zajišťuje XMS (eXtended Memory Specification) někdy označovaný XMM (eXtended Memory Manager)
Práce s pamětí ve Windows
• OS Linux i Windows podporují multitasking = zpracování více programů současně
• Jde o jednu z technologií pro práci s operační pamětí.
• v praxi se multitasking realizuje velmi rychlým přepínáním mezi běžícími programy
• každý z programů dostává část mikroprocesorového času
• Existují dva základní způsoby: • Kooperativní multitasking
• Preemptivní multitasking
Kooperativní multitasking
• Čas procesoru je operačním systémem přidělen jednomu programu v držení tak dlouho, dokud jej sám nevrátí zpět operačnímu systému, ten jej pak přiděli jinému programu
• program však nemusí procesorový čas vrátit v dostatečně krátkém časovém úseku, což působí dojmem, jako by ostatní programy nepracovaly.
• horší případ nastane ve chvíli, kdy program vůbec nevrátí řízení času procesoru (např. zhavaruje) => tato situace vede k havárii celého systému, tímto způsobem pracují 16bitové programy napsané pro Windows 3.x
Preemptivní multitasking
• Jedná se o spolehlivější multitasking
• čas procesoru je přidělen programu pouze na určitou dobu, po jejím uplynutí jej sám operační systém programu odebere a přidělí jinému programu => nemohou tak nastat stavy kooperativního multitaskingu
• tímto systémem pracují 32bitové OS Windows 98 až XP, W7