Obecnie znane nam jednostki przetwarzające działają na zasadzie wykonywania, sekwencyjnie, kolejnych rozkazów. Można to ująć w ten sposób: procesor to sprzętowa realizacja algorytmu, który pozwala na sterowanie jego pracą za pomocą instrukcji.

Wyobraź sobie taśmę przy kasie w sklepie. Taśma cały czas przesuwa się do przodu dopóki przy kasie nie pojawi się przedmiot. Ekspedient, która stoi za kasą, w momencie, gdy pojawi się przy nim przedmiot podejmuje jedną z kilku operacji: może nabić wartość przedmiotu na kasę i położyć go w strefie pakowania; może go odrzucić, gdy nieznany jest kod przedmiotu, który ma zostać skasowany albo, gdy przedmiot jest uszkodzony; może także zważyć przedmiot przed nabiciem go na kasę. W zależności od przedmiotu, sprzedawca wykonuje określoną czynność. Procesor działa w analogiczny sposób. Algorytm jego działania jest następujący:

  1. Przeczytaj rozkaz, który masz wykonać.
  2. Wykonaj ten rozkaz.
  3. Przesuń się do kolejnego rozkazu.
  4. Idź do punktu 1.

Rozkazem dla procesora jest wykonanie odpowiedniej operacji. Są pogrupowane na:

  • rozkazy przesłań,
  • rozkazy arytmetyczne,
  • rozkazy logiczne,
  • rozkazy sterujące.

Każdy z rozkazów jest zakodowany wewnątrz procesora a producent dostarcza dokumentację pod jakim kodem widnieje konkretny rozkaz. Ten kod to po prostu jakaś wartość. Umieszczając konkretną wartość na liście rozkazów procesora- ten wykona dokładnie taką operację. Każdy rozkaz jest atomowy- jeżeli wydajemy rozkaz arytmetycznego dodawania to zostaną dodane do siebie dwie wartości o podstawowym rozmiarze pamięci. Operacja, podobnie jak algorytm, posiada swoje dane wejściowe (parametry, operandy). Tak więc aby poprawnie zlecić rozkaz procesorowi podajemy mu także wartości parametrów, które ma przetworzyć. W przypadku rozkazów arytmetycznych operandami będą wielkości, które chcemy dodać czy pomnożyć a z kolei dla rozkazów sterujących będzie to miejsce, do którego procesor ma skoczyć.

W praktyce

Komputer po uruchomieniu sprawdza swój stan za pomocą procedury POST, gdy układ sprawdzający poprawność komponentów nie zgłosi błędu, zostanie uruchomiony program BIOS, który zainicjalizuje listę rozkazów procesora a następnie wyposaży w procesor w szereg instrukcji, które ten ma wykonać. Te instrukcje rozpoczną rozruch systemu operacyjnego (z ang. "System booting") przy użyciu specjalnego programu rozruchowego- czyli umieszczeniu jego kopii z pamięci trwałej (dysk twardy, pamięć USB) do pamięci operacyjnej. Gdy to nastąpi, procesor zacznie zczytywać dane z pamięci operacyjnej. Te dane traktuje jako ciąg rozkazów wraz z ich operandami.

System operacyjny steruje pracą procesora w taki sposób aby możliwe było ładowanie do pamięci operacyjnej innych instrukcji- programów. System operacyjny umożliwia użytkownikowi interakcję z procesorem. Użytkownik ma możliwość uruchomienia dowolnego programu instrukcji, które procesor ma wykonać. Dodatkowo algorytm systemu operacyjnego monitoruje działanie programu, który został uruchomiony a także, co najbardziej ciekawe, pozwala na zaprzestanie wykonywania jednego algorytmu, przełączenie się do wykonania innego algorytmu, i tak w kółko. To co tutaj opisuję to “wielozadaniowość”. Gdy korzystasz z komputera masz wrażenie, że wykonuje on wiele programów jednocześnie. To tylko złudzenie. Coś jak oglądanie filmu. Film, to po prostu wiele obrazów wyświetlanych jeden po drugim z taką prędkością, że odnosimy wrażenie płynnego odtwarzania. Procesor wykonuje kawałek algorytmu, przełącza się do drugiego tak sprawnie i tak szybko, że odnosimy wrażenie, że wiele rzeczy jest wykonywanych w tym samym czasie. Pomyśl jakie masz odczucia, gdy nagle cały system operacyjny zwolni z powodu wadliwie działającego programu- wrażenia są takie, jakby wszystko wykonywało się po kolei, jedna akcja po drugiej. To tak naprawdę jego realne działanie.

Miejsce dla programisty

Zespół rozkazów procesora, które realizują konkretny algorytm to program. Za pomocą prymitywnych rozkazów możemy wykonywać operacje arytmetyczne i logiczne, możemy zapisywać i odczytywać wartości konkretnych komórek pamięci a także sterować wykonywaniem się programu za pomocą instrukcji skoku. Dzięki temu możemy realizować algorytmy, które posiadają atomowe instrukcje i operują na danych w najprostszej formie.

Teraz, aby móc zrealizować algorytm, który napisaliśmy na kartce, potrzebujemy narzędzia, które umożliwi nam takie zapisanie jego, aby można było go wykonać jako instrukcje procesora, który wprawi algorytm w ruch tak, jak woda napędza młyn.

Powiązane tematy

URL - adres internetowy

URL - adres internetowy

"W internecie jest wszystko." Do każdego zasobu jest tak samo daleko, wystarczy znać jego adres. Adres zasobu to ścieżka, która prowadzi dokładnie do tej rzeczy. W niej samej zakodowane jest sporo interesujących informacji. Czytaj całość

Sleep- zatrzymywanie programu na pewien czas

System operacyjny, który zarządza uruchomionymi programami, przydziela każdemu porcję czasu procesora, który wykorzystuje ją na wykonanie swojego algorytmu. Program nie może pracować cały czas, bez odpoczynku, jednak istnieje możliwość odłożenia jego pracy w czasie. Czytaj całość

Aplikacje hybrydowe

Aplikacje hybrydowe

Problem pojawia się, gdy programista zaznajomiony z konkretną platformą staje przed zadaniem napisania "tego samego" na inną platformę. Wtedy jego wiedza może się okazać co najmniej niewystarczająca, a niekiedy nawet może przeszkadzać w poznawaniu nowego. Czytaj całość


Piotr Poźniak

Piotr Poźniak

Programuję od ponad 15 lat. Prowadzę software house. Angażuję i zachęcam wszystkich do programowania w ramach inicjatywy Programowanie jest łatwe.

Bądź pierwszy, podziel się swoją opinią!

Obrazek przedstawiający nadgryzione ciasteczko