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
P2
void main(void){
void main(void){
CEvent e1(0,0,”zdarzenie1”);
CEvent e1(0,0,”zdarzenie1”);
CEvent e2(0,0,”zdarzenie2”);
CEvent e2(0,0,”zdarzenie2”);
CSingleLock SL(&e1);
FILE *f=fopen(”plik.txt”,”a”);
FILE *f=fopen(”plik.txt”,”w”);
fprintf(f,”1”); e1.SetEvent();
SL.Lock(); fprintf(f,”3”);
CSingleLock SL(&e2); SL.Lock();
e2.SetEvent(); return 0;
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.
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 W1
następujące założenia:
- aktualnie aktywny jest wątek W5, który jest w trakcie obliczeń i jest gotowy, W2
W3
- wątki W1 i W2 nie są gotowe,
W4
W5
- 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.