Operačné
systémy a siete – stručný sylabus
Operačné systémy
-
Základné pojmy z počítačových systémov
-
Základné pojmy z operačných systémov
-
Procesy
-
Správa pamäti
-
Správa vstupu a výstupu
-
Súborový systém
Pojmy z operačných systémov ilustrovať
na OS Windows NT
Literatúra: W.Stallings: Operating Systems
Počítačové siete
-
Čo je to počítačová sieť
-
Hardvérové aspekty počítačových sietí
-
Softvérové aspekty počítačových sietí
-
Referenčný model ISO OSI a TCP/IP
-
Ako funguje Internet
-
Základné služby Internetu: elektronická
pošta a WWW
Literatúra: A.Tannenbaum: Computer Networks
Databázové systémy
-
Úvod do databáz
-
Relačný model
-
SQL
Časť 1 - Operačné systémy
Kapitola 1
Základné pojmy z počítačových systémov
Operačný systém využíva technické
prostriedky (hardvér - hardware)
tvoriace počítačový systém na poskytovanie služieb používateľovi systému.
Pred štúdiom operačných systémov je
potrebné rozumieť základným princípom fungovania hardvéru počítača.
Základné časti počítača
Pri najvšeobecnejšom pohľade
na počítačový systém je možné rozoznať dve základné zložky:
-
technické prostriedky (hardvér - hardware)
-
programové vybavenie (softvér - software)
Bežný používateľ počítača pracuje najmä
s tzv. aplikačnými programami ako sú:
-
programy na písanie textov (editory, textové procesory)
-
programy na tvorbu tabuliek (tabuľkové
procesory)
-
programy na posielanie elektronickej pošty
Príklady špeciálnejších aplikácií:
-
program pre evidenciu pracovníkov
-
program pre spracovanie študijnej agendy
Aplikačné programy pri svojom behu nevyužívajú
služby hardvéru priamo, ale pristupujú k nim prostredníctvom služieb poskytovaných
operačným systémom.
Základné časti počítača - pokračovanie
Hlavnými súčasťami počítača sú:
-
procesor
-
operačná pamäť
-
časti zabezpečujúce vstup resp. výstup
údajov (V/V moduly a V/V zariadenia)
Súčasti počítača sú vzájomne prepojené
tak, aby počítač bol schopný plniť svoju základnú úlohu - vykonávať program.
Na prepojenie súčastí sa používajú zbernice
(buses).
Počítač môže obsahovať aj viac modulov
daného typu (napríklad procesorov).
Základné časti počítača - pokračovanie
Procesor (processor): riadi
činnosť počítača a spracúvajú sa v ňom údaje (dáta).
Ak počítač obsahuje len jeden procesor,
tento sa zvykne tiež označovať skratkou CPU - Central Processing
Unit.
Operačná (hlavná, RAM) pamäť (main
memory, central memory): slúži na uloženie
údajov a programov. Jej obsah sa po vypnutí elektrického napájania stráca.
Vstupné/výstupné moduly (I/O modules):
zabezpečujú prenos údajov medzi počítačom a okolím. Pomocou nich sa k počítaču
pripájajú rôzne periférne zariadenia ako napríklad disky, terminály, tlačiarne,
klavesnice, sieťové komunikačné zariadenia a ďalšie.
Systémové prepojenia (system interconnections)
alebo tiež zbernice (buses):
slúžia pre prepojenie jednotlivých súčastí počítača.
Registre procesora
Registre (registers) sú pamäťové
bunky umiestnené obvykle v procesore.
Základné charakteristiky registrov:
-
oproti pamäťovým bunkám v operačnej pamäti
má k nim procesor rýchlejší prístup
-
vo všeobecnosti slúžia na uchovávavanie
údajov počas ich spracovávavania procesorom
-
kapacita registrov je podstatne menšia
ako kapacita operačnej pamäte
Registre procesora možno rozdeliť do dvoch
skupín:
-
registre prístupné používateľovi (user-visible
registers)
-
riadiace a stavové registre (control and status registers)
Deliaca čiara medzi týmito dvomi skupinami
nie je celkom ostrá.
Registre procesora – pokračovanie
Základné vlastnosti registrov prístupných
používateľovi:
-
možno k nim pristupovať z programov písaných
v strojovom kóde resp. asembleri, ako aj v niektorých vyšších jazykoch
(napríklad jazyk C)
-
ich vhodným využitím sa znižuje potreba
prístupu do pamäte, a tak sa zvyšuje efektívnosť vykonávania programu
-
inteligentné kompilátory vyšších programovacích
jazykov využívajú registre pre implementáciu niektorých premenných programu
Typy registrov obvykle prístupných používateľovi
sú:
-
dátové (data registers)
-
adresové (address registers)
-
podmienkové kódy (condition codes)
Registre procesora - pokračovanie
Dátové registre:
-
slúžia pre ukladanie údajov
-
môžu byť univerzálne alebo určené len pre
niektoré typy údajov, napríklad čísla v pohyblivej rádovej čiarke (floating-point)
-
môžu s nimi pracovať všetky inštrukcie
pre prácu s dátami alebo iba niektoré
Adresové registre:
-
obsahujú adresy pamäťových buniek v operačnej
pamäti
-
môžu však tiež obsahovať iba časť adresy,
ktorá sa použije na výpočet celej adresy
-
môžu byť univerzálne, alebo určené len
pre niektoré adresné spôsoby
Príklady jednoúčelových adresných registrov:
-
indexový register (index register)
-
smerník segmentu (segment pointer)
-
smerník zásobníka (stack pointer)
Registre procesora - pokračovanie
Indexový register (index register)
sa používa pri indexovom adresovaní. Adresa sa získa pripočítaním indexu
(obsiahnutého v indexovom registri) k nejakej základnej hodnote (base
value).
Smerník segmentu (segment pointer)
sa používa pri segmentovom spôsobe adresovania. Charakteristika tohoto
spôsobu adresovania:
-
pamäť je rozdelená na segmenty (bloky buniek
s premenlivou dĺžkou)
-
adresa pozostáva z odkazu na odpovedajúci segment a posunutia
v rámci segmentu, t.j. vzdialenosti od začiatku segmentu (offset)
-
registre sa používajú pre uloženie adresy
začiatku segmentu
-
môžu existovať rôzne registre pre operačný
systém a pre aplikácie
Smerník zásobníka (stack pointer). Ak
daný počítač umožňuje používateľovi adresovanie zásobníka (stack
addressing), potom je zásobník obvykle
v operačnej pamäti a jeden register je vyhradený na udržiavanie adresy
vrchu zásobníka. To umožňuje používanie inštrukcií neobsahujúcich adresovací
operand, ako sú napríklad PUSH a POP.
Registre procesora - pokračovanie
Podmienkové kódy (condition codes, flags) sú bity, ktoré
nastavuje procesor v závislosti od výsledku predchádzajúcej operácie.
Napríklad pri aritmetickej operácii
môže byť výsledok kladný, záporný, nula alebo môže prísť k pretečeniu.
Okrem toho, že sa výsledok uloží do
registra alebo pamäte, nastaví sa aj príslušný podmienkový kód. Tento sa
potom môže použiť v rámci operácie podmieneného vetvenia.
Podmienkové kódy sú obvykle súčasťou
niektorého resp. niektorých riadiacich registrov. Používateľovi sú obvykle
prístupné na čítanie. Nedajú sa však priamo meniť programom.
Registre procesora - pokračovanie
Viacero registrov sa využíva pre riadenie
práce procesora. Tieto obvykle nie sú prístupné používateľovi. Rôzne počítače
majú rôznu organizáciu registrov a používajú tiež rôznu terminológiu.
Pre proces vykonávania inštrukcií majú podstatný význam:
-
čítač inštrukcií (Program Counter
- PC) - obsahuje adresu inštrukcie, ktorá
má byť vyvolaná (vytiahnutá - fetched) z pamäte
-
inštrukčný register (Instruction
Register - IR) - obsahuje posledne vyvolanú inštrukciu
Všetky procesory obsahujú tiež register
alebo registre známe pod menom stavové slovo programu (Program
Status Word - PSW), ktoré obsahujú stavové informácie. Obvykle to sú:
-
podmienkové kódy
-
bit “povolenie/zákaz prerušenia”
-
bit “privilegovaný/používateľský režim”
Vykonávanie inštrukcií
Základnou funkciou počítača je vykonávanie
programu.
Program pozostáva z postupnosti inštrukcií
uložených v pamäti. Práca procesora spočíva vo vykonávaní týchto inštrukcií.
Spracovanie inštrukcie v najjednoduchšom prípade pozostáva z dvoch
krokov:
-
Procesor vyvolá (načíta - fetch)
inštrukciu z pamäte.
-
Procesor inštrukciu vykoná.
Spracovanie jednej inštrukcie sa označuje
ako inštrukčný cyklus (instruction cycle). Tento pozostáva
z vyvolávacieho cyklu (fetch cycle) a vykonávacieho cyklu (execute
cycle).
Na začiatku inštrukčného cyklu procesor
prečíta inštrukciu z pamäte. Adresu inštrukcie, ktorú má procesor načítať,
si berie vždy z registra PC. Obsah tohoto registra sa po načítaní inštrukcie
automaticky zvyšuje. To znamená, že ak počas spracovania inštrukcie nepríde
ku zmene obsahu registra PC, po spracovaní inštrukcie procesor načíta ďalšiu
inštrukciu v poradí.
Vykonávanie inštrukcií - pokračovanie
Inštrukcia prečítaná z pamäte sa ukladá
do inštrukčného registra (instruction register).
Inštrukcia obsahuje bity, ktoré určujú,
aké činnosti má procesor pri jej spracovávaní vykonať. Tieto činnosti možno
rozdeliť do 4 kategórií:
-
prenos údajov z pamäte do procesora a naopak
-
prenos údajov z periférneho zariadenia alebo na periférne zariadenie
prostredníctvom odpovedajúceho V/V modulu
-
vykonanie aritmetickej alebo logickej operácie s údajmi
-
zmena poradia vykonávania inštrukcií
Vykonanie inštrukcie môže v sebe zahŕňať
kombináciu viacerých z uvedených činností.
Vykonávanie inštrukcií - pokračovanie
Príklad: Uvažujme o hypotetickom procesore
s nasledujúcimi vlastnosťami:
-
má jeden dátový register nazývaný akumulátor (accumulator - AC)
-
jeho inštrukcie i dáta majú dĺžku 16 bitov
-
pamäť je organizovaná po slovách o dĺžke
16 bitov
-
prvé štyri bity v inštrukcii určujú kód
operácie (opcode). Zvyšných
12 bitov je vyhradených pre určenie adresy operandu.
Nech niektoré operačné kódy nášho procesora
majú nasledujúci tvar:
0001 = načítanie z pamäte do akumulátora
(load AC from memory)
0010 = uloženie obsahu akumulátora
do pamäte (store AC to memory)
0101 = pripočítanie hodnoty z pamäte
do akumulátora (add to AC from memory)
Vykonávanie inštrukcií - pokračovanie
Pre odľahčenie procesora je často vhodné,
aby výmena údajov medzi pamäťou a V/V zariadením nešla cez procesor, ale
priamo.
Pre realizáciu takejto výmeny existuje mechanizmus, pomocou ktorého
V/V modul získa právo tzv. priameho prístupu do pamäte (direct memory
access).
V/V modul potom realizuje čítanie resp.
zápis do pamäte bez zaangažovania procesora do tohoto prenosu, čím je procesor
odľahčený a môže plniť iné úlohy.
Prerušenia
Prakticky všetky počítače poskytujú
mechanizmus, pomocou ktorého rôzne moduly môžu prerušiť štandardný beh
procesora.
Prerušenie môže byť vyvolané:
-
bežiacim programom
-
časovačom (timer)
-
V/V modulom
-
môže vzniknúť aj ako dôsledok výskytu hardvérovej
chyby
Udalosti, ktoré generujú prerušenie v súvislosti
s bežiacim programom sú:
-
aritmetické pretečenie (overflow)
-
delenie nulou
-
pokus o vykonanie zakázanej inštrukcie
-
odkaz mimo prideleného pamäťového priestoru
Mechanizmus prerušenia umožňuje v prvom
rade zvýšiť efektívnosť práce počítača.
Prerušenia - pokračovanie
Proces spracovania prerušenia pozostáva z nasledujúcich krokov:
-
Zariadenie vyšle smerom k procesoru žiadosť
o prerušenie.
-
Procesor štandardne dokončí vykonávanie
aktuálnej inštrukcie.
-
Procesor po ukončení vykonávania aktuálnej
inštrukcie zistí, že niektoré zo zariadení vyslalo žiadosť o prerušenie.
Vyšle pre toto zariadenie signál, ktorým potvrdí zaregistrovanie žiadosti
(acknowledgement). Na základe
neho zariadenie stiahne signál žiadosti o prerušenie.
-
Pred odovzdaním riadenia do obslužného
programu prerušenia procesor odloží obsah registrov PSW a PC.
-
Procesor uloží do registra PC štartovaciu
adresu obslužného programu prerušenia.
Prerušenia - pokračovanie
Obslužný program prerušenia zabezpečí
vykonanie nasledujúcich krokov:
-
Odpamätá informácie charakterizujúce stav prerušeného programu.
-
Vykoná činnosti bezprostredne súvisiace
s obslúžením prerušenia. V rámci nich testuje stavové informácie vzťahujúce
sa k V/V operácii alebo inej udalosti, ktorá spôsobila prerušenie. V rámci
spracovania môže tiež poslať ďalšie príkazy pre V/V zariadenie.
-
Po ukončení činností súvisiacich s obslúžením
prerušenia obnoví pôvodný obsah registrov odpamätanými hodnotami.
-
Obnoví obsah registrov PSW a PC. Následkom
toho sa začne vykonávať pôvodný program.
Prerušenia - pokračovanie
V počítači môže naraz vzniknúť aj viacero
žiadostí o prerušenie, resp. žiadosť o prerušenie môže prísť počas behu
obslužného programu pre iné prerušenie.
Pre riešenie problému viacerých prerušení
sú možné dva prístupy:
-
sekvenčný prístup
-
prístup s použitím priorít
Aj pri použití mechanizmu prerušenia vznikajú
situácie, že procesor beží “naprázdno” a nie je teda efektívne využitý.
Prichádza k tomu vtedy, keď čas potrebný na vykonanie V/V operácie je väčší,
ako je čas potrebný na vykonanie kódu medzi dvomi volaniami V/V operácie.
Riešením tohoto problému je umožniť
viacerým používateľským programom byť aktívnymi naraz a odovzdávať riadenie
vždy tomu programu, ktorý je pripravený na vykonávanie. Takýto prístup
sa volá multiprogramovanie (multiprogramming).
Hierarchia pamätí
Pri návrhu pamäte počítača treba vyriešiť
3 otázky:
-
aká má byť jej kapacita
-
aká má byť rýchla
-
koľko bude stáť
Pre implementáciu pamäťového podsystému,
bez ohľadu na technológiu, platí:
-
čím je kratšia doba prístupu, tým je vyššia
cena na jeden bit
-
čím je vyššia kapacita, tým je nižšia cena
na jeden bit
-
čím je vyššia kapacita, tým je vyššia doba
prístupu
Dilema:
-
z hľadiska kapacity a ceny na jeden bit
je výhodná čo najväčšia pamäť
-
aby sa však dosiahla dostatočná výkonnosť,
musí sa použiť drahšiu a menšiu pamäť s krátkou dobou prístupu.
Hierarchia pamätí - pokračovanie
Východisko: využiť viacero pamäťových
komponentov postavených na rôznych technológiách.
Existujúce technológie vytvárajú nasledujúcu hierarchiu:
-
registre
-
cache
-
operačná pamäť
-
disková cache
-
disky
-
prenosné médiá
Pri prechode hierarchiou pamätí smerom
zhora nadol možno pozorovať, že:
-
klesá cena na jeden bit
-
stúpa kapacita
-
stúpa prístupová doba
-
klesá početnosť prístupu do pamäti procesorom
Hierarchia pamätí - pokračovanie
Praktická použiteľnosť takejto organizácie
je založená na rôznej frekvencii prístupu procesora k jednotlivým zložkám
pamäťového podsystému.
Rôzna frekvencia prístupu procesora vychádza z platnosti princípu
lokálnosti prístupov (locality of reference):
počas vykonávania programu majú prístupy
procesora k inštrukciám a údajom tendenciu vyskytovať sa v zhlukoch, teda
procesor pri práci s pamäťou obvykle “neskáče” z jedného konca pamäte na
druhý, ale pracuje len s jej istou časťou. Je to dané tým, že program obvykle
obsahuje cykly a podprogramy.
Pamäť cache je rýchla pamäť s menšou
kapacitou, ktorá zvyšuje rýchlosť prístupu procesora k údajom v pamäti.
Jej činnosť je založená na platnosti princípu lokálnosti prístupov.
Hierarchia pamätí - pokračovanie
Registre, cache pamäť a operačná pamäť
obvykle využívajú polovodičovú technológiu a sú volatilné (ich obsah sa
stráca po vypnutí napájania).
Trvalejšie uloženie údajov zabezpečujú
externé pamäťové zariadenia, z ktorých najdôležitejšie sú pevné disky (hard
disks). Používajú sa na ukladanie
programov a dátových súborov.
Patria sem tiež magnetické pásky a optické
disky. Tieto externé pamäťové zariadenia, ktoré nie sú volatilné, sa tiež
zvyknú nazývať sekundárnou (secondary) alebo pomocnou
(auxiliary) pamäťou.
Disky sa používajú tiež ako rozšírenie
operačnej pamäte známe pod menom virtuálna pamäť (virtual memory).
Disková cache je časť operačnej pamäte
používaná ako buffer pre dočasné uloženie údajov určených pre disk. Zvyšuje
výkonnosť systému.
Cache pamäť
Dôvod existencie cache pamäte: aby
procesor mohol vykonať inštrukciu, musí sa aspoň raz obrátiť na pamäť (na
jej načítanie). Rýchlosť vykonávania inštrukcií je teda jednoznačne limitovaná
časom potrebným na prístup do pamäte.
Pamäťové cykly sú vo všeobecnosti pomalšie
ako cykly procesora, pamäť teda “brzdí” procesor. Riešením tohoto problému
je malá rýchla pamäť nazývaná cache zaradená medzi procesor a operačnú
pamäť využívajúca princíp lokálnosti prístupov.
Pri konkrétnom návrhu cache treba vyriešiť
nasledujúce problémy:
-
kapacita cache
-
veľkosť bloku
-
tvar mapovacej funkcie a nahradzovacieho
algoritmus - tieto určujú akým spôsobom prebieha priraďovanie blokov v
cache blokom z operačnej pamäte
-
spôsob zapisovania zmien slov v cache do
operačnej pamäte
Techniky používané pri V/V operáciách
Pre realizáciu V/V operácií existujú 3 prístupy:
-
programové V/V operácie (programmed I/O),
-
V/V operácie riadené prerušením (interrupt-driven I/O),
-
V/V operácie realizované s využitím priameho
prístupu do pamäte (direct memory access - DMA).
Kapitola 2
Základné pojmy z operačných systémov
Táto kapitola sa zaoberá stručným popisom
histórie operačných systémov, na ktorej ilustrujeme aj základné pojmy a
princípy z tejto oblasti.
Ciele a funkcie operačného systému
Operačný systém je program, ktorý riadi
vykonávanie aplikačných programov a slúži ako rozhranie (interfejs – interface)
medzi používateľom počítača a hardvérom. Operačný systém má tri ciele:
-
Pohodlnosť: operačný systém umožňuje pohodlnejšie
používanie počítača
-
Efektívnosť: operačný systém zabezpečuje,
že počítačový systém bude využívaný efektívne
-
Schopnosť vývoja: operačný systém by mal
byť vybudovaný tak, aby umožňoval efektívnym spôsobom svoj
ďalší vývoj, testovanie a vytváranie nových funkcií
Na hardvérové a softvérové komponenty počítačového
systému pri práci používateľa s nejakou aplikáciou sa možno pozerať ako
na hierarchický systém pozostávajúci z viacerých vrstiev.
Ciele a funkcie operačného systému
- pokračovanie
Operačný systém štandardne ponúka služby
v nasledujúcich oblastiach:
-
vytváranie programov
-
vykonávanie programov
-
prístup k V/V zariadeniam
-
riadený prístup k súborom
-
prístup k systému
-
detekcia chýb a reakcia na ne
-
účtovanie
Ciele a funkcie operačného systému
- pokračovanie
Počítačový systém poskytuje:
-
prostriedky pre presun, uchovávanie a spracovanie údajov
-
prostriedky pre riadenie týchto funkcií
Operačný systém zodpovedá za riadenie týchto
prostriedkov.
Operačný systém ako kontrolný mechanizmus
má nasledujúce špecifiká:
-
je tiež realizovaný ako program, teda rovnako,
ako to, čo riadi,
-
často odovzdáva riadenie a pri jeho získavaní
späť je závislý od procesora.
Operačný systém sa počas svojej existencie
vyvíja. Dôvody:
-
vývoj a vznik nových typov hardveru
-
nové služby
-
oprava chýb - každý operačný systém má
chyby
Nutnosť zmien operačného systému kladie
vysoké nároky aj na jeho návrh.
Vývoj operačných systémov
Pre porozumenie problematiky súčasných
operačných systémov je užitočné oboznámiť sa s historickým vývojom v tejto
oblasti.
V doterajšej histórii počítačov možno
z hľadiska operačných systémov rozoznať 4 fázy:
-
sériové spracovanie
-
jednoduché systémy s dávkovým spracovávaním (batchové systémy - batch
systems)
-
multiprogramové batchové systémy
-
systémy so zdieľaním času (time
sharing systems)
Vývoj operačných systémov – sériové
spracovanie
V období prvých počítačov, teda od
konca 40-tych do polovice 50-tych rokov, programátori komunikovali priamo
s hardvérom. Žiadny operačný systém neexistoval.
Dva hlavné nedostatky týchto prvých
počítačových systémov:
-
Plánovanie (scheduling): strojový
čas sa objednával dopredu. Stávalo sa, že počítač bol nevyužitý, alebo
program neskončil v danom čase a musel byť prerušený.
-
Čas potrebný na prípravu behu programu
(setup time): Prípravné práce
pred vlastným spustením programu boli zdĺhavé a vyžadovali značné množstvo
času.
Takáto prevádzka počítača sa charakterizuje
ako sériové spracovávanie, lebo používatelia používali počítač postupne
jeden za druhým.
Vývoj operačných systémov – batchové
systémy
Pre zlepšenie využitia počítačov bol
v polovici 50-tych rokov vyvinutý operačný systém s dávkovým spracovávaním
(batchový operačný systém).
Charakteristické znaky batchových systémov:
-
používateľ už nemá priamy prístup k počítaču
– svoj program (job) odovzdáva na diernych štítkoch alebo diernej páske
operátorovi
-
operátor zoradí jednotlivé joby za sebou, urobí z nich dávku (batch)
a vloží ju do vstupného zariadenia
-
dávku spracuje špeciálny program s názvom
monitor, ktorého časť (resident monitor)
je trvalo uložená v operačnej pamäti
-
každý program je zostavený tak, že po ukončení
svojej činnosti odovzdá riadenie do monitora. Monitor následne začne s
načítavaním ďalšieho programu z batchu
Batchový systém rieši problém prestojov
počítačového systému, ktorý sa vyskytoval pri sériovom spracovávaní.
Vývoj operačných systémov – batchové
systémy - pokračovanie
Batchový operačný systém používal špeciálny programovací jazyk s
názvom job control language (JCL) umožňujúci
zadávať príkazy pre monitor.
Príklad jobu s programom vo FORTRANE
(príkazy začínajúce znakom $ sú určené
monitoru):
$JOB
$FTN
.
.
štítky s fortranovskými inštrukciami
.
$LOAD
$RUN
.
.
štítky s dátami, s ktorými má program pracovať
.
$END
JCL riešil aj problém zdĺhavej prípravy
behu programu (setup time).
Vývoj operačných systémov – batchové
systémy – pokračovanie
Pre dobré fungovanie batchových systémov boli potrebné nasledujúce
vlastnosti hardvéru:
-
ochrana pamäte (memory protection)
-
časovač (timer)
-
privilegované inštrukcie
-
prerušenia
Napriek tomu, že časť prostriedkov počítačového
systému je využívaná monitorom, priniesli batchové systémy zlepšenie využívania
počítačových systémov.
Vývoj operačných systémov – multiprogramové
batchové systémy
Aj pri jednoduchých batchových systémoch
procesor beží často naprázdno, lebo V/V operácie sú podstatne pomalšie
v porovnaní s procesorom.
Príklad:
Časová kalkulácia u programu, ktorý
načítava záznamy z disku, spracúva každý z nich s použitím približne 100
inštrukcií a potom ho znovu zapíše na disk:
Načítanie záznamu
0.0015 sekundy
Vykonanie 100 inštrukcií
0.0001 sekundy
Zápis záznamu
0.0015 sekundy
Celkový čas
0.0031 sekundy
Využitie procesora
0.0001/0.0031 = 3.2%
Riešenie: uložiť do operačnej pamäte
viac programov (jobov) (multiprogramming, multitasking)
a v čase, keď job čaká na ukončenie V/V operácie, prideliť procesor inému.
Vývoj operačných systémov – multiprogramové
batchové systémy – pokračovanie
Vlastnosti hardvéru potrebné pre dobré fungovanie multiprogramových
batchových systémov:
-
podpora prerušení od V/V zariadení
-
priamy prístup do pamäte (DMA)
Aby v pamäti mohlo byť pripravené na vykonávanie
viacero jobov, musí byť k dispozícii nejaká forma správy pamäte (memory
management).
Ak je na vykonávanie pripravených viacero
jobov, treba rozhodnúť, ktorý bude vybratý. Na to je potrebný nejaký plánovací
mechanizmus (scheduling).
Vývoj operačných systémov – systémy
so zdieľaním času
S použitím multiprogramovania sa efektívnosť batchových systémov
zvýšila. Vznikla však nová požiadavka: podpora interaktívnej práce používateľov.
Pre umožnenie interaktívnej práce na veľkých počítačoch boli vyvinuté
systémy so zdieľaním času (time sharing systems).
Charakteristika systémov so zdieľaním
času:
-
viacero používateľov komunikuje súčasne
so systémom prostredníctvom terminálov
-
čas procesora je rozdelený medzi jeho jednotlivých
používateľov
-
ak súčasne pracuje n
používateľov, každý vníma výkonnosť počítačového systému ako 1/n
jeho skutočnej výkonosti
Vývoj operačných systémov – systémy
so zdieľaním času – pokr.
Základné rozdiely medzi batchovým multiprogramovým
systémom a multiprogramovým systémom so zdieľaním času:
|
Batchový systém |
Systém so
zdieľaním času |
Základný
cieľ |
Maximalizovať
využitie procesora |
Minimalizovať
dobu odpovede systému |
Zdroj príkazov
pre operačný systém |
Inštrukcie jazyka JCL poskytnuté spolu s
jobom |
Príkazy zadávané z terminálu |
Vývoj operačných systémov – systémy
so zdieľaním času – pokr.
Charakteristika systému Compatible Time-Sharing System (CTSS) vyvinutého
na MIT v roku 1961 pre počítač IBM 709:
-
jeden z prvých systémov so zdieľaním času
-
bežal na počítači s operačnou pamäťou 32K 36-bitových slov
-
rezidentný monitor zaberal 5K
-
používateľský program mal k dispozícii
zvyšných 27K slov
-
systémový časovač generoval prerušenia
približne každú 0.2 sekundy
-
pri každom prerušení sa riadenie vracalo
operačnému systému a ten mohol prideliť procesor ďalšiemu používateľovi
-
kvôli zachovaniu stavu prerušeného programu
boli prerušený program a jeho dáta pred natiahnutím nového programu do
pamäte uložené na disk
-
pretože každý job bol vždy uložený od tej
istej adresy, nebola potrebná žiadna relokácia adries v čase ukladania
jobu do operačnej pamäte
-
systém podporoval súčasnú prácu až 32 používateľov
Vývoj operačných systémov – systémy
so zdieľaním času – pokr.
Systémy so zdieľaním času a multiprogramové
systémy priniesli so sebou nutnosť riešiť množstvo ďalších problémov. Napríklad:
-
problém vzájomnej ochrany programov v pamäti
-
problém regulácie prístupu k jednotlivým súborom
-
problém regulácie pri žiadostiach o súčasný
prístup k jednotlivým zariadeniam
Hlavné výsledky v oblasti OS
Operačné systémy patria medzi najzložitejšie
programy aké boli doteraz vytvorené.
Hlavné intelektuálne výsledky dosiahnuté pri ich vývoji sú:
-
Procesy (processes)
-
Správa pamäti (memory management)
-
Ochrana informácií a bezpečnosť (information
protection and security)
-
Plánovanie a správa prostriedkov (scheduling and resource management)
-
Štruktúra systému (system structure)
Každý z týchto výsledkov v sebe obsahuje
isté princípy alebo abstrakcie vyvinuté pre riešenie praktických problémov.
Týchto päť oblastí pokrýva všetky základné
problémy návrhu a implementácie moderných operačných systémov.
Hlavné výsledky v oblasti OS - procesy
Pojem procesu je základným pojmom z
hľadiska štruktúry operačných systémov.
Existuje viacero definícií pojmu proces. Napríklad:
-
vykonávaný program
-
"duch" programu
-
entita, ktorá môže byť prideľovaná a vykonávaná
na procesore
Na kryštalizovanie pojmu procesu mali vplyv 3 línie v histórii OS:
-
multiprogramové batchové systémy
-
systémy so zdieľaním času
-
transakčné systému pracujúce v reálnom
čase (real time transaction systems)
Základným nástrojom systémových programátorov
pri vývoji prvých multiprogramových a multiužívateľských operačných systémov
bolo prerušenie a s ním spojené odovzdávanie riadenia (prepínanie kontextov).
Hlavné výsledky v oblasti OS – procesy
- pokračovanie
Implementácia princípu odovzdávania riadenia je mimoriadne náročná
pre veľké množstvo možných kombinácií stavov.
Pri nesystematickom prístupe vznikali časté chyby. Hlavné príčiny:
-
nevhodná synchronizácia
-
zlyhanie vzájomného vylúčenia
-
nedeterministické chovanie programu
-
uviaznutia (deadlocks)
Riešenie: systematický spôsob monitorovania a riadenia vykonávania programov.
Základom takéhoto systematického prístupu je pojem procesu.
Proces je entita pozostávajúca z troch
zložiek:
-
vykonávateľného programu
-
dát potrebných na vykonávanie programu (premenných, pracovného priestoru,
buffrov a pod.)
-
vykonávacieho kontextu programu
Hlavné výsledky v oblasti OS – správa pamäte
Operačný systém musí v oblasti správy
pamäťových prostriedkov zabezpečiť nasledujúcich 5 úloh:
-
vzájomné izolovanie procesov
-
automatické prideľovanie pamäťových prostriedkov
a ich správa
-
podpora modulárneho programovania
-
ochrana a riadenie prístupu do pamäte
-
dlhodobé uchovávanie informácií
Operačný systém plní uvedené úlohy obvykle
prostredníctvom tzv. virtuálnej pamäte (virtual memory) a
súborového systému (file system).
Virtuálna pamäť je prostriedok, ktorý
umožňuje programu adresovať pamäť na logickej úrovni, bez ohľadu na kapacitu
operačnej pamäte, ktorá je v počítači v skutočnosti k dispozícii.
Dlhodobé uchovávanie údajov zabezpečuje
súborový systém. Informormácie sú v ňom uložené vo forme súborov (files).
Hlavné výsledky v oblasti OS – ochrana
informácií a bezpečnosť
V poslednom čase stúpa naliehavosť
riešenia problému ochrany informácií v počítačových systémoch.
Vo všeobecnosti treba riešiť problém
riadenia prístupu k počítačovému systému a problém prístupu k informáciám
v ňom uloženým.
Práce týkajúce sa bezpečnosti a ochrany
v oblasti operačných systémov možno rozdeliť do troch kategórií:
-
riadenie prístupu (access control)
-
riadenie toku informácií (information flow control)
-
certifikácia (certification)
Hlavné výsledky v oblasti OS – plánovanie (scheduling) a riadenie
prostriedkov (resource management)
Pri správe prostriedkov, ktoré má k
dispozícii, musí operačný systém dodržiavať 3 zásady:
-
spravodlivosť
-
diferencovaná citlivosť
-
efektívnosť
Hlavné výsledky v oblasti OS – štruktúra systému
Zložitosť operačných systémov v priebehu
histórie rýchlo narastala:
-
systém CTSS vyvinutý na MIT v roku 1963 mal okolo 32.000 36-bitových
inštrukcií
-
OS/360 vyvinutý v IBM o rok neskôr ich
už mal viac ako milión
-
systém MULTICS v roku 1975 už obsahoval
viac ako 20 miliónov inštrukcií
3 problémy dnešných operačných systémov:
-
oneskorovanie pri vývoji nových operačných
systémov, ako i pri vývoji nových verzií existujúcich operačných systémov
-
výskyt chýb, ktoré sa objavia až pri nasadení
operačného systému do rutinnej prevádzky a musia byť následne opravované
-
nižšia výkonnosť oproti očakávaniu
Pre zvládnutie problémov pri vývoji operačných
systémov vyplývajúcich z ich zložitosti sa pozornosť sústredila na štruktúru
operačných systémov.
Hlavné výsledky v oblasti OS – štruktúra
systému - pokračovanie
Zavedenie princípu vrstvovej architektúry.
Jeden možný teoretický model vrstvovej
architektúry:
Level Name
Objects
Example operations
13 Shell
User programming envir. Statements
12 User processes User
processes
Quit, kill, suspend
11 Directories
Directories
Create, destroy
10 Devices
External devices
Read, write
9 File system
Files
Open, close, read
8 Communications Pipes
Create, destroy
7 Virtual memory
Segments, pages Read, write
6 Local secondary store
Blocks of data Read, write
5 Primitive processes
Primitive processes Suspend, resume
4 Interrupts
Interrupt-handling prog. Invoke, mask
3 Procedures
Procedures, call stacks Mark stack, call
2 Instruction set
Eval. stack, microprogram Load, store
1 Electronic circuits Registers,
gates
Clear, transfer
Charakteristiky moderných operačných
systémov
Nové prvky v oblasti operačných systémov:
-
mikrokernelová architektúra (microkernel architecture)
-
vlákna (multithreading)
-
symetrický multiprocessing (symmetric multiprocessing - SMP)
-
distribuované operačné systémy (distributed
operating systems)
-
objektovo-orientovaný návrh (object-oriented design)
O symetrickom multiprocesingu hovoríme,
keď počítačový systém spĺňa nasledujúce podmienky:
-
obsahuje viacero procesorov
-
tieto procesory zdieľajú tú istú operačnú
pamäť a V/V zariadenia
-
všetky procesory môžu vykonávať rovnaké
funkcie
Prehľad operačného systému Windows NT
Windows NT je jednoužívateľský, multiprogramový
operačný systém určený pre osobné počítače a pracovné stanice.
Je jedným z mála súčasných komerčných
operačných systémov vyvinutých od základu. História :
-
vzdialeným predchodcom je operačný systém
MS-DOS vyvinutý firmou Microsoft pre osobné počítače firmy IBM
-
august 1981 DOS 1.0, 4.000 riadkov kódu
v asembleri, 8 KB operačnej pamäte, mikroprocesor Intel 8086.
-
v roku 1983 DOS 2.0, podpora pevného disku
(PC XT) a hierarchických adresárov, bohatšia množina príkazov integrovaných
do operačného systému, 24 KB operačnej pamäte
-
v roku 1984 DOS 3.0, mikroprocesor Intel
80286 (PC AT), DOS nevyužíval nové vlastnosti procesora, podpora pre novú
klávesnicu a diskové periférie, 36 KB operačnej pamäte
Prehľad operačného systému Windows
NT - pokračovanie
Na báze verzie 3 vzniklo niekoľko významných
upgradov operačného systému DOS:
-
v roku 1984 DOS 3.1, podpora pre pripojenie
počítača do siete
-
v roku 1987 DOS 3.3, podpora PS/2 s 32-bitovým
mikroprocesorom 80386, stále sa nevyužívajú nové vlastnosti mikroprocesorov,
46 KB operačnej pamäte
Procesory 80486 a Intel Pentium priniesli
vlastnosti, ktoré jednoduchý operačný systém DOS nebol schopný využiť.
Nový trend – grafické používateľské
rozhranie:
-
začiatok 80-tych rokov - Microsoft začal
s vývojom grafického používateľského rozhranie (graphical user
interface – GUI), ktoré malo byť umiestnené
medzi používateľa a operačný systém DOS
-
v roku 1990 Windows 3.0 nad operačným systémom
DOS
-
neúspešný spoločný pokus Microsoftu a IBM
o vývoj operačného systému novej generácie, ktorý by využíval vlastnosti
nových mikroprocesorov
Prehľad operačného systému Windows
NT - pokračovanie
Microsoft sa rozhodol pre samostatný
postup a vyvinul operačný systém Windows NT využívajúci potenciál súčasných
mikroprocesorov a poskytujúci plný multitasking v jednoužívateľskom prostredí:
-
v roku 1993 prvá verzia Windows NT (3.1),
rovnaké používateľské rozhranie ako Windows 3.1, úplne nový 32-bitový operačný
systém schopný podporovať aj staršie aplikácie určené pre DOS a
Windows
-
po niekoľkých verziách NT 3.x, verzia NT
4.0, v podstate rovnaká vnútorná architektúra ako 3.x, ale rovnaké používateľské
rozhranie ako Windows 95
-
v roku 1998 veľký upgrade NT 5.0, základná
architektúra systému rovnaká ako v NT 4.0, dôraz je na pridaní služieb
a funkcií podporujúcich ditribuované spracovávanie (distributed
processing).
Prehľad operačného systému Windows
NT - vlastnosti
Nová vlna v oblasti OS pre osobné počítače a pracovné stanice –
jednoužívateľské multiprogramové operačné systémy.
Dôvody:
-
používané aplikácie sa stali vzájomne previazanými
-
nárast počtu aplikácií typu klient/server
Exekutíva, environmentálne podsystémy i
aplikácie pracujú v režime klient/server. Výhody:
-
zjednodušuje exekutívu NT
-
zvyšuje spoľahlivosť
-
poskytuje prirodzený základ pre distribuované aplikácie
Prehľad operačného systému Windows NT
- vlastnosti
Dve dôležité charakteristiky systému Windows NT:
-
vlákna (threads)
-
symetrický multiprocesing (symmetric multiprocessing - SMP)
Dôsledky:
-
jednotlivé časti operačného systému môžu
bežať na hociktorom z procesorov, ktoré sú k dispozícii a rôzne časti operačného
systému môžu bežať naraz na rôznych procesoroch
-
NT podporuje používanie viacerých vlákien
v rámci jedného procesu, jednotlivé vlákna v rámci toho istého procesu
môžu bežať na rôznych procesoroch
-
serverovské procesy môžu použiť viaceré
vlákna na spracovanie požiadaviek od viacerých klientov naraz
-
NT poskytuje pohodlný mechanizmus pre zdieľanie
údajov a prostriedkov medzi procesmi a pružnú medziprocesovú komunikáciu
Prehľad operačného systému Windows
NT - vlastnosti
Windows NT podstatne využíva objektovo-orientovaný prístup, ktorý
je najmodernejším prostriedkom pre tvorbu softvérových systémov v súčasnosti.
Je založený na pojmoch objektu a triedy.
Objekt (object) je entita pozostávajúca z dát nazývaných atribúty
(attributes) objektu, ktoré ho charakterizujú a z funkcií nazývaných
metódy (methods), ktoré vie vykonávať.
Trieda charakterizuje skupinu podobných
objektov. Popis triedy pozostáva z toho, čo majú všetky objekty
danej skupiny rovnaké. Objekt vzniká z danej triedy doplnením konkrétnych
hodnôt jej atribútov.
Ako objekty sú v operačnom systéme Windows
NT reprezentované napríklad súbory, procesy, vlákna, okná. NT vytvára všetky
objekty jednotným spôsobom prostredníctvom object managera.
Objektovo-orientovaný prístup uľahčuje
zdieľanie prostriedkov a dát medzi procesmi a ochranu prostriedkov pre
neoprávneným prístupom.
Časť 2 - Počítačové siete
Počítačové siete
Počítačová sieť je systém prepojených počítačov umožňujúci ich vzájomnú
komunikáciu.
Trochu histórie
-
Dominujúcimi technológiami 20. storočia
sú technológie pre zber, spracovanie a distribúciu informácií.
-
Hlavní predstavitelia: telefón, rádio,
televízia, počítače, komunikačné satelity.
-
Všetky tieto oblasti ku koncu storočia
konvergujú – narastá schopnosť spracovávať informácie, ale rastú aj požiadavky.
-
Vývoj v oblasti počítačov išiel od malého
počtu centralizovaných systémov ku veľkému počtu systémov rôzneho druhu
spojených do počítačových sietí.
-
Počítačová sieť je systém navzájom prepojených
autonómnych počítačov.
-
Prepojenie počítačov môže byť realizované
pomocou rôznych médií.
Použitie počítačových sietí
Počítačové siete umožňujú:
-
zdieľanie prostriedkov (resource sharing)
-
zvýšenie spoľahlivosti (reliability)
-
úsporu nákladov na počítačové vybavenie
-
rozširovateľnosť (škálovanie výkonu
– scalability)
-
nové spôsoby komunikácie
Prínosy počítačových sietí pre bežných
ľudí:
-
umožnenie prístupu k vzdialeným
informáciám
-
umožnenie interpersonálnej komunikácie
-
interaktívna zábava
Počítačové siete priniesli aj množstvo
nových sociálnych, etických a politických problémov.
Hardvérové aspekty počítačových
sietí
Počítačové siete možno klasifikovať z viacerých hľadísk.
Podľa prenosovej technológie (transmission
technology) rozoznávame:
-
počítačové siete so spoločným komunikačným
kanálom (broadcast networks)
-
počítačové siete typu bod - bod (point-to-point
networks)
Broadcasting je taký režim práce
počítačovej siete, pri ktorom sa nejaká správa posiela všetkým počítačom
pripojeným do danej siete.
Pri multicastingu sa správa
posiela nejakej vybranej skupine počítačov pripojených do siete.
Podľa rozsahu delíme počítačové siete
na:
-
lokálne (local area networks – LAN)
-
rozsiahle (wide area networks – WAN)
-
metropolitné (metropolitan area networks – MAN)
Na každý z týchto typov sietí sa viažu
špecifické technológie.
Hardvérové aspekty počítačových
sietí – pokračovanie
Charakteristické znaky lokálnych počítačových
sietí (LAN):
-
pokrývajú priestor jednej, prípadne niekoľkých
budov
-
majú obvykle jedného správcu a tiež jedného
majiteľa
-
sú obvykle typu broadcast
-
štandardné prenosové rýchlosti sú 10 Mb/s
– 100 Mb/s (155 Mb/s pri použití technológie ATM)
Charakteristické znaky rozsiahlych počítačových
sietí (WAN):
-
môžu pokrývať geograficky rozsiahle oblasti
-
obvykle majú viacero správcov a nemajú
jedného majiteľa
-
štandardne sú typu bod – bod
-
používané prenosové rýchlosti sú v intervale
od desiatok Kb/s po desiatky Mb/s
U rozsiahlych počítačových sietí je komunikácia
používateľských počítačov (hosts, end-systems) realizovaná
prostredníctvom vzájomne prepojených prepájacích uzlov (switching nodes),
ktoré sa nazývajú routre (routers).
Hardvérové aspekty počítačových sietí
- pokračovanie
Metropolitné siete pokrývajú obvykle
časť alebo celé mesto a pozostávajú z rýchlej kostry (backbone),
na ktorú sa pripájajú jednotlivé lokálne siete.
Siete sa zvyknú klasifikovať aj podľa
topológie. Topológia siete odráža geometrickú štruktúru prepojení
uzlov siete. Typické topológie sú:
-
zbernica (bus)
-
kruh (ring)
-
hviezda (star)
-
strom (tree)
V posledných rokoch sa čoraz častejšie
používajú v oblasti počítačových sietí bezdrôtové (wireless)
spojenia.
Pre skupinu navzájom prepojených počítačových
sietí sa používa i názov internet.
Slovo Internet s veľkým "I" sa používa
na označenie jedného špeciálneho celosvetového systému navzájom prepojených
počítačových sietí.
Softvérové aspekty počítačových
sietí
Aby počítačová sieť fungovala, je potrebné
vyriešiť viacero problémov, ktoré sa pri jej prevádzke môžu vyskytnúť.
Ide o nasledujúce okruhy problémov:
-
identifikácia počítačov zapojených v sieti
(adresovanie – addressing)
-
režim prenosu údajov (simplexný, poloduplexný,
duplexný – simplex, half – duplex, full – duplex)
-
zoraďovanie správ (sequencing)
-
problém rýchleho vysielača a pomalého prijímateľa
-
problém dĺžky správ
-
problém efektívneho prenosu krátkych správ
-
multiplexovanie a demultiplexovanie
-
routovanie (routing)
Vyriešenie väčšiny z uvedených problémov
je úlohou sieťového softvéru.
Softvérové aspekty počítačových sietí
– vrstvová architektúra
Pre zníženie zložitosti problému sa
pri tvorbe sieťového softvéru používa vrstvová (layered) architektúra.
Princípy vrstvovej architektúry:
-
Sieťový softvér v jednotlivých uzloch počítačovej
siete je vybudovaný ako sústava na seba naukladaných vrstiev.
-
Každá vrstva má za úlohu riešiť istú skupinu
problémov spojených s fungovaním počítačovej siete. Pri plnení tejto úlohy
môže využívať služby pod ňou ležiacej vrstvy a poskytuje svoje služby vrstve
nad sebou. Medzi susediacimi vrstvami sa nachádza rozhranie (interface),
ktoré definuje služby poskytované nižšou vrstvou vyššej vrstve.
-
Vzájomná komunikácia počítačov v sieti
sa realizuje prostredníctvom komunikácie odpovedajúcich si vrstiev sieťového
softvéru. Teda vrstva n na jednom
počítači komunikuje s rovnakou vrstvou n
na druhom počítači. Pravidlá, podľa ktorých táto komunikácia prebieha,
sa nazývajú protokolom vrstvy n (layer n protocol).
Softvérové aspekty počítačových sietí
– vrstvová architektúra – pokr.
-
Dáta sa medzi odpovedajúcimi vrstvami na
rôznych počítačoch neprenášajú priamo. Vrstva dostane dáta, ktoré treba
preniesť, od vrstvy nad sebou. Pridá k nim svoje riadiace informácie a
odovzdá ich vrstve pod sebou s požiadavkou na ich prenos. Takýmto spôsobom
postupujú dáta z najvyššej vrstvy až po vrstvu 1, pod ktorou je už fyzické
médium. Vrstva 1 zabezpečí prenos dát do susedného počítača.
-
Keď sa dáta dostanú do cieľového počítača,
postupujú systémom vrstiev smerom nahor. Každá vrstva pritom z nich použije
a následne odoberie riadiace informácie, ktoré pridala odpovedajúca vrstva
na vysielajúcom počítači. Do najvyššej vrstvy sa takto dostanú dáta, ktoré
poslala najvyššia vrstva na vysielajúcom počítači.
Množina vrstiev a protokolov sa nazýva
sieťovou architektúrou (network architecture).
V súčasnosti sa vo svete používa viacero typov sieťových architektúr.
Softvérové aspekty počítačových
sietí – vrstvová architektúra – pokr.
Služby, ktoré daná vrstva poskytuje
vyššej vrstve možno rozdeliť na:
-
služby s nadviazaním spojenia (connection-oriented
services)
-
služby bez nadviazania spojenia (connectionless
services)
Podľa kvality možno rozdeliť služby na:
-
spoľahlivé (reliable)
-
nespoľahlivé (unreliable)
Softvérové aspekty počítačových
sietí – referenčný model OSI
Referenčný model OSI (Open Systems Interconnection Reference
Model) vytvorený medzinárodnou organizáciou pre štandardizáciu ISO
(International Standards Organization) bol
pokusom o štandardizáciu v oblasti sieťových architektúr.
Referenčný model OSI nedefinuje sieťovú
architektúru, definuje iba počet a úlohy jednotlivých jej vrstiev.
Referenčný model OSI obsahuje nasledujúcich
7 vrstiev:
-
fyzická (physical)
-
linková (data link)
-
sieťová (network)
-
transportná (transport)
-
relačná (session)
-
prezentačná (presentation)
-
aplikačná (application)
Model OSI má dnes najmä metodologický význam.
Softvérové aspekty počítačových sietí
– referenčný model TCP/IP
Referenčný model TCP/IP je základom siete Internet. Vznikol v rámci
projektu ARPANET.
Názov modelu pochádza od dvoch najvýznamnejších
protokolov odpovedajúcej sieťovej architektúry: TCP (Transmission
Control Protocol) a IP (Internet Protocol).
Referenčný model TCP/IP má 4 vrstvy:
-
host-to-network layer
-
internet layer
-
transport layer
-
application layer
Referenčný model TCP/IP a jemu odpovedajúca
sieťová architektúra má veľký praktický význam a je dnes de facto
štandardom.
Ako funguje Internet
1. Čo je to Internet
Najjednoduchšia definícia: Internet je rýchlo sa rozširujúca
celosvetová počítačová sieť.
Podrobnejšia definícia: Internet je sústava navzájom poprepájaných
nezávislých počítačových sietí, ktoré sú spravované rôznymi organizáciami
a vedia spolu komunikovať.
Aby počítačové siete mohli medzi sebou
komunikovať, musia byť splnené nasledujúce
podmienky:
-
siete musia byť fyzicky prepojené
-
musí existovať dohoda o spôsobe a pravidlách
komunikácie
V prípade Internetu je zjednocujúcim prvkom systém dohôd nazývaných
protokolmi súhrnne označovaný názvom TCP/IP.
Rozvoj a popularita Internetu vychádza
zo skutočnosti, že poskytuje svojim používateľom veľmi zaujímavé a užitočné
služby. Medzi základné služby Internetu patrí elektronická pošta a World
Wide Web
Pripojenie organizácií i jednotlivcov
na Internet zabezpečujú poskytovatelia internetovských služieb, tzv. internetovskí
provideri.
Ako vznikol Internet
-
Internet nevznikol zo dňa na deň, Internet
sa postupne vynoril.
-
Prvým impulzom bolo rozhodnutie amerického
Ministerstva obrany v polovici 60-tych rokov o vybudovaní riadiacej siete,
ktorá by mala väčšiu šancu prežiť nukleárnu vojnu ako klasická telefónna
sieť. V dôsledku tohoto rozhodnutia vznikla v decembri 1968 sieť ARPANET.
-
V roku 1974 bol vyvinutý sieťový model
TCP/IP. Oficiálnym modelom pre ARPANET sa stal 1.1.1983.
-
Za počiatok dnešného Internetu sa pokladá
vznik siete NSFNET v roku 1987.
-
Miliónty počítač bol do Internetu pripojený
v roku 1992, v januári 1997 bolo v Internete 16.1 milióna počítačov v 70000
sieťach v 194 krajinách.
Kto riadi Internet
Internet je zložitý samoorganizujúci
sa systém ovplyvňovaný trhovým mechanizmom,
vládnymi agentúrami, obchodom, asociáciami a rôznymi prideľovacími
organizáciami a organizáciami na tvorbu štandardov (Communications
of ACM, August 1997).
Významnou autoritou v Internete je Internet Society, v rámci ktorej
funguje Internet Architecture Board.
Dokumenty o rôznych aspektoch prevádzky Internetu sa volajú RFC (Requests
for Comments).
V Európe koordinuje aktivity internetovských providerov organizácia
RIPE.
Kto platí Internet
Základné pravidlo: Každý platí za svoju
časť. Používatelia platia svojim providerom
a tí zasa svojim providerom.
Okrem platieb za internetovské služby
treba platiť aj za linky používané
pri komunikácii.
Niektorí používatelia žijú v presvedčení,
že Internet je zadarmo. Nie je to však
tak, iba majú šťastie, že za nich platí niekto iný.
2. Ako funguje Internet
Existujú dva základné druhy komunikačných
systémov:
-
Systémy založené na prepínaní okruhov
(circuit switched networks). Príkladom je
telefónna sieť.
-
Systémy založené na prepínaní paketov
(packet switched networks). Príkladom je klasická pošta.
Internet patrí medzi systémy s prepínaním paketov.
Protokol IP
Komunikáciu medzi počítačmi spojenými
v Internete zabezpečujú linky rôznych
druhov a špecializované počítače nazývané routre.
Údaje posielané prostredníctvom Internetu sú rozdelené na časti
nazývané IP pakety. Dlžka IP paketu
nepresahuje obyčajne 1500 znakov resp.
bajtov.
Posielanie údajov v Internete má svoje pravidlá. Pre ucelené skupiny
takýchto pravidiel sa používa názov protokol.
Adresovanie v Internete a starostlivosť
o doručenie paketov na určenú adresu
má na starosti systém pravidiel nazývaný protokol IP (Internet Protocol)
Internetovská adresa pozostáva zo 4
čísiel menších ako 256. Príklad: 128.100.8.53
Štruktúra internetovskej adresy odráža
štruktúru Internetu ako siete sietí.
Každá sieť pripojená do Internetu má svoje číslo, ktoré
tvorí ľavú časť adresy počítača pripojeného do danej siete.
Pravá časť adresy je číslom počítača v rámci danej siete.
Príklad: v adrese 128.100.8.53 je 128.100 číslom siete a
8.53 číslom počítača v tejto sieti.
Routre v sieti Internet sa zaujímajú
pri doručovaní paketu len o časť adresy
odpovedajúcej číslu siete. Číslo počítača využíva
až posledný router priamo pripojený k sieti, pre ktorú sú
údaje určené. Ten zabezpečí doručenie údajov konkrétnemu
počítaču.
Protokol IP je základom fungovania siete
Internet. Keď sieť dostane údaje vo
forme IP paketu, nepotrebuje žiadne ďalšie údaje
na jeho doručenie na určenú adresu (táto adresa je súčasťou
IP paketu).
Pre praktické využitie tejto základnej
služby siete treba však vyriešiť niekoľko
problémov:
-
doručovanie správ dlhších ako je maximálna
povolená dĺžka IP paketu,
-
vyriešenie problému stratených IP paketov,
-
vyriešenie problému možnej zmeny poradia
IP paketov pri ich prechode cez sieť.
Tieto problémy už nerieši protokol IP,
sú riešené pravidlami patriacimi do vyššej vrstvy súhrnne nazývanými
protokolom TCP (Transmission Control Protocol).
Protokol TCP
Protokol TCP preberie správu, ktorú
treba poslať a rozdelí ju na menšie
časti, ktoré sa už zmestia do IP paketov
a tieto časti očísluje. Jednotlivé časti vloží
do “obálok”, na ktoré napíše ich poradové čísla a odovzdá ich IP
protokolu spolu s adresou, na ktorú sa majú
dopraviť.
IP protokol doručí paket na určenú adresu
a odovzdá ho protokolu TCP na prijímajúcej strane. Ten z
poradového čísla na obálke zistí, či dostal všetky časti
pôvodnej správy a aké má byť ich poradie.
Používateľ protokolu TCP má dojem,
ako keby medzi odosielateľom a prijímateľom
bola vytvorená stála linka.
Každé spojenie vytvorené protokolom
TCP sa pripája k danému počítačovému
systému prostredníctvom jedného zo softvérovo definovaných prípojných
bodov, tzv. portov. To umožňuje adresovať
dáta nielen istému počítaču, ale aj
konkrétnejšie niektorému z procesov, ktoré
v ňom bežia. Napríklad dáta elektronickej pošty, ktoré sa prenášajú
pomocou TCP spojenia, sa prenášajú štandardne
na port 25 prijímajúceho počítača.
Systém DNS
Číselná podoba internetovskej adresy
nie je vhodná pre bežného používateľa.
Preto sa okrem číselných adries používajú
v Internete pre označovanie počítačov
aj symbolické mená.
Problémy, ktoré treba vyriešiť pri zavedení
symbolických mien:
-
jednoznačnosť mien,
-
transformáciu mien na číselné adresy.
Riešenie týchto problémov zabezpečuje systém
DNS (Domain Name System).
Fungovanie systému DNS je založené na
rozdelení počítačov zapojených v Internete
do menších skupín, tzv. domén, vytvárajúcich stromovú štruktúru.
Na najvyššej úrovni sú domény dvoch druhov:
-
generické - com, edu, gov, mil, org, ...
-
odpovedajúce jednotlivým krajinám - sk, cz, fr, ...
Za každú doménu je niekto zodpovedný a
len on má kompetenciu organizovať systém
subdomén jemu zverenej domény.
Úplne meno domény vznikne zreťazením
mena tejto domény s menami domén po ceste od tejto domény smerom
nahor, pričom jednotlivé mená domén sú oddelené
bodkami. Príklad: fmph.uniba.sk
Správca domény môže prideliť, s využitím
mena svojej domény, mená konkrétnym
počítačom, ktoré chce do nej zaradiť.
Príklad: center.fmph.uniba.sk
Prevod mien počítačov pridelených im
v rámci systému DNS na ich číselné
adresy zabezpečuje systém name serverov. Správca domény po pridelení
symbolického mena počítaču zavedie
odpovedajúcu informáciu do príslušného name servera.
Žiadny z name serverov neobsahuje zoznam
mien všetkých počítačov v Internete,
jednotlivé name servery však medzi sebou spolupracujú a tak je zaistené
zistenie adresy odpovedajúcej menu ľubovoľného
počítača v Internete.
Niekoľko ďalších poznámok k DNS:
-
Z mena počítača sa nedá s istotou určiť
geografická oblasť, kde sa počítač nachádza.
-
Meno počítača nehovorí, do ktorej siete
je počítač zapojený.
-
Počítač môže mať aj viac mien. Mená sa
často počítaču prideľujú v súvislosti so službami, ktoré poskytuje. Napríklad
počítač cyril.fmph.uniba.sk má aj meno www.uniba.sk
-
Ak príde k presunu počítača do inej siete,
musí sa zmeniť jeho adresa, meno však môže ostať.
Vrstvový model siete Internet
Sieťový softvér sa buduje ako štrukturovaný.
Je organizovaný ako systém na sebe
ležiacich vrstiev.
Komunikácia v sieti prebieha tak, že
medzi sebou komunikujú odpovedajúce si vrstvy na jednotlivých počítačoch.
Výmena informácií medzi odpovedajúcimi si vrstvami zahŕňa
jednak servisné údaje predpísané príslušným protokolom a jednak
údaje, ktoré vrstva dostala za úlohu preniesť.
Existujú rôzne vrstvové modely počítačových
sietí. Štandardizovaný ISO model má 7 vrstiev, v sieti Internet
sa používa model TCP/IP so 4 vrstvami.
Úlohy jednotlivých vrstiev v modeli TCP/IP:
-
Vrstva 1: Host-to-Network - zabezpečuje
doručovanie IP paketov zo siete do vrstvy Internet a naopak.
-
Vrstva 2: Internet - jej úlohou je doručovanie
paketov na zadanú adresu. Hlavným protokolom tejto vrstvy je protokol IP.
-
Vrstva 3: Transport - jej úlohou je vytvoriť
pre ľubovoľné dva počítače v sieti možnosť priamej komunikácie. Hlavné
protokoly sú TCP a UDP.
-
Vrstva 4: Application - poskytuje služby
bezprostredne využívané používateľmi siete. Hlavné protokoly sú DNS, TELNET,
FTP, SMTP, HTTP a ďalšie.
Základné služby Internetu
Elektronická pošta
-
Elektronická pošta (electronic mail, e-mail)
predstavuje prakticky najvýznamnejšiu službu počítačových sietí.
-
Je to analógia bežnej pošty: umožňuje výmenu
správ medzi používateľmi počítačovej siete.
Základné pojmy
-
správa (message)
-
analógia štandardného listu
-
obvykle textový dokument
-
pozostáva z hlavičky a tela správy
-
poštová schránka (mailbox)
-
miesto, kam sa ukladajú správy, ktoré používateľ
dostáva
-
adresa (address)
-
spojená s poštovou schránkou
-
tvar: používateľ@počítač
-
príklady: novak@center.fmph.uniba.sk Jan.Novak@eis.com
Všeobecná architektúra
-
Používateľský agent (User Agent - UA)
-
Agent na prenos správ (Message Transfer Agent - MTA)
-
Sklad správ (Message Store - MS)
Práca v režime emulácie terminálu
-
používateľ má jednu pracovnú stanicu spojenú
so serverom poskytovateľa pripojenia do Internetu
-
na serveri poskytovateľa má k dispozícii
jedno alebo viacero kont, s ktorými pracuje v režime emulácie terminálu:
všetky programy, ktoré spúšťa, bežia v skutočnosti na serveri
Práca na pracovnej stanici s priamym pripojením do Internetu
-
používateľ má jednu pracovnú stanicu spojenú
so serverom poskytovateľa pripojenia do Internetu
-
so zvyškom siete môže komunikovať protokolmi
TCP/IP, a tak môže na prácu s Internetom používať programy bežiace priamo
na svojej pracovnej stanici
Práca v lokálnej sieti, resp. na serveri
používateľa
Prenos správ v sieti Internet - SMTP
SMTP (Simple Mail Transfer Protocol)
je prostriedok na doručovanie správ medzi MTA (prípadne medzi UA a prvým
MTA)
definovaný v dokumente RFC 821
Príklad komunikácie: správa od novak@fmph.uniba.sk pre kovac@pascal.fmph.uniba.sk
220 pascal MX V4.2 VAX SMTP server ready at Wed, 27 Aug 1997 19:43:36
HELO center.fmph.uniba.sk
250 Hello, center.fmph.uniba.sk
MAIL FROM:<novak@fmph.uniba.sk>
250 MAIL command accepted.
RCPT TO:<kovac@pascal.fmph.uniba.sk>
250 Recipient okay (at least in form)
DATA
354 Start mail input; end with <crlf>.<crlf>
Date: Wed, 27 Aug 1997 19:43:15 MET
From: Jan Novak <novak@fmph.uniba.sk>
To: kovac@pascal.fmph.uniba.sk
Subject: Skuska
Ahoj,
ako sa mas ?
Jano
.
250 Message received and queued.
QUIT
221 pascal Service closing transmission channel
Ďalšie spôsoby prenosu správ
-
UUCP (Unix-to-Unix Copy)
-
starší spôsob prenosu správ, vhodný najmä v prípade spojenia komutovanou
telefónnou linkou
-
POP3 (Post Office Protocol 3)
-
IMAP (Internet Mail Access Protocol)
-
protokoly, ktorými UA pristupujú k poštovým schránkam (MS)
Prenos binárnych údajov
-
Protokolom SMTP možno posielať len správy
obsahujúce 7-bitové údaje organizované ako text (s obmedzením dĺžky riadku
1000 znakov).
-
Požiadavky na systém elektronickej pošty
sú dnes podstatne väčšie: diakritika, iné ako textové dokumenty: obrázky,
programy, tabuľky, databázy.
-
Napriek tomu, že boli navrhnuté rozšírenia
SMTP, existujúce implementácie SMTP sú problémom.
-
Riešenie: pred odoslaním zakódovať binárne
údaje do textového tvaru využívajúceho len 7-bitov a po prijatí ich dekódovať
naspäť.
uuencode / uudecode
-
historicky starší spôsob
-
priamočiara realizácia uvedeného princípu
-
princíp: pri kódovaní sa vždy 6 bitov vstupného
súboru zakóduje do jedného znaku výstupného, pri dekódovaní naopak
-
k dispozícii prakticky pre všetky systémy,
aj keď môže vyžadovať ručné spustenie
-
základný nedostatok: kódovanie pomocou uuencode neposkytuje informáciu
o druhu a formáte prenášaných údajov
Multipurpose Internet Mail Extensions (MIME)
-
poskytuje informáciu o type prenášaných údajov, napríklad:
-
text/plain
-
text/html
-
image/gif
-
audio/basic
-
application/msexcel
-
rôzne spôsoby kódovania informácie
-
BASE64 (princíp podobný uuencode)
-
Quoted Printable (kóduje len „nevyhovujúce“ znaky)
-
bez kódovania
Bezpečnosť
Z pohľadu bezpečnosti sa dajú správy
prirovnať ku korešpondenčným
lístkom písaným na písacom stroji:
-
nemám istotu, že správa, ktorú som dostal,
bola skutočne odoslaná tým človekom, ktorý je uvedený ako odosielateľ a
že nebola zmenená,
-
správu si mohol po ceste niekto prečítať.
Riešenie: využitie možností kryptografie,
vhodné je šifrovanie s verejným
kľúčom (napríklad program PGP)
World Wide Web
WWW je systém, ktorý umožňuje
jednoduchým spôsobom pristupovať
k hypertextovým a multimediálnym dokumentom uloženým na počítačoch
v sieti Internet.
Hypertextové dokumenty
obsahujú spojenia na iné dokumenty
Multimediálne dokumenty
súčasťou dokumentov môžu byť aj obrázky,
zvukové záznamy, videosekvencie
Hypermédiá ako kombinácia týchto pojmov
Princíp klient-server
-
Dokumenty sú umiestnené na WWW serveroch
- počítačoch, na ktorých beží špeciálny program nazývaný WWW server alebo
HTTP server.
-
Používatelia pracujú s WWW prehliadačmi,
ktorým servery na požiadanie sprostredkúvajú jednotlivé dokumenty.
Adresa v systéme WWW:
URL (Universal Resource Locator)
-
To, na ktorý server sa má klient obrátiť
a ktorý dokument si žiadať, závisí od toho, čo určí používateľ.
-
Tvar adresy: prístupova metóda : špecifická
časť
-
Prístupová metóda: http, gopher, ftp, news, wais, ...
-
Tvar pre prístupovú metódu http: http://počítač:port/adresár/…/adresár/súbor
-
Príklady:
-
http://center.fmph.uniba.sk/www/ux.html
-
http://www.uniba.sk
-
http://abc.foo.com:8000/test.html
Hypertext Transfer Protocol (HTTP)
Proxy servery
V súčasnosti sa pri komunikácii medzi WWW prehliadačom a serverom
používajú tzv. proxy servery, ktoré túto komunikáciu sprostredkúvajú.
Dôvody pre použitie proxy servera:
-
niekedy nie je možné vytvoriť priame TCP
spojenie (protipožiarna stena)
-
zníženie množstva prenášaných údajov tým,
že si proxy server istý čas pamätá už raz prenesené dokumenty
Hypertext Markup Language (HTML)
-
HTML je jazyk umožňujúci definovať hypertextové
dokumenty.
-
Okrem bežného textu sú v dokumente príkazy
ovplyvňujúce vzhľad dokumentu a jeho väzby na ostatné dokumenty.
Príklad dokumentu v HTML
Ako vytvárať dokumenty v jazyku
HTML
Existuje viacero možností:
-
pomocou štandardného textového editora
-
pomocou editora s podporou HTML
-
Gomer, HTML Assistant Pro, ...
-
pomocou editora HTML WYSIWYG
-
Microsoft Word (97), Netscape Composer, ...
Po vytvorení dokumentu je potrebné ho preniesť
do príslušného adresára na WWW serveri (napríklad public_html
pre servery so systémom UNIX).
CGI programy
-
Na strane servera nemusí byť dokument uložený
v súbore - je možné, aby boli niektoré dokumenty vytvárané dynamicky programami
bežiacimi na serveri
-
Rozhranie medzi takýmito programami a WWW serverom sa nazýva CGI (Common
Gateway Interface)
Java, JavaScript
-
Nie všetko je efektívne realizovať na strane
servera, niekedy je vhodné, aby program bežal na strane prehliadača.
-
Na tento účel sa používa programovací jazyk
Java, pomerne bohatý jazyk podobný C++
-
programátor vytvorí program v Jave a skompiluje ho do tzv. bajtového
kódu
-
na stránku vloží odkaz na tento kód
-
kód sa aktivuje na strane klienta pri zobrazení danej stránky
-
Existuje zjednodušená verzia jazyka Java, vyvinutá firmou Netscape Communications:
JavaScript.
Vyhľadávanie informácií v systéme WWW
-
Často sa stáva, že v systéme WWW chceme
vyhľadať nejaké informácie, ale nevieme, na ktorých stránkach sa nachádzajú.
-
Jednou z možností je využiť služby niektorého
z vyhľadávacích strojov. Sú to programy, ktoré prechádzajú systémom WWW,
čítajú stránky, analyzujú ich a ukladajú si záznamy o tom, ktoré
slová sa kde vyskytujú.
-
Používatelia siete majú možnosť určiť,
ktoré slovo, resp. slová potrebujú nájsť a vyhľadávací stroj im vráti zoznam
stránok, kde sa toto slovo (tieto slová) nachádzajú.
Ostatné služby siete Internet
-
Práca na vzdialenom počítači (TELNET)
-
Prístup k súborom na vzdialenom počítači
(FTP)
-
Prístup k informáciám (Gopher)
-
Diskusné skupiny (mailing lists, news)
-
Interaktívna komunikácia (Talk, IRC)
-
Telefonovanie po Internete
-
Videokonferencie
Časť 3 - Databázové systémy
Kapitola 1
Úvod do databázových systémov
Databázový systém (systém pre riadenie databázy – database-management
system - DBMS) pozostáva z množiny súvisiacich
údajov (dát) a zo skupiny programov umožňujúcich prístup k týmto dátam.
Množina dát v rámci databázového systému
sa zvykne nazývať databáza. Obvykle obsahuje informácie o istej časti reality.
Prvoradým cieľom databázového systému
je poskytnúť pohodlné a efektívne prostredie pre ukladanie a výber informácií.
Význam informácií pre väčšinu ľudských
aktivít viedol k rozvoju mnohých pojmov a techník pre efektívnu
prácu s dátami.
Načo sú databázové systémy
Jedným zo spôsobov ako uchovávať informácie
v počítači je ukladať ich do súborov. Priamočiare používanie takéhoto prístupu
pre ukladanie informácií o objektoch reálneho sveta však so sebou prináša,
a to aj v prípade špeciálnej podpory operačného systému, viacero problémov:
-
redundancia a inkonzistentnosť údajov
-
ťažkopádny prístup k údajom
-
izolácia údajov
-
problémy s integritou údajov
-
atomicita údajov
-
problémy so súčasným prístupom viacerých
používateľov
-
problémy s bezpečnosťou
Riešenie týchto problémov priniesli databázové systémy.
Pohľad na dáta
Dáta sú uložené v databázovom systéme
zložitým spôsobom podporujúcim efektívnu prácu s nimi. Aby sa zjednodušil
prístup užívateľa k dátam, používa sa v databázovom systéme niekoľko úrovní
abstrakcie:
-
fyzická úroveň: je to najnižšia úroveň
detailne popisujúca ako sú jednotlivé
záznamy obsahujúce dáta fyzicky uložené
-
logická úroveň: predstavuje vyšší stupeň
abstrakcie a popisuje, aké údaje
sú uložené v databáze a aké vzťahy medzi nimi existujú. Popis je realizovaný
malým počtom relatívne jednoduchých štruktúr. Používateľ logickej úrovne
nepotrebuje poznať zložité detaily fyzickej implementácie databázy.
-
úroveň pohľadov: najvyššia úroveň abstrakcie,
jednotlivé pohľady zachytávajú len časť celej databázy, čo zjednodušuje
prácu so systémom. Systém poskytuje rôzne pohľady na databázu.
Pohľad na dáta - Inštancie a schémy
Množina údajov uložených v databáze
v danom momente sa nazýva inštanciou databázy (instance).
Schéma databázy (database schema) charakterizuje jej logickú
štruktúru.
Databázový systém poskytuje na každej
zo svojich úrovní abstracie nezávislú schému (fyzickú schému, logickú schému
a na najvyššej úrovni viacero podschém) .
Dátové modely
Východiskom pri tvorbe štruktúry databázy
je dátový model. Je to množina nástrojov pre popis
-
dát
-
vzťahov medzi dátami
-
sémantiky dát
-
obmedzení
Existujúce dátové modely možno rozdeliť
do 3 skupín:
-
logické modely založené na objektoch
(object-based logical models)
-
logické modely založené na záznamoch (record-based
logical models)
-
fyzické modely (physical models)
Dátové modely – pokračovanie
Logické modely založené na objektoch
sa používajú na popis dát na logickej úrovni a na úrovni pohľadov. Poskytujú
pružné prostriedky pre popis štruktúry dát a explicitnú špecifikáciu obmedzení.
Delíme ich na:
-
entitno-relačné modely (entity-relationship
models)
-
objektovo-orientované modely (object-oriented models)
-
sémantické modely (semantic models)
-
funkcionálne modely (functional models)
Logické modely založené na záznamoch sa
tiež používajú na popis dát na logickej úrovni i na úrovni záznamov. Ich
názov pochádza z toho, že odpovedajúca databáza je založená na záznamoch
pevnej dĺžky. Tri najznámejšie modely tohoto druhu sú:
-
relačné modely (relational models)
-
sieťové modely (network models)
-
hierarchické modely (hierarchical models)
Entitno-relačné dátové modely
Entitno-relačné dátové modely vychádzajú
z pohľadu na reálny svet ako na množinu základných objektov nazývaných
entitami (entities) a relácií medzi týmito objektami (relationships).
Entita je vec alebo objekt reálneho
sveta odlíšiteľná od ostatných objektov.
Okrem entít a vzťahov sa v entitno-relačnom
modeli reprezentujú aj obmedzenia (constraints),
ktoré musí obsah databázy spĺňať. Príkladom je kardinalita vzťahov (mapping
cardinality), ktorá vyjadruje počet entít,
ktoré sú v danom vzťahu s danou entitou.
Celková logická štruktúra databázy sa
dá graficky vyjadriť pomocou entitno – relačných diagramov (E-R diagramov)
vytvorených z nasledujúcich prvkov:
-
obdĺžniky, ktoré reprezentujú skupiny entít
(entity sets)
-
elipsy, ktoré reprezentujú atribúty
-
kosoštvorce, ktoré reprezentujú vzťahy
(relácie) medzi skupinami entít
-
čiary, ktoré spájajú atribúty so
skupinami entít a skupiny entít s reláciami
Relačné modely
Pri relačnom modeli sa používa pre
reprezentáciu dát a vzťahov medzi nimi sústava tabuliek.
Každá tabuľka obsahuje stĺpce s jednoznačne
určenými menami. Riadky tabuľky odpovedajú modelovaným prvkom alebo vzťahom
medzi nimi.
Jazyk pre definíciu dát (Data Definition Language – DDL)
Špecifikácia schémy databázy sa robí pomocou špeciálneho jazyka
pre definíciu dát (DDL).
Príkazy jazyka DDL vygenerujú po kompilácii
množinu tabuliek uložených v špeciálnom súbore s názvom slovník
dát (data dictionary alebo data directory).
Slovník dát obsahuje metadáta, t.j. dáta o dátach. Pri konkrétnom
prístupe k dátam sa systém obráti najprv na tento slovník.
Štruktúra ukladania dát a prístupové metódy k dátam
používané databázovým systémom sa špecifikujú pomocou špeciálneho typu
DDL nazývaného jazyk pre ukladanie a definíciu dát (data storage
and definition language).
Jazyk pre prácu s dátami (Data Manipulation Language – DML)
Prácou s dátami (data manipulation) sa rozumie:
-
výber informácií uložených v databáze (retrieval)
-
vkladanie nových informácií do databázy (insertion)
-
vymazanie informácií z databázy (deletion)
-
modifikáciu informácií uložených v databáze
(modification)
Pre prácu s dátami má používateľ
k dispozícii špeciálne jazyky (DML).
Existujú dve triedy jazykov DML:
-
procedurálne – umožňujú špecifikovať požadované
dáta, ako i spôsob ich získania
-
neprocedurálne – umožňujú špecifikovať
požadované dáta, nie však spôsob ich získania
Príkaz na výber informácií z databázy sa
zvykne nazývať dotaz (query).
Časť DML zaoberajúca sa výberom informácií sa nazýva dotazovací jazyk (query
language). Často sa však týmto pojmom
označuje aj celý DML.
Riadenie transakcií (Transaction management)
Transakciou sa nazýva skupina operácií
vytvárajúcich jednu logickú funkciu v databázovej aplikácii (napríklad
prevod istej sumy z jedného účtu na druhý).
U transakcie je podstatné, aby prebehla
úspešne buď celá, alebo aby sa z nej neuskutočnila žiadna operácia. Tento
princíp "všetko alebo nič" sa charakterizuje ako atomicita.
Modul riadiaci transakcie zabezpečí,
že databáza ostane v konzistentnom (consistent)
stave aj v prípade, keď počas vykonávania transakcie príde k poruche systému,
ktorá zabráni jej úspešnému ukončeniu.
Keď prebieha súčasne viacero transakcií,
treba zabezpečiť, aby pri ich interakciách neprišlo v porušeniu konzistentnosti
databázy (concurrency-control).
Správa ukladania (Storage management)
Používateľ databázového systému prichádza
do styku s jeho vyššími vrstvami, ktorých úlohou je zjednodušiť a uľahčiť
mu prístup k dátam.
O dobe odozvy databázového systému však
rozhoduje efektívnosť štruktúry uloženia dát v databáze a efektívnosť operácií
pracujúcich nad týmito dátami. Táto časť databázového systému sa volá
správa ukladania.
Správa ukladania komunikuje so správou
súborov operačného systému, pod ktorým databázový systém beží.
Správca databázy (Database Administrator - DBA)
Správca databázy koordinuje aktivity
týkajúce sa databázy a stará sa o jej údržbu.
Hlavné úlohy správcu databázy sú:
-
definícia schémy databázy
-
definícia prístupových metód a štruktúry ukladania údajov
-
modifikácie schémy a fyzickej organizácie
-
prideľovanie prístupových práv používateľom
-
špecifikovanie obmedzení zabezpečujúcich
integritu
-
zabezpečenie kontextu pre používateľov
-
monitorovanie výkonnosti a realizácia požiadaviek
na zmeny
Používateľ databázy
Hlavným cieľom databázového systému
je vytvoriť prostredie pre ukladanie informácií do databázy a ich výber.
Z hľadiska spôsobu, akým interagujú s databázovým systémom, možno používateľov
rozdeliť na 4 skupiny:
-
aplikační programátori – vytvárajú aplikačné
programy, ktoré so systémom komunikujú pomocou DML. Okrem štandardných
programovacích jazykov sa pre písanie aplikácií používajú aj špecialne
jazyky nazývané jazykmi štvrtej generácie (4GL)
-
vyspelí používatelia – komunikujú so systémom
prostredníctvom dotazovacích jazykov
-
špecializovaní používatelia – vytvárajú
špeciálne databázové aplikácie nezapadajúce do rámca tradičných systémov
pre spracovanie dát (napríklad expertné systémy)
-
bežní používatelia – využívajú pre prácu
so systémom aplikačné programy (napríklad bankoví úradníci)
Kapitola 2
Entitno-relačný model
Entitno-relačný (E-R)
dátový model je založený na predstave reálneho sveta ako množiny objektov
nazývaných entity (entities),
medzi ktorými existujú vzťahy (relationships).
Pomocou E-R modelu možno vytvoriť diagram
reprezentujúci celkovú logickú štruktúru databázy.
E-R model je jeden zo sémantických modelov.
Znamená to , že umožňuje aj reprezentáciu obsahu dát.
E-R model má mimoriadny význam pri vyjadrení
objektov reálneho sveta a vzťahov medzi nimi pomocou konceptuálnej schémy.
Preto mnoho nástrojov pre návrh databáz vychádza z pojmov z E-R modelu.
Základné pojmy - Entity
Entita (entity) je vec alebo
objekt reálneho sveta odlíšiteľný od iných objektov (napr. osoba, konto
v banke, kniha).
Každá entita je charakterizovaná istými
vlastnosťami (atribútmi), niektoré podmnožiny týchto vlastností môžu entitu
jednoznačne určovať (napríklad rodné číslo určuje osobu).
Skupinou entít (entity set) nazývame
množinu entít rovnakého druhu, teda entít charakterizovaných rovnakými
atribútmi (napríklad všetci zákazníci danej banky, stromy, pôžičky).
Skupiny entít nemusia byť nutne disjunktné.
Základné pojmy - Atribúty
Každá entita je reprezentovaná množinou
svojich atribútov. Entity patriace do jednej skupiny majú rovnaké atribúty,
líšia sa však ich hodnotami.
Príklad:
customer = (customer-name, social-security, customer-street, customer-city)
account = (account-number, balance)
Všetky dovolené hodnoty daného atribútu tvoria jeho doménu (domain).
Keď entita nemá pre niektorý zo svojich
atribútov hodnotu, používa sa namiesto nej hodnota null.
Základné pojmy - Atribúty - pokračovanie
Typy atribútov:
-
jednoduché resp. zložené. Jednoduché atribúty
sa nedelia na časti. Zložené atribúty sa skladajú z viacerých častí, napr.
atribút meno sa skladá z atribútov krstné meno a priezvisko
-
jednohodnotové resp. viachodnotové. Jednohodnotové
atribúty môžu pre danú entitu nadobúdať iba jednu hodnotu, napr. rodné
číslo v prípade entity osoba. Viachodnotové môžu nadobúdať viac
hodnôt, napr. krstné meno (niektorí ľudia majú viac krstných mien)
-
odvodené (derived). Hodnota pre
tento typ atribútov môže byť odvodená z hodnôt ostatných atribútov
alebo entít. Príklad: ak entite zamestnanec priradíme atribúty dátum
nástupu do zamestnania a dĺžka zamestnania,
dá sa hodnota druhého atribútu vypočítať z hodnoty prvého atribútu a aktuálneho
dátumu
Základné pojmy - Vzťahy (relationships)
Vzťahy sú súvislosti medzi viacerými
entitami. Príkladom vzťahu medzi entitami zákazník Hayes a
pôžička L-15 môže byť: zákazník
Hayes má pôžičku L-15.
Skupinou vzťahov (relationship
set) medzi dvomi skupinami entít nazývame
množinu vzťahov rovnakého typu. Príkladom takejto skupiny vzťahov môžu
byť vzťahy medzi skupinou entít zákazník a skupinou entít
pôžička označené slovným spojením
má pôžičku.
Ak medzi skupinami entít E1, E2, ... , En
je skupina vzťahov R, hovoríme,
že skupiny entít E1, E2, ... , En
participujú na skupine vzťahov R.
Funkcia, ktorú hrá entita vo vzťahu,
sa nazýva jej rolou. Roly entít hrajú úlohu najmä vtedy, keď skupina entít
participuje v danom vzťahu viackrát, v rôznych rolách (recursive
relantionship). Napríklad: skupina vzťahov
pracuje pre je príkladom skupiny
vzťahov medzi usporiadanými dvojicami skupín entít zamestnanci.
Prvá entita z dvojice má rolu managera a druhá rolu robotníka.
Základné pojmy – Vzťahy - pokračovanie
Vzťah môže mať popisné atribúty
(descriptive attributes). K skupine
vzťahov vkladateľ medzi skupinou entít zákazník a
účet môžeme napríklad priradiť
atribút čas prístupu špecifikujúci čas, kedy zákazník naposledy pristupoval
k účtu.
Počet skupín entít participujúcich na danej skupine vzťahov sa nazýva
stupňom (degree) skupiny vzťahov. Skupiny
vzťahov stupňa 2 sa nazývajú binárne.
Problémy pri návrhu – Entity vs. atribúty
Entity a vzťahy medzi nimi sa dajú
definovať viacerými spôsobmi. Napríklad: u entity zamestnanec
môže byť jeho telefónne číslo jedným z jeho atribútov. Možno však vytvoriť
aj zvláštu entitu telefón, s atribútmi telefónne
číslo a umiestnenie telefónu
a skupinu vzťahov medzi zamestnancami a telefónmi označenú ako zamestnanec
má telefón.
Rozdiel medzi uvedenými prístupmi:
prvá definícia implikuje, že zamestnanec má práve jeden telefón, druhá
popisuje obecnejšiu situáciu.
Uvedená konštrukcia nie je vhodná pre atribút meno zamestnanca,
meno zamestnanca nemá zmysel chápať ako
samostatnú entitu.
Otázka: Ktoré prvky by mali byť považované
za entity a ktoré za atribúty ? Jednoduchá odpoveď na ňu neexistuje.
Problémy pri návrhu – Entity vs.
vzťahy
Nie je vždy jasné, či je daný objekt
vhodnejšie vyjadriť ako skupinu entít alebo ako skupinu vzťahov. Napríklad
pôžička môže byť vyjadrená aj
ako skupina entít, ale tiež aj ako skupina vzťahov medzi zákazníkom
a pobočkou, pričom číslo pôžičky
a veľkosť môžu byť popisné atribúty.
Druhý prístup je nevhodný v prípade, že viacero zákazníkov môže zdieľať
tú istú pôžičku.
Nebinárne skupiny vzťahov možno vždy
nahradiť niekoľkými binárnymi skupinami. Konceptuálne si môžeme predstaviť,
že v E-R modeli sú len binárne vzťahy.
Kardinalita (Mapping cardinalities)
Kardinalita (skupiny vzťahov) vyjadruje
počet entít, ktoré môžu byť v danom vzťahu s inou entitou. Používa sa najmä
u binárnych vzťahov.
Kardinalita skupiny vzťahov R
medzi skupinami entít A a B môže
nadobúdať jednu z nasledujúcich hodnôt:
-
jedna ku jednej (one to one) – každá
entita zo skupiny A je v danom
vzťahu najviac s jednou entitou zo skupiny B. Každá
entita zo skupiny B je v danom
vzťahu najviac s jednou entitou zo skupiny A
-
jedna ku mnoho (one to many) - každá
entita zo skupiny A môže byť
v danom vzťahu s mnohými entitami zo skupiny B. Entita zo
skupiny B môže byť v danom vzťahu najviac
s jednou entitou zo skupiny A
-
mnoho ku jednej (many to one) - entita zo skupiny A
môže byť v danom vzťahu najviac s jednou entitou zo skupiny B.
Každá entita zo skupiny B môže
byť v danom vzťahu s mnohými entitami zo skupiny A
-
mnoho ku mnoho (many to many) –
každá entita zo skupiny A môže
byť v danom vzťahu s ľubovoľným počtom entít zo skupiny B.
Každá entita zo skupiny B môže
byť v danom vzťahu s ľubovoľným počtom entít zo skupiny A
Existenčné závislosti (Existence
dependencies)
Ak existencia entity x závisí od existencie entity y,
tak x sa nazýva existenčne závislá
na y. Znamená to, že ak sa zruší
y, zruší sa aj x. Entita y sa v tomto prípade
nazýva dominantnou a entita x podriadenou.
Príklad: u entít pôžička a
splátka je pôžička dominantnou
entitou a splátka podriadenou.
Participácia skupiny entít E
v skupine vzťahov R sa nazýva totálna (total),
ak každá entita z E participuje
aspoň v jednom vzťahu z R. Ak iba niektoré entity z E
participujú vo vzťahoch z R, participácia E v R sa nazýva
parciálna (partial).
Príklad: participácia skupiny entít splátka
v skupine vzťahov splátka – pôžička je totálna. Participácia
skupiny entít zákazník v skupine vzťahov
zákazník – pôžička je parciálna, lebo nie každý zákazník banky musí
mať od nej pôžičku.
Kľúče (Keys)
Je dôležité vedieť, čím sa líšia jednotlivé
entity v skupine entít a jednotlivé vzťahy v skupine vzťahov.
Rozdiely medzi entitami musia byť vyjadrené
pomocou ich atribútov. Na toto rozlišovanie sa používa pojem kľúča.
Pre skupiny entít:
-
superkľúčom (superkey) sa
nazýva skupina atribútov, ktoré jednoznačne určujú entitu v skupine entít
-
kandidátom na kľúč (candidate
key) sa nazýva taký superkľúč, ktorého
žiadna vlastná podmnožina nie je superkľúčom
-
primarnym kľúčom (primary key)
nazývame takého kandidáta na kľúč, ktorý
bol vybraný návrhárom databázy pre identifikáciu entít.
To, že niektorý atribút resp. skupina atribútov
je kľúčom, je vlastnosťou danej skupiny entít.
Primárne kľúče sa definujú aj pre skupiny
vzťahov.
Entitno-relačné diagramy
E-R diagramy sú vhodné pre grafické vyjadrenie logickej štruktúry
databázy. Hlavné komponenty tvoriace E-R diagramy sú:
-
obdĺžniky, ktoré reprezentujú skupiny entít
-
elipsy, ktoré reprezentujú atribúty
-
kosoštvorce, ktoré reprezentujú skupiny
vzťahov
-
čiary, ktoré spájajú atribúty so skupinami
entít a skupiny entít so skupinami vzťahov
-
dvojité elipsy, ktoré reprezentujú viachodnotové atribúty
-
čiarkované elipsy, ktoré reprezentujú odvodené
atribúty
-
dvojité čiary indikujúce totálnu participáciu
entity v skupine vzťahov
Atribúty, ktoré tvoria primárny kľúč, sú
podčiarknuté.
Pre vyznačenie kardinality sa používajú
šípky.
Slabé skupiny entít (weak entity sets)
Ak skupina entít nemá atribúty pre
vytvorenie primárneho kľúča, nazýva sa slabou skupinou entít. Ak má atribúty
tvoriace primárny kľúč, nazýva sa silnou skupinou entít.
Príkladom slabej skupiny entít je splátka tvorená atribútmi
číslo splátky, dátum splátky a veľkosť
splátky. Splátky pre rôzne pôžičky môžu mať totiž rovnaké čísla.
Aby mala slabá skupina entít zmysel,
musí byť vo vzťahu so silnou skupinou entít s kardinalitou jedna ku mnoho
(jedna na strane silnej skupiny). Medzi entitami slabej skupiny a silnej
skupiny platí pritom vzťah závislosti. Entity silnej skupiny sú dominantné
a slabej skupiny podriadané.
Množina atribútov slabej skupiny entít,
ktorá umožňuje rozlíšiť medzi entitami závislými od jednej entity zo silnej
skupiny entít sa nazýva diskriminátorom (discriminator)
slabej skupiny entít. Tento diskriminátor sa zvykne nazývať aj parciálnym
kľúčom (partial key). Príklad diskriminátora: číslo
pôžičky v skupine entít splátka.
Slabé skupiny entít – pokračovanie
Primárny kľúč slabej skupiny entít
je tvorený primárnym kľúčom silnej skupiny entít, na ktorej je slabá skupina
entít existenčne závislá a diskriminátorom slabej skupiny entít.
O dominantnej skupine entít hovoríme,
že vlastní odpovedajúcu slabú skupinu entít. Vzťah, ktorý spája slabú skupinu
entít s jej vlastníkom sa volá identifikujúci vzťah (identifying
relationship).
Slabá skupina entít sa v E-R diagramoch
vyznačuje obdĺžnikom s dvojitým obrysom a odpovedajúci identifikujúci vzťah
kosoštvorcom s dvojitým obrysom. Totálna participácia sa vyznačuje dvojitou
čiarou. Diskriminátor je počiarknutý čiarkovane.
Redukcia E-R modelu do tabuliek
Databáza, ktorá odpovedá E-R modelu,
sa dá reprezentovať ako skupina tabuliek. Pre každú skupinu entít a pre
každú skupinu vzťahov existuje tabuľka, ktorej meno je zhodné s menom odpovedajúcej
skupiny entít resp. vzťahov.
Tabuľková reprezentácia silnej skupiny
entít s atribútmi a1, a2, ... , an
je tvorená tabuľkou s n
stĺcami odpovedajúcimi jednotlivým atribútom.
Každý riadok tabuľky odpovedá jednej entite.
Pre tabuľkovú reprezentáciu slabej skupiny
entít A s atribútmi a1, a2, ... , am
sa využíva aj primárny kľúč b1, b2, ...
, bn silnej skupiny entít B, od ktorej je skupina A
závislá. Tabuľka má pritom stĺpce a1, a2,
... , am, b1, b2, ... , bn.
Nech R je skupina vzťahov a a1,
a2, ... , am je
skupina atribútov vytvorená zjednotením primárnych kľúčov oboch skupín
entít participujúcich v R. Nech R ma popisné atribúty
b1, b2, ... , bn.
Potom tabuľková reprezentácia R
má stĺpce a1, a2, ... , am,
b1, b2, ... , bn.