!!!!!!! Historia Rozwoju Architektury Komputerów czytelnia Try2emu

Historia Rozwoju Architektury Komputerów

Niewątpliwie, najważniejszym motorem postępu jest lenistwo. Ono bowiem powoduje, że wymyślamy wciąż nowe rzeczy po to, by wykonanie jakiejś pracy wymagało jak najmniej wysiłku. Nic więc dziwnego, że z chwilą powstania komputerów, człowiek starał się obarczyć te potulne maszyny możliwie największą ilością pracy.

Najpierw człowiekowi nie spodobało się, że procesor komputera (odpowiednik naszego mózgu) stoi bezczynnie, oczekując na wykonanie operacji wprowadzenia lub wyprowadzenia danych. Skonstruowano więc kanały transmisyjne, które przejęły funkcje sterowania przepływem informacji. Procesor miał tylko zainicjować pracę kanału i mógł przystąpić do realizacji innego zadania.

Po zakończeniu transmisji, kanał wysyłał do procesora sygnał, po otrzymaniu którego, procesor przerywał swoje aktualne zadanie (stąd nazwa sygnału — przerwanie) i reaktywował zadanie, w którym zainicjowano zakończoną przed chwilą transmisję danych. Dzięki takiemu systemowi przerwań komputer mógł realizować kilka zadań, pozornie jednocześnie. Następny program mógł zacząć się wykonywać zanim poprzedni zakończył swoje działanie. W konsekwencji, każdy program czekał znacznie krócej w kolejce do procesora.

Wszystkie, aktualnie wykonywane programy musiały być jednocześnie w pamięci operacyjnej. Zaspokojenie potrzeb komputera i wyposażenie go w odpowiednio dużą pamięć operacyjną spowodowałoby niewspółmierne do efektów, zwiększenie kosztów budowy komputerów.

W tym momencie ujawnił się kolejny motor postępu — skąpstwo. Człowiek chciałby osiągnąć cel płacąc za to możliwie najniższą cenę. Prawdopodobnie dlatego pierwszy człowiek zaczął chodzić na dwóch nogach, żeby jego potomkowie wydawali mniej pieniędzy na buty.

Zmniejszenie kosztów budowy komputerów osiągnięto początkowo wprowadzając sztuczne nakazy — żaden program nie mógł zajmować więcej niż "ileś" pamięci. To "ileś" stanowiło więc istotny parametr jakości komputera.

Z czasem jednak, wspomniana wcześniej pierwsza cecha człowieka doszła do głosu. Lenistwo spowodowało, że komputer rozwiązywał coraz bardziej złożone problemy. W konsekwencji, rosły rozmiary programów. W pewnym momencie objętość pamięci operacyjnej okazała się zbyt mała. Jednocześnie układy pamięci były  jeszcze na tyle kosztowne, że rozbudowa ich nie wchodziła w rachubę. Postanowiono więc, duży program podzielić na kilka mniejszych części i wykonywać je jedna po drugiej. Programista został jednak obarczony dodatkowym problemem. Pisząc program, musiał zaprogramować rozwiązanie podstawowego zadania i podjąć decyzję, w jaki sposób podzielić program na segmenty. Programista to też człowiek — jest więc leniwy. "Chcemy żyć wygodnie i beztrosko" — krzyknęli programiści. "Nic nas nie obchodzą problemy komputera ze zmieszczeniem programu w pamięci. To jest jego problem, niech więc on sam sobie z tym radzi". Program umieszczono w szybkodostępnęj pamięci dyskowej a pamięć operacyjną podzielono na bloki i każdemu dobudowano rejestr adresu. Odtąd każdy blok pamięci miał dwa adresy: adres fizyczny — określający jego położenie w komputerze oraz adres logiczny — według którego procesor mógł w nim zapisywać lub odczytywać dane.

Jednocześnie próba odwołania się do nieistniejącego adresu logicznego powodowała, że procesor otrzymywał sygnał przerwania. Zawieszał wtedy działanie aktualnego zadania, odnajdywał brakujący segment programu na dysku i po przeadresowaniu jednego z bloków, wprowadzał szukany segment do pamięci, po czym uaktywniał zadanie. Program wprawdzie nadal był dzielony na segmenty, jednak teraz odbywało się to bez udziału programisty. Długość każdego segmentu była równa rozmiarowi bloku pamięci operacyjnej. Od tej chwili program mógł być tak duży, jak rozległy był obszar pamięci, który można było zaadresować na szynie adresowej niezależnie od fizycznej wielkości pamięci operacyjnej. Tak zorganizowaną pamięć nazwano pamięcią wirtualną. Koszt rozbudowy szyny adresowej, w porównaniu do kosztu rozbudowy pamięci, jest znikomy.

Z lenistwa i chciwości wyniknęły dwa oszustwa. Pierwsze — pozornie jednoczesne wykonywanie się kilku programów, drugie — pozornie olbrzymia pamięć operacyjna.

Moim zdaniem są to dwa, najpoważniejsze osiągnięcia w dziedzinie rozwoju architektury komputerów.

 

 

mgr Mieczysław Płacheta