summaryrefslogtreecommitdiff
path: root/1 Projects/OSTEP
diff options
context:
space:
mode:
authorJasper Ras <jras@hostnet.nl>2025-03-20 11:07:49 +0100
committerJasper Ras <jras@hostnet.nl>2025-03-20 11:07:49 +0100
commit80ccf68f55dbb70d7e5ed52ee95b3c9d1b6ce264 (patch)
tree93e28e85ab70052aa6f577998ec7dc1f413b40c0 /1 Projects/OSTEP
parent9642cd7ae24f0ba79ce5647c709b35ae8f06a285 (diff)
vault backup: 2025-03-20 11:07:48
Diffstat (limited to '1 Projects/OSTEP')
-rw-r--r--1 Projects/OSTEP/Process.md20
-rw-r--r--1 Projects/OSTEP/Three main areas OSTEP.md28
2 files changed, 48 insertions, 0 deletions
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