12.07.2015 Views

Spis treœci - Patrz

Spis treœci - Patrz

Spis treœci - Patrz

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1. WstępProgramowanie - kiedyś wielka umiejętność - dziś staje się zwykłym rzemiosłem. Cowięcej, są już systemy umożliwiające automatyczne tworzenie kompilatorów czyoprogramowania baz danych bezpośrednio z ich specyfikacji. Licznie pojawiające się systemywspomagające typu CASE (Computer Aided Software Engineering) umożliwiają częściowezautomatyzowanie etapu programowania także w innych dziedzinach. Wygląda na to, żeumiejętność programowania w języku wysokiego poziomu będzie w przyszłości potrzebnaniewielkiej grupie specjalistów (tak jak dziś umiejętność programowania w języku asemblera).Jest jednak pewna dziedzina programowania, która dotychczas nie poddaje się łatwoautomatyzacji. To programowanie współbieżne. Metody specyfikacji, weryfikacji i dowodzeniapoprawności są dla tego typu programowania znacznie bardziej skomplikowane niż dlaprogramowania sekwencyjnego. Współbieżność wymaga uwzględnienia trudnych do opisaniazależności czasowych między programami. Brakuje przy tym metod testowania, którepozwoliłyby na szybkie wykrycie błędów w synchronizacji. Zachowanie się programuwspółbieżnego może bowiem zależeć od takich czynników zewnętrznych, jak prędkośćprocesora czy sposób zarządzania nim.Z drugiej strony należy podkreślić, że programowanie współbieżne stosuje się dziśpowszechnie, poczynając od takich klasycznych dziedzin informatyki jak systemy operacyjne(na których gruncie powstało), przez obliczenia równoległe, systemy zarządzania baz danych,wbudowane systemy czasu rzeczywistego (sterowanie procesami technologicznymi,monitorowanie pacjentów w szpitalu, sterowanie pracą elektrowni atomowej lub lotemsamolotu), a na grach komputerowych kończąc. Ma ono również duże znaczenie wdyscyplinach ściśle związanych z informatyką, takich jak na przykład telekomunikacja. Możnazatem zaryzykować stwierdzenie, że programowanie współbieżne będzie jeszcze przez długiczas cenioną umiejętnością.Początkowo programowanie współbieżne powstało na potrzeby systemówscentralizowanych (tzn. ze wspólną pamięcią), jednak obecnie nabiera jeszcze większegoznaczenia, ze względu na powszechne stosowanie sieci komputerowych i systemówrozproszonych.Czasami dla podkreślenia faktu, że chodzi o programowanie współbieżne dla tegorodzaju systemów, nazywa się je programowaniem rozproszonym.W istocie współbieżność nie jest czymś niezwykłym, przeciwnie, to sekwencyjneprogramowanie jest ograniczeniem wynikającym z naszego sekwencyjnego myślenia oproblemach. Przecież współbieżność i rozproszoność charakteryzują również naszą własnądziałalność. Każdy z nas codziennie załatwia współbieżnie wiele własnych spraw, są teżsprawy załatwiane współbieżnie przez wiele osób. Programy komputerowe, które mają byćrównież naszymi partnerami i pomocnikami w codziennym życiu, powinny odzwierciedlać takiezachowanie, muszą więc być z natury współbieżne i rozproszone.Świadczą o tym kierunki rozwoju informatyki zarówno w Polsce, jak i na świecie. Lataosiemdziesiąte były okresem dominowania komputerów osobistych i stacji roboczych. Obecniedo profesjonalnych obliczeń coraz częściej stosuje się komputery wieloprogramowe połączonew sieci komputerowe. W różnych ośrodkach akademickich powstają eksperymentalnerozproszone systemy operacyjne zarządzające sieciami komputerowymi tak, jakby był to jedenwielki komputer. Wraz z tymi zmianami zwiększają się możliwości i dziedziny zastosowańprogramowania współbieżnego i rozproszonego.9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!