background image

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”.