From 32375728b0423a8e51fc741c4258e56b9ff5f401 Mon Sep 17 00:00:00 2001 From: RinRi Date: Tue, 1 Nov 2022 18:30:11 +0300 Subject: [PATCH] week8 --- week08/ex1.txt | 4 ++++ week08/ex2 | Bin 0 -> 20760 bytes week08/ex2.c | 31 +++++++++++++++++++++++++++++++ week08/ex2.sh | 5 +++++ week08/ex3.sh | 5 +++++ week08/ex4 | Bin 0 -> 20968 bytes week08/ex4.c | 26 ++++++++++++++++++++++++++ week08/ex4.sh | 4 ++++ week08/ex5.txt | 3 +++ week08/ex6.txt | 4 ++++ 10 files changed, 82 insertions(+) create mode 100644 week08/ex1.txt create mode 100755 week08/ex2 create mode 100644 week08/ex2.c create mode 100755 week08/ex2.sh create mode 100755 week08/ex3.sh create mode 100755 week08/ex4 create mode 100644 week08/ex4.c create mode 100755 week08/ex4.sh create mode 100644 week08/ex5.txt create mode 100644 week08/ex6.txt diff --git a/week08/ex1.txt b/week08/ex1.txt new file mode 100644 index 0000000..f60f894 --- /dev/null +++ b/week08/ex1.txt @@ -0,0 +1,4 @@ + total used free shared buff/cache available +Mem: 14Gi 2.4Gi 10Gi 88Mi 2.0Gi 11Gi +Swap: 8.0Gi 0B 8.0Gi +Total: 22Gi 2.4Gi 18Gi diff --git a/week08/ex2 b/week08/ex2 new file mode 100755 index 0000000000000000000000000000000000000000..1649abd825d3e896d072cbd707bbff2cdf3f0572 GIT binary patch literal 20760 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 literal 0 HcmV?d00001 diff --git a/week08/ex2.c b/week08/ex2.c new file mode 100644 index 0000000..9259867 --- /dev/null +++ b/week08/ex2.c @@ -0,0 +1,31 @@ +#include +#include +#include +#include + +#define TENMB 10*1024*1024 + +/* vmstat 1 + * Inconsistently, probably because timings are not ideal, + * but every second free memory decreases by approximately 10MB. + * si and so are 0, because swap memory wasn't being used. + */ + +/* top -d 1 + * By pressing M, top sorts processes by memory usage. + * Compared to vmstat, top updates total memory usage + * slower. Every second ex2 goes to the top of the 'top'. + */ + + +int main() { + char *p[10]; + for (int i = 0; i < 10; i++) { + p[i] = malloc(TENMB); + memset(p[i], 0, TENMB); + sleep(1); + } + for (int i = 0; i < 10; i++) { + free(p[i]); + } +} diff --git a/week08/ex2.sh b/week08/ex2.sh new file mode 100755 index 0000000..0e24fa6 --- /dev/null +++ b/week08/ex2.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +gcc ex2.c -o ex2 +./ex2 & +vmstat 1 diff --git a/week08/ex3.sh b/week08/ex3.sh new file mode 100755 index 0000000..430af44 --- /dev/null +++ b/week08/ex3.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +gcc ex2.c -o ex2 +./ex2 & +top -d 1 diff --git a/week08/ex4 b/week08/ex4 new file mode 100755 index 0000000000000000000000000000000000000000..8144217f96251dee8760c819e9c7a2f8d2233407 GIT binary patch literal 20968 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 +#include +#include +#include +#include + +#define TENMB 10*1024*1024 + +int main() { + char *p[10]; + for (int i = 0; i < 10; i++) { + p[i] = malloc(TENMB); + memset(p[i], 0, TENMB); + struct rusage usage; + if (getrusage(RUSAGE_SELF, &usage) == 0) { + printf("Usage: %ldKB\n", usage.ru_maxrss); + } else { + perror("getrusage"); + exit(1); + } + sleep(1); + } + for (int i = 0; i < 10; i++) { + free(p[i]); + } +} diff --git a/week08/ex4.sh b/week08/ex4.sh new file mode 100755 index 0000000..8dd0309 --- /dev/null +++ b/week08/ex4.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +gcc ex4.c -o ex4 +./ex4 diff --git a/week08/ex5.txt b/week08/ex5.txt new file mode 100644 index 0000000..5a9aa62 --- /dev/null +++ b/week08/ex5.txt @@ -0,0 +1,3 @@ +Physical address is the actual address in the main memory, whereas virtual address is a logical one that is generated by CPU's MMU. +Virtual address points to the virtual memory, CPU and OS will take that address and convert it to the physical one to access the actual data. +All programs running on OS use virtual addresses, since they don't have access to the physical memory. diff --git a/week08/ex6.txt b/week08/ex6.txt new file mode 100644 index 0000000..ec3abf8 --- /dev/null +++ b/week08/ex6.txt @@ -0,0 +1,4 @@ +16-bit address can access 2^16 = 65536 bytes of memory +8KB is 8192 bytes. +65536 / 8192 = 8 pages +Since there are 8 pages, there are 8 table entries.