This website houses notes from my studies at the University of Liverpool. If you see any errors or issues, please do open an issue on this site's GitHub.
Process interaction Processes that do not need to interact with any other processes are known as independent processes. In modern systems, many processes will work together. These are known as cooperating processes. The operating system provides synchronisation and communication mechanisms for cooperating processes. Synchronisation & Communication Synchronisation If a process...
On most systems, processes are created (spawned) by other processes. The original process is the parent, and the new process is the child. Hence we end up with a kind of ancestral tree of processes. Unix The exec() system call allows one program to execute another: They stay in same...
This lecture goes more in depth on the tasks of the process manager. Processes We have seen that a process is the basic unit of work in a computer system. The OS processor manager is responsible for every aspect of a process. It must: Allocate initial memory for the process....
Memory Manager This manager is in charge of main memory and making sure requests are legal. Tasks Preserves and protects the space in main memory that is occupied by the OS itself. Checks validity of each request for memory space. For legal requests, allocates areas of memory not already in...
Operating Systems The purpose of operating systems is to: Turn base hardware into a usable machine. Make efficient use of available resources, particularly when they are shared. Abstract of Components flowchart TD uci[User Command Interface] <--> mm[Memory Manager] & fm[File Manager] & dm[Device Manager] & pm[Processor Manager] mm <--> fm...
Iterated Function Sequences Let $f:\Bbb C\rightarrow \Bbb C$ be some complex valued function. The $n^{\text{th}}$ iterate of $f$, denoted by $f_(n)$, when applied to $z\in\Bbb C$ is the complex number, denoted by $z_n$, that results by applying $f$ repeatedly (to the initial value $z_0$). Thus: \[f_{(n)}(z)=\begin{cases}z & \text{if }n=0\\f\left(f_{n-1}(z)\right)&\text{if }n>0\end{cases}\]...
How to we extend the complex plane to 3D? We do this by considering vector algebra with four components. Quaternion Structure Complex numbers can be written as 2-vectors $\langle x,y\rangle$. Quaternions use points in $\Bbb R^4$ (all values are real) of the form: \[q=(w,x,y,z)\] Matching $z=x+iy$ we now have: \[q=w+ix+jy+kz\]...
The time-sharing mechanism depends crucially on the ability to interrupt execution at regular clock intervals. There are many circumstances in which it is desirable to interrupt the normal flow of a program to react to special events: User interrupt from the keyboard. Attempt to execute an illegal instruction. Completion of...
Largely driven by desire to do something useful when a program cannot continue. We want the CPU to be busy all the time. Early Systems Job loaded from punched cards or tape, output to printer. Job may include loading compiler, assembler, linker, data. CPU idle for much of the time....
Time Complexity For a list with $n$ elements the following operations have the following time complexity: Traversing: $O(n)$ Searching: Unsorted: $O(n)$ Sorted: $O(n)$ Insertion/Deletion: Head/Tail: $O(1)$ Middle: $O(n)$ Finding the location may take $O(n)$ time. Memory Management Memory needs to be allocated for a new node. We should free any...