Pracują dwa wątki o równych priorytetach: wl (uruchomiony pierwszy) i w 2 (uruchomiony drugi). W chwili, gdy wątek 1 wykonuje podkreśloną instrukcję następuje przełączenie zadań i system przełącza kontekst na wątek 2. Funkcja printf nie jest współbieżna. Zaznaczyć, co prawdopodobnie pojawi się na ekranie.
int wyświetl(char int w;
w=prlnt.f wsłi :
return w;
fcs) { iint wl(void *p)
{
wyświetl("0000"); return 0;
int w2(void *p)
(
wyświetl("1111") ; return a;
ł
a 00001111 b 00011110
c System zawiesi się, ponieważ doszło do konfliktu współdzielenia zasobów (wspólny ekran) d Proces wykonujący wątki zostanie przerwany przez system, ponieważ doszło do konfliktu współdzielenia zasobów (wspólny ekran)
Serwer skrzynki pocztowej pracuje na komputerze o nazwie Korapl, klient na komputerze o nazwie Komp2. Zaznaczyć odpowiedź, która zawiera instrukcję tworzącą skrzynkę pocztową dla serwera i otwierającą plik dla klienta w celu wysyłania wiadomości wyłącznie do serwera.
a CreateMailslot ("\\\\. WmailslotWskrzynka.net", 4096,1000,0) ;
fopen("WWkomplWmailslotWskrzynka.net", "w") ; b CreateMailslot ("WWkomplWmailslotWskrzynka. net", 4 096, 1000, 0) ;
fopen ("W\\komp2 WmailslotWskrzynka. net", "w") ;
| CreateMailslot ("WW j WmailslotWskrzynka. net", 4 096, 1000,0);
fopen ("W\\*WmailslotWskrzynka. net", "w") ;
(J CreateMailslot ("WWkomplWmailslotWskrzynka.net", 4096,1000, 0) ; fopen ("WWkomplWmailslotWskrzynka. net", "w");
W Windows pracują współbieżnie dwa procesy. Czy można tak poprawić kod, żeby proces 1 nie został
zablokowany?_
CEvent e;
int main(void) (
CSingleLock SL(&e);
SL.LockO; obliczaj2 (); return 0;
CEvent e;
int main(void) (
obliczaj1(); e.SetEvent(); return 0;
}
a Nic nie trzeba poprawiać, proces 1 nie zostanie zablokowany b Należy zmienić klasę obiektu i na CMutex
| Należy nadać identyczne nazwy dla obydwu zdarzeń (obiektów klasy CEvent) d W Windows nie można synchronizować procesów, nie da się poprawić tego przykładu