programowanie w systemie windows. wydanie iv helion.pdf

(15312 KB) Pobierz
888138927.001.png
S PIS TREŚCI
Rysunki .................................................................................13
Tabele ...................................................................................15
Listingi ..................................................................................17
Przebiegi programów ...........................................................21
Wstęp ....................................................................................23
O autorze ..............................................................................33
Rozdział 1.
Wprowadzenie do systemu Windows ...................................35
Podstawy systemów operacyjnych ......................................................................... 36
Ewolucja systemu Windows ...................................................................................... 37
Wersje systemu Windows .......................................................................................... 37
Pozycja systemu Windows na rynku ...................................................................... 40
System Windows, standardy i systemy o otwartym dostępie
do kodu źródłowego ................................................................................................ 41
Podstawy systemu Windows .................................................................................... 43
Przenośność 32- i 64-bitowego kodu źródłowego ............................................ 46
Biblioteka standardowa języka C — kiedy korzystać z niej
do przetwarzania plików? ....................................................................................... 47
Co jest potrzebne do korzystania z tej książki? ................................................... 48
Przykład — proste sekwencyjne kopiowanie pliku ........................................... 50
Podsumowanie .............................................................................................................. 58
Ćwiczenia ......................................................................................................................... 61
Rozdział 2.
Korzystanie z systemu plików i znakowych operacji
wejścia-wyjścia w systemie Windows ...................................63
Systemy plików w systemie Windows ................................................................... 64
Reguły tworzenia nazw plików ................................................................................. 65
Otwieranie, wczytywanie, zapisywanie i zamykanie plików .......................... 66
5
6
S PIS TRECI
Przerywnik — Unicode i znaki ogólne ................................................................... 74
Strategie związane z kodowaniem Unicode ........................................................ 77
Przykład — przetwarzanie błędów ......................................................................... 78
Urządzenia standardowe ............................................................................................ 81
Przykład — kopiowanie wielu plików do standardowego wyjścia .............. 82
Przykład — proste szyfrowanie pliku ..................................................................... 85
Zarządzanie plikami i katalogami ............................................................................ 88
Operacje wejścia-wyjścia konsoli ............................................................................ 94
Przykład — wyświetlanie danych i instrukcji ....................................................... 96
Przykład — wyświetlanie bieżącego katalogu .................................................... 99
Podsumowanie ............................................................................................................100
Ćwiczenia .......................................................................................................................101
Rozdział 3.
Zaawansowane przetwarzanie plików i katalogów
oraz rejestr ..........................................................................103
64-bitowy system plików .........................................................................................104
Wskaźniki do plików ...................................................................................................104
Pobieranie rozmiaru plików ....................................................................................109
Przykład — bezpośrednie aktualizowanie rekordów .....................................111
Atrybuty plików i przetwarzanie katalogów ......................................................115
Przykład — wyświetlanie atrybutów plików .....................................................121
Przykład — ustawianie znaczników czasu dla plików ....................................125
Strategie przetwarzania plików ..............................................................................126
Blokowanie dostępu do plików ..............................................................................128
Rejestr .............................................................................................................................134
Zarządzanie rejestrem ...............................................................................................137
Przykład — wyświetlanie kluczy i zawartości rejestru ....................................141
Podsumowanie ............................................................................................................145
Ćwiczenia .......................................................................................................................146
Rozdział 4.
Obsługa wyjątków ..............................................................149
Wyjątki i procedury do ich obsługi ........................................................................150
Wyjątki zmiennoprzecinkowe ................................................................................157
Błędy i wyjątki ...............................................................................................................159
Przykład — traktowanie błędów jak wyjątków .................................................161
Procedury obsługi zakończenia .............................................................................163
Przykład — stosowanie procedur obsługi zakończenia
do poprawy jakości programów .........................................................................167
Przykład — stosowanie funkcji filtrującej ...........................................................170
Procedury sterujące konsoli ....................................................................................175
Przykład — procedura sterująca konsoli .............................................................176
Wektorowa obsługa wyjątków ...............................................................................178
Podsumowanie ............................................................................................................180
Ćwiczenia .......................................................................................................................181
7
S PIS TRECI
Rozdział 5.
Zarządzanie pamięcią, pliki odwzorowane w pamięci
i biblioteki DLL ....................................................................183
Architektura zarządzania pamięcią w systemie Windows ............................184
Sterty ...............................................................................................................................187
Zarządzanie pamięcią na stercie ............................................................................191
Przykład — sortowanie plików
za pomocą binarnego drzewa wyszukiwań ....................................................198
Pliki odwzorowane w pamięci ................................................................................203
Przykład — sekwencyjne przetwarzanie pliku
za pomocą plików odwzorowanych .................................................................212
Przykład — sortowanie pliku odwzorowanego w pamięci ..........................215
Przykład — stosowanie wskaźników z bazą ......................................................218
Biblioteki DLL ................................................................................................................224
Przykład — dołączanie w czasie wykonywania programu funkcji
do konwersji plików ................................................................................................231
Punkt wejścia do biblioteki DLL .............................................................................232
Zarządzanie wersjami bibliotek DLL .....................................................................234
Podsumowanie ............................................................................................................236
Ćwiczenia .......................................................................................................................237
Rozdział 6.
Zarządzanie procesem ........................................................241
Procesy i wątki w systemie Windows ...................................................................241
Tworzenie procesu .....................................................................................................244
Dane identyfikacyjne procesów .............................................................................251
Powielanie uchwytów ...............................................................................................252
Wychodzenie z procesu i kończenie jego działania ........................................254
Oczekiwanie na zakończenie działania procesu ...............................................256
Bloki i łańcuchy znaków środowiska ....................................................................258
Przykład — równoległe wyszukiwanie wzorca .................................................260
Procesy w środowisku wieloprocesorowym ......................................................264
Czas wykonywania procesu .....................................................................................265
Przykład — czas wykonywania procesu ..............................................................265
Generowanie zdarzeń sterujących konsoli .........................................................267
Przykład — proste zarządzanie zadaniem ..........................................................268
Przykład — korzystanie z obiektów zadań .........................................................279
Podsumowanie ............................................................................................................283
Ćwiczenia .......................................................................................................................284
Rozdział 7.
Wątki i szeregowanie ..........................................................287
Wprowadzenie do wątków ......................................................................................287
Podstawowe informacje o wątkach ......................................................................290
Zarządzanie wątkami .................................................................................................291
Stosowanie biblioteki języka C w wątkach .........................................................296
Przykład — wielowątkowe wyszukiwanie wzorca ...........................................298
8
S PIS TRECI
Wpływ na wydajność .................................................................................................301
Wątki główne i robocze oraz inne modele działania wątków ......................303
Przykład — sortowanie przez scalanie
z wykorzystaniem wielu procesorów ................................................................304
Wprowadzenie do paralelizmu w programach ................................................311
Pamięć TLS ....................................................................................................................312
Priorytety oraz szeregowanie procesów i wątków ..........................................314
Stany wątków ...............................................................................................................317
Pułapki i często popełniane błędy .........................................................................319
Oczekiwanie z pomiarem czasu .............................................................................321
Włókna ............................................................................................................................322
Podsumowanie ............................................................................................................325
Ćwiczenia .......................................................................................................................326
Rozdział 8.
Synchronizowanie wątków .................................................329
Dlaczego trzeba synchronizować wątki? ............................................................330
Obiekty synchronizacji wątków .............................................................................339
Obiekty CRITICAL_SECTION .....................................................................................340
Obiekty CRITICAL_SECTION
do zabezpieczania współużytkowanych zmiennych ..................................343
Przykład — prosty system z producentem i konsumentem ........................345
Muteksy ..........................................................................................................................351
Semafory ........................................................................................................................358
Zdarzenia .......................................................................................................................361
Przykład — system z producentem i konsumentem ......................................364
Więcej wskazówek na temat muteksów
i obiektów CRITICAL_SECTION ............................................................................369
Inne funkcje Interlocked ...........................................................................................371
Wydajność przy zarządzaniu pamięcią ................................................................373
Podsumowanie ............................................................................................................374
Ćwiczenia .......................................................................................................................375
Rozdział 9.
Blokowanie, wydajność i dodatki w systemach NT6 ..........377
Wpływ synchronizacji na wydajność ....................................................................378
Program do badania wydajności ...........................................................................383
Dopracowywanie wydajności systemów wieloprocesorowych
za pomocą liczby powtórzeń pętli obiektów CS ...........................................384
Blokady SRW w systemach NT6 ..............................................................................387
Zmniejszanie rywalizacji za pomocą puli wątków ...........................................390
Porty kończenia operacji wejścia-wyjścia ...........................................................393
Pule wątków z systemów NT6 ................................................................................394
Podsumowanie — wydajność blokowania ........................................................403
Paralelizm po raz wtóry .............................................................................................404
Koligacja procesora ....................................................................................................409
Zgłoś jeśli naruszono regulamin