added README
This commit is contained in:
parent
32473b67bc
commit
a7fa7c4de6
BIN
.gallery/demand-paging.png
Normal file
BIN
.gallery/demand-paging.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 103 KiB |
BIN
.gallery/disk-scheduling.png
Normal file
BIN
.gallery/disk-scheduling.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
46
.gallery/gallery.py
Normal file
46
.gallery/gallery.py
Normal file
@ -0,0 +1,46 @@
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
|
||||
def compile(root_path):
|
||||
subprocess.run([
|
||||
"typst",
|
||||
"c",
|
||||
"--root="+root_path,
|
||||
os.path.join(root_path, ".gallery", "gallery.typ"),
|
||||
os.path.join(root_path, ".gallery", "page-{n}.png")
|
||||
])
|
||||
|
||||
|
||||
def query(root_path):
|
||||
proc = subprocess.run([
|
||||
"typst",
|
||||
"query",
|
||||
"--root="+root_path,
|
||||
os.path.join(root_path, ".gallery", "gallery.typ"),
|
||||
"metadata"
|
||||
], capture_output=True)
|
||||
return json.loads(proc.stdout)
|
||||
|
||||
|
||||
def main():
|
||||
root_path = os.path.abspath(
|
||||
os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
os.path.pardir
|
||||
)
|
||||
)
|
||||
|
||||
compile(root_path)
|
||||
metadata = query(root_path)
|
||||
for entry in metadata:
|
||||
name = entry["value"]["name"]
|
||||
page = entry["value"]["page"]
|
||||
from_path = os.path.join(root_path, ".gallery", f"page-{page}.png")
|
||||
to_path = os.path.join(root_path, ".gallery", f"{name}.png")
|
||||
os.rename(from_path, to_path)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
63
.gallery/gallery.typ
Normal file
63
.gallery/gallery.typ
Normal file
@ -0,0 +1,63 @@
|
||||
#set page(height: auto, margin: 1cm)
|
||||
#set text(font: "Source Sans 3")
|
||||
|
||||
#let subject(name) = context {
|
||||
metadata((name: name, page: locate(here()).page()))
|
||||
}
|
||||
|
||||
//////////////////////////
|
||||
// Process Scheduling //
|
||||
//////////////////////////
|
||||
#subject("process-scheduling")
|
||||
#import "/process-scheduling/utils.typ": task, display-processes
|
||||
#import "/process-scheduling/algorithms.typ": FCFS
|
||||
#let tasks = {
|
||||
task(1, 0, 10, 3)
|
||||
task(2, 20, 40, 2)
|
||||
task(3, 30, 20, 2)
|
||||
task(4, 60, 10, 3)
|
||||
task(5, 80, 30, 1)
|
||||
task(6, 90, 20, 1)
|
||||
task(7, 100, 50, 3)
|
||||
task(8, 130, 30, 2)
|
||||
task(9, 180, 10, 3)
|
||||
task(10, 200, 60, 1)
|
||||
}
|
||||
#display-processes(..FCFS(tasks))
|
||||
#pagebreak()
|
||||
|
||||
/////////////////////
|
||||
// Demand Paging //
|
||||
/////////////////////
|
||||
#subject("demand-paging")
|
||||
#import "/demand-paging/utils.typ": sim-demand-paging
|
||||
#set page(width: auto)
|
||||
#let requests = (7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0 , 1)
|
||||
#sim-demand-paging(requests, "FIFO")
|
||||
#pagebreak()
|
||||
|
||||
///////////////////////
|
||||
// Disk Scheduling //
|
||||
///////////////////////
|
||||
#subject("disk-scheduling")
|
||||
#import "/disk-scheduling/algorithms.typ": schedule-fcfs
|
||||
#import "/disk-scheduling/utils.typ": draw-algo, compute-total
|
||||
|
||||
#let places = (53, 98, 193, 37, 14, 124, 65, 67)
|
||||
#let min = 0
|
||||
#let max = 199
|
||||
|
||||
#let result = schedule-fcfs(places)
|
||||
#let graph = draw-algo(result, min: min, max: max, width: 10)
|
||||
#let compute-total = compute-total.with(min: min, max: max)
|
||||
|
||||
#table(
|
||||
columns: 2,
|
||||
inset: 0.5em,
|
||||
align: center + horizon,
|
||||
rotate(
|
||||
-90deg,
|
||||
reflow: true
|
||||
)[*FCFS* (total: #compute-total(result, wrap: false))],
|
||||
graph
|
||||
)
|
BIN
.gallery/process-scheduling.png
Normal file
BIN
.gallery/process-scheduling.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 129 KiB |
20
README.md
Normal file
20
README.md
Normal file
@ -0,0 +1,20 @@
|
||||
# Tasty TacOS
|
||||
|
||||
This repo compiles some visualizations of algorithms from the OS course.
|
||||
|
||||
Here is a little showcase of the different kinds of algorithms in the repo
|
||||
|
||||
## Process scheduling
|
||||
<img src="./.gallery/process-scheduling.png">
|
||||
|
||||
[See more](process-scheduling/)
|
||||
|
||||
## Demand paging
|
||||
<img src="./.gallery/demand-paging.png">
|
||||
|
||||
[See more](demand-paging/)
|
||||
|
||||
## Disk scheduling
|
||||
<img src="./.gallery/disk-scheduling.png">
|
||||
|
||||
[See more](disk-scheduling/)
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user