Základy programovania.


Obsah tém. 

  1. Úvodný - krátky hardwarový prehľad.
  2. Programovacie jazyky
  3. Algoritmy. 
  4. Nové pojmy
  5. Zdroje informácií
 

Úvodný krátky hardwarový prehľad.

    Nech už chceme čokoľvek robiť so softvérom počítača, tento musí vždy byť v súlade s hardvérom počítača. Preto každý programátor by mal mať základné vedomosti o tom ako počítač pracuje aby rozumel čo môže od počítača požadovať. 

Každý Počítačový Systém (PS) je zložený z dvoch častí - HARDWARE, ktorý predstavuje jeho materiálnu podstatu a je fyzicky hmatateľný a SOFTWARE, ktorý tento hardware riadi, ktorý je v počítačoch prezentovaný formou dátových záznamov na pamäťovom médiu. 

Čo je to vlastne počítač?

    Väčšina dnešných personálnych počítačov je Von NEUMANOVEJ koncepcie, t.j. sú to počítače, ktoré majú jedinú pracovnú pamäť t.j. Operačnú pamäť v ktorej uchovávajú ako programy tak aj údaje. V svojej podstate aj programy sú len údaje, ktoré informujú počítač aký pracovný algoritmus, resp. aký pracovný postup má vykonať aby dosiahol požadovaný cieľ práce.

 Operačná pamäť nazývaná aj pamäť s náhodným prístupom Random access memory (RAM) je sústava veľkého množstva pamäťových registrov rovnakej dĺžky t.j. rovnakého počtu bitov, ktoré sú všetky naraz paralelne napojené na jedinú Dátovú zbernicu, ktorú predstavujú vo svojej podstate len paralelné vodiče (obyčajné drôty).  Počet týchto vodičov určuje triedu počítača. Prvé mikropočítače použiteľné v domácnosti a na kancelárske práce mali datovú zbernicu 8 bitovú, preto sme hovorili o týchto počítačoch ako o 8 bitových počítačoch. Pred nimi existovali len veľké sálové počítače, ktoré mali 64 bitové dátové zbernice a málokto si vedel predstaviť že za jeden ľudský život sa stane počítač ľudovou záležitosťou.  Prvé personálne počítače typu IBM PC mali už 16 bitovú datovú zbernicu a ich výkon niekoľkonásobne prevýšil výkon 8 bitových počítačov. Do roku 2003 sa najviac rozšírili 32 bitové počítače a v tomto roku nastala historická udalosť - začali sa vyrábať prvé 64 bitové personálne počítače. 

V Operačnej pamäti pamätové bunky, správajúce sa ako sústava pamätových registrov pre uchovávanie binárnych slov, sú zoradené v presnom poradí tak, že každý z nich má svoje jedinečné poradové číslo. Aby sa údaje z "registra operačnej pamäti"  preniesli na dátovú zbernicu a naopak z dátovej zbernice do registra, musí register dostať príkaz a na to slúžia jeho tri riadiace signály.  

  1. Výberový adresný signál - ktorým sa aktivuje činnosť konkrétnej adresnej bunky zatiaľ čo ostatné bunky zostanú neaktívne
  2. a dva Riadiace signály, jeden určuje zápis W (WRITE- zapíš) do registra pamäti a jeden pre výpis údaja z registra pamäti R (READ-čítaj). Súčasne sú aktívne vždy len dva Adresný s Read alebo  Adresný s Write. Riadiace signály R a W riadia všetky "registre"-bunky operačnej pamäte naraz. Predstavujú dva fyzické drôty tzv. Riadiacej zbernice - ktorými procesor riadi externý zápis a externé čítanie paralelne u všetkých buniek pamäti naraz. V kombinácii s adresným však reaguje vždy len jediná bunka.  Ak by sme Výberový adresný signál, ktorý odomyká register pamätovej bunky, mali viesť pre každú pamäťovú bunku z procesora zvlášť,  potom počet ďaľších ovládacích dôtov by musel zodpovedať počtu buniek operačnej pamäti. Pri pamäti 1Mbyte (t.j. 1milióna byte ), by ich muselo byť celý milion samostatných drôtov! Z toho dovodu je to vo vnútri operačnej pamäti vytvorený dekodér adresy, ktorý má tieto vývody priamo integrované na pamäťovom čipe. Výber pamäťovej bunky je zariadený tak, že na vstup dekodéra sa privedie číslo vyjadrujúce poradové číslo bunky. Počet bitov potrebných na adresovanie teda zodpovedá kapacite pamäte. V procesori sa nachádzajú tzv adresné registre, ktoré obsahujú potrebný číselný údaj, ktorý predstavuje výberovú adresu. K pamäti sa privedie po tzv adresnej zbernici, ktorá spája vstup dekodéra pamäti s adresným registrom v procesori.  Počet vodičov adresnej zbernice môže byť 8, 16, 20, 24, 32, záleží na procesore. Dekodéry adries sú konštruované tak, že jedna adresa odomkne vždy len jedinú bunku operačnej pamäti, ktorá  podľa riadiacich signálo R a W údaj privedený po dátovej zbernici zapíše do bunky operačnej pamäte, alebo naopak vybere obsah bunky operačnej pamäte a privedie jej obsah po dátovej zbernici do niektoré ho z registrov v procesore.  

Tento princip - používajúci 3 zbernice dátovú, adresnú a riadiacu -  je základným principom riadenia všetkých procesov v počítači. Základom komunikácie rôzných prídavných zariadení je matičná doska, ktorá obsahuje spomenuté tri zbernice. Matičná doska obsahuje päticu do ktorej sa zaúva mikroprocesor, a cez ktorú sa napája na tieto tri zbernice. Cez ďalšie obvody tzv chipset sa napája procesor na Operačnú pamäť a sústavu konektorov ISA, PCI a AGP, na ktoré sú napojené prídavné zariadenia. 

Hlavným zariadením, ktorý riadi všetky procesy v počítači je procesor, ktorý obsahuje Register inštrukcií, Riadiacu jednotku, Generátor hodinových impulzov, Pracovné registre, a Aritmeticko logickú jednotku. Všetky tieto zariadenia procesora sú napojené na spoločnú datovú, adresnú a riadiacu zbernicu počítača na matičnej doske, cez ktorú riadi chod všetkých pripojených zariadení.  

    Ako je možné že všetky zariadenia sú napojené paralelne na tri zbernice a predsa sa dohovoria? To všetko je možné vďaka dodržiavaniu princípu, že na dátovej zbernici môžu jeden čas komunikovať len dve zariadenia medzi sebou. Tento princip zabezpečuje riadiaca zbernica riadená riadiacou jednotkou procesora. V jeden čas dve zariadenia sú nastavené tak, že jeden dáta posiela a druhý ich prijíma. Takto komunikuje procesor medzi svojimi pracovnými registrami, registre procesora s registrami pamäte, procesor s registrami prídavných zariadení (tlačiareň, myška, monitor, ...). 

Funkcia Aritmeticko logickej jednotky.

    Aritmeticko logická jednotka ako zariadenie vo svojej podstate predstavuje kombináciu pracovných registrov tzv. (AKUMULÁTORA a POMOCNÝCH REGISTROV) s kombinačnou logikou. Kombinančná logika zabezpečuje vykonávanie jednak operácií boolovej algebry a jednak realizáciu algebraickej sčítačky sčítavajúcej dve binárne čísla a jeden prenosový bit z nižšieho rádu pre každý bit AKUMULÁTORA. Akumulátor v procesore počítača predstavuje jeden z registtrov, ktorý jednak vysiela údaje do aritmeticko logickej jednotky, ale čo je hlavné, je registrom ktorý prijíma výsledky aritmeticko logickej jednotky. 

Logické operácie. 

Matematickou analýzou číslicovej logiky sa zaoberal v rokoch 1815-1864 anglický matematik Georg Boole. Jeho algebra narába s dvomi hodnotami 0 a 1, ktoré majú význam ako PRAVDA t.j TRUE a NEPRAVDA t.j. FALSE. Inak povedané aj svieti a nesvieti keď by sme pravidlo aplikovali na žiarovku, resp. tečie prúd alebo netečie ak by sme ho aplikovali na prúd vo vlákne žiarovky. Booleova algebra používa tri základné operácie AND, OR a NOT, na to aby pomocou nich vyjadrila všetky možné logické stavy ktoré môžu nsatať, či už v bežnom živote alebo v obvodoch počítača. 

AND - logický súčin, môžeme nahradiť výrokom "A SÚČASNE".  Logický súčin nadobudne pravdivostnú hodnotu pravda , keď platí že dva javy platia súčasne. 1*1=1. Aritmeticko logická jednotka vykonáva Logický súčin nad obsahmi dvoch registrov tak, že porovnáva pozíciu každého bitu samostatne. Logiacká operácia AND sa vykonáva súčasne s 8 bitmi 8 bitového počítača, resp. 16 bitmi 16 bitového počítača a t.ď. 

Príklad:  A = 0 1 0 1 1 0 0 1
              B = 0 1 1 0 1 0 1 0
logic  A*B = 0 1 0 0 1 0 0 0

OR - logický súčet, môžeme nahradiť výrokom "ALEBO". Logický súčet nadobudne pravdivú hodnotu ak z dvoch javov minimálne jeden platí. 1+0=0+1=1+1=1

Príklad:  A = 0 1 0 1 1 0 0 1
              B = 0 1 1 0 1 0 1 0
logic  A+B = 0 1 1 1 1 0 1 1

NOT - negácia, môžeme nahradiť výrokon "OPAK HODNOTY". Negácia mení stav pravdivý na nepravdivý a nepravdivý na pravdivý. Negovaná hodnota sa nazýva aj DOPLNOK. 

Príklad:  A=  0 1 0 1 1 0 0 1
            A\ = 1  0 1 0 0 1 1 0
 

XOR - Súčasťou inštrukčného súboru procesora je aj logická operácia  XOR t.j. EXCLUSIVE OR resp. NON EKVIVALENCIA. Operácia nadobúda pravdivý hodnotu ak porovnávame rôzne hodnoty. 1 * 0\  alebo  0\*1

Aritmetické operácie.

Všetky aritmetické operácie vykonávané aritmeticko logickou jednotkou sú postavené na základe operácie sčítania. Dokonca aj operácia odčítania. 

Príklad:  A= 1 1 1 1 1 1 1 0    254 d       A = 0 1 1 1 1 0 0 1       0(+)    1 1 1 1 0 0 1                                      121 d
             
B= 0 0 0 0 0 0 0 1    001 d       B = 0 1 1 0 1 0 1 0       1 (-)    0 0 1 0 1 1 0   <<< druhý doplnok    -106 d   
algb 
A+B = 1 1 1 1 1 1 1 1    255 d   A-B =                            1 0(+)    0 0 0 1 1 1 1                                       15 d

Ak sa rozhodneme, že jedno 8 bitové slovo je vždy len kladná hodnota 0 až 255, potom sčítanie nám dá vždy kladný vysledok, ale musíme si dať pozor, aby nedošlo k pretečeniu. Pri pretečení je súčet vyšší než sa dá zobraziť v 8 bitovom binárnom slove. Podstata pretečenia spočíva v tom, že pri sčítqaní nám vznikne prenos do vyššieho bitu ale počet bitov v registri nepostačuje na zobrazenie toho najvyyšieho bitu. Ten nam jednoducho vypadne von a stratíme ho. Ak chceme zobrazovať záporné čísla musíme urobiť sami so sebou dohodu: záporné čísla budeme zobrazovať v dátových slovách tak, že miesto znamienka využijeme najvyšší bit v zmysle 1 je - (mínus) 0 je + (plus). Týmto strácame najvyšší "hodnotový" bit (nakoľko sa zmenil na informáciu + -). Absolutná hodnota čísel v slovách sa nám tým zmenší na polovičku. 

Záporné čísla môžu byť ukladané v priamom kóde, t.j. kladnú hodnotu v bitoch 0-6 (t.j. 7 bitová informácia) doplníme o bit 1(t.j. znak -) v 7-mom  t.j. najvyššom bite 8 bitového slova (počítame od 0). Takto upravená hodnota však nie je použiteľná pre matematické úkony v procesore počítača. Toto je len "ludská" informácia. Skutočné záporné číslo sa vytvorí metódou "druhého doplnku" kladného čísla. Ten dostaneme tak, že kladnú hodnotu v binárnom slove celú logicky znegujeme a k takto upravenému číslu pripočítame 1. Druhý doplnok  je záporné číslo ktoré môžeme použiť pri operácii sčítania s kladným číslom, pričom výsledok je správné platné číslo. Pretečenie nenastane ak súčasne pri oprácii sčítania nastane prenos zo 6 bitu do 7 a zo 7 do 8 (počítame od 0) , alebo v týchto bitoch prenos  nebude vôbec - tento stav procesor detekuje automaticky a vieme ho ošetriť ako pretečenie signalizované v PSW (Program Status Word) registri.

Návrat na začiatok

Programovacie jazyky 

    Jazyk ktorému rozumie priamo počítač je strojový jazyk a je daný inštrukčným súborom konkrétneho typu procesora.  Inštrukcia v strojovom kóde predstavuje jedno a viac binárnych čísel, ktorých veľkosť každého je daná datovou zbernicou. Podľa toho koľko bitov má dátová zbernica poznáme počítače 8, 16, 32, 64 bitové a v budúcnosti to bude šete viac. 

Inštrukcie v strojovom kóde zaberajú minimálne jedno dátové slovo, ale môže aj viac. Každá inštrukcia sa skladá z Operačného kódu a Adresnej časti. Operačný kód predstavuje kódovaný príkaz, ktorý riadi riadiacu jednotku procesora. Toto je kód ktorý určuje ako sa daná inštrukcia bude vykonávať. Adresná časť inštrukcie je buď časť prvého slova kódu inštrukcie, ale ak je to viacslovná inštrukcia môžu adresnú časť tvoriť aj ďalšie slová inštrukcie. Podľa toho rozlišujeme jednoslovné, dvojslovné i trojslovné instrukcie, zvyčajne aj podľa potreby ak datové slovo je príliš krátke. 

V  počítačoch typu Von Neumana nie je rozdiel medzi uložením dát a programu, obe predstavujú kódy ukladané do tej istej RAM pamäte. Jednotlivé dátové objekty predstavujú konštrukcie ktoré môžu byť jedno a viac slovné, podľa ich typu. Niektoré číselné typy zaberajú jedno datové slovo, iné môžu aj viac. Čím sú kratšie tým rýchlejšie ich vie počítač spracovať. Takým príkladom sú celočíselné premenné typu Integer. Tieto môžu zaberať adresný priestor jednoho byte, ale môžu byť aj dvoj, alebo trojslovné. 

Návrat na začiatok

Algoritmy

    B  

Návrat na začiatok

Zdroje informácií

[1. ]

Návrat na začiatok.

Nové pojmy

CPU- Central procesor unit. - Centrálna procesorová jednotka spracúvava dáta, ktoré dostala z pamäti (RAM, HD, FDD, CD) a vstupných jednotiek podľa programu (softwaru) uloženého v RAM (Random access memory) pamäti t.j. pamäti s náhodným prístupom - inak aj pracovná pamäť počítača. 

RAM - Random access memory

HD- Hard disk

FDD- Floppy disk drive

CD - Compact disk

 

Návrat na začiatok.


Author Ing.  JANOUŠEK  Jaroslav.
Copyright © 2003   SPŠE - Košice.  All rights reserved.
Revised: február 04, 2004 .