ÚVOD DO OPERAČNÍCH SYSTÉMŮ
Ver.1.00
Vývoj SW aplikací Unix, POSIX, WinAPI, programování komunikace s periferními zařízeními, ovladače zařízení
České vysoké učení technické Fakulta elektrotechnická A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
2012
Studijní materiály a informace o předmětu
• http://edux.feld.cvut.cz/ •
http://measure.feld.cvut.cz/vyuka/predmety/bakalarske/navody/
A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
Použitá literatura [1] Stallings, W.: Operating Systems. Internals and Design Principles. 4th Edition. Prentice Hall, New Jersey, 2001. [2] Silberschatz, A. – Galvin, P. B. - Gagne, G. : Operating System Concepts. 6th Edition. John Wiley & Sons, 2003. [3] Tanenbaum, A.: Modern Operating Systems. Modern Operating Systems. Prentice Hall, New Jersey, 2008.
A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
Rozbor úlohy
Návrhu počítačového, měřicího nebo řídicího systému předchází rozbor úlohy a zodpovězení následujících otázek:
a) Jaké technické prostředky (HW) použijeme? b) Jaký operační systém (OS) zvolíme? c) Jak má výsledná SW aplikace vypadat (CLI, GUI); pro koho je určena; jaké jsou požadavky uživatele? d) Jaké vývojové prostředky pro tvorbu aplikačních programů nasadíme? e) Jaké techniky programování budeme využívat?
A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
Klasický vývoj programu Použití textově orientovaných programovacích jazyků (C, C++, C#, Pascal, aj.) Vývoj probíhá ve třech základních krocích: 1. Vytvoření zdrojového kódu programu (v textové podobě). Zdrojový kód je u složitějších programů rozdělen do více jednotek,modulů (např. *.c, *.h). 2. Překlad modulů zdrojového programu do objektového kódu pomocí překladače, kompilátoru (compiler). Překladač provádí postupně lexikální analýzu, sémantickou a syntaktickou analýzu, optimalizaci kódu, generování cílového (strojového) kódu. 3. Z jednotlivě přeložených objektových kódů a z funkcí obsažených v knihovnách pak linker (=sestavovací program, linker) sestaví výsledný spustitelný kód.
A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
Příklad vývoje programu v C jazyku pod OS Unix Krok 1: Vytvoření souboru hello.c #include <stdio.h> int main() { printf ("Hello world\n"); exit (0); }
Krok 2, 3:Překlad a sestavení programu do spustitelného souboru hello $ cc –o hello hello.c
Krok 4: Spuštění programu hello $ ./hello Hello world $ A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
Použití knihoven Knihovna = sada funkcí a procedur v podobě objektových kódů (vytvořených kompilátorem), které jsou uloženy do společného souboru. Typy knihoven: -
statické (.a, .lib): volané funkce jsou připojeny linkerem do výsledného spustitelného kódu
-
sdílené/dynamické (.o, .so, .dll): linker zapíše odkazy na volané knihovní funkce do tabulky symbolů, která je připojena ke spustitelnému souboru. Vlastní knihovna je uložena mimo. Dynamicky „linkované” knihovny jsou propojeny s programem při spuštění prostřednictvím zavaděče (dynamic loader).
Výhody dynamických k.: - kód sdílen více programy, šetří se paměť - je možné opravovat chyby a inovovat knihovnu bez nutnosti nového sestavování
A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
Příklad použití knihoven (jazyk C, OS Unix) Překlad a sestavení programu fred $ cc –o fred fred.c /usr/lib/libm.a nebo zkráceně: $ cc –o fred fred.c –lm Specifikace adresáře pro knihovny a hlavičkové soubory: -L/usr/openwin/lib -I/usr/openwin/include
A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
Příklad řešení měřicího systému
A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
Příklad řešení měřicího systému Standalone Instrumentation
Measurement Subsystem
Power Supply GPIB, LAN, USB Connectivity
Software Bus
Modular Hardware
User Interface
Timing and Control
Bus
PC Processor, OS
Timing and Control
Firmware
PXI, VXI
Fixed User Interface
Proprietary Processor, OS
Modular Instrumentation
Shared Power Supply GPIB, LAN, USB Connectivity
A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
Systémová komunikační rozhraní
High level
Low level
A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
Vývoj aplikací pro měřicí systémy- systémové rámce Systémové rámce (System Frameworks Specification) definují: • • • • • • •
HW konfiguraci řídicího počítače včetně komunikačního rozhraní (VXI, IEEE 488, RS-232) měřicích modulů popř. přístrojů; typ operačního systému; aplikační vývojové prostředky; SW rozhraní VISA (viz následující příklad) a knihovny pro komunikaci s rozhraním; ovladače měřicích přístrojů; program pro testování měřicího přístroje (tzv. Soft Front Panel); požadavky na dokumentaci.
A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
Použití knihovny VISA
#include "visa.h" int main(void) { ViStatus status; ViSession defaultRM, instr; ViUInt32 retCount; ViChar buffer[200];
/* hlášení chyb */ /* komunikační kanály */ /* počet přenesených znaků */ /* buffer pro komunikaci */
/* inicializace systému */ status = viOpenDefaultRM(&defaultRM); if (status < VI_SUCCESS) { /* chyba při inicializaci VISA...ukončení */ return -1; } /* zahájení komunikace s přístrojem s primární adresou 1 */ status = viOpen( defaultRM, "GPIB0::1::INSTR", VI_NULL, VI_NULL, &instr ); A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
Použití knihovny VISA /* nastavení intervalu „timeout“ pro spojení určené pomocí instr */ status = viSetAttribute(instr, VI_ATTR_TMO_VALUE, 5000); /* dotaz na identifikaci přístroje */ status = viWrite(instr, "*IDN?", 5, &retCount); status = viRead(instr, buffer, MAX_CNT, &retCount); /* zpracování dat ... */ /* ukončení komunikace */ status = viClose(instr); status = viClose(defaultRM); return 0; }
A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací
ÚVOD DO OPERAČNÍCH SYSTÉMŮ
KONEC 3. přednášky
České vysoké učení technické Fakulta elektrotechnická A7B38UOS Úvod do operačních systémů 03 - Vývoj SW aplikací