Egzamin 2k09 odp by Pepsi v2

background image

EGZAMIN SO

ODPOWIEDZI PODLEGAJĄ DYSKUSJI!!

Data: 05-02- 2011

Nazwisko i imię: ...

Pepsi.

......

I. W systemie Windows uruchamiamy dwa wątki: watek1 i watek2. Globalna zmienna tekst zadeklarowana jest jako
CString. Jaka będzie jej zawartość po zakończeniu pracy obu wątków? (1)

Odp.

BAC

…………………………………………………………………………………………………………………………………………………….

UINT watek1(void * pr)
{
CEvent e1(0,0,_T("zdarzenie1"));
CEvent e2(0,0,_T("zdarzenie2"));
CSingleLock SL(&e2);
SL.Lock();
tekst+="A";
e1.SetEvent();
return 0;
}

UINT watek2(void *p2)
{
CEvent e1(0,0,_T("zdarzenie1"));
CEvent e2(0,0,_T("zdarzenie2"));
tekst+="B";
e2.SetEvent();
CSingleLock SL(&e1);
SL.Lock();
tekst+="C";
return 0;
}

II. Dane są 2 grupy procesów A i B. Proces typu A uzyskuje dostęp do zasobu Z1, następnie do zasobu Z2. Proces typu B uzyskuje
dostęp tylko do zasobu Z2. Zasób Z1 może być współużytkowany przez 1 proces, zaś zasób Z2 – przez 2 procesy. Uzupełnij,
korzystając z funkcji semaforowych standardu POSIX (4):

void procesA(void) {

while(1) {

dostep(Z1);

}

}

void procesB(void) {

while(2) {

dostep(Z1);

dostep(Z2);

}

}

III. W chwili T=0s uruchomiono proces A, o czasie trwania 30ms i priorytecie 20. W T=20ms uruchomiono dwa

procesy B i C, z których każdy zajmuje 15ms czasu procesora i ma wyższy od A priorytet równy 10. Proces C po
10ms działania został przerwany, z jednoczesnym uruchomieniem procesu potomnego D o priorytecie 25 i czasie

trwania 5ms. Narysować diagram Gantta dla szeregowania priorytetowo-karuzelowego z wywłaszczaniem, kwant

czasu wynosi 10ms, do dyspozycji jest jeden procesor, a każdy proces składa się z jednego wątku. (1)

| 10| 20| 30| 40|

45

|

55

|

60

| 80| 90|100|110|120|130|140ms

IV. W systemie Windows uruchamiamy kilka wątków korzystających ze wspólnego ekranu do wyświetlania wyników.
Utworzono specjalną funkcję WypiszWynik, która wyświetla wynik s i za pomocą obiektu synchronizacji typu
CCriticalSection

synchronizuje procesy. Uzupełnij jej kod. (2)

#define WM_WIADOMOSC (WM_USER+100)

CCriticalSection CS;

CEvent wynikwyswietlony;

void WypiszWynik(char *s)
{

CS.Lock(); // blokujemy sekcje krytyczna

AfxGetMainWnd()->PostMessage(

WM_WIADOMOSC, 1); // wysylamy wiadomosc do aplikacji

// przyjalem, ze wartosc przeslanego parametru = 1 oznacza, ze wiadomoscs jest wyslana

printf(s);

CSingleLock SL(0,0,"&wynikwyswietlony");
SL.Lock();// oczekujemy na zdarzenie oznaczajace odczytanie
//wiadomosci przez watek glowny i pozwolenie na opuszczenie sekcji krytycznej.

CS.Unlock(); //opuszczamy sekcje krytyczna



}

1

A A B C B A D

ogólnie to treść zadanie nie zgadza sie z kodem, albo ja nie ogarniam tego zupelnie.

nie jestem pewny tego rozwiazania
to co jest na szaro mozna pominac (to byla moja chec trzymania sie tego co
bylo na labach - bez potrzeby

+100 oznacza, ze meldunek bedzie w formie int

background image

(*=$0,1 : 62

2'32:,('=,32'/(*$-Ą'<6.86-,

'DWD







'DWD……………….



1D]ZLVNRLLPLę....

Pepsi

........................................

I. W systemie Windows uruchamiamy dwa wątki: watek1 i watek2. Globalna zmienna tekst zadeklarowana jest jako CString. Jaka
będzie jej zawartość po zakończeniu pracy obu wątków? (1)

Odp. ………

XZY

……………………………………………………………………………………………………………………………………………….

UINT watek1(void * pr)
{
CEvent e1(0,0,_T("zdarzenie1"));
CEvent e2(0,0,_T("zdarzenie2"));
tekst+="X";
e2.SetEvent();
CSingleLock SL(&e1);
SL.Lock();
tekst+="Y";
return 0;
}

UINT watek2(void *p2)
{
CEvent e1(0,0,_T("zdarzenie1"));
CEvent e2(0,0,_T("zdarzenie2"));
CSingleLock SL(&e2);
SL.Lock();
tekst+="Z";
e1.SetEvent();
return 0;
}

II. Dane są 2 grupy procesów A i B. Proces typu A uzyskuje dostęp do zasobu Z1, następnie do zasobu Z2. Proces typu B uzyskuje
dostęp tylko do zasobu Z2. Zasób Z1 może być współużytkowany przez 2 procesy, zaś zasób Z2 – przez 1 proces. Uzupełnij,
korzystając z funkcji semaforowych standardu POSIX: (4)

void procesA(void) {

while(2) {

dostep(Z1);

dostep(Z2);

}

}

void procesB(void) {

while(1) {

dostep(Z1);

}

}

III. W chwili T=0s uruchomiono proces A, o czasie trwania 30ms i priorytecie 20. W T=20ms uruchomiono dwa
procesy B i C, z których każdy zajmuje 20ms czasu procesora i ma wyższy od A priorytet równy 10. Proces C po

10ms działania został przerwany, z jednoczesnym uruchomieniem procesu potomnego D o priorytecie 15 i czasie
trwania 10ms. Narysować diagram Gantta dla szeregowania priorytetowo-karuzelowego z wywłaszczaniem, kwant

czasu wynosi 10ms, do dyspozycji jest jeden procesor, a każdy proces składa się z jednego wątku. (1)

| 10| 20| 30| 40| 50| 60| 70|

80| 90|100|110|120|130|140ms

IV. W systemie Windows uruchamiamy kilka wątków korzystających ze wspólnego ekranu do wyświetlania wyników.
Utworzono specjalną funkcję DisplayResult, która wyświetla wynik s i za pomocą obiektu synchronizacji typu
CCriticalSection

synchronizuje procesy. Uzupełnij jej kod. (2)

void DisplayResult(char *s)
{

static CCriticalSection cs;

CSingleLock sl(&cs);

sl.Lock();

printf(s);

sl.Unlock();



}



A A B C B D A

tak krotko wygladaloby poprzednie rozwiazanie gdyby nie robic tak stricte jak
bylo na labkach


Wyszukiwarka

Podobne podstrony:
Egzamin 2k08 by Pepsi v1
EGZAMIN zerowy by Pepsi v0 11
Egzamin 2k08 by Pepsi v1
Mechanika egzaminy 2000 2006 (by Zboru)1[1] id 290871
PATOMORFOLOGIA EGZAMIN 11 odp
Egzamin pytania i odp, gr 2
Botanika egzamin pyt i odp, Uczelnia, Botanika systemowa
Egzamin pyt odp
Mechanika egzaminy 00 06 (by Zboru)
egzamin, Trzy powody by się uczyć
egzamin-pytania i odp, zestaw 3
egzamin-pytania i odp, zestaw 2
egzamin nr2 odp
CKE 2005 Oryginalny arkusz egzaminacyjny humanistyczne odp
Egzamin z glottodydaktyki - odp, Filologia Rosyjska, Glottodydaktyka
Polski system polityczny egzamin pyt i odp, Dziennikarstwo - studia

więcej podobnych podstron