Szukasz kursu specjalistycznego z BHP, SEP lub kursu na wózki widłowe? Kurs edukacyjny!

Techniki przydzielania pamięci

Wyznaczenie limitów obszaru pamięci i sprawowanie kontroli nie zapewnią małej wielkości programu. To wymaga ze strony programisty sporej inwencji i dużych umiejętności. Oczywiście więcej funkcji oznacza więcej miejsca w pamięci – przy utrzymaniu stałej szybkości działania. Pierwszą umiejętnością jest zna- lezienie kompromisu między liczbą funkcji programu a rozmiarami pamięci, jaką ma zajmować. Tu od razu pojawia się zasadnicze pytanie strategiczne, czy użytkownik też będzie miał jakiś wybór funkcji? A jeśli tak, to jaki? Można zaprojektować program z wieloma opcjonalnymi funkcjami, z których każda zajmie niewiele miejsca. Można zaprojektować generator, który dostosuje program do wykazu opcji. Jednakże przy specyficznym zbiorze opcji program bardziej monolityczny zajmie mniej miejsca. Przypomina to trochę samochód: jeśli wyceni się lampkę punktową, zapalniczkę i zegar łącznie, to taki pakiet będzie tańszy niż każdy element z osobna. Projektant musi zatem ustalić, jak rozdrobniony będzie wybór opcji będących do dyspozycji użytkownika.

Przy projektowaniu systemu, którego części mają mieć różną wielkość, powstaje inny problem. Ustalenie limitów ogranicza właściwe wykorzystanie pamięci, nawet przy rozdrobnionej modular- ności funkcji. W najmniejszym systemie większość modułów będzie nakładkowana. Znaczną część obszaru zarezerwowanego dla programów rezydentnych trzeba w takim wypadku przeznaczyć na obszar przejściowy albo obszar stronicowania, do którego inne programy będą ładowane. Wielkość takiego obszaru determinuje wielkość wszystkich modułów. A rozbicie funkcji na małe moduły jest kosztowne zarówno ze względu na efektywność, jak i pamięć. Tak więc w wypadku dużego systemu, co do którego można sobie pozwolić na dwudziestokrotnie większy obszar przejściowy, oszczędza się w ten sposób jedynie na dostępie do pamięci. Nadal odbija się to na szybkości działania systemu i na rozmiarach pamięci, jaką zajmuje, ponieważ każdy moduł jest mały. Prowadzi to do ograniczenia efektywności systemu, jaki można wygenerować z modułów małego systemu.

Podobne Artykuły

Zostaw odpowiedź

Twoj adres e-mail nie bedzie opublikowany.