|
|
|
Ksiazki - Informatyczne .pl » informatyka » informatyka Programowanie w systemie Windows. Wydanie IV | Wydawnictwo: Helion Autor: Johnson M. Hart Liczba stron: 752 Wymiary: 16.8 x 23.7 cm Oprawa: miękka ISBN: 978-83-246-2780-6
|
Czas dostawy: 2 - 4 dni Cena detaliczna: 109,00 zł Nasza cena: 103,60 zł
|
Opis Programowanie w systemie Windows. Wydanie IV:
- Wykorzystaj paralelizm i maksymalizuj wydajność w systemach wielordzeniowych
- Zapewnij przenośność między środowiskami 64- i 32-bitowymi
- Popraw skalowalność za pomocą wątków, pul wątków i mechanizmu IOCP
Wybierając system Windows jako docelową platformę rozwijanych aplikacji, programiści na całym świecie sugerują się najczęściej jego dużą funkcjonalnością i wymogami biznesowymi. System ten jest bowiem zgodny z wieloma kluczowymi standardami. Obsługuje między innymi biblioteki standardowe języków C i C+ oraz uwzględnia wiele otwartych standardów współdziałania. Dlatego gniazda systemu Windows są standardowym interfejsem programowania rozwiązań sieciowych z dostępem do TCP/IP i innych protokołów sieciowych. W dodatku każda nowa wersja tego systemu jest coraz bardziej zintegrowana z dodatkowymi technologiami z obszaru multimediów, sieci bezprzewodowych, usług Web Service, platformy .NET i usługi plug-and-play. Niewątpliwym atutem Windows jest także zawsze uważany za stabilny, a jednak ciągle wzbogacany o ważne dodatki interfejs API.
Jeśli zatem szukasz kompletnego, rzetelnego i aktualnego podręcznika do nauki programowania za pomocą interfejsu Windows API, właśnie go znalazłeś! Książka ta w praktyczny sposób przedstawia wszystkie mechanizmy systemu Windows potrzebne programistom, pokazując, w jaki sposób działają funkcje tego systemu i jak wchodzą w interakcje z aplikacjami. Skoncentrowano się tu na podstawowych usługach systemu, w tym na systemie plików, zarządzaniu procesami i wątkami, komunikacji między procesami, programowaniu sieciowym i synchronizacji. Autor tej książki nie zamierza jednak obciążać Cię zbędną teorią i nieistotnymi szczegółami. Podaje Ci wiedzę opartą na prawdziwych przykładach, dzięki czemu szybko i sprawnie opanujesz poruszane tu zagadnienia. Wiadomości, które tu znajdziesz, pozwolą Ci zrozumieć interfejs Windows API w takim stopniu, byś zdobył solidne podstawy do rozwijania programów na platformę .NET Microsoftu.
W książce znajdziesz omówienie między innymi takich kwestii, jak:
- wprowadzenie do rodziny systemów operacyjnych Windows
- wykorzystanie paralelizmu i maksymalizowanie wydajności w systemach wielordzeniowych
- używanie 64-bitowej przestrzeni adresowej oraz zapewnianie przenośności między środowiskami 64- i 32-bitowymi
- zagadnienia związane z systemami plików, operacjami wejścia-wyjścia w konsoli, blokowaniem dostępu do plików i zarządzaniem katalogami
- wprowadzenie do obsługi wyjątków w systemie Windows, w tym do mechanizmu SEH
- zarządzanie i synchronizacja procesów systemu Windows
- zarządzanie pamięcią i biblioteki DLL
- szczegółowe omówienie synchronizacji wątków systemu Windows, pul wątków i wydajności
- przekształcanie aplikacji serwerowych na usługi systemu Windows
- zapewnianie przenośności kodu źródłowego oraz współdziałania aplikacji z systemów Windows, Linux i UNIX
- zabezpieczanie obiektów w systemie Windows
- poprawiające wydajność funkcje interfejsu Windows API - blokady SRW i zmienne warunkowe
Oto kompletny, aktualny przewodnik po programowaniu przy użyciu interfejsu Windows API!
Spis treści Programowanie w systemie Windows. Wydanie IV: 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)
-
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)
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)
-
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)
-
Wskazówki i pułapki z obszaru wydajności (411)
-
Podsumowanie (413)
-
Ćwiczenia (414)
Rozdział 10. Zaawansowana synchronizacja wątków (417)
-
Model zmiennej warunkowej i właściwości związane z bezpieczeństwem (418)
-
Stosowanie funkcji SignalObjectAndWait (426)
-
Przykład - obiekt bariery z progiem (428)
-
Obiekt kolejki (432)
-
Przykład - wykorzystanie kolejek w wieloetapowym potoku (436)
-
Zmienne warunkowe z systemów Windows NT6 (446)
-
Asynchroniczne wywołania procedur (451)
-
Kolejkowanie asynchronicznych wywołań procedur (452)
-
Oczekiwanie z obsługą alertów (454)
-
Bezpieczne anulowanie wątków (456)
-
Wątki Pthreads i przenośność aplikacji (457)
-
Stosy wątków i liczba wątków (457)
-
Wskazówki z obszaru projektowania, diagnozowania i testowania (458)
-
Poza interfejs Windows API (461)
-
Podsumowanie (462)
-
Ćwiczenia (463)
Rozdział 11. Komunikacja między procesami (467)
-
Potoki anonimowe (468)
-
Przykład - przekierowywanie wejścia-wyjścia za pomocą potoku anonimowego (469)
-
Potoki nazwane (472)
-
Funkcje do obsługi transakcji z wykorzystaniem potoku nazwanego (479)
-
Przykład - system klient-serwer do przetwarzania wiersza poleceń (483)
-
Komentarze na temat programu klient-serwer do przetwarzania wiersza poleceń (489)
-
Szczeliny pocztowe (491)
-
Tworzenie i nazywanie potoków oraz szczelin pocztowych i nawiązywanie połączeń z nimi (496)
-
Przykład - serwer możliwy do znalezienia przez klienty (496)
-
Podsumowanie (499)
-
Ćwiczenia (500)
Rozdział 12. Programowanie sieciowe z wykorzystaniem gniazd systemu Windows (503)
-
Gniazda systemu Windows (504)
-
Funkcje do obsługi gniazd serwera (507)
-
Funkcje do obsługi gniazd klienta (513)
-
Porównanie potoków nazwanych i gniazd (515)
-
Przykład - funkcja do odbierania komunikatów w gnieździe (516)
-
Przykład - klient oparty na gniazdach (517)
-
Przykład - oparty na gniazdach serwer z nowymi mechanizmami (519)
-
Serwery wewnątrzprocesowe (529)
-
Komunikaty oparte na wierszach, punkty wejścia bibliotek DLL i pamięć TLS (531)
-
Przykład - bezpieczna ze względu na wątki biblioteka DLL do obsługi komunikatów w gniazdach (533)
-
Przykład - inna strategia tworzenia bibliotek DLL bezpiecznych ze względu na wątki (538)
-
Datagramy (541)
-
Gniazda Berkeley a gniazda systemu Windows (543)
-
Operacje nakładanego wejścia-wyjścia oparte na gniazdach systemu Windows (544)
-
Dodatkowe funkcje gniazd systemu Windows (544)
-
Podsumowanie (545)
-
Ćwiczenia (546)
Rozdział 13. Usługi systemu Windows (549)
-
Tworzenie usług systemu Windows - przegląd (550)
-
Funkcja main() (551)
-
Funkcje ServiceMain() (552)
-
Procedura sterująca usługi (557)
-
Rejestrowanie zdarzeń (558)
-
Przykład - nakładka na usługi (558)
-
Zarządzanie usługami systemu Windows (565)
-
Podsumowanie - działanie usług i zarządzanie nimi (569)
-
Przykład - powłoka do sterowania usługą (569)
-
Współużytkowanie obiektów jądra przy użyciu usługi (574)
-
Uwagi na temat diagnozowania usług (575)
-
Podsumowanie (576)
-
Ćwiczenia (577)
Rozdział 14. Asynchroniczne operacje wejścia-wyjścia i IOCP (579)
-
Przegląd asynchronicznych operacji wejścia-wyjścia w systemie Windows (580)
-
Operacje nakładanego wejścia-wyjścia (581)
-
Przykład - synchronizacja z wykorzystaniem uchwytu pliku (586)
-
Przykład - przekształcanie pliku za pomocą operacji nakładanego wejścia-wyjścia i wielu buforów (587)
-
Wzbogacone operacje wejścia-wyjścia z procedurami zakończenia (591)
-
Przykład - przekształcanie plików za pomocą wzbogaconych operacji wejścia-wyjścia (597)
-
Asynchroniczne operacje wejścia-wyjścia z wykorzystaniem wątków (600)
-
Zegary oczekujące (602)
-
Przykład - korzystanie z zegarów oczekujących (605)
-
Mechanizm IOCP (607)
-
Przykład - serwer oparty na mechanizmie IOCP (612)
-
Podsumowanie (619)
-
Ćwiczenia (620)
Rozdział 15. Zabezpieczanie obiektów systemu Windows (623)
-
Atrybuty zabezpieczeń (623)
-
Przegląd zabezpieczeń - deskryptor zabezpieczeń (624)
-
Flagi kontrolne deskryptora zabezpieczeń (628)
-
Identyfikatory zabezpieczeń (628)
-
Zarządzanie listami ACL (630)
-
Przykład - uprawnienia w stylu UNIX-a do plików NTFS (632)
-
Przykład - inicjowanie atrybutów zabezpieczeń (636)
-
Wczytywanie i modyfikowanie deskryptorów zabezpieczeń (641)
-
Przykład - odczytywanie uprawnień do pliku (643)
-
Przykład - modyfikowanie uprawnień do plików (645)
-
Zabezpieczanie obiektów jądra i komunikacji (645)
-
Przykład - zabezpieczanie procesu i jego wątków (648)
-
Przegląd dodatkowych mechanizmów zabezpieczeń (648)
-
Podsumowanie (650)
-
Ćwiczenia (651)
Dodatek A: Używanie przykładowych programów (655)
-
Układ plików w pakiecie Przykłady (656)
Dodatek B: Przenośność kodu źródłowego - Windows, UNIX i Linux (659)
-
Strategie tworzenia przenośnego kodu źródłowego (660)
-
Usługi systemu Windows dla systemu UNIX (660)
-
Przenośność kodu źródłowego z funkcjami systemu Windows (661)
-
Rozdziały 2. i 3. - zarządzanie plikami i katalogami (667)
-
Rozdział 4. - obsługa wyjątków (672)
-
Rozdział 5. - zarządzanie pamięcią, pliki odwzorowane w pamięci i biblioteki DLL (674)
-
Rozdział 6. - zarządzanie procesem (675)
-
Rozdział 7. - wątki i szeregowanie (677)
-
Rozdziały od 8. do 10. - synchronizowanie wątków (679)
-
Rozdział 11. - komunikacja między procesami (681)
-
Rozdział 14. - asynchroniczne operacje wejścia-wyjścia (684)
-
Rozdział 15. - zabezpieczanie obiektów systemu Windows (685)
Dodatek C: Wyniki pomiarów wydajności (687)
-
Konfiguracje testowe (687)
-
Pomiary wydajności (690)
-
Przeprowadzanie testów (703)
Bibliografia (705)
Skorowidz (709)
|
|