Imię |
Nazwisko |
Grupa |
Data |
|
|
|
|
Egzamin z Systemów Operacyjnych
Zadanie 1 Do czego służą vxd i drv
Karta dźwiękowa obsługiwana jest przez urządzenie wirtualne sound.vxd i sterownik sound.drv. Karta wykorzystywana jest przez 32-bitowy proces Windows. Aplikacja systemu MS-DOS pracująca w trybie pełnego ekranu próbuje zaprogramować kartę muzyczną wpisując odpowiednie wartości do jej portów. System zareaguje w sposób:
a |
Karta będzie pracować w taki sposób, jak zaprogramowała ją aplikacja MS-DOS, ponieważ w trybie pełnego ekranu ma ona bezpośredni dostęp do portów karty, |
b |
sound.vxd nie pozwoli aplikacji MS-DOS na używanie zajętego urządzenia, |
c |
sound.drv nie pozwoli aplikacji MS-DOS na używanie zajętego urządzenia, |
d |
System zawiesi się z powodu konfliktu współdzielenia zasobów. |
Zadanie 2 Wykorzystanie meldunków
W celu wykorzystania myszy jako urządzenia wejściowego 32-bitowy Windows proces powinien:
a |
Uzyskać dostęp do portu, do którego podłączona jest mysz i analizować przychodzące dane, |
b |
Przekazać do urządzenia vmouse.vxd adres funkcji, którą urządzenie wirtualne będzie wywoływać, |
c |
Reagować na odpowiednie meldunki, |
d |
Komunikować się ze sterownikiem mouse.com za pomocą przerwania 0x33. |
Zadanie 3Prawa dostępu do pamięci
Wykonanie poniższej funkcji w systemie Windows spowoduje (wskaźnik ptr jest niezainicjowany):
char f(void) {char *ptr; char c; c = *ptr; return c;}
a |
Funkcja na pewno wykona się i zwróci losową wartość z przestrzeni adresowej swojego procesu, |
b |
Funkcja na pewno zwróci wartość z przestrzeni adresowej swojego albo innego procesu, |
c |
Jeżeli ptr wskazuje bajt leżący na stronie, która nie ma praw do odczytu, system zawiesi się, |
d |
Jeżeli ptr wskazuje bajt leżący na stronie, która nie ma praw do odczytu, proces wykonujący funkcję zostanie przerwany. |
Zadanie 4 Współdzielenie pamięci
Dwa 32-bitowe procesy systemu Windows współdzielą jedną stronę pamięci. System tworzy współdzieloną pamięć poprzez utworzenie wspólnej tablicy stron. Procesy nadal mają różne katalogi stron. Podać adres liniowy współdzielonego obszaru pamięci dla obydwu procesów, jeżeli numer deskryptora strony we wspólnej tablicy stron jest równy 0x200, numer wspólnej tablicy stron w katalogu stron procesu pierwszego jest równy 0x40, numer wspólnej tablicy stron w katalogu stron procesu drugiego jest równy 0x71. Jedna strona zawiera bajty od 0 do 4095 (od 0 do 0xfff szesnastkowo).
Odpowiedź:
Proces 1: |
od do |
Proces 2: |
od do |
Zadanie 5 Wątki
Wymienić przypadki, kiedy system zwiększa priorytet wątku
1 |
Gdy zostanie uaktywnione okno |
2 |
Gdy okno otrzyma meldunek |
3 |
Gdy watek wstrzymany przez funkcję blokującą zostanie wznowiony |
Zadanie 6 Wątki
Zaznaczyć znakiem + zdanie, które jest prawdziwe
wątek ma bezpośredni dostęp do pamięci innego wątku tego samego procesu |
- |
wątek roboczy (nie tworzący okna) otrzymuje prywatne meldunki |
- |
system Windows 95 w pewnych przypadkach modyfikuje priorytet wątku |
+ |
wszystkie uruchomione wątki szeregowane są w jednej kolejce systemowej |
- |
Zadanie 7 Procesy
Serwer skrzynki pocztowej pracuje na komputerze o nazwie Komp1, klient na komputerze o nazwie Komp2. Podać w jaki sposób serwer może utworzyć skrzynkę pocztową o nazwie skrzynka.net z parametrami:
Maksymalny rozmiar wiadomości |
4096 |
Timeout |
1000 ms |
Wartość parametru Zabezpieczenia |
0 |
W jaki sposób klient może zapisać do utworzonej skrzynki pocztowej tekst ”Wiadomość\n\0”.
Odpowiedź:
serwer: |
CreateMailslot(“\\\\.\\skrzynka.net”,4096,1000,0); fopen(\\Komp1\\ skrzynka.net,”w”); |
klient: |
FILE plik; fprintf(plik,“Wiadomość\n”); |
Można użyć funkcji:
HANDLE CreateMailslot(char *Nazwa, long MaksRozmWiad,
long Timeout, SECUTITY_ATTRIBUTES * Zabezpieczenia);
FILE *fopen(char *nazwa, char *tryb);
int fprintf(FILE *plik, char *format [,argument] ...);
Zadanie 8 Procesy
Serwer potoku nazwanego może ograniczyć dostęp do potoku do określonej grupy klientów. W jaki sposób identyfikowany jest klient potoku nazwanego?