| |
• 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. |
| |
| |
| |
| |
|
|
|