63 lines
1.6 KiB
Typst
63 lines
1.6 KiB
Typst
|
#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
|
||
|
)
|