1. Jaka jest różnica pomiędzy wieloprogramowaniem a wielozadaniowością?
Wieloprogramowanie polega na tym, że w tym samym czasie system operacyjny przechowuje w pamięci operacyjnej kilka zadań (z puli wszystkich zadań zgromadzonych na dysku). System operacyjny wybiera jedno z zadań i rozpoczyna jego wykonanie. W przypadku gdy zadanie zacznie oczekiwać na jakąś pracę np. zakończenie operacji wejścia-wyjścia CPU przechodzi do wykonywania innego zadania. Procesor jest więc zajęty dopóki choćby jedno zadanie jest do wykonania. Natomiast wielozadaniowość jest rozszerzeniem wieloprogramowości. Procesor wykonuje na przemian kilka różnych zadań - co więcej przełączanie miedzy nimi następuje tak często, ze użytkownicy mogą współdziałać z każdym programem podczas jego wykonywania.
2. Na czym polega i jaka jest różnica pomiędzy planowaniem (szeregowaniem) zadań, a planowaniem przydziału procesora?
System operacyjny – definicja i zadania:
System operacyjny (ang. Operating System) – zarządza systemem komputerowym i tworzy bazę danych dla programów użytkowych i działa jako pośrednik pomiędzy użytkownikiem a sprzętem komputerowym.
Niekiedy spotykamy się z definicją, że system operacyjny jest to program, który działa w komputerze bez przerwy – nazywany jest on zazwyczaj jądrem. Wszystkie inne programy są programami użytkownika.
Przyjmuje się jednak również, że nie ma w pełni adekwatnej definicji systemu operacyjnego. Co więcej, nie dysponujemy uniwersalnie akceptowanym zbiorem funkcji, które powinien udostępniać.
Zadania systemu operacyjnego:
Tworzenie środowiska, w którym użytkownik może wykonywać programy w wygodny i wydajny sposób.
Zagwarantowanie bezbłędnej pracy systemu komputerowego, (zapobieganie zaburzeniom powstałym przez programy użytkowe) właściwe działanie systemu operacyjnego, możliwe jest jedynie wówczas, gdy sprzęt komputerowy dostarczy systemowi odpowiednich do tego mechanizmów.
Dostarczanie programom i użytkownikom usług ułatwiających ich zadania (usługi różnią się od siebie w rożnych systemach).
Na czym polega i jaka jest różnica pomiędzy planowaniem (szeregowaniem) zadań, a planowaniem przydziału procesora? *
Różnica pozornie wydaje się być łatwa. Szeregowanie zadań polega na poukładaniu poszczególnych zadań w odpowiedniej kolejności i z odpowiednim priorytetem w „kolejce” do procesora, większość z nich jest wykonywana całościowo, jednakże takowy proces może zostać zatrzymany i odłożony „na potem”. Planowanie przydziału procesora, jest to wybieranie w jakiej kolejności, takie procesy mają być szeregowane, to znaczy czy wg priorytetów, czy z wywłaszczaniem czy bez. W informatyce wyróżnia się wiele algorytmów planowania. Zależnie od wyboru planowania zostają szeregowane procesy.
3. Wymień trzy główne zalety systemów wieloprocesorowych.
Trzy główne zalety systemów wieloprocesorowych:
- zwiększona przepustowość (większa liczba procesów wykonywana w krótszym czasie),
- zwiększona niezawodność – zadania w systemie rozdzielone są na daną liczbe procesorów, dzięki temu awaria jednego z nich nie powoduje zatrzymania systemu lecz jedynie spowalnia jego działanie,
- zdolność do kontynuowania usług na poziomie proporcjonalnym do używanego/działającego sprzętu nazywaną łagodną degradcają a systemu zaprojektowane z uwzględnieniem owej nazywamy systemami tolerującymi degradacje,
- ekonomika skali.
4. Czym różni się wieloprzetwarzanie symetryczne od wieloprzetwarzania asymetrycznego w systemach wieloprocesorowych?
Wieloprzetwarzanie symetryczne (ang. symmetric multiprocessing), model przetwarzania wieloprocesorowego, w którym każdy procesor wykonuje tę samą kopię systemu operacyjnego, nawiązującą w razie potrzeby kontakt z innymi kopiami.
Występuje w sytuacji, gdy żaden procesor nie jest wyróżniony i wszystkie mogą wykonywać takie same zadania
Przykładem wieloprzetwarzania symetrycznego jest działanie systemu Encore.
Wieloprzetwarzanie asymetryczne (z ang. asymmetric multiprocessing), system przetwarzania danych, w którym decyzje dotyczące planowania, wykonywanie operacji wejścia-wyjścia i inne prace administracyjne są wykonywane przez jeden procesor główny, który zleca pozostałym procesorom do wykonania zadania użytkowe.
Występuje w sytuacji, gdy wyróżniony procesor główny zarządza całym systemem i przydziela zadania innym procesorom.
Wieloprzetwarzanie asymetryczne jest stosowane w bardzo dużych systemach, w których przetwarzanie wejścia-wyjścia zajmuje znaczącą część czasu.
5. Wymień i omów trzy wybrane zalety systemów rozproszonych.
• Podział zasobów: Po połączeniu ze sobą różnych stanowisk (o różnych możliwościach) użytkownik jednego stanowiska może korzystać z zasobów dostępnych na innym. Na przykład użytkownik węzła A może korzystać z drukarki laserowej zainstalowanej w węźle B. Użytkownik węzła B może w tym samym czasie mieć dostęp do pliku znajdującego w A. Mówiąc ogólnie, podział zasobów w systemie rozproszonym tworzy mechanizmy dzielonego dostępu do plików w węzłach zdalnych, przetwarzania informacji w rozproszonych bazach danych, drukowania plików w węzłach zdalnych, zdalnego użytkowania specjalizowanych urządzeń sprzętowych (np. odznaczających się wielką szybkością procesorów tablicowych) i wykonywania innych operacji.
• Przyspieszanie obliczeń (ang. load sharing): Jeśli pewne obliczenie da się rozłożyć na zbiór obliczeń cząstkowych, które można wykonywać współbieżnie, to system rozproszony umożliwia przydzielenie tych obliczeń do poszczególnych stanowisk i współbieżne ich wykonanie. Ponadto, jeżeli pewne stanowisko jest w danej chwili przeciążone zadaniami, to część z nich można przenieść do innego, mniej obciążonego stanowiska. Takie przemieszczanie zadań nazywa się dzieleniem obciążeń.
• Niezawodność W przypadku awarii jednego stanowiska w systemie rozproszonym pozostałe mogą kontynuować pracę. Jeżeli system składa się z dużych, autonomicznych instalacji (tzn. komputerów ogólnego przeznaczenia), to awaria jednego z nich nie wpływa na działanie pozostałych. Natomiast, gdy system składa się z małych maszyn, z których każda odpowiada za jakąś istotną funkcję (np. za wykonywanie operacji wejścia-wyjścia z końcówek konwersacyjnych lub za system plików), wówczas z powodu jednego błędu może zostać wstrzymane działanie całego systemu. Ogólnie można powiedzieć, że istnienie w systemie wystarczającego zapasu (zarówno sprzętu, jak i danych) sprawia, że system może pracować nawet po uszkodzeniu pewnej liczby jego węzłów (stanowisk).
6. Jaka jest różnica między gronami asymetrycznymi i symetrycznymi w systemach zgrupowanych? Odpowiedź uzupełnij krótkim omówieniem.
Grona asymetryczne – jedna z maszyn pozostaje w pogotowiu, gdy druga wykonuje aplikację. Maszyna będąca w pogotowiu pilnuje pracę aktywnego serwera.
Grona symetryczne – składa się z dwóch lub więcej komputerów sieciowych, które wzajemnie się doglądają.
7. Jaka jest podstawowa zaleta rygorystycznego systemu czasu rzeczywistego? Podaj trzy podstawowe sposoby ograniczania opóźnień w systemie.
Rygorystyczny system czasu rzeczywistego (ang. Hard Real Time System) to system w którym wymaga spełnienia rygorystycznych ograniczeń czasowych.
Podstawowa zaleta: rygorystyczny system czasu rzeczywistego zapewnia wypełnianie krytycznych zadań (procesów) w gwarantowanym czasie.
Cechy:
-Tryb przetwarzania w czasie rzeczywistym jest takim trybem, w którym programy przetwarzające dane napływające z zewnątrz są zawsze gotowe, a wynik ich działania jest dostępny nie później niż po zadanym czasie.
- System czasu rzeczywistego jest systemem interaktywnym, który utrzymuje ciągły związek z asynchronicznym środowiskiem.
- Pamięć pomocnicza jest na ogół bardzo mała albo nie występuje wcale. Wszystkie dane są przechowywane w pamięci o krótkim czasie dostępu lub w pamięci, z której można je tylko pobierać (ROM).
- Prawie nie spotyka się w systemach czasu rzeczywistego pamięci wirtualnej.
- Rygorystyczne systemy czasu rzeczywistego pozostają w konflikcie z działaniem systemów z podziałem czasu i nie wolno ich ze sobą mieszać.
Sposoby ograniczania opóźnień w systemie:
• odzyskanie przechowywanych danych,
• wypełnienie dowolnego zamówienia,
• zadania o wyższym priorytecie zawsze są wykonywane jako pierwsze w stosunku do zadań o niższym priorytecie;
• ograniczone są inwersje priorytetów, które mogą wystąpić, jeśli zadanie o wyższym priorytecie potrzebuje zasoby przydzielone zadaniu o niższym priorytecie;
• operacje nieszeregowalne, łącznie z operacjami innego czasu niż czas rzeczywisty i operacjami systemu operacyjnego, nie przekraczają pozostałej mocy obliczeniowej w którymkolwiek przedziale.
8. Jakie są cechy charakterystyczne łagodnych systemów czasu rzeczywistego? Wymień możliwe obszary
Systemy czasu rzeczywistego są to wyspecjalizowane systemy operacyjne.
Cechy charakterystyczne łagodnych systemów czasu rzeczywistego:
- krytyczne zadania obsługi w czasie rzeczywistym otrzymują pierwszeństwo przed innym zadaniem – zachowuje ono pierwszeństwo aż do czasu swojego zakończenia.
- zachodzi konieczność ograniczenia wszystkich opóźnień w
systemie – zadanie nie może czekać dowolnie długo na obsłużenie przez jądro.
- łagodne systemy czasu rzeczywistego mogą być łączone z systemami innych rodzajów.
- stałe ograniczenia czasowe są w systemie ściśle zdefiniowane. Przetwarzanie musi się zakończyć przed upływem określonego czasu, w przeciwnym razie przyjmuje się, że system nie spełnił wymagań. Mówimy, że system spełnia wymagania i działa poprawnie, gdy zwraca prawidłowy wynik w ograniczeniach czasowych.
Zastosowanie łagodnych systemów czasu rzeczywistego:
- obszar zastosowania łagodnych systemów czasu rzeczywistego jest ograniczony ze względu na nie zapewnienie przez niego nieprzekraczalnych terminów – mogą być one stosowane w technikach multimedialnych, kreowaniu sztucznej rzeczywistości, programach badawczych, takich jak eksploracji podmorskich czy wyprawy planetarnej. Wspomniane zastosowanie wymagają systemów o rozbudowanych właściwościach, (czego nie mogą zapewnić rygorystyczne systemy czasu rzeczywistego). Systemy czasu rzeczywistego stosuje się w przypadku, gdy postawione są surowe wymagania na czas wykonywania operacji lub przepływu danych. Używa się ich często jako sterowników w urządzeniach o ściśle określonym celu.
9. Jakie są najważniejsze ograniczenia występujące w przypadku systemów kieszonkowych? Podaj ich krótką charakterystykę.
Systemy mobilne to wszystkie mobilne systemy operacyjne, które kontrolują pracę urządzeń mobilnych. Oprogramowanie mobilne musi uwzględniać pod jakim systemem będzie działać. Każdy z systemów jest całkowicie odrębny od pozostałych i z nimi niekompatybilny. Oznacza to, że tworząc aplikacje na systemy mobilne trzeba je za każdym razem dostosowywać i nie da się napisać jednej aplikacji, która będzie działać na wszystkich platformach mobilnych. Można jednak napisać aplikacje dedykowane każdemu z systemów.
Najbardziej popularnymi systemami są:
• iPhone OS – rozwijany przez firmę Apple nowoczesny system na bazie Mac OS X
• Windows Mobile – system operacyjny od firmy Microsoft
• Android OS – dość młody na rynku otwarty mobilny system operacyjny od Google
• Systemy producentów telefonów obsługujące Java Micro Edition – „zwykłe komórki”
Jakie korzyści dają systemy mobilne ?
• Oszczędność czasu i pieniędzy – natychmiastowy przepływ informacji
• Szybki i łatwy dostęp do zasobów firmowych – większa efektywność pracy
• Większe zyski – z przyspieszenia pracy, ograniczenia procedur, dostępności informacji
Ograniczenia systemów mobilnych:
Mała pamięć operacyjna
Mała szybkość procesora (szybszy wymagałby mocniejszego zasilania; pojemność baterii jest ograniczona)
Rozmiar wyświetlacza ogranicza ilość informacji prezentowanych użytkownikowi przez aplikację
10. Wymień różnice pomiędzy przypadkiem wejścia-wyjścia synchronicznego i asynchronicznego. Jaka jest główna zaleta wejścia-wyjścia asynchronicznego?
Synchroniczne wykonywanie operacji wejścia/wyjścia
procesor zleca wykonanie operacji i czeka, aż otrzyma potwierdzenie zakończenia operacji, asynchroniczne wykonywanie operacji wejścia/wyjścia
procesor zleca wykonanie operacji, przerywa wykonywanie aktualnie wykonywanego zadania i nie czekając na zakończenie się operacji wejścia/wyjścia zaczyna wykonywać inne zadanie; po zakończeniu operacji wejścia/wyjścia urządzenie zewnętrzne generuje przerwanie, a procedura obsługi przerwania odnotowuje ten fakt.
Operacje asynchroniczne pozwalają na zwiększenie wydajności systemu. W środowisku wieloprogramowym pozwalają one na równoczesne wykonywanie wielu operacji wejścia/wyjścia i obliczeń. Podobnie, jeżeli zadanie chce wykonać operację wejścia/wyjścia na urządzeniu, które aktualnie jest zajęte wykonywaniem innej operacji, to wykonanie takiego zadania jest wstrzymywane, aż do momentu, gdy dane urządzenie będzie dostępne i zlecona operacja zostanie wykonana.
11. Wymień trzy rodzaje pamięci dostępnej bezpośrednio dla procesora. Podaj powód, dla którego zastosowano pamięć podręczną. Jaki problem udało się w ten sposób wyliniować?
Rodzaje:
- rejestry wbudowane w jednostkę centralną;
- pamięć podręczna;
- pamięć operacyjna.
Procesor to urządzenie, które przetwarza informacje pobrane z pamięci. Szybkość tego przetwarzania zależy od częstotliwości taktowania, ale także i pamięci podręcznej procesora.
Pamięć ta ma zadanie niwelować czas przesyłania danych z pamięci operacyjnej do rejestrów procesora.
Procesor sprawdza, czy potrzebne dane są w pamięci podręcznej procesora. Jeśli są (cache hit) to procesor pomija pamięć RAM, przez co oszczędza czas, natomiast w przypadku braku potrzebnych danych (cache mist) należy zrobić wolne miejsce w pamięci podręcznej, i pobrać do niej dane z pamięci operacyjnej, co zdecydowanie wydłuża czas operacji. Dlatego też ważne jest, aby pamięć podręczna była jak największa, aby więcej danych się zmieściło i rzadziej zdarzało się cache mist.
Najważniejszymi parametrami funkcjonalnymi pamięci podręcznych są: pojemność i czas dostępu.
12. Wymień i omów zalety oraz wady podejścia warstwowego w procesie projektowania systemu.
W podejściu tym dzielimy system operacyjny na warstwy. Każda warstwa udostępnia warstwie powyżej pewien interfejs. Implementacja danej warstwy może korzystać z operacji udostępnianych przez warstwę poniżej. Zwykle część operacji udostępnianych przez daną warstwę polega na wywoływaniu operacji niższej warstwy, a część jest zaimplementowanych w danej warstwie. Sprzęt możemy traktować jako warstwę najniższą, a środowisko pracy użytkownika, jako interfejs warstwy najwyższej. Pewną wadą podejścia warstwowego jest zmniejszona efektywność wywoływania operacji implementowanych przez niższe warstwy, wynikająca z przekazywania wywołania operacji między kolejnymi warstwami.
• Przy lepszym sprzęcie można podzielić system na mniejsze, lepiej dobrane fragmenty
• System taki ma większa kontrole nad komputerem i programami użytkownika
• Warstwa N może korzystać tylko z usług warstw niższych
• Nie jest istotne jak usługi warstw niższych są faktycznie realizowane
• Łatwiej się taki system projektuje, zmienia, rozwija, testuje