Browse Source

Init ANSWERS.md, fixed errors in .c files

Lorenz Bung 7 years ago
parent
commit
2499c5150d

+ 33
- 0
hw8/simu2/ANSWERS.md View File

1
+# hw8 - Simulation 2 - Antworten
2
+
3
+0. Beim Erstellen wird ein Pointer übergeben, welcher dann in einen int gecastet werden soll. Dies funktioniert jedoch nicht, da die Größe unterschiedlich ist. Um dies zu beheben, castet man den Pointer einfach zu einem `long int`, dann stimmt die Größe.
4
+
5
+## `main-two-cvs-while.c`
6
+
7
+1. Wenn der Buffer größer wird, ändert sich nichts am Code. Die Zahl der produzierten Werte ist jedoch linear zu den Codezeilen. Das Programm ist also nicht abhängig von der Buffergröße.
8
+
9
+2. Der Producer wird (sofern die Zahl der produzierten Werte größer ist als die Größe des Buffers) den Buffer komplett füllen und der Consumer dann immer ein Item konsumieren. Im Gegensatz dazu hat der Consumer im ersten Test immer sofort konsumiert, d.h. der Buffer läuft nie voll.
10
+
11
+3.
12
+
13
+4.
14
+
15
+5.
16
+
17
+6.
18
+
19
+7.
20
+
21
+## `main-one-cv-while.c`
22
+
23
+1.
24
+
25
+2.
26
+
27
+## `main-two-cvs-if.c`
28
+
29
+1.
30
+
31
+## `main-two-cvs-while-extra-unlock.c`
32
+
33
+1.

+ 2
- 2
hw8/simu2/main-one-cv-while.c View File

34
 }
34
 }
35
 
35
 
36
 void *producer(void *arg) {
36
 void *producer(void *arg) {
37
-    int id = (int) arg;
37
+    long int id = (long int) arg;
38
     // make sure each producer produces unique values
38
     // make sure each producer produces unique values
39
     int base = id * loops; 
39
     int base = id * loops; 
40
     int i;
40
     int i;
51
 }
51
 }
52
                                                                                
52
                                                                                
53
 void *consumer(void *arg) {
53
 void *consumer(void *arg) {
54
-    int id = (int) arg;
54
+    long int id = (long int) arg;
55
     int tmp = 0;
55
     int tmp = 0;
56
     int consumed_count = 0;
56
     int consumed_count = 0;
57
     while (tmp != END_OF_STREAM) { c0;
57
     while (tmp != END_OF_STREAM) { c0;

+ 2
- 2
hw8/simu2/main-two-cvs-if.c View File

34
 }
34
 }
35
 
35
 
36
 void *producer(void *arg) {
36
 void *producer(void *arg) {
37
-    int id = (int) arg;
37
+    long int id = (long int) arg;
38
     // make sure each producer produces unique values
38
     // make sure each producer produces unique values
39
     int base = id * loops; 
39
     int base = id * loops; 
40
     int i;
40
     int i;
51
 }
51
 }
52
                                                                                
52
                                                                                
53
 void *consumer(void *arg) {
53
 void *consumer(void *arg) {
54
-    int id = (int) arg;
54
+    long int id = (long int) arg;
55
     int tmp = 0;
55
     int tmp = 0;
56
     int consumed_count = 0;
56
     int consumed_count = 0;
57
     while (tmp != END_OF_STREAM) { c0;
57
     while (tmp != END_OF_STREAM) { c0;

+ 2
- 2
hw8/simu2/main-two-cvs-while-extra-unlock.c View File

35
 }
35
 }
36
 
36
 
37
 void *producer(void *arg) {
37
 void *producer(void *arg) {
38
-    int id = (int) arg;
38
+    long int id = (long int) arg;
39
     // make sure each producer produces unique values
39
     // make sure each producer produces unique values
40
     int base = id * loops; 
40
     int base = id * loops; 
41
     int i;
41
     int i;
54
 }
54
 }
55
                                                                                
55
                                                                                
56
 void *consumer(void *arg) {
56
 void *consumer(void *arg) {
57
-    int id = (int) arg;
57
+    long int id = (long int) arg;
58
     int tmp = 0;
58
     int tmp = 0;
59
     int consumed_count = 0;
59
     int consumed_count = 0;
60
     while (tmp != END_OF_STREAM) { c0;
60
     while (tmp != END_OF_STREAM) { c0;

+ 2
- 2
hw8/simu2/main-two-cvs-while.c View File

36
 }
36
 }
37
 
37
 
38
 void *producer(void *arg) {
38
 void *producer(void *arg) {
39
-    int id = (int) arg;
39
+    long int id = (long int) arg;
40
     // make sure each producer produces unique values
40
     // make sure each producer produces unique values
41
     int base = id * loops; 
41
     int base = id * loops; 
42
     int i;
42
     int i;
53
 }
53
 }
54
                                                                                
54
                                                                                
55
 void *consumer(void *arg) {
55
 void *consumer(void *arg) {
56
-    int id = (int) arg;
56
+    long int id = (long int) arg;
57
     int tmp = 0;
57
     int tmp = 0;
58
     int consumed_count = 0;
58
     int consumed_count = 0;
59
     while (tmp != END_OF_STREAM) { c0;
59
     while (tmp != END_OF_STREAM) { c0;

Loading…
Cancel
Save