Skip to content

Commit

Permalink
Merge pull request #207 from ekcom/fix/background-typos
Browse files Browse the repository at this point in the history
Grammar fixes on Background page
  • Loading branch information
angrave authored Aug 27, 2024
2 parents 643ca6d + 234c899 commit f2c4c38
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
1 change: 1 addition & 0 deletions AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,3 +210,4 @@ Pradyumna Shome <[email protected]>
Benjamin West Pollak <[email protected]>
姜芃越 Pengyue Jiang <[email protected]>
Andrew Orals <[email protected]>
Elijah Mock <[email protected]>
18 changes: 9 additions & 9 deletions background/background.tex
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ \subsection{Caching}

Ah yes, Caching.
One of computer science's greatest problems.
Caching that we are referring 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}.
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.
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}
Expand All @@ -62,10 +62,10 @@ \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).
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.
Expand All @@ -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}.

Expand Down Expand Up @@ -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_<netid>
Expand Down

0 comments on commit f2c4c38

Please sign in to comment.