\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{davinaa018} \pdfinfo{ /Title (operating-systems.pdf) /Creator (Cheatography) /Author (davinaa018) /Subject (Operating Systems Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{A3A3A3} \definecolor{LightBackground}{HTML}{F3F3F3} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Operating Systems Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{davinaa018} via \textcolor{DarkBackground}{\uline{cheatography.com/197551/cs/41655/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}davinaa018 \\ \uline{cheatography.com/davinaa018} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 11th December, 2023.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{4} \begin{tabularx}{3.833cm}{x{1.7165 cm} x{1.7165 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{Memory Management}} \tn % Row 0 \SetRowColor{LightBackground} * {\bf{Virtual address}} is translated to a physical address using a page table & {\bf{Multi-level Page Tables}} are used to reduce memory overhead in page tables. Instead of a singel-level structure, a multi-level page table uses multiple levels of tables to represent the virtual-to-physical address mapping \tn % Row Count 12 (+ 12) % Row 1 \SetRowColor{white} * A {\bf{linear page table}} is a one-dimensional array where each entry corresponds to a page. The virtual address is divided into a page number and an offset within the page & * {\bf{Super Pages}} are larger-than-normal memory pages that can be used to increase TLB efficiency and reduce overhead associated with managing multiple smaller pages \tn % Row Count 21 (+ 9) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{* {\bf{Translation Lookaside Buffer (TLB)}} is a hardware cache that store recent translations of virtual addresses to physical addresses, reducing the time needed for address translation} \tn % Row Count 25 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{x{1.7165 cm} x{1.7165 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{Security \& Cryptography}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{3.833cm}}{* {\bf{Public Key Encryption}} - involves a pair of keys: a {\bf{public key}} for encryption and a {\bf{private key}} for decryption. Message decrypted with the public key can only be decrypted by the corresponding private key} \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} * {\bf{Cryptography}} - ensures data privacy by encrypting sensitive information, data integrity by providing mechanisms to detect tampering, and authentication by verifying the identity of communication parties & * {\bf{Transport Layer Security (TLS)}} - Provides secure communication over a network. It operates above the transport layer (usually TCP), encrypting data to ensure confidentiality and using certificates for authentication \tn % Row Count 17 (+ 12) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{x{1.7165 cm} x{1.7165 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{Process Management}} \tn % Row 0 \SetRowColor{LightBackground} * {\bf{Swapping}} involves moving entire processes between main memory and secondary storage to free up space in RAM. It helps manage memory constraints by temporarily storing less frequently used processes on disk & * {\bf{Page Fault}} occurs when a process tries to access a page not currently in physical memory. the OS, through the page faul handler, brings the required page into memory from disk, updates the page table, and allows the process to continue \tn % Row Count 13 (+ 13) % Row 1 \SetRowColor{white} * {\bf{Malloc()}} - a function for dynamic memory allocation, typically used for creating variable-sized blocks of memory on the heap & * {\bf{Mmap()}} maps files or devices into memory, often used for memory-mapped files or creating shared memory regions. It can create shared memeory regions between processes by mapping the same file into their virtual address spaces \tn % Row Count 25 (+ 12) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{x{1.7165 cm} x{1.7165 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{Memory Consistency and File Systems}} \tn % Row 0 \SetRowColor{LightBackground} * {\bf{Sequential Consistency}} - ensures that the execution of operations in a parallel program appears as if they are executed in some sequential order. it provides a clear, understandable model for concurrent program execution & * {\bf{Sequential Consistency in Modern Processors:}} - Achieving strict sequential consistency can lead to performance degradation in modern processors. Processors often use Optimization like out-of-order execution and catching that may violate strict sequential consistency to improve speed \tn % Row Count 15 (+ 15) % Row 1 \SetRowColor{white} * {\bf{Hard Links}} - Create additional directory entries pointing to the same inode, effectively creating multiple names for the same file & * {\bf{Soft Links}} - Create a separate file containing the path to the target file \tn % Row Count 22 (+ 7) % Row 2 \SetRowColor{LightBackground} * {\bf{File System}} - are organized on disk with partitions, file allocation tables (FAT), or inode tables & * {\bf{Free Command}} - Displays information about system memory usage \tn % Row Count 28 (+ 6) % Row 3 \SetRowColor{white} * {\bf{Page Cache}}- stores frequently accessed disk pages in memory, reducing the need for repeated disk access. & * {\bf{Buffering}} - Involves temporarily storing data in a buffer before writing it to disk, optimizing disk I/O \tn % Row Count 34 (+ 6) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{x{1.7165 cm} x{1.7165 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{3.833cm}}{\bf\textcolor{white}{Networking}} \tn % Row 0 \SetRowColor{LightBackground} * {\bf{IPv4 Addresses}} - 32-bit numerical labels assigned to devices on a network & * {\bf{IPv6 Addresses}} - 128-bit numerical labels designed to address the limitation of IPv4 and accommodate the growing number of connected devices \tn % Row Count 8 (+ 8) % Row 1 \SetRowColor{white} * {\bf{UPD (User Datagram Protocol)}} - a connectionless, lightweight protocol that does not guarantee delivery or order of packets & * {\bf{TCP (Transmission Control Protocol)}} - a connection-oriented protocol that ensures reliable, ordered, and error-checked delivery \tn % Row Count 15 (+ 7) % Row 2 \SetRowColor{LightBackground} * {\bf{Data Marshalling}} - Involves converting data from one representation to another for communication between systems with different architectures or byte orders. it ensures compatibility in network communication & * {\bf{Remote Procedure Call (RPC)}} - enables programs to execute procedures on a remote machine as if they were local. It involves marshalling parameters, making the remote call, and unmarshalling results. \tn % Row Count 26 (+ 11) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}