瀏覽代碼

Init ANSWERS.md, fixed errors in .c files

Lorenz Bung 7 年之前
父節點
當前提交
2499c5150d

+ 33
- 0
hw8/simu2/ANSWERS.md 查看文件

@@ -0,0 +1,33 @@
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 查看文件

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

+ 2
- 2
hw8/simu2/main-two-cvs-if.c 查看文件

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

+ 2
- 2
hw8/simu2/main-two-cvs-while-extra-unlock.c 查看文件

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

+ 2
- 2
hw8/simu2/main-two-cvs-while.c 查看文件

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

Loading…
取消
儲存