background image

EGZAMIN Systemy operacyjne 

Data: 

Nazwisko i imi

ę

:

 

Pepsi

 

1.  Standard POSIX obejmuje: 

a) polecenia konsoli  b) mechanizm stronicowania  c) typy algorytmów szeregowania 

2.  W trybie DMA przerwanie generuje: 

a) procesor  b) kontroler  c) procedura obsługi urządzenia  

(nie jestem pewny, może c?) 

3.  Przy łańcuchu powiązanych bloków ograniczony jest:: 

a) dostęp swobodny  b) dostęp sekwencyjny  c) dostęp do danych w pewnej części 

bloku 

4.  Algorytm szeregowania procesów w systemie Unix jest algorytmem: 

a) fifo  b) rotacyjnym  c) adaptacyjnym

5.  W celu uzyskania informacji o prawach dostępu do stron procesu: 

a) JeŜeli strony nie mają praw do odczytu, proces zostanie przerwany 

b) Informacje moŜna uzyskać podając adres strony jako parametr funkcji  

(nie jestem pewny)

VirtualQueryEx

c) Na podstawie identyfikatora strony (np. 0x3c0000) naleŜy uzyskać jej uchwyt 

(HANDLE) i uŜyć odpowiedniej funkcji systemowej, 

6.  Na  poniŜszym  rysunku  strzałki  reprezentują  Ŝądania  i  zwolnienia  dostępu  do  zasobów 

dzielonych  przez  procesy.  Podać  w  kółkach  kolejność  operacji  prowadzącą  do 

zakleszczenia (

deadlock

). 

 

 

 

 

 

 

 

 

 

 

 

 

7.  W chwili T=0s uruchomiono proces A, o czasie trwania 50ms i priorytecie 20. Po 20 ms 

proces  ten  opuszcza  semafor  binarny  S  (uprzednio  podniesiony),  po  czym  rozpoczyna 

sekcję krytyczną trwającą 20ms. W chwili T=30ms proces A zostaje wywłaszczony przez 

proces B, który trwa 20ms. Narysować diagram Gannta dla szeregowania priorytetowo-

karuzelowego, kwant czasu wynosi 10ms, a do dyspozycji jest jeden procesor. 

 

 

  | 10| 20| 30| 40| 50| 60| 70|

 80| 90|100|110|120|130|140ms 

 

8. 

Uzupełnić kod wątków: A, realizującego zapis i B, realizującego odczyt, tak, aby w czasie 

zapisu odczyt był niemoŜliwy.

 

NaleŜy uŜyć mechanizmów Windows (MFC).

 

UINT A(void *p) 

{    

CMutex mutex(0,"a");

while(1) 
 

mutex.Lock();

 

 

zapis(); 

 

mutex.Unlock();

 

 

UINT B(void *p) 
{    

CMutex mutex(0,"a");

while(1)  
 

mutex.Lock(); 

 

odczyt(); 

mutex.Unlock(); 

 
 

 

P1 

P2 

Z1 

Z2 

ODPOWIEDZI PODLEGAJĄ DYSKUSJI!!

1

3

6

7

2

4

5

8

Mutex musi by

ć nazwany 

nawet je

śli ma być 

w w

ątkach jednego 

procesu

Moim zdaniem brakuje tutaj 

jednoznaczno

ści w tym grafie. 

Nie wiemy które odwo

łanie co  

dok

ładnie oznacza.W 

przypadku zasobów powinny 

by

ć jeszcze kropki 

oznaczajace sam zasob i jego 

ilosc. To od nich powinny isc 

strzalki.

    A      A     /A/      B      B    /A/      A

background image

EGZAMIN Systemy operacyjne 

Data: 

Nazwisko i imi

ę

:

 

Pepsi

 

1.  Monitor w platformie .NET słuŜy do wzajemnego wykluczania przy dostępie do: 

a) obiektu 

b) procedury  c) zmiennej typu 

condition

 

2.  W celu wysłania do procesu o identyfikatorze 1190 sygnału TERM uŜywamy polecenia: 

a) term 1190   

b) ps 1190 send TERM 

c) kill -TERM 1190 

3.  Algorytm szeregowania procesów w systemie Unix jest algorytmem: 

a) fcfs  b) adaptacyjnym  

c) rotacyjnym 

4.  Pamięcią pomocniczą jest: 

a) pamięć podręczna procesora 

b) nośnik typu USB  c) pamięć karty graficznej 

5.  W celu uzyskania informacji o prawach dostępu do stron procesu: 

a) NaleŜy uŜyć programu Spy++ 

c) NaleŜy uzyskać uchwyt procesu (HANDLE) i uŜyć odpowiedniej funkcji 

systemowej; 

b) Informacje moŜna uzyskać podając jego numer jako parametr funkcji 

VirtualProtectEx

6.  Na  poniŜszym  rysunku  strzałki  reprezentują  Ŝądania  i  zwolnienia  dostępu  do  zasobów 

dzielonych  przez  procesy.  Podać  w  kółkach  kolejność  operacji  prowadzącą  do 

zakleszczenia (

deadlock

). 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7.  W chwili T=0s uruchomiono proces B, o czasie trwania 60ms i priorytecie 10. Po 10 ms 

proces  ten  opuszcza  semafor  binarny  S  (uprzednio  podniesiony),  po  czym  rozpoczyna 

sekcję krytyczną trwającą 20ms. W chwili T=30ms proces B zostaje wywłaszczony przez 

proces A, który trwa 30ms. Narysować diagram Gannta dla szeregowania priorytetowo-

karuzelowego, kwant czasu wynosi 10ms, a do dyspozycji jest jeden procesor. 

 

 

  | 10| 20| 30| 40| 50| 60| 70| 80| 90|100|110|120|130|140ms 

 

8. 

Uzupełnić kod wątków: A, realizującego odczyt i B, realizującego zapis, tak, aby w czasie 

odczytu zapis był niemoŜliwy. NaleŜy uŜyć mechanizmów Windows (MFC).

 

UINT A(void *p) 

while(1) 
 
 
 

zapis(); 

 
 

UINT B(void *p) 

while(1)  
 
 
 

odczyt(); 

 
 

P1 

P2 

Z1 

Z2 

ODPOWIEDZI PODLEGAJĄ DYSKUSJI!!

Tak samo jak w grupie 

pierwszej. 

Tylko, ze sie im watki pomieszaly. 

Znaczy ktory zapisuje, a ktory czyta.

Mo

że ktoś podać przykładową funkcję systemową?, a najlepiej jakieś materiały o tym?

To jest pratkycznie to samo co w gr1