3. W systemie Windows uruchamiamy proces pl. a następnie na drugiej konsoli proces p2:
void main(void){
char s[]="wiadomość\n"/ printf("%p\n",s); getc()/
\
void main(void){ char s[];
scanf("%p",&s)/ printf(s);
}
Proces pl wyświetla adres zmiennej s. Proces p2 wczytuje wskaźnik, który jest interpretowany jako adres tablicy tekstowej do wyświetlenia. Co się stanie, jeżeli procesowi p2 podamy adres zwrócony przez proces pl ? a Proces p2 zostanie przerwany, jeżeli wczytany wskaźnik wskazuje na stronę bez prawa do odczytu, b Na ekranie pojawi się tekst wiadomość.
c Na ekranie pojawi się pewien tekst, ale nie będzie to zawartość zmiennej s procesu p 1.
7^*"Tł3powieqz a) albo c).
4. W systemie Windows uruchamiamy proces, który uruchamia kolejno wrątki wl i w2:
UINT wl(void *p){
CEvent el (0,0,"zdarzeniel"); CEvent e2 (0,0,"zdarzenie!"); CSingleLock SL(&el); printf("1");
e2.SetEvent(); return 0;
UINT w2(void *p){
CEvent el(0,0,"zdarzeniel"); CEvent e2 (0,0,"zdarzeniel"); printf("2"); el.SetEvent(); CSingleLock S L(& e 2); printf("3"); return 0;
}
Zakładamy, że wątek wl wykonuje się pierwszy i czasy potrzebne na wykonanie wątków wrl i w2 są krótsze od kwantu czasu używanego przez dyspozytora. Co zostanie wyświetlone na ekranie?
312
213 321