Principy Operačních Systémů

Principy Operačních Systémů

PROGRAMOVACÍ TECHNIKY STUDIJNÍ MATERIÁLY URČENÉ PRO STUDENTY FEI VŠB-TU OSTRAVA VYPRACOVAL: MAREK BĚHÁLEK OSTRAVA 2006 © Materiál byl vypracován jako studijní opora pro studenty předmětu Programovací techniky na FEI VŠB-TU Ostrava. Jiné použití není povoleno. Některé části vycházejí či přímo kopírují původní výukové materiály k předmětu Programovací techniky vytvořené doc. Ing Miroslavem Benešem Ph. D. Programovací techniky OBSAH 1 Průvodce studiem ..................................................................................... 5 1.1 Charakteristika předmětu Programovací techniky ............................. 5 1.2 Další informace k předmětu Programovací techniky ......................... 5 2 Nástroje pro tvorbu programu................................................................ 7 2.1 Tvorba aplikace .................................................................................. 8 2.2 Editor .................................................................................................. 9 2.3 Překladač .......................................................................................... 10 2.3.1 Překlad zdrojových souborů ..................................................... 11 2.3.2 Typy překladače ....................................................................... 11 2.4 Spojovací program (linker)............................................................... 12 2.5 Nástroje pro správu verzí.................................................................. 12 2.5.1 Concurrent Version System (CVS) .......................................... 14 2.5.2 Subversion ................................................................................ 17 2.5.3 Arch .......................................................................................... 17 2.6 Správa projektů................................................................................. 17 2.6.1 Vlastnosti nástrojů pro správu aplikace.................................... 18 2.6.2 Dávkové zpracování ................................................................. 19 2.6.3 Program make.......................................................................... 20 2.6.4 Další nástroje související s make.............................................. 21 2.6.5 ANT .......................................................................................... 21 2.6.6 SCons........................................................................................ 25 2.7 Ladění programů............................................................................... 25 2.8 Testování aplikace ............................................................................ 27 2.8.1 Typy testů ................................................................................. 27 2.8.2 Prostředí pro testování.............................................................. 28 2.8.3 JUnit.......................................................................................... 29 2.8.4 Další nástroje pro testování aplikace ........................................ 32 2.8.5 Vývoj řízený testy..................................................................... 33 2.9 Nástroje pro sledování chyb ............................................................. 34 2.9.1 Bugzilla..................................................................................... 34 2.10 Generování dokumentace ................................................................. 35 2.10.1 Program Javadoc....................................................................... 35 2.11 Nasazení aplikace ............................................................................. 36 2.12 Tvorba aplikací pro mezinárodní prostředí....................................... 36 3 Komponentní technologie ...................................................................... 39 3.1 Komponenty ..................................................................................... 39 3.1.1 Struktura komponenty .............................................................. 40 3.1.2 Životní cyklus komponenty...................................................... 41 3.2 JavaBeans ......................................................................................... 42 3.2.1 Co je to JavaBean komponenta ................................................ 42 3.2.2 Struktura Java Bean komponent ............................................... 43 3.2.3 Komponenta Counter................................................................ 45 3.3 COM ................................................................................................. 47 3.3.1 Typy komponent....................................................................... 48 3.3.2 Tabulka virtuálních metod........................................................ 50 3.3.3 Identifikace komponent ............................................................ 50 3.3.4 Rozhraní IUnknown ................................................................. 51 2 Programovací techniky 3.3.5 Příklad komponenty ..................................................................51 3.3.6 Použití komponenty v aplikaci..................................................53 3.3.7 COM+........................................................................................55 3.4 Komponenty v .NET .........................................................................55 3.4.1 Vývoj komponent v jazyce C#..................................................56 3.4.2 Distribuce komponenty .............................................................58 4 Správa paměti..........................................................................................61 4.1 Úrovně správy paměti .......................................................................62 4.2 Problémy správy paměti....................................................................63 4.3 Realizace správy paměti....................................................................64 4.3.1 Manuální správa paměti ............................................................64 4.3.2 Automatická správa paměti.......................................................65 4.4 Metody přidělování paměti ...............................................................65 4.4.1 Přidělování na zásobníku ..........................................................65 4.4.2 Přidělování paměti ze seznamu volných bloků.........................66 4.4.3 Přidělování s omezenou velikostí bloku (buddy system)..........68 4.5 Metody regenerace paměti ................................................................69 4.5.1 Dvoufázové značkování ............................................................69 4.5.2 Regenerace s kopírováním ........................................................70 4.5.3 Inkrementální regenerace ..........................................................70 4.5.4 Regenerace s počítáním odkazů ................................................70 4.5.5 Generační regenerace paměti ....................................................71 4.6 Správa paměti v programovacích jazycích........................................71 4.6.1 Programovací jazyk C ...............................................................71 4.6.2 Programovací jazyk C++...........................................................72 4.6.3 Správa paměti v jazyce Java......................................................72 4.6.4 Programovací jazyk C# .............................................................73 5 Programování aplikací s použitím vláken.............................................74 5.1 Procesy a vlákna................................................................................74 5.1.1 Výhody a nevýhody práce s více vlákny...................................75 5.1.2 Synchronizace ...........................................................................76 5.2 Vlákna v jazyce Java.........................................................................77 5.2.1 Synchronizace vláken v Javě.....................................................79 5.2.2 Příklad aplikace Producer – Customer......................................80 5.2.3 Závěr..........................................................................................83 6 Komprese dat...........................................................................................84 6.1 Základy teorie informace a kódování................................................85 6.2 Komprese textu .................................................................................86 6.2.1 Kódování ...................................................................................86 6.2.2 Huffmanovo kódování...............................................................86 6.2.3 Aritmetické kódování................................................................87 6.2.4 Slovníkové metody....................................................................88 6.2.5 Prediktivní metody ....................................................................90 6.3 Komprese zvukových souborů..........................................................91 6.3.1 Reprezentace zvukového signálu metodou PCM......................91 6.3.2 Metoda DPCM ..........................................................................92 6.3.3 Metoda MPEG Audio (MP3) ....................................................92 6.4 Komprese obrazu...............................................................................93 3 Programovací techniky 7 Literatura ................................................................................................ 95 4

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    95 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us