Daugiau

Kaip iš daugiakampio sluoksnio sudaryti Hierarchinio medžio diagramą?


Turiu daugiakampį sluoksnį su 5 hierarchiniais lygiais. Pridėjau 3 laukus, nurodančius lygį ir grupę. Hierarchija taip pat rodoma erdvėje, t. dideliame daugiakampyje yra kiti žemesnio lygio daugiakampiai, esantys toje grupėje.

Koks yra geriausias įrankis iš duomenų sukurti hierarchinio medžio diagramą?

Neturiu „Schematics“ ar „Visio“ licencijos. Turiu Excel 2007.


Yra nemokama programa, vadinama yed kuris gali sukurti schemas ir hierarchines diagramas. Vienas iš importavimo formatų yra „Excel“. Galite eksportuoti sluoksnį kaip „Excel“ failą naudodami Lentelė į „Excel“ įrankis.

Praleidau apie penkias minutes bandydamas importuoti hierarchinį failą, kurį sukūriau trimis lygiais ir vidutiniškai sėkmingai. Nors pagalbos neskaičiau. Taip pat galbūt norėsite pabandyti eksportuoti savo duomenis kaip tam tikrą XML formą, kurią taip pat gali skaityti „YEd“.


Ar yra būdas garantuoti „NetworkX“ hierarchinę išvestį?

Bandau sudaryti a schemą medis struktūra. Man pavyko sukurti reprezentatyvius grafikus naudojant „networkx“, bet man reikia būdo parodyti medis struktūrą, kai išvedu siužetą. Aš naudoju matplotlib.pylab grafikui sudaryti.

Turiu parodyti duomenis panašioje struktūroje, kaip parodyta čia. Nors aš neturiu grafikų.

Kaip galiu garantuoti tokią struktūrą?

Pavyzdžiai netikintiems:

Man pavyko parodyti grafikus su „pylab“ ir „graphviz“, tačiau nė vienas nesiūlo ieškomos medžio struktūros. Išbandžiau kiekvieną „Networkx“ siūlomą išdėstymą, tačiau nė vienas iš jų nerodo a hierarchija. Tik nežinau ką parinktys/režimas jį duoti ARBA jei reikia naudoti svorius. Bet kokie pasiūlymai padės daugeliui.

Štai apytikslis aprašymas, ką aš naudoju rengdamas aukščiau pateiktus sklypus. Pridėjau keletą etikečių, bet kitaip tas pats.


Agentų duomenų bazė

Aukščiau pateiktoje diagramoje agentas užsako kelis pramogautojus, o kiekvienas pramogautojas savo ruožtu turi savo tvarkaraštį. Agento pareiga yra išlaikyti kelis klientus, kurių pramogų poreikius reikia patenkinti. Klientas užsako įsipareigojimą per agentą ir sumoka agentui už jo paslaugas.

Santykius šiame duomenų bazės modelyje vaizduoja terminas tėvas/vaikas. Šio tipo santykiuose pagrindinė lentelė gali būti susieta su viena ar daugiau antrinių lentelių, tačiau viena antrinė lentelė gali būti susieta tik su viena iš tėvų lentelių. Lentelės yra aiškiai susietos per rodyklę/indeksą arba fizinį lentelių įrašų išdėstymą.

Vartotojas gali pasiekti duomenis pradėdamas nuo šakninės lentelės ir pereidamas prie medžio iki tikslinių duomenų. vartotojas turi būti susipažinęs su duomenų bazės struktūra, kad galėtų prieiti prie duomenų be jokio sudėtingumo.

Privalumai

  • Vartotojas gali labai greitai gauti duomenis dėl aiškių nuorodų tarp lentelės struktūrų.
  • Nuorodų vientisumas yra integruotas ir automatiškai vykdomas, todėl antrinės lentelės įrašas turi būti susietas su esamu pirminės lentelės įrašu, taip pat jei įrašas ištrinamas pirminėje lentelėje, tai sukels visus susijusius įrašus vaikų lentelė taip pat turi būti ištrinta.

Trūkumai

  • Kai vartotojui reikia išsaugoti įrašą antrinėje lentelėje, kuris šiuo metu nesusijęs su jokiu pirminės lentelės įrašu, jį sunku įrašyti ir vartotojas turi įrašyti papildomą įrašą pirminėje lentelėje.
  • Šio tipo duomenų bazės negali palaikyti sudėtingų santykių, taip pat yra pertekliaus problema, dėl kurios gali atsirasti netiksli informacija dėl nenuoseklaus duomenų įrašymo įvairiose svetainėse.

Apsvarstykite pavyzdį, naudodami ankstesnėje diagramoje pateiktą duomenų bazės diagramą. Vartotojas negali įrašyti naujo linksmintojo įrašo į pramogų lentelę, kol pramogautojas nebus priskirtas konkrečiam agentui lentelėje Agentai, nes antrinės lentelės įrašas (Pramogos) turi būti susijęs su pagrindinės lentelės įrašu (agentai) . Todėl šio tipo duomenų bazėms kyla problemų dėl nereikalingų duomenų. Pavyzdžiui, jei tarp klientų ir pramogautojų yra daug santykių, pramogautojas pasirodys daugeliui klientų, o klientas samdys daugybę pramogų. Šio tipo santykiai hierarchinėje duomenų bazėje negali būti lengvai modeliuojami, todėl kūrėjai turi įvesti perteklinius duomenis tiek į tvarkaraščius, tiek į užduotis.

  • Lentelėje Tvarkaraštis dabar bus kliento duomenys, kuriuose yra tokios informacijos kaip kliento vardas, adresas ir telefono numeris, kad būtų galima parodyti, kam ir kur kiekvienas pramogautojas koncertuoja. Šie duomenys yra nereikalingi, nes šiuo metu jie taip pat saugomi lentelėje Klientai.
  • Lentelėje „Užduotys“ dabar bus pateikiami duomenys apie pramogautojus, kuriuose yra informacijos, pvz., Pramogautojo vardas, telefono numeris ir pramogautojo tipas, nurodantys, kurie pramogautojai atlieka tam tikrą klientą. Šie duomenys taip pat nereikalingi, nes šiuo metu saugomi pramogų lentelėje.

Šio pertekliaus problema yra ta, kad dėl to gali susidaryti netiksli informacija, nes tai leidžia vartotojui leisti nenuosekliai įvesti vieną duomenų dalį.

Šią problemą galima išspręsti sukūrus vieną hierarchinę duomenų bazę, skirtą pramogautojams, o kitą - specialiai agentams. „Entertainers“ duomenų bazėje bus tik pramogų lentelėje įrašyti duomenys, o peržiūrėtoje agentų duomenų bazėje - „Agents“, „Clients“, „Payments“ ir „Engagements“ lentelėse įrašyti duomenys. nereikia, nes galite apibrėžti loginį antrinį ryšį tarp lentelės „Įtraukimai“ agentų duomenų bazėje ir pramogų organizatorių duomenų bazės pramogų lentelės. Esant šiems santykiams, galite gauti įvairios informacijos, pvz., Užsakyto pramogų sąrašo konkrečiam klientui arba tam tikro pramogautojo pasirodymų tvarkaraščio. Žemiau esanti schema apibūdina visą paveikslėlį.

Hierarchinė duomenų bazė puikiai tiko juostų saugojimo sistemoms, kuri buvo naudojama aštuntajame dešimtmetyje, ir buvo labai populiari organizacijose, kurių duomenų bazė yra pagrįsta šiomis sistemomis. Tačiau, nors hierarchinė duomenų bazė suteikė greitą ir tiesioginę prieigą prie duomenų ir buvo naudinga keliomis aplinkybėmis, buvo aišku, kad reikalingas naujas duomenų bazės modelis, skirtas spręsti didėjančias duomenų pertekliaus problemas ir sudėtingus duomenų ryšius.

Šio duomenų bazės modelio idėja yra naudinga tam tikro tipo duomenims saugoti, tačiau ji nėra labai universali ir apsiriboja tam tikrais tikslais.

Pavyzdžiui, kai kiekvienas įmonės asmuo gali pranešti tam tikram padaliniui, departamentas gali būti naudojamas kaip pirminis įrašas, o atskiri darbuotojai atstovaus antriniams įrašams, kurių kiekvienas susiejamas su tuo vienu pirminiu įrašu hierarchinėje struktūroje.


Blokinė diagrama | Pilnas vadovas su pavyzdžiais

Jei norite pradėti naują sistemą ir esate jos planavimo etape, jums reikia: a blokinė schema vizualiai iliustruoti ir paaiškinti savo idėją. Ne tik tai, bet ir gerai paruošta blokinė schema taip pat pateikiama numatomų proceso rezultatų, kuriuos planuojate įgyvendinti, apžvalga.

Todėl čia sužinosite, kas yra blokinės diagramos ir kokie jų privalumai, į kokius dalykus reikia atsižvelgti rengiant blokinė schema , ir kaip tai padaryti kuo lengvesniu būdu su mažiausiomis pastangomis.

Kas yra blokinė diagrama

Trumpai tariant, blokinė diagrama yra mažiau išsami schemų schema, skirta parodyti, kaip nauja sistema arba patobulinta esamos sistemos versija veiktų, kad būtų atlikta tam tikra užduotis. Blokinė schema dažniausiai naudojama inžinerijos srityje, kur kiekvienas proceso aspektas turi būti sausas (paprastai popieriuje), kol jis praktiškai įgyvendinamas.

Skirtingai nuo įprastų schemų, blokinė diagrama sutelkiama į pagrindinius siūlomos sistemos elementus, o ne visą procesą išsamiai aprašant.

Tikslas ir nauda

Pagrindinis blokinės diagramos sudarymo tikslas yra apžvelgti darbo eigą, kurios galima tikėtis iš sistemos ją baigus. Turėdami aiškią iliustraciją, inžinieriams tampa lengva įvertinti sklandų proceso veikimą ir nustatyti esamus elementus (arba trūkstamus), kurie gali trukdyti, trukdyti ar be reikalo atidėti produkciją.

Blokinės schemos pranašumas yra tas, kad ji padeda inžinieriams ir jų komandos draugams suprasti idėją, neperžiūrint ilgų sakinių. Tai padeda darbuotojams įveikti kalbos barjerą, su kuriuo turi susidurti daugelis organizacijų/padalinių, samdydami žmones iš įvairių pasaulio regionų.

Blokinės diagramos simboliai

Blokinę schemą daugiausia sudaro stačiakampio formos, žinomos kaip blokai, ir tiesios linijos su rodyklėmis pabaigoje. Nors blokai atspindi pagrindinius viso proceso elementus, rodyklėmis pažymėtos linijos rodo ryšį tarp dviejų objektų ir duomenų, informacijos, apdorojimo, signalų ar elektros srovės srauto krypties.

Svarbu atkreipti dėmesį ir visada nepamiršti, kad visi blokai ir jungiamosios linijos turi būti gerai paženklinti. Kai blokas turi būti pažymėtas etikete, jo pavadinimas (elementas, kurį jis atstovauja) turi būti parašytas stačiakampio viduje. Kita vertus, jungiamųjų linijų atveju pavadinimas gali būti užrašytas virš jų arba po jomis tinkamu atstumu.

Toliau pateiktame paveikslėlyje parodyti du pagrindiniai simboliai ir jų reikšmė tipinėje blokinėje diagramoje:

Pastaba: nors stačiakampiai ir rodyklėmis pažymėtos linijos dažniausiai naudojamos blokinei diagramai kurti, kai kurios šiuolaikinės ir pažangios kompiuterinės programos leidžia naudoti/pridėti kitų dekoratyvinių formų, kad tokios iliustracijos atrodytų patrauklesnės.

Ką daryti prieš kuriant blokinę schemą

Svarbu gerai suprasti sistemą, kurią ketinate piešti blokinė schema apie. Turėdami aiškią mintį, iliustracijos, kurias įdėsite į popierių, bus informatyvesnės ir naudingesnės jūsų komandos nariams ir kitiems jūsų projekte dalyvaujantiems žmonėms.

Kadangi jūs piešiate a blokinė schema, įsitikinkite, kad ant popieriaus užrašėte svarbius elementus, jų santykį su kitais objektais ir informacijos/proceso srauto kryptį. Kadangi kurdami diagramą tokius užrašus skaitysite tik jūs, galite šį stenogramą paruošti jums patogiu metu. Kai turinys parašytas, jis gali būti naudojamas kaip informacinis vadovas.

Nors a blokinė schema dažniausiai naudojamas tik pagrindiniams elementams iliustruoti ir viso sistemos proceso apžvalgai, jei reikia atlikti gilesnę analizę, galite laisvai padaryti piešinį kiek įmanoma išsamesnį.

Anksčiau blokinės diagramos buvo piešiamos spalvotais žymekliais ant ilgų popieriaus lapų (vadinamų diagramų lapais). Tačiau tobulėjant technologijoms ir lengvai pasiekiant išmaniuosius įrenginius, pvz., Planšetinį kompiuterį ar kompiuterį, būtų labai patogu, jei norėtumėte naudoti tokią efektyvią piešimo programą, kaip „Wondershare EdrawMax“, ir rankiniu būdu persistengti.

Kaip sukurti blokinę diagramą „EdrawMax“

Kaip minėta aukščiau, „Wondershare EdrawMax“ yra efektyvus piešimo įrankis. Programa gali būti naudojama kaip gera alternatyva „Microsoft Visio“, kuri yra ne tik brangi. Jis taip pat yra daug sudėtingesnis, palyginti su „EdrawMax“.

Be to, „EdrawMax“ yra keletas bibliotekų, kuriose yra daugybė sričiai būdingų formų ir simbolių, padedančių greitai nupiešti norimas iliustracijas. Programoje esantys šablonai netgi leidžia praleisti pagrindinius figūrų pridėjimo prie drobės veiksmus ir iškart galite pradėti nuo žymėjimo dalies, pasirinkę vieną iš jūsų pageidaujamų.

Padaryti blokinė schema „Wondershare EdrawMax“ galite sekti toliau pateiktas instrukcijas:

1 veiksmas: pasirinkite blokinės diagramos šabloną

Paleiskite „Wondershare EdrawMax“ savo kompiuteryje, įsitikinkite Naujas yra pasirinktas naršymo srityje kairėje, patvirtinkite tai Pagrindinė diagrama yra pasirinktas diagramos tipų sąraše viduryje ir spustelėkite, kad pasirinktumėte Blokinė diagrama iš viršutinės dešiniojo lango eilutės. Tada spustelėkite norimą blokinė schema šabloną iš turimų, esančių apatinėje dešiniojo ekrano srityje.

2 žingsnis: pažymėkite formas

Kai darbo vietoje atsidarys šablonas, dukart spustelėkite pirmąją formą ir redaguokite jos etiketę, kad ji atitiktų jūsų domeno pavadinimą ar žargoną. Pakartokite šį procesą visiems diagramos blokams (elementams).

3 veiksmas: redaguokite diagramą

Norėdami pridėti išsamią informaciją diagramoje, galite nuvilkti bet kurią figūrą iš bibliotekos kairėje srityje į drobę ir prireikus pažymėti ją etikete. Taip pat svarbu pridėti santykių liniją, jungiančią esamą bloką su pridėtu, kad iliustracija atrodytų santykinė ir išsami. Norėdami formatuoti esamą formą, galite naudoti įrankius, esančius dešinėje sąsajos srityje.

4 veiksmas: išsaugokite ir eksportuokite blokinę schemą

Baigę piešti a blokinė schema, spustelėkite Sutaupyti (Diskelis) piktogramą iš sparčiosios prieigos įrankių juostos, esančios viršutiniame kairiajame sąsajos kampe. Tada, norėdami eksportuoti iliustraciją, spustelėkite Daugiau mygtuką šalia Eksportuoti piktogramą viršutiniame kairiajame kampe ir pasirinkite pageidaujamą formatą, į kurį norite eksportuoti diagramą.

Bloko diagramos sudarymo patarimai

Kai kurie geriausios praktikos pavyzdžiai, kurių visada laikėsi daugelis specialistų, ir siūlo visiems kitiems daryti tą patį:

  • Dideli ir aiškūs simboliai - Nesvarbu, koks mažas ar didelis yra lapas ar drobė, nepamirškite piešti pakankamai didelių simbolių ir piktogramų, kad jie būtų aiškiai matomi ir įskaitomi
  • Teisingas ženklinimas - Ženklindami blokus turite būti itin atidūs. Net viena klaida įvardijant gali sukelti visiškai kitokią išvestį
  • Teisinga srauto kryptis - Kaip ir ženklinant, kiekvienoje a dalyje parodoma teisinga srauto kryptis blokinė schema ne mažiau svarbu laukiamam rezultatui pasiekti
  • Keletas sausų bėgimų - Būtinai įvertinkite blokinė schema kelis kartus po jo sukūrimo. Tai užtikrins, kad gausite produktą/rezultatą pagal jūsų lūkesčius

Blokinės diagramos pavyzdys

Aukščiau blokinė schema šablonas iliustruoja NXP šaldytuvo veikimą. Kaip pastebėjote, pirmieji du blokai yra supakuoti į pirminį bloką, vaizduojantį vartotojo sąsają. Nors pirmasis vaikų blokas yra ekrano blokas, antrasis leidžia asmeniui bendrauti su įranga naudojant klaviatūrą. Programos valdymas, apvalus kampas, esantis centre, veikia kaip šaldytuvo smegenys (procesorius) ir yra atsakingas už įvairius procesus, kuriuos vėl vaizduoja skirtingi blokai. Funkcijų ir programos valdymo ryšys iliustruojamas jungiamųjų linijų pagalba. Kitas pagrindinis blokas, pavadintas „Motor Control“ apačioje, taip pat apima dviejų vaikų blokus, rodančius šaldytuvo variklio dalis.

Naudodamiesi aukščiau pateikta schema, inžinieriams ir darbuotojams būtų lengva suprasti, kaip veiktų visiškai funkcionalus šaldytuvas.

Išvada

Nors blokinėje diagramoje pateikiama sistemos ar proceso, kurį planuojate įgyvendinti, apžvalga, jei reikia, ji gali būti kuo išsamesnė, kad būtų aiškiau vadovybei, administracijai ir tiems, kurie nėra tiesiogiai susiję su kūrimu proceso darbas. Atsižvelgiant į tai, būtų protinga, jei naudosite tokį efektyvų įrankį kaip „Wondershare EdrawMax“, kad paspartintumėte visą diagramos kūrimo procesą ir parengtumėte lengvai suprantamą iliustraciją.


Hierarchinė failų sistema

A hierarchinė failų sistema kaip tvarkomi ir rodomi diskai, aplankai, failai ir kiti saugojimo įrenginiai operacinėje sistemoje. Hierarchinėje failų sistemoje diskai, aplankai ir failai rodomi grupėmis, todėl vartotojas gali matyti tik tuos failus, kuriuos jie nori matyti. Pavyzdžiui, paveikslėlyje rodomas „Windows“ katalogas („Windows“) aplankų hierarchija kuriame yra Sistema32, Užduotysir Žiniatinklis aplankus. Kiekvienas iš šių aplankų gali turėti šimtus savo failų, tačiau jei jie nėra atidaryti, failai nerodomi.

GUI operacinėse sistemose, pvz., „Microsoft Windows“, vartotojas dukart spustelėdamas piktogramą išplečia diską ar aplanką, kad pamatytų jo turinį. Suradę failą ar programą, dukart spustelėkite piktogramą, kad atidarytumėte failą arba paleistumėte programą.

Ne GUI operacinėje sistemoje, pvz., MS-DOS arba „Windows“ komandinėje eilutėje, diskas ir katalogai pateikiami kaip tekstas. Pavyzdžiui, jei buvote C: diske ir „Windows“ ritė katalogą, MS-DOS kelias gali atrodyti kaip šis pavyzdys.


Sprendimų medžio analizė yra mokslinis modelis ir dažnai naudojamas sprendimų priėmimo procesas organizacijų. Priimdama sprendimą, vadovybė jau numato alternatyvias idėjas ir sprendimus.

Prisijunkite prie mūsų ir gaukite neribotą prieigą

Prisijungę prie mūsų el. Mokymosi platformos, gausite neribotą prieigą prie visų (daugiau nei 1000) straipsnių, šablonų, vaizdo įrašų ir dar daugiau!

Naudojant sprendimų medį, alternatyvūs sprendimai ir galimi pasirinkimai iliustruojami grafiškai, todėl tampa lengviau padaryti gerai apgalvotą pasirinkimą.

Šiam grafiniam vaizdavimui būdinga į medį panaši struktūra, kurioje sprendimų priėmimo problemos gali būti matomos kaip schema, kiekviena iš jų turi alternatyvių pasirinkimų šakas.


„Cisco Networking Academy Connecting Networks Companion Guide“: Hierarchinis tinklo dizainas

„Cisco“ hierarchinis (trijų sluoksnių) interneto darbo modelis yra visoje pramonėje priimtas modelis, skirtas kuriant patikimą, keičiamą ir ekonomišką interneto darbą. Šiame skyriuje sužinosite apie prieigos, platinimo ir pagrindinius sluoksnius bei jų vaidmenį hierarchiniame tinklo modelyje.

„Enterprise Network Campus Design“ (1.1.1)

Aptariant tinklo miestelio dizainą rekomenduojama suprasti tinklo mastą ir gerai išmanyti inžinerijos principus.

Tinklo reikalavimai (1.1.1.1)

Aptariant tinklo dizainą naudinga suskirstyti tinklus pagal aptarnaujamų įrenginių skaičių:

  • Mažas tinklas: Teikia paslaugas iki 200 įrenginių.
  • Vidutinio dydžio tinklas: Teikia paslaugas nuo 200 iki 1000 įrenginių.
  • Didelis tinklas: Teikia paslaugas daugiau nei 1000 įrenginių.

Tinklo dizainas skiriasi priklausomai nuo organizacijos dydžio ir reikalavimų. Pavyzdžiui, mažos organizacijos, turinčios mažiau įrenginių, tinklo infrastruktūros poreikiai bus mažiau sudėtingi nei didelės organizacijos, turinčios daug įrenginių ir jungčių, infrastruktūra.

Kuriant tinklą reikia atsižvelgti į daugybę kintamųjų. Pavyzdžiui, apsvarstykite 1-1 paveiksle pateiktą pavyzdį. Aukšto lygio topologijos diagramos pavyzdys skirtas dideliam įmonių tinklui, kurį sudaro pagrindinė miestelio svetainė, jungianti mažas, vidutines ir dideles svetaines.

1-1 pav. Didelių įmonių tinklo projektavimas

Tinklo projektavimas yra besiplečianti sritis ir reikalauja daug žinių bei patirties. Šio skyriaus tikslas yra supažindinti su visuotinai pripažintomis tinklo projektavimo koncepcijomis.

„Cisco Certified Design Associate“ (CCDA ®) yra pramonės pripažintas sertifikatas, skirtas tinklo projektavimo inžinieriams, technikams ir pagalbiniams inžinieriams, kurie demonstruoja įgūdžius, reikalingus kuriant pagrindinius miestelius, duomenų centrus, saugumą, balso ir belaidžius tinklus.

Struktūriniai inžinerijos principai (1.1.1.2)

Nepriklausomai nuo tinklo dydžio ar reikalavimų, labai svarbus sėkmingo bet kokio tinklo dizaino įgyvendinimo veiksnys yra gerų struktūrizuotų inžinerijos principų laikymasis. Šie principai apima

  • Hierarchija: Hierarchinis tinklo modelis yra naudinga aukšto lygio priemonė kuriant patikimą tinklo infrastruktūrą. Tai suskaido sudėtingą tinklo projektavimo problemą į mažesnes ir lengviau valdomas sritis.
  • Moduliarumas: Skirstant įvairias tinklo funkcijas į modulius, tinklą lengviau suprojektuoti. „Cisco“ nustatė kelis modulius, įskaitant įmonės miestelį, paslaugų bloką, duomenų centrą ir interneto kraštą.
  • Atsparumas: Tinklas turi likti prieinamas naudoti tiek įprastomis, tiek nenormaliomis sąlygomis. Įprastos sąlygos apima įprastus ar numatomus eismo srautus ir eismo įpročius, taip pat suplanuotus įvykius, tokius kaip priežiūros langai. Nenormalios sąlygos apima techninės ar programinės įrangos gedimus, ekstremalias eismo apkrovas, neįprastus eismo įpročius, paslaugų atsisakymo (DoS) įvykius, tyčinius ar netyčinius, ir kitus neplanuotus įvykius.
  • Lankstumas: Galimybė modifikuoti tinklo dalis, pridėti naujų paslaugų ar padidinti pajėgumus, neatliekant didelio krautuvo atnaujinimo (t. Y. Pakeisti pagrindinius aparatūros įrenginius).

Kad būtų pasiekti šie pagrindiniai projektavimo tikslai, tinklas turi būti sukurtas remiantis hierarchine tinklo architektūra, kuri leistų lankstumą ir augimą.

Hierarchinis tinklo dizainas (1.1.2)

Šioje temoje aptariami trys funkciniai hierarchinio tinklo modelio sluoksniai: prieigos, paskirstymo ir pagrindiniai sluoksniai.

Tinklo hierarchija (1.1.2.1)

Ankstyvieji tinklai buvo dislokuoti plokščia topologija, kaip parodyta 1-2 paveiksle.

Centrai ir jungikliai buvo pridėti, nes reikėjo prijungti daugiau įrenginių. Plokščias tinklo dizainas suteikė mažai galimybių valdyti transliacijas arba filtruoti nepageidaujamą srautą. Kadangi į plokščią tinklą buvo įtraukta daugiau įrenginių ir programų, atsako laikas sutrumpėjo, todėl tinklas tapo netinkamas naudoti.

Reikėjo geresnio tinklo projektavimo metodo. Dėl šios priežasties organizacijos dabar naudoja hierarchinį tinklo dizainą, kaip parodyta 1-3 paveiksle.

Hierarchinis tinklo dizainas apima tinklo padalijimą į atskirus sluoksnius. Kiekvienas hierarchijos sluoksnis arba pakopa suteikia tam tikras funkcijas, apibrėžiančias jo vaidmenį visame tinkle. Tai padeda tinklo dizaineriui ir architektui optimizuoti ir pasirinkti tinkamą tinklo aparatinę įrangą, programinę įrangą ir funkcijas tam tikram tinklo sluoksnio vaidmeniui atlikti. Hierarchiniai modeliai taikomi tiek LAN, tiek WAN projektavimui.

Plokščio tinklo padalijimas į mažesnius, lengviau valdomus blokus yra tas, kad vietinis srautas išlieka vietinis. Tik srautas, skirtas kitiems tinklams, perkeliamas į aukštesnį sluoksnį. Pavyzdžiui, 1-3 paveiksle plokščias tinklas dabar yra padalintas į tris atskiras transliacijos sritis.

Įprastas įmonės hierarchinis LAN miestelio tinklo dizainas apima šiuos tris sluoksnius:

  • Prieigos sluoksnis: Suteikia darbo grupei/vartotojui prieigą prie tinklo
  • Paskirstymo sluoksnis: Užtikrina politika pagrįstą ryšį ir kontroliuoja ribą tarp prieigos ir pagrindinio sluoksnio
  • Pagrindinis sluoksnis: Užtikrina greitą transportavimą tarp paskirstymo jungiklių įmonės miestelyje

Kitas trijų sluoksnių hierarchinio tinklo dizaino pavyzdys pateiktas 1-4 paveiksle. Atkreipkite dėmesį, kad kiekvienas pastatas naudoja tą patį hierarchinį tinklo modelį, apimantį prieigos, paskirstymo ir pagrindinius sluoksnius.

1-4 pav. Kelių pastatų įmonių tinklo projektavimas

Nėra absoliučių miestelio tinklo fizinio kūrimo taisyklių. Nors tiesa, kad daugelis miestelių tinklų yra sukurti naudojant tris fizines jungiklių pakopas, tai nėra griežtas reikalavimas. Mažesniame miestelyje tinklas gali turėti dvi jungiklių pakopas, kuriose pagrindinis ir paskirstymo elementai yra sujungti į vieną fizinį jungiklį. Tai vadinama sugriuvusia pagrindine konstrukcija.

Prieigos sluoksnis (1.1.2.2)

LAN aplinkoje, prieigos sluoksnis paryškintas suteikia galiniams įrenginiams prieigą prie tinklo. WAN aplinkoje ji gali suteikti nuotolinio darbo darbuotojams ar nuotolinėms svetainėms prieigą prie įmonės tinklo per WAN ryšius.

Kaip parodyta 1-5 paveiksle, smulkaus verslo tinklo prieigos sluoksnis paprastai apima 2 sluoksnio jungiklius ir prieigos taškus, užtikrinančius ryšį tarp darbo vietų ir serverių.

Prieigos sluoksnis atlieka daugybę funkcijų, įskaitant

  • 2 sluoksnio perjungimas
  • Didelis prieinamumas
  • Uosto apsauga
  • QoS klasifikacija ir žymėjimas bei pasitikėjimo ribos
  • Adreso sprendimo protokolo (ARP) patikrinimas
  • Virtualios prieigos kontrolės sąrašai (VACL)
  • Spygliuojantis medis
  • Maitinimas per eternetą (PoE) ir pagalbiniai VLAN, skirti VoIP

Paskirstymo sluoksnis (1.1.2.3)

The paskirstymo sluoksnis sujungia duomenis, gautus iš prieigos sluoksnio jungiklių, prieš juos perduodant pagrindiniam sluoksniui, kad būtų nukreiptas į galutinę paskirties vietą. 1-6 paveiksle paskirstymo sluoksnis yra riba tarp 2 sluoksnio domenų ir 3 sluoksnio nukreipto tinklo.

Paskirstymo sluoksnio įtaisas yra pagrindinis laidų spintelių taškas. Maršrutizatorius arba daugiasluoksnis jungiklis naudojamas darbo grupėms segmentuoti ir tinklo problemoms izoliuoti miestelio aplinkoje.

Paskirstymo sluoksnio jungiklis gali teikti paslaugas daugeliui prieigos sluoksnio jungiklių.

Paskirstymo sluoksnis gali suteikti

  • LAN arba WAN nuorodų agregavimas.
  • Politika pagrįstas saugumas prieigos kontrolės sąrašų (ACL) ir filtravimo forma.
  • Maršruto paslaugos tarp LAN ir VLAN ir tarp maršruto domenų (pvz., EIGRP į OSPF).
  • Atleidimas ir apkrovos balansavimas.
  • Maršruto agregavimo ir apibendrinimo riba, sukonfigūruota sąsajose link pagrindinio sluoksnio.
  • Transliacijos domeno valdymas, nes maršrutizatoriai ar daugiasluoksniai jungikliai neperduoda transliacijų. Įrenginys veikia kaip transliacijos domenų ribinis taškas.

Pagrindinis sluoksnis (1.1.2.4)

The pagrindinis sluoksnis taip pat vadinamas tinklo pagrindu. Pagrindinį sluoksnį sudaro didelės spartos tinklo įrenginiai, tokie kaip „Cisco Catalyst 6500“ arba „6800“. Jie skirti kuo greičiau pakeisti paketus ir sujungti kelis miestelio komponentus, tokius kaip paskirstymo moduliai, paslaugų moduliai, duomenų centras ir WAN kraštas.

Kaip parodyta 1-7 paveiksle, pagrindinis sluoksnis yra labai svarbus, kad būtų galima sujungti skirstomojo sluoksnio įrenginius (pavyzdžiui, prijungti paskirstymo bloką prie WAN ir interneto krašto).

Šerdis turėtų būti labai prieinama ir nereikalinga. Šerdis kaupia srautą iš visų paskirstymo sluoksnio įrenginių, todėl turi sugebėti greitai persiųsti didelius duomenų kiekius.

Į pagrindinį sluoksnį reikia atsižvelgti

  • Spartus perjungimas (t. Y. Greitas transportavimas)
  • Suteikia patikimumą ir atsparumą gedimams
  • Mastelio keitimas naudojant greitesnę, o ne daugiau įrangą
  • Vengti daug procesorių reikalaujančių manipuliacijų paketais dėl saugumo, tikrinimo, paslaugų kokybės (QoS) klasifikacijos ar kitų procesų

Dviejų pakopų sutraukta pagrindinė konstrukcija (1.1.2.5)

The trijų pakopų hierarchinis dizainas maksimaliai padidina našumą, tinklo prieinamumą ir galimybę išplėsti tinklo dizainą.

Tačiau daugelis mažų įmonių tinklų laikui bėgant nepadidėja. Todėl a dviejų pakopų hierarchinis dizainas kur šerdies ir paskirstymo sluoksniai yra sugriuvę į vieną sluoksnį, dažnai yra praktiškiau. A “sugriuvusi šerdis” yra tada, kai paskirstymo sluoksnio ir pagrindinio sluoksnio funkcijas įgyvendina vienas įrenginys. Pagrindinė žlugusio pagrindinio dizaino motyvacija yra tinklo sąnaudų mažinimas, išlaikant daugumą trijų pakopų hierarchinio modelio privalumų.

1-8 paveiksle pateiktas pavyzdys sutraukė paskirstymo sluoksnio ir pagrindinio sluoksnio funkcijas į daugiasluoksnius jungiklius.

1-8 pav. Dviejų pakopų hierarchinis dizainas

Hierarchinis tinklo modelis suteikia modulinę sistemą, kuri leidžia lanksčiai kurti tinklą ir palengvina diegimą bei trikčių šalinimą.


Operacinės sistemos struktūros

Šiame skyriuje kalbama apie tai, kaip struktūrizuojamos ir organizuojamos operacinės sistemos. Nagrinėjamos ir lyginamos skirtingos dizaino problemos ir pasirinkimai, taip pat pateikiama pagrindinė kelių populiarių OS struktūra.

2.1 Operacinės sistemos paslaugos


2.1 pav. Operacinės sistemos paslaugų vaizdas

Sistemos vartotojams OS suteikia aplinką, kurioje veikia programos, ir paslaugas, įskaitant:

  • Vartotojo sąsajos - Priemonės, kuriomis vartotojai gali duoti sistemai komandas. Priklausomai nuo sistemos, tai gali būti komandinės eilutės sąsaja (pvz., Sh, csh, ksh, tcsh ir kt.), GUI sąsaja (pvz., „Windows“, „X-Windows“, KDE, „Gnome“ ir kt.) Arba paketinės komandų sistemos . Pastarosios paprastai yra senesnės sistemos, kuriose naudojamos darbo kontrolės kalbos (JCL) perforavimo kortelės, tačiau jos vis dar gali būti naudojamos specialioms sistemoms, skirtoms vienam tikslui.
  • Programos vykdymas - OS turi sugebėti įkelti programą į RAM, paleisti programą ir nutraukti programą įprastai arba neįprastai.
  • Įvesties/išvesties operacijos - OS yra atsakinga už duomenų perkėlimą į ir iš įvesties/išvesties įrenginių, įskaitant klaviatūras, terminalus, spausdintuvus ir saugojimo įrenginius.
  • Failų sistemos manipuliavimas - Be neapdorotų duomenų saugojimo, OS taip pat yra atsakinga už katalogų ir pakatalogių struktūrų priežiūrą, failų pavadinimų susiejimą su konkrečiais duomenų saugojimo blokais ir įrankių naršymą ir naudojimąsi failų sistema.
  • Ryšiai - Tarpusavio ryšiai, IPC, tarp procesų, vykstančių tame pačiame procesoriuje, arba tarp procesų, vykstančių atskirais procesoriais ar atskiromis mašinomis. Gali būti įdiegta kaip bendroji atmintis arba pranešimų perdavimas (arba kai kurios sistemos gali pasiūlyti abu.)
  • Klaidų aptikimas - Tiek aparatinės, tiek programinės įrangos klaidos turi būti aptiktos ir tinkamai tvarkomos, su minimaliomis žalingomis pasekmėmis. Kai kurios sistemos gali apimti sudėtingas klaidų išvengimo ar atkūrimo sistemas, įskaitant atsargines kopijas, RAID įrenginius ir kitas nereikalingas sistemas. Derinimo ir diagnostikos įrankiai padeda vartotojams ir administratoriams nustatyti problemų priežastis.

Kitos sistemos padeda efektyviai veikti pačiai OS:

  • Išteklių paskirstymas - Pvz. CPU ciklai, pagrindinė atmintis, atminties vieta ir išoriniai įrenginiai. Kai kurie ištekliai valdomi naudojant bendras sistemas, o kiti - labai kruopščiai suprojektuotas ir specialiai pritaikytas sistemas, pritaikytas konkrečiam ištekliui ir veikimo aplinkai.
  • Apskaita - Sistemos veiklos ir išteklių naudojimo stebėjimas atsiskaitymo tikslais arba statistinei apskaitai, kuri gali būti naudojama optimizuoti būsimą našumą.
  • Apsauga ir saugumas - Užkirsti kelią žalos sistemai ir ištekliams, naudojant vidinius procesus ar kenksmingus pašalinius asmenis. Autentifikavimas, nuosavybė ir ribota prieiga yra akivaizdžios šios sistemos dalys. Labai saugios sistemos gali užregistruoti visą proceso veiklą iki nepakeliamų detalių, o saugumo reguliavimas nurodo tuos įrašus saugoti nuolatinėje neištrinamoje laikmenoje ilgą laiką saugiose (ne vietoje) patalpose.

2.2 Vartotojo operacinės sistemos sąsaja

2.2.1 Komandų vertėjas

  • Gauna ir apdoroja kitą vartotojo užklausą ir paleidžia prašomas programas.
  • Kai kuriose sistemose CI gali būti tiesiogiai įtrauktas į branduolį.
  • Paprastai CI yra atskira programa, kuri paleidžiama, kai vartotojas prisijungia arba kitaip pasiekia sistemą.
  • Pavyzdžiui, UNIX suteikia vartotojui galimybę pasirinkti įvairius apvalkalus, kurie gali būti sukonfigūruoti automatiškai paleisti prisijungus arba kuriuos galima pakeisti skrendant. (Kiekvienas iš šių apvalkalų naudoja skirtingą pradinių nustatymų ir komandų konfigūracijos failą, kurie vykdomi paleidžiant.)
  • Skirtingi apvalkalai teikia skirtingas funkcijas, kalbant apie tam tikras komandas, kurias apvalkalas įgyvendina tiesiogiai, nepaleisdamas jokių išorinių programų. Dauguma teikia bent elementarią komandų aiškinimo struktūrą, skirtą programuoti apvalkalo scenarijus (kilpos, sprendimų konstrukcijos, kintamieji ir kt.)
  • Įdomus skirtumas yra laukinių kortelių failų pavadinimų apdorojimas ir įvesties/išvesties nukreipimas. 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

            • Reikalavimai 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 is to be done. Mechanisms determine kaip 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. Todėl,
              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. Šitie yra:

                      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 ir (arba) 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 ištirpęs 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.

                      Tai 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.


                      Santrauka

                      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.


                      Žiūrėti video įrašą: How to use Viva Grass BioEnergy module of Viva Grass Integrated Planning Tool (Spalio Mėn 2021).