Opracowanie zadań testowych i otwartych z kolokwiów i

Transkrypt

Opracowanie zadań testowych i otwartych z kolokwiów i
Opracowanie zadań testowych i otwartych
z kolokwiów i egzaminów z przedmiotu SOI, prowadzący WBD
opracowanie z dnia 28.09.2009r. Autor: [email protected]
Znaczna część pytań pochodzi ze znanych już opracowań, ale w miarę możliwości starałem się dodać do niektórych pytań dodatkowe
komentarze ułatwiające zrozumienie dlaczego ta a nie inna odpowiedź została zaznaczona.
Życzę miłej nauki i powodzenia na egzaminie!
1. Użycie przerwań systemowych jest niezbędne:
• w systemach wieloprogramowych
• w systemach współbieżnych
• w systemach wielodostępnych(100% i tylko ten, ale ktoś mógł by to jeszcze potwierdzić)
• w systemach czasu rzeczywistego
2. Zasobami sprzętowymi systemu komputerowego są:
• czas procesora
• pamięć wirtualna
• pamięć operacyjna
• okna na ekranie
• urządzenia zewnętrzne
• inne urządzenia widoczne przez sieć teleinformatyczną
3. Zasobami programowymi systemu komputerowego są:
• bufory
• semafory
• pamięć operacyjna
• pamięć wirtualna
• procedury realizujące funkcje systemowe
• pliki
Od TJ Kruka ze slajdów: „zasoby programowe to: pliki, bufory, semafory, tablice systemowe”
4. System jednoprogramowy to taki, który z zasady:
• pozwala przechowywać tylko jeden program w pamięci masowej
• pozwala przechowywać tylko jeden program w pamięci operacyjnej
• wymaga relokacji
• wymaga relokacji statycznej (raczej nie, bo programy od razu mogą być pisane z adresami jakie będą
rzeczywiście użyte w pamięci)
• nie pozwala usuwać programu z pamięci(używa pamięci stałej)
• jest uruchamiany na komputerze jednoprocesorowym
5. Typowy zbiór segmentów programu obejmuje:
• segment kodu programu
• segment tabel indeksowych stron
• segment danych
• segment rejestrów procesora
• segment stosu
6. Wątki w systemie operacyjnym:
• współdzielą cały kontekst
• współdzielą kontekst z wyjątkiem stosu
• współdzielą kontekst z wyjątkiem rejestrów i stosu
7. System wielodostępny to taki, który z zasady:
• wymaga podziału czasu pracy procesora ( 100% prawidłowe, a niby jak inaczej obsługiwać kilku
użytkowników)
• wymaga użycia przerwań zegarowych (100% potwierdzone)
• musi być wielowątkowy(ciężko powiedzieć? - nie musi być, aplikacje nie muszę być wielowątkowe, a mogą
pochodzić od wielu użytkowników)
• pozwala wielu procesom pracować rzeczywiście jednocześnie
• musi być współbieżny (odp. Potwierdzona przez WBD)
8. W skład kontekstu procesu wchodzą:
• rejestry procesora
• rejestry urządzeń zewnętrznych
• kod i dane
• deskryptor procesu
zawartość pliku zawierającego program
Kontekst procesu to jego środowisko operacyjne. Obejmuje ono zawartość rejestrów ogólnych i sterujących
procesora w szczególności: licznik rozkazów (PC), wskaźnik wierzchołka stosu(SP), słowo stanu procesora,
rejestry zarządzania pamięcią(dostęp do kodu i danych)
9. Mechanizmy sprzętowe niezbędne do stronicowania to:
• translacja adresu, tabele indeksowe stron, bit użycia strony, przerwanie „błąd ramki”
• translacja adresu, tabele indeksowe stron, przerwanie „błąd ramki”
• translacja adresu, tabele indeksowe stron, bit użycia strony, przerwanie „błąd ramki”, pamięć asocjacyjna
• translacja adresu, tabele indeksowe stron, przerwanie „błąd ramki”, pamięć asocjacyjna, procedura ładująca
strony do pamięci
10. Mechanizmy sprzętowe wspomagające stronicowanie (ale nie niezbędne do stronicowania) to:
• bity użycia i modyfikacji strony, pamięć asocjacyjna, wielopoziomowe tablice indeksowe stron
• bity użycia i modyfikacji strony, pamięć asocjacyjna, tablice indeksowe stron
• bity użycia i modyfikacji strony, pamięć asocjacyjna, wielopoziomowe tablice indeksowe stron, procedura
ładująca strony do pamięci
11. Semafor ogólny jest:
• jest zmienną współdzieloną
• może przyjmować wartości tylko niezerowe (może mieć wartość zero i większe całkowite)
• wykonuje się na nim tylko operacje niepodzielne
• wymaga stosowania aktywnej fazy oczekiwania (semafor jest dokładnie po to żeby nie stosować aktywnej fazy
oczekiwania)
12. System przechodzi ze stanu „użytkownik” do stanu „system” w wyniku:
• przerwania programowego wykonującego funkcję systemową
• zawieszenie procesu
• pułapki debbugera
• przerwania sprzętowego
13. System wieloprogramowy:
• pozwala przechowywać wiele programów w pamięci masowej (raczej dzięki temu, że jest wiele programów w
pamięci masowej to system może być wieloprogramowy, a nie odwrotnie)
• pozwala przechowywać wiele programów w pamięci operacyjnej
• wymaga relokacji dynamicznej
• wymaga relokacji statycznej
• pozwala uruchomić tylko jeden program po drugim
• pozwala pracować więcej niż jednemu programowi jednocześnie
14. Relokacja statyczna:
• pozwala zlikwidować fragmentacje zewnętrzną
• wymaga wsparcia sprzętowego w postaci rejestru bazy
• wymaga wsparcia sprzętowego w postaci rejestru limitu
• wymaga zaadresowania odwołań względnych w czasie ładowania programu do pamięci
WBD slajdy: „Relokacja statyczna – dodawanie rejestru bazy w czasie ładowania do pamięci”
15. System operacyjny pełni w systemie komputerowym role:
• zarządzania zasobami systemu komputerowego
• zarządza relacyjnymi bazami
• tworzenie abstrakcji
• kompilacja i uruchamianie programów
• tworzenie środowiska współdzielonego
16. W skład środowiska w którym realizowany jest proces:
• przestrzeń adresowa
• zawartość rejestrów
• zawartość jednostki zarządzania pamięcią
• otwarte pliki
• zawartość rejestru zgłoszeń przerwań
• zbiór zmiennych środowiska
17. Użycie przerwań zegarowych jest wymagane:
• w systemie wieloprogramowym (np. przetwarzanie wsadowe może pozwalać na przebywanie w pamięci wielu
programów a nie wymaga przerwań zegarowych)
• w systemie współbieżnym
• w systemie wielowątkowym
• w systemie czasu rzeczywistego (np. może być w takim systemie tylko jeden proces, więc nie potrzeba
•
przerwań zegarowych)
18. System współbieżny to taki, który z zasady:
• Jest uruchamiany na komputerze wieloprocesorowym
• Wymaga użycia przerwań zegarowych(sprawdzić)
• Musi być wieloprogramowy(nie, bo może być kilka wątków)
• Pozwala biec procesom / wątkom jednocześnie
• Pozwala biec procesom / wątkom jednocześnie lub pozornie jednocześnie
19. Klonowanie procesu operacją fork() powoduje:
• Powielanie segmentu kodu, danych i stosu
• Powielenie segment kodu, zainicjowanie nowych segmentów danych i stosu
• Powielenie segmentów danych i stosu
20. Wywołanie programu operacją exec() powoduje:
• Załadowanie z dysku segmentu kodu, powielenie segmentu danych procesu wywołującego
• Załadowanie z dysku segmentu kodu, powielenie segmentu danych i stosu procesu wywołującego
• Załadowanie z dysku segmentu kodu i danych, zainicjowanie nowego segmentu stosu
21. Mechanizm translacji adresu:
• Zestawia ze sobą numer ramki i numer strony
• Dodaje numer ramki do numeru strony
• Zestawia ze sobą numer ramki i przesunięcie na stronie
• Zestawia ze sobą numer strony i przesunięcie na stronie(delikatna różnica – numer strony to coś wirtualnego, a
adres odnosi się już do fizycznej pamięci)
22. Bity użycia i modyfikacji stron służą do:
• Wykrycia lokalności odwołań
• Zliczania odwołań w celu optymalizacji wymiany(WBD – to dobra odp, kiedyś służyły do zliczania )
• Wspomagania translacji adresu
• Stwierdzenia czy ramka jest pusta czy zawiera stronę(no chyba nie do końca o to chodzi)
23. Wielopoziomowe tabele indeksowe stron: (sprawdzić to dokładnie)
• Przyśpieszają translacje adresu
• Spowalniają translacje adresu
• Optymalizują czas ładowania tabel indeksowych stron (??)
• Optymalizują czas ściągania do pamięci brakujących stron (??)
24. Translacja adresu polega na:
• Zamianie adresu wirtualnego na fizyczny
• Zamianie adresu fizycznego na wirtualny
• Wykrywaniu zjawiska lokalności odwołań
• Generowania przerwania "błąd ramki", gdy strony nie ma w pamięci
25. Przy wielopoziomowych tabelach indeksowych stron:
• Zawartość elementu tabeli 1 poziomu jest dodawana do zawartości elementu tabeli 2 poziomu
• Zawartość elementu tabeli 1 poziomu jest indeksem tabeli 2 poziomu
• Zawartość elementu tabeli 1 poziomu wskazuje na tabelę 2 poziomu
• Zawartość elementu tabeli 1 poziomu jest zestawiania z zawartością elementu tabeli 2 poziomu
26. Przerwanie "błąd ramki" służy do:
• Ściągnięcia do pamięci żądanej strony (100% potwierdzone)
• Wykrycia próby zapisu poza przestrzenią adresową ramki
• Wykrycia próby dostępu z ramki nieprzydzielonej programowi
• Stwierdzeniu czy ramka jest pusta czy zawiera stronę (stwierdzenie tego powoduje powstanie przerwania „błąd
ramki”)
27. Algorytm "LRU" polega na:
• Wyrzuceniu z pamięci strony najrzadziej używanej
• Wyrzuceniu z pamięci strony najdawniej używanej
• Ściągnięciu do pamięci strony, która będzie najszybciej potrzebna
• Ściągnięciu do pamięci strony, która będzie najczęściej potrzebna
28. Fragmentacja wewnętrzna polega na:
• Nieciągłej alokacji plików na dysku
• Niewykorzystaniu przez program całości przydzielonej mu pamięci
• Podziale pamięci przydzielonej programowi na obszar danych i kodu
• Niewykorzystaniu bloków pamięci pomiędzy przydzielonymi blokami(tj. Zewnętrzna)
29. Mechanizm wymiatania polega na: (sprawdzić jeszcze)
• Wczytywaniu stron do pamięci operacyjnej i odsyłaniu ich na dysk
• Wczytywaniu segmentów do pamięci operacyjnej i odsyłaniu ich na dysk
• Przesuwaniu programów w pamięci w celu zlikwidowania fragmentacji
• Scaleniu sąsiadujących wolnych bloków pamięci
30. Proces może pojawić się w puli procesów podlegających szeregowaniu w wyniku:
• Uruchomienia nowego procesu
• Zakończenia operacji we/wy
• Wykonania operacji P na semaforze
• Wykonania operacji V na semaforze
31. Podział pamięci na bloki dowolnej wielkości:(sprawdzić jeszcze, bo chyba żadnej)
• Implikuje fragmentacje wewnętrzną
• Implikuje fragmentacje zewnętrzną
32. Algorytm cebuli:
• Powoduje fragmentacje wewnętrzną
• Powoduje fragmentacje zewnętrzną (to jeśli dobrze pamiętam WBD potwierdził)
33. Które z poniższych zdań są prawdziwe?
• Stronicowanie implikuje fragmentacje wewnętrzną(co do tego to też miałbym wątpliwości)
• Stronicowanie implikuje fragmentacje zewnętrzną
• Segmentacja implikuje fragmentacje wewnętrzną
• Segmentacja implikuje fragmentacje zewnętrzną
segmentacja jest czymś całkiem oddzielnym od podziału pamięci
34. Fragmentacja zewnętrzna jest wywoływana przez:
• Zmianę wielkości przydzielonych bloków (?? czy na pewno?)
• Podział bloków pamięci o dowolnej wielkości
• Podział bloków pamięci o skwantowanej wielkości
• Zwalnianie bloków pamięci w kolejności przydziału (szczególny przypadek tego co poniżej)
• Zwalnianie bloków w kolejności innej niż odwrotna do przydziału
35. Fragmentacji zewnętrznej można uniknąć przez:
• Przydział statycznych bloków pamięci o stałej wielkości
• Zastosowanie algorytmu cebuli(??)
• Zwalnianie bloków w kolejności przydziału
• Zwalnianie bloków w kolejności odwrotnej do przydziału(to jest jedyna opcja)
36. Relokacja dynamiczna:
• Pozwala chwilowo zlikwidować fragmentację zewnętrzną
• Wymaga wsparcia sprzętowego w postaci rejestru bazy(obie sprawdzone)
• Wymaga wsparcia sprzętowego w postaci rejestru limitu
• Wymaga zaadresowania odwołań względnych w czasie ładowania programu do pamięci
37. Wykorzystanie instrukcji Badaj-i-Modyfikuj ( TestAndSet ) w synchronizacji:
• Wymaga od procesorów aktywnego oczekiwania
• Wymaga zorganizowania nieaktywnego oczekiwania
• Zatrzymuje procesor, jeżeli zostanie odczytane 0
38. Dwukrotne kolejne wykonanie w jednym procesie operacji V na opuszczonym semaforze:(inna wersja z sem bin)
• Nic nie zmienia (coś chyba jednak zmienia)
• Powoduje podniesienie semafora (a jak by były trzy oczekujące to i tak zostanie zamknięty sem)
• Zwiększa wartość semafora o 2 (wyjaśnienie, jeśli na semaforze były trzy procesy zawieszone to co? oczywiście że dalej jego wartość pozostanie zero, czyli nie zwiększy się o 2. Jest gdzieś wersja testu gdzie jest
napisane „Może zwiększyć wartość semafora o 2” wtedy jest to prawidłowa odpowiedź. Gdzieś na slajdach z
synchronizacji znalazłem (tytuł slajdu „Semafor II”) „... V – zwiększenie o 1 lub wznowienie zawieszonego
procesu.”)
• Jeżeli semafor pilnuje sekcji krytycznej to może doprowadzić do wpuszczenia do SK dwóch procesów(słow
„Jeżeli” jest kluczem)
• Podniesienie semafora, jeśli żaden proces nie był na nim zawieszony
39. Z definicji zakleszczenie to stan w którym:
• Dokładnie jeden proces oczekuje na spełnienie warunku, który nie może zostać spełniony
• Co najmniej dwa procesy oczekuje na spełnienie warunku, które nie mogą zostać spełnione
• Dowolna większa od zera liczba procesów oczekuje na spełnienie warunków, które nie mogą zostać
spełnione
40. Zmiennych warunkowych jest z definicji w monitorze:
• Jedna
• Dwie
Tyle ile jest różnych warunków kontynuacji procesów
Tyle ile jest różnych warunków kontynuacji procesów plus jedna służąca wzajemnego wykluczaniu(wzajemne
wykluczanie jest już z góry zrealizowane i nie potrzeba dodatkowej zmiennej dla niego)
41. Zasada bezpośredniego wznowienia oznacza że:
• Proces wznawiający traci region krytyczny
• Proces wznawiany otrzymuje SK po wyjściu procesu wznawiającego z niej
• Proces wznawiający ubiega się o region krytyczny tak jak procesy na wejściu monitora
42. Mikrojądro systemu operacyjnego pełni następującą rolę: (sprawdzić)
• Uruchamia programy
• Odbiera przerwania i skierowuje je do odpowiednich kierowców i innych warstw systemu
• Synchronizuje procesy
• Zlicza pewne zdarzenia systemowe potrzebne do rozliczenia użytkowników
• Szeregowanie procesów
Z wiki: „Funkcje mikojądra: zarządzanie wątkami, komunikacja międzyprocesowa, obsługa przerwań i
wyjątków”
43. Algorytm bliźniaków:
• Powoduje fragmentacje wewnętrzną
• Powoduje fragmentacje zewnętrzną
• Powoduje mniejszą fragmentacje od podziału na stałe bloki
44. W wieloprocesorowym systemie operacyjnym:
• Do zabezpieczenia mikrojądra przed równoczesnym wykonaniem jego procedur wystarczy blokowanie
przerwań
• Do zabezpieczenia mikrojądra przed równoczesnym wykonaniem jego procedur nie wystarczy
blokowanie przerwań
•
•
45 Zmienne warunkowe w monitorze:
• Pilnują dostępu do regionu krytycznego monitora
• Służą do zawieszania procesów, które nie mogą działać z powodu niespełnienia warunków ich
kontynuacji
• Służą do sprawdzania spełnienia warunków kontynuacji procesów
46. Połączenie stronicowania z segmentacją polega na:
• Podziale stron na segmenty
• Potraktowaniu segmentacji jako dodatkowego poziomu stronicowania
• Utożsamieniu segmentów ze stronami
• Generowaniu przerwania "błąd ramki", gdy ramka zawierająca stronę nie należy do bieżącego segmentu
47. Wymiatanie polega na:
• Wczytywaniu stron do pamięci operacyjnej i odsyłaniu ich na dysk
• Wczytywaniu segmentów do pamięci operacyjnej i odsyłaniu ich na dysk
• Przesuwaniu programów w pamięci w celu zlikwidowania fragmentacji
• Scalaniu sąsiadujących wolnych bloków pamięci
48. W mechanizmie wymiatania program powinien być załadowany do pamięci gdy:
• Zakończyła się transmisja danych na drukarkę
• Użytkownik nacisnął klawisz
• Warunek programowy kontynuacji programu został spełniony przez inny program
• Urządzenie na które czekał program zwolniło się
• Minęła godzina o której program miał zostać "obudzony"
49. Następujące relacje ważności procesów są właściwe w szeregowaniu procesów:
• Procesy konwersacyjne są ważniejsze od procesów uwarunkowanych czasowo
• Procesy konwersacyjne są ważniejsze od procesów realizujących transakcje bazy danych
• Procesy konwersacyjne są ważniejsze od procesów realizujących kompilacje programów
• Procesy realizujące kompilacje programów są ważniejsze od procesów obliczeniowych
• Procesy obliczeniowe są ważniejsze od procesów składujących zawartość dysku(backup)
uwarunkowane czasowo → konwersacyjne(chyba) → …(i tu nie wiem) → obliczeniowe
50. Wynik współpracy procesów współbieżnych:(sprawdzić)
• Jest zawsze deterministyczny
• Może być niedeterministyczny
• Może zależeć od sposobu szeregowania procesów(chyba też, ale nie jestem pewien – sprawdzić)
51. Optymalizacja dostępu do dysku polega na:
• Wstrzymania transmisji do czasu uzyskania kilku zgłoszeń, spośród których jest wybierane zgłoszenie, które
może zostać wykonane najszybciej
Wykonaniu operacji odczytu natychmiast, a operacji zapisu dopiero, gdy już nie będzie do wykonania żadnych
operacji odczytu
• Wyborze spośród kilku oczekujących transmisji takiej, przy której średni czas wykonania transmisji będzie
najmniejszy
52. Warstwa systemu plików pełni w systemie operacyjnym następującą rolę:
• Realizuje operacje otwarcia i zamknięcia pliku(100%)
• Realizuje usługi katalogowe w zakresie hierarchii plików dyskowych(100%)
• Zajmuje się uruchamianiem programów przechowywanych w plikach
• Kontroluje prawa dostępu do plików(atrybuty)(100%)
53. W systemach opartych o FAT element tabeli alokacji może mieć następujące wartości:
• wolny
• zajęty i ostatni w łańcuchu
• zajęty i nie ostatni w łańcuchu
• zablokowany do wyłącznego dostępu (na 100% nie)
• uszkodzony
WB Daszczuk slajdy: „pozycja FAT: wolna, zajęta i nie ostatnia, zajęta i ostatnia, zajęta i wskaźnik na kolejną,
zarezerwowana, uszkodzona” Wykład 7 – Pamięci Masowe slajd „Alokacja z listą połączeń II (w FAT)”
54. Fragmentacja występuje:
• Wewnętrzna przy stronicowaniu
• Zewnętrzna przy segmentacji (nie na 100% - podział na segmenty to trochę inny poziom abstrakcji)
• Wewnętrzna przy podziale na skwantowane bloki
• Zewnętrzna przy zwalnianiu bloków w kojelności innej niż odwrotna do przydziału
•
Teraz kilka, których treści nie znam do końca (niech dobrzy ludzie rozwiną to opracowanie)
55. Atrybuty są określone dla:
• Indywidualnie dla pliku
• Zbiorcze dla katalogów
• Zbiorcze dla grupy użytkowników
• Zbiorcze dla plików
56. Kierowcy urządzeń pełnią w systemie operacyjnym następującą rolę:
• realizują przydział urządzeń procesom (100% błędna odp – przydział jest realizowany przez system
operacyjny)
• zliczają transmisje w celu rozliczenia użytkowników (lub w celach statystycznych) (100% prawidłowe – WBD
„Jeśli nie one to kto to zliczy?” )
• synchronizują procesy z urządzeniami
• unifikują dostęp do urządzeń różnych typów
• śledzą stan urządzeń
• realizują elementarne transmisje wejścia/wyjścia
57. Maksymalna liczba plików w systemie plików FAT zależy od:
• rozmiaru tablicy FAT
• rozmiaru obszaru danych
Te są potwierdzone mogły być jeszcze jakieś inne prawidłowe
58. W systemie UNIX liczba plików jest ograniczona przez:
• wielkość tabeli I-nodów
• wielkość obszaru przeznaczonego na pliki
• wielkość jednosti alokacji
• liczbę bitów adresu dyskowego
• liczbę bitów pola opisującego wielkość plików
Co do wszystkich odpowiedzi nie jestem pewien, więc jak ktoś to sprawdzi to niech da znać.
59. Algorytm First-Fit wymaga:
• wolne bloki muszą byś uporządkowane(100% nieprawda – nie muszą być)
chyba żadna odpowiedź jakie były możliwe nie pasowała
60. Algorytm Worst-Fit wymaga:
• malejąca kolejność uporządkowania(100%)
• po odcięciu trzeba wsortować pozostały fragment(100%)
• od razu mamy wynik(100%)
• zmniejsza fragmantację wewnętrzną (100% - został zaprojektowany do tego)
61. Atrybuty w systemie Unix są w tablicy I-nodów (gdzieś to miałem zanotowane, że było o to pytanie dlatego
wstawiam)
62. System przerwań zawiera:
• zbiorczą maskę przerwań
• rejestr zgłoszeń
• układ priorytetów (dekoder)
63. Migotanie(szamotanie) stron jest to:
• Naprzemienne wczytywanie i wymiatanie stron(100% nie)
• Wczytywanie strony, która to dopiero została wyrzucona
64. Po wykonaniu moun(/dev/hd5 , /usr/x/bin/hd5 ) do pliku /usr/z/a można się dostać przez:
• /usr/x/bin/dev/hd5/usr/z/a (jak będzie ktoś tak miły i sprawdzi w tym pytaniu, która odp. jest dobra)
• /usr/x/bin/hd5/usr/z/a
• /usr/x/bin/hd5/z/a
• /dev/hd5/usr/z/a
65. W systemie UNIX na dysku znajdują się obszary:
• super block
• tabela I-nodów
• obszar katalogów
• dane plików
66. W systemie UNIX wielkość pliku ograniczona jest przez:
• wielkość I-nodów
• wielkość jednostki alokacji
• liczbę bitów adresu dyskowego
• liczbę bitów pola opisującego wielkość pliku
67. Warstwa zarządcy programów pełni w systemie operacyjnym następującą rolę:
• przejmuje wszystkie wywołania systemowe programów i skierowuje je do odpowiednich warstw
• zajmuje się uruchamianiem programów
• zajmuje się buforowaniem danych czytanych i pisanych z pamięci masowych
• zajmuje się gospodarką pamięcią operacyjną (przydział pamięci programom)
Nie znam jeszcze prawidłowej odpowiedzi na to pytanie.
68. W systemie UNIX nastepujące elementy są umieszczone w danych systemowych procesu
• tabela otwartych plików procesu
• zmienne środowiska
• wskaźnik bieżącego elementu w otwartych plikach
• bieżący katalog
To są moje propozycje odpowiedzi (takie zaznaczyłem na egzaminie).
69. Pojawiło się pytanie o algorytm Best-Fit – zestaw propozycji odpowiedzi jak w pytaniach o Worst-Fit i First-Fit.
70. Dwukrotne kolejne wykonanie w jednym procesie operacji P na podniesionym semaforze binarnym:
• Nic nie zmienia
• Powoduje opuszczenie semafora
• zmniejsza wartość semafora o 2 (niemożliwe bo to semafor binarny)
• Jeżeli semafor pilnuje sekcji krytycznej to może to prowadzić do zakleszczenia
71. Do kryteriów wymiatania zaliczamy:
• priorytet
• stan programu
• częstotliwość odwoływania się do segmentów
• analizę historii wykonania programu
Jest to na slajdach, jak będę robił update opracowania to zamieszczę wsio.
OTWARTE:
1. Co to jest proces i sekcja krytyczna?
Procesem nazywamy wykonujący się program wraz z jego środowiskiem
obliczeniowym. Proces stanowi podstawowy obiekt dynamiczny w systemie
operacyjnym.
Sekcja Krytyczna jest to fragment programu w którym występują instrukcje do zasobów dzielonych.
Instrukcje tworzące sekcje krytyczne muszą być poprzedzone i zakończone operacjami realizującymi
wzajemne wykluczanie. Warunki implementacji:
- w sekcji krytycznej może przebywać tylko jeden proces
- proces poza sekcją krytyczną nie może blokować do niej dostępu innym procesom
- każdy proces powinien doczekać się dostępu do SK w rozsądnym czasie
2. Funkcje systemu w zakresie zarządzania zasobami
- śledzenie zasobów systemu
- narzucanie strategii, która określa "konsumenta", rodzaj zasobu, moment przydziału i ilość zasobów
- przydział zasobów
- odzyskiwanie zasobów
3. Sytuacja w której jest tworzony nowy proces
- inicjowania systemu
- zlecenie użytkownika
- wywołania z programu
- uruchomienia zadania wsadowego
- przyjęcia przerwania
4. Cechy dobrego szeregowania
- sprawiedliwość - każdy kiedyś doczeka się (nie: każdemu po równo),
- zgodność z polityką - praca wedle założeń makroskopowych, uzyskanie określonego sposobu zachowania
się całego systemu,
- efektywność - polepszanie wykorzystania poszczególnych elementów systemu.
- (systemy interaktywne) minimalizacja czasu odpowiedzi
- (systemy interaktywne) proporcjonalność - każdy użytkownik jest traktowany nie gorzej od innych.
- (systemy czasu rzeczywistego) spełnianie wymagań - spełnianie ograniczeń czasowych (twardych lub miękkich),
- (systemy czasu rzeczywistego) przewidywalność - zapewnione określone zachowanie makroskopowe, np. unikanie
spadku jakości w przekazie multimediów: muzyka, film itp.
- (systemy wsadowe) przepustowość - maksymalizacja liczby prac w czasie,
- (systemy wsadowe) czas w systemie - minimalizacja czasu przebywania pracy w systemie
- (systemy wsadowe) optymalizacja wykorzystania procesora - minimalizacja przerw w pracy procesora
5. Jakie elementy są niezbędne, a jakie wspomagają stronicowanie
Niezbędne:
- obsługa przez system przerwania "chybienie strony" ( page fault ), sygnalizującego brak w pamięci strony
do której usiłowano się odwołać
- mechanizm translacji adresów
- podział pamięci na ramki, a programu na strony
Wspomagające:
- bity odwołań i protekcji
- pamięć asocjacyjna
- wielopoziomowe tabele indeksowe stron
- przerwanie przy zapisie
6. Stany w jakich mogą znajdować się wątki / procesy:
- aktywny - program aktualnie wykonywany
- wstrzymany - nie może wykonywać pracy do momentu wystąpienia jakiegoś zdarzenia
- gotowy - gotowy do wykonania, ale wstrzymany w oczekiwaniu na czas procesora
7. Co to jest System operacyjny?
System operacyjny jest to zbiór programów i procedur spełniających dwie podstawowe funkcje:
- zarządzanie zasobami systemu komputerowego,
- tworzenie maszyny wirtualnej.
Zasobem systemu nazywamy każdy jego element sprzętowy lub programowy, który może być przydzielony
programowi(procesowi)
8. Co to jest semafor?
Semafor jest to zmienna nieujemna współdzielona, na której możliwe jest wykonanie dwóch niepodzielnych operacji
- P – opuszczenie semafora
- V – podniesienie semafora, bądź wpuszczenie kolejnego procesu za semafor
9. Jakie mamy tryby przetwarzania w systemach operacyjnych?
– wsadowy
– interaktywny
– czasu rzeczywistego
10. Podać klasyfikację metod szeregowania procesów. Scharakteryzować jednym zdaniem każdą metodę.
Ze względu na wywłaszczanie:
- pobłażające (ang. nonpreemptive scheduling) – decyzja szeregująca podejmowana przy najbliższej okazji
(wynikającej z innych cech metody szeregowania, np. wyczerpania się przyznanego czasu)
- z wywłaszczaniem (ang. preemptive scheduling) – decyzja szeregująca podejmowana natychmiast po zmianie
warunków szeregowania (np. pojawienie się nowego procesu, zmiana priorytetu).
Ze względu na „ważność” procesów:
- bez-priorytetowe – najpierw ważność procesu ustalona przy pomocy liczby:
- składowa statyczna - przyznana na stałe lub na długi okres czasu
- składowa dynamiczna - przyznana chwilowo na podstawie zachowania się procesu i warunków środowiska
- priorytetowe - procesy traktowane jednakowo, każdy proces może być pierwszy (ale który będzie - może wynikać z
zasad sprawiedliwości).
Ze względu na przydział czasu:
- ograniczające czas – zmiana wykonywania procesu co przerwanie zegarowe (może być również co któreś przerwanie)
- nie ograniczające czasu – brak ograniczeń czasowych przy wykonywaniu procesów
11. Narysować graf stanów procesu korzystającego z monitora chroniącego sekcję krytyczną
Na razie nie zamieszczam rysunku – można go spokojnie znaleźć w slajdach, albo innych opracowaniach
12. Wymienić i scharakteryzować metody podziału pamięci operacyjnej.
- brak podziału, cała przestrzeń adresowa wolna w danej chwili jest przydzielana jednemu procesowi użytkowemu
(DOS). Wieloprogramowanie można realizować np. przez wymiatanie (ang. swapping);
- statyczny podział pamięci na bloki, wolna przestrzeń adresowa jest na stałe podzielona na części przydzielane
poszczególnym procesom użytkowym, bloki mogą być jednakowej wielkości lub różnej; powinniśmy dobrze znać
wielkość uruchamianych programów; wykorzystana również w stronicowaniu;
- podział dynamiczny, przydzielanie według potrzeb.
cele:
- lepsze wykorzystanie elementów sprzętowych systemu, głównie procesora i pamięci,
- utrzymanie w pamięci programów wielokrotnie ładowanych,
- umożliwienie szybkiego przełączania kontekstu
13. Wymienić funkcje spełniane przez mikrojądro systemu operacyjnego.
- zarządzanie wątkami,
- komunikacja międzyprocesowa
- obsługa przerwań i wyjątków
14. Wymienić i scharakteryzować metody szeregowania procesów
- FCFS, kolejka FIFO, (ang. First-Come First-Served), „sprawiedliwość” – ten który przyjdzie jako pierwszy jest
obsługiwany jako pierwszy i tak dalej
- SJF, najszybciej najkrótsza praca (ang. Shortest Job First), minimalizacja czasu przetwarzania pracy – najpierw
wykonywane procesy o najkrótszym czasie wykonania
- SRTN, (ang. Shortest Remaining Time Next ) ), minimalizacja czasu przetwarzania pracy – jeżeli w systemie pojawi
się proces którego wykonanie zajmuje mniej czasu niż obecnie wykonywanego procesu proces wykonywany jest wtedy
wywłaszczony
15. Wymienić i scharakteryzować metody przydziału wolnych bloków pamięci operacyjnej
- pierwsza zgodność (ang. First Fit), wybór pierwszego pasującego bloku, lista nieuporządkowana, konieczność
przejrzenia średnio 1/2 listy ale szybkie zwalnianie.
- następna zgodność (ang. Next Fit), j.w., ale zaczynamy od miejsca gdzie ostatnio zakończono przeszukiwanie:
nie tworzy się długa lista małych bloków na początku.
- najlepsza zgodność (ang. Best Fit), wybór najmniejszego wystarczającego bloku: lista uporządkowana rosnąco,
potencjalnie krótsze szukanie, konieczność sortowania pozostałej części, sortowanie przy zwalnianiu.
- najgorsza zgodność (ang. Worst Fit), wybór największego bloku: unikanie małych resztówek (zmniejszenie
fragmentacji zewnętrznej), lista uporządkowana malejąco, nie trzeba szukać, konieczność sortowania pozostałej części,
sortowanie przy zwalnianiu.
- algorytm bliźniaków (ang. Buddies), podział pamięci w stały stosunku (np. 1:1, 1:2,) na dwa bliźniacze bloki aż
do uzyskania bloku o minimalnej długości spełniającej zapotrzebowanie.
- algorytm cebuli (ang. Onion), przydział segmentów kodu i danych po przeciwnych stronach dostępnej pamięci.
16. Wymienić kryteria wymiatania segmentów z pamięci i kryteria ich powrotu do pamięci.
- Otoczenie: ilość pamięci operacyjnej, cechy procesów oczekujących na powrót
- Cechy wymagań pamięciowych programu:wielkość segmentów prywatnych, wielkość segmentów współdzielonych
- Cechy segmentów: segmenty kodu/danych, segmenty prywatne/współdzielone
- Cechy programu: czy komplet segmentów w pamięci
- Cechy procesu: stan wejścia/wyjścia, stan, składowa dynamiczna priorytetu
- Historia wykonania: gęstość wejścia/wyjścia, historia wymiatania, historia rozszerzeń dostępnej pamięci, czas
przebywania w pamięci
17. Wymień algorytmy wymiany stron.
- algorytm optymalny,
- algorytm NRU (ang. Not recently used) (bity R I M),
- algorytm FIFO,
- algorytm drugiej szansy,
- algorytm zegarowy,
- algorytm LRU (ang. Least recently used).
- algorytm LFU (ang. Least frequently used).
18. Podaj funkcje kierowcy urządzeń zewnętrznych.
- realizacja elementarnych transmisji wejścia/wyjścia lub ciągów transmisji,
- ukrycie cech specyficznych dla urządzenia, unifikacja dostępu do urządzenia i nazewnictwa urządzeń,
- nadanie urządzeniu cech wirtualnych,
- organizacja dostępu do urządzenia,
- synchronizacja procesów z urządzeniem,
- buforowanie, rozsynchronizowanie oprogramowania i urządzenia,
- śledzenie stanu urządzenia, reakcja na sytuacje alarmowe,
- optymalizacja dostępu do urządzenia.
- zliczenia statystyczne
19. Dane opisywane przez deskryptor procesu:
- dane opisujące czym proces różni się od innych procesów,
- dane pozwalające przerwać i wznowić wykonanie procesu,
- relacje z innymi procesami (synchronizacja, hierarchia),
- buchalteria,
- status i szeregowanie.
20. Zakończenie pracy procesu może być rezultatem:
- zakończenia działania programu, potwierdzonego odpowiednim wywołaniem systemowym,
- stwierdzenia przez program wystąpienia błędu krytycznego (również odpowiednie wywołanie systemowe),
- wykonania niedozwolonej operacji (zakończenie wymuszone), zazwyczaj wykonywane jako wywołanie sytuacji
wyjątkowej w której proces wywołuje system jak poprzednio,
- żądania innego procesu (zakończenie wymuszone, realizowane jak wyżej)
Co do zadania z synchronizacji – LEKTURA OBOWIĄZKOWA ZBIÓR ZADAŃ WEISSA!!!!!!!!!
Dotychczasowe zadania jakie się pojawiły to:
Kolokwium(na semaforach): 1) zwężony odcinek drogi z przepuszczaniem do pięciu samochodów jeśli ktoś czeka z
przeciwka i na zwężonym odcinku mieści się dwa samochody jeden za drugim(prawie identyczne zadanie było w
Weissie) 2) skrzyżowanie z ruchem samochodów (podpowiedź trzeba użyć semafora binarnego dwupriorytetowego)
Egzamin(na monitorach): 1) bufor znakowy cykliczny o pojemności M, są pisarze którzy piszą po jednym słowie do
bufora(słowa oddzielone spacjami) jeśli jest miejsce na to słowo w buforze. Czytelnicy mają parametr jak długie słowo
mogą przeczytać. Jeśli nie mogą to mają być zawieszeni aż do momentu kiedy na końcu bufora będzie słowo o długości
możliwej do skonsumowania przez proces. (Podpowiedź – trzeba użyć tablicy zmiennych warunkowych)
2) zaprojektować algorytm windy do obsługi żądań transmisji na dysku twardym (dysk to ciąg sektorów od 0 do N),
argumentem żądania transmisji jest numer sektora. (Podpowiedź – trzeba użyć niestandardowej konstrukcji zmiennych
warunkowych priorytetowych – użycie i przykład są w Weissie) 3) rozwiązać problem Palaczy i Papierosów (albo jakoś
tak) w skrócie to problem Pięciu Filozofów tylko zamiast pięciu jest ich trzech, ale za każdym może stać kolejka chcąca
dostać się do zasobu.