jekyll-theme-gaeblogx 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +9 -0
  4. data/_includes/algolia.html +75 -0
  5. data/_includes/backToTop.html +5 -0
  6. data/_includes/category.html +19 -0
  7. data/_includes/comments.html +46 -0
  8. data/_includes/footer.html +33 -0
  9. data/_includes/head.html +58 -0
  10. data/_includes/header.html +34 -0
  11. data/_includes/previousAndNext.html +13 -0
  12. data/_includes/sidebar-search.html +25 -0
  13. data/_includes/tag.html +16 -0
  14. data/_layouts/default.html +26 -0
  15. data/_layouts/demo.html +10 -0
  16. data/_layouts/page.html +31 -0
  17. data/_layouts/post.html +107 -0
  18. data/_sass/_backToTop.scss +49 -0
  19. data/_sass/_demo.scss +65 -0
  20. data/_sass/_footer.scss +63 -0
  21. data/_sass/_header.scss +174 -0
  22. data/_sass/_index.scss +174 -0
  23. data/_sass/_layout.scss +242 -0
  24. data/_sass/_page.scss +238 -0
  25. data/_sass/_post-old.scss +109 -0
  26. data/_sass/_post.scss +83 -0
  27. data/_sass/_reset.scss +119 -0
  28. data/_sass/_scrollbar.scss +35 -0
  29. data/_sass/_syntax-highlighting.scss +99 -0
  30. data/assets/10.jpg +0 -0
  31. data/assets/AWS-Introduction-ec2.png +0 -0
  32. data/assets/Cache-Oblivious-Algorithms-FunnelSort.jpg +0 -0
  33. data/assets/Condition-Variables-fig1.png +0 -0
  34. data/assets/Dynamic-Compilation-adaptJVM.pdf +0 -0
  35. data/assets/Dynamic-Compilation-dyncomp.pdf +0 -0
  36. data/assets/Fibonacci-Heap-Fig3.png +0 -0
  37. data/assets/Fibonacci-Heap-Fig5.png +0 -0
  38. data/assets/Fibonacci-Heap-Fig6.png +0 -0
  39. data/assets/Fibonacci-Heap-Fig7.png +0 -0
  40. data/assets/File-System-bc.jpg +0 -0
  41. data/assets/File-System-filetable.rich.jpg +0 -0
  42. data/assets/GIL-Battle.png +0 -0
  43. data/assets/GIL-CPU.png +0 -0
  44. data/assets/GIL-Check.png +0 -0
  45. data/assets/GIL-IO.png +0 -0
  46. data/assets/GIL-Measure-1.png +0 -0
  47. data/assets/GIL-Measure-2.png +0 -0
  48. data/assets/GIL-Signal.png +0 -0
  49. data/assets/GIL-Tick.png +0 -0
  50. data/assets/Garbage-Collection-Slides-gc.pdf +0 -0
  51. data/assets/Garbage-Collection-copying-1.png +0 -0
  52. data/assets/Garbage-Collection-copying-2.png +0 -0
  53. data/assets/Garbage-Collection-free-list.png +0 -0
  54. data/assets/Garbage-Collection-generation-1.png +0 -0
  55. data/assets/Garbage-Collection-mark-sweep.png +0 -0
  56. data/assets/Garbage-Collection-nursery-1.png +0 -0
  57. data/assets/Garbage-Collection-nursery-2.png +0 -0
  58. data/assets/Garbage-Collection-nursery-3.png +0 -0
  59. data/assets/Garbage-Collection-nursery-4.png +0 -0
  60. data/assets/Garbage-Collection-nursery-5.png +0 -0
  61. data/assets/Garbage-Collection-process.png +0 -0
  62. data/assets/Garbage-Collection-ref-counting.png +0 -0
  63. data/assets/Interpreter-Optimization-interp.pdf +0 -0
  64. data/assets/Memory-Management-fig1.png +0 -0
  65. data/assets/Memory-Management-fig2.png +0 -0
  66. data/assets/Memory-Management-fig3.png +0 -0
  67. data/assets/Memory-Management-fig4.png +0 -0
  68. data/assets/Memory-Management-fig5.png +0 -0
  69. data/assets/Memory-Management-fig6.png +0 -0
  70. data/assets/Memory-Management-fig7.png +0 -0
  71. data/assets/Memory-Management-fig8.png +0 -0
  72. data/assets/Multicore-GIL-1.png +0 -0
  73. data/assets/Multicore-GIL-2.png +0 -0
  74. data/assets/My-Photo.JPG +0 -0
  75. data/assets/Operating-System-Virtualization-ept.png +0 -0
  76. data/assets/Operating-System-Virtualization-guest-page.png +0 -0
  77. data/assets/Operating-System-Virtualization-kvm-arch.png +0 -0
  78. data/assets/Operating-System-Virtualization-kvm-process.png +0 -0
  79. data/assets/Operating-System-Virtualization-kvm-qemu.png +0 -0
  80. data/assets/Operating-System-Virtualization-kvm-state.png +0 -0
  81. data/assets/Operating-System-Virtualization-vtx.png +0 -0
  82. data/assets/Operating-System-Virtualization-xen-arch.png +0 -0
  83. data/assets/Program-Profiling-profiling.pdf +0 -0
  84. data/assets/Programming-Language-Virtual-Machine-vm.pdf +0 -0
  85. data/assets/Remote-Shell-Session-Setup-1.png +0 -0
  86. data/assets/Signals-1.png +0 -0
  87. data/assets/Signals-2.png +0 -0
  88. data/assets/Signals-3.png +0 -0
  89. data/assets/Some-Slides-about-Containers-Kubernetes.pdf +0 -0
  90. data/assets/Some-Slides-about-Containers-UCSB-nurmi.pdf +0 -0
  91. data/assets/Some-Slides-about-PaaS-CS293B_CloudPlatforms.pdf +0 -0
  92. data/assets/avg-1thread.c +172 -0
  93. data/assets/avg-manythread.c +284 -0
  94. data/assets/avg-nothread.c +71 -0
  95. data/assets/file-create1.c +75 -0
  96. data/assets/file-create2.c +120 -0
  97. data/assets/file-fd1.c +56 -0
  98. data/assets/file-fd2.c +25 -0
  99. data/assets/file-fd3.c +23 -0
  100. data/assets/file-read1.c +62 -0
  101. data/assets/file-read2.c +66 -0
  102. data/assets/file-seek1.c +87 -0
  103. data/assets/fork-1.c +35 -0
  104. data/assets/fork-2.c +44 -0
  105. data/assets/fork-3.c +60 -0
  106. data/assets/fork-4.c +64 -0
  107. data/assets/joinall-1.c +163 -0
  108. data/assets/joinall-2.c +162 -0
  109. data/assets/market-kthreads.c +465 -0
  110. data/assets/market-semaphore.c +504 -0
  111. data/assets/market1.c +478 -0
  112. data/assets/market2.c +490 -0
  113. data/assets/market3.c +503 -0
  114. data/assets/market4.c +509 -0
  115. data/assets/my-cat.c +35 -0
  116. data/assets/pipe-1.c +45 -0
  117. data/assets/pipe-2.c +80 -0
  118. data/assets/pipe-3.c +83 -0
  119. data/assets/pipe-4.c +116 -0
  120. data/assets/race1.c +75 -0
  121. data/assets/race2.c +77 -0
  122. data/assets/race3.c +87 -0
  123. data/assets/race_ABC.c +144 -0
  124. data/assets/search-by-algolia.svg +1 -0
  125. data/assets/semaphore.book.ps +8827 -0
  126. data/assets/sys-call1.c +20 -0
  127. data/assets/sys-call2.c +16 -0
  128. data/assets//350/265/253/347/202/2161.PNG +0 -0
  129. data/feed.xml +30 -0
  130. data/index.html +164 -0
  131. data/js/jekyll-search.min.js +1 -0
  132. data/js/lunr.min.js +2977 -0
  133. data/js/main.js +57 -0
  134. data/js/masonry.pkgd.min.js +9 -0
  135. data/js/pageContent.js +166 -0
  136. data/js/search.js +17 -0
  137. data/js/smooth-scroll.min.js +2 -0
  138. data/js/waterfall.js +214 -0
  139. data/page/0archives.html +83 -0
  140. data/page/1category.html +62 -0
  141. data/page/2tags.html +64 -0
  142. data/page/3search.html +112 -0
  143. data/page/4about.md +34 -0
  144. metadata +270 -0
@@ -0,0 +1,71 @@
1
+ #include <unistd.h>
2
+ #include <stdlib.h>
3
+ #include <stdio.h>
4
+
5
+ /*
6
+ * program to find the average value of a set of random numbers
7
+ *
8
+ * usage: avg-nothread count
9
+ *
10
+ * where count is the number of random values to generate
11
+ */
12
+
13
+ char *Usage = "usage: avg-nothread count";
14
+
15
+ #define RAND() (drand48()) /* basic Linux random number generator */
16
+
17
+ int main(int argc, char **argv)
18
+ {
19
+ int i;
20
+ int n;
21
+ double *data;
22
+ double sum;
23
+ int count;
24
+
25
+ /*
26
+ * santity check the arguments
27
+ */
28
+ if(argc <= 1) {
29
+ fprintf(stderr,"must specify count\n");
30
+ fprintf(stderr,"%s",Usage);
31
+ exit(1);
32
+ }
33
+
34
+ count = atoi(argv[1]); /* count is first argument */
35
+
36
+ if(count <= 0) {
37
+ fprintf(stderr,"invalid count %d\n",count);
38
+ exit(1);
39
+ }
40
+
41
+ /*
42
+ * make an array large enough to hold #count# doubles
43
+ */
44
+ data = (double *)malloc(count * sizeof(double));
45
+ if(data == NULL) {
46
+ exit(1);
47
+ }
48
+
49
+ /*
50
+ * pick a bunch of random numbers
51
+ */
52
+ for(i=0; i < count; i++) {
53
+ data[i] = RAND();
54
+ }
55
+
56
+ /*
57
+ * now scan through them and compute the sum
58
+ */
59
+ sum = 0;
60
+ for(i=0; i < count; i++) {
61
+ sum += data[i];
62
+ }
63
+
64
+ printf("the average over %d random numbers on (0,1) is %f\n",
65
+ count, sum/(double)count);
66
+
67
+ free(data);
68
+
69
+ return(0);
70
+ }
71
+
@@ -0,0 +1,75 @@
1
+ #include <unistd.h>
2
+ #include <stdlib.h>
3
+ #include <stdio.h>
4
+ #include <string.h>
5
+ #include <fcntl.h>
6
+
7
+ /*
8
+ * open to create a file and write a string into it
9
+ */
10
+ int main(int argc, char **argv)
11
+ {
12
+ int my_file_desc;
13
+ char file_name[4096];
14
+ char write_buffer[4096];
15
+ int write_length;
16
+ char *string;
17
+ int i;
18
+ int w;
19
+
20
+ if(argc < 2) {
21
+ printf("need to specify a file name as the first argument\n");
22
+ exit(1);
23
+ }
24
+
25
+ /*
26
+ * zero out the buffer for the file name
27
+ */
28
+ for(i=0; i < sizeof(file_name); i++) {
29
+ file_name[i] = 0;
30
+ }
31
+
32
+ /*
33
+ * copy the argument into a local buffer
34
+ */
35
+ strncpy(file_name,argv[1],sizeof(file_name));
36
+ file_name[sizeof(file_name)-1] = 0;
37
+
38
+ /*
39
+ * try and open the file for creation
40
+ */
41
+ my_file_desc = open(file_name,O_CREAT | O_WRONLY,0600);
42
+ if(my_file_desc < 0) {
43
+ printf("failed to open %s for creation\n",file_name);
44
+ exit(1);
45
+ }
46
+
47
+ /*
48
+ * file is open, write a string into it
49
+ */
50
+ string =
51
+ "This program brought to you by the council for better C programming";
52
+ for(i=0; i < sizeof(write_buffer); i++) {
53
+ write_buffer[i] = 0;
54
+ }
55
+ strncpy(write_buffer,string,sizeof(write_buffer));
56
+
57
+ write_length = strlen(write_buffer);
58
+
59
+ w = write(my_file_desc,write_buffer,write_length);
60
+
61
+ if(w != write_length) {
62
+ printf("write didn't complete, w: %d, length: %d\n",
63
+ w,
64
+ write_length);
65
+ close(my_file_desc);
66
+ exit(1);
67
+ }
68
+
69
+ close(my_file_desc);
70
+
71
+ return(0);
72
+
73
+ }
74
+
75
+
@@ -0,0 +1,120 @@
1
+ #include <unistd.h>
2
+ #include <stdlib.h>
3
+ #include <stdio.h>
4
+ #include <string.h>
5
+ #include <fcntl.h>
6
+
7
+ /*
8
+ * open to create a couple of files and write a strings into each
9
+ */
10
+ int main(int argc, char **argv)
11
+ {
12
+ int fd1;
13
+ int fd2;
14
+ char file_name1[4096];
15
+ char file_name2[4096];
16
+ char write_buffer[4096];
17
+ int write_length;
18
+ char *string;
19
+ int i;
20
+ int w;
21
+
22
+ if(argc < 3) {
23
+ printf("need to specify two file names as the first and second arguments\n");
24
+ exit(1);
25
+ }
26
+
27
+ /*
28
+ * zero out the buffers for the file names
29
+ */
30
+ for(i=0; i < sizeof(file_name1); i++) {
31
+ file_name1[i] = 0;
32
+ file_name2[i] = 0;
33
+ }
34
+
35
+ /*
36
+ * copy the first argument into a local buffer
37
+ */
38
+ strncpy(file_name1,argv[1],sizeof(file_name1));
39
+ file_name1[sizeof(file_name1)-1] = 0;
40
+
41
+ /*
42
+ * and the second
43
+ */
44
+ strncpy(file_name2,argv[2],sizeof(file_name2));
45
+ file_name2[sizeof(file_name2)-1] = 0;
46
+
47
+ /*
48
+ * try and open the first file for creation
49
+ */
50
+ fd1 = open(file_name1,O_CREAT | O_WRONLY, 0600);
51
+ if(fd1 < 0) {
52
+ printf("failed to open %s for creation\n",file_name1);
53
+ exit(1);
54
+ }
55
+
56
+ /*
57
+ * and the second
58
+ */
59
+ fd2 = open(file_name2,O_CREAT | O_WRONLY, 0600);
60
+ if(fd2 < 0) {
61
+ printf("failed to open %s for creation\n",file_name2);
62
+ close(fd1);
63
+ exit(1);
64
+ }
65
+
66
+ /*
67
+ * both files are open, write a string into first
68
+ */
69
+ string =
70
+ "This program brought to you by the council for better C programming";
71
+ for(i=0; i < sizeof(write_buffer); i++) {
72
+ write_buffer[i] = 0;
73
+ }
74
+ strncpy(write_buffer,string,sizeof(write_buffer));
75
+
76
+ write_length = strlen(write_buffer);
77
+
78
+ w = write(fd1,write_buffer,write_length);
79
+
80
+ if(w != write_length) {
81
+ printf("write didn't complete, w: %d, length: %d in %s\n",
82
+ w,
83
+ write_length,
84
+ file_name1);
85
+ close(fd1);
86
+ close(fd2);
87
+ exit(1);
88
+ }
89
+
90
+ /*
91
+ * and the second
92
+ */
93
+ string = "C programming is both nutritious and great tasting.";
94
+ for(i=0; i < sizeof(write_buffer); i++) {
95
+ write_buffer[i] = 0;
96
+ }
97
+ strncpy(write_buffer,string,sizeof(write_buffer));
98
+
99
+ write_length = strlen(write_buffer);
100
+
101
+ w = write(fd2,write_buffer,write_length);
102
+
103
+ if(w != write_length) {
104
+ printf("write didn't complete, w: %d, length: %d in %s\n",
105
+ w,
106
+ write_length,
107
+ file_name2);
108
+ close(fd1);
109
+ close(fd2);
110
+ exit(1);
111
+ }
112
+
113
+ close(fd1);
114
+ close(fd2);
115
+
116
+ return(0);
117
+
118
+ }
119
+
120
+
data/assets/file-fd1.c ADDED
@@ -0,0 +1,56 @@
1
+ #include <unistd.h>
2
+ #include <stdlib.h>
3
+ #include <stdio.h>
4
+ #include <string.h>
5
+ #include <fcntl.h>
6
+
7
+ /*
8
+ * print out some file descriptors
9
+ */
10
+ int main(int argc, char **argv)
11
+ {
12
+ int my_file_desc;
13
+ char file_name[4096];
14
+ int i;
15
+ int r;
16
+ char *string;
17
+
18
+ if(argc < 2) {
19
+ printf("need to specify a file name\n");
20
+ exit(1);
21
+ }
22
+
23
+ /*
24
+ * zero out the buffer for the file name
25
+ */
26
+ for(i=0; i < sizeof(file_name); i++) {
27
+ file_name[i] = 0;
28
+ }
29
+
30
+ /*
31
+ * copy the argument into a local buffer
32
+ */
33
+ strncpy(file_name,argv[1],sizeof(file_name));
34
+ file_name[sizeof(file_name)-1] = 0;
35
+
36
+ /*
37
+ * try and open the file for reading
38
+ */
39
+ my_file_desc = open(file_name,O_RDONLY,0);
40
+ if(my_file_desc < 0) {
41
+ printf("failed to open %s for reading\n",file_name);
42
+ exit(1);
43
+ }
44
+
45
+ printf("my_file_desc: %d\n",my_file_desc);
46
+
47
+ string = "a string written to standard out\n";
48
+ write(1,string,strlen(string));
49
+
50
+ close(my_file_desc);
51
+
52
+ return(0);
53
+
54
+ }
55
+
56
+
data/assets/file-fd2.c ADDED
@@ -0,0 +1,25 @@
1
+ #include <unistd.h>
2
+ #include <stdlib.h>
3
+ #include <stdio.h>
4
+ #include <string.h>
5
+ #include <fcntl.h>
6
+
7
+ /*
8
+ * write to stdout and stderr
9
+ */
10
+ int main(int argc, char **argv)
11
+ {
12
+ char *string;
13
+ char *string_err;
14
+
15
+ string = "a string written to standard out\n";
16
+ write(1,string,strlen(string));
17
+
18
+ string_err = "a string written to standard error\n";
19
+ write(2,string_err,strlen(string_err));
20
+
21
+ return(0);
22
+
23
+ }
24
+
25
+
data/assets/file-fd3.c ADDED
@@ -0,0 +1,23 @@
1
+ #include <unistd.h>
2
+ #include <stdlib.h>
3
+ #include <stdio.h>
4
+ #include <string.h>
5
+ #include <fcntl.h>
6
+
7
+ /*
8
+ * read from stdin and write to stdout
9
+ */
10
+ int main(int argc, char **argv)
11
+ {
12
+ char buffer[4096];
13
+
14
+ memset(buffer,0,sizeof(buffer));
15
+
16
+ read(0,buffer,sizeof(buffer));
17
+ write(1,buffer,strlen(buffer));
18
+
19
+ return(0);
20
+
21
+ }
22
+
23
+
@@ -0,0 +1,62 @@
1
+ #include <unistd.h>
2
+ #include <stdlib.h>
3
+ #include <stdio.h>
4
+ #include <string.h>
5
+ #include <fcntl.h>
6
+
7
+ /*
8
+ * open and read the contents of a file, printing them out as ascii
9
+ * characters
10
+ */
11
+ int main(int argc, char **argv)
12
+ {
13
+ int my_file_desc;
14
+ char file_name[4096];
15
+ char read_buffer[4096];
16
+ int i;
17
+ int r;
18
+
19
+ if(argc < 2) {
20
+ printf("need to specify a file name as the first argument\n");
21
+ exit(1);
22
+ }
23
+
24
+ /*
25
+ * zero out the buffer for the file name
26
+ */
27
+ for(i=0; i < sizeof(file_name); i++) {
28
+ file_name[i] = 0;
29
+ }
30
+
31
+ /*
32
+ * copy the argument into a local buffer
33
+ */
34
+ strncpy(file_name,argv[1],sizeof(file_name));
35
+ file_name[sizeof(file_name)-1] = 0;
36
+
37
+ /*
38
+ * try and open the file for reading
39
+ */
40
+ my_file_desc = open(file_name,O_RDONLY,0);
41
+ if(my_file_desc < 0) {
42
+ printf("failed to open %s for reading\n",file_name);
43
+ exit(1);
44
+ }
45
+
46
+ for(i=0; i < sizeof(read_buffer); i++) {
47
+ read_buffer[i] = 0;
48
+ }
49
+
50
+ r = read(my_file_desc,read_buffer,sizeof(read_buffer)-1);
51
+
52
+ printf("file: %s contains the string: %s\n",
53
+ file_name,
54
+ read_buffer);
55
+
56
+ close(my_file_desc);
57
+
58
+ return(0);
59
+
60
+ }
61
+
62
+
@@ -0,0 +1,66 @@
1
+ #include <unistd.h>
2
+ #include <stdlib.h>
3
+ #include <stdio.h>
4
+ #include <string.h>
5
+ #include <fcntl.h>
6
+
7
+ /*
8
+ * read the file in its entirety (like the cat utility)
9
+ */
10
+ int main(int argc, char **argv)
11
+ {
12
+ int my_file_desc;
13
+ char file_name[4096];
14
+ char read_buffer[4096];
15
+ int i;
16
+ int r;
17
+
18
+ if(argc < 2) {
19
+ printf("need to specify a file name as the first argument\n");
20
+ exit(1);
21
+ }
22
+
23
+ /*
24
+ * zero out the buffer for the file name
25
+ */
26
+ for(i=0; i < sizeof(file_name); i++) {
27
+ file_name[i] = 0;
28
+ }
29
+
30
+ /*
31
+ * copy the argument into a local buffer
32
+ */
33
+ strncpy(file_name,argv[1],sizeof(file_name));
34
+ file_name[sizeof(file_name)-1] = 0;
35
+
36
+ /*
37
+ * try and open the file for reading
38
+ */
39
+ my_file_desc = open(file_name,O_RDONLY,0);
40
+ if(my_file_desc < 0) {
41
+ printf("failed to open %s for reading\n",file_name);
42
+ exit(1);
43
+ }
44
+
45
+ for(i=0; i < sizeof(read_buffer); i++) {
46
+ read_buffer[i] = 0;
47
+ }
48
+ r = read(my_file_desc,read_buffer,sizeof(read_buffer)-1);
49
+
50
+ /*
51
+ * read and print until EOF
52
+ */
53
+ while(r > 0) {
54
+ printf("%s",read_buffer);
55
+ for(i=0; i < sizeof(read_buffer); i++) {
56
+ read_buffer[i] = 0;
57
+ }
58
+ r = read(my_file_desc,read_buffer,sizeof(read_buffer)-1);
59
+ }
60
+ close(my_file_desc);
61
+
62
+ return(0);
63
+
64
+ }
65
+
66
+