Viac

Ako vytvoriť hierarchický stromový diagram z polygónovej vrstvy?

Ako vytvoriť hierarchický stromový diagram z polygónovej vrstvy?


Mám polygónovú vrstvu s 5 hierarchickými úrovňami. Pridal som 3 polia na označenie úrovne a skupiny. Hierarchia je zobrazená aj priestorovo, tj. veľký mnohouholník obsahuje ďalšie polygóny nižšej úrovne, ktoré sú obsiahnuté v tejto skupine.

Aký je najlepší nástroj na vytvorenie diagramu hierarchického stromu z údajov?

Nemám licenciu na Schematics alebo Visio. Mám Excel 2007.


K dispozícii je bezplatný program s názvom yEd ktoré môžu vytvárať vývojové diagramy a hierarchické diagramy. Jeden z formátov importu je Excel. Svoju vrstvu ste mohli exportovať ako súbor programu Excel pomocou súboru Tabuľka do Excelu nástroj.

Strávil som asi päť minút pokusom o import hierarchického súboru, ktorý som vytvoril s tromi úrovňami s priemerným úspechom. Pomoc som však nečítal. Môžete tiež skúsiť exportovať svoje údaje ako nejakú formu XML, ktorú môžete tiež čítať.


Existuje spôsob, ako zaručiť hierarchický výstup zo siete NetworkX?

Snažím sa vytvoriť vývojový diagram a strom štruktúra. Podarilo sa mi vytvoriť reprezentatívne grafy pomocou programu networkx, ale potrebujem spôsob, ako to zobraziť strom štruktúra pri výstupe grafu. Na vykreslenie grafu používam matplotlib.pylab.

Potrebujem ukázať údaje v štruktúre podobnej tej, ktorá je tu zobrazená. Aj keď nemám čiastkové grafy.

Ako môžem zaručiť takú štruktúru?

Príklady pre neveriacich:

Dokázal som zobraziť grafy pomocou programu pylab a graphviz, ale ani jedna z nich neponúkla mnou hľadanú stromovú štruktúru. Skúsil som každé rozloženie, ktoré môže sieťx ponúkať, ale žiadna z nich nezobrazuje hierarchia. Len som si nebol istý, čo možnosti/režim dať to ALEBO ak potrebujem používať závažia. Akékoľvek návrhy by pomohli mnohým.

Tu je hrubý náčrt toho, čo som použil na výrobu vyššie uvedených pozemkov. Pridal som niekoľko štítkov, ale okrem toho je to to isté.


Databáza agentov

Vo vyššie uvedenom diagrame si agent rezervuje niekoľko zabávačov a každý zabávač má na oplátku svoj vlastný rozvrh. Povinnosťou agenta je udržiavať niekoľko klientov, ktorých potreby zábavy sú splnené. Klient si rezervuje zákazku prostredníctvom agenta a platí agentovi platby za jeho služby.

Vzťah v tomto databázovom modeli predstavuje výraz rodič/dieťa. V tomto type vzťahu je možné prepojiť nadradenú tabuľku s jednou alebo viacerými podradenými tabuľkami, ale jednu podradenú tabuľku je možné prepojiť iba s jednou nadradenou tabuľkou. Tabuľky sú explicitne prepojené pomocou ukazovateľa/indexu alebo fyzickým usporiadaním záznamov v tabuľkách.

Užívateľ má prístup k údajom tak, že začne v koreňovej tabuľke a cez strom prejde k cieľovým údajom. užívateľ musí byť oboznámený so štruktúrou databázy, aby mal prístup k údajom bez akejkoľvek zložitosti.

Výhody

  • Užívateľ môže načítať údaje veľmi rýchlo vďaka prítomnosti explicitných prepojení medzi štruktúrami tabuliek.
  • Referenčná integrita je vstavaná a automaticky vynútená, vďaka čomu musí byť záznam v podradenej tabuľke prepojený s existujúcim záznamom v nadradenej tabuľke, spolu s tým, ak sa záznam v nadradenej tabuľke odstráni, spôsobí to všetky súvisiace záznamy v detská tabuľka sa má tiež odstrániť.

Nevýhody

  • Keď používateľ potrebuje uložiť záznam do podradenej tabuľky, ktorá v súčasnosti nesúvisí so žiadnym záznamom v nadradenej tabuľke, má problémy so zaznamenávaním a používateľ musí do nadradenej tabuľky zaznamenať ďalší záznam.
  • Tento typ databázy nemôže podporovať komplexné vzťahy a existuje aj problém s nadbytočnosťou, ktorá môže viesť k vytváraniu nepresných informácií v dôsledku nekonzistentného zaznamenávania údajov na rôznych miestach.

Zvážte príklad pomocou databázového diagramu zobrazeného v predchádzajúcom diagrame. Užívateľ nemôže zadať nový záznam pre zabávača do tabuľky Zabávači, pokiaľ nie je zabávač priradený ku konkrétnemu agentovi v tabuľke Agenti, pretože záznam v podradenej tabuľke (Zabávači) musí súvisieť so záznamom v nadradenej tabuľke (Agenti) . Tento typ databázy preto trpí problémom s nadbytočnými údajmi. Napríklad, ak existuje vzťah medzi klientmi a zabávačmi mnoho k mnohým, zabávač bude vystupovať pre mnohých klientov a klient si najme veľa zabávačov. Tento typ vzťahu v hierarchickej databáze sa nedá ľahko modelovať, takže vývojári musia do tabuliek Plán a Zapojenie vložiť nadbytočné údaje.

  • Tabuľka Rozvrh bude teraz obsahovať údaje o klientoch, ktoré obsahujú informácie, ako napríklad meno klienta, adresu a telefónne číslo, aby sa ukázalo, pre koho a kde každý zabávač vystupuje. Tieto údaje sú nadbytočné, pretože sú momentálne uložené aj v tabuľke Klienti.
  • Tabuľka záväzkov bude teraz obsahovať údaje o zabávačoch, ktoré budú obsahovať informácie, ako je meno zabávača, telefónne číslo a typ zabávača, aby bolo možné určiť, ktorí zabávači vystupujú pre daného klienta. Tieto údaje sú tiež nadbytočné, pretože sú momentálne uložené v tabuľke Entertainers.

Problém tejto redundancie je, že môže viesť k vytváraniu nepresných informácií, pretože otvára možnosť, ktorá umožňuje užívateľovi zadať nekonzistentne jeden údaj.

Tento problém je možné vyriešiť vytvorením jednej hierarchickej databázy špeciálne pre zabávačov a ďalšej špeciálne pre agentov. Databáza Entertainers bude obsahovať iba údaje zaznamenané v tabuľke Entertainers a zrevidovaná databáza Agents bude obsahovať údaje zaznamenané v tabuľkách Agents, Clients, Payments a Engagements. nie je potrebné, pretože môžete definovať logický podradený vzťah medzi tabuľkou Engagements v databáze Agents a tabuľkou Entertainers v databáze Entertainers. Ak je tento vzťah zavedený, môžete získať rôzne informácie, napríklad zoznam objednaných zabávačov pre daného klienta alebo harmonogram predstavení pre daného zabávača. Nasledujúci diagram popisuje celý obrázok.

Hierarchická databáza sa dobre hodila k páskovým úložným systémom, ktoré používajú sálové počítače v 70. rokoch minulého storočia a bola veľmi populárna v organizáciách, ktorých databáza je na týchto systémoch založená. Ale aj keď hierarchická databáza poskytovala rýchly a priamy prístup k údajom a bola užitočná za niekoľkých okolností, bolo zrejmé, že na riešenie rastúcich problémov nadbytočnosti údajov a zložitých vzťahov medzi údajmi je potrebný nový databázový model.

Myšlienka tohto databázového modelu je užitočná pre určitý typ ukladania údajov, ale nie je extrémne univerzálna a obmedzuje sa na niektoré konkrétne použitia.

Napríklad tam, kde sa každá jednotlivá osoba v spoločnosti môže hlásiť na dané oddelenie, môže byť toto oddelenie použité ako nadradený záznam a jednotliví zamestnanci budú predstavovať sekundárne záznamy, z ktorých každý prepojí späť na jeden nadradený záznam v hierarchickej štruktúre.


Blokový diagram | Kompletný sprievodca s príkladmi

Ak chcete spustiť nový systém a ste vo fáze plánovania, potrebujete a Bloková schéma vizuálne ilustrovať a vysvetliť svoju myšlienku. Nielen toto, ale aj dobre pripravené Bloková schéma vám tiež poskytne prehľad o očakávaných výsledkoch procesu, ktorý sa chystáte implementovať.

Preto sa tu dozviete, čo sú to blokové diagramy a aké sú ich výhody, na ktoré body je potrebné pri príprave a Bloková schéma , a ako ich pripraviť čo najľahším spôsobom s minimálnym úsilím.

Čo je to blokový diagram

Stručne povedané, blokový diagram je menej podrobná forma vývojového diagramu, ktorý má demonštrovať, ako by nový systém alebo vylepšená verzia existujúceho fungoval na vykonanie konkrétnej úlohy. Blokový diagram sa väčšinou používa v inžinierskej oblasti, kde každý aspekt procesu vyžaduje suchý priebeh (zvyčajne na papieri), než sa prakticky implementuje.

Na rozdiel od bežných vývojových diagramov sa blokový diagram zameriava na kľúčové prvky navrhovaného systému namiesto toho, aby celý proces rozpracovával s drobnými podrobnosťami.

Účel a prínos

Hlavným cieľom nakreslenia blokového diagramu je poskytnúť prehľad pracovného toku, ktorý by sa dal očakávať od systému po jeho dokončení. Vďaka jasnej ilustrácii je pre inžinierov ľahké posúdiť bezproblémové fungovanie procesu a identifikovať existujúce prvky (alebo chýbajúce), ktoré by mohli prekážať, prekážať alebo zbytočne zdržiavať výstup.

Výhodou blokového diagramu je, že pomáha inžinierom a ich spoluhráčom porozumieť myšlienke bez toho, aby museli prechádzať dlhé vety. Pomáha to zamestnancom prekonať jazykovú bariéru, s ktorou sa mnohé organizácie/oddelenia musia stretnúť, keď zamestnávajú ľudí z rôznych regiónov sveta.

Symboly blokového diagramu

Blokový diagram prevažne obsahuje tvary obdĺžnika známe ako bloky a rovné čiary so šípkami na konci. Zatiaľ čo bloky predstavujú kľúčové prvky celého procesu, šípkové čiary ukazujú vzťah medzi týmito dvoma objektmi a smer, ktorým prúdia údaje, informácie, spracovanie, signály alebo elektrický prúd.

Dôležitý bod, ktorý treba mať na pamäti a na ktorý treba pamätať, je, že všetky bloky a spojovacie čiary musia byť dobre označené. Keď má byť blok označený, jeho názov (prvok, ktorý predstavuje) musí byť napísaný vnútri obdĺžnika. Na druhej strane, v prípade spojovacích čiar môže byť názov napísaný nad alebo pod nimi v príslušnej blízkosti.

Nasledujúci obrázok ukazuje dva hlavné symboly a ich význam v typickom blokovom diagrame:

Poznámka: Aj keď sa obdĺžniky a šípky používajú väčšinou na vytvorenie blokového diagramu, niektoré moderné a pokročilé počítačové aplikácie vám umožňujú použiť/pridať ďalšie ozdobné tvary, aby tieto ilustrácie vyzerali pútavejšie.

Čo robiť pred vytvorením blokového diagramu

Je dôležité dobre porozumieť systému, ktorý sa chystáte nakresliť Bloková schéma z. S jasnou myšlienkou v mysli budú ilustrácie, ktoré vložíte na papier, informatívnejšie a užitočnejšie pre členov vášho tímu a ďalších ľudí zapojených do vášho projektu.

Pretože ste to vy, kto nakreslí a Bloková schéma, uistite sa, že napíšete dôležité prvky, ich vzťah k iným objektom a smer toku informácií/procesu na papier. Pretože pri vytváraní diagramu budete čítať iba tieto poznámky, môžete si tento prepis pripraviť podľa vlastného uváženia. Keď je obsah napísaný, môže byť použitý ako referenčný sprievodca.

Aj keď a Bloková schéma sa väčšinou používa iba na ilustráciu kľúčových prvkov a poskytnutie prehľadu o celom procese systému. Ak je potrebná hlbšia analýza, môžete kresbu urobiť čo najpodrobnejšie.

Predtým boli blokové diagramy nakreslené farebnými značkami na dlhé listy papiera (nazývané listy grafov). S pokrokom v technológiách a ľahkou dostupnosťou inteligentných zariadení, ako je tablet alebo počítač, by však bolo veľmi výhodné, ak dávate prednosť použitiu efektívneho kresliaceho programu, akým je EdrawMax od Wondershare, aby ste veci prehnali ručne.

Ako vytvoriť blokový diagram v EdrawMax

Ako už bolo naznačené vyššie, Wondershare EdrawMax je účinný nástroj na kreslenie. Program možno použiť ako dobrú alternatívu k programu Microsoft Visio, ktorá je nielen drahá. Je to tiež oveľa komplexnejšie v porovnaní s EdrawMax.

EdrawMax je ďalej vybavený niekoľkými knižnicami osídlenými množstvom tvarov a symbolov špecifických pre doménu, ktoré vám pomôžu rýchlo nakresliť vami požadované ilustrácie. Šablóny, ktoré sú v aplikácii prítomné, vám dokonca umožňujú preskočiť primárne kroky pridávania tvarov na plátno a po vybratí požadovanej časti môžete ihneď začať s časťou označovania.

Ak chcete vytvoriť a Bloková schéma vo Wondershare EdrawMax môžete postupovať podľa nižšie uvedených pokynov:

Krok 1: Vyberte si šablónu blokového diagramu

Spustite Wondershare EdrawMax na počítači, uistite sa, že Nový je vybratá na navigačnom paneli vľavo, potvrďte to Základný diagram je vybratý v zozname typov diagramov v strede a kliknutím ho vyberte Bloková schéma z horného radu pravého okna. Ďalej kliknite na požadované miesto Bloková schéma šablónu z dostupných v spodnej časti pravej obrazovky.

Krok 2: Označte tvary

Keď sa šablóna otvorí v pracovnom priestore, dvakrát kliknite na prvý tvar a upravte jeho štítok tak, aby zodpovedal názvu alebo žargónu konkrétnej domény. Tento postup zopakujte pre všetky bloky (prvky) v diagrame.

Krok 3: Upravte diagram

Ak chcete do diagramu pridať podrobnosti, môžete pretiahnuť ľubovoľný tvar z knižnice na ľavom paneli na plátno a podľa potreby ho označiť. Je tiež dôležité pridať vzťahovú čiaru spájajúcu existujúci blok s tým, ktorý ste pridali, aby ilustrácia vyzerala relatívne a kompletne. Na formátovanie existujúceho tvaru môžete použiť nástroje nachádzajúce sa v pravom paneli rozhrania.

Krok 4: Uložte a exportujte blokový diagram

Potom, čo ste dokončili kresbu a Bloková schéma, kliknite na Uložiť (Disketa) z panela s nástrojmi rýchleho prístupu v ľavom hornom rohu rozhrania. Ďalej, ak chcete ilustráciu exportovať, kliknite na ikonu Viac tlačidlo vedľa Export ikonu vľavo hore a vyberte požadovaný formát, do ktorého chcete diagram exportovať.

Tipy na vytvorenie blokového diagramu

Medzi osvedčené postupy, ktoré mnohí profesionáli vždy dodržiavali a ktoré navrhujú, aby všetci ostatní urobili to isté, patria:

  • Veľké a jasné symboly - Bez ohľadu na to, aký malý alebo veľký je list alebo plátno, nakreslite symboly a ikony dostatočne veľké, aby boli jasne viditeľné a čitateľné.
  • Správne označenie - Pri označovaní blokov musíte venovať maximálnu pozornosť. Aj jedna chyba pri pomenovaní môže mať za následok úplne iný výstup
  • Správny smer toku - Rovnako ako pri označovaní je ukázaný správny smer toku v každej časti a Bloková schéma je rovnako dôležité pre dosiahnutie očakávaného výsledku
  • Niekoľko suchých behov - Uistite sa, že posúdite Bloková schéma niekoľkokrát po jeho vytvorení. To by zaistilo, že dostanete produkt/výsledok podľa vašich očakávaní

Blokový diagram Príklad

Vyššie uvedené Bloková schéma šablóna ilustruje fungovanie chladničky NXP. Ako si môžete všimnúť, prvé dva bloky sú zabalené do rodičovského bloku, ktorý predstavuje používateľské rozhranie. Kým prvý detský blok je zobrazovacia jednotka, druhý umožňuje interakciu osoby so zariadením pomocou klávesnice. Program Control, kruhový rohový blok v strede, funguje ako mozog (procesor) chladničky a je zodpovedný za rôzne procesy, ktoré sú opäť reprezentované rôznymi blokmi. Vzťah medzi funkciami a riadením programu je znázornený pomocou spojovacích čiar. Ďalší rodičovský blok s názvom Motor Control v spodnej časti tiež obsahuje bloky pre dve deti, ktoré ukazujú diely, ktoré má motor chladničky.

Pomocou vyššie uvedeného diagramu by inžinieri a pracovníci mohli ľahko získať jasnú predstavu o tom, ako by plne funkčná chladnička fungovala.

Záver

Blokový diagram síce poskytuje prehľad o systéme alebo procese, ktorý plánujete implementovať, ale v prípade potreby by mohol byť čo najpodrobnejší, aby boli veci jasnejšie vedeniu, administratíve a tým, ktorí sa priamo nepodieľajú na tvorbe procesná práca. V tejto súvislosti by bolo múdre, keby ste použili účinný nástroj, ako je Wondershare EdrawMax, na urýchlenie celého procesu vytvárania diagramu a prípravu ilustrácie, ktorá je ľahko zrozumiteľná.


Hierarchický súborový systém

A hierarchický súborový systém je spôsob, akým sú jednotky, priečinky, súbory a ďalšie úložné zariadenia organizované a zobrazené v operačnom systéme. V hierarchickom systéme súborov sú jednotky, priečinky a súbory zobrazené v skupinách, čo používateľovi umožňuje vidieť iba súbory, ktoré ho zaujímajú. Na obrázku je napríklad adresár Windows (Windows ) hierarchia priečinkov obsahujúci System32, Úlohya Web priečinky. Každý z týchto priečinkov môže mať stovky vlastných súborov, ale pokiaľ nie sú otvorené, súbory sa nezobrazia.

V operačných systémoch s grafickým rozhraním, ako je napríklad Microsoft Windows, používateľ rozšíri jednotku alebo priečinok tak, aby zobrazil jeho obsah, dvojitým kliknutím na ikonu. Akonáhle je súbor alebo program umiestnený, dvojitým kliknutím na ikonu otvorte súbor alebo spustite program.

V operačnom systéme, ktorý nepochádza z grafického rozhrania, napríklad MS-DOS alebo príkazový riadok systému Windows, sú jednotka a adresáre uvedené ako text. Ak ste napríklad boli na disku C: a vo Windows cievka cesta-adresár MS-DOS môže vyzerať nasledovne.


Analýza rozhodovacieho stromu je vedecký model a často sa používa v proces rozhodovania organizácií. Pri rozhodovaní už manažment zvažuje alternatívne nápady a riešenia.

Pripojte sa k nám a získajte neobmedzený prístup

Pripojením sa k našej platforme e-learningu získate neobmedzený prístup ku všetkým (1 000+) článkom, šablónam, videám a mnohým ďalším!

Použitím rozhodovacieho stromu sú alternatívne riešenia a možné voľby graficky znázornené, v dôsledku čoho je jednoduchšie urobiť dobre informovanú voľbu.

Toto grafické znázornenie je charakterizované stromovou štruktúrou, v ktorej sú problémy pri rozhodovaní vidieť vo forme vývojového diagramu, z ktorých každý má vetvy pre alternatívne voľby.


Sprievodca sprievodcom Cisco Networking Academy Connecting Networks: Hierarchical Network Design

Cisco hierarchický (trojvrstvový) internetový model práce je v celom odvetví prijatý model na navrhovanie spoľahlivej, škálovateľnej a nákladovo efektívnej internetovej práce. V tejto časti sa dozviete o prístupových, distribučných a základných vrstvách a ich úlohe v hierarchickom sieťovom modeli.

Enterprise Network Campus Design (1.1.1)

Pri diskusii o návrhu kampusu siete sa odporúča porozumieť rozsahu siete a znalosti dobrých zásad štruktúrovaného inžinierstva.

Sieťové požiadavky (1.1.1.1)

Pri diskusii o návrhu siete je užitočné kategorizovať siete podľa počtu obsluhovaných zariadení:

  • Malá sieť: Poskytuje služby až pre 200 zariadení.
  • Stredne veľká sieť: Poskytuje služby pre 200 až 1 000 zariadení.
  • Veľká sieť: Poskytuje služby pre viac ako 1 000 zariadení.

Návrhy sietí sa líšia v závislosti od veľkosti a požiadaviek organizácií. Napríklad potreby sieťovej infraštruktúry malej organizácie s menším počtom zariadení budú menej komplexné ako infraštruktúra veľkej organizácie s významným počtom zariadení a pripojení.

Pri návrhu siete je potrebné vziať do úvahy mnoho premenných. Zoberme si napríklad príklad na obrázku 1-1. Vzorový diagram topológie na vysokej úrovni je pre veľkú podnikovú sieť, ktorá pozostáva z hlavného kampusu spájajúceho malé, stredné a veľké pracoviská.

Obrázok 1-1 Návrh veľkej podnikovej siete

Sieťový dizajn je rozširujúca sa oblasť a vyžaduje si veľké množstvo znalostí a skúseností. Cieľom tejto časti je predstaviť bežne akceptované koncepty návrhu siete.

Cisco Certified Design Associate (CCDA ®) je v odbore uznávaná certifikácia pre inžinierov sieťového dizajnu, technikov a inžinierov podpory, ktorí preukazujú schopnosti potrebné pre návrh základného kampusu, dátového centra, zabezpečenia, hlasu a bezdrôtových sietí.

Zásady štruktúrovaného inžinierstva (1.1.1.2)

Bez ohľadu na veľkosť siete alebo požiadavky je kritickým faktorom úspešnej implementácie akéhokoľvek návrhu siete dodržiavanie dobrých zásad štruktúrovaného inžinierstva. Medzi tieto zásady patrí

  • Hierarchia: Hierarchický sieťový model je užitočný nástroj na vysokej úrovni na navrhovanie spoľahlivej sieťovej infraštruktúry. Komplexný problém návrhu siete rozdeľuje na menšie a zvládnuteľnejšie oblasti.
  • Modularita: Rozdelením rôznych funkcií, ktoré existujú v sieti na moduly, sa sieť ľahšie navrhne. Spoločnosť Cisco identifikovala niekoľko modulov vrátane podnikového kampusu, bloku služieb, dátového centra a internetu.
  • Odolnosť: Sieť musí zostať k dispozícii na použitie za normálnych aj abnormálnych podmienok. Bežné podmienky zahŕňajú bežné alebo očakávané toky premávky a vzorce premávky, ako aj naplánované udalosti, ako sú okná údržby. Medzi abnormálne podmienky patria zlyhania hardvéru alebo softvéru, extrémne zaťaženie prevádzky, neobvyklé vzorce premávky, udalosti odmietnutia služby (DoS), či už úmyselné alebo neúmyselné, a ďalšie neplánované udalosti.
  • Flexibilita: Schopnosť upravovať časti siete, pridávať nové služby alebo zvyšovať kapacitu bez toho, aby ste museli prechádzať rozsiahlou aktualizáciou vysokozdvižného vozíka (t. J. Výmenou hlavných hardvérových zariadení).

Aby sa splnili tieto základné ciele návrhu, musí byť sieť postavená na hierarchickej sieťovej architektúre, ktorá umožňuje flexibilitu a rast.

Hierarchický návrh siete (1.1.2)

Táto téma pojednáva o troch funkčných vrstvách hierarchického sieťového modelu: prístupové, distribučné a základné vrstvy.

Hierarchia siete (1.1.2.1)

Skoré siete boli nasadené v plochej topológii, ako je znázornené na obrázku 1-2.

Rozbočovače a prepínače boli pridané, pretože bolo potrebné pripojiť ďalšie zariadenia. Dizajn plochej siete poskytoval málo príležitostí na ovládanie vysielania alebo na filtrovanie nežiaducej prevádzky. Keďže do plochej siete bolo pridaných viac zariadení a aplikácií, skracoval sa čas odozvy, čo spôsobilo, že sieť bola nepoužiteľná.

Bol potrebný lepší prístup k návrhu siete. Z tohto dôvodu organizácie teraz používajú hierarchický návrh siete, ako je znázornené na obrázku 1-3.

Hierarchický návrh siete zahŕňa rozdelenie siete na diskrétne vrstvy. Každá vrstva alebo vrstva v hierarchii poskytuje špecifické funkcie, ktoré definujú jej úlohu v rámci celej siete. To pomáha návrhárovi a architektovi siete optimalizovať a vybrať správny sieťový hardvér, softvér a funkcie na vykonávanie konkrétnych úloh pre danú sieťovú vrstvu. Hierarchické modely sa vzťahujú na dizajn LAN aj WAN.

Výhodou rozdelenia plochej siete na menšie, lepšie spravovateľné bloky je, že miestna prevádzka zostáva miestna. Do vyššej vrstvy sa presunie iba návštevnosť, ktorá je určená pre iné siete. Napríklad na obrázku 1-3 bola plochá sieť teraz rozdelená na tri samostatné vysielacie domény.

Typický podnikový hierarchický návrh siete univerzitného kampusu LAN obsahuje nasledujúce tri vrstvy:

  • Prístupová vrstva: Poskytuje prístup pracovnej skupiny/používateľa k sieti
  • Distribučná vrstva: Poskytuje konektivitu na základe zásad a kontroluje hranicu medzi prístupovou a základnou vrstvou
  • Jadrová vrstva: Poskytuje rýchly prenos medzi distribučnými prepínačmi v areáli podniku

Ďalší ukážkový trojvrstvový hierarchický návrh siete je zobrazený na obrázku 1-4. Všimnite si, že každá budova používa rovnaký hierarchický sieťový model, ktorý zahŕňa vrstvy prístupu, distribúcie a jadra.

Obrázok 1-4 Návrh viacpodlažnej podnikovej siete

Neexistujú žiadne absolútne pravidlá pre spôsob fyzického budovania siete kampusu. Aj keď je pravda, že mnohé kampusové siete sú konštruované pomocou troch fyzických úrovní prepínačov, nie je to striktná požiadavka. V menšom areáli môže mať sieť dve úrovne prepínačov, v ktorých sú jadro a distribučné prvky kombinované v jednom fyzickom prepínači. Toto sa označuje ako zrútený dizajn jadra.

Prístupová vrstva (1.1.2.2)

V prostredí LAN sa prístupová vrstva zvýraznené poskytuje koncovým zariadeniam prístup k sieti. V prostredí WAN môže poskytovať pracovníkom na diaľku alebo vzdialeným pracoviskám prístup k podnikovej sieti prostredníctvom pripojení WAN.

Ako je znázornené na obrázku 1-5, prístupová vrstva pre sieť malých podnikov spravidla obsahuje prepínače vrstvy 2 a prístupové body, ktoré poskytujú prepojenie medzi pracovnými stanicami a servermi.

Prístupová vrstva ponúka množstvo funkcií vrátane

  • Prepínanie vrstvy 2
  • Vysoká dostupnosť
  • Zabezpečenie prístavu
  • Klasifikácia a označovanie QoS a hranice dôvery
  • Kontrola protokolu ARP (Address Resolution Protocol)
  • Zoznamy virtuálneho riadenia prístupu (VACL)
  • Spanning strom
  • Napájanie cez ethernet (PoE) a pomocné siete VLAN pre VoIP

Distribučná vrstva (1.1.2.3)

The distribučná vrstva agreguje údaje prijaté z prepínačov prístupovej vrstvy pred tým, ako sú prenesené do základnej vrstvy na smerovanie do jej konečného cieľa. Na obrázku 1-6 je distribučná vrstva hranicou medzi doménami vrstvy 2 a smerovanou sieťou vrstvy 3.

Zariadenie distribučnej vrstvy je ústredným bodom rozvodných skríň. Router alebo viacvrstvový prepínač sa používa na segmentáciu pracovných skupín a izoláciu problémov so sieťou v prostredí kampusu.

Prepínač distribučnej vrstvy môže poskytovať upstream služby pre mnoho prepínačov prístupovej vrstvy.

Distribučná vrstva môže poskytnúť

  • Agregácia prepojení LAN alebo WAN.
  • Zabezpečenie založené na politikách vo forme zoznamov riadenia prístupu (ACL) a filtrovania.
  • Služby smerovania medzi LAN a VLAN a medzi smerovacími doménami (napr. EIGRP do OSPF).
  • Redundancia a vyvažovanie záťaže.
  • Hranica pre agregáciu a sumarizáciu trasy nakonfigurovaná na rozhraniach smerom k základnej vrstve.
  • Ovládanie domény vysielania, pretože smerovače alebo viacvrstvové prepínače neposielajú vysielanie ďalej. Zariadenie funguje ako vymedzovací bod medzi vysielacími doménami.

Základná vrstva (1.1.2.4)

The jadrová vrstva je tiež označovaná ako chrbticová sieť. Základnú vrstvu tvoria vysokorýchlostné sieťové zariadenia, ako napríklad Cisco Catalyst 6500 alebo 6800. Sú navrhnuté tak, aby čo najrýchlejšie prepínali pakety a prepájali viacero komponentov kampusu, ako sú distribučné moduly, servisné moduly, dátové centrum a sieť WAN. hrana.

Ako je znázornené na obrázku 1-7, základná vrstva je rozhodujúca pre prepojiteľnosť medzi zariadeniami distribučnej vrstvy (napríklad prepojenie distribučného bloku s okrajom WAN a internetu).

Jadro by malo byť vysoko dostupné a nadbytočné. Jadro agreguje prenos zo všetkých zariadení distribučnej vrstvy, takže musí byť schopné rýchlo posielať veľké množstvo dát.

Úvahy v jadrovej vrstve zahŕňajú

  • Poskytovanie vysokorýchlostného prepínania (tj. Rýchla preprava)
  • Poskytuje spoľahlivosť a odolnosť voči poruchám
  • Škálovanie pomocou rýchlejších a nie väčších zariadení
  • Vyhnutie sa manipulácii s paketmi náročnými na CPU spôsobenou bezpečnosťou, kontrolou, klasifikáciou kvality služby (QoS) alebo inými procesmi

Dvojúrovňový sklopný jadrový dizajn (1.1.2.5)

The trojvrstvový hierarchický dizajn maximalizuje výkon, dostupnosť siete a schopnosť škálovať návrh siete.

Mnoho malých podnikových sietí sa však v priebehu času výrazne nerozrastá. Preto a dvojúrovňový hierarchický dizajn kde je jadro a distribučná vrstva zbalené do jednej vrstvy, je často praktickejšie. A “zrútené jadro” je, keď sú funkcie distribučnej vrstvy a základnej vrstvy implementované jediným zariadením. Primárnou motiváciou pre zrútený jadrový dizajn je zníženie nákladov na sieť pri zachovaní väčšiny výhod trojvrstvového hierarchického modelu.

Príklad na obrázku 1-8 zbalil funkciu distribučnej vrstvy a jadrovej vrstvy do viacvrstvových prepínacích zariadení.

Obrázok 1-8 Dvojúrovňový hierarchický dizajn

Hierarchický sieťový model poskytuje modulárny rámec, ktorý umožňuje flexibilitu pri návrhu siete a uľahčuje implementáciu a riešenie problémov.


Štruktúry operačného systému

Táto kapitola sa zaoberá štruktúrou a organizáciou operačných systémov. Skúmajú sa a porovnávajú sa rôzne problémy s dizajnom a možnosti výberu a predstavuje sa základná štruktúra niekoľkých populárnych operačných systémov.

2.1 Služby operačného systému


Obrázok 2.1 - Pohľad na služby operačného systému

Operačné systémy poskytujú prostredia, v ktorých bežia programy a služby pre používateľov systému, vrátane:

  • Užívateľské rozhrania - Prostriedky, pomocou ktorých môžu používatelia zadávať príkazy systému. V závislosti od systému to môže byť rozhranie príkazového riadka (napr. Sh, csh, ksh, tcsh atď.), Rozhranie GUI (napr. Windows, X-Windows, KDE, Gnome atď.) Alebo dávkové príkazové systémy . Posledne uvedené sú spravidla staršie systémy využívajúce dierovacie karty jazyka JLC, ale môžu sa stále používať v špeciálnych systémoch navrhnutých na jeden účel.
  • Vykonanie programu - Operačný systém musí byť schopný načítať program do pamäte RAM, spustiť ho a ukončiť program, či už normálne alebo neobvykle.
  • I/O operácie - OS je zodpovedný za prenos údajov do a zo vstupno -výstupných zariadení vrátane klávesníc, terminálov, tlačiarní a úložných zariadení.
  • Manipulácia so systémom súborov - Okrem ukladania nespracovaných dát je OS zodpovedný aj za údržbu štruktúr adresárov a podadresárov, mapovanie názvov súborov na konkrétne bloky ukladania údajov a poskytovanie nástrojov na navigáciu a používanie systému súborov.
  • Komunikácia - Komunikácia medzi procesmi, IPC, buď medzi procesmi bežiacimi na rovnakom procesore, alebo medzi procesmi bežiacimi na samostatných procesoroch alebo oddelených počítačoch. Môžu byť implementované buď ako zdieľaná pamäť, alebo ako odosielanie správ (alebo niektoré systémy môžu ponúkať oboje.)
  • Detekcia chýb - Chyby hardvéru aj softvéru je potrebné zistiť a zaobchádzať s nimi primerane, s minimom škodlivých následkov. Niektoré systémy môžu zahŕňať komplexné systémy na predchádzanie chybám alebo obnovu, vrátane záloh, jednotiek RAID a ďalších nadbytočných systémov. Ladiace a diagnostické nástroje pomáhajú používateľom a správcom pri pátraní po príčine problémov.

Ďalšie systémy pomáhajú pri efektívnej prevádzke samotného operačného systému:

  • Rozdelenie zdrojov - Napr. Cykly CPU, hlavná pamäť, úložný priestor a periférne zariadenia. Niektoré zdroje sú spravované generickými systémami a iné veľmi starostlivo navrhnutými a špeciálne vyladenými systémami prispôsobenými pre konkrétny zdroj a operačné prostredie.
  • Účtovníctvo - Sledovanie aktivity systému a využívania zdrojov, a to buď na účely fakturácie, alebo na uchovávanie štatistických záznamov, ktoré je možné použiť na optimalizáciu budúcej výkonnosti.
  • Ochrana a zabezpečenie - Predchádzanie škodám na systéme a zdrojoch, a to buď svojvoľnými internými procesmi, alebo škodlivými cudzími ľuďmi. Autentifikácia, vlastníctvo a obmedzený prístup sú samozrejmou súčasťou tohto systému. Vysoko zabezpečené systémy môžu zaznamenávať všetku aktivitu procesu až do neznesiteľných podrobností a bezpečnostné predpisy diktujú ukladanie týchto záznamov na trvalé nevymazateľné médium na dlhší čas do zabezpečených (mimo pracovísk) zariadení.

2.2 Používateľské rozhranie operačného systému

2.2.1 Tlmočník príkazov

  • Získa a spracuje ďalšiu požiadavku užívateľa a spustí požadované programy.
  • V niektorých systémoch môže byť CI začlenený priamo do jadra.
  • Častejšie je CI samostatný program, ktorý sa spustí, keď sa používateľ prihlási alebo inak vstúpi do systému.
  • UNIX napríklad poskytuje užívateľovi na výber rôzne škrupiny, ktoré môžu byť buď nakonfigurované tak, aby sa spúšťali automaticky pri prihlásení, alebo ktoré je možné zmeniť za behu. (Každý z týchto shellov používa iný konfiguračný súbor počiatočných nastavení a príkazov, ktoré sa vykonávajú pri spustení.)
  • Rôzne shelly poskytujú rôzne funkcie, pokiaľ ide o určité príkazy, ktoré sú implementované priamo shellom bez spustenia akýchkoľvek externých programov. Väčšina poskytuje aspoň základnú interpretačnú štruktúru príkazov na použitie v programovaní shell skriptov (slučky, rozhodovacie konštrukcie, premenné atď.)
  • Zaujímavým rozdielom je spracovanie pomenovania súborov divokou kartou a presmerovanie I/O. On UNIX systems those details are handled by the shell, and the program which is launched sees only a list of filenames generated by the shell from the wild cards. On a DOS system, the wild cards are passed along to the programs, which can interpret the wild cards as the program sees fit.

2.2.2 Graphical User Interface, GUI

  • Generally implemented as a desktop metaphor, with file folders, trash cans, and resource icons.
  • Icons represent some item on the system, and respond accordingly when the icon is activated.
  • First developed in the early 1970's at Xerox PARC research facility.
  • In some systems the GUI is just a front end for activating a traditional command line interpreter running in the background. In others the GUI is a true graphical shell in its own right.
  • Mac has traditionally provided ONLY the GUI interface. With the advent of OSX ( based partially on UNIX ), a command line interface has also become available.
  • Because mice and keyboards are impractical for small mobile devices, these normally use a touch-screen interface today, that responds to various patterns of swipes or "gestures". When these first came out they often had a physical keyboard and/or a trackball of some kind built in, but today a virtual keyboard is more commonly implemented on the touch screen.


Figure 2.3 - The iPad touchscreen

2.2.3 Choice of interface

  • Most modern systems allow individual users to select their desired interface, and to customize its operation, as well as the ability to switch between different interfaces as needed. System administrators generally determine which interface a user starts with when they first log in.
  • GUI interfaces usually provide an option for a terminal emulator window for entering command-line commands.
  • Command-line commands can also be entered into shell scripts, which can then be run like any other programs.

2.3 System Calls

  • System calls provide a means for user or application programs to call upon the services of the operating system.
  • Generally written in C or C++, although some are written in assembly for optimal performance.
  • Figure 2.4 illustrates the sequence of system calls required to copy a file:


Figure 2.5 - Example of how system calls are used.

  • You can use "strace" to see more examples of the large number of system calls invoked by a single simple command. Read the man page for strace, and try some simple examples. ( strace mkdir temp, strace cd temp, strace date > t.t, strace cp t.t t.2, etc. )
  • Most programmers do not use the low-level system calls directly, but instead use an "Application Programming Interface", API. The following sidebar shows the read( ) call available in the API on UNIX based systems::


The use of APIs instead of direct system calls provides for greater program portability between different systems. The API then makes the appropriate system calls through the system call interface, using a table lookup to access specific numbered system calls, as shown in Figure 2.6:


Figure 2.6 - The handling of a user application invoking the open( ) system call

  • Parameters are generally passed to system calls via registers, or less commonly, by values pushed onto the stack. Large blocks of data are generally accessed indirectly, through a memory address passed in a register or on the stack, as shown in Figure 2.7:


Figure 2.7 - Passing of parameters as a table

2.4 Types of System Calls

2.4.1 Process Control

  • Process control system calls include end, abort, load, execute, create process, terminate process, get/set process attributes, wait for time or event, signal event, and allocate and free memory.
  • Processes must be created, launched, monitored, paused, resumed,and eventually stopped.
  • When one process pauses or stops, then another must be launched or resumed
  • When processes stop abnormally it may be necessary to provide core dumps and/or other diagnostic or recovery tools.
  • Compare DOS ( a single-tasking system ) with UNIX ( a multi-tasking system ).
    • When a process is launched in DOS, the command interpreter first unloads as much of itself as it can to free up memory, then loads the process and transfers control to it. The interpreter does not resume until the process has completed, as shown in Figure 2.9:
      • Because UNIX is a multi-tasking system, the command interpreter remains completely resident when executing a process, as shown in Figure 2.11 below.
        • The user can switch back to the command interpreter at any time, and can place the running process in the background even if it was not originally launched as a background process.
        • In order to do this, the command interpreter first executes a "fork" system call, which creates a second process which is an exact duplicate ( clone ) of the original command interpreter. The original process is known as the parent, and the cloned process is known as the child, with its own unique process ID and parent ID.
        • The child process then executes an "exec" system call, which replaces its code with that of the desired process.
        • The parent ( command interpreter ) normally waits for the child to complete before issuing a new command prompt, but in some cases it can also issue a new prompt right away, without waiting for the child process to complete. ( The child is then said to be running "in the background", or "as a background process". )

        2.4.2 File Management

        • File management system calls include create file, delete file, open, close, read, write, reposition, get file attributes, and set file attributes.
        • These operations may also be supported for directories as well as ordinary files.
        • ( The actual directory structure may be implemented using ordinary files on the file system, or through other means. Further details will be covered in chapters 11 and 12. )

        2.4.3 Device Management

        • Device management system calls include request device, release device, read, write, reposition, get/set device attributes, and logically attach or detach devices.
        • Devices may be physical ( e.g. disk drives ), or virtual / abstract ( e.g. files, partitions, and RAM disks ).
        • Some systems represent devices as special files in the file system, so that accessing the "file" calls upon the appropriate device drivers in the OS. See for example the /dev directory on any UNIX system.

        2.4.4 Information Maintenance

        • Information maintenance system calls include calls to get/set the time, date, system data, and process, file, or device attributes.
        • Systems may also provide the ability to dump memory at any time, single step programs pausing execution after each instruction, and tracing the operation of programs, all of which can help to debug programs.

        2.4.5 Communication

        • Communication system calls create/delete communication connection, send/receive messages, transfer status information, and attach/detach remote devices.
        • The message passing model must support calls to:
          • Identify a remote process and/or host with which to communicate.
          • Establish a connection between the two processes.
          • Open and close the connection as needed.
          • Transmit messages along the connection.
          • Wait for incoming messages, in either a blocking or non-blocking state.
          • Delete the connection when no longer needed.
          • Create and access memory that is shared amongst processes ( and threads. )
          • Provide locking mechanisms restricting simultaneous access.
          • Free up shared memory and/or dynamically allocate it as needed.

          2.4.6 Protection

          • Protection provides mechanisms for controlling which users / processes have access to which system resources.
          • System calls allow the access mechanisms to be adjusted as needed, and for non-priveleged users to be granted elevated access permissions under carefully controlled temporary circumstances.
          • Once only of concern on multi-user systems, protection is now important on all systems, in the age of ubiquitous network connectivity.

          2.5 System Programs

          • System programs provide OS functionality through separate applications, which are not part of the kernel or command interpreters. They are also known as system utilities or system applications.
          • Most systems also ship with useful applications such as calculators and simple editors, ( e.g. Notepad ). Some debate arises as to the border between system and non-system applications.
          • System programs may be divided into these categories:
            • File management - programs to create, delete, copy, rename, print, list, and generally manipulate files and directories.
            • Status information - Utilities to check on the date, time, number of users, processes running, data logging, etc. System registries are used to store and recall configuration information for particular applications.
            • File modification - e.g. text editors and other tools which can change file contents.
            • Programming-language support - E.g. Compilers, linkers, debuggers, profilers, assemblers, library archive management, interpreters for common languages, and support for make.
            • Program loading and execution - loaders, dynamic loaders, overlay loaders, etc., as well as interactive debuggers.
            • Communications - Programs for providing connectivity between processes and users, including mail, web browsers, remote logins, file transfers, and remote command execution.
            • Background services - System daemons are commonly started when the system is booted, and run for as long as the system is running, handling necessary services. Examples include network daemons, print servers, process schedulers, and system error monitoring services.

            2.6 Operating-System Design and Implementation

            2.6.1 Design Goals

            • Požiadavky define properties which the finished system must have, and are a necessary first step in designing any large complex system.
              • User requirements are features that users care about and understand, and are written in commonly understood vernacular. They generally do not include any implementation details, and are written similar to the product description one might find on a sales brochure or the outside of a shrink-wrapped box.
              • System requirements are written for the developers, and include more details about implementation specifics, performance requirements, compatibility constraints, standards compliance, etc. These requirements serve as a "contract" between the customer and the developers, ( and between developers and subcontractors ), and can get quite detailed.

              2.6.2 Mechanisms and Policies

              • Policies determine čo is to be done. Mechanisms determine ako it is to be implemented.
              • If properly separated and implemented, policy changes can be easily adjusted without re-writing the code, just by adjusting parameters or possibly loading new data / configuration files. For example the relative priority of background versus foreground tasks.

              2.6.3 Implementation

              • Traditionally OSes were written in assembly language. This provided direct control over hardware-related issues, but inextricably tied a particular OS to a particular HW platform.
              • Recent advances in compiler efficiencies mean that most modern OSes are written in C, or more recently, C++. Critical sections of code are still written in assembly language, ( or written in C, compiled to assembly, and then fine-tuned and optimized by hand from there. )
              • Operating systems may be developed using emulators of the target hardware, particularly if the real hardware is unavailable ( e.g. not built yet ), or not a suitable platform for development, ( e.g. smart phones, game consoles, or other similar devices. )

              2.7 Operating-System Structure

              For efficient performance and implementation an OS should be partitioned into separate subsystems, each with carefully defined tasks, inputs, outputs, and performance characteristics. These subsystems can then be arranged in various architectural configurations:

              2.7.1 Simple Structure

              When DOS was originally written its developers had no idea how big and important it would eventually become. It was written by a few programmers in a relatively short amount of time, without the benefit of modern software engineering techniques, and then gradually grew over time to exceed its original expectations. It does not break the system into subsystems, and has no distinction between user and kernel modes, allowing all programs direct access to the underlying hardware. ( Note that user versus kernel mode was not supported by the 8088 chip set anyway, so that really wasn't an option back then. )


              Figure 2.11 - MS-DOS layer structure

              The original UNIX OS used a simple layered approach, but almost all the OS was in one big layer, not really breaking the OS down into layered subsystems:

              Figure 2.12 - Traditional UNIX system structure

              2.7.2 Layered Approach

              • Another approach is to break the OS into a number of smaller layers, each of which rests on the layer below it, and relies solely on the services provided by the next lower layer.
              • This approach allows each layer to be developed and debugged independently, with the assumption that all lower layers have already been debugged and are trusted to deliver proper services.
              • The problem is deciding what order in which to place the layers, as no layer can call upon the services of any higher layer, and so many chicken-and-egg situations may arise.
              • Layered approaches can also be less efficient, as a request for service from a higher layer has to filter through all lower layers before it reaches the HW, possibly with significant processing at each step.

              2.7.3 Microkernels

              • The basic idea behind micro kernels is to remove all non-essential services from the kernel, and implement them as system applications instead, thereby making the kernel as small and efficient as possible.
              • Most microkernels provide basic process and memory management, and message passing between other services, and not much more.
              • Security and protection can be enhanced, as most services are performed in user mode, not kernel mode.
              • System expansion can also be easier, because it only involves adding more system applications, not rebuilding a new kernel.
              • Mach was the first and most widely known microkernel, and now forms a major component of Mac OSX.
              • Windows NT was originally microkernel, but suffered from performance problems relative to Windows 95. NT 4.0 improved performance by moving more services into the kernel, and now XP is back to being more monolithic.
              • Another microkernel example is QNX, a real-time OS for embedded systems.

              2.7.4 Modules

              • Modern OS development is object-oriented, with a relatively small core kernel and a set of modules which can be linked in dynamically. See for example the Solaris structure, as shown in Figure 2.13 below.
              • Modules are similar to layers in that each subsystem has clearly defined tasks and interfaces, but any module is free to contact any other module, eliminating the problems of going through multiple intermediary layers, as well as the chicken-and-egg problems.
              • The kernel is relatively small in this architecture, similar to microkernels, but the kernel does not have to implement message passing since modules are free to contact each other directly.


              Figure 2.15 - Solaris loadable modules

              2.7.5 Hybrid Systems

              2.7.5.1 Mac OS X

              • The Max OSX architecture relies on the Mach microkernel for basic system management services, and the BSD kernel for additional services. Application services and dynamically loadable modules ( kernel extensions ) provide the rest of the OS functionality:


              Figure 2.16 - The Mac OS X structure

              2.7.5.2 iOS

              • The iOS operating system was developed by Apple for iPhones and iPads. It runs with less memory and computing power needs than Max OS X, and supports touchscreen interface and graphics for small screens:


              Figure 2.17 - Architecture of Apple's iOS.

              2.7.5.3 Android

              • The Android OS was developed for Android smartphones and tablets by the Open Handset Alliance, primarily Google.
              • Android is an open-source OS, as opposed to iOS, which has lead to its popularity.
              • Android includes versions of Linux and a Java virtual machine both optimized for small platforms.
              • Android apps are developed using a special Java-for-Android development environment.


              Figure 2.18 - Architecture of Google's Android

              2.8 Operating-System Debugging

              Kernighan's Law

              "Debugging is twice as hard as writing the code in the first place. Preto
              if you write the code as cleverly as possible, you are, by definition, not smart
              enough to debug it."

              2.8.1 Failure Analysis

              • Debuggers allow processes to be executed stepwise, and provide for the examination of variables and expressions as the execution progresses.
              • Profilers can document program execution, to produce statistics on how much time was spent on different sections or even lines of code.
              • If an ordinary process crashes, a memory dump of the state of that process's memory at the time of the crash can be saved to a disk file for later analysis.
                • The program must be specially compiled to include debugging information, which may slow down its performance.
                • The performance hit caused by adding the debugging ( tracing ) code would be unacceptable. ( Particularly if one tried to "single-step" the OS while people were trying to use it to get work done! )
                • Many parts of the OS run in kernel mode, and make direct access to the hardware.
                • If an error occurred during one of the kernel's file-access or direct disk-access routines, for example, then it would not be practical to try to write a crash dump into an ordinary file on the filesystem.
                  • Instead the kernel crash dump might be saved to a special unallocated portion of the disk reserved for that purpose.

                  2.8.2 Performance Tuning

                  • Performance tuning ( debottlenecking ) requires monitoring system performance.
                  • One approach is for the system to record important events into log files, which can then be analyzed by other tools. These traces can also be used to evaluate how a proposed new system would perform under the same workload.
                  • Another approach is to provide utilities that will report system status upon demand, such as the unix "top" command. ( w, uptime, ps, etc. )
                  • System utilities may provide monitoring support.

                  2.8.3 DTrace

                  • DTrace is a special facility for tracing a running OS, developed for Solaris 10.
                  • DTrace adds "probes" directly into the OS code, which can be queried by "probe consumers".
                  • Probes are removed when not in use, so the DTrace facility has zero impact on the system when not being used, and a proportional impact in use.
                  • Consider, for example, the trace of an ioctl system call as shown in Figure 2.22 below.


                  Figure 2.20 - Solaris 10 dtrace follows a system call within the kernel

                  • Probe code is restricted to be "safe", ( e.g. no loops allowed ), and to use a minimum of system resources.
                  • When a probe fires, enabling control blocks, ECBs,are performed, each having the structure of an if-then block
                  • When a consumer terminates, the ECBs associated with that consumer are removed. When no more ECBs remain interested in a particular probe, then that probe is also removed.
                  • For example, the following D code monitors the CPU time of each process running with user ID of 101. The output is shown in Figure 2.23 below.

                  sched. on-cpu
                  uid == 101
                  <
                  self->ts = timestamp

                  >

                  sched. off-cpu
                  self->ts
                  <
                  @time[execname] = sum( timestamp - self->ts )
                  self->ts = 0

                  >


                  Figure 2.21

                  2.9 Operating-System Generation

                  • OSes may be designed and built for a specific HW configuration at a specific site, but more commonly they are designed with a number of variable parameters and components, which are then configured for a particular operating environment.
                  • Systems sometimes need to be re-configured after the initial installation, to add additional resources, capabilities, or to tune performance, logging, or security.
                  • Information that is needed to configure an OS include:
                    • What CPU(s) are installed on the system, and what optional characteristics does each have?
                    • How much RAM is installed? ( This may be determined automatically, either at install or boot time. )
                    • What devices are present? The OS needs to determine which device drivers to include, as well as some device-specific characteristics and parameters.
                    • What OS options are desired, and what values to set for particular OS parameters. The latter may include the size of the open file table, the number of buffers to use, process scheduling ( priority ) parameters, disk scheduling algorithms, number of slots in the process table, etc.
                    • At one extreme the OS source code can be edited, re-compiled, and linked into a new kernel.
                    • More commonly configuration tables determine which modules to link into the new kernel, and what values to set for some key important parameters. This approach may require the configuration of complicated makefiles, which can be done either automatically or through interactive configuration programs Then make is used to actually generate the new kernel specified by the new parameters.
                    • At the other extreme a system configuration may be entirely defined by table data, in which case the "rebuilding" of the system merely requires editing data tables.
                    • Once a system has been regenerated, it is usually required to reboot the system to activate the new kernel. Because there are possibilities for errors, most systems provide some mechanism for booting to older or alternate kernels.

                    2.10 System Boot

                    • When the system powers up, an interrupt is generated which loads a memory address into the program counter, and the system begins executing instructions found at that address. This address points to the "bootstrap" program located in ROM chips ( or EPROM chips ) on the motherboard.
                    • The ROM bootstrap program first runs hardware checks, determining what physical resources are present and doing power-on self tests ( POST ) of all HW for which this is applicable. Some devices, such as controller cards may have their own on-board diagnostics, which are called by the ROM bootstrap program.
                    • The user generally has the option of pressing a special key during the POST process, which will launch the ROM BIOS configuration utility if pressed. This utility allows the user to specify and configure certain hardware parameters as where to look for an OS and whether or not to restrict access to the utility with a password.
                      • Some hardware may also provide access to additional configuration setup programs, such as for a RAID disk controller or some special graphics or networking cards.
                      • ( The getty program initializes terminal I/O, issues the login prompt, accepts login names and passwords, and authenticates the user. If the user's password is authenticated, then the getty looks in system files to determine what shell is assigned to the user, and then "execs" ( becomes ) the user's shell. The shell program will look in system and user configuration files to initialize itself, and then issue prompts for user commands. Whenever the shell dies, either through logout or other means, then the system will issue a new getty for that terminal device. )

                      2.11 Summary

                      Old 2.8 Virtual Machines ( Moved elsewhere in the 9th edition. )

                      • The concept of a virtual machine is to provide an interface that looks like independent hardware, to multiple different OSes running simultaneously on the same physical hardware. Each OS believes that it has access to and control over its own CPU, RAM, I/O devices, hard drives, etc.
                      • One obvious use for this system is for the development and testing of software that must run on multiple platforms and/or OSes.
                      • One obvious difficulty involves the sharing of hard drives, which are generally partitioned into separate smaller virtual disks for each operating OS.


                      Figure 16.1 - System models. (a) Nonvirtual machine. (b)Virtual machine.


                      GIS Introduction by David J. Buckey

                      Most GIS's provide the capability to build complex models by combining primitive analytical functions. Systems vary as to the complexity provided for spatial modelling, and the specific functions that are available. However, most systems provide a standard set of primitive analytical functions that are accessible to the user in some logical manner. Aronoff identifies four categories of GIS analysis functions. Sú to tieto:

                      Retrieval, Reclassification, and Generalization
                      Topological Overlay Techniques
                      Neighbourhood Operations and
                      Connectivity Functions.

                      The range of analysis techniques in these categories is very large. Accordingly, this section of the book focuses on providing an overview of the fundamental primitive functions that are most often utilized in spatial analyses.

                      Retrieval, Reclassification and Generalization

                      Perhaps the initial GIS analysis that any user undertakes is the retrieval and/or reclassification of data. Retrieval operations occur on both spatial and attribute data. Often data is selected by an attribute subset and viewed graphically. Retrieval involves the selective search, manipulation, and output of data without the requirement to modify the geographic location of the features involved.

                      Reclassification involves the selection and presentation of a selected layer of data based on the classes or values of a specific attribute, e.g. cover group. It involves looking at an attribute, or a series of attributes, for a single data layer and classifying the data layer based on the range of values of the attribute. Accordingly, features adjacent to one another that have a common value, e.g. cover group, but differ in other characteristics, e.g. tree height, species, will be treated and appear as one class. In raster based GIS software, numerical values are often used to indicate classes. Reclassification is an attribute generalization technique. Typically this function makes use of polygon patterning techniques such as crosshatching and/or color shading for graphic representation.

                      In a vector based GIS, boundaries between polygons of common reclassed values should be rozpustený to create a cleaner map of homogeneous continuity. Raster reclassification intrinsically involves boundary dissolving. The dissolving of map boundaries based on a specific attribute value often results in a new data layer being created. This is often done for visual clarity in the creation of derived maps. Almost all GIS software provides the capability to easily dissolve boundaries based on the results of a reclassification. Some systems allow the user to create a new data layer for the reclassification while others simply dissolve the boundaries during data output.

                      One can see how the querying capability of the DBMS is a necessity in the reclassification process. The ability and process for displaying the results of reclassification, a map or report, will vary depending on the GIS. In some systems the querying process is independent from data display functions, while in others they are integrated and querying is done in a graphics mode. The exact process for undertaking a reclassification varies greatly from GIS to GIS. Some will store results of the query in query sets independent from the DBMS, while others store the results in a newly created attribute column in the DBMS. The approach varies drastically depending on the architecture of the GIS software.

                      Topological Overlay

                      The capability to overlay multiple data layers in a vertical fashion is the most required and common technique in geographic data processing. In fact, the use of a topological data structure can be traced back to the need for overlaying vector data layers. With the advent of the concepts of mathematical topology polygon overlay has become the most popular geoprocessing tool, and the basis of any functional GIS software package.

                      Topological overlay is predominantly concerned with overlaying polygon data with polygon data, e.g. soils and forest cover. However, there are requirements for overlaying point, linear, and polygon data in selected combinations, e.g. point in polygon, line in polygon, and polygon on polygon are the most common. Vector and raster based software differ considerably in their approach to topological overlay.

                      Raster based software is oriented towards arithmetic overlay operations, e.g. the addition, subtraction, division, multiplication of data layers. The nature of the one attribute mapapproach, typical of the raster data model, usually provides a more flexible and efficient overlay capability. The raster data model affords a strong numerically modelling (quantitative analysis) modelling capability. Most sophisticated spatial modelling is undertaken within the raster domain.

                      In vector based systems topological overlay is achieved by the creation of a new topological network from two or more existing networks. This requires the rebuilding of topological tables, e.g. arc, node, polygon, and therefore can be time consuming and CPU intensive. The result of a topological overlay in the vector domain is a new topological network that will contain attributes of the original input data layers. In this way selected queries can then be undertaken of the original layer, e.g. soils and forest cover, to determine where specific situations occur, e.g. deciduous forest cover where drainage is poor.

                      Most GIS software makes use of a consistent logic for the overlay of multiple data layers. The rules of Boolean logic are used to operate on the attributes and spatial properties of geographic features. Boolean algebra uses the operators AND, OR, XOR, NOT to see whether a particular condition is true or false. Boolean logic represents all possible combinations of spatial interaction between different features. The implementation of Boolean operators is often transparent to the user.

                      To date the primary analysis technique used in GIS applications, vector and raster, is the topological overlay of selected data layers.

                      Generally, GIS software implements the overlay of different vector data layers by combining the spatial and attribute data files of the layers to create a new data layer. Again, different GIS software utilize varying approaches for the display and reporting of overlay results. Some systems require that topological overlay occur on only two data layers at a time, creating a third layer.

                      Toto pairwise approach requires the nesting of multiple overlays to generate a final overlay product, if more than two data layers are involved. This can result in numerous intermediate or temporary data layers. Some systems create a complete topological structure at the data verification stage, and the user merely submits a query string for the combined topological data. Other systems allow the user to overlay multiple data layers at one time. Each approach has its drawbacks depending on the application and the nature of the implementation. Determining the most appropriate method is based on the type of application, practical considerations such as data volumes and CPU power, and other considerations such personnel and time requirements. Overall, the flexibility provided to the operator and the level of performance varies widely among GIS software offerings.

                      The following diagram illustrates a typical overlay requirements where several different layers are spatially joined to created a new topological layer. By combining multiple layers in a topological fashion complex queries can be answered concerning attributes of any layer.


                      Zhrnutie

                      Most complex web sites share aspects of all three types of information structures. Site hierarchy is created largely with standard navigational links within the site, but topical links embedded within the content create a weblike mesh of associative links that transcends the usual navigation and site structure. Except in sites that rigorously enforce a sequence of pages, users are likely to traverse your site in a free-form weblike manner, jumping across regions in the information architecture, just as they would skip through chapters in a reference book. Ironically, the clearer and more concrete your site organization is, the easier it is for users to jump freely from place to place without feeling lost (fig. 3.8).

                      Figure 3.8 &mdash We structure sites as hierarchies, but users seldom use them that way. A clear information structure allows the user to move freely and confidently through your site.

                      The nonlinear usage patterns typical of web users do not absolve you of the need to organize your thinking and present it within a clear, consistent structure that complements your overall design goals. Figure 3.9 summarizes the three basic organization patterns against the linearity of the narrative and the complexity of the content.

                      Figure 3.9 &mdash Choose the right site structure for your audience and content.


                      Pozri si video: Jak namalovat první vrstvu jehličnatého stromu #6.