From 80ccf68f55dbb70d7e5ed52ee95b3c9d1b6ce264 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Thu, 20 Mar 2025 11:07:49 +0100 Subject: vault backup: 2025-03-20 11:07:48 --- 1 Projects/OSTEP/Process.md | 20 ++++++++++++++++++++ 1 Projects/OSTEP/Three main areas OSTEP.md | 28 ++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 1 Projects/OSTEP/Process.md create mode 100644 1 Projects/OSTEP/Three main areas OSTEP.md (limited to '1 Projects/OSTEP') diff --git a/1 Projects/OSTEP/Process.md b/1 Projects/OSTEP/Process.md new file mode 100644 index 0000000..78d074e --- /dev/null +++ b/1 Projects/OSTEP/Process.md @@ -0,0 +1,20 @@ +--- +tags: + - ostep +--- +Process = abstraction of **running program**. Program = lifeless code stored on disk. +**Mechanisms** are low-level protocols that implement needed piece of functionality. Example a **context-switch** that enables time-sharing the CPU. +**Policies** are algorithms to make a decision; such as which program to run. + +Process = **Machine state**. Important parts of the system. Its address space: the memory allocated by the OS. +The program counter; which instruction is being executed. +Stack & frame pointer: the stack for function params, return addresses and local variables. + +Seperating the mechanisms (how) from policies (which) allows changing either seperately from one another. + +API: +- Create : create new process to run a program +- Destroy : kil preemptively +- Wait : stop running +- Misc control: e.g suspend/resume +- Status : e.g ps axf \ No newline at end of file diff --git a/1 Projects/OSTEP/Three main areas OSTEP.md b/1 Projects/OSTEP/Three main areas OSTEP.md new file mode 100644 index 0000000..96e1046 --- /dev/null +++ b/1 Projects/OSTEP/Three main areas OSTEP.md @@ -0,0 +1,28 @@ +--- +tags: + - ostep +--- +OS -> manages resources : ram, cpu & disk. Exposes library to interact with said resources. + +**Virtualisation**: a process has the illusion of having seemingly infinite of a finite physical resource all to itself. + +CPU virtualisation: turn the CPU into seemingly infinite. +RAM virtualisation: divides physical ram into spaces and allocates a space to process. This space is called address space. + +==Why? Easier to use.== +==How? Good question. What mechanisms & policies? How to do it efficiently? What hardware support is needed?== +**^ Later notities linken die dit beantwoorden**. + +**Concurrency**: doing more than one thing at a time. Leads to deep problem. Atomicity; 1 thing at a time. +Incrementing is not atomic; 3 processor instructions. Process can be switched during any of these. + +==How to build a correct program? What primitives are needed from the OS? What hardware support is needed?== + +**Persistence**: store data that isn't gone after a power cycle. +I/O device: HDD/SSD +File system: part of OS that manages disks +Disk not virtualised: files want to be shared between processes. + +==How to do it correctly? What mechanisms or policies are required to do it with high performance? What methods are used to provide reliability in the face of hardware and software failure?== + +https://github.com/remzi-arpacidusseau/ostep-projects \ No newline at end of file -- cgit v1.2.3