|
10 | 10 | // user Functions
|
11 | 11 | void a( )
|
12 | 12 | {
|
13 |
| - MUTEX.acquire(); |
| 13 | + SMARTS.contextSwitchOff(); |
14 | 14 | cout << "\n ************* A Start *********************";
|
15 |
| - MUTEX.release(); |
16 |
| - for (int j=0; j < 3; j++) |
| 15 | + SMARTS.contextSwitchOn(); |
| 16 | + for (int j=0; j <500; j++) |
17 | 17 | {
|
18 | 18 | for (long i=0; i <600000; i++);
|
19 |
| - MUTEX.acquire(); |
| 19 | + SMARTS.contextSwitchOff(); |
20 | 20 | cout << "A";
|
21 |
| - MUTEX.release(); |
| 21 | + SMARTS.contextSwitchOn(); |
22 | 22 | }
|
23 |
| - MUTEX.acquire(); |
| 23 | + SMARTS.contextSwitchOff(); |
24 | 24 | cout << "\n ************* A Finish *********************";
|
25 |
| - MUTEX.release(); |
| 25 | + SMARTS.contextSwitchOn(); |
26 | 26 | }
|
27 | 27 |
|
28 | 28 | void b( )
|
29 | 29 | {
|
30 |
| - MUTEX.acquire(); |
| 30 | + SMARTS.contextSwitchOff(); |
31 | 31 | cout << "\n ************* B Start *********************";
|
32 |
| - MUTEX.release(); |
33 |
| - for (int j=0; j < 2; j++) |
| 32 | + SMARTS.contextSwitchOn(); |
| 33 | + for (int j=0; j <500; j++) |
34 | 34 | {
|
35 | 35 | for (long i=0; i < 600000; i++);
|
36 |
| - MUTEX.acquire(); |
| 36 | + SMARTS.contextSwitchOff(); |
37 | 37 | cout << "B";
|
38 |
| - MUTEX.release(); |
| 38 | + SMARTS.contextSwitchOn(); |
39 | 39 | }
|
40 |
| - MUTEX.acquire(); |
| 40 | + SMARTS.contextSwitchOff(); |
41 | 41 | cout << "\n ************* B Finish *********************";
|
42 |
| - MUTEX.release(); |
| 42 | + SMARTS.contextSwitchOn(); |
43 | 43 | }
|
44 | 44 |
|
45 | 45 | void c( )
|
46 | 46 | {
|
47 |
| - MUTEX.acquire(); |
| 47 | + SMARTS.contextSwitchOff(); |
48 | 48 | cout << "\n ************* C Start *********************";
|
49 |
| - MUTEX.release(); |
50 |
| - for (int j=0; j <10; j++) |
| 49 | + SMARTS.contextSwitchOn(); |
| 50 | + for (int j=0; j <500; j++) |
51 | 51 | {
|
52 | 52 | for (long i=0; i < 600000; i++);
|
53 |
| - MUTEX.acquire(); |
| 53 | + SMARTS.contextSwitchOff(); |
54 | 54 | cout << "C";
|
55 |
| - MUTEX.release(); |
| 55 | + SMARTS.contextSwitchOn(); |
56 | 56 | }
|
57 |
| - MUTEX.acquire(); |
| 57 | + SMARTS.contextSwitchOff(); |
58 | 58 | cout << "\n ************* C Finish *********************";
|
59 |
| - MUTEX.release(); |
| 59 | + SMARTS.contextSwitchOn(); |
60 | 60 | }
|
61 | 61 |
|
62 |
| -void a1() |
63 |
| -{ |
64 |
| - MUTEX.acquire(); |
65 |
| - //SMARTS.contextSwitchOff(); |
66 |
| - cout << "\n A"; |
67 |
| - for (long i = 0; i < 6000000; i++); |
68 |
| - cout << "\n ************* A1 *********************"; |
69 |
| - MUTEX.release(); |
70 |
| - //SMARTS.contextSwitchOn(); |
71 |
| -} |
72 |
| -void a2() |
73 |
| -{ |
74 |
| - MUTEX.acquire(); |
75 |
| - //SMARTS.contextSwitchOff();; |
76 |
| - cout << "\n ************* A2 *********************"; |
77 |
| - MUTEX.release(); |
78 |
| - //SMARTS.contextSwitchOn(); |
79 |
| -} |
80 |
| -void a3() |
81 |
| -{ |
82 |
| - MUTEX.acquire(); |
83 |
| - //SMARTS.contextSwitchOff(); |
84 |
| - cout << "\n ************* A3 *********************"; |
85 |
| - MUTEX.release(); |
86 |
| - //SMARTS.contextSwitchOn(); |
87 |
| -} |
88 |
| - |
89 |
| - |
90 |
| - |
91 | 62 | void main( )
|
92 | 63 | {
|
93 | 64 | clrscr();
|
94 | 65 | SMARTS.externalFunctions(timerInterruptHandler, scheduler, myTaskEnd, roundRobin);
|
95 |
| - //SMARTS.declareTask(a,'A', 51, 3, 30); |
96 |
| - //SMARTS.declareTask(b,'B', 50, 2, 20); |
97 |
| - //SMARTS.declareTask(c,'C', 49, 1, 10); |
98 |
| - SMARTS.declareTask(a3, 'c', 102, 2, 3); |
99 |
| - SMARTS.declareTask(a1, 'a', 100, 2, 1); |
100 |
| - SMARTS.declareTask(a2, 'b', 101, 2, 2); |
101 |
| - |
102 |
| - |
103 |
| - |
| 66 | + SMARTS.declareTask(a,'A'); |
| 67 | + SMARTS.declareTask(b,'B'); |
| 68 | + SMARTS.declareTask(c,'C'); |
104 | 69 | SMARTS.runTheTasks();
|
105 |
| - |
106 |
| - char a; |
107 |
| - cin >> a; |
108 | 70 | }
|
109 | 71 |
|
| 72 | + |
| 73 | + |
0 commit comments