1 / 43

Operačné systémy

Operačné systémy. Teoretické cvičenia I. C shell. Organizácia cvičení. Prednáša: prof. Ing. Jiří Šafařík, PhD, safarik@dcs.elf.stuba.sk, D125 Cvičiaci: Ing. Branislav Steinmüller, steinmul@dcs.elf.stuba.sk, D022. Organizácia cvičení (pokr.). teoretické - v učebni (C801)

zeke
Download Presentation

Operačné systémy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operačné systémy Teoretické cvičenia I. C shell

  2. Operačné systémy - I. C shell Organizácia cvičení • Prednáša: • prof. Ing. Jiří Šafařík, PhD,safarik@dcs.elf.stuba.sk, D125 • Cvičiaci: • Ing. Branislav Steinmüller,steinmul@dcs.elf.stuba.sk, D022

  3. Operačné systémy - I. C shell Organizácia cvičení (pokr.) • teoretické - v učebni (C801) • praktické - pri počítači (CPU) • prípravné zadania • testy

  4. Operačné systémy - I. C shell Podmienky na získanie zápočtu • účasť na všetkých cvičeniach • príprava na tému cvičenia • odovzdanie dvoch prípravných zadaní • vykonanie a odovzdanie dvoch testov (2x30b) • získanie aspoň 16 bodov • hodnotenie cvičeni predstavuje 60% celkového hodnotenia predmetu

  5. Operačné systémy - I. C shell Obsah teoretických cvičení • 1.+ 2. Úvod do práce s operačným systémom Unix. Interpret príkazov csh. Tvorba príkazových súborov (scripts) pre interpret csh. • 3. Synchronizácia procesov. Kritická oblasť. Riešenie vzájomného vylučovania procesov. • 4. Synchronizácia a komunikácia procesov zasielaním správ. • 5. Správa pamäti. Algoritmy prideľovania pamäti v multiprocesových systémoch. • 6. Uviaznutie procesov. Bankárov algoritmus.

  6. Operačné systémy - I. C shell Obsah praktických cvičení • 1.+ 2. Unix - vyhľadávanie dokumentácie, zvládnutie základných príkazov, csh, práca s editorom. Príkazové súbory v csh - štúdium. • 3. Test - vypracovanie zadania v csh. • 4.+ 5. Služby unixu súborové a procesové (programovanie v jazyku C) - štúdium. • 6. Test - vypracovanie zadania v C.

  7. Operačné systémy - I. C shell Načo je dobrý shell ? • rozhranie služieb OS • prístup k súborom, spúšťanie procesov • čítanie, kontrola a vykonávanie príkazov • príkazový riadok • interpret • programy - skripty • prispôsobenie pracovného prostredia • alias, history

  8. Operačné systémy - I. C shell Prečo csh ? • podobnosť s jazykom C • lepšia čitateľnosť (menšia vyjadrovacia sila) • historické dôvody

  9. Operačné systémy - I. C shell UNIX • oddeľovač adresárov - / • mená súborov - dĺžka (14, 254, …), znaky • všetko je súbor • adresár, obyčajný súbor, zariadenie, symbolická linka, … • štandardný vstup, výstup, chybový výstup • deskriptory 0, 1, 2 • rúry (pipe, dátovody)

  10. Operačné systémy - I. C shell UNIX (pokr.) • prístupové práva • cesta • absolútna • relatívna • aktuálny (pracovný) adresár • . • ..

  11. Operačné systémy - I. C shell Základné princípy shell programov • využitie systémových programov - filtre • použitie rúr (pipe, dátovod) • + spracovanie • spracovanie textu

  12. Operačné systémy - I. C shell C shell program • text, riadok, slovo • 1. slovo - príkaz, ostatné - argumenty • # • #! /bin/csh • # - komentár

  13. Operačné systémy - I. C shell Príklad 1 • #! /bin/cshset veta = "Ahoj svet" echo $veta

  14. Operačné systémy - I. C shell Premenné • set p = hodnota • @ c = 42 • set p = "viac slov" • set p = (zoznam viacerych slov) • citovanie (quote) • ", ', \ • riadiace znaky

  15. Operačné systémy - I. C shell Premenné (pokr.) • set p = slovo • set p = $p dalsie-> chyba !!! • set p = "$p dalsie" -> slovo dalsie • set p = '$p dalsie' -> $p dalsie • set p = \$p\ dalsie

  16. Operačné systémy - I. C shell Premenné (pokr.) • @ c = 42 • @ c = cislo-> chyba !!! • @ c = $c + 3 @ c ++ • +, -, *, /, %, (, ), ... • set c = $c + 3-> chyba !!!

  17. Operačné systémy - I. C shell Premenné (pokr.) • set p = (jeden dva tri) • set p1 = $p[1] -> jeden • set p4 = $p[4]-> chyba !!! • set p = ($p[2-3]) -> (dva tri)

  18. Operačné systémy - I. C shell Premenné (pokr.) • set p = (jeden dva tri) • set c = $#p -> 3 • shift p -> (dva tri)

  19. Operačné systémy - I. C shell Premenné (pokr.) • vzorky (pattern, globbing) • *, ?, [] • set f = (*) -> súbory v aktuálnom adresári • set f = (*.[hc]) -> C-čkovské zdrojáky

  20. Operačné systémy - I. C shell Výpisy • echo text • echo $p1 $p2 $p3 • printf

  21. Operačné systémy - I. C shell Riadiace konštrukcie • if • foreach • while • switch • goto

  22. Operačné systémy - I. C shell Riadiace konštrukcie - if • podmienka - 0 , >0 • if (podm) prik • if (podm) then prikelse prikendif

  23. Operačné systémy - I. C shell Riadiace konštrukcie - foreach • foreach prem (zoznam) prikend • break • continue

  24. Operačné systémy - I. C shell Riadiace konštrukcie - while • while (podm) prikend • break • continue

  25. Operačné systémy - I. C shell Riadiace konštrukcie - switch • switch (retazec) case vzor1: prik breaksw case vzor2:... default:endsw

  26. Operačné systémy - I. C shell Riadiace konštrukcie - goto • navestie: prik • goto navestie

  27. Operačné systémy - I. C shell Príklad 2 • #! /bin/cshset znaky = (d g f 3 6 s 4 w h f 6 0 b d t y 3 6 s f)set cisla = ()set pismena = ()@ pc = 0@ pp = 0foreach znak ($znaky)# if ($znak >= 0 && $znak <= 9) then if ($znak == 0 || $znak == 1 || $znak == 2 || $znak == 3 || \ $znak == 4 || $znak == 5 || $znak == 6 || $znak == 7 || \ $znak == 8 || $znak == 9) then set cisla = ($cisla $znak); @ pc ++ else set pismena = ($pismena $znak); @ pp ++ endifendecho Pismena: $pismena Pocet: $pp # $#pismenaecho Cisla: $cisla Pocet: $pc # $#cisla

  28. Operačné systémy - I. C shell Príklad 2 (výstup) • Pismena: d g f s w h f b d t y s f Pocet: 13 • Cisla: 3 6 4 6 0 3 6 Pocet: 7

  29. Operačné systémy - I. C shell Presmerovanie a rúry (dátovody) • >, <, >> • ls -l > vystup.out • >&, >>& • |, |& • who | grep root • `prikaz` • set vystup = `ls -a` • set vystup = "`ls -la`"

  30. Operačné systémy - I. C shell Presmerovanie a rúry (pokr.) • set a = "`ls -l`" • set b = "$a" • set c = "$a[1]" • set d = ($a[1])

  31. Operačné systémy - I. C shell Presmerovanie a rúry (pokr.) • súbor h • meno heslo • foreach l ("`cat h`") set l = ($l) mail -s $l[2] $l[1]end

  32. Operačné systémy - I. C shell Procesy • prikaz & • CTRL+Z, CTRL+C • fg, bg, jobs, kill

  33. Operačné systémy - I. C shell Príklad 3 • #! /bin/cshset vsetci = `who | cut -c1-8 | sort`if ($#vsetci == 0) exitset p = $vsetci[1]@ i = 1shift vsetciwhile ($#vsetci > 0) if ($p == $vsetci[1]) then @ i ++ else echo "$i $p" set p = $vsetci[1] @ i = 1 endif shift vsetciendecho "$i $p"# who | cut -c1-8 | sort | uniq -c

  34. Operačné systémy - I. C shell Príklad 3 (výstup) • 1 bandzi • 1 dluhy • 1 kutik • 1 schreter • 1 sopko • 2 steinmul • 1 bandzi • 1 dluhy • 1 kutik • 1 schreter • 1 sopko • 2 steinmul

  35. Operačné systémy - I. C shell Advanced • premenné • $?prem • :h, :t, :e, :r • set a = /adresar/file.ext • echo $a:h -> /adresar • echo $a:t -> file.ext • echo $a:e -> ext • echo $a:r -> /adresar/file

  36. Operačné systémy - I. C shell Advanced (pokr.) • foreach f (*.cpp) mv $f ${f:r}.ccend

  37. Operačné systémy - I. C shell Advanced (pokr.) • premenné • $cwd, $home, $path, $user • $status • $argv, $argv[1] • $0, $1, $2, …, $9, $* • $$ - /tmp/subor.$$ • $< - vstup • echo "A/N ?"set odp = $<

  38. Operačné systémy - I. C shell Advanced (pokr.) • glob • *, ?, [], {}, ~ • echo /home/OS/{1README.1st,H*} • if • <, >, ==, !=, =~, !~, … • ||, &&, ! • if ($znak =~ [0-9]) ... • -r, -w, -x, -e, -o, -z, -f, -d • if (-d $p) echo "$p je adresar"

  39. Operačné systémy - I. C shell Príklad 4 • #! /bin/cshunset ajcestuwhile ($#argv > 0) switch ($argv[1]) case -h: echo "Pouzitie: $0 [-h] [-p] [adresar]" exit case -p: set ajcestu breaksw default: breaksw; break endsw shiftendif ($#argv == 0) then set dir = .else set dir = $argv[1]endif

  40. Operačné systémy - I. C shell Príklad 4 (pokr.) • foreach f ("`find $dir -type f`") if ("`file $f`" =~ *text*) then if ($?ajcestu) then echo "$f:t v $f:h" else echo "$f:t" endif endifend

  41. Operačné systémy - I. C shell Príklad 4 (výstup) • [11:32] osa> ./4.csh -p • 1.csh v . • 2.csh v . • 3.csh v . • 4.csh v . • [11:35] osa> ./4.csh /home/OS/pocitacove/csh • awk.doc • csh.doc • make.doc • vi.doc • vi.ref • vi.txt • README

  42. Operačné systémy - I. C shell Prostredie • alias • alias l "ls -l" • history • history • !-1, !50, !ls, !! • .cshrc, .login, .logout

  43. Operačné systémy - I. C shell Programy • práca s adresármi: ls, cd, pwd, mkdir, rmdir • práca so súbormi: cat, more, cp, mv, rm, chmod, (ln, du, file, touch) • vyhľadávanie a triedenie: grep, sort, find, wc, (cut, paste, cmp, diff, awk, sed, uniq) • používatelia: who, (w, finger, last) • procesy: ps, kill • prekladače: cc, (make) • prístup cez sieť: telnet, ftp (ssh) • komunikácia medzi používateľmi: write, elm (mail, talk) • rôzne: date, (time)

More Related