Informatyka to systematyczne badanie procesów algorytmicznych, które charakteryzują i przetwarzają informację, teoria, analiza, projektowanie, badanie efektywności, implementacja i zastosowania procesów algorytmicznych.
Algorytmika - wiedza o sposobach rozwiązywania problemów.
IT - technologia wymagana do przetwarzania informacji, w szczególności użycie komputerów i oprogramowania do przekształcania, przechowania, przekazywania oraz odzyskiwania informacji
System - zbiór elementów funkcjonalnych, które są ze sobą powiązane by realizować konkretne cele.
Architektura - odnosi się do atrybutów systemu widzialnych dla programisty.
Organizacja - jak architektura jest wykorzystwana
Rodzina komputerów - ta sama architektura - rózna organizacja
Struktura - sposób powiązania składników komputera.
Funkcje - określają działanie poszczególnych składników jako części struktury:
- przetwarzanie
- przechowanie
- przenoszenie
- sterowanie ww. funkcjami
Obraz funkcjonalny komputera:
Urządzenie sterujące zarządza danymi - ze źródła - urządzeń przenoszących do pozostałych - przechowanie i przetwarzanie
Struktura komputera -
- CPU - jednostka centralna - sterowanie działaniem komputera i realizacja jego funkcji przetwarzania
- Pamięć główna - przechowywanie danych
- I/O - przenoszenie danych między komputerem a środowiskiem zewnętrznym
Połączenia systemów - łączy ww. rzeczy razem
Struktura CPU-
- Jednostka sterująca - steruje działaniem procesora (czyli też komputera)
- Jednostka algorytmiczno-logiczna (AUL) - realizacja funkcji przetwarzania danych przez PC
- Rejestry - wewnętrzne przechowywanie danych w procesorze
Połączenia procesora - łączy ww. rzeczy razem
Jednostka sterująca -
- Układy logiczne sterowania
- Rejestry i dekodery jednostki sterującej
- Pamięć sterująca
Zapis informacji - przedstawienie informacji za pomocą ciągu znaków
Alfabet - zbiór symboli służących do zapisu informacji
Słowo - skończony ciąg symboli danego alfabetu
Kodowanie - przyporządkowanie różnym informacjom słów kodowych
Systemy liczbowe - zestaw reguł umożliwiających przedstawianie liczb za pomocą pewnych symboli i wykonywania działań na nich (mogą być pozycyjne i niepozycyjne)
Magistrale - zespół linii transmisyjnych, które współdzielą podłączone do komputera moduły. Pojedyncza linia przekazuje sygnał w postaci binarnej. Sposób wykorzystania magistrali określa specjalny protokół opisujący dozwolone sekwencje sygnałów logicznych na poszczególnych liniach magistrali i grupach takich linii. Linie magistrali mogą być jedno i dwukierunkowe.
Grupy linii (tzw. szyny)
- szyna adresowa
- szyna danych
- szyna sterowania:
- Zapis/odczyt z/do pamięci
- Zapis/odczyt z/do portu I/O
- Potwierdzenie przyjścia danych (ACK
- Zapotrzebowanie na dostęp do magistrali (Bus request)
- Zwolnienie magistrali (Bus Grant)
- Zgłoszenie przerwania IRQ
- Linia synchronizacyjna - clock
- Sygnał wymuszający ustawienie początkowe (reset)
Arbitraż na magistrali jest konieczny gdy więcej modułów chce przejąć nad nią kontrolę w danym momencie.
Rodzaje arbitrażu:
-centralny
- pojedynczy sterownik magistrali (arbiter)
- urządzenie jest oddzielnym modułem lub częścią procesora
-rozproszony
- nie ma centralnego sterownika
- każdy moduł zawiera układy sterujące dostępem
- moduły współpracują ze sobą w celu ustalenia jednego urządzenia nadrzędnego
- tworzy się układ master-slave
Koordynacja czasowa - odnosi się do sposobu w którym koordynowane są zdarzenia na magistrali. Magistrala zawiera linię zegarową transmitującą sekwencję 0 i 1.
Rodzaje koordynacji
- synchroniczna
- magistrala zawiera linię zegarową
- pojedyncza transmisja 1-0 to cykl zegara
- wszystkie urządzenia mogą czytać linię zegarową
- inne sygnały na magistrali mogą się zmieniać w momencie narastania sygnału
zegarowego
- asynchroniczna
Rodzaje transferu danych na magistralach:
- operacja zapisu (multipleksowa i niemultipleksowa)
- operacja odczytu (multipleksowa i niemultipleksowa)
- operacja odczyt - modyfikacja - zapis
- operacja odczyt po zapisie
- operacja blokowego przesyłania danych
Przykłady magistral:
- ISA, EISA (magistrale rozszerzeń PC; wycofane)
- VLB (Local Bus - dla kart graficznych i kontrolerów; wycofane)
- AGP (Accelerated Graphic Bus; używana współcześnie)
- PCI ( tj. ISA tylko nowsza, stosowana obecnie)
- USB (Universal Serial Bus - ma zastąpić porty szeregowe)
- FireWire (do połączenia kamer wideo, aparatów)
- SCSI (Small komputer system interface)
// Architektura von Neumanna - rodzaj architektury komputera, przedstawionej po raz pierwszy w 1945 roku przez Johna von Neumanna stworzonej wspólnie z Johnem W. Mauchly'ym i Johnem Presper Eckertem.
Polega na ścisłym podziale komputera na trzy podstawowe części:
procesor (w ramach którego wydzielona bywa część sterująca oraz część arytmetyczno-logiczna)
pamięć komputera (zawierająca dane i sam program)
System komputerowy zbudowany w oparciu o architekturę von Neumanna powinien:
mieć skończoną i funkcjonalnie pełną listę rozkazów
mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego przechowywanie w pamięci w sposób identyczny jak danych
dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora
informacja jest tam przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych instrukcji w procesorze.
Podane warunki pozwalają przełączać system komputerowy z wykonania jednego zadania (programu) na inne bez fizycznej ingerencji w strukturę systemu, a tym samym gwarantują jego uniwersalność.
System komputerowy von Neumanna nie posiada oddzielnych pamięci do przechowywania danych i instrukcji. Instrukcje jak i dane są zakodowane w postaci liczb. Bez analizy programu trudno jest określić czy dany obszar pamięci zawiera dane czy instrukcje. Wykonywany program może się sam modyfikować traktując obszar instrukcji jako dane, a po przetworzeniu tych instrukcji - danych - zacząć je wykonywać.
Model komputera wykorzystującego architekturę von Neumanna jest często nazywany przykładową maszyną cyfrową (PMC).
//
Ogólny obraz działania komputera:
Architektura von Neumanna
- dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt
- zawartość tej pamięci może być adresowana przez wskazane miejsca bez względu na rodzaj zawartych tam danych
- wykonywanie rozkazów - szeregowe - jeden za drugim z pewnymi wyjątkami
Rozwiązanie programowe - urządzenia o ogólnym przeznaczeniu mogą realizować różne zadania stosowne do otrzymanych sygnałów. Trzeba doprowadzić nową sekwencję kodów sygnałów sterujących dla nowego zadania.
Sekwencja kodów/rozkazów - oprogramowanie
Działanie jednostki sterującej - każda operacja posiada unikalny kod. Odpowiednie elementy akceptują kod i wysyłają odpowiednie sygnały sterujące
Cykl rozkazu - przetwarzanie wymagane dla pojedynczego rozkazu. Najprostszy ma 2 kroki pobieranie (fetch) i wykonanie (execute)
Cykl pobrania
- licznik programu (PC) - przechowuje adres następnej instrukcji do wykonania
- procesor pobiera instrukcje z miejsca wskazanego przez PC
- licznik PC jest inkrementowany
- rozkaz ładowany jest do rejestru zwanego rejestrem rozkazu IR
- procesor interpretuje i wykonuje odp. działanie.
Cykl wykonywania (kilka kategorii)
- Pamięć - procesor - przenoszenie danych
- Procesor - I/O - przenoszenie danych
- Przetwarzanie danych - procesor wykonuje działania logiczne/arytmetyczne na danych
- Sterowanie - zmiana sekwencji operacji. Rozkaz może zawierać kombinację ww. zadań
Przerwania - mechanizm pozwalający innym modułom przerwanie normalnej sekwencji przetwarzania np.
- przerwanie programowe (np. nadmiar, dzielenie przez 0)
- przerwanie zegarowe (generowane przez wew. zegar procesora, wykorzystywane w trybie pracy wielozadaniowej z wywłaszczaniem (pre-emptive multitasking)
- przerwanie I/O (od sterownika I/O)
- przerwanie związane z błędem sprzętowym (np. błąd parzystości pamięci)
Cykl przerwania:
- procesor sprawdza czy nie wystąpiło przerwanie (występowanie przerwania sygnalizowane obecnością sygnału przerwania)
- jeżeli przerwania nie są realizowane, procesor przechodzi do cyklu pobierania i pobiera następną instrukcję
- jeśli następuje przerwanie to procesor:
- zawiesza wykonywanie programu
- zachowuje kontekst programu
- ustawia licznik programu na początkowy adres programu obsługi przerwań
- wykonuje program do obsługi przerwań
- odtwarza kontekst i kontynuuje przerwany program
Przerwania wielokrotne:
-Przerwania zablokowane:
-procesor będzie ignorował dalsze przerwania w trakcie przetwarzania bieżącego przerwania
-przerwania zostają zawieszone i zostają one wykryte przez procesor jeśli uzyska on pozwolenie na przerwanie po obsłudze przerwania bieżącego
-przerwania obsługiwane są w kolejności w jakim się pojawiły
-Definicja priorytetów:
-przerwanie o niższym priorytecie może być przerwane przez przerwanie o priorytecie wyższym
-po obsłudze przerwania o wyższym priorytecie procesor wraca do poprzedniego przerwania.
Problemy wejścia-wyjścia:
- Różnorodność urządzeń peryferyjnych (różne ilości danych, format, szybkość)
-Wszystkie z nich są wolniejsze od CPU i RAM
-Istnieje zatem potrzeba organizacja modułów I/O
Moduł I/O:
- interfejs do CPU i pamięci głównej
- interfejs do jednego i więcej urządzeń peryferyjnych
Urządzenia I/O
- przeznaczone do odczytu przez człowieka (np. drukarka, klawiatura)
- przez maszynę (dyski, taśmy magnetyczne, urządzenia wykonawcze na procesie)
- komunikacyjne (modem, karta sieciowa)
Funkcje modułów I/O:
- Sterowanie i taktowanie
- komunikacja z procesorem
- komunikacja z urządzeniem
- buforowanie danych
- wykrywanie błędów
Kroki w działaniu I/O:
- CPU sprawdza status urządzenia
- moduł I/O zwraca status
- jeśli „gotowość” to CPU żąda transmisji danych
- moduł I/O pobiera dane od urządzenia zewnętrznego
- moduł I/O transferuje dane do CPU
Decyzje modułu I/O
- Ukrycie przed CPU własności urządzeń
- Wsparcie dla pojedynczego lub wielu urządzeń
- Realizacja funkcji sterowania urządzeniem lub pozostawienie ich CPU
- Zachodzą tu także decyzje systemu operacyjnego (np. Unix)
Techniki obsługi I/O:
Programowe I/O
-CPU posiada bezpośrednią kontrolę nad I/O poprzez kontrolę statusu, wysyłanie rozkazu read/write, udział w transferze danych
-CPU czeka na moduł I/O, żeby zakończyć operację I/O
- proces czasochłonny i angażujący CPU bez potrzeby
-CPU żąda operacji I/O
- operację przeprowadza moduł I/O
- Moduł I/O ustawia bity statusowe
- CPU sprawdza periodycznie stan bitów
- Moduł I/O nie komunikuje się bezpośrednio z CPU i nie przerywa jego pracy
- CPU może czekać lub wrócić później
Adresowanie urządzeń I/O:
- W trybie obsługi programowej transmisja danych z I/O jest z punktu widzenia procesora podobna do współpracy z pamięcią
-Każde urządzenie posiada swój unikatowy identyfikator
-Rozkazy CPU zawierają identyfikator (adres)
Odwzorowanie wejścia-wyjścia:
odwzorowane w pamięci
- Jednolite adresowanie układów pamięci i układów I/O - urządzenie I/O i pamięć dzielą tę samą przestrzeń adresową.
- możliwość wykorzystania tych samych rozkazów co w operacjach z pamięcią; brak dodatkowego rozkazu we-wy
- pozornie „nieograniczona” liczba rejestrów we-wy
-mniej sygnałów sterujących z procesora
- zarówno pamięć jak i I/O są sterowane sygnałami: memory read/write
- komórki pamięci i rejestry układów we-wy muszą mieć inne adresy
- należy wyróżnić sygnał wskazujący czy adres odnosi się do pamięci czy do we-wy
Izolowane I/O
-osobne przestrzenie adresowe
- potrzebne są linie selekcji I/O i pamięci - sygnały: memory read/write oraz input read output write
- specjalne rozkazy (szybsze i krótsze) dla operacji I/O (ograniczona liczba); dodatkowy kod rozkazu; zbiór rozkazów I/O jest ograniczony
-liczba bram I/O jest ograniczona
- potencjalne prostsze układy I/O
- I/O może używać innych szyn niż pamięć
I/O sterowane przerwaniami:
-przezwyciężenie problemu oczekiwania przez CPU na gotowość urządzenia
- nie ma potrzeby cyklicznego sprawdzania stanu urządzenia
- moduł I/O zgłasza przerwanie kiedy jest gotowy
- obsługa urządzenia wejściowego: CPU wysyła rozkaz Read i przechodzi do innej pracy
-moduł I/O otrzymuje dane z urządzenia peryferyjnego i kiedy dane są w rejestrze moduły, moduł przerywa CPU (CPU sprawdza stan systemu przerwań pod koniec każdego cyklu rozkazowego, o ile przerwania nie są wyłączone)
-moduł czeka, aż CPU przyjmie przerwanie i zażąda danych
-moduł I/O transferuje dane
Identyfikacja urządzenia:
- wiele linii przerwań
-PC,
- ograniczona liczba urządzeń
- każda linia może mieć swój priorytet,
- kosztowne; szybkie
- Odpytywanie za pomocą oprogramowania
-po wykryciu przerwania CPU przepytuje każdy moduł I/O w celu sprawdzenia, który moduł spowodował przerwanie,
-wolne,
- priorytet wynika z kolejności odpytywania
- Odpytywanie za pomocą sprzętu (tzw. łańcuchowe - disy chaining lub wektorowe - hardware rolling)
- potwierdzenie przyjęcia przerwania jest przesyłane łańcuchem,
- moduł najbliższy procesowi odpowiada wektorem,
- CPU używa wektor aby zidentyfikować program obsługi
- kolejność w łańcuchu wyznacza priorytet (geometryczny, elektryczny)
- Arbitraż za pomocą magistrali (bus mastering)
-moduł musi najpierw przejąć sterowanie magistralą zanim pobudzi linię przerywania
-Tylko jeden moduł w danej chwili może przejąć magistralę, więc tylko jeden wyśle przerwanie ze swoim wektorem na liniach danych
- np. PCI i SCSCI
Wady programowego i sterowanego przerwaniami I/O:
- szybkość transferu jest ograniczona szybkością, z jaką procesor może testować i obsługiwać urządzenie
- procesor jest zajęty zarządzaniem przesyłaniem z wejścia na wyjście
Bezpośredni dostęp do pamięci (DMA)
Organizacja DMA
-dodatkowy moduł (H/W) na magistrali - DMAC (DMA controller)
-sterownik DMA przejmuje od procesora sterowanie systemem w zakresie I/O
Działanie DMA:
-CPU wydaje rozkaz modułowi DMAC:
-czy wymagany jest odczyt czy zapis
- adres niezbędnego urządzenia I/O
- adres początkowej komórki pamięci przewidzianej do odczytania lub zapisania
- liczbę słów, które mają być odczytane lub zapisane
-CPU następnie kontynuuje inne prace
-DMAC troszczy się o operacje I/O
-DMAC wysyła przerwanie kiedy zakończy zleconą operację I/O
Zjawisko kradzieży cyklu:
-DMAC wstrzymuje na okres wymiany danych działanie CPU - DMAC „kradnie” cykl maszynowy
- Transmisja jednego słowa danych
- nie jest to przerwanie! (CPU nie zmienia kontekstu)
-Spowolnienie działania CPU, ale nie tak znaczne jak w przypadku obsługi transferu przez CPU
Cele i funkcje systemu operacyjnego
- system jest wygodniejszy w użytku
- umożliwia sprawne eksploatowanie zasobów komputerowych
Usługi systemu operacyjnego
-tworzenie programów
-wykonywanie programów
-dostęp do urządzeń I/O
-dostęp do plików
-dostęp do systemu
-wykrywanie błędów i reakcja na nie
-rozliczanie (statystyki, logi zdarzeń, logi wydajności, rozliczenie użytkowników)
Rodzaje systemów operacyjnych:
-konwersacyjne
-wsadowe
-jednoprogramowe
-wieloprogramowe
-wyspecjalizowane np. czasu rzeczywistego
Monitor - program komputerowy służący do nadzoru nad stanem, lub czynnościami wykonywanymi przez komputer. Może to oznaczać trzy różne rzeczy podlegające nadzorowi:
1. Program monitujący (ang. monitor program) - nieduży program umieszczony w pamięci ROM (dziś to z reguły BIOS), mający za zadanie uruchomienie komputera i nadzorowanie pracy urządzeń wejścia/wyjścia.
2. Program diagnostyczny, umożliwiający użytkownikowi sprawowanie nadzoru i sprawdzanie stanu sprzętu lub oprogramowania funkcjonującego na danej maszynie.
3. Monitor kodu maszynowego (ang. machine code monitor lub machine language monitor) - oprogramowanie pozwalające użytkownikowi oglądanie i zmianę zawartości pamięci operacyjnej komputera a także jej zapis/odczyt na dysk.
Proste systemy wsadowe
-rezydentny program Monitora
-użytkownicy dostarczali swoje zadania do operatora systemu
-operator tworzył wsad prac
-monitor sterował sekwencją zdarzeń by przetworzyć wsad
-po zakończeniu pracy sterowanie wracało do Monitora, który czytał następną pracę
-monitor planował realizację prac
Język Sterowania Pracami (JCL)
-instrukcje dla Monitora
-zwyczajowo oznaczone znakiem $
Np.:
-$ JOB (oznaczenie początku pracy)
-$FTN (oznaczenie systemu FORTRAN)
-<zadania języka fortran>
-$LOAD (laduj program)
-$RUN (uruchom program)
-(tutaj dane czytane z tego samego strumienia wejściowego co źródło programu)
-$END
Wymagane własności sprzętowe:
-Ochrona pamięci (w celu ochrony Monitora)
-Czasomierz (dla zapobiegania monopolizacji systemu przez pojedynczą pracę
-rozkazy uprzywilejowane(wykonywane tylko przez program zarządzający(np. I/O)
-Przerwania (pozwalają na zaniechanie i wznowienie sterowania)
Wieloprogramowe systemy wsadowe:
-urządzenia I/O są bardzo wolne
-Idea: kiedy jeden program czeka na I/O to inny może używać CPU
Systemy z podziałem czasu (time sharing)
-umożliwiają użytkownikom na bezpośrednie porozumiewanie się z komputerem
- wieloprogramowość umożliwia podział czasu procesora między wielu użytkowników
Przetwarzanie wsadowe vs. Podział czasu
wsadowe wieloprogramowe:
cel - maksymalizacja wykorzystania procesora
źródło rozkazów dla OS - rozkazy sterujące wykonywaniem zadania dostarczane razem z zadaniem
podział czasu
Cel- minimalizacja czasu odpowiedzi
Rozkazy wprowadzane z terminala
Szeregowanie (Scheduling)
-Szeregowanie kluczem do wieloprogramowania
-Szeregowanie długookresowe -wysokiego poziomu
-określanie które programy są dopuszczone do przetwarzania przez system
-w ten sposób kontrolujemy stopień wieloprogramowości
-po dopuszczeniu praca (zadanie, program) staje się procesem podlegającym programowi szeregowania krótkookresowego
-Alternatywnie, praca jest kierowana na dysk do późniejszego uruchomienia (podlega wówczas szeregowaniu średniookresowemu)
-Szeregowanie średniookresowe
-część zadań związana z wymianą
- zazwyczaj jego funkcję określają potrzeby zarządzania wieloprogramowością
- jeśli w systemie nie ma pamięci wirtualnej to szeregowanie średniookresowe dotyczy również zarządzania pamięcią
-Szeregowanie krótkookresowe
-krótkookresowy program szeregujący - dyspozytor
-podejmowanie szczegółowych decyzji, które zadanie ma być realizowane jako następne t.j., które zadanie otrzyma procesor w następnym odcinku czasowym
-I/O
Zarządzanie pamięcią
-System jednoprogramowy
-pamięć dzielona na dwie części
-jedna dla OS (monitora)
-druga dla aktualnie wykonywanego programu
-System wieloprogramowy
-część użytkownika jest podzielona na części i współdzielona przez aktywne procesy
Partycjonowanie
-Podział pamięci na bloki służące alokacji procesów
-Partycje o ustalonym rozmiarze
-nie muszą być jednakowego rozmiaru
-proces jest umieszczany w najmniejszej dostępnej partycji, która może go pomieścić
-występują straty pamięci
-potrzebne są partycje o zmiennych rozmiarach
-Partycjonowanie o zmiennym rozmiarze
-proces wprowadzany do pamięci jest umieszczany w obszarze o dokładnie takiej pojemności, jaka jest niezbędna
-może to prowadzić do tworzenia luki na końcu pamięci, zbyt małej do wykorzystania)
-kiedy proces jest blokowany przez I/O, jest on usuwany do pliku wymiany i pobierany nowy proces
-nowy proces może być mniejszy niż obszar zwolniony
Organizacja procesora
-Organizacja CPU jest pochodną funkcji, które realizuje procesor tj. funkcji
-pobierania rozkazów
-interpretowania rozkazów
- pobierania danych
- przetwarzania danych
- zapisywania danych
Struktura procesora-
- Jednostka sterująca - steruje działaniem procesora (czyli też komputera)
- Jednostka algorytmiczno-logiczna (AUL) - realizacja funkcji przetwarzania danych przez PC
- Rejestry - wewnętrzne przechowywanie danych w procesorze
- Połączenia procesora - łączy ww. rzeczy razem
Rejestry
-CPU potrzebuje pamięci roboczych
-są nimi rejestry
-Liczba i przeznaczenie rejestrów
-specyficzne dla procesorów
-jest to podstawowa decyzja projektanta
-W hierarchii pamięci rejestry stoją najwyżej
-rejestry:
-widzialne dla użytkownika
-ogólnego przeznaczenia (r. robocze)
-do przechowywania danych(r. danych)
-do manipulowania na adresach(r. adresowe
- kodów warunkowych (flagi znaczki stanu)
Rejestry ogólnego przeznaczenia
-mogą być przypisane przez programistę wielu funkcjom
- często dowolny rejestr roboczy może zawierać argument dowolnego kodu operacji
-Często występują ograniczenia np. r. dedykowane operacjom zmiennoprzecinkowym
-r. danych (bez możliwości działań na adresach) - akumulator
-r. adresowe(uniwersalne lub dedykowane pewnym trybom adresowania)- wskaźniki segmentu, r. indeksowe, wskaźnik stosu
- problemy projektowe:
-r. ogólnego zastosowania dają uniwersalność użycia i programowania, ale zwiększają rozmiar i złożoność rozkazów
-r. specjalizowane - mniejsze rozkazy, ale mniejsza elastyczność
Ile rejestrów ogólnego przeznaczenia?
-8-32
-mniej => więcej odwołań do pamięci
-więcej=> zmniejsza się przez to liczba odwołań do pamięci i komplikuje procesor
Jaka długość rejestrów?
-r. adresowe tak długie by mogły pomieścić adres
-r. danych tak długie, aby mogły pomieścić dane we wszystkich formatach
-często wykorzystujemy układy par rejestrów
Rejestry kodów warunkowych
-zbiory indywidualnych bitów
-mogą być czytane przez program
-zazwyczaj nie mogą być ustawiane przez program
Rejestry sterowania i stanu
- licznik programu (PC)
- rejestr rozkazu (IR)
- rejestr adresowy pamięci (MAR)
- rejestr buforowy pamięci (MBR)
Słowo stanu programu PSW (program status Word)
- każdy procesor używa PSW
- może to być rejestr, zespół rejestrów lub zespół bitów opisujących stan programu
- PSW zawiera zwykle pola - bity (stan wyk. ostatniej operacji):
-Zero S (sign)
-Zero Z (zero)
-Parzystość P (parity)
-Przeniesienie C (Carry), przeniesienie pomocnicze A (auxillary carry)
-Równość E (equal)
-Przepełnienie, nadmiar V (overflow)
-Zezwolenie/blokowanie przerwania I (interrupt enable/disable)
-Nadzorca (supervisor) - praca procesora w trybie nadzorcy/użytkownika
Inne rejestry
-wskazujące bloki pamięci z dodatkową informacją o stanie
-rejstr wektora przerwań
-na organizację rejestrów wpłuwa organizacja s.o. i vice versa
Rozproszone systemy komputerowe - to układ niezależnych komputerów, który sprawia na jego użytkownikach wrażenie, że jest jednym komputerem
Zalety w porównaniu do dużych systemów scentralizowanych
-ekonomia rozwoju
-możliwość odtworzenia inherentną dla zastosowania wewnętrzną naturę rozproszenia
-szybkość/wydajność
-niezawodność
-stopniowe rozszerzanie/skalowność
Wady-trudności organizacyjne i techniczne
-oprogramowanie
-sieć
-bezpieczeństwo
-interoperacyjność
-efektywność
-jakość usług
Rozproszeniu podlega
-sprzęt
-oprogramowanie
-dane
Rozproszenie sprzętu
-taksonomia Flynna rozwiązań H/W
-cechy H/W
-liczba (1/wiele) strumieni instrukcji (instruction stream)
-liczba (1/wiele strumieni danch (data stream)
-SISD - 1:1 (single instruction, single data stream)
-pojedynczy processor
-pojedynczy strumień rozkazów
-dane zapisane w pojedynczej pamięci
-systemy jednoprocesowe - tradycyjna architektura von Neumana
-MISD - M:1 (arch. teoret)(multiple instruction/ single data)
-pojedynczy strumień danych jest przetwarzany na wielu procesorach sterowanych wieloma strumieniami rozkazów
- arch teoret., arch. Specjaliz. Sieci systoliczne
-SIMD - 1:M
-MIMD - M:M
-wiele procesów równocześnie przetwarza niezależne strumienie danych na podstawie własnych strumieni rozkazów
-popularność: SISD > MIMD > SIMD > MISD
Wieloprocesowy
-procesory ogólnego przeznaczenia
-wspólna pamięć
-każdy procesor może realizować wszystkie instrukcje
-maks. Kilkadziesiąt procesorów (<64)
-ograniczenia wynikają z rywalizacji o dostęp do tej samej pamięci
-reguły zapewniania spójności danych w pamięci skomplikowane
-dalsza klasyfikacja wynika z metody komunikacji międzyprocesowej oraz sposobu połączenia
-komunikacja poprzez wspólną pamięć
-komunikacja poprzez wymianę komunikatów
-szynowe
-przełączane
Komunikacja poprzez wspólną pamięć
-SMP (symetric multiprocesor)
-procesory dzielą pamięć
-komunikacja poprzez wspólną pamięć
-podział pojedynczej pamięci bądź puli pamięci
-wspólna szyna - magistrala dostępu do pamięci
-czas dostępu do każdego obszaru pamięci jest taki sam (UMA)
-każdy program może być wykonywany w każdej pamięci
- była wersja asynchroniczna
-NUMA (nonuniform memory Access)
-czas dostępu do określonej komórki pamięci zależy od jej położenia w pamięci lokalnej procesora czy też pamięci globalnej lub pamięci lokalnej innych procesorów
-czas dostępu do różnych obszarów pamięci może być różny dla poszczególnych prosesorów NUMA (lokalny dostęp lepszy)
Wielokomputery
-rozwiązanie skalowalne
-trudność w zapewnieniu wydajnej sieci połączeń
-topologie: szyna, pierścień, krata, drzewo, hipersześcian
-max hiperkostka ma 16384 węzły
-nowa linia wielokomputerów szynowych/przełączalnych - klastry
Klastry
- komputery w klastrze dzielą się dostępem do dysku bądź też nie
-własność skalowalności
-wysoka dostępność
-korzystny stosunek ceny do wydajności
-różne cele i funkcje klastrów:
-klastry obliczeniowe
-klastry WWW
-klastry niezawodnościowe
-równoważenie obciążenia v. czysta wydajność plus inne cechy