Ucz się programowania, nie języków programowania - część 1


Czytaj inne artykuły z cyklu:
Przykładowo w większych programach warstwa odpowiadająca za zapis przebiegu działania programu w postaci logów używa warstwy wejścia-wyjścia. Wyodrębnienie systemu logów i systemu wejścia-wyjścia jako dwóch osobnych, choć współpracujących ze sobą abstrakcji pozwala na to by pierwszy z tych systemów mógł w podobny sposób wypisywać informacje na ekran i do pliku w zależności np. od wpisu w pliku konfiguracyjnym.

Pobieżną analizę architektur warto zacząć od podziału urządzeń w komputerze. Jak wie każdy, "sercem" komputera jest procesor. Obok niego w skład systemu wchodzą pamięci (operacyjna dyskowe), urządzenia wejścia oraz urządzenia wyjścia.

Zobacz również:

  • Python ze złośliwym oprogramowaniem

Procesor działa na danych przechowywanych w pamięci oraz w rejestrach. Urządzenia wejścia i wyjścia "przeszkadzają" mu wysyłając komunikaty tzw. przerwań. Przerwanie może być wywołane także przez program - np. po to aby dane zostały zapisane w pamięci, z której korzysta karta graficzna.

Prezent od węgierskiego bratanka

Najczęciej wykorzystywane są operacje na danych z pamięci wykonywane przez procesor.

Przykładem rozkazu danego procesorowi z rodziny x86 jest:

add [bx],ax

Oznacza on dodanie liczby zawartej w rejestrze ax do wartości zapisanej w komórce pamięci, której adres znajduje się w rejestrze bx.

Tu warto opowiedzieć pewną historię: otóż w 1944 roku powstał elektromechaniczny komputer Harvard Mark I znany też jako IBM Automatic Sequence Controlled Calculator (ASCC). Charakteryzował się tym, że pamięć rozkazów była oddzielona od pamięci danych. Rozwiązanie to nazwano architekturą harwardzką.

Później pojawił się model zwany architekturą Von Neumanna - połączenie danych i programu w jednej pamięci. Nie wiadomo czy John Von Neumann urodzony na Węgrzech jako Margittai Neumann János Lajos przeczuwał, że projektanci oprogramowania będą kiedyś robić wszystko by te architektonicznie złączone elementy koncepcyjnie odseparować. W każdym razie dzięki pomysłowi węgierskiego bratanka programowanie stało się zajęciem wymagającym pewnej przekory i może dlatego tak przyjaznym dla Polaków.