From 5fcb5c2fe9f41cbe1ef15e757aebfa55194e59bd Mon Sep 17 00:00:00 2001 From: Elijah Mock <28277163+ekcom@users.noreply.github.com> Date: Tue, 27 Aug 2024 13:35:54 -0500 Subject: [PATCH 1/8] Grammar fix in Caching section --- background/background.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/background/background.tex b/background/background.tex index 2e7853b..450e337 100644 --- a/background/background.tex +++ b/background/background.tex @@ -46,7 +46,7 @@ \subsection{Caching} Ah yes, Caching. One of computer science's greatest problems. -Caching that we are referring is processor caching. +The caching that we are referring to is processor caching. If a particular address is already in the cache when reading or writing, the processor will perform the operation on the cache such as adding and update the actual memory later because updating memory is slow \cite[Section 3.4]{intel2015improving}. If it isn't, the processor requests a chunk of memory from the memory chip and stores it in the cache, kicking out the least recently used page -- this depends on caching policy, but Intel's does use this. This is done because the l3 processor cache is roughly three times faster to reach than the memory in terms of time \cite[p. 22]{levinthal2009performance} though exact speeds will vary based on the clock speed and architecture. From 279cc79a41821633358989183368a428cbd81472 Mon Sep 17 00:00:00 2001 From: Elijah Mock <28277163+ekcom@users.noreply.github.com> Date: Tue, 27 Aug 2024 13:39:34 -0500 Subject: [PATCH 2/8] Add commas to clause in Caching section --- background/background.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/background/background.tex b/background/background.tex index 450e337..3dbde49 100644 --- a/background/background.tex +++ b/background/background.tex @@ -47,7 +47,7 @@ \subsection{Caching} Ah yes, Caching. One of computer science's greatest problems. The caching that we are referring to is processor caching. -If a particular address is already in the cache when reading or writing, the processor will perform the operation on the cache such as adding and update the actual memory later because updating memory is slow \cite[Section 3.4]{intel2015improving}. +If a particular address is already in the cache when reading or writing, the processor will perform the operation on the cache, such as adding and update the actual memory, later because updating memory is slow \cite[Section 3.4]{intel2015improving}. If it isn't, the processor requests a chunk of memory from the memory chip and stores it in the cache, kicking out the least recently used page -- this depends on caching policy, but Intel's does use this. This is done because the l3 processor cache is roughly three times faster to reach than the memory in terms of time \cite[p. 22]{levinthal2009performance} though exact speeds will vary based on the clock speed and architecture. Naturally, this leads to problems because there are two different copies of the same value, in the cited paper this refers to an unshared line. From a7eab587cec5bfd38714a167f2686d3251af8c0d Mon Sep 17 00:00:00 2001 From: Elijah Mock <28277163+ekcom@users.noreply.github.com> Date: Tue, 27 Aug 2024 13:40:40 -0500 Subject: [PATCH 3/8] Grammar fix in Caching section --- background/background.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/background/background.tex b/background/background.tex index 3dbde49..418dea9 100644 --- a/background/background.tex +++ b/background/background.tex @@ -51,7 +51,7 @@ \subsection{Caching} If it isn't, the processor requests a chunk of memory from the memory chip and stores it in the cache, kicking out the least recently used page -- this depends on caching policy, but Intel's does use this. This is done because the l3 processor cache is roughly three times faster to reach than the memory in terms of time \cite[p. 22]{levinthal2009performance} though exact speeds will vary based on the clock speed and architecture. Naturally, this leads to problems because there are two different copies of the same value, in the cited paper this refers to an unshared line. -This isn't a class about caching, know how this could impact your code. +This isn't a class about caching, but you should know how this could impact your code. A short but non-complete list could be \begin{enumerate} From a5c3a47f424edb9812002e4ea1ff9497e473fc3d Mon Sep 17 00:00:00 2001 From: Elijah Mock <28277163+ekcom@users.noreply.github.com> Date: Tue, 27 Aug 2024 13:41:22 -0500 Subject: [PATCH 4/8] Grammar fix in Interrupts section --- background/background.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/background/background.tex b/background/background.tex index 418dea9..67812f4 100644 --- a/background/background.tex +++ b/background/background.tex @@ -62,7 +62,7 @@ \subsection{Caching} \subsection{Interrupts} -Interrupts are a important part of system programming. +Interrupts are an important part of system programming. An interrupt is internally an electrical signal that is delivered to the processor when something happens -- this is a hardware interrupt \cite{redhat_hardware_int}. Then the hardware decides if this is something that it should handle (i.e. handling keyboard or mouse input for older keyboard and mouses) or it should pass to the operating system. The operating system then decides if this is something that it should handle (i.e. paging a memory table from disk) or something the application should handle (i.e. a SEGFAULT). From a5e38fd46b4005a20aa749ca5e5a44d2c19a88cf Mon Sep 17 00:00:00 2001 From: Elijah Mock <28277163+ekcom@users.noreply.github.com> Date: Tue, 27 Aug 2024 13:42:20 -0500 Subject: [PATCH 5/8] Correct i.e.s to e.g.s in Interrupts section --- background/background.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/background/background.tex b/background/background.tex index 67812f4..6770b80 100644 --- a/background/background.tex +++ b/background/background.tex @@ -64,8 +64,8 @@ \subsection{Interrupts} Interrupts are an important part of system programming. An interrupt is internally an electrical signal that is delivered to the processor when something happens -- this is a hardware interrupt \cite{redhat_hardware_int}. -Then the hardware decides if this is something that it should handle (i.e. handling keyboard or mouse input for older keyboard and mouses) or it should pass to the operating system. -The operating system then decides if this is something that it should handle (i.e. paging a memory table from disk) or something the application should handle (i.e. a SEGFAULT). +Then the hardware decides if this is something that it should handle (e.g., handling keyboard or mouse input for older keyboard and mouses) or it should pass to the operating system. +The operating system then decides if this is something that it should handle (e.g., paging a memory table from disk) or something the application should handle (e.g., a SEGFAULT). If the operating system decides that this is something that the process or program should take care of, it sends a \textbf{software fault} and that software fault is then propagated. The application then decides if it is an error (SEGFAULT) or not (SIGPIPE for example) and reports to the user. Applications can also send signals to the kernel and to the hardware as well. From 32f9bd337b418c0ec899073ea2f9c9f7cffb83fd Mon Sep 17 00:00:00 2001 From: Elijah Mock <28277163+ekcom@users.noreply.github.com> Date: Tue, 27 Aug 2024 13:45:54 -0500 Subject: [PATCH 6/8] Grammar and typo fixes in hyperthreading section --- background/background.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/background/background.tex b/background/background.tex index 6770b80..7818bc6 100644 --- a/background/background.tex +++ b/background/background.tex @@ -87,9 +87,9 @@ \subsection{Optional: Hyperthreading} The overall result is more instructions executed in a shorter time. This potentially means that you can divide the number of cores you need to power smaller devices. -There be dragons here though. +There be dragons here, though. With hyperthreading, you must be wary of optimizations. -A famous hyperthreading bug that caused programs to crash if at least two processes were scheduled on a physical core, using specific registers, in a tight loop. +A famous hyperthreading bug caused programs to crash if at least two processes were scheduled on a physical core, using specific registers, in a tight loop. The actual problem is better explained through an architecture lens. But, the actual application was found through systems programmers working on OCaml's mainline \cite{leroy_2017}. From c17bf4318316b8baebbad07e612ab040e9ae462d Mon Sep 17 00:00:00 2001 From: Elijah Mock <28277163+ekcom@users.noreply.github.com> Date: Tue, 27 Aug 2024 13:56:55 -0500 Subject: [PATCH 7/8] Clear up wording in Git section --- background/background.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/background/background.tex b/background/background.tex index 7818bc6..fa3c4c6 100644 --- a/background/background.tex +++ b/background/background.tex @@ -135,7 +135,7 @@ \subsection{ssh} \subsection{git} -What is `git`? Git is a version control system. What that means is git stores the entire history of a directory. We refer to the directory as a repository. So what do you need to know is a few things. First, create your repository with the repo creator. If you haven't already signed into enterprise GitHub, make sure to do so otherwise your repository won't be created for you. After that, that means your repository is created on the server. Git is a decentralized version control system, meaning that you'll need to get a repository onto your VM. We can do this with a clone. Whatever you do, \textbf{do not go through the README.md tutorial}. +What is `git`? Git is a version control system. What that means is git stores the entire history of a directory. We refer to the directory as a repository. So what do you need to know is a few things. First, create your repository with the repo creator. If you haven't already signed into enterprise GitHub, make sure to do so otherwise your repository won't be created for you. After that, your repository is created on the server. Git is a decentralized version control system, meaning that you'll need to get a repository onto your VM. We can do this with a clone. Whatever you do, \textbf{do not go through the README.md tutorial}. \begin{lstlisting}[language=bash] $ git clone https://github.com/illinois-cs-coursework/fa23_cs341_ From 234c899d20334c8a6a32aebc3a8bf52f422d6516 Mon Sep 17 00:00:00 2001 From: Elijah Mock <28277163+ekcom@users.noreply.github.com> Date: Tue, 27 Aug 2024 15:11:09 -0500 Subject: [PATCH 8/8] Add Elijah to authors list --- AUTHORS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS.md b/AUTHORS.md index f557006..fb79bbf 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -210,3 +210,4 @@ Pradyumna Shome Benjamin West Pollak 姜芃越 Pengyue Jiang Andrew Orals +Elijah Mock