Nazwa Windows oznacza 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ź
Grupa A
1. Dostęp do BIOSu komputera zabezpieczony jest hasłem, które przechowywane jest w pamięci CMOS. Użytkownik
zalogowany w systemie Windows bez uprawnień administratora uruchamia aplikację systemu MS-DOS, która zeruje
pamięć CMOS. Co się stanie po restarcie komputera?
a
BIOS wyświetli komunikat o błędnej sumie kontrolnej pamięci CMOS.
b
System Windows nie pozwoli na taką operację i aplikacja zostanie zamknięta podczas wykonywania operacji.
c
Windows nie pozwoli na taką operację i wyświetli okno z komunikatem, ale aplikacja nie zostanie przerwana.
d
Nic się nie stanie.
2. Ile wątków może uruchomić pojedynczy proces Windows?
a
Jest określona maksymalna liczba uruchamianych wątków, zależna od zasobów systemowych.
b
Tyle, ile ma okien.
c
32.
d
Nieskończenie wiele.
3. W systemie pracują procesy P1 i P2, obydwa z uprawnieniami tego samego użytkownika. Proces P1 zmienia procesowi
P2 uprawnienia do pewnej strony pamięci z „brak dostępu” na „do odczytu”. System zareaguje w następujący sposób:
a
Natychmiast po zmianie praw dostępu do strony pamięci proces P2 zostanie przerwany.
b
Proces P1 zostanie przerwany, ponieważ wykonuje niedozwoloną operację.
c
Obydwa procesy będą nadal pracować.
d
Proces P2 zostanie przerwany, gdy wykona instrukcję, która odwołuje się do tej strony pamięci.
4. Pewien 32-bitowy proces konsoli uruchamia 5 wątków, które przeprowadzają długotrwałe obliczenia. Wątki zapisują
informację o zaawansowaniu obliczeń w jednym pliku za pomocą funkcji fprintf. Aby zapewnić poprawne
działanie funkcji fprintf należy:
a
Zastosować odpowiedni mechanizm synchronizacji wątków, np. sekcję krytyczną.
b
Taki przypadek jest niemożliwy, ponieważ aplikacja konsoli posiada jedno okno i dlatego może uruchomić tylko
jeden wątek.
c
Zmienić typ aplikacji na kontrolkę ActiveX, ponieważ w kontrolkach wszystkie funkcje są synchronizowane.
d
Napisać w asemblerze wersję funkcji fprintf, która korzysta z niskopoziomowych funkcji dostępu do systemu
plików.
5. Proces P1 uruchamia wątek w1, a proces P2 uruchamia wątek w2. Wątek w1 czeka na zdarzenie od wątku w2. Co
należy wstawić w miejsce znaków
➀ i ➁, żeby wątek w1 zakończył się?
P1
CEvent e1(0,0,
➀);
UINT w1(void* p){
CSingleLock SL(&e1);
SL.Lock(); return 0;
}
P2
CEvent e1(0,0,
➁);
UINT w2(void* p){
e1.SetEvent();
return 0;
}
a
Można usunąć te znaki i przykład będzie poprawny, ponieważ zmienne e1 są globalne.
b
np.
➀: ”moje zdarzenie 1” ➁: ”moje zdarzenie 2”.
c
np.
➀: ”ja chcę dostać 5!” ➁: ”ja chcę dostać 5!”.
d
koniecznie
➀: ”\\\\.\\CEvent\\e1” ➁: ”\\\\.\\CEvent\\e1”.
6. W systemie Windows jeden proces uruchamia dwa wątki, najpierw w2, następnie w1 (tryby otwierania plików: w –
do zapisu, a – dołączanie). Zakładając, że zmienna e jest globalna, określić zawartość pliku plik.txt?
CEvent e(0,0);
UINT w1(void* p){
FILE *f=fopen(”plik.txt”,”a”);
fprintf(f,”3”);
e.SetEvent();
return 0;
}
UINT w2(void* p){
CSingleLock SL(&e);
FILE *f=fopen(”plik.txt”,”w”);
fprintf(f,”1”);
SL.Lock(); SL.Unlock();
fprintf(f,”2”); return 0;
}
213
123
132
321
7. 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”.