Zadania egzaminacyjne SO docx

Politechnika Krakowska im. Tadeusza Kościuszki

Wydział Fizyki, Matematyki i Informatyki

Systemy Operacyjne

dr inż. Stanisława Plichta

Przykładowe pytania i odpowiedzi do zadań egzaminacyjnych.

  1. Co to jest utykanie procesora i jak temu zapobiegać?

Jest to oczekiwanie procesora na nadejście danych do wykonywanego polecenia. Sytuację poprawia bufor z szybkiej pamięci zwany pamięcią podręczną albo cache.

  1. Prawa kopiowania i kontroli?

Prawo kopiowania (oznaczamy *): umożliwia skopiowanie prawa dostępu w obrębie kolumny, dla której zostało zdefiniowane. Istnieją dwa warianty:

-przekazywanie (prawo jest kopiowane z pola do innego pola i usuwane z poprzedniego miejsca pobytu)

- ograniczone kopiowanie (Prawo R* jest kopiowane i wynikiem takiej operacji jest R (nie R*). Proces działający w następnej domenie ma prawo R i nie może dalej kopiować prawa R.) Prawo kontroli:

-zmiana elementów w wierszach macierzy dostępów (jedynie dla obiektów - domen)

-proces działający w domenie D2 może zmienić domenę D4

  1. Porównanie linków twardych i symbolicznych w tabelce?

Cecha

Link Twardy

Link Symboliczny

Ilość dowiązań pliku

Zwiększa

Nie zwiększa

Działanie

Twardy link wskazuje na konkretny obszar dysku

Odwołuje się do ścieżki i nazwy pliku

Zastosowanie

Pliki zwykłe

Wszystkie rodzaje plików i katalogi (nawet nieistniejące)

Zakres działania (system plikowy)

tylko w obrębie tego samego systemu plikowego

W różnych systemach plikowych

Nr i-węzła

Ten samo co plik

nowy

Wielkość pliku

Taka jak plik

Taka jak długość nazwy pliku

Typ pliku

Taki jak plik

- l

  1. Jakie informacje zawiera katalog w FAT?

Nazwa zbioru, czas i data utworzenia zbioru, czas i data ostatniego dostępu, numer pozycji zbioru w tablicy FAT, Długość zbioru

  1. Jakie informacje zawiera katalog w Ext?

Numer i-węzła (2 bajty), nazwa pliku (14 bajtów).

  1. Obliczyć liczbę braku stron - LRU?

Algorytm LRU (Least Recently Used). Ciąg odniesień: 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 Działanie (przy trzech ramkach) :

7

7 0

7 0 1

2 0 1

2 0 3

4 0 3

itd.

Ofiarą jest strona, która nie była używana od najdłuższego czasu. Jest to algorytm przybliżający algorytm optymalny.

  1. Obliczyć średni czas oczekiwania – alg. SJF?

patrz 31.

  1. Różnice w sposobach synchronizacji: semafory i strukturalne metody synchronizacji? Monitory. Stosując semafory można popełnić szereg błędów programistycznych: zapomnieć o podniesieniu czy opuszczeniu semafora, pomylić semafory, czy np. pomylić operacje P i V. W przypadku monitorów odpowiednie instrukcje synchronizujące są realizowane przez język programowania.

Konstrukcja monitora zapewnia, że tylko jeden proces na raz może znajdować się w monitorze. Pozostałe procesy oczekują w kolejce (FIFO). Jeśli jakiś proces chce wejść do monitora, który jest właśnie zajęty, to jest on wstawiany na koniec kolejki procesów oczekujących na wejście do monitora. Jeśli proces opuszcza monitor, a inne procesy czekają w kolejce na wejście do monitora, to pierwszy proces z kolejki wchodzi do monitora.

Regiony Krytyczne.

  1. Sprzętowe mechanizmy ochrony pamięci operacyjnej?

Ochrona wektora przerwań, ochrona procedur obsługi przerwań, oddzielenie obszaru pamięci programów

  1. Problem zgodności pamięci podręcznej?

Jest to chwilowy brak zgodności pomiędzy zawartością wiersza pamięci operacyjnej, a jego kopią w pamięci podręcznej. Występuje gdy w wyniku zapisu przez CPU zmienia się zawartość jej pamięci podręcznej. Problem w środowisku wieloprocesorowym (cache coherency)

  1. Buforowanie a spooling? Buforowanie:

Zrównoleglenie we/wy w pojedynczej maszynie. Metoda jednoczesnego wykonywania obliczeń i wejścia-wyjścia dla jednego zadania:

WE BUFOR CPU BUFOR WY

Spooling:

Przenoszenie danych do szybszej pamięci zewnętrznej. Zastosowanie bufora do przechowywania danych dla urządzeń, które nie dopuszczają przeplatania danych w ich strumieniach. NP :drukarka

Metoda jednoczesnego wykonywania wejścia-wyjścia jednego zadania i obliczeń dla innego zadania.

WE DYSK CPU DYSK WY

12. Jaki ciąg poleceń jest powodowany przez brak strony?

  1. Odniesienie

  2. Pułapka (brak strony w tablicy stron)

  3. SO sprawdza, czy strona jest w pamięci pomocniczej

  4. Sprowadzenie brakującej strony

  5. Odnowienie tablicy stron

  6. Wznowienie wykonania

  1. Jakie metody przydziału miejsca na dysku są odpowiednie dla dostępu bezpośredniego? System plików zwartych (również dostęp sekwencyjny), mapa plików, bloki indeksów

  1. W jakich metodach przydziału miejsca na dysku nie występuje fragmentacja zewnętrzna? Łańcuch powiązanych bloków, bloki indeksów

  1. Co to jest i do czego służy blok kontrolny systemu?

PCB – (Process Control Block) Zestaw informacji o stanie procesu. Znajduje zastosowanie przy przywracaniu procesu i usuwaniu go z procesora. Zawiera:  Stan procesu

  1. Wymień niewywłaszczające algorytmy planowania?

FCFS (First Come First Served - FIFO), SJF (Shortest Job First)

  1. Implementacja operacji semaforowej wait (z obsługą kolejek procesora)? C(s) – wartość początkowa semafora s, C(s)>=0 ns(s)- liczba wykonań operacji V (signal) na s nw(s) liczba wywołań operacji P (wait) na s

np(s) liczba przejść przez operacje P (wait) na s (procesy kontynuowały pracę po P) wait(s), P(s):

nw(s):=nw(s) + 1; if nw(s)<= C(s)+ns(s) then np(s):=np(s)+1

Wykonanie operacji P nie pociąga za sobą zawieszenia procesu, o ile liczba wykonań tej operacji nie jest większa nią liczba wykonań operacji V zwiększona o wartość początkowa semafora.

signal(s) V(s): if nw(s) > C(s)+ns(s) then np(s):=np(s)+1; ns(s):=ns(s) + 1;

W wyniku działania operacji V jeden proces jest reaktywowany (o ile taki był).

18. Różnice między: blokującym, nieblokującym i asynchronicznym we/wy?

Zachodzenie na siebie operacji we/wy i obliczeń – aplikacja wielowątkowa

  1. Zasada wiedzy koniecznej?

Zasada wiedzy koniecznej (need to know): Proces p wywołuje procedurę A - procedura A ma dostęp jedynie do swoich zmiennych i przekazanych do niej parametrów, a nie do wszystkich zmiennych procesu p.

  1. Na czym polega wyższość RAID5 nad RAID3?

Równomierne obciążenie dysków, większa szybkość odczytu

  1. Jakie są strategie radzenia sobie z zakleszczeniami?

patrz 101

  1. Porównaj sposób zarządzania pamięcią w systemach Linux i Windows?

Windows

Linux

  • pamięć fizyczna (RAM),

  • pamięć wirtualna (przechowywana na dysku), automatycznie ustawia obsługę pamięci fizycznej - umożliwia użytkownikowi ręczną konfigurację pamięci wirtualnej lub może zrobić to automatycznie

  • dzięki takiemu narzędziu jak Miernik zasobów możliwa

  • podział pamięci fizycznej na ramki

  • podział pamięci wirtualnej na strony

  • rozwiązania sprzętowe

  • przydział pamięci fizycznej poszczególnym procesom, - odwzorowanie logicznej przestrzeni adresowej procesu na fizyczną przestrzeń adresową pamięci,

-ochrona zawartości pamięci,

jest kontrola zużycia zasobów

użytkownika, systemu oraz interfejsu graficznego - również dzięki Monitorowi systemu możliwa jest obserwacja aktualnego stanu zużycia

pamięci, podręcznej pamięci dysku, jądra systemu oraz systemu plików

- ma ikonę System, która informuje nas o pamięci wirtualnej i pamięci fizycznej komputera

  • współdzielenie obszarów pamięci przez różne procesy. - obsługuje pamięć wirtualną - wykorzystuje cześć dysku jako rozszerzenie fizycznej Pamięci - Jądro zapisuje zawartość nieużywanych bloków pamięci fizycznej na dysku, umożliwiając tym samym wykorzystanie ich do innych celów

  • Linux potrafi wykorzystywać zwykły plik na systemie plików lub oddzielną partycję jako obszar wymiany. - Linux pozwala używać kilku partycji/plików wymiany jednocześnie.

  1. Schematy przydziału ramek?

  1. Jak obniżyć aktywność stronicowania we wstępnej fazie procesu? Zastosować stronicowanie wstępne (prepaging).

  1. Jak się oblicza efektywny czas dostępu? EAT (Effective Access Time)=(1-p)·cd + p · x cd - czas dostępu do pamięci zwykłej x – narzut związany z przerwaniem braku strony p - prawdopodobieństwo braku strony

  1. Model zbioru roboczego?

Opiera się na założeniu, że program ma charakterystykę strefową(lokalność odwołań). Zbiór roboczy, to zbiór stron, do których nastąpiło odwołanie w ciągu ostatnich I instrukcji (np. I = 1000). Zbiór roboczy ma przybliżać strefę, w której znajduje się program. Dla każdej strony procesu utrzymujemy bit odwołania. Co ‘I’ instrukcji następuje zliczenie podniesionych bitów odwołania we wszystkich ramkach procesu i ich wyzerowanie. Liczba podniesionych bitów jest przybliżeniem rozmiaru zbioru roboczego. Znając wielkości zbiorów roboczych, możemy przydzielić procesom pamięć proporcjonalnie do wielkości ich zbiorów roboczych. Jeśli suma rozmiarów zbiorów roboczych wszystkich procesów jest większa niż rozmiar dostępnej pamięci, prawdopodobnie mamy do czynienia z szamotaniem. Należy wówczas wstrzymać jeden z procesów, aby nie pogarszać sytuacji. System przydziela ramki procesom wg rozmiarów ich zbiorów roboczych

  1. Rozszerzone prawa dostępu dla właściciela pliku? t: Powoduje utrzymanie w pamięci kodu programu nawet, jeśli proces, który z nich korzystał, już się zakończył.

Może to zmniejszyć obciążenie systemu.

s: ustawione dla plików binarnych powoduje, że procesy, które je wykonują mają takie same prawa, jak właściciel wykonywanego pliku.

  1. Omów architekturę klient - serwer? Struktura klient-serwer:

  1. Omówić RAID0 i RAID1?

RAID 0 - Dane są podzielone na bloki(najczęściej o rozmiarze 512 bajtów) pomiędzy wszystkie dyski. Jest to rozwiązanie tanie w implementacji, lecz nie oferuje bezpieczeństwa danych. Dane odczytywane są równolegle ze wszystkich dysków co zapewnia szybkość, lecz przy awarii jednego dysku nie jesteśmy w stanie odtworzyć danych.

RAID 1 – Zapis danych jest realizowany na dyskach połączonych w pary, dane na obu dyskach w każdej parze są identyczne. Zapewnia wysoki poziom bezpieczeństwa, lecz kosztem utraty połowy pojemności dysku.

  1. Omów semafor oraz operacje, które można na nim wykonać?

Semafory służą do synchronizacji procesów. Pozwalają na czasowe zabezpieczenie jakiegoś zasobu przed innymi procesami. Semafor jest to nieujemna zmienna całkowita, na której, z wyjątkiem nadawania wartości początkowych, mogą działać jedynie operacje czekaj i sygnalizuj.

Operacja czekaj powoduje zmniejszenie wartości semafora o 1, pod warunkiem, że nie ma on wartości 0. Jest to operacja niepodzielna. Operacja czekaj może spowodować wstrzymanie jakiegoś procesu, ponieważ jeśli dotyczy ona semafora mającego wartość 0, to proces, którym ta operacja wystąpiła, będzie mógł być nadal wykonywany tylko wówczas, gdy inny proces zwiększy wartość semafora o 1 w wyniku operacji sygnalizuj.

Operacja sygnalizuj powoduje zwiększenie wartości semafora o 1 i zawsze jest możliwa do wykonania. Jest to również operacja niepodzielna.

(ogólnie o semaforach można lać wodę na 3 strony ale te informacje wydają mi się najrzetelniejsze)

  1. Omów algorytm SJF oraz policz średni czas oczekiwania dla algorytmów szeregowania zadań SJF i

FIFO dla procesów o czasach trwania faz wynoszących 7, 5, 2, 4 jednostki?

SJF jest algorytmem optymalnym ze względu na najkrótszy średni czas oczekiwania. W wersji z wywłaszczaniem, stosowana jest metoda: najpierw najkrótszy czas pracy pozostałej do wykonania. Problemem tego algorytmu jest głodzenie długich procesów - może się zdarzyć, że cały czas będą nadchodzić krótsze procesy, a wtedy proces dłuższy nigdy nie zostanie wykonany. Algorytm SJF jest optymalny, tzn. daje minimalny średni czas oczekiwania dla danego zbioru procesów.

SJF śr. czas oczek. = (0 + (0+2) + (0+2+4) + (0+2+4+5))/4 = (0+2+6+11)/4 = 19/4 = 4.75 FCFS śr. czas oczek. = (0 + (0+7) + (0+7+5) + (0+7+5+2))/4 = (0+7+12+14)/4 = 33/4 = 8.25

  1. Omów poziomy planowania procesów (zadania planistów)?

Poziomy planowania: planowanie długoterminowe, średnioterminowe i krótkoterminowe. Długoterminowe – planista kontroluje raz na kilka minut w razie potrzeby ładuje zadanie z pamięci pomocniczej do operacyjnej

Średnioterminowe – występuje wtedy jeżeli planista średnioterminowe usuwa jakiś proces z pamięci bo np. trzeba tej pamięci dla innych procesów a potem go przywraca

Krótkoterminowe – planista co 10-100ms kontroluje i wybiera, zgodnie z algorytmem, proces z pamięci operacyjnej do wykonania po bieżącym-aktywnym procesie (lub natychmiast w zależności od algorytmu.)

  1. Oblicz liczbę braków stron dla algorytmu FIFO dla 4 ramek, gdy ciąg odwołań do pamięci ma postać 501,503,103,205,200,210,100,501,302,320,201,210 przy założeniu że strona ma rozmiar 100B.

Możemy skrócić odwołania do postaci 5,5,1,2,2,2,1,5,3,3,2,2 , następnie zredukować powtarzające się po sobie odwołania do postaci 5 1 2 1 5 3 2. Daje to łącznie 4 braki stron.

Chwila

1

2

3

4

5

6

7

odwołanie

5

1

2

1

5

3

2

Ramka1

5

5

5

5

5

5

5

Ramka2

1

1

1

1

1

1

Ramka3

2

2

2

2

2

Ramka4

3

3

34.Prawa dostępu

WYKONANIE CZYNNOŚCI

PLIK

KATALOG

r w x

r w x

Wejście do katalogu komenda cd

- - -

- - x

Przeglądanie, jakie pliki znajdują się w katalogu komenda ls

- - -

r - -

Przeglądanie, jakie pliki znajdują się w katalogu i jakie mają atrybuty

komenda ls –l, ls –s, ls –F

- - -

r – x

Utworzenie nowego pliku

- - -

- w x

Zmiana nazwy pliku

- - -

- w x

Usunięcie pliku

- - -

- w x

Czytanie pliku

r - -

- - x

Zapis do pliku istniejącego

- w -

- - x

Wykonanie pliku binarnego

- - x

- - x

Wykonanie skryptu powłoki

r - x

- - x

R

oglądanie zawartości

pokazywanie plików z katalogu

W

zmiana,

usunięcie zawartości

dodawanie

elementu do katalogu

X

uruchomienie pliku

wykonywalnego

cd

D

usuwanie pliku

usuwanie katalogu

(pustego)

P

zmiana praw dostępu

zmiana praw dostępu

O

otrzymanie

własności

otrzymanie

własności

35. Co się dzieje z procesem po jego utworzeniu? (w jakich stanach przebywa, do jakich kolejek może trafić, kiedy może do nich zostać wrzucony, a kiedy wyciągnięty)?

Gdy nowoutworzony proces ma już wszystkie zasoby do dyspozycji (oprócz procesora)

1.Proces nowy może przejść jedynie do stanu gotowy. Dzieje się tak po przyjęciu go przez system.

2.Proces gotowy może przejść jedynie do stanu aktywny. Dzieje się tak, gdy planista przydzieli temu procesowi procesor.

3.Proces aktywny może przejść do jednego z trzech stanów:

4.Proces czekający może przejść jedynie do stanu gotowy. Dzieje się tak, gdy nastąpi oczekiwane przezeń zdarzenie lub ukończenie operacji wejścia-wyjścia. 5.Proces zakończony nie może już zmienić swojego stanu.

proces może wydać zamówienie na operację we/wy i następnie zostać umieszczony w kolejce procesów czekających na we/wy. Proces może utworzyć nowy proces i oczekiwać na jego zakończenie. Proces może zostać przymusowo usunięty z procesora w wyniku przerwania i przeniesiony z powrotem do kolejki procesów gotowych.

Stan procesu opisany w strukturze procesu, może przyjmować następujące wartości:

SIDL - stan pośredni podczas tworzenia procesu

SRUN – wykonywany

SSLEEP - oczekujący (na zdarzenie)

SSTOP - zawieszony (proces jest zatrzymany przez sygnał lub proces macierzysty)

SZOMB – stan pośredni podczas usuwania procesu

36. Omów metody przydziału miejsca na dysku, które Twoim zdaniem najlepiej nadają się do implementowania dostępu sekwencyjnego?

  1. System plików zwartych (przydział ciągły): cały plik zajmuje ciąg kolejnych bloków; odwołanie do pliku składa się z adresu bloku początkowego i rozmiaru pliku (ilość bloków w pliku). Własności:

-Efektywność dostępu (niewielkie ruchy głowic dysk.)

-Łatwa lokalizacja bloków pliku zarówno przy dostępie sekwencyjnym jak i swobodnym

-Problem fragmentacji zewnętrznej: po usuniętych plikach pozostają dziury, które trudno połączyć w jeden większy blok

-Umożliwia najbardziej elastyczną organizację danych – zniszczenie jednego bloku powoduje tylko lokalną utratę danych

  1. Łańcuch powiązanych bloków (przydział listowy): plik jest listą powiązanych bloków, dowolnie rozproszonych w dostępnej przestrzeni dyskowej; kilka ostatnich bajtów jednego bloku wskazuje na adres bloku kolejnego.

Bloków może być dowolna ilość. Własności:

-Nie ma fragmentacji zewnętrznej i wynikających z niej wad metody przydziału

-Dostęp do pliku jest z konieczności sekwencyjny

-Konieczność uzyskania dużej liczby dostępów do dysku, zanim znajdzie się koniec pliku

-Konieczność pamiętania wewnątrz bloku wskaźnika do bloku następnego

-Utrata jednego bloku pociąga za sobą stratę wszystkich następnych

  1. Omów odwzorowanie adresu przy użyciu stronicowania pamięci i segmentacji ?

Segmentacja - Przestrzeń adresów logicznych jest zbiorem segmentów. Każdy segment ma nazwę i długość. Użytkownik określa więc każdy adres poprzez nazwę segmentu i odległość. Odwzorowanie adresów polega zatem po prostu na dodawaniu adresu użytego w programie do adresu bazowego, w celu określenia adresu odpowiedniej komórki pamięci.

Stronicowanie - Każdy adres wygenerowany przez procesor dzieli się na dwie części: numer strony i odległość na stronie. Numer jest używany jako indeks w tablicy stron, która zawiera adresy bazowe wszystkich stron w pamięci operacyjnej. Łącząc adres bazowy z odległością na stronie uzyskuje się fizyczny adres w pamięci.

  1. Oblicz liczbę braków stron dla algorytmu LRU dla k-ramek dla ciągu odwołań do pamięci postaci 501, 505, 103, 205, 200, 210, 100, 501, 302?

Patrz zadanie 6

  1. Różnice pomiędzy EXT3 a FAT?

W systemie FAT32 ograniczenie co do pojedynczego pliku to 4GB wynika to z ograniczonej pojemności tablicy FAT. W systemie ext3 zależy od wielkości bloku dyskowego. W FAT32 pierwszy blok danych znajduję się we wpisie katalogowym, kolejne znajdują się w tablicy FAT. W ext3 wszystkie adresy znajdują się w i-węźle pliku.

40. Jakie dane pamiętane są w i-węźle a jakie w katalogu?

W i-węźle: ID właściciela, ID grupy, typ pliku, prawa dostępu, czas utworzenia, modyfikacji, ostatniego dostępu, liczbę dowiązań, liczba bloków dyskowych zajmowanych przez plik, adresy dyskowe W Katalogu: Nazwa pliku, nr i-węzła

  1. Co to jest szamotanie i jak zapobiegać?

Szamotanie to sytuacja gdy proces ma mniej ramek niż liczba aktywnie używanych stron i musi co chwile sprowadzać jedną ze stron usuwając inną, która za chwilę będzie niezbędna. Zapobieganie: zastosować lokalny lub priorytetowy algorytm zastępowania stron lub dostarczyć procesowi właściwą liczbę ramek – strategia tworzenia zbioru roboczego.

  1. Macierz praw?

Abstrakcja ochrony obiektów w systemie operacyjnym: macierz, której wiersze reprezentują domeny ochrony, a kolumny — chronione obiekty. Każdy element takiej macierzy zawiera zbiór praw dostępu, które proces działający w domenie Di może wykonać na obiekcie Oi

  1. Metody przydziału bloków w EXT3?

System plików zwartych (przydział ciągły), Łańcuch powiązanych bloków ( przydział listowy ), Bloki indeksów ( przydział indeksowy ext3 )

  1. Gdzie jest przechowywany adres pierwszego bloku i kolejne w FAT i EXT?

patrz 39

  1. Do czego służy struktura katalogowa?

Struktura katalogowa służy do odwzorowania faktycznego adresu pliku.

  1. We/Wy z blokowaniem i bez. Na czym to polega? patrz 18.

  1. Co to rekord fizyczny i rekord logiczny i problem zamiany rekordów logicznych na fizyczne?

Rekord fizyczny – (blok fizyczny) jednostka fizycznej pamięci dyskowej, wszystkie bloki są tego samego rozmiaru Rekord logiczny – logiczna jednostka informacja, pod część pliku

Problemem są różne rozmiary rekordów logicznych i fizycznych. Do rozwiązania tego problemu stosuje się bufor.

Pobierana jest większa porcja danych z pliku będąca wielokrotnością rozmiaru bloku dyskowego

  1. Przez co uzyskana jest optymalizacja zapisu danych?

Przez odpowiednie umiejscowienie obszaru wymiany dokładnie gdy korzystamy z osobnej strefy dyskowej (zarządca pamięci obszaru wymiany)

  1. Czego dotyczy adresacja w PAO a czego w pamięci pomocniczej?

PAO - adresowanie bezpośrednich rozkazów procesora

Pamięć pomocnicza - adresowanie informacji, danych(pliki, katalogi) znajdujących się trwale na nośniku

  1. Co się dzieje w przypadku błędu braku strony?

Błąd taki musi być obsłużony przez SO. SO sprawdza, czy błąd rzeczywiście jest spowodowany brakiem strony. Jeśli nie, to kończy działanie programu. Jeśli tak, to odszukuje adres brakującej strony w pamięci pomocniczej i sprowadza ją do wolnej ramki pamięci operacyjnej. Uaktualnia tablicę stron i wznawia działanie procesu.

  1. Sposoby realizacji domeny (ochrona)?

  1. Fragmentacja zewnętrzna?

Pojawia w trakcie działania aplikacji, gdy dochodzi do szeregu przydzielania i zwalniania bloków pamięci o różnej wielkości, skutkiem czego po pewnym czasie bloki wolne i zajęte są przemieszane. Przy chęci wstawienia nowego pliku, powstaje brak wolnych bloków w ciągu koło siebie, lecz dziury pomiędzy nimi w zupełności wystarczą na zapisanie pliku.

  1. Gdzie definiujemy aliasy?

Aliasy nie są przekazywane do powłok potomnych, istnieją jedynie w bieżącej powłoce, pamiętane są w pamięci operacyjnej . W bashu jest to plik .bashrc w TCSH .tcshrc. Polecenie alias wyświetla listę zdefiniowanych aliasów, definiuje nowe aliasy

  1. Algorytm Lamporta?

Inaczej algorytm piekarniany. Algorytm ten wykorzystuje się do rozwiązania problemu wzajemnego wykluczania. Z zagadnieniem tym mamy do czynienia na przykład, gdy dwa równolegle wykonywane procesy korzystają ze wspólnej pamięci

  1. Zasada wiedzy koniecznej?

patrz 19.

  1. Algorytmy planowania?

Planowanie metodą FCFS (first come first served) - NW

Najpierw najkrótsze zadanie (SJF shortest job first) NW W(SRTF)

Planowanie priorytetowe NW i W

Planowanie rotacyjne – (round-robin) W

Wielopoziomowy ze sprzężeniem zwrotnym

57. Algorytmy zamiany stron?

LRU - ofiarą staje się strona , która nie była używana przez najdłuższy okres, uzyskuje mniejszą ilość braków stron niż FIFO. Trudny w zaimplementowaniu, można zastosować dla strony pole znacznika czasu ostatniego dostępu do strony(ofiara to ta z najmniejszą wartością znacznika) lub skorzystać ze stosu, wolny od anomalii Belady’ego

FIFO - ofiarą staje się strona, która najdłużej przebywa w pamięci, gorszy niż LRU, nie jest wolny od anomalii

Belady’ego

Optymalny - ofiarą staje się strona, która przez najdłuższy okres będzie nieużywana – jest to algorytm teoretyczny, służy do oceny jakości innych algorytmów, nie da się go zaimplementować, gdyż nie da się przewidzieć przyszłym odwołań do pamięci, maksymalne obniżenie braków stron, wolny od anomalii Belady’ego

Algorytmy przybliżające LRU

Jedno z takich przybliżeń polega na skojarzeniu z każdą ramką bitu odwołania/odniesienia. Wstępnie wszystkie bity odwołania są równe 0. Przy każdym odwołaniu do strony odpowiadający jej bit jest ustawiany na 1.

Algorytm dodatkowych bitów odniesień

Algorytm drugiej szansy (zegarowy) - strony przeglądane są w porządku FIFO - sprawdzenie bitu odniesienia:

Algorytmy zliczające

  1. Algorytmy szeregowania, które są wywłaszczające, a które nie?

patrz 67.

  1. Sposoby komunikacji w linuxie?

  1. Sekcja krytyczna – problem zgodności pamięci podręcznej?

Pomiędzy pobraniem wartości X a ustawieniem jej na wartość true żaden inny proces nie ma dostępu do zmiennej X. Korzystając z funkcji TestAndSet możemy rozwiązać ten problem sekcji krytycznej: Sekcja wejściowa:

while TestAndSet (S) do;

Sekcja wyjściowa:

S:=false;

  1. Wypisz rodzaje SO i opisz jeden z nich? Rownoległe, rozproszone, czasu rzeczywistego

Czasu rzeczywistego – W systemie takim istnieją dobrze zdefiniowane i stałe ograniczenia czasowe. Przetwarzanie musi się zmieścić w tych ramach czasowych w przeciwnym wypadku system nie spełni wymagań. Zastosowano także szybkie pamięci ROM. Znajduje zastosowanie jako sterownik urządzenia o specjalnym przeznaczeniu. Łagodne systemy czasu rzeczywistego mają mniej napięte ograniczenia czasowe i nie zapewniają planowania w terminach nieprzekraczalnych. Przykładem łagodnego systemu jest LINUX.

  1. Jak deklaruje się zmienne w powłoce BASH i TCSH? [BASH] zmienna=3 (bez spacji)

[TCSH] set zmienna = 3

  1. Jak się inicjalizuje i inkrementuje zmienne w BASH i TCSH? [BASH] zmienna=$(($zmienna+1))

[TCSH] @ x++ (między @ a nazwa zmiennej spacja)

  1. Przełączanie kontekstu

Proces zachowywania i odtwarzania stanu procesora (kontekstu), by wiele procesów mogło dzielić zasoby pojedynczego procesora. Przełączanie kontekstu polega na przydzielaniu procesorowi kolejnych zadań i jest ważną cechą wielozadaniowego systemu operacyjnego. Z reguły przełączanie kontekstu jest zadaniem intensywnym obliczeniowo i wiele czasu przy projektowaniu systemów operacyjnych poświęca się na optymalizację tego zadania.

  1. Omów planistów?

Proces wędruje między różnymi kolejkami przez cały czas swego istnienia. System operacyjny musi w jakiś sposób wybierać procesy z tych kolejek. Selekcji dokonuje odpowiedni proces systemu zwany planistą. W systemie wsadowym często występuje więcej procesów niż można by ich wykonać. Procesy te są przechowywane w urządzeniach pamięci masowej (Dysk).

Planista długoterminowy (planista zadań) wybiera procesy z puli zadań przechowywanych w pamięci masowej i ładuje je do pamięci operacyjnej w celu wykonania.

Planista krótkoterminowy (planista przydziału procesora) wybiera jeden proces spośród procesów gotowych do wykonania i przydziela mu procesor.

Podstawową różnicą między obydwoma planistami jest częstość ich uaktywnień. Planista krótkoterminowy musi bardzo często wybierać nowy proces dla procesora. Częstość uruchamiania planisty krótkoterminowego jest rzędu milisekund, planisty długoterminowego – rzędu sekund. Planista długoterminowy działa o wiele rzadziej. Zadaniem planisty średnioterminowego jest usuwanie, wymiane (swapping) procesów między pamięcią operacyjną, a dyskiem w celu zmniejszenia stopnia wieloprogramowości.

Usunięte procesy wprowadza się później do pamięci i kontynuuje ich wykonanie od tych miejsc, w których je przerwano. Postępowanie takie jest często nazywane wymianą. Proces jest wymieniany, czyli wysyłany z pamięci operacyjnej do pamięci masowej i później wprowadzany do pamięci operacyjnej ponownie (przez planistę średnioterminowego).

Wymiana może być niezbędna do uzyskania lepszego doboru procesów lub wówczas, gdy żądania przydziału pamięci operacyjnej przekraczają jej bieżący obszar i wymagają zwolnienia miejsca w pamięci.

66. Wieloprogramowość a wielozadaniowość?

Wieloprogramowość

  1. Niewywłaszczające i wywłaszczające algorytmy planowania procesów?

Niewywłaszczające: FCFS (First Come First Served - FIFO), SJF (Shortest Job First) Wywłaszczające: planowanie rotacyjne (round robin), SJF

  1. Przy jakim algorytmie szeregowania jest problem głodzenia procesów, na czym polega i jak jemu zapobiec?

Problem głodzenia procesów występuje przy planowaniu priorytetowym. Polega na nieskończonym blokowaniu niskopriorytetowych procesów. Rozwiązaniem jest inkrementacja priorytetu o 1 co jakiś czas.

  1. Omów i porównaj stronicowanie z segmentacją?

Celem segmentacji jest logiczny podział przestrzeni adresów, podczas gdy celem stronicowania jest fizyczny podział pamięci, którą chcemy implementować jako pamięć na tym samym poziomie.

Strony mają ustalony rozmiar wynikający z architektury maszyny, podczas gdy rozmiar segmentów może być dowolny, określony przez programistę.

Podział adresu programu na numery strony i bajtu jest wykonywany środkami sprzętowymi, a przekroczenie zakresu dla numeru bajtu automatycznie powoduje zwiększenie numeru strony.

Podział adresu programu na numery segmentu i bajtu jest logiczny, a przekroczenie zakresu dla numeru bajtu nie ma żadnego wpływu na numer segmentu (przekroczenie zakresu dla numeru bajtu powoduje sygnalizację przekroczenia zakresu pamięci).

  1. Omów zarządzanie pamięcią w linuksie?

71. Zagrożenia systemowe i programowe.

Systemowe(wynikające z możliwości rozmnażania procesów) wirusy - rozchodzą się po innych programach siejąc spustoszenie fragment kodu osadzony w poprawnym programie systemy jednoużytkownikowe robaki

mechanizm rozmnażania - paraliżowanie działania systemu

1988r, Morris - robak internetowy, program haczący, program główny (rsh, finger, sendmail) kompletny program

programowe (używanie programów pisanych przez innych użytkowników) koń trojański (segment kodu nadużywający swojego środowiska np. w edytorze) zagrożenie - długie ścieżki dostępu,

program naśladujący login przechwytujący hasło

boczne wejście - pozostawienie luki w oprogramowaniu przez projektanta obchodzenie procedur bezpieczeństwa dla pewnego użytkownika oszustwa bankowe, kompilator

72. Omów RPC?

RPC (Remote Procedure Call - zdalne wywołanie procedury) to protokół zdalnego wywoływania procedur. Protokoły tego typu mają na celu ułatwienie komunikacji pomiędzy komputerami. Na typowy scenariusz użytkowania składają się:

Powyższe protokół sam zapewnia cały powyższy mechanizm, ukrywając go przed klientem. Może on nawet nie wiedzieć, że łączy się z innym komputerem - z punktu widzenia programisty zdalne wywołanie procedury serwera wygląda jak wywołanie dowolnej innej procedury z programu klienta.

73. Sposoby realizacji algorytmu wzajemnego wyłączania i jego wady w systemach rozproszonych?

Wyróżniony proces – koordynator (np. najwyższy adr. siec.). Proces wysyła do koordynatora zamówienie we. do SK. Jeśli SK wolna koordynator odsyła odp. OK

Zalety Zapewnia wzajemne wyłączanie Reguła sprawiedliwa: brak głodzenia, we. do SK w kolejności zamawiania

Wady: Koordynator - wąskie gardło; wrażliwość na uszkodzenia całego systemu

74. Omów algorytm deterministyczny przydziału procesora w systemie rozproszonym?

W informatyce, algorytm deterministyczny to algorytm, którego działanie jest całkowicie zdeterminowane przez warunki początkowe (wejście). Oznacza to, że uruchomienie kilkukrotne takiego algorytmu doprowadzi za każdym razem do takiego samego wyniku. Algorytmy deterministyczne stanowią główny obszar badań informatycznych i są najczęściej stosowane, ponieważ mogą być łatwo realizowane na współczesnych komputerach.

75. Architektura systemu NFS?

NFS - sieciowy system plików - umoz˙liwia dzielenie plików

(zasobów) z róz˙nych systemów operacyjnych (np. UNIX, DOS, VMS). NFS przyjmuje abstrakcyjny model systemu plików i odwzorowuje go w system lokalny, zalez˙ny od systemu operacyjnego. Wykorzystuje architekture klient-serwer.

76. Omów systemy plików EXT3 i FAT, Czy są jakieś ograniczenia co do wielkości pliku? Gdzie zapisany jest pierwszy blok danych pliku, a gdzie kolejne bloki?

W systemie FAT32 ograniczenie co do pojedynczego pliku to 4GB wynika to z ograniczonej pojemności tablicy

FAT. W systemie ext3 zależy od wielkości bloku dyskowego.

MIBD = 12 + n/4B + (n/4)^2 + (n/4)^3

MRP = MIBD * RB

MIBD – maksymalna ilość bloków dyskowych

RB – rozmiar bloku

MRP – maksymalny rozmiar pliku

W FAT32 pierwszy blok danych znajduję się we wpisie katalogowym, kolejne znajdują się w tablicy FAT. W ext3 wszystkie adresy znajdują się w i-węźle pliku.

77. Wymień rodzaje indeksowania wolnych obszarów?

  1. Wymień cechy planowania wielopoziomowego ze sprzężeniem zwrotnym?

patrz 56

  1. Jakie informacje podlegają transakcjom w NTFS?

W NTFS wszystkie zmiany na dysku organizowane są w transakcje, które wyglądają następująco:

  1. Zapis operacji w logu w pamięci

  2. Zmodyfikowanie woluminu w pamięci

  3. Zapis loga na dysk

  4. Zapis modyfikacji woluminu na dysk

Jak widać zmodyfikowanie pliku kroniki zawsze wyprzedza faktyczną modyfikację. W logu zapisywana jest też informacja o pomyślnym zakończeniu danej operacji. Okresowo do dziennika zapisywane są też punkty kontrolne. Kronikowaniu w NTFS podlegają tylko metadane (definiujące strukturę woluminu i prawa dostępu). Zwykłe dane nie są księgowane.

80. Wymień cztery sposoby implementowania macierzy dostępów? - Tablica globalna

  1. Zadania systemu operacyjnego?

    • zarządzanie procesami,

    • zarządzanie pamięcią operacyjną,

    • zarządzanie plikami,

    • zarządzanie systemem we/wy,

    • zarządzanie pamięcią pomocniczą,

    • planowanie prac,

    • ochrona zasobów,

    • umożliwienie wielodostępności,

    • udostępnienie dobrego sposobu komunikowania się z operatorem,

    • ewidencjonowanie zasobów komputerowych.

  1. Omów strukturę warstwową systemu operacyjnego?

Tworzenie systemu polega na podzieleniu go na moduły połączone w warstwy. Każda warstwa spełnia funkcje, które zależą tylko od warstwy znajdującej się pod spodem. Podział na moduły zmniejsza stopień wzajemnych zależności między różnymi składowymi systemu. Pozwala to uniknąć niepożądanych powiązań.

  1. Jakie polecenia zmieniają liczbę dowiązań do pliku?

ln – stworzenie linku twardego

rm – usunięcie pliku lub linku twardego do tego pliku

  1. Kiedy następuje zwolnienie bloków dyskowych zajmowanych przez plik? Gdy zostaną usunięte wszystkie dowiązania do pliku.

  1. Jakie prawa powinien posiadać plik aby można było go usunąć? Prawa dostępu nie mają znaczenia, aby usunąć plik, folder w którym się znajduje musi mieć prawa „w”.

  1. Lista rozkazów uprzywilejowanych?

Aby procesy współbieżne nie zakłócały się wzajemnie część listy rozkazów maszynowych jest zarezerwowana wyłącznie do użytku systemu operacyjnego. Te rozkazy uprzywilejowane powinny spełniać następujące zadania: włączanie i wyłączanie przerwań, przełączanie procesora od procesu do procesu, obsługiwanie rejestrów używanych przez sprzętową ochronę pamięci operacyjnej, wykonywanie operacji wejścia i wyjścia, zatrzymywanie procesora centralnego i sterowanie jego operacjami

  1. Co się dzieje podczas kasowania pliku?

Obszar na dysku zajmowany przez plik jest dodawany do listy wolnych obszarów

  1. Co się dzieje podczas tworzenia pliku?

System sprawdza czy lista wolnych obszarów zawiera wymagana ilość wolnego miejsca, jeśli tak, to przydziela miejsce na dysku.

  1. Co to jest proces?

Proces to ciąg czynności wykonywanych za pośrednictwem ciągu rozkazów, których wynikiem jest wykonywanie pewnych zadań. Aby móc przetrwać w komputerowym środowisku proces potrzebuje pewnych zasobów, do których należą m.in. pamięć, procesor, wszelkiego typu urządzenia zewnętrzne.

  1. Co to jest ekspedytor?

Ekspedytor to proces egzekwujący wyroki planisty krótkoterminowego. Przekazuje wybranemu procesowi władzę nad procesorem, co wymaga przełączenia kontekstu, przejścia w tryb użytkownika i wykonania skoku do instrukcji, którą teraz należy wykonać (np. do tej instrukcji, przed którą ów proces poprzednio wywłaszczono).

  1. Co zawiera ogólnosystemowa tablica otwartych plików, a co procesowa?

Procesowa – bieżący wskaźnik każdego pliku

Ogólnosystemowa – położenie pliku na dysku, daty dostępu, rozmiar pliku i licznik otwarć

  1. Realizacja domeny na UNIXie? (patrz 43)

94. Środowisko ulotne procesu?

Możemy zdefiniować jako podzbiór takich podlegających zmianom właściwości systemu, do których proces może mieć dostęp.

  1. Na czym polega anomalia Belady’ego?

Zjawisko polegające na tym, że przy zwiekszeniu ilości dostępnych ramek pamięci fizycznej liczba braków stron zamiast maleć – rośnie.

  1. Gdzie można umiejscowić obszar wymiany?

Dysk twardy, pamięć flash (USB) – generalnie szybka pamięć pomocnicza z możliwością zapisu i odczytu

  1. Jakich procesowych map wymiany używa jądro systemu UNIX?

Jądro systemu korzysta z dwu procesowych map wymiany (swap maps):

Mapa wymiany segmentu tekstu – przydziela obszar wymiany segmentowi tekstu (ma ustalony rozmiar) kawałkami po 512 KB, z wyjątkiem ostatniego kawałka, który jest wymierzany w jednostkach 1 kilobajtowych.

Mapa wymiany segmentu danych – bardziej skomplikowana, bo segment danych może rosnąć z upływem czasu; mapa ma ustalony rozmiar, ale zawiera adresy bloków o zmiennych rozmiarach: każdy następny blok jest 2 razy większy od poprzedniego (maksymalny rozmiar bloku to 2 MB).

99. Do czego służy podsystem we/wy? podsystem wej/wyj nadzoruje:

  1. Omów interakcję jednostki centralnej ze sterownikiem urządzenia we/wy?

Procesor przekazuje sterownikom polecenia i dane niezbędne do wykonania danych poleceń. Sterownik ma specjalny rejestr, który służy do przekazywania komunikatów z i do procesora. Procesor porozumiewa się ze sterownikiem pisząc i czytając bity w tym rejestrze. Przesłanie tych bitów do rejestru urządzenia może odbywać się poprzez specjalne instrukcje wejścia/wyjścia będące zleceniami przesłania bitów na adres portu wejścia/wyjścia. Rozkazy te powodują przekazanie bitów z i do rejestrów sterujących urządzenia poprzez szynę. Rejestry sterujące urządzenia mogą być też odwzorowane w pamięci operacyjnej. Wówczas komunikacja z urządzeniem odbywa się poprzez zapis i odczyt odpowiednich bajtów w pamięci operacyjnej.

  1. Omów metody obsługi zakleszczeń?

Zapobieganie zakleszczeniom Polega na zaprzeczeniu co najmniej jednemu z czterech warunków koniecznych zakleszczenia. Gdy co najmniej jeden z tych warunków nie jest spełniony, mamy pewność, że do zakleszczenia nie dojdzie.

Unikanie zakleszczeń Gdy stosujemy tę metodę wszystkie warunki konieczne występowania zakleszczeń są prawdziwe. Nie dopuszczamy do zakleszczeń poprzez badanie stanu systemu przed każdym żądaniem przydziału zasobów i niekiedy odrzucamy to żądanie nawet wtedy, gdy są wolne zasoby, ale uznaliśmy, że spełnienie tego żądania może prowadzić do zakleszczenia. Unikanie zakleszczeń zwykle wymaga dodatkowej wiedzy o procesach (np. o ich maksymalnym dopuszczalnym zapotrzebowaniu na zasoby).

Wykrywanie zakleszczeń i odtwarzanie Dopuszczamy powstawanie zakleszczeń, ale umiemy je wykrywać, likwidować i przywracać normalne działanie systemu po tym zabiegu.

  1. Jaka jest różnica pomiędzy wątkiem a procesem?

Różnica między zwykłym procesem a wątkiem polega na współdzieleniu przez wszystkie wątki działające w danym procesie przestrzeni adresowej oraz wszystkich innych struktur systemowych (np. listy otwartych plików, gniazd, itp.) - z kolei procesy posiadają niezależne zasoby.

  1. Jaką trudność musi pokonać osoba pisząca SO przeznaczony do pracy w warunkach czasu rzeczywistego?

W systemie takim muszą istnieć dobrze zdefiniowane ograniczenia czasowe i z nimi musi zmagać się programista. Przetwarzanie musi się zmieścić w tych ramach czasowych w przeciwnym wypadku system nie spełni wymagań.

104. Do czego służy pamieć cache?

105. Omów dwie metody przydziału miejsca na dysku, które najlepiej nadają się do realizacji dostępu bezpośredniego?

  1. System plików zwartych (przydział ciągły): cały plik zajmuje ciąg kolejnych bloków; odwołanie do pliku składa się z adresu bloku początkowego i rozmiaru pliku (ilość bloków w pliku). Własności:

-Efektywność dostępu (niewielkie ruchy głowic dysk.)

-Łatwa lokalizacja bloków pliku zarówno przy dostępie sekwencyjnym jak i swobodnym

-Problem fragmentacji zewnętrznej: po usuniętych plikach pozostają dziury, które trudno połączyć w jeden większy blok

-Umożliwia najbardziej elastyczną organizację danych – zniszczenie jednego bloku powoduje tylko lokalną utratę danych

  1. Mapa plików (Windows):

Wpis katalogowy wskazuje na adres pierwszego bloku, natomiast pozostałe adresy wynikają z mapy plików (tablicy alokacji). Uszkodzenie mapy plików powoduje utratę informacji dyskowych w pliku.

Właściwości:

  1. Do czego służy graf przydziału zasobów? Stosowany przy postępowaniu z blokadami.

  1. W katalogu /home/jas (domowy katalog użytkownika Jas) znajduje się plik: plik1. W katalogu /home/stas/dane znajduje się plik: plik2. Chcesz skopiować plik: plik1 do katalogu /home/stas oraz przenieść plik: plik2 do katalogu /home/stas. Zakładając, że należysz do tej samej grupy linuksowej co Jaś i Staś zapisz polecenia, które to umożliwiają, zaznaczając kto wydaje polecenie i z jakiego katalogu (minimalne prawa dostępu do plików i katalogów). Opisy plików i katalogów w katalogu /home i podkatalogach są następujące: drwx------ 10 jas inffiz 1024 May 7 9.15 jas drwx------ 4 jas inffiz 1024 May 7 9.16 plik1 drwx------ 10 stas inffiz 1024 May 7 9.15 stas drwx------ 10 stas inffiz 1024 May 7 9.16 dane drwx------ 4 stas inffiz 1024 May 7 9.17 plik2

a) jestem użytkownikiem nie-jaś i nie-staś, ale razem z nimi w grupie:

jestem w kat. /home; minimalne prawa dostępu (z mojego punktu widzenia): jas: d--- --x --- plik1: f--- r-- --- stas: d--- -wx ---

jas musi napisać: w katalogu /home/jas: chmod 040 plik1,

w katalogu /home: chmod 010 jas

stas musi napisac:

w kat /home : chmod 030 stas polecenie: cp jas/plik1 stas/

b) jestem użytkownikiem nie-jaś i nie-staś, ale razem z nimi w grupie:

jestem w kat. /home; minimalne prawa dostępu(z mojego punktu widzenia): stas: d--- -wx ---, dane: d--- -wx --- plik2 f--- r-x ---

stas musi napisac: w katalogu /home/stat/dane: chmod 050 plik2, w katalogu /home/stas : chmod 030 dane,

w katalogu /home chmod 030 stas

polecenie: mv stas/dane/plik2 stas/

założenie: pliki docelowe nie istnieją, jas i stas nie potrzebuja dostepu do swoich katalogow (nic o tym nie ma w zadaniu : ))

  1. Udogodnienia sprzętowe?

Mechanizm przerwań, ochrona pamięci operacyjnej, zbiór rozkazów uprzywilejowanych, zegar czasu rzeczywistego

  1. Omów typowe rejestry sterowników?

110. Co przechowuje katalog w NTFS?


Wyszukiwarka

Podobne podstrony:
Zadania egzaminacyjne SO
Pytania jakie pojawiły się na egzaminie z SO docx
Opracowanie pytań na Egzamin z SO docx
Zadanie 2 z egzaminu na stronie E docx
zadania egzaminacyjne
Matematyka zadania egzaminacyjne Zestaw7 2002
Zadania egzaminacyjne 2003, Nieorganiczna, chemia2, Arkusze powtórzeniowe, Pobieranie1, studia 1.2,
ZADANIE EGZAMINACYJNE1
Fizyka 1 zadania z egzaminów do 2013
Zadania egzaminacyjneA 2005, Nieorganiczna, chemia2, Arkusze powtórzeniowe, Pobieranie1, studia 1.2,
Zadanie egzaminacyjne czerwiec 2009, EGZAMINS
świerk, Technikum PSBiG Lublin, Egzamin zawodowy, Zadania egzaminacyjne
zadania egzaminacyjne dzienne (PTM), elektro, 1, Podstawy Techniki Mikroprocesorowej
ZADANIE EGZAMINACYJNE, projekty
Zadanie egzaminacyjne, Szkoła, egzamin
zadania-egzaminacyjne, Studia WIT - Informatyka, Systemy operacyjne
zadania egzaminacyjne zaoczne 2006 07 (PTM), elektro, 1, Podstawy Techniki Mikroprocesorowej
Zadanie egzaminacyjne czerwiec 2009, Technik usług kosmetycznych
Zadanie egzaminacyjne - przełącznik kierunku obrotów, egzamin zawodowy technik elektryk

więcej podobnych podstron