mirror of
https://github.com/cs341-illinois/coursebook.git
synced 2026-10-01 23:54:40 +08:00
Make master work again
This commit is contained in:
+2
-2
@@ -17,6 +17,7 @@ Just know that there are other ways of dividing up memory like with \texttt{mmap
|
||||
\section{C Memory Allocation API}
|
||||
|
||||
\begin{itemize}
|
||||
|
||||
\item \keyword{malloc(size\_t bytes)} is a C library call and is used to reserve a contiguous block of memory that may be uninitialized \cite[P. 348]{jones2010wg14}.
|
||||
Unlike stack memory, the memory remains allocated until \keyword{free} is called with the same pointer.
|
||||
If \keyword{malloc} can either return a pointer to at least that much free space requested or \texttt{NULL}.
|
||||
@@ -111,6 +112,7 @@ free(ptr);
|
||||
\end{lstlisting}
|
||||
|
||||
If you use a piece of memory after it is freed - that is undefined behavior.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Heaps and sbrk}
|
||||
@@ -466,7 +468,6 @@ One of three allocators used internally by the Linux Kernel.
|
||||
See \href{http://man7.org/linux/man-pages/man3/malloc.3.html}{the man page}!
|
||||
|
||||
\begin{itemize}
|
||||
\tightlist
|
||||
\item
|
||||
\href{http://en.wikipedia.org/wiki/SLUB_\%28software\%29}{SLUB} (wikipedia)
|
||||
\item
|
||||
@@ -476,7 +477,6 @@ See \href{http://man7.org/linux/man-pages/man3/malloc.3.html}{the man page}!
|
||||
\section{Topics}
|
||||
|
||||
\begin{itemize}
|
||||
\tightlist
|
||||
\item
|
||||
Best Fit
|
||||
\item
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
@misc{mallocinternals, title={Overview of Malloc}, url={https://sourceware.org/glibc/wiki/MallocInternals}, journal={MallocInternals - glibc wiki}, publisher={Free Software Foundation}, year={2018}, month={Mar}}
|
||||
|
||||
@misc{process_def, 2018 edition_2018, title={Definitions}, url={http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_210}, journal={The Open Group Base Specifications Issue 7, 2018 edition}, publisher={The Open Group/IEEE}, year={2018}, month={Jul}}
|
||||
@misc{process_def, title={Definitions}, url={http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_210}, journal={The Open Group Base Specifications Issue 7, 2018 edition}, publisher={The Open Group/IEEE}, year={2018}, month={Jul}}
|
||||
|
||||
@book{Bovet:2005:ULK:1077084,
|
||||
author = {Bovet, Daniel and Cesati, Marco},
|
||||
@@ -36,4 +36,4 @@
|
||||
publisher={International Standards Organization}
|
||||
}
|
||||
|
||||
@misc{env_std_2018, title={Environment Variables}, url={https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html}, journal={Environment Variables}, publisher={The Open Group/IEEE}, year={2018}, month={Jul}}
|
||||
@misc{env_std_2018, title={Environment Variables}, url={https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html}, journal={Environment Variables}, publisher={The Open Group/IEEE}, year={2018}, month={Jul}}
|
||||
|
||||
@@ -9,8 +9,6 @@ This is the piece of software that is loaded up before all of your other program
|
||||
What the kernel does is the following, abbreviated
|
||||
|
||||
\begin{enumerate}
|
||||
\def\labelenumi{\arabic{enumi}.}
|
||||
\tightlist
|
||||
\item
|
||||
The operating system executes ROM or read only code
|
||||
\item
|
||||
@@ -124,14 +122,14 @@ Most notably, this section contains variables that were initialized with a stati
|
||||
|
||||
\begin{lstlisting}[language=C]
|
||||
int global = 1;
|
||||
\end{lstlsting}
|
||||
\end{lstlisting}
|
||||
|
||||
But not those that are default initialized, that is the next segment.
|
||||
|
||||
\item \textbf{A BSS Segment} or the Basic Service Segment. This contains all of your globals and any other static duration variables that are implicitly zeroed out like.
|
||||
\begin{lstlisting}[language=C]
|
||||
int assumed_to_be_zero;
|
||||
\end{lstlsting}
|
||||
\end{lstlisting}
|
||||
|
||||
It is not an error to assume that this will be zero because otherwise we'd have a security risk from other processes.
|
||||
They just get put in a different section to speed up process start up time.
|
||||
@@ -729,7 +727,6 @@ Read the man pages and the posix groups above!
|
||||
\subsection{Topics}
|
||||
|
||||
\begin{itemize}
|
||||
\tightlist
|
||||
\item
|
||||
Correct use of fork, exec and waitpid
|
||||
\item
|
||||
|
||||
Reference in New Issue
Block a user