architekrura 2 kolokwium

Neurokomputery to nowoczesne systemy obliczeniowe, które potrafią przetwarzać informacje podobnie jak mózg człowieka. Informacje mają charakter danych numerycznych i na ich podstawie sieć neuronowa służy jako model obiektu o jakiejś charakterystyce. Neurokomputery stosujemy dla rozpoznawania różnych obrazów, analizy i kompresji obrazów, klasyfikacji, przyjmowania decyzji oraz generowania wiedzy.

Neuron to komórka, czyli podstawowy element systemu nerwowego Można w niej wyróżnić ciało oraz wypustki (dendryty-wprowadzają informacje, akson- wyprowadza informacje). Jeden neuron otrzymuje wartości od tysiąca innych poprzez synapsy. Synapsy albo przekazują wzmocnienie albo osłabienie. Neuron to zlicza i gdy przekroczy wynik pewną wartość to przesyła dalej.

Perceptron to model jednokierunkowej sieci neuronowej. Składa się z receptorów, łączy i aktywatorów.

Sieć rekurencyjna to sieć w której mogą występować różne rodzaje połączeń takie jak wsteczne, sprzężenia zwrotnego oraz połączenia pomiędzy neuronami nie znajdującymi się w warstwach sąsiednich.

Sieć z połączeniami lateralnymi pozwala zwiększać kontrast, co polepsza rozpoznawanie obrazów.

Sieć dyskretna Hopfielda – każdy z neuronów sieci sumuje sygnały odbierane od innych neuronów i wynik staje się sygnałem wejściowym, następnie wysyła odpowiedź która jest nieliniową transformacją. Takie sieci stosowane są do rozwiązania problemów optymalizacyjnych i do konstruowania pamięci skojarzeniowych.

Uczenie sieci może odbywać się z nauczycielem( sieci podaje się przykłady poprawnego działania, które potem naśladuje. Podaje się jej dane wejściowe i wyjściowe), bądź bez nauczyciela ( sieci podaje się na wejście przykładowe dane i nic na wyjście. Sieć na podstawie obserwacji sygnałów wejściowych buduje algorytm działania. Później sieć ma etap normalnego działania.

Schemat klasyfikacji Flynna – klasyfikacja architektury komputerów na bazie strumieni rozkazów i strumieni danych, które mogą być przetwarzane równolegle. Są 4 klasy:

Schemat klasyfikacji Duncana – bazuje na schemacie Flynna ale wprowadza rozróżnienie architektur, które wykonują operacje równoległe synchroniczne (wektorowe, SIMD, systoliczne) i asynchroniczne (MIMD)

Procesy wektorowe SIMD - wykonuje obliczenia na dużych danych, które są potrzebne przy obliczeniach naukowych np. przetwarzanie obrazów. Procesor ma kilka identycznych elementów przetwarzających, gdzie każdy ma pamięć. Główny element sterujący pobiera rozkazy z pamięci głównej i je dekoduje. Jeśli są to rozkazy wektorowe to przekazuje je do wszystkich elementów przetwarzających. Każdy z nich wykonuje te same obliczenia na swoich lokalnych danych.

Komputery z przepływem danych (sterowane danymi) nie mają licznika rozkazów więc wykonują je wtedy gdy ich argumenty stają się dostępne. Reprezentują je grafy.

Systemy MIMD – są uniwersalne, wieloprocesorowe, mają niezależne procesory, które działają na oddzielnych strumieniach danych i oddzielne strumienie rozkazów. Modele takiej architektury:

Systemy MIMD z pamięcią wspólną - Procesory komunikują się, czytając i zapisując dane w pamięci współdzielonej. Istnieją różne sposoby łączenia procesorów z tą pamięcią i różne mechanizmy zapewniania wzajemnego wykluczania. Jedną z najprostszych i najpopularniejszych metod łączenia procesorów jest magistrala z podziałem czasu.

Magistrala z podziałem czasu - Każdy procesor ma oddzielną lokalną pamięć podręczną do przechowywania rozkazów i danych. Jedna wspólna magistrala jest używana przez procesory do uzyskania dostępu do pamięci. Jeśli procesor chce uzyskać dostęp do pamięci, to zanim przejmie kontrolę nad magistralą i zacznie przesyłanie, najpierw musi sprawdzić, czy magistra­la jest dostępna. Kiedy jeden z procesorów używa magistrali, pozostałe mogą używać tylko swoich lokalnych pamięci podręcznych i muszą czekać, aż zwolni on magistralę, zanim będą mogły dostać się do wspólnej pamięci. Wspólna magistrala jest więc źródłem konfliktów.

Przełącznik krzyżowy n x n – jest to skomplikowane urządzenie które łączy magistrale danych adresową i sterującą procesor z jednym z modułów pamięci. Zawiera układ do rozstrzygania jednoczesnych prób dostępu do tego samego modułu. Dzięki niemu problem konfliktu o magistralę jest ograniczony pojedynczych konfliktów o magistralę pamięci. Zwiększa szybkość przesyłania danych bo procesory mogą używać pamięci równolegle. Można dynamicznie rekonfigurować sieć lecz sprzęt jest bardzo drogi.

Skalowanie systemów z pamięcią wspólną - Architektury z pamięcią wspólną są ograniczone przez liczbę procesorów, które mogą być dołączone do pamięci. Próbując zwiększyć przepustowość przez dodawanie kolejnych procesorów zwiększamy współzawodnictwo o pamięć i następuje spadek wydajności.

Systemy MIMD z pamięcią rozproszoną (systemy wielokomputerowe) mają liniową skalowalność bo każdy procesor ma lokalną pamięć i nie współdzielą zmiennych. Wymieniają dane przez komunikaty wysyłane przez sieć komunikacyjną. Każdy węzeł zawiera procesor, pamięć lokalną i kilka łączy komunikacyjnych.

Transputer – zaprojektowane do budowania systemów wieloprocesorowych z przesyłaniem komunikatów. Każdy z nich w jednym układzie VLSI ma procesor, pamięć lokalną i szybkie, dwukierunkowe, bitowo-szeregowe łącza komunikacyjne.

Topologie połączeń transputerów:

Hipersześcian – najlepszy sposób skalowania systemów z pamięcią rozproszoną, gdzie n procesorów jest zorganizowany w K-wymiarowy sześcian i N=2k Każdy węzeł ma procesor, pamięć lokalną i kilka łączy komunikacyjnych. Liczba łączy na węzeł zamienia się w zależności od użytego rozmiaru. Redukuje maksymalną długość ścieżki komunikatu do log2n

Systemy z rozproszoną pamięcią wspólną zapewniają wirtualną abstrakcję pamięci współdzielonej realizowanej na bazie systemu z pamięcią rozproszoną i przesyłania komunikatów. Umożliwia przenoszenie i kompilowanie kodu dla języków C i FORTRAN dając szansę na przyspieszenie i pozwalając wykorzystać skalowalność oferowaną przez rozproszoną organizację pamięci. Węzły są związane w pierścień bądź inny rodzaj sieci. Każdy składa się z minimum jednego procesora połączonego z lokalną pamięcią za pośrednictwem magistrali z podziałem czasu, przełącznika krzyżowego bądź innej sieci lokalnej. Dane są współdzielone między węzłami a adresy wirtualne są tłumaczone sprzętowo bądź programowo na adresy fizyczne konieczne do zlokalizowania danych. Jeśli dane znajdują się poza węzłem, to adres wirtualny musi być przekształcony na komunikat, który jest wysyłany siecią do odległego węzła. Sposób rozproszenia współdzielonych danych między węzły (struktura) i jednostka współdzielenia (granulacja) są ściśle związane ze sposobem implementacji systemu DSM. Jeśli jest on na przykład zaimplementowany z intensywnym wykorzystaniem pamięci podręcznych, to jednostka współdzielenia jest zwykle rozmiarem wiersza pamięci podręcznej. Jeśli natomiast jest on zaimplementowany z wykorzystaniem sprzętu zarządzającego pamięcią wirtualną, to wymieniane są zwykle strony. To, czy dane są „własnością" węzłów, czy mogą migrować swobodnie między węzłami (redystrybucja dynamiczna), także zależy od implementacji i odzwierciedla techniki użyte do lokalizacji i realizacji dostępu do danych.

Prawo Amdahla - Przyspieszenie S , jakie możemy uzyskać, używając platformy wieloprocesorowej składającej się z n procesorów, możemy zdefiniować jako: Czas wykonania zadania w systemie jednoprocesorowym / Czas wykonania zadania w systemie wieloprocesorowym. W przypadku idealnym S jest liniową funkcją n, ale w praktyce rzadko tak jest. Dzieje się tak dlatego, że oprócz opóźnień, powodowanych przez rywalizację o dostęp do pamięci i przesyłanie komunikatów, zadania obliczeniowe zawierają zwykle część instrukcji szeregowych, które nie mogą skorzystać z dodatkowej mocy obliczeniowej. Dowód opublikowany w 1967 r. przez Gene'a Amdahla [Amdahl 67] pokazał, że nawet w przypadku dużej liczby procesorów, maksymalne osiągalne przyspieszenie jest zdominowane przez szeregowe części dowolnego problemu. Załóżmy, że zadanie obliczeniowe realizowane jest przez n procesorów. Jeśli s jest czasem spędzanym przez procesor w części szeregowej programu, a p jest czasem spędzanym w części programu, która może być podzielona między n procesorów i wykonana równolegle, to prawo Amdahla mówi, że przyspieszenie S jest dane wzorem: S = (s + p) / (s + p/n)

Typy algorytmów – szeregowe, szeregowo – grupowe, luźno powiązany, silnie powiązany

Systemy czasu rzeczywistego - to urządzenie techniczne, którego wynik i efekt działania jest zależny od chwili wypracowania tego wyniku. Wspólną cechą jest równoległość w czasie zmian w środowisku oraz obliczeń realizowanych na podstawie stanu środowiska. Z dwóch stanów: zewnętrznego i wewnętrznego, wynikają kryteria ograniczające czas wypracowywania wyniku. Systemy czasu rzeczywistego najczęściej buduje się w oparciu o komputery.

Funkcja zysku - Funkcja zysku jest funkcją zależną przede wszystkim od czasu i określa korzyść ze zrealizowania zadania przez system. Korzyść niekoniecznie jest wielkością wymiarowaną. Zadanie zostało przez system zrealizowane poprawnie, jeśli z chwilą zakończenia tego zadania wartość funkcji zysku jest większa od zera.:

Termin reakcji - W systemie czasu rzeczywistego przekształcanie danych przesyłanych do lub z zewnętrznego środowiska zachodzi w deterministycznie określonym czasie. Stosuje się pojęcie terminu (deadline), oznaczające najdłuższy dopuszczalny czas reakcji systemu na wystąpienie zdarzenia. System czasu rzeczywistego nie musi być szybki - istotne jest jedynie, aby jego działania spełniały narzucone ograniczenia czasowe.

Skład systemu rzeczywistego - Pod pojęciem "system czasu rzeczywistego" rozumie się systemy zbudowane z wykorzystaniem komputera, pracującego pod kontrolą systemu operacyjnego czasu rzeczywistego. W skład takiego systemu włącza się także jego niezbędne otoczenie, takie jak deterministyczne sieci transmisyjne, układy wejściowe i wyjściowe oraz urządzenia kontrolowane przez komputer (roboty).Aby system składający się z komponentów był systemem czasu rzeczywistego, konieczne jest spełnianie wymogów systemu czasu rzeczywistego przez każdy z komponentów. W przypadku systemów informatycznych zarówno sprzęt, system operacyjny, jak i oprogramowanie aplikacyjne muszą gwarantować dotrzymanie zdefiniowanych ograniczeń czasowych. W realizacji oprogramowania działającego w czasie rzeczywistym niezbędna jest analiza wydajności działania aplikacji.

Praktyczny podział systemów czasu rzeczywistego wynika z charakterystycznych funkcji zysku:

Zastosowanie systemów czasu rzeczywistego: w przemyśle do nadzorowania procesów technologicznych; do nadzorowania eksperymentów naukowych; w urządzeniach powszechnego użytku, jak sterowniki układów wtrysku paliwa do silników samochodowych, urządzenia gospodarstwa domowego; w medycynie; w lotnictwie, zastosowaniach wojskowych i kosmicznych; w kasach biletowych, oprogramowaniu bibliotek i podobnych usługach realizowanych w wielodostępnych systemach rozproszonych.

Systemy operacyjne czasu rzeczywistego - System operacyjny czasu rzeczywistego (Real-Time Operating System - RTOS) - to komputerowy system operacyjny, który został opracowany tak, by spełnić wymagania narzucone na czas wykonywania zadanych operacji. Systemy takie stosuje się jako elementy komputerowych systemów sterowania pracujących w reżimie czasu rzeczywistego. Zadaniem systemu operacyjnego czasu rzeczywistego oraz oprogramowania pracującego pod jego kontrolą i całego sterownika komputerowego jest wypracowywanie odpowiedzi (np. sygnałów sterujących kontrolowanym obiektem) na skutek wystąpienia pewnych zdarzeń (zmianie sygnałów z czujników sterownika). Podstawowym wymaganiem dla systemu operacyjnego czasu rzeczywistego jest określenie najgorszego (najdłuższego) czasu, po jakim urządzenie komputerowe wypracuje odpowiedź po wystąpieniu zdarzenia. Rodzaje systemów operacyjnych czasu rzeczywistego: Ze względu na kryterium, systemy operacyjne czasu rzeczywistego dzielą się na dwa rodzaje:

Szeregowania czasu - Problemem w tego typu systemach operacyjnych jest algorytm szeregowania oraz podziału czasu. W systemie operacyjnym czasu rzeczywistego trzeba określić, któremu z procesów należy przydzielić procesor oraz na jak długi czas, aby wszystkie wykonywane procesy spełniały zdefiniowane dla nich ograniczenia czasowe. Pojawienie się systemów operacyjnych tego typu wiąże się z m.in. zapotrzebowaniem techniki wojskowej na precyzyjne w czasie sterowanie rakietami. Obecnie systemy operacyjne tego typu są wykorzystywane powszechnie w przemyśle cywilnym, sterują urządzeniami takimi jak na przykład: centrale telefoniczne, marsjańskie lądowniki NASA oraz samochodowy ABS.

Systemem wbudowanym jest system komputerowy składający się z odpowiednio dobranych komponentów sprzętowych i programowych, często zaprojektowany pod kątem określonej aplikacji programowej. Odpowiada ona za realizację jego funkcji i wpływa na sposób komunikacji z użytkownikiem. system komputerowy specjalnego przeznaczenia, który staje się integralną częścią obsługiwanego przez niego sprzętu. System wbudowany spełnia określone wymagania, zdefiniowane do zadań które ma wykonywać. Każdy system wbudowany oparty jest na mikroprocesorze (lub mikrokontrolerze), zaprogramowanym do wykonywania ograniczonej ilości zadań lub nawet tylko do jednego.

Na projektowanie systemu wbudowanego składa się:
- opracowywanie warstwy sprzętowej,
- opracowywanie odpowiedniego oprogramowania
(w tym wydzielić można obszar systemowy i aplikacyjny).

Warstwa systemowa tworzy środowisko wykonania dla aplikacji wbudowanej i, w zależności od obszaru zastosowań, cechuje się różnym stopniem skomplikowania. W przypadku prostych systemów wbudowanych o zamkniętej, nieskalowalnej architekturze, warstwa systemowa nie jest ściśle wyodrębniona i nie zawiera mechanizmów wspierających tworzenie aplikacji.

Oprogramowanie systemu wbudowanego - System wbudowany może zawierać oprogramowanie:

- dedykowane wyłącznie temu urządzeniu (firmware);
- może to być system operacyjny wraz ze specjalizowanym oprogramowaniem.

Może o tym decydować też stopień niezawodności jakie ma oferować dany system wbudowany. Ogólną zasadą jest, że im mniej złożone i specjalizowane jest oprogramowanie, tym bardziej system jest niezawodny oraz może szybciej reagować na zdarzenia krytyczne.

Niezawodność systemu może być zwiększona, przez rozdzielenie zadań na mniejsze podsystemy, albo np. przez zastosowanie do jednego zadania dwóch identycznych urządzeń, które mogą przejąć zadania drugiego, w przypadku awarii jednego z nich. Systemy wbudowane znajdują zastosowanie we wszystkich dziedzinach, gdyż w obecnych czasach dąży się aby wszystkie urządzenia były inteligentne i zdolne do pracy autonomicznej oraz wykonywały coraz bardziej złożone zadania.

Zastosowanie systemów wbudowanych: sprzęt sterujący samolotami, rakietami, pociskami rakietowymi; sprzęt medyczny; bankomaty i podobne urządzenia ATM; termostaty, klimatyzatory; kuchenki mikrofalowe, zmywarki; sterowniki stosowane w przemyśle do sterowania
i kontroli procesów i maszyn produkcyjnych; sterowniki do wszelkiego rodzaju robotów mechanicznych, telefony komórkowe, drukarki, kserokopiarki; kalkulatory; sprzęt komputerowy: dyski twarde, napędy optyczne, routery;

System on a Chip - SoC - mianem tym określa się układ scalony zawierający kompletny system elektroniczny, w tym układy cyfrowe, analogowe oraz cyfrowo-analogowe. Poszczególne moduły tego systemu, pochodzą zwykle od różnych dostawców. Przykładowo jednostka centralna pochodzi od jednego dostawcy, a porty komunikacji szeregowej od innego. Typowym obszarem zastosowań SoC są systemy wbudowane. W przypadku, gdy niemożliwe jest zintegrowanie wszystkich obwodów na jednym podłożu półprzewodnikowym, poszczególne moduły wykonuje się na oddzielnych kryształach, a całość zamyka się w jednej obudowie. Rozwiązanie takie określane jest mianem SiP (System-in-a-package). W odróżnieniu od mikrokontrolerów SoC są wyposażone w CPU o stosunkowo dużej mocy obliczeniowej (pozwalającej uruchamiać systemy operacyjne takie jak Linux i Windows CE) oraz bardziej specjalizowane peryferia.

System operacyjny (Operating System, OS) – oprogramowanie zarządzające systemem komputerowym, tworzące środowisko do uruchamiania i kontroli zadań użytkownika. Celem tworzenia systemów operacyjnych jest zastąpienie zapisywania w programie użytkownika sekwencji działań, łatwymi w użyciu opisami funkcjonalnymi i zapewnienie bezpiecznego wykonania programu. Funkcje systemu operacyjnego udostępniane jako usługi tworzą maszynę wirtualną.

Zadania systemu operacyjnego:

Wykonanie programów wymaga kontroli przydziału i ochrony zasobów systemu: czas procesora, przestrzeń pamięci, urządzenia wejścia/wyjścia (peryferia).

Najważniejsze z funkcji wspomagających te działania to: synchronizacja procesów (process synchronization) , obsługa wyjątków (exception handling) ,zarządzanie pamięcią (memory management), obsługa wejścia i wyjścia (I/O handling).

W celu uruchamiania i kontroli zadań użytkownika system operacyjny zajmuje się: planowaniem oraz przydziałem czasu procesora poszczególnym zadaniom, kontrolą i przydziałem pamięci operacyjnej dla uruchomionych zadań, dostarcza mechanizmy do synchronizacji zadań i komunikacji pomiędzy zadaniami, obsługuje sprzęt oraz zapewnia równolegle wykonywanym zadaniom jednolity, wolny od interferencji dostęp do sprzętu.

Dodatkowe zadania, którymi może ale nie musi zajmować się system operacyjny to: ustalanie połączeń sieciowych, zarządzanie plikami. Wiele systemów operacyjnych posiada środowiska graficzne ułatwiające komunikacje maszyny z użytkownikiem.

Klasyfikacja systemów operacyjnych:
Systemy operacyjne ogólnego przeznaczenia można podzielić na cztery zasadnicze typy:

System operacyjny jako interfejs pomiędzy maszyną a człowiekiem - System operacyjny udostępnia zestaw funkcji zwanych API (Application Programming Interface) lub wywołań systemowych. Programista może skorzystać z tych funkcji w celu uzyskania żądanego efektu, przykładowo odczytu danych z pliku dyskowego. Jakąkolwiek czynność na sprzęcie chcą wykonać zadania użytkownika, korzysta zawsze z interfejsu systemu. Ma to tę zaletę, że o szczegółach obsługi sprzętu jest poinformowany tylko i wyłącznie system operacyjny a same zadania nie muszą znać specyfiki obsługi urządzeń. Dzięki interfejsu użytkownika możliwa jest bezpośrednia interakcja użytkownika z komputerem.

Architektura systemu operacyjnego - Ttrzy główne elementy budowy SO :

Rodzaje systemów operacyjnych - Podział systemów operacyjnych:

Inny rodzaj podziału:

wbudowane systemy operacyjne. Systemy wbudowane są zaszyte (wbudowane) wewnątrz urządzeń użytkowych, maszyn pojazdów itp. Wbudowane systemy operacyjne są najczęściej czasowo deterministyczne, zazwyczaj nie stosują wywłaszczenia zadań.

Pod względem środowiska użytego do implementacji systemu można wprowadzić podział na:

Funkcje systemu operacyjnego:

Zarządzanie zasobami: W przypadku środowiska wielozadaniowego, w którym wiele zadań wykonywanych jest w tym samym czasie, może dość do interferencji procesów. Aby zapobiec temu zjawisku organizuje się dostęp do sprzętu, plików, pamięci itp. poprzez ustanowienie zasobów systemowych. Zadania (procesy) użytkownika nie sięgają samodzielnie do sprzętu lub pliku ale używają systemu operacyjnego jako strażnika zarządcy zasobów. Dzięki takiej organizacji dostępu do zasobów, zadania "mają wrażenie", że każde z nich pracuje na własnym komputerze. O realny porządek dostępu do rzeczywistego urządzenia, pamięci lub pliku dba system operacyjny. Zadania systemu operacyjnego podczas zarządzania zasobami systemu komputerowego:

tworzenie deskryptora zasobu, - Deskryptor – identyfikator. Descriptor (Latin describo - opisać) - jednostką leksykalną (słowo, zdanie) język wyszukiwania informacji, który jest używany do opisania jego podstawowych treści semantycznej dokumentów.

Zarządzanie zasobami systemu komputerowego:

Zarządzanie procesem - Proces - to program w stanie uruchomionym. Każdy proces wymaga przydziału pewnych zasobów, włączając w to czas procesora, pamięć, pliki oraz urządzenia wejścia/wyjścia, aby w pełni wykonać swoje zadanie.
System operacyjny jest odpowiedzialny w fazie zarządzania procesami za:

Zarządzanie pamięcią operacyjną - Pamięć - to duża tablica słów lub bajtów, każda z własnym adresem, pamięć jest szybko dostępna i dzielona jest pomiędzy procesor oraz urządzenia wejścia/wyjścia. Pamięć główna jest ulotnym miejscem przechowywania danych, traci swoją zawartość w czasie awarii systemu. System operacyjny jest odpowiedzialny w fazie zarządzania pamięcią za:

Zarządzanie plikami - Plik jest zbiorem informacji zdefiniowanym przez twórcę pliku. Pliki reprezentują programy oraz dane. System operacyjny jest odpowiedzialny w fazie zarządzania plikami za:

Zarządzanie wejściem/wyjściem - System wejścia/wyjścia składa się z:

Zarządzenie nośnikami danych- Pamięć główna jest ulotna i często za mała aby obsłużyć wszystkie programy i dane, dlatego stosuje się nośniki danych (najczęściej dysk twardy) do powiększania tej pamięci tak zwanej pamięć drugiego rzędu. Na napędach tych mapuje się pamięć główną. System operacyjny jest odpowiedzialny w fazie zarządzania nośnikami danych za:

Licznik zliczający interwały czasowe - Jedynym dodatkowym urządzeniem koniecznym do uruchomienia wielozadaniowego systemu operacyjnego jest licznik zliczający interwały czasowe. Każdy system operacyjny musi być taktowany, aby mógł odliczać czas pozostały do zakończenia jednego a rozpoczęcia innego zadania.

Zaplecze sprzętowe systemów operacyjnych:
W celu uzyskania systemu o dużym stopniu niezawodności procesory posiadają cechy wspierające działanie systemów operacyjnych. Cechy te to:

Ochrona i zarządzanie pamięcią - Działanie mechanizmów zarządzania i ochrony pamięci opiera się na wsparciu sprzętowym dostarczanym przez kontrolery pamięci wbudowane w procesor (lub chipset). Ogólna zasada polega na wydzielaniu poszczególnym procesom obszarów pamięci do wyłącznego użytku. Tylko dany proces może pisać lub czytać tylko do/z danego obszaru. Technicznie ochrona realizowana jest poprzez podział obszaru pamięci na segmenty i strony. Zadanie użytkownika, które jest aktywowane w danej chwili przywraca swój kontekst poprzez ustawienie odpowiednich rejestrów CPU jak i rejestrów kontrolnych jednostki zarządzania pamięcią. Dzięki ochronie pamięci awaria jednego zadania i próba błędnego nadpisana przestrzeni adresowej innych zadań jest niemożliwa.

Język maszynowy (kod maszynowy) – język programowania, w którym zapis programu wymaga instrukcji bezpośrednio jako liczb, które są rozkazami i danymi bezpośrednio pobieranymi przez procesor wykonujący ten program. Był to jedyny język programowania komputerów zerowej generacji, i pierwszej generacji. Postać i treść kodu maszynowego zależy nie tylko od kodu źródłowego programu, ale też od translatora, systemu operacyjnego, wersji bibliotek, typu procesora i jego języka maszynowego. Języki wysokiego poziomu wraz z odpowiednimi bibliotekami i kompilatorami umożliwiającą użycie tego samego programu źródłowego do budowy programu pracującego na różnych systemach operacyjnych, różnych procesorach, itd. Kod maszynowy jest generowany za pomocą translatora, który przekształca czytelny dla programisty zapis w języku programowania w odpowiadające mu kody instrukcji maszynowych.

Kod maszynowy może być generowany w procesie kompilacji (z języków wysokiego poziomu) lub asemblacji (z asemblera). W trakcie procesu tworzenia kodu maszynowego tworzony jest często kod pośredni. Każdy typ procesora ma swój własny język maszynowy. Kod maszynowy to postać programu komputerowego (zwana postacią wykonywalną lub binarną) przeznaczona do bezpośredniego wykonania przez procesor. Jest ona dopasowana do konkretnego typu procesora i wyrażona w postaci rozumianych przez niego kodów rozkazów i ich argumentów. Jest to postać trudna do analizy przez człowieka. Kod maszynowy nie może być wykonywany przez procesory innego typu, niż ten, dla którego zostały napisane. Niesie to za sobą wiele problemów związanych z przenośnością programów.

Kod pośredni poddawany jest linkowaniu, które wygeneruje ostateczny obraz programu w taki sposób, że system operacyjny będzie mógł go wczytać, z ewentualnym dostosowaniem argumentów będących adresami do adresów odpowiednich bloków programu w pamięci, i wykonać zawarte w nim instrukcje.

Asembler – termin informatyczny związany z programowaniem i tworzeniem kodu maszynowego dla procesorów. W języku polskim oznacza on program tworzący kod maszynowy na podstawie kodu źródłowego (tzw. asemblacja) wykonanego w niskopoziomowym języku programowania bazującym na podstawowych operacjach procesora zwanym językiem asemblera, popularnie nazywanym również asemblerem. Język programowania nazywany będzie językiem asemblera, a program tłumaczący – asemblerem. Języki asemblera to rodzina języków programowania niskiego poziomu, których jedno polecenie odpowiada zasadniczo jednemu rozkazowi procesora. Powstały na bazie języków maszynowych danego procesora poprzez zastąpienie kodów operacji ich mnemonikami. Dzięki stosowaniu skrótów poleceń zrozumiałych dla człowieka pozwala to na tworzenie oprogramowania. Dodatkowo bezpośrednia odpowiedniość mnemoników oraz kodu maszynowego umożliwia zachowanie wysokiego stopnia kontroli programisty nad działaniem procesora. Składnia języka asemblera zależy od architektury procesora, ale i używanego asemblera.

Główne rozkazy assemblera -
Mov (mov - move - przesuń), służy do kopiowania wartości między pamięcią a rejestrami, lub między rejestrami wyłącznie. Mov używa się do nadawania rejestrom określonych wartości. Składnia: MOV cel, źródło. Zarówno źródło jak i cel mogą być rejestrem, lub komórką pamięci, ale równocześnie tylko jeden z operatorów może być pamięcią Mov kopiuje a nie przenosi wartości, czyli po wykonaniu polecenia wartość „źródło" nie zostaje zmieniona ani wyzerowana.

Stos - instrukcje push, pop, pusha, popa, pushf i popf Istnieją dwie instrukcje, które służą do obsługi stosu:

Składnia: PUSH REJ16 , PUSH WAR16 ,POP REJ16

"REJ16" i "WAR16" - oznaczają odpowiednio rejestr i wartość 16-bitową – tzn. nie można wrzucać ani pobierać ze stosu wartości 8-bitowych;
PUSH i POP operują jedynie na słowach: danych 2-bajtowych.

Instrukcje PUSHA i POPA powodują wrzucenie na stos wszystkich rejestrów - nie trzeba wywoływać kilkakrotnie instrukcji PUSH i POP – wpływa to więc na skrócenie programu. Parą instrukcji jest PUSHF i POPF, których działanie jest identyczne do PUSHA i POPA, lecz ogranicza się wyłącznie do flag - push flags... Składnia: PUSHF, POPF

INT - wywołanie przerwania INT jest instrukcją uruchamiającą przerwanie programowe.

Składnia instrukcji: INT numer_przerwania Numer_przerwania to liczba z zakresu 0-255,
musi być podana konkretna wartość;

Przerwanie 21H funkcja 2CH - pobierz czas AH = 2CH

Przerwanie zwraca:

Funkcja 4CH przerwania 21H. Przerwanie 21H funkcja 4CH - zakończ program i zwróć kod errorlevel

JMP - jump - skok Instrukcja jmp powoduje bezwarunkowy przeskok do innej części programu.

Podprocedury instrukcje “CALL”i “RET” Instrukcje CALL (wołaj) i RET (return, powrót) służą do tworzenia podprocedur: - części programu, które będą używane częściej niż raz.

Składnia:
CALL ETYKIETA

RET

CALL - zapamiętuje na stosie adres następnej instrukcji programu
a następnie przeskakuje do etykiety "etykieta" tak, jak to robiła instrukcja JMP.

Po napotkaniu instrukcji RET procesor pobiera ze stosu adres zapamiętany
tam przez CALL i przeskakuje pod ten właśnie adres czyli "wraca" do programu nadrzędnego.

Mnożenie Do mnożenia służy w Assemblerze instrukcja MUL (multiply - mnóż).

Składnia:

MUL A MUL powoduje pomnożenie wartości A razy zawartość rejestru AX.Inaczej, gdy A jest wartością typu word (słowo - 2 bajty) lub byte (bajt).Gdy A jest 1 bajt, wykonywane jest mnożenie a*AL (AL jest to młodszy bajt rejestru AX) i wynik mnożenia zostaje wrzucany do AX.

Dzielenie Instrukcją dzielącą jest w Assemblerze DIV (divide - dziel).

Składnia:

DIV A Tutaj ma znaczenie czy A jest bajtem (np. BH, BL), czy słowem (NP. BX). Jeśli A jest bajtem, AX jest dzielony przez A; iloraz zostaje wrzucony do AL, reszta do AH. Gdy A jest słowem (2 bajty), DX:AX zostaje podzielony przez A; po dzieleniu AX zawiera iloraz a DX resztę z dzielenia

LOOP- Pętla

Składnia:

LOOP ETYKIETA LOOP zmniejsza wartość CX o jeden (DEC CX), i - jeśli CX jest większe 0 powoduje bezwarunkowy przeskok do "ETYKIETA". LOOP umożliwia tylko budowę pętli typu "downto" czy - "step -1" - pętli, w której licznik maleje a nie rośnie.

Typowa hierarchia pamięci

Hierarchia pamięci składa się z poziomów przechowywania. Każdy poziom charakteryzuje się inną szybkością działania i pojemnością. Do wytworzenia elementów pamięci wykorzystuje się różne technologie: umożliwiającą szybki dostęp do danych technologię półprzewodnikową dla elementów wewnętrznych bliskich procesorowi oraz technologie wykorzystywane do wytworzenia powierzchni magnetycznych i optycznych dla elementów zewnętrznych, oddalonych od procesora.

Klasyfikacja pamięci półprzewodnikowych

Pamięć o dostępie swobodnym (RAM) - Istnieją dwa główne rodzaje półprzewodnikowych pamięci RAM: pamięć statyczna (SRAM) i dynamiczna (DRAM). Komórki SRAM są uporządkowane jako matryca zbudowana z wierszy i kolumn. Adres podawany na linie adresowe Ao, ... , A9 jest używany do wybrania wiersza, w którym każda komórka jest podłączona do oddzielnej linii kolumny. Komórki są zgrupowane po 8, co jest określane jako organizacja bajtowa. Linie kolumn są używane do przesyłania bajtów danych między zaadresowanym wierszem a liniami danych Do, ... , D7, łączącymi układ z magistralą danych.

Statyczna pamięć – SRAM Komórki pamięci SRAM przechowują dane wykorzystując, działające jako przerzutniki, pary układów tranzystorowych z wyjściami połączonymi skrośnie do wejść. Do realizacji jednej komórki układu SRAM koniecznych jest sześć tranzystorów, więc pamięci statyczne mogą przechować mniej bitów na mm2 krzemu niż pamięci dynamiczne. Są one także droższe, licząc koszt przechowania jednego bitu. Główną przewagą pamięci statycznych nad dynamicznymi jest krótszy czas dostępu.

Dynamiczna pamięć – DRAM - W pamięciach dynamicznych do przechowywania informacji jest używany jeden tranzystor na komórkę pamięci. Dzięki temu pamięci te zapewniają obecnie najbardziej zwartą i tanią formę pamięci półprzewodnikowej. Każda jednostka pamięci to kondensator (element do przechowywania ładunku), połączony z tranzystorem używanym do realizacji odczytu i zapisu.

Pamięć stała (ROM-Read Only Memory) - Pamięci ROM są używane do zapisywania programów i tablic z danymi, które muszą być obecne w komputerze po włączeniu zasilania. Pamięci ROM dzielą się na dwie klasy: stałe i programowalne. Stała lub programowalna maskami pamięć ROM zawiera wzorce bitowe umieszczone w matrycy pamięci podczas produkcji. Przy użyciu masek fotograficznych na skrzyżowaniach wybranych wierszy i kolumn tworzone są tranzystory, Wymazywalne programowalne pamięci EPROM (Erasable Programmable ROM) mogą być programowane, wymazywane i powtórnie programowane kilka razy.

Pamięć podręczna - Półprzewodnikowa pamięć podręczna jest niewielką (dla obniżenia kosztu), szybką pamięcią, pełniącą funkcję bufora między procesorem a pamięcią główną. Pamięć podręczna poszerza wąskie gardło powstające w wyniku różnic szybkości działania jednostki centralnej i pamięci głównej, korzystając z własności zachowania programu zwanej zasadą lokalności. Z powodu natury programów i sposobu organizowania danych odwołania do pamięci w czasie wykonywania programu nie są losowe, lecz dają się przewidywać. Programy mają na przykład tendencję do ponownego używania danych i rozkazów, które były niedawno używane (lokalność tymczasowa). Rozkazy i dane używane w krótkim odstępie czasu są zwykle także blisko siebie w pamięci (lokalność przestrzenna). Systemy pamięci podręcznej wykorzystują tę właściwość zachowania programów i zwiększają wydajność systemu, przechowując aktualnie aktywne fragmenty programu w szybkim buforze.

Zasada działania pamięci podręcznej - Półprzewodnikowa pamięć podręczna zawiera ograniczoną liczbę obszarów (ang. slot) albo wierszy służących do przechowywania bloków (ang. block) z pamięci głównej. Każdy blok ma typowo wielkość od czterech do szesnastu słów. W czasie wykonywania programu procesor zamiast czytać rozkazy czy dane bezpośrednio z pamięci głównej, szuka ich najpierw w pamięci podręcznej. Jeśli słowo zostaje znalezione, to sygnalizowane jest „trafienie" i słowo przesyłane jest do procesora. Jeśli słowa nie ma w pamięci podręcznej, to jest ono pobierane z pamięci głównej, a pamięć podręczna jest uaktualniana blokiem zawierającym to słowo.

Pamięć dodatkowa - W urządzeniach do przechowywania danych wykorzystywane są dwie technologie:

Dyskowa pamięć magnetyczna - Powszechnie wykorzystywaną formą pamięci dodatkowej jest dysk twardy. Dane są zapisywane magnetycznie na okrągłych ścieżkach (ang. track). Głowica jest ustawiana przez ramię nastawiające, co pozwala na krokowe przechodzenie od ścieżki do ścieżki wzdłuż promienia nad powierzchnią dysku. Ścieżki są podzielone na sektory. Każdy sektor służy do zapisania bloku danych. W systemie wielodyskowym, dla każdej powierzchni jest stosowana oddzielna głowica odczytująco-zapisująca. Głowice są przymocowane do jednego ramienia nastawiającego, które przestawia je na tę samą ścieżkę na każdej powierzchni. Zbiór odpowiadających sobie ścieżek nazywany jest cylindrem. Zapisywanie i odczytywanie danych na dysku realizowane jest w sposób szeregowy. Każdy sektor zawiera oprócz danych także adres (ścieżka, głowica, sektor), bajty synchronizujące i informacje do kontroli błędów. Aby dostać się do konkretnego sektora, głowica musi najpierw zostać przestawiona do właściwej ścieżki i poczekać, aż wybrany sektor będzie się pod nią przesuwał. Czas potrzebny na wykonanie tych operacji jest nazywany czasem dostępu (ang. access time) i zależy w oczywisty sposób od pozycji głowicy, ścieżki i sektora w czasie rozpoczęcia operacji. Przy podawaniu czasu dostępu do dysku używana jest zwykle wartość średnia, która zależy od średniego czasu dojścia do ścieżki (czas wyszukiwania, ang. seek time) i czasu potrzebnego na dojście sektora do głowicy (opóźnienie rotacyjne, ang. rotational latency).

Dyski twarde Oceniając wydajność dysku, uwzględnia się różne parametry: czas wyszukiwania - czas przemieszczenia głowic dysku z jednej ścieżki na drugą; opóźnienie obrotowe - połowa czasu potrzebnego na pełen obrót dysku; jest to zarazem średni czas oczekiwania na to, aby potrzebne dane znalazły się pod głowicą dysku po jej uprzednim ustawieniu na właściwą ścieżkę; czas dostępu - suma czasu wyszukiwania i opóźnienia obrotowego; szybkość przesyłania - szybkość transmisji danych z dysku lub do niego. Dyski twarde mają w ogólności znacznie lepsze charakterystyki niż dyskietki elastyczne (jeśli chodzi o szybkość). Ponieważ systemy dyskowe zawierają ruchome elementy mechaniczne, które poruszają się przy uzyskiwaniu dostępu do danych, zarówno dyski twarde, jak i dyski elastyczne są wyraźnie wolniejsze niż układy elektroniczne. Opóźnienia w układach elektronicznych mierzy się w nanosekundach (bilionowych częściach sekundy), a nawet w jednostkach mniejszych, podczas gdy czas wyszukiwania, opóźnienie obrotowe i czas dostępu w systemach dyskowych osiągają wielkości rzędu milisekund (tysięcznych części sekundy). Czas potrzebny na pobranie informacji z dysku może wydawać się zatem wiecznością oczekującemu na nią układowi elektronicznemu.

Pamięć optyczna - W optycznych dynamicznych systemach pamięciowych dane są zapisywane w postaci serii wgłębień (ang. pit) o zmiennej długości, umieszczonych wzdłuż spiralnej ścieżki na powierzchni dysku twardego. W celu odczytania danych na dysku jest skupiane światło półprzewodnikowego lasera małej mocy. Różnice w intensywności odbitego światła, spowodowane odbijaniem światła od wgłębień, a nie rozpraszaniem od powierzchni (ang. land) między wgłębieniami, są wykorzystywane do odczytania zakodowanych danych. Dyski CD-ROM są produkowane masowo przez tłoczenie wgłębień na podłożu poliwęglowym specjalną niklowaną matrycą. Podłoże jest następnie pokrywane cienką odblaskową warstwą i na koniec zabezpieczane lakierem przed zadrapaniem. Produkcja i testowanie matryc są kosztowne, ale jedna wystarczy do wytłoczenia do 10 000 dysków, dlatego masowa produkcja pamięci CD-ROM jest opłacalna.

Dyski CD-ROM Dane są zapisane wzdłuż spiralnej ścieżki w sektorach, które są liczone od środka na zewnątrz. Każdy sektor zawiera 3234 bajty, z których 882 są używane jako kod wykrywania błędów/kod poprawiania błędów, EDC/ECC, oraz do zapewnienia informacji sterującej. W porównaniu z magnetycznym sposobem zapisywania informacji, zapis optyczny ma wiele zalet. Gęstość zapisu jest około pięć razy większa niż na dysku magnetycznym. System optyczny używany do odczytywania danych nie ma kontaktu z powierzchnią dysku, gdyż jest oddalony od niej zwykle o ok. 1 mm. Eliminuje to problem z zanieczyszczeniami, które dostają się na powierzchnię dysku i umożliwia wyjmowanie dysków z napędu, kiedy dane nie są potrzebne. Dla porównania, głowice w systemach dysków twardych, takich jak Winchester, poruszają się niezwykle blisko powierzchni, co oznacza, że jakikolwiek pyłek czy brud na dysku może być przyczyną uderzenia głowicy w powierzchnię i jej zniszczenia. Dlatego dyski twarde są produkowane w sterylnych warunkach, po czym szczelnie zamykane, tak że nie można ich wyjąć. Dzięki kodom wykrywania i korekcji błędów wykorzystywanym na dyskach optycznych, mniejsze są wymagania jakościowe przy ich produkcji niż przy produkcji dysków twardych, co sprawia, że są to nośniki bardziej ekonomiczne.

Nośniki WORM Optyczne pamięci typu Write-Once-Read-Many (WORM) umożliwiają archiwizowanie danych przez zapisanie ich na czystym pierwotnie dysku optycznym albo taśmie. Popularnym typem dysków WORM są zapisywalne dyski kompaktowe (CD-R - jednokrotny zapis i wielokrotny odczyt)), mające warstwę odbijającą, która może być użyta do trwałego zapisania danych. Napędy CD-R zawierają dwa lasery półprzewodnikowe: jeden do zapisu, a drugi do odczytu danych. Laser używany do zapisu ma zwykle moc ok. 10 mW, co oznacza, że może wypalać w powierzchni dysku zagłębienia, tworzyć pęcherzyki albo w jeszcze inny sposób wpływać na współczynnik odbicia wierzchniej warstwy dysku. Laser używany do odczytu ma mniejszą moc i nie może wpływać na zapisane dane.

Nośniki WREM Optyczne pamięci typu Write-Read-Erase-Memory (CD-RW – wielokrotny zapis i odczyt), zwane także pamięciami magnetooptycznymi, są optycznymi odpowiednikami magnetycznych dysków twardych umożliwiającymi wielokrotne zapisywanie, odczytywanie, kasowanie i powtórne zapisywanie danych. Typowy dysk zawiera cienką warstwę magnetooptyczną umieszczoną pomiędzy kilkoma innymi warstwami. Dane są zapisywane jako seria pionowo namagnesowanych plamek na warstwie magnetooptycznej. Dane są zapisywane przez skierowanie światła laserowego dużej mocy na plamkę.  

Pamięć taśmowa - Strimer Strimer jest pamięcią wykorzystującą taśmę magnetyczna i służy do archiwizacji bardzo dużych ilości danych np. dysku obsługującego wielu użytkowników sieci komputerowej. Strimery dzielą taśmę na segmenty, z których każdy jest oznaczany (magnetycznie) podczas formatowania przypominającego czynność wykonywaną w urządzeniach dyskowych. Każdy z tych segmentów zawiera kilka ścieżek, które biegną równolegle do siebie wzdłuż całej taśmy. Dostęp do ścieżek jest niezależny, co oznacza, że taśmę, podobnie jak sektory na dysku, można traktować jako kilka ciągów bitów. Główną wadą urządzeń taśmowych jest to, że przemieszczenie się między dwiema pozycjami na taśmie może trwać bardzo długo, gdy trzeba przewinąć duży fragment taśmy. Z tego powodu systemy taśmowe charakteryzują się znacznie dłuższym czasem dostępu niż systemy dyskowe, w których dostęp do różnych sektorów uzyskuje się za pomocą niewielkich ruchów głowicy zapisująco-odczytującej. W efekcie urządzenia taśmowe nie są powszechnie stosowane do przechowywania danych on-line. Gdy jednak celem jest gromadzenie danych off-line w celu ich archiwizowania, to wysoka niezawodność, duża pojemność i relatywnie niewielki koszt takich urządzeń sprawia, że są one najlepszym wyborem spośród współczesnych systemów przechowywania danych.

System komputerowy (ang. computer system) – układ współdziałania dwóch składowych:

Można mówić o następujących poziomach takiego systemu:

W pełni zautomatyzowany system komputerowy działa bez udziału człowieka.Organizacja systemu komputerowego to opis zależności sprzętowych, przedstawienie poszczególnych podzespołów komputera, który funkcjonuje według pewnych reguł i zasad, współpracuje ze sobą – by osiągnąć określony cel. Organizacja systemu komputerowego określa zasady, reguły, cele oraz sposób wspomagania działań poszczególnych podzespołów.

Struktura systemu komputerowego składa się z pięciu zasadniczych warstw tj.

- warstwa sprzętowa,

- system operacyjny,

- programy narzędziowe,

- programy użytkowe i

- użytkownicy.

Sprzęt – zapewnia podstawowe możliwości obliczeniowe (procesor, pamięć, urządzenia wejścia/wyjścia) – podstawowe zasoby systemu komputerowego.

Oprogramowanie systemowe – kontroluje i koordynuje działanie zasobów sprzętowych przez zastosowanie różnych programów użytkowych dla różnych użytkowników. Warstwa tworzona przez twórców systemu operacyjnego – są to zazwyczaj wysoko wyspecjalizowani specjaliści.

Oprogramowanie narzędziowe – dogodne interfejsy użytkowe wspomagające zarządzanie zasobami sprzętowymi oraz usprawniające, modyfikujące oprogramowanie systemowe, zazwyczaj pisane przez niezależnych programistów, którzy mają na celu usprawnienia wykonywania programów w bardziej wygodny i wydajny sposób, a przy tym często eliminują błędy czy też niedociągnięcia oprogramowania systemowego.

Oprogramowanie użytkowe – określają sposoby użycia zasobów systemowych do rozwiązywania problemów obliczeniowych zadanych przez użytkownika (kompilatory, systemy baz danych, gry, oprogramowanie biurowe), tworzone przez programistów.

Użytkownicy – ludzie, maszyny, inne komputery, mający bezpośredni kontakt z oprogramowaniem użytkowym.

Bazowa architektura komputera

Mikroprocesor to układ scalony o bardzo dużym stopniu upakowania, zawierający nawet do kilku setek milionów tranzystorów. Jest on podstawowym urządzeniem przetwarzającym i sterującym komputera. Wykonuje większość arytmetycznych i logicznych operacji przetwarzania danych. Architektura mikroprocesora powinna spełniać trzy podstawowe warunki.Musi być funkcjonalnie elastyczna, co pozwoli rozszerzyć krąg potencjalnych użytkowników. Osiągana jest zazwyczaj poprzez zastosowanie sterowania mikroprogramowego i wykorzystanie dużej liczby rejestrów. Powinien charakteryzować się wystarczająco dużą szybkością pracy. Krótkie linie połączeniowe pozwalają zastosować wysokie częstotliwości pracy układu. W szeregu mikroprocesorów zwielokrotnianie szybkości przetwarzania osiągane jest poprzez zrównoleglenie obliczeń. Musi gwarantować technologiczną prostotę budowy urządzeń na jego bazie. Prostota powinna obejmować łatwość montażu, opracowania programów zarządzających itp. Mikroprocesor jest odpowiednikiem procesora, wykonanym w postaci układu scalonego, w którym wszystkie elementy wraz z ich połączeniami są wytworzone w jednym cyklu technologicznym wewnątrz lub na powierzchni wspólnego podłoża. Miarą złożoności układu scalonego jest tzw. stopień scalenia, określający liczbę elementów w pojedynczej strukturze układu Układy o małym stopniu scalenia SSI (Smali Scalę Integration ) zawierają w jednej strukturze do kilkudziesięciu elementów, Układy o średnim stopniu scalenia MSI (Medium Scalę Integration) – od kilkudziesięciu do kilkuset elementów, Układy o dużym stopniu scalenia LSI (Large Scalę Integration) - od kilkuset do kilkudziesięciu tysięcy elementów, Układy o bardzo dużym stopniu scalenia VLSI (Very Large Scalę Integration) - powyżej kilkudziesięciu tysięcy elementów. Układy zawierające powyżej miliona elementów są określane jako układy o superdużym lub ultradużym stopniu scalenia: SLSI (Super Large Scalę Integration), ULSI (Ultra Large Scalę Integration). Współczesne mikroprocesory zaliczają się do układów SLSI (ULSI). SOC - System on Chip, NOC – Network on Chip.

Pamięć stała ROM (Read Only Memory) jest elementem przeznaczonym do przechowywania niezmiennych komponentów oprogramowania systemu informatycznego pomiędzy seansami pracy komputera. W pamięci stałej umieszczane są tylko te spośród nich, do których dostęp jest niezbędny dla funkcjonowania systemu. Pamięć ta posiada niewielki rozmiar i jest przeznaczona do przechowywania wybranych fragmentów systemu operacyjnego. W komputerze personalnym takim wybranym fragmentem jest tzw. bazowy system wejścia-wyjścia BIOS, do zadań którego należy ładowanie systemu operacyjnego. W mainframe czy superkomputerze pamięć stała dodatkowo znajduje zastosowanie do przechowywania niezmiennych wartości liczbowych, niezbędnych w procesie obliczeń naukowo-technicznych, wartości niektórych funkcji, jak również do wykonania złożonych działań arytmetycznych,. Cechą charakterystyczną pamięci stałych jest niezmienność ich zawartości przez cały czas eksploatacji.

 Pamięć o dostępie swobodnym RAM (Random Access Memory) przeznaczona jest do przechowywania danych i programów sterujących, wykonywanych w chwili obecnej przez komputer. Pozwala na praktycznie nieograniczoną liczbę zapisów i odczytów informacji. Wyłączenie zasilania pamięci tego typu jest jednak równoznaczne z utratą zapisanych w niej informacji. Parametry pamięci o dostępie swobodnym w znacznym stopniu określają możliwości komputera - im jest ona większa, tym większe możliwości przetwarzania ma komputer. Rozmiar pamięci o dostępie swobodnym jest zawsze wielokrotnie większy od rozmiaru pamięci stałej.

Interfejsy sterujące to specjalizowane procesory przeznaczone do zarządzania urządzeniami wejścia-wyjścia. Ponieważ natura operacji wejścia-wyjścia i operacji obliczeniowych jest zupełnie różna, trudne byłoby skonstruowanie mikroprocesora, który z jednakową efektywnością wykonywałby operacje obliczeniowe i przetwarzanie danych w celu dostosowania ich postaci do formy akceptowanej przez urządzenie wejścia-wyjścia. Współczesne mikroprocesory ukierunkowane zostały na wykonywanie operacji obliczeniowych. Dlatego do celów przetwarzania wprowadzanych lub wyprowadzanych danych skonstruowano wysoko specjalizowane mikroprocesory przetwarzania informacji (procesory obrazu, procesory sygnałów, teleprocesory itp.). Z tego powodu rola głównego mikroprocesora ogranicza się do prowadzenia obliczeń i inicjalizacji przetwarzania wejścia-wyjścia.

Urządzenia wejścia-wyjścia to w większości konstrukcje elektromechaniczne, wyposażone w sterowanie mikroprocesorowe, których zadaniem jest przedstawianie użytkownikowi informacji przetworzonej w komputerze oraz przyjmowanie informacji od użytkownika i wprowadzanie jej do komputera. Urządzenia wejścia-wyjścia należą do najdroższych elementów maszyny informatycznej.

Blok sterowania ma za zadanie wytwarzanie impulsów synchronizujących pracę całego komputera. Dzięki niemu rozpoczynanie i zakańczanie przetwarzania w poszczególnych blokach komputera będzie zsynchronizowane. Blok ten określa również sekwencję elementarnych działań wykonywanych przez pozostałe bloki komputera.

Harwardzka alternatywa koncepcji komputera z programem pamiętanym Alternatywą koncepcji von Neumanna jest idea Howarda Aikena (Harvard, 1948), aby rozdzielić pamięć główną na osobne pamięci danych i rozkazów. Umożliwia to nie tylko jednoczesne pobranie kodu rozkazu i argumentów, lecz także zabezpieczenie kodu przed przypadkowym zniszczeniem.


Wyszukiwarka

Podobne podstrony:
2008 architektura arytmetyka kolokwium
KOLOKWIUM ZALICZENIOWE Z PODSTAW URBANISTYKI I ARCHITEKTURY, Politechnika Opolska 1 Semestr Budownic
Wstep do historii sztuki architektura terminy kolokwium6 (2)
KOLOKWIUM ZALICZENIOWE Z PODSTAW URBANISTYKI I ARCHITEKTURY
Wstep do historii sztuki architektura terminy kolokwium6
ARCHITEKTURA KOMPUTEROW1A
do kolokwium interna
09 Architektura systemow rozproszonychid 8084 ppt
Architecting Presetation Final Release ppt
WODA PITNA kolokwium

więcej podobnych podstron