ZESTAW 1
1. Dlaczego procesor w trakcie wykonywania rozkazu dodawania add ustawia jednocześnie oba znaczniki nadmiaru CF i OF?
W trakcie wykonywania operacji arytmetycznych wynik może przekroczyć dopuszczalną wartość, co określane jest jako nadmiar. W operacjach dodawania i odejmowania przyjęto że rozmiary obu argumentów są jednakowe. Jeśli więc dodajemy dwie liczby ośmiobitowe to wynik musi dać się przedstawić w postaci ośmiobitowej, w przeciwnym razie występuje nadmiar. Ponieważ dodawanie liczb bez znaku i ze znakiem zakodowane w kodzie U2 przebiega według tego samego algorytmu więc konstruktorzy procesora zdefiniowali tylko jeden rozkaz ADD używany zarówno do dodawania liczb bez znaku jak i liczb ze znakiem w kodzie U2. Procesor wykonujący rozkaz dodawania ADD nie posiada informacji czy dodane liczby zostały zakodowane jako liczby bez znaku czy jako liczby w kodzie U2. W tej sytuacji procesor przeprowadza analizę nadmiaru dwukrotnie:
-przy założeniu że dodawane są liczby bez znaku, w tym wypadku wykrycie nadmiaru powoduje ustawienie znacznika CF→1, w przeciwnym razie znacznik jest zerowany CF→0
-przy założeniu że dodawane liczby są w kodzie U2, w tym przypadku wykrycie ewentualnego nadmiaru powoduje ustawianie znacznika OF-1, w przeciwnym razie znacznik OF jest zerowany OF→0
2. W jaki sposób w programach wytworzonych przez kompilatory języków programowania rezerwuje się miejsce w pamięci przeznaczone dla zmiennych lokalnych funkcji i procedur?
Działania wykonywane są często na zmiennych lokalnych , które są potrzebne tylko w trakcie wykonywania funkcji. Zmienne lokalne powinny więc zajmować obszar pamięci przydzielony tylko na czas wykonywania podprogramu , dlatego wygodne jest je umieszczać na stosie
3. Jaką rolę w trakcie wykonywania programu przez procesor pełni wskaźnik instrukcji?
Proces pobierania kolejnych instrukcji z pamięci operacyjnej i ich wykonywania musi być precyzyjnie zorganizowany, tak by natychmiast po wykonaniu kolejnej instrukcji procesor pobierał z pamięci następną. Aby pobrać tę instrukcję procesor musi znać jej położenie w pamięci operacyjne, informacje o położeniu kolejnej instrukcji są umieszczane w specjalnym rejestrze - wskaźnik instrukcji
Jest to rejestr 32-bitowy. Jeśli wykonywany rozkaz nie jest rozkazem sterującym to w trakcie jego wykonywania zawartość wskaźnika instrukcji jest zwiększana o liczbę bajtów zajmowanych przez ten rozkaz.
4. Omówić technikę wyodrębniania zawartości pól bitowych.
Na poniższym przykładzie omówię technikę wyodrębniania zawartości pól bitowych. Chcę wyznaczyć liczbę umieszczoną na bitach 5-3 rej AH
Po wykonaniu powyższych instrukcji rej AH zawiera analogiczną liczbę 3-bitową zakodowaną w zwykły sposób
5. Co oznaczają terminy trafienie i chybienie w odniesieniu do pamięci podręcznej?
Obserwacje statystyczne wielu podprogramów wskazują że w jednostce czasu program odwołuje się tylko do stosunkowo niewielkiej liczby komórek pamięci zawierającej rozkazy i dane. Wobec tego najczęściej używane dane i rozkazy można umieścić w niezbyt dużej ale bardzo szybkiej pamięci statycznej z której procesor może odczytywać informacje bez nadmiernie długiego oczekiwania. Omawiana pamięć jest powszechnie używana w komputerach i nazywana pamięcią podręczną (zawiera pewną liczbę obszarów które służą do przechowywania kopii bloków z pamięci głównej) W trakcie wykonywania rozkazów procesor szuka najpierw rozkazów i danych w pamięci podręcznej:
- jeśli potrzebna informacja zostanie znaleziona to jest określone jako trafienie , to jest przesłana do procesora
- jeśli potrzebnej informacji nie ma w pamięci podręcznej (chybienie) to jest ona pobierana z pamięci głównej, przy czym jednocześnie wpisywana jest do pamięci podręcznej w postaci całego bloku.
Załadowanie całego bloku do pamięci jest wskazane, ponieważ istnieje duże prawdopodobieństwo że potrzebne będą kolejne dane.
6. Jakie mechanizmu służą synchronizacji procesów?
Mechanizmy synchronizacji/koordynowania:
- sprzętowe- przerwania
- niskiego poziomu - sygnały, potoki
- programowe - na poziomie s.o. lub wyżej
-sekcje krytyczne
-semafory
7. Dlaczego rozkazy grupy mmx i sse w architekturze IA-32 nadają się szczególnie do wykonywania działań w programach multimedialnych?
Zauważono pewną specyfikę programów wykonujących operacje multimedialne. Występują tam fragmenty kodu które wykonują wielokrotnie powtarzające się działania arytmetyczne na liczbach 8-, 16- i 32-bitowych. Używane są rozkazy grupy MMX dla operacji na liczbach zmiennoprzecinkowych. Pojedyncze rozkazy MMX lub SSE wykonywane są przez wyspecjalizowane moduły pojedynczego procesora. Ponieważ jednak rozkazy te wykonują działania jednocześnie na kilku danych można sobie wyobrazić że każda z danych jest przetwarzana przez oddzielny procesor który wykonuje ten sam rozkaz co pozostałe procesory. Tak więc rozkazy grup MMX i SSE mogą być zakwalifikowane do grupy wg klasyfikacji Flynn'a.
W operacjach MMX używane są 4 grupy danych. Nie ma możliwości indywidualnego dostępu do poszczególnych składowych. Na poziomie asemblera instrukcje MMX kodowane są w konwencjonalny sposób:
Kod instrukcji operand docelowy, operand źródłowy
W operacjach MMX obok zwykłej arytmetyki „przewinięcia” stosowane jest także arytmetyka nasycenia (stosowana jest przy przetwarzaniu obrazów np : rozjaśnienie obrazów jest ograniczane przez maksymalna jasność). Rozkazy SSE: równoległe operacje na 4 32-bitowych liczbach zmiennoprzecinkowych przeznaczone głównie do zastosowań grafiki komputerowej. Dla SSE zdefiniowano 8 rej 128-bitowych i zawierających 4 liczby zmiennoprzecinkowe. Instrukcje mogą wykonywać działania na danych upakowanych lub skalarnych.
8. Podaj typy aplikacji wykonywanych po stronie serwera WWW.
CGI, Moduły serwera http [Umieszczenie w ciele dokumentu HTML: jak tradycyjne CGI (mod_perl/Apacze)], Servlety (Java)
ZESTAW 2
1. W jaki sposób zapewnia się spójność pamięci głównej (operacyjnej) i pamięci podręcznej (ciche)?
Istotnym problemem jest zapewnienie spójności zawartości pamięci operacyjnej (głównej) i pamięci podręcznej. Problem ten nie występuje jeśli pamięć operacyjna używana jest tylko do przechowywania rozkazów. Stosowane są dwie podstawowe metody:
-metoda zapis przez - wykonuje zapis do pamięci głównej po każdej operacji zapisu w pamięci podręcznej
-metoda zapis z opóźnieniem - polega na tym że zamiast natychmiastowego zapisu bloku do pamięci głównej zmienia się tylko bit stanu oznaczający że wiersz bufora został zmodyfikowany. Zmodyfikowany blok jest kopiowany do pamięci głównej dopiero gdy trzeba go zastąpić innym. Jednak w przypadku używania transmisji DMA zapewnienie spójności tą metodą może być problemem.
2. Omówić realizację pamięci wirtualnej za pomocą stronicowania.
Mechanizmy stronicowania stanowią podstawę do implementacji pamięci wirtualnej, co oznacza symulowanie dużej pamięci operacyjnej za pomocą stosunkowo niedużej pamięci RAM i pamięci dyskowej. Implementacja ta polega na przechowaniu zawartości pamięci symulowanej częściowo w pamięci RAM i częściowo w pamięci dyskowej. Jeśli strona do której następuje odwołanie aktualnie nie znajduje się w pamięci operacyjnej to generowany jest wyjątek który obsługiwany jest przez system operacyjny, który dokonuje wymiany stron, wówczas inna aktualnie nieużywana strona kopiowana jest na dysk a na jej miejsce wprowadzana jest zadana żądana strona. Ponieważ stosowana jest transformacja adresów więc wymiana może dotyczyć jakiejkolwiek strony w pamięci RAM położoną w dowolnym miejscu pamięci o adresie początkowym podzielonym przez 4096. Dotychczasowa zawartość strony w pamięci RAM jest zapisywana na dysku a na jej miejsce wprowadzana jest aktualnie potrzebna strona tymczasowo przechowywana na dysk.
Zalety:
-poszczególne procesy mają dostęp wyłącznie do swoich własnych obszarów pamięci
-zarządzanie pamięcią jest znacznie usprawnione bo system operacyjny nie musi przeprowadzać scalania małych niezajętych obszarów
-stosowanie pamięci wirtualnej powoduje pewne zwiększenie prędkości wykonywania programu wskutek konieczności wymiany stron między pamięcią operacyjną a pamięcią dyskową
3. Omówić podstawowe trudności związane z potokowym wykonywaniem rozkazów przez procesor.
- realizacja niektórych etapów może powodować konflikty dostępu do pamięci
- jeśli czasy trwania poszczególnych etapów mogą być niejednakowe to na różnych etapach wystąpi pewne oczekiwanie
- w programie występują skoki (rozgałęzienia) warunkowe, które mogą zmieniać kolejność wykonywania instrukcji a tym samym unieważnić kilka pobranych rozkazów - muszą one być usunięte z potoku a potok musi być zapełniony nowym strumieniem rozkazów
- wystąpienie przerwania sprzętowego lub wyjątku procesora stanowi zdarzenie nieprzewidywalne i również pogarsza przetwarzanie potokowe
- niektóre rozkazy wymagają dodatkowych cykli (np. do ładowania danych)
- czasami rozkazy muszą oczekiwać z powodu zależności od nie zakończonych poprzednich rozkazów
4. Omówić architekturę MIND z pamięcią wspólną i z pamięcią rozproszoną.
W systemach MIND z pamięcią wspólną procesory komunikują się przez sieć połączeń, czytając i zapisując dane w pamięci wspólnej.
Systemy MIND z pamięcią rozproszoną oferują liniową skalowalność. Każdy procesor ma pamięć lokalną a procesory nie współdzielą zmiennych zamiast tego procesory wymieniają dane przesyłając między sobą komunikaty za pośrednictwem specyficznej sieci komunikacyjnej. Każdy węzeł zawiera procesor , pamięć lokalną i kilka łączy komunikacyjnych do wymiany komunikatów. Znaczne przyspieszenie można uzyskać poprzez wprowadzenie specjalnych procesorów przesyłających komunikaty.
5. Na czym polega przetwarzanie współbieżne?
Wiele procesorów które mogą ze sobą współpracować a także rywalizować. Dwa rodzaje podziału czasu procesora (może być więcej procesorów ale jeden wspólny s.o.) ze stałym podziałem czasu ; sterowane priorytetami procesów i zdarzeniami programy procesów wykonują się „równolegle” współdzieląc zasoby (procesor, pamięć, komunikacja)
Jądro szereguje kolejność dostępu do procesora a funkcje jądra umożliwiają interakcję.
6. Na czym polega zarządzanie procesami?
Założenia:
- proces przebywa w jednym z trzech głównych stanów: gotowy, aktywny, czekający.
- blok kontrolny procesu ma postać
Wskaźnik ! Stan procesu
Nr procesu
Wskaźnik instrukcji
Rejestry
Ograniczenia pamięci
Wykaz otwartych plików
- zasoby fizyczne i logiczne - izolacja (współdzielenie)
- tworzenie procesu - organizacja zasobów dostępnych dla procesów potomnych do podzbioru zasobów rodzimych
- zakończenie procesu
- planowanie zadań
7. Jakie zadania spełnia system operacyjny?
1. zarządzanie procesami (własnymi i użytkowników): tworzenie i usuwanie procesów, dostarczanie mechanizmów synchronizacji i komunikacji procesów, wstrzymywanie i wznawianie procesów, dostarczanie mechanizmów obsługi bloków
2. zarządzanie pamięcią operacyjną: zarządzanie pamięcią wirtualną, utrzymywanie ewidencji zajętych aktualnie bloków wraz z informacją przypisania ich do procesów, podejmowanie decyzji o przydzielenie wolnych bloków , dynamiczne przydzielenie i zwolnienie obszarów
3. zarządzanie pamięcią pomocniczą(dyskową): zarządzanie wolnymi obszarami, przydzielanie pamięci, planowanie przydziałów obszarów (porcji) pamięci dyskowej
4. zarządzanie systemem wej/wyj składającym się z : pamięci notatnikowej i systemu buforów, interfejsu do programów obsługi urządzeń we/wy, programów obsługi poszczególnych urządzeń
5. zarządzanie plikami : tworzenie i usuwanie plików i katalogów, dostarczanie podstawowych operacji do manipulowania plikami i katalogami, odwzorowanie plików na obszary pamięci pomocniczej, składowanie plików w archiwach
6. zarządzanie systemem ochrony - autoryzacja dostępu
7. obsługa komunikacji sieciowej
8. system interpretacji poleceń
8. Co to jest semafor i jaką pełni role?
Semafor jest narzędziem synchronizacji procesów- działania sprowadza się do wskaźnika (flagi) sygnalizującej dostępność. Semafory służą do budowy sekcji krytycznej wykorzystywanej przez wiele procesów.
ZESTAW 3
1. Wyjaśnij termin wartości specjalne w kontekście koprocesora arytmetycznego.
Spośród niektórych wartości liczb wyłączono niektóre i nadano im znaczenie specjalne - wartości specjalne. Mogą one być argumentami obliczeń tak jak zwykłe liczby. Jeśli jeden z argumentów jest wartością specjalną to wynik też jest wartością specjalną. W koprocesorze arytmetycznym przyjęto że wszystkie liczby których pole wykładnika zawiera same zera lub same jedynki traktowane są jako wartości specjalne. W zależności od ustawienia bitów w rejestrze sterującym koprocesora wystąpienie wartości specjalnej może spowodować przerwanie albo też obliczenia mogą być kontynuowane. Liczby które nie mogą być przedstawione w zwykły sposób są to liczby zerowane w wyniku błędu.
2. Na czym polega fragmentacja pamięci zewnętrznej i wewnętrznej.
System operacyjny przechowuje tablice z informacjami o tym które części pamięci są dostępne a które zajęte, po jego uruchomieniu cała pamięć jest dostępna dla procesów . W wyniku wykonywania wielu operacji przydzielania i zwalniania obszarów pamięci występuje fragmentacja, objawiająca się istnieniem dużej liczby małych niezajętych obszarów pamięci - przydzielanie większych obszarów pamięci napotyka na trudności.
Fragmentacja zewnętrzna polega na tym że rozmiar znalezionej dziury jest większy od rozmiaru żądanego - po przydzieleniu pozostaje mały niezajęty obszar który jest nieprzydatny dla innych programów.
Fragmentacja wewnętrzna - jeśli rozmiar dziury jest minimalnie większy od rozmiaru żądanego to przydziela się całą dziurę aby uniknąć kłopotów z administrowaniem obszarami zawierającymi kilkanaście bajtów. W rezultacie program otrzymuje większy obszar pamięci niż zamówiony co oznacza że część pamięci pozostaje niewykorzystana.
3. Jaką rolę odgrywa układ obsługi przerwań APIC w systemie wieloprocesorowym?
APIC - Advanced Programmable Interrupt Controller. Ze względu na znaczną liczbę zainstalowanych urządzeń w komputerze z których każdy może generować przerwanie , niezbędne jest zainstalowanie dodatkowego układu wspomagającego procesor w operacjach związanych z przerwaniami - APIC. Układ APIC składa się z jednostki lokalnej i jednostki we/wy. Jednostka lokalna oddzielna dla każdego procesora umieszczona jest w obudowie procesora, natomiast jednostka we/wy wchodzi w skład chipsetu. Układ we/wy rejestruje nadchodzące sygnały przerwań i wysyła je do jednostki lokalnej korzystając z wew. magistrali ICC. Zadaniem jednostki lokalnej jest odebranie przerwania i zgłoszenie go do procesora. Wszystkie układy APIC są połączone specjalną magistralą umożliwiającą komunikację.
Układ APIC może pracować w jednym z trzech trybów:
- PIC - w tym trybie obsługa przerwań realizowana jest przez układ 8259A lub kompatybilny z pominięciem układu APIC, praca wieloprocesorowa w tym trybie nie jest możliwa;
- Virtual Wire Mode - w tym trybie przerwania przyjmowane są przez układ APIC, który symuluje połączenie elektryczne między procesorem a układem 8259A, umożliwiając w efekcie działanie identyczne jak w trybie PIC
- Symmetric I/O - tryb używany jest przy pracy wieloprocesorowej. Przerwania przyjmowane są przez APIC I/O , chociaż istnieje także możliwość wykorzystania układu APIC jednocześnie z układem 8259A w trybie mieszanym
4. W jakim celu w trakcie wykonywania rozkazów jest transformacja adresów.
5. Jak zmieni się zawartość rejestru EDI po wykonaniu rozkazu OR EDI 80000001H?
6. Omówić różnice i podobieństwa między przerwaniami sprzętowymi i wyjątkami procesora.
Działania podejmowane przez procesor w chwili wystąpienia wyjątku są prawie identyczne jak w przypadku wystąpienia przerwania. Przerwania powstają wskutek zdarzeń zewnętrznych w stosunku do procesora, wyjątki związane są z wykonywaniem rozkazów przez procesor. Tak jak w przypadku obsługi przerwania wyjątek procesora powoduje zapamiętanie śladu na stosie, wyzerowanie znacznika IF i rozpoczęcie wykonywania programu właściwego dla określonego wyjątku. Zazwyczaj programy obsługi wyjątków stanowią integralną część systemu operacyjnego. Większość wyjątków zdefiniowana jest dla trybu chronionego. Niektóre wyjątki nie mają charakteru błędów ale używane do sygnalizowania pewnych sytuacji w których procesor nie może dalej wykonywać programu. Sterowanie przekazywane jest wówczas do s.o. który dokonuje odpowiednich zmian w pamięci i wznawia wykonywanie programu.
7. Podaj sposoby koordynacji procesów w systemach współbieżnych.
- sprzętowe - przerwania
- niskiego poziomu: sygnały, potoki
- programowe na poziomie s.o. lub wyżej
- semafory, sekcje krytyczne
- monitory, komunikaty
8. Nazwij elementy struktury warstwowej systemu operacyjnego.
Użytkownik
Powłoka-shell, Polecenia , programy użytkowe,
Interfejs programów użytkowych, odwołania do systemu
Jądro, zarządzanie: procesami, pamięcią, systemem plików
Programy obsługi sprzętu
Sprzęt
Powszechnie stosowanym modelem statycznym systemu operacyjnego jest struktura warstwowa w której warstwy niższe oferują pewne funkcje i usługi warstwom wyższym. Najniższą warstwą s.o. stanowią programy niskiego poziomu obsługi sprzętu często wbudowane do pamięci na stałe. Kolejną warstwę stanowi jądro składające się ze zbioru funkcji i tablic systemowych. Głównym zadaniem jądra jest dostarczenie narzędzi do zarządzania procesami, pamięci i systemu plików. Kolejna warstwa dostarcza programistom narzędzi do odwołania się do systemu operacyjnego z wnętrza programów (czyli interfejs programów użytkowych).
Zestaw 4
1)Jak należy rozumieć termin interfejs programowania aplikacji (API)?
API - interfejs programowania aplikacji. Dla każdej usługi systemowej w katalogu podane są szczegółowe informacje o wymaganych parametrach i sposobach przekazywania ich do podprogramów systemowych. W ten sposób zostaje określony pewny interfejs określający sposób porozumiewania się programu z systemem operacyjnym - API.
2)W jakim celu w architekturze IA-32 zdefiniowano tryb V86?
W okresie przejściowym w komputerze mogą być wykonywane zarówno programy przewidziane dla trybu chronionego jak i trybu rzeczywistego. Wykonanie programu w trybie rzeczywistym wymaga przełączenia procesora do trybu rzeczywistego. Takie przełączanie jest możliwe ale wiąże się z tymczasową utratą przywilejów systemu operacyjnego w stosunku do zwykłego programu. Z tego względu w architekt. IA-32 zdef. specjalny tryb pracy oznaczony symbolem V86, który można uważać za podtryb trybu chronionego. W trybie V86 procesor z punktu widzenia wykonywanego programu zachowuje się prawie dokładnie tak samo jak w trybie rzeczywistym. Ze względu na brak mechanizmów ochrony trybie rzeczywistym programy tworzone dla tego trybu pozwalają na wykonanie ciekawszych eksperymentów w zakresie funkcjonowania urządzeń komputera. Z tego względu większość podręczników programowania w asemblerze dla proc. IA-32 skupiają się na przykładach dla V86.
3)Dlaczego używanie rozkazów CLI i STI (zerowanie i ustawianie znacznika przerwań IF) przez zwykłe programy jest niedozwolone?
IF - zezwolenie na przerwanie. Znacznik ten włącza lub wyłącza system przerwań. Jeśli znacznik IF zawiera 0 to przerwania sprzętowe są ignorowane aż do chwili gdy IF zawierać będzie 1. Zawartość znacznika IF nie wpływa na wykonanie przerwań programowych. Rozkaz CLI wpisuje 0 do IF, rozkaz STI wpisuje 1 do IF. Znacznik IF określa zezwolenie na przyjmowanie przerwań. Procesor może przyjmować przerwania tylko wówczas gdy IF = 1. Znacznik IF jest automatycznie zerowany w chwili przyjęcia przerwania. Wyjątek nr 13 - błąd ochrony, generowany w przypadku próby naruszenia niedostępnych zasobów, np. gdy zwykły program próbuje odczytać nieprzydzielany mu obszar pamięci lub wykonać rozkaż CLI.
4)Omówić czynniki ograniczające wydajność przetwarzania potokowego w procesorze?
-realizacje niektórych etapów może powodować konflikty dostępu do pamięci
-jeśli czasy trwania poszczególnych etapów mogą być niejednakowe, to na różnych etapach wystąpi pewne oczekiwanie
-w programie występują skoki warunkowe, które mogą zmienić kolejność wykonywania instrukcji a tym samym unieważnić kilka pobranych rozkazów - muszą one być usunięte z potoku, a potok musi być zapełniony nowym strumieniem rozkazów
-wystąpienie przerwania sprzętowego lub wyjątku procesora stanowi zdarzenie nieprzewidywalne i również pogarsza przetwarzanie potokowe
-niektóre rozkazy wymagają dodatkowych cykli
-czasami rozkazy muszą oczekiwać z powodu zależności od niezakończonych poprzednich rozkazów - system musi zawierać rozwiązania zapobiegające tego rodzaju konfliktom
5)Dlaczego pamięć podręczna, w której stosowane jest adresowanie asocjacyjne jest technicznie trudna do zrealizowania?
Stosowane są różne organizacje pamięci podręcznej a wśród nich organizacja oparta na adresowaniu asocjacyjnym. Technika ta polega na porównaniu adresu potrzebnej komórki z adresami zapisanymi w poszczególnych liniach pamięci podręcznych. Ze względu na konieczność porównania dużej liczby adresów metoda ta jest technicznie kłopotliwa i z tego powodu rzadko używana.
6)Omówić podstawową koncepcję sterowania układowego w procesorze.
Wykonywanie rozkazu przez procesor rozpoczyna się od pobierania rozkazu z pamięci po czym identyfikowany jest jego kod. Na tej podst jednostka sterująca w procesorze wysyła sekwencje sygnałów do różnych modłów procesora, kierując się odpowiednio przepływem i przetwarzaniem danych tak by w rezultacie wykonać wymaganą operację. Sterowanie układowe stanowi złożony ukł. cyfrowy zawierający bramki, przerzutniki i inne podzespoły. Istotnym elementem takiego sterowania jest licznik sekwencji, który jest zwiększany o 1 w kolejnych fazach wykonania rozkazu. Sterowanie układowe pozwala na nieco szybsze wykonywanie rozkazów. Na etapie projektowania sterowanie układowe jest mniej elastyczne niż mikroprogramowe i projekty nie mogą być łatwo modyfikowane.
7)Co oznacza określenie „message possing” i z czym jest związane?
Message possing - paradygmaty przetwarzania rozproszonego i sieciowego za pomocą przesyłanych komunikatów
8)Na czym polega przetwarzanie agentowe?
Implementacje zaczynają być używane począwszy od prostych zadań i filtrów e-mail do mobilnych aplikacji, inteligentnych systemów wysokiego ryzyka.
Zestaw 5
1)Jak zmienia się rejestr EIP w czasie wykonywania rozkazów sterujących?
Rozkazy sterujące - nie naruszają kolejności wykonywanych rozkazów. Po wykonaniu takiego rozkazu następnym wykonywanym będzie rozkaz bezpośrednio przylegający do niego w pamięci EIP.
Rozkazy sterujące warunkowe - sprawdzają czy wynik ma oczekiwane własności; 1.gdy jest spełniony to EIP=EIP+(liczba bajtów aktualnie wykonywanej instrukcji)+(zawartość pola adresowego instrukcji); 2.Gdy niespełniony to EIP=EIP+(liczba bajtów aktualnie wykonywanej instrukcji).
Rozkazy sterujące bezwarunkowe - naruszają kolejność wykonywania rozkazów. Przekazują sterowania w inne miejsce programu: EIP=EIP+ +(liczba bajtów aktualnie wykonywanej instrukcji) +(zawartość pola adresowego instrukcji)
2)W jakim celu korzysta się z pomocniczego rejestru stosu EBP w czasie pobierania parametrów ze stosu?
EBP - rejestr, którego zawartość ustalona przez cały czas wykonywania podprogramu, wskazuje obszar parametrów na stosie. Modyfikacja adresowa wykonywana za pomocą rej EBP implikuje użycie rej SS jako domyślnego rej segmentowego - zatem odczyt pewnej lokacji pamięci, której adres podany jest w rej EBP oznacza w istocie odczyt lokacji pamięci zapisanej na stosie. Jeśli zawartość EBP jest równa zawartości EBP to okres określany przez EBP wskazuje wierzchołek stosu a EBP zwiększany o 4,8,12 wskazuje poprzednie kolejno zapisane podwójne słowa na stosie.
3)Wybrać dowolną liczbę 8 bit ujemną, całkowitą i zapisać ją w U2.
…
4)Jak wywoływane są funkcje systemu operacyjnego przez programy?
Standard wywoływania funkcji i procedur typu Pascal jest szeroko stosowany w różnych systemach programowania (m.in. w Windows). Standard std call stanowiący połączenie standardów C i Pascal stosowany jest w 32-bitowych wersjach Windows do wywoływania funkcji wchodzących wchodzących w skład interfejsu Win32 API. W wielu przypadkach parametry wywołania funkcji mają postać wyrażeń - w takim przypadku najpierw obliczana jest wartość parametru, która następnie zapisywana jest na stosie. Podane standardy stosowane są w różnych środowiskach programistycznych , m.in. w systemach Borland C, C++ i Microsoft Visual C++ można deklarować funkcje w których stosowane są w.w. standardy.
5)Procesor wielordzeniowy a procesor wielowątkowy.
Naturalnym sposobem wykonywania kilku wątków jest zastosowanie odrębnych procesorów. Technika ta rozpowszechniła się od kilku lat przede wszystkim ze względu na rozpoczęcie wytwarzania układów dwóch, czterech lub więcej procesorów umieszczonych w pojedynczej obudowie znanych jako procesory wielordzeniowe (używają wspólnej lub rozdzielonej pamięci podręcznej). Można też bardziej efektywnie wykorzystać zasoby pojedynczego procesora poprzez powielanie niektórych modułów w taki sposób, że system operacyjny identyfikuje procesor jako 2 lub więcej procesorów logicznych (proce wielowątkowe). Z punktu widzenia systemu operacyjnego różnice między procesorami wielowątkowymi i wielordzeniowymi mogą być słabo widoczne. Na tym poziomie używa się czasem terminów wieloprocesorowość fizyczna jeśli wątki wykonywane są przez oddzielne procesory i wieloprocesorowość wirtualna jeśli wątki są przez procesory logiczne korzystające z pojedynczego procesora fizycznego.
6)Co to jest BIOS?
BIOS jest mini systemem operacyjnym obsługi urządzeń we/wy. Znajduje się w pamięci ROM. Jest uruchamiany bezpośrednio po uruchamianiu komputera. Zawiera inicjalizujące, testujące i konfigurujące zainstalowane urządzenia. Funkcje udostępniane przez BIOS dla innych programów tworzą BIOS API (elementarny zestaw operacji nie zależny od konstrukcji komputera). BIOS posiada też mechanizmy pozwalające na dynamiczną konfigurację system w zależności od wyposażenia komputera.
7)Przetwarzanie zespołowe - def. I jakie korzyści przynosi.
Przetwarzanie zespołowe - wykonywanie zadań przez zespół użytkowników przy wykorzystaniu technologii informacyjnych:
-poczty elektronicznej i komunikatorów;
-narzędzi do pracy grupowej;
-sterowanie przepływem pracy i dokumentów - dzięki temu jest możliwa reorganizacja procesów zarządzania i integracja usług administracji samorządowej, firmowej;
-kolaboracja wielu rozproszonych systemów poprzez wymianę informacji, planowanie terminów, zarządzanie obiegiem dokumentów, zdalne planowanie, nauczanie;
-negocjacja oddalonych stron prowadzone poprzez sieć;
Korzyści: sieć lokalna lub globalna z klientami sieciowymi oraz serwerami: aplety aplikacji, bazy danych, prezentacji
8)Co to jest i w jakim celu się stosuje kolejki wielopoziomowe?
Rozróżnia się procesy pierwszoplanowe (interakcyjne) oraz drugoplanowe (wsadowe). Te dwa rodzaje procesów różnią się wymaganiami na czasy odpowiedzi, mogą mieć różne wymagania odnośnie planowania. Ponadto procesy pierwszoplanowe mogą mieć pierwszeństwo przed drugoplanowymi. Algorytmy wielopoziomowego planowania kolejek rozdziela kolejkę procesów gotowych na osobne kolejki. W zależności od pewnych cech jak rozmiar pamięci, priorytetu lub typu procesu, procesy zostają na stałe przypisane do jednej z tych kolejek. Każda ma własny algorytm planujący. Do kolejki procesów pierwszoplanowych można zastosować algorytm planowania rotacyjnego a do procesów drugoplanowych algorytm planowania procesora metodą FCFS. Ponadto musi istnieć planowanie między kolejkami na ogół realizowane za pomocą stałopriorytetowego planowania z wywłaszczeniem. Każda kolejka ma bezwzględne pierwszeństwo przed kolejnymi o niższym priorytecie. Inna możliwość daje operowanie przedziałami czasu między kolejkami.
Zestaw 6
1)Co robi RET w programie?
Ślad zapisany na stosie wskazuje miejsce w programie, dokąd należy przekazać sterowanie po wykonaniu podprogramu. W chwili zakończenia wykonywania podprogramu zawartość wierzchołka stosu powinna zostać przepisana do rej EIP - czynności te realizuje RET.
2)Dlaczego procesory IA-32 można zaliczyć do SIMD?
W architekturze IA-32 wprowadzono specjalne grupy rozkazów przeznaczone do wykonywania operacji na dźwiękach i obrazach. Pojedyncze rozkazy MMX lub SSE wykonywane są przez wyspecjalizowane moduły pojedynczego procesora. Ponieważ jednak rozkazy te wykonują działania jednocześnie na kilku danych, można sobie wyobrazić że każda z danych jest przetwarzana przez oddzielny procesor, który wykonuje ten sam rozkaz co pozostałe procesory. Tak więc rozkazy gr MMX i SSE mogą być zaklasyfikowane do grupy SIMD wg. klasyfikacji Flynn'a.
3)Dlaczego w normie 754 nie występuje bit mantysy.
Warunek normalizacyjny mantysy wymaga by jej wartość (do liczb 10) zawierała się w przedziale (-2,-1> lub <1,2). Oznacza to, że bit części całkowitej mantysy będzie zawsze zawierał 1, zatem można pominąć bit części całkowitej mantysy, zwiększając o 1 liczbę bitów części ułamkowej. Takie kodowanie stosowane jest w formatach 64- i 32-bitowych. Mówimy wówczas, że część całkowita mantysy występuje w postaci niejawnej.
4)Pamięć wirtualna i fizyczna.
Rozkazy program odczytujące dane z pamięci operacyjnej zawierają informacje o położeniu danej, zawierają adres danej. W wielu procesorach adres ten ma postać adresy fizycznego, czyli wskazuje jednoznacznie komórkę pamięci, gdzie znajduje się potrzebna dana. Odpowiednie układy procesora, sterowane przez system operacyjny dokonują transformacji adresów, którymi posługuje się programista na adresy w istniejącej pamięci fizycznej, zwykle wymaganej przez pamięć dyskową. Pamięć operacyjna komputera w kształcie widzianym przez programistę nosi nazwę pamięci wirtualnej, a zbiór wszystkich możliwych adresów w pamięci wirtualnej - wirtualna przestrzeń adresowa. Transformacja adresów z przestrzeni wirtualnej na adresy fizyczne jest technicznie dość skomplikowana i nie może przy tym nadmiernie przedłużać wykonywania rozkazu.
5)RAID 5 i jak dane odbudowuje?
W dużych systemach komputerowych istotnym parametrem może być szybkość transmisji danych do i z dysku i zwiększenie niezawodności. Postulaty te realizuje zespól dysków znanych jako RAID - nadmiarowa macierz tanich dysków. RAID 5 - bity parzystości są zapisywane na specjalnie do tego przeznaczone dyski, które są rozproszone po całej strukturze macierzy. Umożliwia to odzyskanie danych w razie awarii jednego z dysków korzystamy z danych zapisanych na innych dyskach. Niższe koszty w porównaniu z innymi macierzami np. RAID 4. RAID 5 oferuje większą prędkość odczytu niż mirroring ale nieznacznie spada prędkość zapisu. Poziom ten jest niesamowicie niezawodny - w razie awarii system automatycznie odbudowuje utracone dane tak by mogły być odczytane zmniejszając jednak bieżącą wydajność macierzy. Po zamontowaniu nowego dysku macierz przeniesie na niego odtwarzane dane po czym wydajność system wraca do normy.
6)Omówić aplikacje wspomagające system.
-platformy programistyczne - aplikacje użytkowe, narzędzia wspomagające projektowanie, wytwarzanie złożonych systemów informatycznych
-wspomaganie zarządzania - systemy operacyjne, narzędzia konfigurowania i inicjalizowania, pakiety wspomagające administrowanie
-zapewnienie jakości - testowanie i uruchamianie, pakiety pomiarowe, zintegrowane systemy oceny
7)Przetwarzanie gridowe.
Przetwarzanie gridowe (siatkowe) - używanie rozproszonych maszyn lub klastrów jako pojedyncze, ujednolicone źródła obliczeniowe, tworzące tzw. siatki (gridy). Postuluje aby traktować wszystkie posiadane zasoby sprzętowe jako jeden wielki komputer wirtualny, zdolny wykonywać wszystkie dotychczasowe aplikacje, automatycznie dokują je do poszczególnych maszyn.
8)Do czego służy tablica deskryptorów?
Tablica deskryptorów - w trybie chronionym V86struktura ulokowana w dedykowanym segmencie, zawierająca deskryptory wszystkich segmentów znajdujących się w pamięci operacyjnej. W środowisku wielozadaniowym wspólną tablicę globalną GDT i lokalną LDT przypisane dla każdego procesu. Typowa tablica ma 64kB. Dysponując rozmiarem tablicy deskryptorów można określić maksymalny rozmiar pamięci wirtualnej którą może zaadresować pojedynczy proces.
Wyróżnia się 3 rodzaje deskryptorów: furtki przerwania (używane przy obsłudze przerwań sprzętowych), furtki potrzasku (używane przy obsłudze wyjątków procesora i wywołań za pomocą rozkazu INT) oraz furtki zadania (używane w systemach awaryjnych). Położenie tablicy deskryptorów przerwań w pamięci głównej komputera wskazane jest przez zawartość rej IDTR.
Zestaw 7
1)W jaki sposób liczba linii adresowych procesora określa przestrzeń adresową pamięci głównej (operacyjnej)?
Poszczególne komórki pamięci są ponumerowane od 0 - n. Numer komórki pamięci nazywany jest jej adresem fizycznym. Adres fizyczny przekazywany jest przez procesor do podzespołów pamięci w celu wskazania położenia bajtu, która ma zostać odczytany lub zapisany. N - liczba linii adresowych to 2^N to jest przestrzeń adresowa
2)Dlaczego położenie danej, na której rozkaz wykonuje działanie, adres wyraża się poprzez podania offsetu (przesunięcia), a nie poprzez podanie adresu fizycznego?
Położenie tych zmiennych w pamięci wirtualnej okreslane jest poprzez podanie położenia bajtu o najniższym adresie w obszarze 4-bajtowym. Adres tego bajtu nazywany jest także przesunięciem lub offsetem zmiennej. Innymi słowy offset jest odległością zmiennej, liczoną w bajtach od początku obszaru pamięci (wirtualnej). Zatem adres zawarty w rozkazie nie zawiera adresu fizycznego danej, czyli nie wskazuje bezpośrednio jej położenia w pamięci fizycznej, lecz jedynie odległość zmiennej od początku pamięci wirtualnej.
3) Na czym polega technika nakładkowania?
Polega na przechowywaniu w pamięci operacyjnej tylko tych rozkazów, które są stale potrzebne - inne rozkazy i dane ładowane są w miarę potrzeby. Koncepcje te realizuje się poprzez podział programu na fragmenty nazywane nakładkowaniem. W praktyce mają one postać procedur. Organizacje wymiany nakładek między pamięcią dyskową i operacyjną należy do obowiązków wykonywanego programu. Używanie nakładek nie wymaga jakichkolwiek specjalnych mechanizmów udostępnianych przez system operacyjny ale wymiana nakładek musi być starannie wykonana i zakodowana przez programistę.
5) Jak zmieni się wartość rejestru EBX po wykonaniu rozkazu XOR EBX, 80000001H?
6)Wyjaśnij znaczenie terminu interfejs programowania aplikacji (API).
Interfejs programowania aplikacji (API), obejmuje zbór struktur danych i funkcji a niekiedy stanowi listę komunikatów. Stanowi ustalone konwencje wywoływania, za pomocą której program użytkowy (aplikacja) może uzyskać dostęp do usług systemu operacyjnego lub sług udostępnianych przez inne moduły oprogramowania, które zwykle implementowane są jako biblioteki API definiowanie jest na poziomie kodu źródłowego i stanowi pewien poziom abstrakcji między aplikacją a jądrem systemu operacyjnego co tworzy potencjalne możliwości przenośności kodu API. Udostępniano także w wielu językach wysokiego poziomu w postaci funkcji i procedur.
7)Co to jest jądro systemu operacyjnego i jakie spełnia funkcje?
Jądro systemu składa się ze zbioru funkcji i tablic systemowych. Główna funkcją jądra jest dostarczanie narzędzi do zarządzania procesami, zarządzania pamięcią i zarządzania systemem plików takie jak: tworzenie/usunięcie procesu, wpisanie/usuniecie na listę aktywnych, czekanie na podniesienie semaforu, generacja przerwania logicznego, wynajęcie/zwolnienie urządzenia logicznego, proces tła, reset systemu. Jądro systemu operacyjnego zwalnia wszystkie zasoby używane przez proces - duch (proces - duch jest procesem zakończonym ale na jego zakończenie nie czekał proces macierzysty) ale pozostawia rekord zawierający kod wyjścia i pewne statystyki; kod wyjścia zostanie udostępniony procesowi macierzystemu gdy ten wywoła funkcję wait.
8)Na czym polega przetwarzanie rozproszone?
Sieć lokalna ze stacjami roboczymi lub PC i serwerami (plików, bazy danych, WWW, itp.) wykonującymi specjalizowane obliczenia.
Zestaw 8
1)Jaką rolę w trakcie wykonywania programu przez procesor pełni wskaźnik instrukcji (licznik rozkazów).
Proces pobierania kolejnych instrukcji z pamięci operacyjnej i ich wykonywania musi być precyzyjnie zorganizowany tak by natychmiast po wykonaniu kolejnej instrukcji procesor pobierał z pamięci następną. Aby pobrać tę instrukcję procesor musi znać jej położenie w pamięci operacyjnej, informacje o położeniu kolejnej instrukcji są umieszczone w specjalnym rejestrze - wskaźnik instrukcji.
Jest to rejestr 32-bitowy. Jeśli wykonywany rozkaz nie jest rozkazem sterującym to w trakcie jego wykonywania zawartość wskaźnika instrukcji jest zwiększana o liczbę bajtów zajmowanych przez ten rozkaz.
2)Napisać rozkaz w asemblerze realizujący operację sumowania ESI ← ESI + [004002E5H].
add ecx, dword ptr [004002E5H]
3)Omówić dyrektywy używane do definiowania danych na poziomie asemblera.
Dyrektywa nie jest instrukcją procesora lecz poleceniem dla asemblera nakazującym mu określone działanie lub sposób interpretacji określonych instrukcji:
-służą do deklarowania danych statystycznych i dynamicznych w programie (DB,DW,DD,DF,DT)
-do wyodrębnienia segmentów w programie (SEGMENT i ENDS wskazują początek i koniec segmentu w programie)
-do powiązania ze sobą segmentów i rejestrów segmentowych (ASSUME)
-do wskazania konca programu (END) wszystkie wiersze znajdujące się za tą dyrektywą są ignorowane
-do wyodrębnienia procedury w programie (PROC i ENDP wskazują koniec i pocz procedury)
- dyrektywa INCLUDE wskazuje plik, którego treść powinna zostać poddana translacji tak jak gdyby była umieszczana w pliku źródłowym
-dyrektywy powtarzania (REPT, IRP, IRPC)
4)Omówić sposób transformacji adresu wirtualnego (logicznego) na adres fizyczny za pomocą dwupoziomowych tablic stron stosowanych w architekturze IA-32.
Trudności związane z racjonalnym zarządzaniem pamięcią eliminowane poprzez skonstruowanie mechanizmu, który pozwala tłumaczyć adres logiczny na dowolny adres fizyczny. Jest to realizowane za pomocą tablicy transformacji adresów w której adres logiczny stanowi indeks wskazujący element tablicy w którym zapisany jest wymagany adres fizyczny. W procesorze Pentium przyjęto standardowe rozmiary stron 4kB, 2MB, 4MB. W połowie lat 90-tych większość komputerów PC miała rozmiar zainstalowanej pamięci operacyjnej 4MB. Z tego powodu dla stron 4kB wprowadzono dwupoziomową organizacje tablic transformacji. Poziom wyższy tworzy katalog tablic stron - jest to tablica która dzieli 4GB liniową przestrzeń adresową na 1024 gr stron. Zatem tablica ma1024 pozycje 32-bitowe. Położenie katalogu tablic stron określa rej CRS. Poziom niższy tworzą tablice stron - mają format identyczny z katalogiem stron. Tablica stron dzieli 4MB gr stron na 1024 strony po 4kB. Wprowadzenie dwupoziomowej organizacji tablic stron implikuje podział 32-bitowego adresu linowego naprowadzenie dwupoziomowej organizacji tablic stron implikuje podział 32-bitowego adresu linowego na elementy:
10 bit pole wskazujące pozycje w katalogu tablic stron;
10 bit pole wskazujące pozycje w katalogu tablic stron;
12 bit pole które nie podlega żadnym przekształceniom i wskazuje offset względem początku strony.
5) Omówić typowe miary wydajności systemów komputerowych.
MIPS - liczba rozkazów wykonywania w ciągu sekundy, wyrażana w milionach
MFLOPS - liczba rozkazów zmiennoprzecinkowych wykonana w ciągu sekundy wyrażana w milionach
Dhrystones/s - wartość uzyskiwana poprzez wykonanie charakterystycznego programu zawierającego rozkazy stałoprzecinkowe. Często można zauważyć, że 1MIPS ~ 2000 dhrystones/s
Whetstones/s - wartość uzyskiwana poprzez wykonanie charakterystycznego programu zawierającego rozkazy zmiennoprzecinkowe
Dwie ostatnie metody nie używają operacji we/wy a zwracanie wartości opisują łącznie wydajność procesora i kompilatora. Dhrystone wykonuje tylko działania na liczbach całkowitych a Ana uzyskiwane rezultaty wpływa także jakość kompilatora, przydzielanie rejestrów, sprawnośc pamięci podręcznej.
Whetstone próbuje naśladować typowy program naukowy. Zawiera arytmetykę stało- i zmiennoprzecinkową, indeksowanie tablic, wywoływanie procedur, obliczanie funkcji elementarnych.
6) Co oznaczają terminy „zapis przez” i „zapis z opóźnieniem” w odniesieniu do pamięci podręcznej?
Istotnym problemem jest zapewnienie spójności zawartości pamięci głównej i pamięci podręcznej. Problem ten występuje jeśli pamięć operacyjna jest używana tylko do przechowywania rozkazów. Stosowane są dwie metody :
-metoda zapis przez - wykonuje zapis do pamięci głównej po każdej operacji zapisu w pamięci podręcznej
-metoda zapis z opóźnieniem - polega na tym że zamiast natychmiastowego zapisu bloku do pamięci głównej zmienia się tylko bit stanu oznaczający że wiersz bufora został zmodyfikowany. Zmodyfikowany blok jest kopiowany do pamięci głównej dopiero gdy trzeba go zastąpić innym. Jednak w przypadku używania transmisji DMA zapewnienie spójności tą metodą może być problemem.
7)Omówic typową aplikację dla programowania użytkowego.
-platformy programistyczne -- aplikacje użytkowe, narzędzia wspomagające projektowanie, wytwarzanie złożonych systemów informatycznych
-wspomaganie zarządzania -- systemy operacyjne, narzędzia konfigurowania i inicjalizowania, pakiety wspomagające administrowanie
-zapewnienie jakości -- testowanie i uruchamianie, pakiety pomiarowe, zintegrowane systemy oceny
8)Co to jest jądro systemu i jakie ma zadanie?
Jądro systemu składa się ze zbioru funkcji i tablic systemowych. Główna funkcją jądra jest dostarczanie narzędzi do zarządzania procesami, zarządzania pamięcią i zarządzania systemem plików takie jak: tworzenie/usunięcie procesu, wpisanie/usuniecie na listę aktywnych, czekanie na podniesienie semaforu, generacja przerwania logicznego, wynajęcie/zwolnienie urządzenia logicznego, proces tła, reset systemu. Jądro systemu operacyjnego zwalnia wszystkie zasoby używane przez proces - duch (proces - duch jest procesem zakończonym ale na jego zakończenie nie czekał proces macierzysty) ale pozostawia rekord zawierający kod wyjścia i pewne statystyki; kod wyjścia zostanie udostępniony procesowi macierzystemu gdy ten wywoła funkcję wait.
Zestaw 9
1. Co oznacza sformułowanie że układ obsługi przerwań APIC został zrealizowany jako układ rozproszony?
2. Objaśnić koncepcję ochrony pamięci za pomocą rejestru bazowego i granicznego.
3) Na czym polega technika nakładkowania?
Polega na przechowywaniu w pamięci operacyjnej tylko tych rozkazów, które są stale potrzebne - inne rozkazy i dane ładowane są w miarę potrzeby. Koncepcje te realizuje się poprzez podział programu na fragmenty nazywane nakładkowaniem. W praktyce mają one postać procedur. Organizacje wymiany nakładek między pamięcią dyskową i operacyjną należy do obowiązków wykonywanego programu. Używanie nakładek nie wymaga jakichkolwiek specjalnych mechanizmów udostępnianych przez system operacyjny ale wymiana nakładek musi być starannie wykonana i zakodowana przez programistę.
4)Jak należy rozumieć określenie „pamięć nieświeża” w systemach wieloprocesorowych?
Pamięć podręczna zawiera kopie zmiennych zapisanych w pamięci głównej. Jeśli jest wiele pamięci podręcznych to może istnieć kilka kopii tych samych danych. Jeśli więc jeden z procesorów wykonuje operacje zapisu wartości zmiennej do pamięci podręcznej to w innych pamięciach podręcznych, które zawierają ten sam blok zmienna ta stanie się nieświeża. Oznacza to, że konieczna jest forma dynamicznego sprawdzania zgodności prowadząca do unieważnienia takich bloków w innych pamięciach podręcznych i ewentualnie uaktualnienie danych poprawnymi.
5. Co to jest system operacyjny?
Zorganizowany zespół programów (systemów) które pełnią rolę pośredniczącą
Między sprzętem a użytkownikami, dostarczającą użytkownikom zestaw środków ułatwiających projektowanie, kodowanie, uruchamianie i eksploatacje programów oraz w tym samym czasie sterują przydziałem zespołów w celu zapewnienia efektywnego działania.
6)Na czym polega przetwarzanie rozproszone?
Sieć lokalna ze stacjami roboczymi lub PC i serwerami (plików, bazy danych, WWW, itp.) wykonującymi specjalizowane obliczenia.
7)Co to jest jądro systemu operacyjnego i jakie spełnia funkcje?
Jądro systemu składa się ze zbioru funkcji i tablic systemowych. Główna funkcją jądra jest dostarczanie narzędzi do zarządzania procesami, zarządzania pamięcią i zarządzania systemem plików takie jak: tworzenie/usunięcie procesu, wpisanie/usuniecie na listę aktywnych, czekanie na podniesienie semaforu, generacja przerwania logicznego, wynajęcie/zwolnienie urządzenia logicznego, proces tła, reset systemu. Jądro systemu operacyjnego zwalnia wszystkie zasoby używane przez proces - duch (proces - duch jest procesem zakończonym ale na jego zakończenie nie czekał proces macierzysty) ale pozostawia rekord zawierający kod wyjścia i pewne statystyki; kod wyjścia zostanie udostępniony procesowi macierzystemu gdy ten wywoła funkcję wait.
8. Co to jest potok i jak jest używany?
Potok stanowi pewną technikę wykonywania
Zestaw 10
1. Omówić format 32-bitowych liczb zmiennoprzecinkowych (pole mantysy 23bity, pole wykładnika 8bitów)
Liczby zapisane w tym formacie określane są jako liczby zmiennoprzecinkowe krótkie.
W formacie 32
2. Dlaczego wartość zwracana przez operator SEG jest korygowana przez system operacyjny bezpośrednio przed uruchomieniem programu?
Rzeczywiste położenie programu ( i wszystkich zawartych w nim segmentów) w pamięci operacyjnej znane będzie dopiero w chwili ładowania tego programu do pamięci bezpośrednio przed rozpoczęciem jego wykonywania. Z tego powodu w trakcie translacji programu wartość operatora SEG obliczana jest tak jak gdyby program miał być umieszczony w pamięci operacyjnej począwszy od komórki 0. Ostatnia korekcja fragmentów programu w których użyto operatora SEG wykonywana jest przez system operacyjny bezpośrednio przed rozpoczęciem wykonywania programu.
3. Omówić klasyfikację systemów komputerowych podaną przez flynn'a.
W ujęciu ogólnym komputer wykonuje rozkazy które przetwarzają dane.
strumień instrukcji (algorytm) podaje komputerowi opisy wykonywanych czynności. Strumień danych jest przetwarzany przez te instrukcje. W zależności od tego czy występuje jeden czy kilka tych strumieni można przeprowadzić klasyfikację różnych sposobów przetwarzania przez komputer. Flynn wyodrębnił cztery:
SISD — Single Instruction (Stream), Single Data (Stream) — pojedynczy strumień instrukcji przetwarza pojedynczy strumień danych; wg omawianej klsyfikacji komputery SISD stanowią klasyczne komputery działające wg koncepcji von Neumanna;
MISD — Multiple Instruction (Stream), Single Data (Stream) — dwa lub więcej strumieni instrukcji przetwarza pojedynczy strumień danych;
SIMD — Single Instruction (Stream), Multiple Data (Stream) — pojedynczy strumień instrukcji przetwarza wiele strumieni danych; koncepcja SIMD jest szczególnie użyteczne do rozwiązywania zadań, które mają regularną strukturę (np. przetwarzanie danych graficznych) — w architekturze IA-32 została zaimplementowana postaci grupy rozkazów MMX i SSE;
MIMD — Single Instruction (Stream), Multiple Data (Stream) — wiele strumieni instrukcji przetwarza wiele strumieni danych.
Klasyfikacja Flynn'a obejmuje tylko komputery synchronizowane przepływem rozkazów.
4) Omówić typowe miary wydajności systemów komputerowych.
MIPS - liczba rozkazów wykonywania w ciągu sekundy, wyrażana w milionach
MFLOPS - liczba rozkazów zmiennoprzecinkowych wykonana w ciągu sekundy wyrażana w milionach
Dhrystones/s - wartość uzyskiwana poprzez wykonanie charakterystycznego programu zawierającego rozkazy stałoprzecinkowe. Często można zauważyć, że 1MIPS ~ 2000 dhrystones/s
Whetstones/s - wartość uzyskiwana poprzez wykonanie charakterystycznego programu zawierającego rozkazy zmiennoprzecinkowe
Dwie ostatnie metody nie używają operacji we/wy a zwracanie wartości opisują łącznie wydajność procesora i kompilatora. Dhrystone wykonuje tylko działania na liczbach całkowitych a Ana uzyskiwane rezultaty wpływa także jakość kompilatora, przydzielanie rejestrów, sprawnośc pamięci podręcznej.
Whetstone próbuje naśladować typowy program naukowy. Zawiera arytmetykę stało- i zmiennoprzecinkową, indeksowanie tablic, wywoływanie procedur, obliczanie funkcji elementarnych.
5. Jak zmieni się zawartość rejestru ECX po wykonaniu rozkazu XOR ECX , 0C0000000H?
6. Omówić przyczyny dla których we współczesnych komputerach instalowana jest pamięć podręczna (ciche)?
Obserwacje statystyczne wielu programów wskazują ze w jednostce czasu (np. 1ms) program odwołuje się tylko do stosunkowo niewielkiej liczby komórek pamięci , zawierających rozkazy i dane. Wobec tego najczęściej używane rozkazy i dane można umieścić w niezbyt dużej ale bardzo szybkiej pamięci statycznej z której procesor może odczytywać i zapisywać informacje bez nadmiernie długiego oczekiwania - jest to pamięć podręczna. W trakcie wykonywania rozkazów , procesor szuka najpierw rozkazów i danych w pamięci podręcznej.
7. Opisz działanie … metod round-robin miary…
8. Co to jest przetwarzanie i model przetwarzania?
Przetwarzanie = użytkownik + komputer +program
Model przetwarzania = przetwarzanie + zarządzanie + komunikacja
Model przetwarzania - sposób wykonywania zadań i usług w systemie
Zestaw 11
1. W jaki sposób zapewnia się spójność pamięci głównej (operacyjnej) i pamięci podręcznej (ciche)?
Istotnym problemem jest zapewnienie spójności zawartości pamięci operacyjnej (głównej) i pamięci podręcznej. Problem ten nie występuje jeśli pamięć operacyjna używana jest tylko do przechowywania rozkazów. Stosowane są dwie podstawowe metody:
-metoda zapis przez - wykonuje zapis do pamięci głównej po każdej operacji zapisu w pamięci podręcznej
-metoda zapis z opóźnieniem - polega na tym że zamiast natychmiastowego zapisu bloku do pamięci głównej zmienia się tylko bit stanu oznaczający że wiersz bufora został zmodyfikowany. Zmodyfikowany blok jest kopiowany do pamięci głównej dopiero gdy trzeba go zastąpić innym. Jednak w przypadku używania transmisji DMA zapewnienie spójności tą metodą może być problemem.
2. W jaki sposób w programach wytworzonych przez kompilatory języków programowania rezerwuje się miejsce w pamięci przeznaczone dla zmiennych lokalnych funkcji i procedur?
Działania wykonywane są często na zmiennych lokalnych , które są potrzebne tylko w trakcie wykonywania funkcji. Zmienne lokalne powinny więc zajmować obszar pamięci przydzielony tylko na czas wykonywania podprogramu , dlatego wygodne jest je umieszczać na stosie
3. Omówić podstawowe trudności związane z potokowym wykonywaniem rozkazów przez procesor.
- realizacja niektórych etapów może powodować konflikty dostępu do pamięci
- jeśli czasy trwania poszczególnych etapów mogą być niejednakowe to na różnych etapach wystąpi pewne oczekiwanie
- w programie występują skoki (rozgałęzienia) warunkowe, które mogą zmieniać kolejność wykonywania instrukcji a tym samym unieważnić kilka pobranych rozkazów - muszą one być usunięte z potoku a potok musi być zapełniony nowym strumieniem rozkazów
- wystąpienie przerwania sprzętowego lub wyjątku procesora stanowi zdarzenie nieprzewidywalne i również pogarsza przetwarzanie potokowe
- niektóre rozkazy wymagają dodatkowych cykli (np. do ładowania danych)
- czasami rozkazy muszą oczekiwać z powodu zależności od nie zakończonych poprzednich rozkazów
4. Scharakteryzować grupy rozkazów MMX i SSE w procesorze pentium.
MMX - Grupa instrukcji przeznaczona do wykonywania operacji na dźwiękach i obrazach. Zauważono pewną specyfikę programów wykonujących operacje multimedialne. Występują tam fragmenty kodu które wykonują wielokrotnie powtarzające się działania arytmetyczne na liczbach 8-, 16- i 32-bitowych. Używane są rozkazy grupy MMX dla operacji na liczbach zmiennoprzecinkowych. Pojedyncze rozkazy MMX lub SSE wykonywane są przez wyspecjalizowane moduły pojedynczego procesora. Ponieważ jednak rozkazy te wykonują działania jednocześnie na kilku danych można sobie wyobrazić że każda z danych jest przetwarzana przez oddzielny procesor który wykonuje ten sam rozkaz co pozostałe procesory. Dla operacji MMX wprowadzono osiem 64-bitowych rejestrów. W operacjach MMX używane są 4 grupy danych. Nie ma możliwości indywidualnego dostępu do poszczególnych składowych. Instrukcje nie zmieniają rejestru znaczników. Na poziomie asemblera instrukcje MMX kodowane są w konwencjonalny sposób.
SSE - równoległe operacje na 4 32-bitowych liczbach zmiennoprzecinkowych przeznaczone głównie do zastosowań grafiki komputerowej. Dla SSE zdefiniowano 8 rej 128-bitowych i zawierających 4 liczby zmiennoprzecinkowe. Instrukcje mogą wykonywać działania na danych upakowanych (4liczby) lub skalarnych (zestaw danych zawiera jedną liczbę na najmniej znaczących bitach).
5. Jak zmieni się zawartość rejestru EBP po wykonaniu rozkazu AND EBP 0C000000H?
….
6. Omówić realizację pamięci wirtualnej za pomocą stronicowania.
Mechanizmy stronicowania stanowią podstawę do implementacji pamięci wirtualnej, co oznacza symulowanie dużej pamięci operacyjnej za pomocą stosunkowo niedużej pamięci RAM i pamięci dyskowej. Implementacja ta polega na przechowaniu zawartości pamięci symulowanej częściowo w pamięci RAM i częściowo w pamięci dyskowej. Jeśli strona do której następuje odwołanie aktualnie nie znajduje się w pamięci operacyjnej to generowany jest wyjątek który obsługiwany jest przez system operacyjny, który dokonuje wymiany stron, wówczas inna aktualnie nieużywana strona kopiowana jest na dysk a na jej miejsce wprowadzana jest zadana żądana strona. Ponieważ stosowana jest transformacja adresów więc wymiana może dotyczyć jakiejkolwiek strony w pamięci RAM położoną w dowolnym miejscu pamięci o adresie początkowym podzielonym przez 4096. Dotychczasowa zawartość strony w pamięci RAM jest zapisywana na dysku a na jej miejsce wprowadzana jest aktualnie potrzebna strona tymczasowo przechowywana na dysk.
Zalety:
-poszczególne procesy mają dostęp wyłącznie do swoich własnych obszarów pamięci
-zarządzanie pamięcią jest znacznie usprawnione bo system operacyjny nie musi przeprowadzać scalania małych niezajętych obszarów
-stosowanie pamięci wirtualnej powoduje pewne zwiększenie prędkości wykonywania programu wskutek konieczności wymiany stron między pamięcią operacyjną a pamięcią dyskową
7. Na czym polega przetwarzanie współbieżne?
Wiele procesów które mogą ze sobą współpracować a także rywalizować. Dwa rodzaje podziału czasu procesora: ze stałym podziałem czasu ; sterowanie priorytetami procesów i zdarzeniami. Programy procesów wykonują się równolegle współdzieląc zasoby (pamięć, procesor, komunikacja) Jądro szereguje kolejność dostępu do procesora a funkcja jądra umożliwia interakcję.
8. Co to jest semafor i jaką pełni role?
Semafor jest narzędziem synchronizacji procesów- działania sprowadza się do wskaźnika (flagi) sygnalizującej dostępność. Semafory służą do budowy sekcji krytycznej wykorzystywanej przez wiele procesów.
Zestaw 12
1. RTC.
Zegar czasu rzeczywistego. Stanowi odrębny zespół który udostępnia aktualną datę i czas. Układ wykonany jest w technologii CMOS co zapewnia mały pobór energii. W czasie gdy komputer nie pracuje zegar CMDS RTC zasilany jest z małej baterii.
2. Omówić schemat współdziałania różnych typów pamięci zwany jako hierarchia pamięci.
Na szczycie diagramu (poziom L0)
Rejestry procesora przechowują informację uzyskane z pamięci L1. Pamięć L1 przechowuje informacje uzyskane z pamięci L2. Pamięć L2 przechowuje informacje uzyskane z pamięci głównej . Pamięć główna przechowuje informacje uzyskane z pamięci masowej. Pamięć masowa przechowuje informacje uzyskane z dysków w serwerach sieciowych.
3. Porównać architekturę procesorów RISC i CISC.
Charakterystyczne cechy architektury RISC:
4. Wyjaśnić korzystając z prawa Amdahla, czy zwiększenie liczby procesorów w systemie prowadzi do proporcjonalnego zwiększenia wydajności systemu?
oznaczmy przez S(n) przyspieszenie, jakie możemy uzyskać za pomocą n procesorów w systemie, czyli
w przypadku idealnym S(n) jest liniową funkcją n;
oznaczmy przez:
s czas spędzany przez procesor w szeregowej części programu (nie ma zrównoleglania),
p czas spędzany przez procesor w części, która może być podzielona między n procesorów (i wykonywana równolegle).
można więc napisać
przyjmując, że spełniony jest związek s + p = 1, skąd p = 1 - s, otrzymujemy
łatwo zauważyć, że przyspieszenie wynosi n tylko w przypadku, gdy s = 0; w praktyce wartość s stanowi co najmniej 10% czasu wykonywania w systemie jednoprocesorowym; w takim przypadku, jeśli system zawiera 16 procesorów, to przyspieszenie wynosi tylko 16/2.5 = 6.4
dyskusja wynikająca z prawa Amdahla wskazuje, że uzyskiwane rezultaty przy dużej liczbie procesorów są dość umiarkowane
5. Jak zmieni się zawartość rejestru ESI po wykonaniu rozkazu AND ESI , 80000001H?
…
6. Na czym polega przetwarzanie sieciowe (webowe)?
Lekki/ciężki klient i serwery w sieci lokalnej lub globalnej - komputery sieciowe ( so + maszyna wirtualna Java i aplety aplikacji, bazy danych prezentacji -dwu lub trzy warstwowe przetwarzanie z wykorzystaniem warstwy pośredniej - serwera aplikacji lub brokera).
7. Co to jest proces i jak wygląda jego opis w systemie operacyjnym?
System operacyjny musi realizować różne zadania systemowe; można więc przyjąć, że system składa się zbioru procesów: procesy systemu operacyjnego wykonują kod systemowy, a procesy użytkowe działają wg kodu należącego do użytkowników;
Proces jest obiektem aktywnym, który ma przydzielone pewne zasoby i dla którego można wskazać następny rozkaz do wykonania poprzez określenie zawartości wskaźnika instrukcji (licznika rozkazów) procesora; wykonywany proces może tworzyć wiele nowych procesów;
Opis (reprezentacja)
Proces reprezentowany jest w systemie operacyjnym przez blok kontrolny procesu (PCB); w skład bloku kontrolnego wchodzą następujące informacje:
stan procesu: może być określony jako nowy, gotowy, aktywny, oczekiwanie, zatrzymanie, itd.;
wskaźnik instrukcji (licznik rozkazów): wskazuje adres następnego rozkazu do wykonania w procesie;
rejestry procesora: rodzaje przechowywanych rejestrów zależą od architektury procesora;
informacja o planowaniu przydziału procesora: priorytet procesu i inne parametry potrzebne do planowania;
informacje o zarządzaniu pamięcią: zawartości rejestrów granicznych, tablice stron lub segmentów, itp,;
informacje do rozliczeń: ilość zużytego czasu procesora i czasu rzeczywistego, ograniczenia czasowe, numery kont, itd.;
informacje o stanie wejścia-wyjścia: informacje o otwartych plikach, stosowanych urządzeniach
8.Co to są blokady i jak ich unikamy?
Blokada powstanie gdy jednocześnie są spełnione następujące 4 warunki:
- wzajemne wyłączenie - przynajmniej jeden zasób musi być niepodzielny
- przetrzymywanie i oczekiwanie na inny zasób
- brak wywłaszczeń zasobów
- czekanie cykliczne - procesy czekają na zasoby wzajemnie przetrzymywane
Zapobieganie blokadom (pozostawanie w stanie bezpiecznym):
- wzajemne wyłączenie tylko może mięć miejsce w zasobach niepodzielnych - w pozostałych musi być eliminowany
- ograniczenie liczby przetrzymywanych zasobów do najwyżej jednego
- używanie różnych protokołów aby wywłaszczyć zasoby
- uporządkowanie typów zasobów i ubiegać się o nie w porządku aby uniknąc czekania cyklicznego
-- zakończenie procesu
-- zaniechanie (cofnięcie) procesów uwikłanych w blokady
-- usuwanie procesów aż do eliminacji pętli blokady
-- wywłaszczenie zasobów
Zestaw 13
1. Jaką rolę pełni znacznik IF w procesorze pentium?
2. Jakie korzyści w trakcie wyznaczania adresu fizycznego w procesorze Pentium przynosi wykorzystanie tablicy TLB?
3. Scharakteryzować grupy rozkazów MMX i SSE w procesorze pentium.
MMX - Grupa instrukcji przeznaczona do wykonywania operacji na dźwiękach i obrazach. Zauważono pewną specyfikę programów wykonujących operacje multimedialne. Występują tam fragmenty kodu które wykonują wielokrotnie powtarzające się działania arytmetyczne na liczbach 8-, 16- i 32-bitowych. Używane są rozkazy grupy MMX dla operacji na liczbach zmiennoprzecinkowych. Pojedyncze rozkazy MMX lub SSE wykonywane są przez wyspecjalizowane moduły pojedynczego procesora. Ponieważ jednak rozkazy te wykonują działania jednocześnie na kilku danych można sobie wyobrazić że każda z danych jest przetwarzana przez oddzielny procesor który wykonuje ten sam rozkaz co pozostałe procesory. Dla operacji MMX wprowadzono osiem 64-bitowych rejestrów. W operacjach MMX używane są 4 grupy danych. Nie ma możliwości indywidualnego dostępu do poszczególnych składowych. Instrukcje nie zmieniają rejestru znaczników. Na poziomie asemblera instrukcje MMX kodowane są w konwencjonalny sposób.
SSE - równoległe operacje na 4 32-bitowych liczbach zmiennoprzecinkowych przeznaczone głównie do zastosowań grafiki komputerowej. Dla SSE zdefiniowano 8 rej 128-bitowych i zawierających 4 liczby zmiennoprzecinkowe. Instrukcje mogą wykonywać działania na danych upakowanych (4liczby) lub skalarnych (zestaw danych zawiera jedną liczbę na najmniej znaczących bitach).
4)Dlaczego pamięć podręczna, w której stosowane jest adresowanie asocjacyjne jest technicznie trudna do zrealizowania?
Stosowane są różne organizacje pamięci podręcznej a wśród nich organizacja oparta na adresowaniu asocjacyjnym. Technika ta polega na porównaniu adresu potrzebnej komórki z adresami zapisanymi w poszczególnych liniach pamięci podręcznych. Ze względu na konieczność porównania dużej liczby adresów metoda ta jest technicznie kłopotliwa i z tego powodu rzadko używana.
5. Co to jest architektura systemów komputerowych?
Konfiguracja sprzętu i oprogramowania.
6. Podaj klasyfikację oprogramowania do budowy systemów informatycznych.
7. Podaj sposoby planowania zadań.
8. Porównaj system plików Windows (FAT) i UNIX.
ZESTAW 14.
1. Omówić na przykładzie dowolnie wybranego rozkazu sterującego (skoku) sposób jego wykonania w zależności od stanu odpowiedniego znacznika (znaczników) procesora.
Instrukcje sterujące warunkowe na ogół nie wykonują żadnych obliczeń ale tylko sprawdzają, czy uzyskane wyniki mają oczekiwane własności. W zależności od rezultatu sprawdzenia wykonywanie programu może być kontynuowane przy zachowaniu naturalnego porządku instrukcji albo też porządek ten może być zignorowany poprzez przejście do wykonywania instrukcji znajdującej się w odległym miejscu pamięci operacyjnej w procesorze Pentium rozmaite instrukcje sterujące testują zawartość pojedynczych bitów w rej. znaczników, a niekiedy obliczają pewne wyrażenia logiczne określone na tych bitach. Dla każdej instrukcji sterującej określono testowany warunek:
jz warunek spełniany gdy ZF=1 ZF - znacznik zera
już warunek spełniany gdy ZF=0 CF - znacznik przeniesienia
ja warunek spełniany gdy CF=0 i ZF=0.
W zależności od tego czy warunek jest spełniony czy nie, do wskaźnika instrukcji EiP wpisywane są inne wartości. Obliczanie EiP przez instrukcje sterujące:
1. gdy testowany warunek jest spełniony
EiP <- EiP + (liczba bajtów aktualnie wykonywanej instrukcji) + (zawartość pola adresowego instrukcji)
2. gdy testowany warunek nie jest spełniony
EiP <- EiP + (liczba bajtów aktualnie wykonywanej instrukcji).
2. Wyjaśnić w jaki sposób wewnątrz podprogramu odczytywane są parametry przekazywane przez stos.
W celu zorganizowania wygodnego dostępu do parametrów umieszczonych na stosie przyjęto, że obszar zajmowany przez parametry będzie traktowany jako zwykły obszar danych. W istocie stos jest umieszczony w pamięci RAM, nic nie stoi na przeszkodzie by w pewnych sytuacjach traktować jego zawartość jako zwykły segment danych. Dostęp do danych zapisanych w segmencie wymaga znajomości ich adresów, to samo dotyczy stosu. Jednak położęnie danych zapisanych na stosie ustalane jest dopiero w trakcie wykonywania programu i może się zmieniać przy kolejnych wywołaniach podprogramu. Ponieważ położenie wierzchołka stosu wskazuje rej ESP, więc na podstawie zawartości ESP można wyznaczyć adresy parametrów. Ponieważ zawartość rej ESP może się zmieniać w trakcie wykonywania podprogramu konieczne jest użycie innego rejestru, którego zawartość ustalona przez cały czas wykonywania podprogramu będzie wskazywała obszar param. na stosie - EBP - pomocniczy wskaźnik stosu.
3. Przedstawić w postaci rysunku związki między rejestrami DH, DX, EDX.
DX - rej. 16 bit., DH - 8 bit., EDX - 32 bit. - prosty rysunek:
EDX
DX
DH DL
4. Jaką rolę w realizacji pamięci wirtualnej pełni plik wymiany?
Jeśli strona, do której następuje odwołanie, aktualnie nie znajduje się w pamięci operacyjnej to generowany jest wyjątek, który obsługiwany jest przez system operacyjny, który dokonuje wymiany stron. Wówczas inna aktualnie nieużywana strona kopiowana jest na dysk a na jej miejsce wprowadzana jest żądana strona. W systemie Windows strony zapisywane odczytywane z dysku gromadzone są w pliku wymiany. Ponieważ stosowana jest transformacja adresów, wymiana może dotyczyć jakiejkolwiek strony w pamięci RAM położona w dowolnym miejscu pamięci o adresie początkowym podzielonym przez 4096.
5. Omówić podstawowe koncepcje sterowania mikroprogramowego w procesorze .
Wykonywanie rozkazu przez procesor rozpoczyna się od pobrania rozkazu z pamięci po czym identyfikowany jest jego kod. Na tej podstawie jednostka sterująca w procesorze wysyła sekwencje syg do różnych modułów procesora, kierując się odpowiednio przepływem i przetwarzaniem danych tak, aby w rezultacie wykonać wymaganą operację. Sterowanie mikroprogramowe można określić jako sterowanie za pomocą wewnętrznego procesora, wbudowanego w procesor główny. Mikroprocesor wewnętrzny zawiera własny wskaźnik instrukcji i wykonuje mikroprogram zapisany w pamięci ROM. Stosowanie mikroprogramowe umożliwia stosunkowo łatwe tworzenie nowych wersji procesów o bardziej rozbudowanej liście rozkazów. Poza tym konstrukcje ze sterowaniem mikroprogramowym pozwalają na względnie łatwiejsze usuwanie błędów projektowych na etapie prototypowym.
6. Wyjaśnić jak skonstruowana jest macierz dyskowa RAID.
W dużych systemach komputerowych istotnym parametrem może być szybkość transmisji danych do i z dysku oraz zwiększenie niezawodności. Realizuje to zespół dysków znanych jako RAID - nadmiarowa macierz tanich dysków. Umożliwia tworzenie dużej i niezawodnej przestrzeni dyskowej za pomocą niedrogich standardowych dysków. Struktura RAID 0 polega na połączeniu ze sobą dwóch lub więcej dysków fizycznych tak, aby były one widziane jako jeden dysk logiczny. Rozmiar uzyskanej pamięci stanowi sumę pamięci poszczególnych dysków, przy czym dane są przeglądane między dyskami. W rezultacie kilka procesów może uzyskiwać jednoczesny dostęp do pojedynczego obszaru danych, który jest zapisany na kilku dyskach ale z punktu widzenia oprogramowania przestrzeń wszystkich dysków widziana jest jako całość. Konstrukcja taka nadaje się dobrze do przechowywania dużych plików multimedialnych, nie jest odporna na uszkodzenia dysków.
7. Omówić krótko typy przetwarzania scentralizowanego.
Przetwarzanie scentralizowane (terminale i superkomputer typu mainframe).
8. Dlaczego stosujemy model warstwowy systemu operacyjnego?
Z modelem warstwowym związana jest koncepcja hierarchii maszyn wirtualnych tworzących abstrakcyjny ciąg modeli systemów komputerowych. Każda kolejna warstwa wzbogaca sprzęt o nowe własności, dając implikacje w przypadku systemów wielozadaniowych. W strukturze warstwowej systemu operacyjnego warstwy niższe oferują pewne funkcje i usługi warstwom wyższym. Ze względu na potrzebę przenośności oprogramowania użytkowego istotne jest korzystanie z mechanizmów systemowych na określonym poziomie.
ZESTAW 15.
1. Omówić podstawowe elementy systemu przerwań w komputerach PC.
We współczesnych komputerach mechanizmy obsługi przerwań należą do podstawowych elementów funkcjonalnych, niezbędnych do poprawnej pracy całego systemu. Procesor po otrzymaniu sygnału przerwania przerywa wykonywanie bieżącego programu, rozpoczyna wykonywanie innego programu. Program ten identyfikuje otrzymany sygnał przerwania. Działania w stosunku do urządzenia, które wysłało przerwanie. Po wykonywaniu tych działań procesor powróci do dalszego wykonywania przerwanego programu. Zarówno sprzętowe jak i programowe aspekty systemu przerwań są stosunkowo mało znane nawet dla zawodowych programistów. Obsługa przerwań jest realizowana przez system operacyjny, który nie zezwala aplikacji na jakiekolwiek ingerencje w tym zakresie. Procesor zapisuje na stosie ślad zawierający adres rozkazu, który miał być wykonany jako następny ale narazie nie został wykonany ze względu na przerwanie.
2. Omówić różne rodzaje kodowania liczb binarnych stałoprzecinkowych.
Kodowanie liczb całkowitych bez znaku - zwyczajny system binarny.
Kodowanie liczb całkowitych ze znakiem - system znak-moduł lub system U2. Wady: Produkt obliczeń może w niekontrolowany sposób przekroczyć zakres reprezentowanych wartości. Przy dużej liczbie mnożeń, dodawań można oczekiwać błędów nie do zaakceptowania.
Kodowanie w systemie BCD:
-upakowany każdy bajt zawiera dwie cyfry dziesiętne (4 starsze cyfry dziesiętne, 4 młodsze cyfry dziesiętne)
- nieupakowany jeden bajt zawiera cyfrę dziesiętną (4 starsze wyzerowane) .
3. Dlaczego zdefiniowanie listy rozkazów procesora upraszcza programowanie na poziomie sprzętu?
4. W jaki sposób funkcje i procedury tworzą obszar zmiennych lokalnych na stosie?
Wywołanie podprogramu realizuje się za pomocą rozszerzonej instrukcji skoku - konieczne jest bowiem zapamiętanie adresu powrotu zwanego śladem tzn. miejsca, do którego ma powrócić sterowanie po zakończeniu wykonywania podprogramu w procesorze Pentium adres powrotu zapisuje się na stosie. Czynności te wykonuje rozkaz CALL. Występuje on również wersji z adresowaniem bezpośrednim i pośrednim. W chwili zakończenia wykonywania podprogramu zawartość wierzchołka stosu powinna zostać przepisana do rej. ESP, czynność tę realizuje RET. Podprogramy mogą być wywoływane takżę za pomocą rozkazu INT. Rozkaz ten stosowany jest przede wszystkim do wywoływania podprogramów wchodzących w skład systemu operacyjnego. W MS Windows technika ta wychodzi z użycia ale nadal jest używana w systemie Linux.
5. Korzystając z prawa Amdahla wyjaśnić dlaczego skalowalność liniowa w praktyce jest trudna do uzyskania.
Oznaczmy przez S(n) przyspieszenie jakie możemy uzyskać za pomocą n procesorów w systemie.
S(n) = (czas wykonywanie zadania w systemie jednoprocesorowym) / (czas wykonywania zadania w systemie wieloprocesorowym)
W idealnym przypadku S(n) jest liniowa funkcja n
s - czas spędzany przez procesor w szeregowej części programu
p - czas spędzany przez procesor, w części która możę być podzielona między n procesorów.
S = (s+p) / (s+p/n)
Przyjmujemy, że s+p=1, p=1-s
S = n / (n-1)s+1
Uogólnienie przedstawionego problemu nosi nazwę skalowalności systemu. Terminem tym określamy wielkość przyspieszenia obliczeń w zależności od liczby użytych procesorów. Chodzi o to czy zwiększenie liczby procesorów, czy innych zasobów systemu prowadzi do proporcjonalnego zwiększenia wydajności. Dyskusja wynikająca z prawa Amdahla wskazuje, że uzyskiwane rezultaty przy dużej liczbie procesorów są dość umiarkowane. Skalowalność liniowa jest bardzo trudna do uzyskania. W istocie wiele algorytmów z natury ma charakter sekwencyjny, nieodpowiedni dla przetwarzania równoległego - wymaga to zastąpienia istniejących algorytmów przez nowe, lepiej dostosowane do specyfiki przetwarzania równoległego.
6. Na czym polega wielozadaniowość z wywłaszczaniem i bez wywłaszczania.
Wywłaszczanie - technika używana w środowisku wielowątkowym, w której algorytm szeregujący może wstrzymać aktualnie wykonywane zadanie aby umożliwić działanie innego. Dzięki temu raz zawieszenie jednego procesu nie powoduje blokowania całego procesu operacyjnego. W systemach bez wywłaszczania zadanie jawnie informuje algorytm szeregujący, w którym może umożliwić przejście do innych zadań. Jeżeli tego nie zrobią w odpowiednim czasie to system zaczyna działać bardzo wolno. Oprócz tego wywłaszczenie umożliwia szczegółowe określenie czasu w jakim dany proces może korzystać z procesu wywłaszczania. W niektórych systemach operacyjnych może dotyczyć nie tylko programu ale też jądra (Linux). Wywłaszczanie jest często ograniczone np. procedury odpowiadające za obsługi przerwań systemowych są zwykle niewywłaszczalne, co znacznie upraszcza ich konstrukcję ale wymusza zadbanie o to, żeby szybko się kończyły umożliwiając działanie innym procesom.
7. Co to jest uwierzytelnianie … ?
Uwierzytelnienie - proces, podczas którego system sprawdza informacje dotyczące logowania użytkownika. Nazwa użytkownika i hasło są porównywane z uwierzytelnioną listą. Jeśli system wykrył odpowiednik na liście, dostęp zostanie udzielony w zakresie określonym przez listę uprawnień użytkownika.
Zestaw 1.
1. Dlaczego procesor w trakcie wykonywania rozkazu dodawania add ustawia jednocześnie oba znaczniki nadmiaru CF i OF?
2. W jaki sposób w programach wytworzonych przez kompilatory języków programowania rezerwuje się miejsce w pamięci przeznaczone dla zmiennych lokalnych funkcji i procedur?
3. Jaką rolę w trakcie wykonywania programu przez procesor pełni wskaźnik instrukcji?
4. Omówić technikę wyodrębniania zawartości pól bitowych.
5. Co oznaczają terminy trafienie i chybienie w odniesieniu do pamięci podręcznej?
6. Jakie mechanizmu służą synchronizacji procesów?
7. Dlaczego rozkazy grupy mmx i sse w architekturze IA-32 nadają się szczególnie do wykonywania działań w programach multimedialnych?
8. Podaj typy aplikacji wykonywanych po stronie serwera WWW.
Zestaw 2.
1. W jaki sposób zapewnia się spójność pamięci głównej (operacyjnej) i pamięci podręcznej (ciche)?
2. Omówić realizację pamięci wirtualnej za pomocą stronicowania.
3. Omówić podstawowe trudności związane z potokowym wykonywaniem rozkazów przez procesor.
4. Omówić architekturę MIND z pamięcią wspólną i z pamięcią rozproszoną.
5. Na czym polega przetwarzanie współbieżne?
6. Na czym polega zarządzanie procesami?
7. Jakie zadania spełnia system operacyjny?
8. Co to jest semafor i jaką pełni role?
Zestaw 3.
1. Wyjaśnij termin wartości specjalne w kontekście koprocesora arytmetycznego.
2. Na czym polega fragmentacja pamięci zewnętrznej i wewnętrznej.
3. Jaką rolę odgrywa układ obsługi przerwań APIC w systemie wieloprocesorowym?
4. W jakim celu w trakcie wykonywania rozkazów jest transformacja adresów.
5. Jak zmieni się zawartość rejestru EDI po wykonaniu rozkazu OR EDI 80000001H?
6. Omówić różnice i podobieństwa między przerwaniami sprzętowymi i wyjątkami procesora.
7. Podaj sposoby koordynacji procesów w systemach współbieżnych.
8. Nazwij elementy struktury warstwowej systemu operacyjnego.
Zestaw 4.
1)Jak należy rozumieć termin interfejs programowania aplikacji (API)?
2)W jakim celu w architekturze IA-32 zdefiniowano tryb V86?
3)Dlaczego używanie rozkazów CLI i STI (zerowanie i ustawianie znacznika przerwań IF) przez zwykłe programy jest niedozwolone?
4)Omówić czynniki ograniczające wydajność przetwarzania potokowego w procesorze?
5)Dlaczego pamięć podręczna, w której stosowane jest adresowanie asocjacyjne jest technicznie trudna do zrealizowania?
6)Omówić podstawową koncepcję sterowania układowego w procesorze.
7)Co oznacza określenie „message possing” i z czym jest związane?
8)Na czym polega przetwarzanie agentowe?
Zestaw 5.
1)Jak zmienia się rejestr EIP w czasie wykonywania rozkazów sterujących?
2)W jakim celu korzysta się z pomocniczego rejestru stosu EBP w czasie pobierania parametrów ze stosu?
3)Wybrać dowolną liczbę 8 bit ujemną, całkowitą i zapisać ją w U2.
4)Jak wywoływane są funkcje systemu operacyjnego przez programy?
5)Procesor wielordzeniowy a procesor wielowątkowy.
6)Co to jest BIOS?
7)Przetwarzanie zespołowe - def. I jakie korzyści przynosi.
8)Co to jest i w jakim celu się stosuje kolejki wielopoziomowe?
Zestaw 6.
1)Co robi RET w programie?
2)Dlaczego procesory IA-32 można zaliczyć do SIMD?
3)Dlaczego w normie 754 nie występuje bit mantysy.
4)Pamięć wirtualna i fizyczna.
5)RAID 5 i jak dane odbudowuje?
6)Omówić aplikacje wspomagające system.
7)Przetwarzanie gridowe.
8)Do czego służy tablica deskryptorów?
Zestaw 7.
1)W jaki sposób liczba linii adresowych procesora określa przestrzeń adresową pamięci głównej (operacyjnej)?
2)Dlaczego położenie danej, na której rozkaz wykonuje działanie, adres wyraża się poprzez podania offsetu (przesunięcia), a nie poprzez podanie adresu fizycznego?
3) Na czym polega technika nakładkowania?
5) Jak zmieni się wartość rejestru EBX po wykonaniu rozkazu XOR EBX, 80000001H?
6)Wyjaśnij znaczenie terminu interfejs programowania aplikacji (API).
7)Co to jest jądro systemu operacyjnego i jakie spełnia funkcje?
8)Na czym polega przetwarzanie rozproszone?
Zestaw 8.
1)Jaką rolę w trakcie wykonywania programu przez procesor pełni wskaźnik instrukcji (licznik rozkazów).
2)Napisać rozkaz w asemblerze realizujący operację sumowania ESI ← ESI + [004002E5H].
3)Omówić dyrektywy używane do definiowania danych na poziomie asemblera.
4)Omówić sposób transformacji adresu wirtualnego (logicznego) na adres fizyczny za pomocą dwupoziomowych tablic stron stosowanych w architekturze IA-32.
5) Omówić typowe miary wydajności systemów komputerowych.
6) Co oznaczają terminy „zapis przez” i „zapis z opóźnieniem” w odniesieniu do pamięci podręcznej?
7)Omówic typową aplikację dla programowania użytkowego.
8)Co to jest jądro systemu i jakie ma zadanie?
Zestaw 9.
1. Co oznacza sformułowanie że układ obsługi przerwań APIC został zrealizowany jako układ rozproszony?
2. Objaśnić koncepcję ochrony pamięci za pomocą rejestru bazowego i granicznego.
3) Na czym polega technika nakładkowania?
4)Jak należy rozumieć określenie „pamięć nieświeża” w systemach wieloprocesorowych?
5. Co to jest system operacyjny?
6)Na czym polega przetwarzanie rozproszone?
7)Co to jest jądro systemu operacyjnego i jakie spełnia funkcje?
8. Co to jest potok i jak jest używany?
Zestaw 10.
1. Omówić format 32-bitowych liczb zmiennoprzecinkowych (pole mantysy 23bity, pole wykładnika 8bitów)
2. Dlaczego wartość zwracana przez operator SEG jest korygowana przez system operacyjny bezpośrednio przed uruchomieniem programu?
3. Omówić klasyfikację systemów komputerowych podaną przez flynn'a.
W ujęciu ogólnym komputer wykonuje rozkazy które przetwarzają dane.
4) Omówić typowe miary wydajności systemów komputerowych.
5. Jak zmieni się zawartość rejestru ECX po wykonaniu rozkazu XOR ECX , 0C0000000H?
6. Omówić przyczyny dla których we współczesnych komputerach instalowana jest pamięć podręczna (ciche)?
7. Opisz działanie … metod round-robin miary…
8. Co to jest przetwarzanie i model przetwarzania?
Zestaw 11.
1. W jaki sposób zapewnia się spójność pamięci głównej (operacyjnej) i pamięci podręcznej (ciche)?
2. W jaki sposób w programach wytworzonych przez kompilatory języków programowania rezerwuje się miejsce w pamięci przeznaczone dla zmiennych lokalnych funkcji i procedur?
3. Omówić podstawowe trudności związane z potokowym wykonywaniem rozkazów przez procesor.
4. Scharakteryzować grupy rozkazów MMX i SSE w procesorze pentium.
5. Jak zmieni się zawartość rejestru EBP po wykonaniu rozkazu AND EBP 0C000000H?
6. Omówić realizację pamięci wirtualnej za pomocą stronicowania.
7. Na czym polega przetwarzanie współbieżne?
8. Co to jest semafor i jaką pełni role?
Zestaw 12.
1. RTC.
2. Omówić schemat współdziałania różnych typów pamięci zwany jako hierarchia pamięci.
3. Porównać architekturę procesorów RISC i CISC.
4. Wyjaśnić korzystając z prawa Amdahla, czy zwiększenie liczby procesorów w systemie prowadzi do proporcjonalnego zwiększenia wydajności systemu?
5. Jak zmieni się zawartość rejestru ESI po wykonaniu rozkazu AND ESI , 80000001H?
6. Na czym polega przetwarzanie sieciowe (webowe)?
7. Co to jest proces i jak wygląda jego opis w systemie operacyjnym?
8.Co to są blokady i jak ich unikamy?
Zestaw 13.
1. Jaką rolę pełni znacznik IF w procesorze pentium?
2. Jakie korzyści w trakcie wyznaczania adresu fizycznego w procesorze Pentium przynosi wykorzystanie tablicy TLB?
3. Scharakteryzować grupy rozkazów MMX i SSE w procesorze pentium.
4)Dlaczego pamięć podręczna, w której stosowane jest adresowanie asocjacyjne jest technicznie trudna do zrealizowania?
5. Co to jest architektura systemów komputerowych?
6. Podaj klasyfikację oprogramowania do budowy systemów informatycznych.
7. Podaj sposoby planowania zadań.
8. Porównaj system plików Windows (FAT) i UNIX.
Zestaw 14.
1. Omówić na przykładzie dowolnie wybranego rozkazu sterującego (skoku) sposób jego wykonania w zależności od stanu odpowiedniego znacznika (znaczników) procesora.
2. Wyjaśnić w jaki sposób wewnątrz podprogramu odczytywane są parametry przekazywane przez stos.
3. Przedstawić w postaci rysunku związki między rejestrami DH, DX, EDX.
4. Jaką rolę w realizacji pamięci wirtualnej pełni plik wymiany?
5. Omówić podstawowe koncepcje sterowania mikroprogramowego w procesorze .
6. Wyjaśnić jak skonstruowana jest macierz dyskowa RAID.
7. Omówić krótko typy przetwarzania scentralizowanego.
8. Dlaczego stosujemy model warstwowy systemu operacyjnego?
Zestaw 15.
1. Omówić podstawowe elementy systemu przerwań w komputerach PC.
2. Omówić różne rodzaje kodowania liczb binarnych stałoprzecinkowych.
3. Dlaczego zdefiniowanie listy rozkazów procesora upraszcza programowanie na poziomie sprzętu?
4. W jaki sposób funkcje i procedury tworzą obszar zmiennych lokalnych na stosie?
5. Korzystając z prawa Amdahla wyjaśnić dlaczego skalowalność liniowa w praktyce jest trudna do uzyskania.
6. Na czym polega wielozadaniowość z wywłaszczaniem i bez wywłaszczania.
7. Co to jest uwierzytelnianie … ?