Programowanie systemowe w Windows

Czas trwania szkolenia:5 dni (40h)

Kod kursu:PS/WIN

Poziom zaawansowania:

windows

programming

c

Szkolenie na zamówienie

Szkolenie dostosowane do potrzeb Twojego zespołu.
Dostępne wyłącznie na zamówienie

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin
Icon with laptop

O szkoleniu Programowanie systemowe w Windows

W cenie otrzymasz:

  • Materiały szkoleniowe
  • Certyfikat ukończenia szkolenia
  • W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki

Dla kogo?

  • Szkolenie adresowane jest do programistów tworzących aplikacje w systemach z rodziny Microsoft Windows

Wymagania

  • Od uczestników szkolenia wymagana jest umiejętność programowania w języku C

Zalety

  • Szkolenie warsztatowe, tematyka omawiana jest na praktycznych przykładach realizowanych przez uczestników w formie krótkich zadań programistycznych
  • Uczestnicy przygotują między innymi aplikacje typu usługa systemowa oraz oprogramowanie w architekturze klient-serwer
  • Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
  • Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
  • Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how

Cele szkolenia

  • Nauka prawidłowego korzystania z różnorodnych mechanizmów systemowych środowiska Microsoft Windows, w szczególności związanych z wielowątkowością, synchronizacją, komunikacją międzyprocesową oraz usługami sieciowymi
  • Omówienie poszczególnych obszarów zastosowań mechanizmów systemowych
  • Poznanie problematyki projektowania i implementacji aplikacji wykorzystujących dostępne mechanizmy systemowe w Microsoft Windows

Program

Wprowadzenie do systemu Windows

  • Architektura i ewolucja systemu
  • Jądro systemu
  • Pamięć wirtualna
  • Wielozadaniowość i wielowątkowość
  • Współdzielenie zasobów
  • Współbieżność i synchronizacja
  • Praca z konsolą
  • Narzędzia programisty systemowego
  • Windows API (Win32 i Win64 API)
  • Tworzenie i użycie bibliotek statycznych i dynamicznych
  • Podstawowe typy danych
  • Śledzenie wywołań systemowych, raportowanie błędów, obsługa wyjątków
  • Pobieranie informacji systemowych
  • Obsługa rejestru
  • Obsługa aplikacji 32 i 64 bit
  • .NET Framework

Kolejka komunikatów

  • Rodzaje komunikatów
  • Obsługa komunikatów w aplikacji

Procesy i wątki

  • Tworzenie procesów i wątków, procesy potomne
  • Przestrzeń użytkownika i przestrzeń jądra
  • Stany procesów
  • Zarządzanie procesami, grupy procesów
  • Priorytety procesów
  • Statystyki procesu, czasomierze
  • Usypianie procesów, obsługa czasu
  • Aplikacje konsolowe
  • Usługi Windows
  • Aspekty bezpieczeństwa: prawa procesu

Synchronizacja

  • Pojęcie wyścigu
  • Sekcje krytyczne, pojęcie zakleszczenia
  • Muteksy
  • Semafory
  • Zdarzenia

Pamięć

  • Prawa dostępu do pamięci
  • Alokacja pamięci
  • Pamięć współdzielona
  • Mapowanie pamięci

Operacje na plikach

  • Obsługa systemu plików
  • Bufory zapisu/odczytu
  • Łącza symboliczne i stałe
  • Pliki tymczasowe
  • Asynchroniczne wejście/wyjście
  • Aspekty bezpieczeństwa: prawa dostępu do plików

Komunikacja międzyprocesowa

  • Potoki anonimowe i nazwane
  • Kolejki
  • Mechanizm mailslot
  • Inne mechanizmy (schowek, zdarzenia)

Usługi sieciowe

  • Architektura klient-serwer
  • Gniazda Winsock i gniazda berkeleyowskie
  • Programowanie gniazd TCP
  • Programowanie gniazd UDP
  • Obsługa protokołów IPv4 i IPv6

Obsługa urządzeń

  • Dostęp do sterowników
  • Interakcja z urządzeniami

Bezpieczeństwo

  • Wykorzystanie kart inteligentnych (Personal Computer/Smart Card, PC/SC)
  • Microsoft CryptoAPI, Cryptography Next Generation (CNG)
  • Typowe błędy programistyczne
  • Narzędzia analizy statycznej i dynamicznej programów

Rozszerzanie systemu

  • Tworzenie sterowników
  • Tworzenie bibliotek systemowych

Podobne szkolenia