Size: 4087
Comment:
|
Size: 5032
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from OperacneSystemy = Počítačové siete = |
= Operačné systémy = |
Line 4: | Line 3: |
2008/09 -- ZS | <<Pozor>> * Druhé skúšobné cvičenie [[attachment:cv2_sk_2016_zs.pdf]] <<Pohov>> |
Line 6: | Line 7: |
== Vyučujúci == | https://bitbucket.org/gjenca/os2016.2 |
Line 8: | Line 9: |
## Doplň vyučujúcich | == Skúška == <<Pozor>> Termíny skúšky budú na http://is.stuba.sk. |
Line 10: | Line 13: |
* Gejza Jenča gejza.jenca@stuba.sk | Skúška bude prebiehať písomne. Obsah viď nižšie. Ihneď po napísaní vaše písomky opravím, potom budem prípadne ešte konzultovať s tými ľuďmi, ktorí budú na hranici alebo nebudú spokojní s hodnotením. <<Pohov>> |
Line 12: | Line 17: |
Z Vychodila treba vedieť: | |
Line 13: | Line 19: |
* Kapitola 3: od začiatku až po 3.6 včítane * Kapitola 4: od začiatku až po 4.3 včítane. * Treba vedieť na úrovni porozumenia princípom ako fungujú procesy a rúry v UNIXe v kontexte ich používania na príkazovom riadku. * Treba vedieť ako vo vzájomnej synergii fungujú funkcie `fork`,`wait`,`pipe`,`dup2`,`exec*` viď http://bitbucket.org/gjenca/c_vyuka_public/src/tip/pipe/run_bc.c * Kapitola 5: v tej miere ako bolo odprednášané, najmä * štruktúra príkazového riadku, úvodzovky, apostrofy, medzery, opačné lomítka atď * presmerovanie vstupu a výstupu, {{{>,<,>>,<<,|}}} * skripty, mechanizmus fungovania konštrukcie {{{!#}}} * premenné, špeciálne premenné, argumenty skriptov * kontrola toku programu : {{{if,while,for}}} * princíp fungovania {{{if}}} a {{{while}}} cez exit status * príkaz {{{test}}} * Kapitola 6: * základné programy pre prácu s textom {{{sort,cut,paste}}} * regulárne výrazy, program {{{grep}}} * program {{{sed}}} (iba príkaz s) Z Pythonu treba vedieť základy: * zabudované dátové typy * základy programovania ({{{for,while,if}}}) * funkcie a parametre ({{{def}}}) * triedy ({{{class}}}) Na skúške sa vás: * Spýtam na pár vecí z kapitoly 3 a 4. * Napíšete mi jeden-dva jednoduché príkazové riadky vykonávajúce zadanú činnosť. Nemusíte sa učiť všetky options všetkých príkazov, ak bude niečo treba vedieť, prezradím to. Ide mi o overenie znalosti princípu fungovania. * Bude zadanie o regulárnych výrazoch. * Napíšete krátky program v Pythone. |
|
Line 22: | Line 58: |
* Textový editor vim | |
Line 24: | Line 59: |
* Základy internetových protokolov * Protokol http * Základy HTML |
|
Line 28: | Line 60: |
== Domáce zadania == | == Výsledky == |
Line 30: | Line 62: |
=== Cvičenia pre prípravu na prvé skúšobné cvičenie === | ##[[/Vysledky]] |
Line 32: | Line 64: |
A) premenovanie obrázkov | == Ďalšie cvičenia == |
Line 34: | Line 66: |
Vytvorte v bashi skript {{{rename_pics}}}, ktorý premenuje všetky súbory v aktuálnom adresári, ktoré majú koncovku {{{JPG}}} na súbory s koncovkou {{{jpg}}}, napr. {{{obrazok1.JPG}}} premenuje na {{{obrazok1.jpg}}}. |
[[ /CviceniaZoShellu | Cvičenia zo shellu]] |
Line 38: | Line 68: |
Pomôcka: pre transformáciu mena môžete použiť takéto niečo: {{{ NOVE_MENO=`echo $STARE_MENO | sed '...'`}}} Dávajte si pozor na to, aby ste premenovali iba koncovky, reťazec {{{JPG}}} sa môže vyskytovať aj uprostred mena súboru. Môžete prepokladať, že mená súborov neobsahujú žiadne biele znaky, napr. medzery. B) upravte skript z A) tak, aby premenoval aj súbory ako {{{obrazok1.jPG}}} a podobne. C) Vytvorte v bashi skript {{{showsize}}}, ktorý sčíta dĺžky súborov v aktuálnom adresári a výsledok vypíše. Pomôcka: je niekoľko ciest ako to spraviť. Vyskúšajte prvú cestu a potom druhú: V prvom rade musíte nejako vyprodukovať stĺpec s dľžkami súborov. Buďto na to choďte cez {{{ ls | cut -c ... }}} alebo {{{ for FILE in *; do stat ... $FILE }}} (viď manuálová stránka {{{stat}}}) Teraz je viac ciest. 1. Naprogramujete to sčítanie v bashi sami, klasicky cez premenné s použitím bashovskej aritmetiky cez príkaz let. 2. Pomocou postupnosti príkazov prepojených do rúry vyrobíte z tých čísel výraz ako {{{12+1024+254}}} a ten potom pošlete na vstup príkazu bc cez rúru. Budete zrejme musieť nahradiť nové riadky plusom, to sa robí pomocou {{{ tr '\n' '+' }}} Kostra prvého spôsobu: {{{ SUM=0 for NUMBER in `... kód produkujúci zoznam dĺžok ...`; do ... sem prirátavanie NUMBER k SUM cez let ... done echo $SUM }}} Kostra druhého spôsobu: {{{ ... kód produkujúci zoznam dĺžok ... | tr '\n' '+' | bc }}} Poznamenávam, že tomu ešte niečo chýba, pretože ten {{{tr}}} vyrobí z posledného newline tiež plus, takže {{{bc}}} bude frfľať, že má nekorektný príkaz. Stačí však ešte jeden {{{sed 's...'}}} a je to; poraďte si sami. |
[[attachment:python_zadania.pdf | Cvičenia z Pythonu]] |
Line 85: | Line 74: |
=== Pythonovské programy === * [[/Fork|fork(), wait(), SIGCHLD]] * [[/Pipe|pipe()]] * [[/Socket| UNIXové sockety]] === Skripty === |
* [[attachment:tahak_python.pdf|Ťahák - Python (komplexný)]] * [[http://www.yukoncollege.yk.ca/~ttopper/COMP118/rCheatSheet.html|Ťahák - Python (jednoduchší)]] * http://bitbucket.org/gjenca/c_vyuka_public repozitar s C programami * http://bitbucket.org/gjenca/python_vyuka_public repozitar s python programami |
Line 98: | Line 82: |
1. ''Začínáme programovat v jazyce Python'', Daryl Harms, Kenneth !McDonald; Computer Press, 2003 (nie je nutné, stačí dokumentácia v systéme) | 1. ''Začínáme programovat v jazyce Python'', Daryl Harms, Kenneth !McDonald; Computer Press, 2003 1. ''Learning Python'',, Mark Lutz, David Ascher; O'Reilly 2007, http://slav0nic.org.ua/static/books/python/OReilly.Learning.Python.3rd.Edition.Oct.2007.eBook-BBL.rar |
Line 105: | Line 90: |
1. ''A Byte of Python'', Swaroop C H, http://www.swaroopch.com/notes/Python 1. ''How to Think Like a Computer Scientist'', Jeffrey Elkner, Allen B. Downey and Chris Meyers, http://openbookproject.net//thinkCSpy/ 1. Mercurial: The Definitive Guide by Bryan O'Sullivan, http://hgbook.red-bean.com/ |
|
Line 109: | Line 97: |
1. http://www.py.cz/ Český server venovaný Pythonu, obsahuje aj dokumentáciu k starším verziám Pythonu 1. Mercurial SCM, http://mercurial.selenic.com/ 1. Python documentation, http://docs.python.org/ 1. A Guide to Python's Magic Methods, http://www.rafekettler.com/magicmethods.html |
|
Line 112: | Line 105: |
20 bodov zo 40. Body sa budú udeľovať v rámci cvičení. | 15 bodov z 30. Body sa budú udeľovať v rámci cvičení. Budú 2 zápočtové cvičenia, jedno zo shell scriptov a jedno z Pythonu. |
Line 116: | Line 110: |
== Výsledky == | ## http://bitbucket.org/gjenca/csv2html2012 == Ostatné == ## http://bitbucket.org/gjenca/vimrc |
Operačné systémy
![]() |
|
https://bitbucket.org/gjenca/os2016.2
Skúška
![]() |
Termíny skúšky budú na http://is.stuba.sk. Skúška bude prebiehať písomne. Obsah viď nižšie. Ihneď po napísaní vaše písomky opravím, potom budem prípadne ešte konzultovať s tými ľuďmi, ktorí budú na hranici alebo nebudú spokojní s hodnotením. |
Z Vychodila treba vedieť:
- Kapitola 3: od začiatku až po 3.6 včítane
- Kapitola 4: od začiatku až po 4.3 včítane.
- Treba vedieť na úrovni porozumenia princípom ako fungujú procesy a rúry v UNIXe v kontexte ich používania na príkazovom riadku.
Treba vedieť ako vo vzájomnej synergii fungujú funkcie fork,wait,pipe,dup2,exec* viď http://bitbucket.org/gjenca/c_vyuka_public/src/tip/pipe/run_bc.c
- Kapitola 5: v tej miere ako bolo odprednášané, najmä
- štruktúra príkazového riadku, úvodzovky, apostrofy, medzery, opačné lomítka atď
presmerovanie vstupu a výstupu, >,<,>>,<<,|
skripty, mechanizmus fungovania konštrukcie !#
- premenné, špeciálne premenné, argumenty skriptov
kontrola toku programu : if,while,for
princíp fungovania if a while cez exit status
príkaz test
- Kapitola 6:
základné programy pre prácu s textom sort,cut,paste
regulárne výrazy, program grep
program sed (iba príkaz s)
Z Pythonu treba vedieť základy:
- zabudované dátové typy
základy programovania (for,while,if)
funkcie a parametre (def)
triedy (class)
Na skúške sa vás:
- Spýtam na pár vecí z kapitoly 3 a 4.
- Napíšete mi jeden-dva jednoduché príkazové riadky vykonávajúce zadanú činnosť. Nemusíte sa učiť všetky options všetkých príkazov, ak bude niečo treba vedieť, prezradím to. Ide mi o overenie znalosti princípu fungovania.
- Bude zadanie o regulárnych výrazoch.
- Napíšete krátky program v Pythone.
Stručná osnova predmetu
- Princípy OS Unix/Linux
- Základy práce so systémom
- Súborový systém
- Užívatelia a skupiny
- Procesy, rúry
- Prehľad základných utilít
- Programovanie v shelli, skripty
- Programovací jazyk Python
Výsledky
Ďalšie cvičenia
Materiály
http://bitbucket.org/gjenca/c_vyuka_public repozitar s C programami
http://bitbucket.org/gjenca/python_vyuka_public repozitar s python programami
Literatúra
Linux: Příručka českého uživatele, Vilém Vychodil; Computer Press 2003, Brno (je žiadúce, aby každý mal svoju kópiu)
Začínáme programovat v jazyce Python, Daryl Harms, Kenneth McDonald; Computer Press, 2003
Learning Python,, Mark Lutz, David Ascher; O'Reilly 2007, http://slav0nic.org.ua/static/books/python/OReilly.Learning.Python.3rd.Edition.Oct.2007.eBook-BBL.rar
The Art of Unix Programming, Eric S. Raymond, http://www.faqs.org/docs/artu/
Umění programování v Unixu, Eric S. Raymond, (český preklad horeuvedeného)
How To Ask Questions The Smart Way, Eric Steven Raymond, http://www.catb.org/~esr/faqs/smart-questions.html
Dive into Python, Mark Pilgrim, http://www.diveintopython.org/
Advanced Bash-Scripting Guide, Mendel Cooper, http://tldp.org/guides.html
GNU/Linux Command-Line Tools Summary, Gareth Anderson, http://tldp.org/guides.html
A Byte of Python, Swaroop C H, http://www.swaroopch.com/notes/Python
How to Think Like a Computer Scientist, Jeffrey Elkner, Allen B. Downey and Chris Meyers, http://openbookproject.net//thinkCSpy/
Mercurial: The Definitive Guide by Bryan O'Sullivan, http://hgbook.red-bean.com/
Webové stránky
http://www.root.cz/clanky/regularni-vyrazy-1/ seriál o regulárnych výrazoch od P. Satrapu
http://www.py.cz/ Český server venovaný Pythonu, obsahuje aj dokumentáciu k starším verziám Pythonu
Mercurial SCM, http://mercurial.selenic.com/
Python documentation, http://docs.python.org/
A Guide to Python's Magic Methods, http://www.rafekettler.com/magicmethods.html
Podmienky na zápočet
15 bodov z 30. Body sa budú udeľovať v rámci cvičení. Budú 2 zápočtové cvičenia, jedno zo shell scriptov a jedno z Pythonu.
Príklady a cvičenia