Definicje

 

przygotował
Cezary Aniśko
cezary@anisko.net

 
 
Komunikacja asynchroniczna
Przy komunikacji asynchronicznej nadawca może wysyłać wiadomość i kontynuować pracę bez wstrzymywania wykonywania. Potrzebne jest tu jednak buforowanie przychodzących komunikatów - nadawca może wysłać wiele komunikatów zanim odbiorca odbierze je z kanału komunikacyjnego.
 
 
Komunikacja synchroniczna
Przy tym rodzaju komunikacji wymagany jest współudział zarówno procesu wysyłającego - nadawcy, jak i procesu odbierającego - odbiorcy. Wysłanie komunikatu zostaje wstrzymane jeżeli przynajmniej jedna ze stron (nadawca bądź odbiorca) nie jest gotowa. Wraz ze wstrzymaniem wysłania/ odebrania komunikatu wstrzymuje się wykonywanie procesu.
 
 
Programy sekwencyjne
Zwyczajny program składa się z deklaracji danych i z wykonywalnych instrukcji zapisanych w jakimś języku programowania. Instrukcje te są wykonywane sekwencyjnie przez komputer, który zarazem przechowuje w swojej pamięci dane.
 
 
Program współbieżny
Program współbieżny jest zbiorem zwykłych programów sekwencyjnych wykonywanych równolegle. Wspomniana równoległość jest abstrakcyjna, ponieważ nie jest wymagane, aby każdy proces był wykonywany przez fizycznie odrębny procesor. Jednak nawet wtedy gdy program współbieżny wykonuje się dzieląc moc obliczeniową jednego procesora, można go lepiej zrozumieć zakładając, że każdy proces wykonuje się równolegle. Programowanie współbieżne, mimo że jest pewną abstrakcją wyrosło z problemów napotkanych przy tworzeniu rzeczywistych systemów.
 
 
Wieloprogramowość
Wieloprogramowość jest współbieżnym wykonywaniem wielu niezależnych programów na jednym procesorze. Jeżeli jakiś proces wykonuje operację wejścia/ wyjścia wówczas procesor jest przydzielany innemu procesowi wykonującemu obliczenia. Dodatkowym uogólnieniem jest podział czasu - dzielenie procesora między wiele obliczeń. Poszczególne procesy otrzymują dostęp do procesora nie wtedy, gdy jakiś proces wykonuje operację wejścia/wyjścia, ale w równych, określonych uprzednio odstępach czasu. System operacyjny uruchamia w odpowiednich momentach program zarządzający procesami w celu określenia, który proces powinien być dopuszczony do wykonania w następnym przedziale czasu. W interaktywnych systemach z podziałem czasu stosuje się wieloprogramowość z podziałem czasu, by grupa użytkowników odnosiła wrażenie, że każdy z nich ma wyłączny dostęp do komputera. Zmienność wymagań obliczeniowych w grupie użytkowników pozwala systemowi z podziałem czasu na sprawną obsługę przy rozsądnym koszcie. Jeśli system jest przeciążony zbyt wieloma użytkownikami, czas reakcji systemu może stać się nieakceptowalny. Jeżeli działające w systemie procesy wykorzystują różne zasoby (dysk, procesor, monitor), prawdopodobieństwo przeciążenia systemu jest niewielkie.
 
 
Wielozadaniowość
Wielozadaniowość to rozwiązywanie zadania przez dekompozycję na kilka współbieżnych procesów. Systemy czasu rzeczywistego są ważną klasą systemów konstruowanych za pomocą wielozadaniowości. Systemy te zbierają dane z otoczenia, wykonują obliczenia i sterują urządzeniami wyjściowymi, wszystko przy ścisłych wymaganiach dotyczących czasu reakcji (nawet kilka milisekund). Dekompozycja zwykłego programu sekwencyjnego na program wielozadaniowy może okazać się użyteczna. Wieloprogramowość może uprościć rozwiązanie problemu oraz może być użyta do zwiększenia wydajności na komputerze wieloprocesorowym lub w systemie wielokomputerowym, składającym się z wielu połączonych ze sobą kompletnych komputerów.
 
 
 
 
 
 

  literatura (źródła)