background image
background image

Pamięć konwencjonalna 
Pamięć górna UMA   
 
Pamięć typu expanded (EMS) 
W jaki sposób działa pamięć typu expanded  ?  
PAMIĘĆ TYPU EXTENDED XMS   
Tryby rzeczywisty i chroniony    
Używanie pamięci typy extended pod DOSem 
Wysoka Pamięć    
Bloki Pamięci Górnej       

background image

Pamięć 

konwencjonalna

Obszar obejmujący zakres 0 - 9FFF (0 - 640 KB) pamięć konwencjonalna, 

jest to obszar, gdzie DOS ładuje i wykonuje twoje programy. Dolna pamięć 

konwencjonalna zarezerwowana jest do użytku komputera, lecz mniej 

więcej od punktu 2 KB aż do 640 KB, możesz uruchamiać aplikacje. Nie 

oznacza to jednak, że masz całe 640 KB (lub 638 KB) dostępne dla 

wszystkich twoich aplikacji. DOS sam pozostaje w pamięci konwencjonalnej, 

zajmując od 18 KB do 90 KB w zależności od wersji. 

Ponad DOSem są pewne obszary przechowywania danych (ang. - data 

storage areas) - miejsca, które DOS wykorzystuje do obsługi wszystkich 

otwartych plików, plus dowolnych drajwerów urządzeń ładowanych przez 

CONFIG.SYS oraz wszystkich programów rezydentnych ładowanych przez 

AUTOEXEC.BAT. Na zakończenie, nad tym wszystkim, znajduje się twój 

program użytkowy (aplikacja) i wszystkie pliki przez ciebie załadowane 

potrzebne danej aplikacji, takie jak dokument czy arkusz kalkulacyjny. 

W najgorszym przypadku, przy dużej ilości załadowanych driver’ów 

urządzeń i programów rezydentnych, może ci zostać tylko kilkadziesiąt 

kilobajtów pamięci konwencjonalnej przeznaczonej dla twoich aplikacji. 

background image
background image

Pamięć górna UMA

Obszar o adresie A0000 do FFFFF (640 - 1 MB) IBM zarezerwowało górne 

384 KB pamięci PC dla celów przyszłych rozwiązań lub dla ROMa. 

Oryginalny PC używał tylko skrawka tej pamięci dla swojego BIOSa, 

Podstawowego Systemu Wejścia/Wyjścia, zapewniającego PC instrukcje 

niskiego poziomu do sterowania urządzeniami peryferyjnymi, takimi jak 

stacje dysków i klawiatura. Jeszcze jeden mały kawałek był używany dla 

pamięci monitora, gdzie były przechowywane informacje, które miały być 

wyświetlone na monitorze monochromatycznym lub kolorowym. A i tak 

pozostał cały tłum miejsca dla przyszłych rozszerzeń. Obecnie pamięć 

górna nadal nie jest wypełniona ROMem. Pierwsze 128 KB jest 

przeznaczone dla pamięci monitora: systemów grafiki 

monochromatycznej, CGA, EGA lub VGA w większości PC. Następne 128 

KB jest zarezerwowane dla ROMów instalowalnych, takich jak ROM 

monitora i ROM kontrolera stacji dysków. Ostatnich 128 KB jest 

zarezerwowanych dla ROM-BIOSU. W pamięci tej można zainstalować 

wersję 5.0 sytemu operacyjnego, dyski typu RAM, a na zestawach z 

procesorem 80386 (lub 80486) umieścićtakże programy rezydentne i 

sterowniki urządzeń.Do rozpoznawania adresów powyżej granicy 640 kB 

programy potrzebują specjalnego programu zarządzania pamięcią 

rozszerzoną, którym w systemie operacyjnym MS-DOS jest program 

HIMEM (zapisany w zbiorze HIMEM.SYS). 

background image

Pamięć typu expanded 

(EMS) 

Użytkownicy arkuszy kalkulacyjnych byli pierwszymi, którzy zaczęli domagać 

się więcej pamięci. W trakcie pracy arkusz kalkulacyjny jest przechowywany w 

pamięci; im więcej masz pamięci, tym większy arkusz możesz utworzyć. Dla 

budżetu domowego, 256 KB było wystarczającą pamięcią. Dla małego biura, 

640 KB było w porządku. Lecz dla Użytkowników Wielkich Arkuszy 

Kalkulacyjnych, to nie wystarczało. 

Stworzono rozwiązanie, oparte na kombinacji sprzętu i oprogramowania. 

Lotus, Intel i Microsoft opracowały standardową specyfikację pamięci typu 

expanded (EMS) LIM dla pamięci typu expanded, de facto dodatkowej puli 

pamięci w PC. Nie jest to pamięć poza znacznikiem 1 MB, nie mogą w niej być 

wykonywane żadne programy. Jest to raczej obszar pamięci na karcie 

rozbudowy wewnątrz komputera zgodnej z EMS. Oprogramowanie zgodne z 

EMS mogłoby mieć dostęp do pamięci na karcie, co z kolei oznaczało, że 

oprogramowanie może mieć dostęp do większej ilości pamięci do 

przechowywania danych. 

Aby używać pamięci typu expanded na twoim komputerze, potrzebujesz 

zarówno karty rozbudowy zgodną z EMS, jak i driverów urządzenia znany jako 

driver pamięci typu expanded (EMM). Musisz mieć również aplikacje zgodne z 

EMS, które "umieją" używać pamięć typu expanded. 

background image
background image

W jaki sposób działa 

pamięć typu 

expanded  ?  

Pamięć typu expanded wykorzystuje nieużywany kawałek górnej pamięci, rezerwując 

jeden 64-kilobajtowy blok pamięci zwany ramką strony (ang. - page frame). Pamięć typu 

expanded jako taka mieści się - poza główną pamięcią w PC - na karcie rozbudowy w 

jednym z gniazd rozszerzenia PC. 

Driver EMM udostępnia pamięć typu expanded oprogramowaniu aplikacji w postaci 

czterech 16-KB stron mieszczących się w ramce strony. Pamięć ta jest blokami 

przełączana zarówno sprzętowo, jak i programowo, co oznacza, że 16-KB strony w miarę 

potrzeby mogą być przerzucane do i z ramki strony. Po umieszczeniu w ramce strony, 

strona staje się dostępna dla mikroprocesora, ponieważ mieści się ona w 1 MB przestrzeni 

adresowej. 

Jeżeli twoje aplikacje wykorzystują funkcje zapewniane przez drajwer EMM, mogą one 

odwzorowywać inne strony pamięci typu expanded na ramkę strony. W taki właśnie 

sposób używana jest pamięć typu expanded. 

Ostatnia wersja standardu EMS, wersja 4.0, umożliwia dostęp aż do 32 MB pamięci typu 

expanded. Standard EMS 4.0 pozwala nowym kartom EMS na przenoszenie programów, 

jak również danych, do pamięci typu expanded. W ten sposób, pamięć typu expanded 

staje się bardziej użyteczna w przypadku wielozadaniowości, lecz w dalszym ciągu jest 

ona o wiele wolniejsza niż bezpośrednio adresowana pamięć konwencjonalna. 

 

background image

PAMIĘĆ TYPU 

EXTENDED XMS  

  Co to jest pamięć typu extended? Jest to, podstawowo, RAM ponad i poza znacznikiem 1 

MB w PC opartym o 80286 lub '386. Pamiętaj: ponad i poza. Ponad tym, gdzie rezyduje DOS 

i poza zasięgiem większości aplikacji DOSa. 

80286 może mieć dostęp aż do 16 MB RAMa; '386 może mieć dostęp aż do 4096 MB. We 

wszystkich tych systemach poprzednie wersje DOSa traktowały mikroprocesor jak szybki 

8088 z 1 MB pamięci. Dowolna pamięć ponad znacznik 1 MB jest to tzw. pamięć typu 

extended. 

Największym problemem w przypadku pamięci typu extended jest fakt, że znajduje się ona 

ponad przestrzenią adresową 8088 - czyli DOS nie może bezpośrednio z niej korzystać. Aby 

korzystać z pamięci typu extended, program musi przełączyć mikroprocesor na tzw. tryb 

chroniony a następnie, przed wyjściem, ponownie przełączyć na tzw. tryb rzeczywisty. 

Pierwsze programy, które tę technikę wykorzystywały, były to dyski wirtualne. 

Ponieważ pamięć typu expanded została wprowadzona przed pamięcią typu extended, jest 

więcej programów zaprojektowanych do korzystania z pamięci typu expanded aniżeli z 

pamięci typu extended. Jednakże powoli się to zmienia. Wersje 3.0 AutoCAD i Lotus 1-2-3 

mogą korzystać z pamięci typu extended. A wzbogacony tryb 386 Windows Microsfta 

otwiera drzwi megabajtom pamięci typu extended. 

W celu umożliwienia uruchamiania programów w pamięci rozszerzonej bez względu na jej 

typ, wersja 5.0 systemu operacyjnego zawiera sterownik EMM386, który na zestawach z 

procesorem 80386 (lub 80486) powoduje symulację pamięci rozszerzonej EMS w pamięci 

XMS. Tym samym każdy program przeznaczony do uruchomienia w pamięci EMS będzie 

mógł być uruchomiony na zestawie komputerowym wyposażonym w pamięć XMS. 

Aby przesunąć programy rezydentne z pamięci konwencjonalnej do XMS wymaga instalacji 

sterownika HIMEM.

background image

Tryby rzeczywisty i 

chroniony    

Mikroprocesory 80286 i '386 mają w rzeczywistości dwa tryby pracy: tryb rzeczywisty (ang. 

- real mode) i tryb chroniony (ang. - protected mode). 

W trybie rzeczywistym, mikroprocesor 80286 działa dokładnie jak 8088; może używać tylko 

1 MB RAMa, a pamięć typu extended nie może być używana do uruchamiania programów 

W trybie chronionym, 80286 uwalnia się. Może mieć dostęp do 16 MB RAMa i uruchamiać 

programy w dowolnym miejscu. Pamięć typu extended jest szeroko otwarta dla 

mikroprocesora. 

386 ma tryby rzeczywisty i chroniony, dokładnie tak samo, jak 80286. W trybie 

rzeczywistym, '386 działa jak bardzo szybki 8088, lecz w trybie chronionym '386 może mieć 

dostęp do 4096 MB RAMa przeznaczonych do uruchamiania programów i zapisywania 

informacji. Poza tym, przy pracy w systemie operacyjnym dopuszczającym tryb chroniony, 

'386 ma tzw. tryb wirtualny 8086 lub V-86. W trybie tym system operacyjny może 

wykonywać wiele programów na raz. Każdy z tych programów wierzy, że działa na 

oddzielnym mikroprocesorze 8088 ze swoją własną, niepowtarzalną przestrzenią adresową 

1 MB. W ten sposób DESQview 386 wykonuje naraz wiele aplikacji DOSa. 

Tryb chroniony jest jak senne marzenie użytkownika spragnionego RAMa: masa pamięci i 

pełna moc mikroprocesora do jej wykorzystania. Lecz DOS jest przywiązany do 8088; jest to 

system operacyjny tylko trybu rzeczywistego. DOS nie może być uruchomiony w trybie 

chronionym, ani też nie może uruchamiać programów w pamięci typu extended.

background image

Używanie pamięci typy 

extended pod DOSem 

Mimo, że pamięć typu extended jest rzeczywiście poza zasięgiem DOSa (na razie), istnieje 

pewien potencjał: 

Niektóre aplikacje mogą być uruchomione w - i będą używać - pamięci typu extended. Są to 

tzw. rozszerzone aplikacje DOSa. W tajemnicy, aplikacje te przełączają mikroprocesor z trybu 

rzeczywistego na chroniony - za plecami DOSa. Gdy aplikacja jest wykonywana, używa ona 

pełnej mocy mikroprocesora i pamięci typu extended w komputerze. Gdy aplikacja kończy się 

i wraca do DOSa, przełącza z powrotem mikroprocesor na tryb rzeczywisty. Niewiele 

programów to robi, przede wszystkim Windows, Lotus 1-2-3 wersja 3.0 i późniejsze, i niektóre 

wersje AutoCAD. 

Od wersji 3.2 DOSa pamięć typu extended może być wykorzystywana jako pamięć masowa. 

W pamięci typu extended możesz umieszczać dyski wirtualne, cache dysku, czy też bufory 

drukowania. O ile programy nie są w tej pamięci uruchamiane, DOS może mieć do niej 

dostęp dla celów przechowywania informacji. 

Pamięć typu extended może symulować pamięć typu expanded - lecz tylko w komputerach 

opartych o '386 i tylko z odpowiednim oprogramowaniem (emulatorpamięci typu expanded). 

Aby dokonać takich wyczynów Lotus, Intel, AST Research i Microsoft ustaliły standard do 

posługiwania się pamięcią typu extended w DOSie. Jest to Specyfikacja Pamięci Typu 

Extended, czyli XMS (Extended Memory Specification.) 

XMS nie pozwala programom, aby były uruchamiane w pamięci typu extended; jesteś nadal 

ograniczony do tych trzech funkcji opisanych powyżej. Lecz XMS ustala standardy 

umożliwiające wyszukane, współdziałające korzystanie z pamięci typu extended pod DOSem.

background image

Wysoka Pamięć

Mikroprocesory 8088/8086 mogą odwoływać się do 1 MB pamięci. Dowolna próba odwoływania 

się do pamięci poza 1 MB powoduje, że mikroprocesor "zawraca", idąc z powrotem do miejsca 

w pamięci o adresie 0. Mikroprocesory 8088/8086 mogą również odwzorować te bajty do 

pierwszych 64 KB pamięci typu extended. Tych dodatkowych 65,520 bajtów znane jest jako 

tzw. pamięć wysoka, lub HMA (ang. - high memory area.) 

Ta dodatkowa pamięć może być użyta przez DOS w komputerze opartym o 80286 lub '386. 

DOS może praktycznie "zobaczyć" pamięć tam będącą i odwoływać się do niej bezpośrednio 

bez potrzeby przesączania mikroprocesora na tryb chroniony. 

Aby mieć dostęp do HMA - dodatkowe 64 KB pamięci potrzebujesz dwóch rzeczy: 

·         PC oparty o 80286 lub '386 z pamięcią typu extended 

·         Driver, aby mieć dostęp i sterować HMA 

Większość PC opartych o 80286 i o '386 jest dostarczanych z 1 MB RAMa. Pierwszych 640 KB 

tej pamięci jest to pamięć konwencjonalna. Reszta jest to najczęściej pamięć typu extended. 

(Zwróć uwagę, że niektóre starsze komputery AT mają tylko 512 KB zainstalowanej pamięci.) 

Dlatego też prawie wszystkie komputery oparte o 80286 lub późniejsze mają pamięć typu 

extended potrzebną dla DOSa 

Drajwerem mającym dostęp do HMA jest HIMEM.SYS. Poza tym, HIMEM.SYS wdraża standard 

XMS w komputerach opartych o 80286 i '386 pod DOSem 5. Jest to pierwszy krok w stronę 

pełnego wykorzystania potencjału pamięci twojego komputera.

background image

Bloki Pamięci Górnej

Bloki pamięci górnej (UMB - upper memory blocks) są nieużywanymi obszarami w górnej pamięci. 

Mimo, że IBM pozostawił 384 KB dla ROMa i przyszłego rozwoju, bardzo mała część tego obszaru jest 

wykorzystywana. BIOS korzysta tylko z części wyższych 128 KB tej pamięci; kontroler dysku twardego i 

BIOS monitora również zajmują tylko część tej pamięci; a pamięć monitora może zajmować dowolny 

kawałek od 4 KB (w przypadku monitorów monochromatycznych) do 32 KB (dla CGA) oraz do 128 KB 

(zarówno dla EGA, jak i VGA). W wynik tego pozostaną niewykorzystane kawałki górnej pamięci. 

Obszary niewykorzystane pomiędzy poszczególnymi ROMami i innymi zabawkami w zarezerwowanej 

pamięci nie mogą być używane do uruchamiania programów. Dlaczego? Dlatego, że praktycznie nie 

ma tam RAMa. RAM kończy się na 640 KB. (Podczas gdy prawdą jest, że RAM monitora znajduje się w 

pamięci zarezerwowanej, jest on przeznaczony dla systemów generacji obrazu, a nie dla 

wykonywanych programów.) 

Przed powstaniem DOSa 5, jeżeli chciałeś utworzyć UMB, musiałeś kupić program zarządzania 

pamięcią innego producenta, jak np. 386 MAX z Qualitas lub QEMM-386 z Quarterdeck. Programy te 

mogą odwzorować pamięć typu expanded do nieużywanych obszarów między 640 KB a 1 MB. DOS 5 

zawiera niezbędne drajwery i programy do tworzenia UMB przeznaczone dla dowolnych komputerów 

opartych o '386 mających co najmniej 350 KB pamięci typu extended. Korzyści? Z drajwerami 

urządzeń i oprogramowaniem rezydentnym poza obszarem pamięci konwencjonalnej, masz więcej 

pamięci konwencjonalnej, w której możesz uruchamiać programy. 

Gdy już masz UMB, możesz z nimi zrobić wiele rzeczy. Na przykład, drajwery urządzeń i programy 

rezydentne z zasady są umieszczane w UMB. Mimo, że są one programami, nadal działają poprawnie, 

ponieważ w dalszym ciągu znajdują się w 1 MB przestrzeni adresowej 8088. 

DOS 5 przenosi ten pomysł o jeszcze jeden wiellci krok naprzód: Możesz przenieść jądro DOSa (własne 

programy rezydentne DOSa) z pamięci konwencjonalnej do HMA, co pozostawi cię z masą pamięci 

konwencjonalnej przeznaczonej do uruchamiania twoich aplikacji.


Document Outline