GRUPA A
Jeżeli w zadaniu wystąpi nazwa Windows mamy na myśli 32-bitowy system oparty na architekturze NT
Jeżeli w zadaniu wystąpi nazwa proces mamy na myśli 32-bitowy proces Windows
W każdym zadaniu poprawna jest jedna odpowiedź
1. Użytkownik zalogowany w systemie Windows na konto bez uprawnień administratora formatuje dyskietkę za pomocą
polecenia format wydanego z konsoli (użytkownik ma odpowiednie uprawnienia). W trakcie formatowania do systemu
zdalnie loguje się administrator za pomocą usługi telnet i wyświetla zawartotść dyskietki. System zachowa się w
sposób:
a
Nie można formatować dyskietki w taki sposób, ponieważ programy MS DOS nie mają dostępu do sprzętu,
b
Na konsoli administratora pojawi się komunikat informujący o braku dostępu do urządzenia,
c
Administrator zobaczy wirtualną zawartość dyskietki sprzed sformatowania,
d
Formatowanie zostanie przerwane, zawartość dyskietki odtworzona i wyświetlona administratorowi.
2. Proces wyświetla okno pokazane na rysunku. Z ilu wątków składa się ten proces?
a
1
b
2
c
3
d
Nie można określić liczby wątków na podstawie wyglądu okna.
3. W celu uzyskania informacji o prawach dostępu do stron procesu należy:
a
Na podstawie identyfikatora procesu uzystać jego uchwyt (HANDLE) i użyć odpowiedniej funkcji systemowej,
b
Użyć odpowiedniej funkcji systemowej, która zwraca te informacje na podstwie identyfikatora procesu,
c
Nie można uzyskać takich informacji,
d
W eksploratorze Windows kliknąć prawym przyciskiem myszy na nazwie programu i z menu kontekstowego
wybrać polecenie Właściwości.
4. W systemie Windows uruchamiamy dwa procesy, najpierw p1, następnie p2 (tryby otwierania plików: w – do zapisu, a
- dołączanie)
P1
void main(void){
CEvent e1(0,0,”zdarzenie1”);
CEvent e2(0,0,”zdarzenie2”);
CSingleLock SL(&e1);
FILE *f=fopen(”plik.txt”,”w”);
SL.Lock(); fprintf(f,”3”);
e2.SetEvent(); return 0;
}
P2
void main(void){
CEvent e1(0,0,”zdarzenie1”);
CEvent e2(0,0,”zdarzenie2”);
FILE *f=fopen(”plik.txt”,”a”);
fprintf(f,”1”); e1.SetEvent();
CSingleLock SL(&e2); SL.Lock();
fprintf(f,”2”); return 0;
}
Jaka będzie zawartość pliku plik.txt?
213
123
321
132
5. Co się stanie w wyniku wykonania następujących instrukcji (wykonujący je proces jest procesem Windows):
{FILE *f;f=fopen(”\\\\d3\\mailslot\\1025”,”w”);fprintf(f,”1”);fclose(f);}
a
Funkcja fopen zwróci błąd, ponieważ w nazwie pliku nie może wystąpić ciąg znaków \\,
b
Na dysku zostanie utworzony plik o podanej nazwie zawierający znak ”1”,
c
Użytkownik ”1025” na komputerze o nazwie ”d3” otrzyma e-mail o treści ”1”,
d
Serwer skrzynki pocztowej o nazwie ”1025” na komputerze o nazwie ”d3” otrzyma wiadomość o treści ”1”.
6. Na komputerze o nazwie 108a2, na którym pracuje system Windows, uruchomiono serwer potoku nazwanego
o nazwie potok. Co należy wstawić w miejsce znaku
w poniższym kodzie, żeby transakcja z tym serwerem
zakończyła się pomyślnie:
char s[]="Wiadomość dla serwera\n"; char odp[256]; unsigned long nodp;
CallNamedPipe(
,s,strlen(s)+1,odp,256,&nodp,0);
a
”\\\\108a2\\pipe\\potok”,
b
”\\108a2\pipe\potok”,
c
Serwer potoku nazwanego nie może pracować z systemem Windows,
d
”\\\\108a2\\potok”.
7. Dodajemy właściwość (property) FileName do interfejsu kontrolki ActiveX. Jakie składowe zostaną utworzone
w klasie bazowej C++ do obsługi tej właściwości?
a
Dwie funkcje: GetFileName, SetFileName,
b
Jedna zmienna składowa klasy o nazwie FileName i żadna funkcja,
c
Do obsługi właściwości nie potrzebne są żadne składowe klasy bazowej kontrolki,
d
Trzy funkcje: GetFileName, SetFileName, QueryFileName.
GRUPA B
Jeżeli w zadaniu wystąpi nazwa Windows mamy na myśli 32-bitowy system oparty na architekturze NT
Jeżeli w zadaniu wystąpi nazwa proces mamy na myśli 32-bitowy proces Windows
W każdym zadaniu poprawna jest jedna odpowiedź
1. Producent modemów wyprodukował nowy model modemu w formie karty na magistralę PCI, niekompatybilny
z dostępnymi na rynku. W celu umożliwienia działania tej karty w systemie Windows (programy MS-DOS nie będą
wykorzystywać modemu), producent musi dostarczyć następujące składniki programowe:
a
Sterownik trybu jądra i sterownik trybu użytkownika,
b
Tylko sterownik trybu jądra, ponieważ urządzenia PCI nie potrzebują sterowników trybu użytkownika,
c
Tylko sterownik trybu użytkownika, ponieważ urządzenie nie będzie współpracowało z MS-DOS,
d
Nic nie musi dostarczać, system Windows pobierze oprogramowanie z witryny Windows Update.
2. Co robi funkcja f?
void f(DWORD id, void *adres) { HANDLE hProces; DWORD n;
hProces = OpenProcess(PROCESS_ALL_ACCESS,0,id);
VirtualProtectEx(hProces,adres,4095,PAGE_READONLY,&n);
CloseHandle(hProces);}
a
Funkcja jest błędna, ponieważ nie kończy się instrukcją return,
b
Ustawia uprawnienia dostępu dla wskazanej strony pamięci procesu o zadanym identyfikatorze,
c
Funkcja jest błędna, ponieważ w wywołaniu VirtualProtectEx brakuje operatora & przed zmienną adres,
d
Odpowiedzi a i c są prawidłowe.
3. Rysunek obok przedstawia kolejkę systemową (wątek W1 ma najwyższy priorytet). Przyjmujemy
następujące założenia:
- aktualnie aktywny jest wątek W5, który jest w trakcie obliczeń i jest gotowy,
- wątki W1 i W2 nie są gotowe,
- wątek W4 jest w trakcie obliczeń i jest gotowy, wątek W3 nic nie robi i jest gotowy.
Który wątek stanie się aktywny po upłynięciu szczeliny czasowej?
W1
W2
W3
W4
4. Proces P1 utworzył obiekt synchronizacji typu zdarzenie w następujący sposób:
CEvent e1(0,0,”gotowe”);
W procesie P2 znajdują się nstępujące instrukcje:
CEvent e1; CSingleLock SL(&e1); SL.Lock();
Zakładamy, że procesy P1 i P2 są jednowątkowe o równych priorytetach. Zaznaczyć prawidłową odpowiedź.
a
Proces P2 zostanie zatrzymany i odblokowany gdy w P1 wystąpi instrukcja e1.SetEvent(),
b
Proces P2 zostanie zatrzymany i odblokowany gdy dowolne zdarzenie o nazwie ”gotowe” zostanie ustawione,
c
Proces P2 zostanie zatrzymany i przy podanych założeniach nie ma możliwości jego odblokowania,
d
Odpowiedzi a i b są prawidłowe.
5. Co się stanie w wyniku wykonania następujących instrukcji (wykonujący je proces jest procesem Windows):
HANDLE m; m=CreateMailslot(”\\\\prz.edu.pl\\mailslot\\stud”,0,0,0);
a
Na komputerze o nazwie prz.edu.pl zostanie utworzona skrzynka pocztowa o nazwie stud,
b
Będzie m==TRUE, jeżeli użytkownik stud ma konto e-mail na serwerze prz.edu.pl,
c
Użytkownikowi stud zostanie utworzone konto pocztowe na serwerze prz.edu.pl,
d
W funkcji CreateMailslot jest błąd, zamiast ”prz.edu.pl” powinien być znak ”.”.
6. Na komputerze o nazwie 108a2, na którym pracuje system Windows, uruchomiono serwer potoku nazwanego
o nazwie potok. Co należy wstawić w miejsce znaku
w poniższym kodzie, żeby transakcja z tym serwerem
zakończyła się pomyślnie:
char s[]="Wiadomość dla serwera\n"; char odp[256]; unsigned long nodp;
CallNamedPipe(
,s,strlen(s)+1,odp,256,&nodp,0);
a
”\\\\108a2\\pipe\\potok”,
b
”\\108a2\pipe\potok”,
c
Serwer potoku nazwanego nie może pracować z systemem Windows,
d
”\\\\108a2\\potok”.
7. Zaznaczyć, które stwierdzenia dotyczące technologii COM i ActiveX są prawdziwe.
a
Obiekt COM musi posiadać interfejs o nazwie IWindowsCOMObject,
b
Obiekty ActiveX identyfikowane są za pomocą nazwy (np. SOAnimacja),
c
Metoda obiektu ActiveX utworzonego w języku C++ musi mieć odpowiadającą funkcję w klasie reprezentującej
ten obiekt,
d
Zmiana wartości właściwości (property) kontrolki ActiveX nie może spowodować zmiany wyglądu kontrolki,
e
Do obsługi właściwości kontrolki ActiveX nie potrzebne są żadne składowe klasy bazowej kontrolki.
W1
W2
W3
W4
W5