OSTEP to chapter 9
This commit is contained in:
parent
abe668700c
commit
a06a617205
@ -904,5 +904,713 @@
|
||||
:height 1296}),
|
||||
:page 94},
|
||||
:content {:text "Shortest Time-to-Completion First (STCF)"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642e41ac-3b8f-4fe3-a9ef-e2adeeadfe9d",
|
||||
:page 95,
|
||||
:position {:bounding {:x1 237.4654541015625,
|
||||
:y1 765.15625,
|
||||
:x2 467.0165100097656,
|
||||
:y2 787.15625,
|
||||
:width 864,
|
||||
:height 1296},
|
||||
:rects ({:x1 237.4654541015625,
|
||||
:y1 765.15625,
|
||||
:x2 467.0165100097656,
|
||||
:y2 787.15625,
|
||||
:width 864,
|
||||
:height 1296}),
|
||||
:page 95},
|
||||
:content {:text "Metric: Response Time"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642e435d-7116-4d2c-9ec3-889558ba2dca",
|
||||
:page 96,
|
||||
:position {:bounding {:x1 331.75,
|
||||
:y1 977.671875,
|
||||
:x2 497.38836669921875,
|
||||
:y2 1002.671875,
|
||||
:width 921.6,
|
||||
:height 1382.4},
|
||||
:rects ({:x1 331.75,
|
||||
:y1 977.671875,
|
||||
:x2 497.38836669921875,
|
||||
:y2 1002.671875,
|
||||
:width 921.6,
|
||||
:height 1382.4}),
|
||||
:page 96},
|
||||
:content {:text "Round-Robin (RR)"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642e4473-4162-4320-91af-fba22e79be25",
|
||||
:page 97,
|
||||
:position {:bounding {:x1 413.328125,
|
||||
:y1 227.546875,
|
||||
:x2 524.9400024414062,
|
||||
:y2 252.546875,
|
||||
:width 921.6,
|
||||
:height 1382.4},
|
||||
:rects ({:x1 413.328125,
|
||||
:y1 227.546875,
|
||||
:x2 524.9400024414062,
|
||||
:y2 252.546875,
|
||||
:width 921.6,
|
||||
:height 1382.4}),
|
||||
:page 97},
|
||||
:content {:text "amortization"},
|
||||
:properties {:color "green"}}
|
||||
{:id #uuid "642e4a5d-37c1-4484-b2ac-913e40d8a2dc",
|
||||
:page 97,
|
||||
:position {:bounding {:x1 629.3007202148438,
|
||||
:y1 1043.421875,
|
||||
:x2 696.6312866210938,
|
||||
:y2 1062.421875,
|
||||
:width 921.6,
|
||||
:height 1382.4},
|
||||
:rects ({:x1 629.3007202148438,
|
||||
:y1 1043.421875,
|
||||
:x2 696.6312866210938,
|
||||
:y2 1062.421875,
|
||||
:width 921.6,
|
||||
:height 1382.4}),
|
||||
:page 97},
|
||||
:content {:text "pessimal"},
|
||||
:properties {:color "green"}}
|
||||
{:id #uuid "642e4ed2-7674-4a5f-bb65-67541b97db95",
|
||||
:page 98,
|
||||
:position {:bounding {:x1 123.8117446899414,
|
||||
:y1 584.28125,
|
||||
:x2 311.8699645996094,
|
||||
:y2 607.28125,
|
||||
:width 921.6,
|
||||
:height 1382.4},
|
||||
:rects ({:x1 123.8117446899414,
|
||||
:y1 584.28125,
|
||||
:x2 311.8699645996094,
|
||||
:y2 607.28125,
|
||||
:width 921.6,
|
||||
:height 1382.4}),
|
||||
:page 98},
|
||||
:content {:text "Incorporating I/O"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642e5117-90c3-41db-9f15-45f3ba9edf91",
|
||||
:page 103,
|
||||
:position {:bounding {:x1 363.5907287597656,
|
||||
:y1 569.421875,
|
||||
:x2 672.5271606445312,
|
||||
:y2 588.421875,
|
||||
:width 921.6,
|
||||
:height 1382.4},
|
||||
:rects ({:x1 363.5907287597656,
|
||||
:y1 569.421875,
|
||||
:x2 672.5271606445312,
|
||||
:y2 588.421875,
|
||||
:width 921.6,
|
||||
:height 1382.4}),
|
||||
:page 103},
|
||||
:content {:text "Multi-level Feedback Queue (MLFQ)"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ec9be-dd64-4a66-ab7a-3f0ee376e055",
|
||||
:page 105,
|
||||
:position {:bounding {:x1 472.18408203125,
|
||||
:y1 818.171875,
|
||||
:x2 573.0543212890625,
|
||||
:y2 837.171875,
|
||||
:width 921.6,
|
||||
:height 1382.4},
|
||||
:rects ({:x1 472.18408203125,
|
||||
:y1 818.171875,
|
||||
:x2 573.0543212890625,
|
||||
:y2 837.171875,
|
||||
:width 921.6,
|
||||
:height 1382.4}),
|
||||
:page 105},
|
||||
:content {:text "relinquish "},
|
||||
:properties {:color "green"}}
|
||||
{:id #uuid "642ecc9e-b28b-4951-aaf6-1191e867b34f",
|
||||
:page 104,
|
||||
:position {:bounding {:x1 474.0478820800781,
|
||||
:y1 727.265625,
|
||||
:x2 656.4044799804688,
|
||||
:y2 746.265625,
|
||||
:width 921.6,
|
||||
:height 1382.4},
|
||||
:rects ({:x1 474.0478820800781,
|
||||
:y1 727.265625,
|
||||
:x2 656.4044799804688,
|
||||
:y2 746.265625,
|
||||
:width 921.6,
|
||||
:height 1382.4}),
|
||||
:page 104},
|
||||
:content {:text " basic rules for MLFQ:"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ecd09-c81b-4127-8bfa-e1fbb78ba583",
|
||||
:page 105,
|
||||
:position {:bounding {:x1 0,
|
||||
:y1 400,
|
||||
:x2 738.1038208007812,
|
||||
:y2 900.9375,
|
||||
:width 921.6,
|
||||
:height 1382.4},
|
||||
:rects ({:x1 0,
|
||||
:y1 400,
|
||||
:x2 0,
|
||||
:y2 416,
|
||||
:width 921.6,
|
||||
:height 1382.4}
|
||||
{:x1 670.8447265625,
|
||||
:y1 860.6875,
|
||||
:x2 738.1038208007812,
|
||||
:y2 879.6875,
|
||||
:width 921.6,
|
||||
:height 1382.4}
|
||||
{:x1 123.828125,
|
||||
:y1 881.9375,
|
||||
:x2 312.0516662597656,
|
||||
:y2 900.9375,
|
||||
:width 921.6,
|
||||
:height 1382.4}),
|
||||
:page 105},
|
||||
:content {:text "riorityadjustment algorithm:"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ece05-2fa8-4a24-88e2-f2550cfdd2ed",
|
||||
:page 107,
|
||||
:position {:bounding {:x1 0,
|
||||
:y1 160,
|
||||
:x2 738.0860595703125,
|
||||
:y2 685.625,
|
||||
:width 921.6,
|
||||
:height 1382.4},
|
||||
:rects ({:x1 0,
|
||||
:y1 160,
|
||||
:x2 0,
|
||||
:y2 176,
|
||||
:width 921.6,
|
||||
:height 1382.4}
|
||||
{:x1 0,
|
||||
:y1 176,
|
||||
:x2 0,
|
||||
:y2 192,
|
||||
:width 921.6,
|
||||
:height 1382.4}
|
||||
{:x1 0,
|
||||
:y1 192,
|
||||
:x2 0,
|
||||
:y2 208,
|
||||
:width 921.6,
|
||||
:height 1382.4}
|
||||
{:x1 0,
|
||||
:y1 208,
|
||||
:x2 0,
|
||||
:y2 224,
|
||||
:width 921.6,
|
||||
:height 1382.4}
|
||||
{:x1 0,
|
||||
:y1 224,
|
||||
:x2 0,
|
||||
:y2 240,
|
||||
:width 921.6,
|
||||
:height 1382.4}
|
||||
{:x1 590.8765258789062,
|
||||
:y1 560.359375,
|
||||
:x2 738.0640869140625,
|
||||
:y2 579.359375,
|
||||
:width 921.6,
|
||||
:height 1382.4}
|
||||
{:x1 123.828125,
|
||||
:y1 581.609375,
|
||||
:x2 738.0743408203125,
|
||||
:y2 600.734375,
|
||||
:width 921.6,
|
||||
:height 1382.4}
|
||||
{:x1 123.828125,
|
||||
:y1 602.859375,
|
||||
:x2 738.0860595703125,
|
||||
:y2 621.984375,
|
||||
:width 921.6,
|
||||
:height 1382.4}
|
||||
{:x1 123.828125,
|
||||
:y1 624.125,
|
||||
:x2 738.0825805664062,
|
||||
:y2 643.25,
|
||||
:width 921.6,
|
||||
:height 1382.4}
|
||||
{:x1 123.828125,
|
||||
:y1 645.375,
|
||||
:x2 738.058837890625,
|
||||
:y2 664.5,
|
||||
:width 921.6,
|
||||
:height 1382.4}
|
||||
{:x1 123.828125,
|
||||
:y1 666.625,
|
||||
:x2 738.0640258789062,
|
||||
:y2 685.625,
|
||||
:width 921.6,
|
||||
:height 1382.4}),
|
||||
:page 107},
|
||||
:content {:text "one of the major goals of the algorithm: because it doesn’t know whether a job will be a short job or a long-running job, it first assumes it might be a short job, thus giving the job high priority. If it actually is a short job, it will run quickly and complete; if it is not a short job, it will slowly move down the queues, and thus soon prove itself to be a long-running more batch-like process."},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ed47c-9ba8-4451-b6b3-6ca6ee1dbdda",
|
||||
:page 109,
|
||||
:position {:bounding {:x1 265.6994323730469,
|
||||
:y1 534.734375,
|
||||
:x2 466.90966796875,
|
||||
:y2 558.734375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 265.6994323730469,
|
||||
:y1 534.734375,
|
||||
:x2 466.90966796875,
|
||||
:y2 558.734375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 109},
|
||||
:content {:text "The Priority Boost"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ed5f6-2a74-4a24-9f69-a472cf644fc9",
|
||||
:page 110,
|
||||
:position {:bounding {:x1 333.4051818847656,
|
||||
:y1 551.15625,
|
||||
:x2 529.7739868164062,
|
||||
:y2 575.15625,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 333.4051818847656,
|
||||
:y1 551.15625,
|
||||
:x2 529.7739868164062,
|
||||
:y2 575.15625,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 110},
|
||||
:content {:text "Better Accounting"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ed5fe-3314-4020-a4fc-b1b75ea987b9",
|
||||
:page 110,
|
||||
:position {:bounding {:x1 431.2640075683594,
|
||||
:y1 611.03125,
|
||||
:x2 506.947021484375,
|
||||
:y2 631.03125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 431.2640075683594,
|
||||
:y1 611.03125,
|
||||
:x2 506.947021484375,
|
||||
:y2 631.03125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 110},
|
||||
:content {:text "culprit "},
|
||||
:properties {:color "green"}}
|
||||
{:id #uuid "642ed6a2-c04b-4f03-a86f-1d70933c0d42",
|
||||
:page 110,
|
||||
:position {:bounding {:x1 264.578125,
|
||||
:y1 1129.921875,
|
||||
:x2 385.41986083984375,
|
||||
:y2 1156.921875,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 264.578125,
|
||||
:y1 1129.921875,
|
||||
:x2 385.41986083984375,
|
||||
:y2 1156.921875,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 110},
|
||||
:content {:text "parameterize"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ed799-d933-441a-a043-06e47877c0d9",
|
||||
:page 109,
|
||||
:position {:bounding {:x1 610.84375,
|
||||
:y1 1152.515625,
|
||||
:x2 779.1224975585938,
|
||||
:y2 1179.515625,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 610.84375,
|
||||
:y1 1152.515625,
|
||||
:x2 779.1224975585938,
|
||||
:y2 1179.515625,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 109},
|
||||
:content {:text "voo-doo constants"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642eda22-bd34-42e4-b7e4-1107636d1fbc",
|
||||
:page 115,
|
||||
:position {:bounding {:x1 131.578125,
|
||||
:y1 537.53125,
|
||||
:x2 305.513671875,
|
||||
:y2 564.53125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 131.578125,
|
||||
:y1 537.53125,
|
||||
:x2 305.513671875,
|
||||
:y2 564.53125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 115},
|
||||
:content {:text "proportional-share"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642edaa2-78d2-4fde-8b14-584b7d39fa24",
|
||||
:page 115,
|
||||
:position {:bounding {:x1 660.953125,
|
||||
:y1 1016.96875,
|
||||
:x2 721.9077758789062,
|
||||
:y2 1043.96875,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 660.953125,
|
||||
:y1 1016.96875,
|
||||
:x2 721.9077758789062,
|
||||
:y2 1043.96875,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 115},
|
||||
:content {:text "tickets"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642edb1d-7740-4459-bb42-0c6a84156475",
|
||||
:page 115,
|
||||
:position {:bounding {:x1 158.6875,
|
||||
:y1 1177.734375,
|
||||
:x2 334.8990478515625,
|
||||
:y2 1197.734375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 158.6875,
|
||||
:y1 1177.734375,
|
||||
:x2 334.8990478515625,
|
||||
:y2 1197.734375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 115},
|
||||
:content {:text "Lottery scheduling a"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642edc09-1329-4eca-95ad-7f62b48875e2",
|
||||
:page 117,
|
||||
:position {:bounding {:x1 263.796875,
|
||||
:y1 543.09375,
|
||||
:x2 401.43524169921875,
|
||||
:y2 570.09375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 263.796875,
|
||||
:y1 543.09375,
|
||||
:x2 401.43524169921875,
|
||||
:y2 570.09375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 117},
|
||||
:content {:text "ticket currency"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642edc0f-464d-4616-9313-92b640cecec5",
|
||||
:page 117,
|
||||
:position {:bounding {:x1 425.625,
|
||||
:y1 881.515625,
|
||||
:x2 554.5306396484375,
|
||||
:y2 908.515625,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 425.625,
|
||||
:y1 881.515625,
|
||||
:x2 554.5306396484375,
|
||||
:y2 908.515625,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 117},
|
||||
:content {:text "ticket transfer"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642edc14-74d6-4758-a21f-d615d2ee51c9",
|
||||
:page 117,
|
||||
:position {:bounding {:x1 232.42788696289062,
|
||||
:y1 1062.171875,
|
||||
:x2 371.2756042480469,
|
||||
:y2 1089.171875,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 232.4375,
|
||||
:y1 1062.171875,
|
||||
:x2 371.2756042480469,
|
||||
:y2 1089.171875,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}
|
||||
{:x1 232.42788696289062,
|
||||
:y1 1064.828125,
|
||||
:x2 232.44110107421875,
|
||||
:y2 1084.828125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 117},
|
||||
:content {:text "ticket inflation"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642eded0-39d0-40aa-8b28-c273d39f90c2",
|
||||
:page 119,
|
||||
:position {:bounding {:x1 403.46875,
|
||||
:y1 581.546875,
|
||||
:x2 612.3668823242188,
|
||||
:y2 608.546875,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 403.46875,
|
||||
:y1 581.546875,
|
||||
:x2 612.3668823242188,
|
||||
:y2 608.546875,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 119},
|
||||
:content {:text "Lottery Fairness Study"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642edf4f-7c7f-477f-acae-0969da13731e",
|
||||
:page 120,
|
||||
:position {:bounding {:x1 221.90625,
|
||||
:y1 620.28125,
|
||||
:x2 376.0361328125,
|
||||
:y2 640.28125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 221.90625,
|
||||
:y1 620.28125,
|
||||
:x2 376.0361328125,
|
||||
:y2 640.28125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 120},
|
||||
:content {:text "Stride scheduling"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ee1b9-281d-4589-ab90-e776507dd04f",
|
||||
:page 121,
|
||||
:position {:bounding {:x1 247.94039916992188,
|
||||
:y1 958.640625,
|
||||
:x2 608.69287109375,
|
||||
:y2 982.640625,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 247.94039916992188,
|
||||
:y1 958.640625,
|
||||
:x2 608.69287109375,
|
||||
:y2 982.640625,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 121},
|
||||
:content {:text "Completely Fair Scheduler (CFS)"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ee242-d382-4685-86b4-b3169fcc4fcf",
|
||||
:page 122,
|
||||
:position {:bounding {:x1 0,
|
||||
:y1 109,
|
||||
:x2 847.4393920898438,
|
||||
:y2 513.40625,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 0,
|
||||
:y1 109,
|
||||
:x2 0,
|
||||
:y2 131,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}
|
||||
{:x1 694.8699951171875,
|
||||
:y1 470.8125,
|
||||
:x2 847.4393920898438,
|
||||
:y2 490.8125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}
|
||||
{:x1 194.8125,
|
||||
:y1 493.40625,
|
||||
:x2 592.07373046875,
|
||||
:y2 513.40625,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 122},
|
||||
:content {:text "to fairly divide a CPU evenly among all competing processes. "},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ee25b-1f3a-4b7c-a721-fa60f5fa5d2f",
|
||||
:page 122,
|
||||
:position {:bounding {:x1 524.046875,
|
||||
:y1 513.34375,
|
||||
:x2 665.7717895507812,
|
||||
:y2 540.34375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 524.046875,
|
||||
:y1 513.34375,
|
||||
:x2 665.7717895507812,
|
||||
:y2 540.34375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 122},
|
||||
:content {:text "virtual runtime"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ee303-c289-4e55-a0c5-bc4f534fa882",
|
||||
:page 122,
|
||||
:position {:bounding {:x1 256.015625,
|
||||
:y1 812.984375,
|
||||
:x2 409.7081298828125,
|
||||
:y2 833.3125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 256.015625,
|
||||
:y1 812.984375,
|
||||
:x2 409.7081298828125,
|
||||
:y2 833.3125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 122},
|
||||
:content {:text "sched latency"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ee3d6-827b-4d80-b6c3-9cb8253a16d6",
|
||||
:page 122,
|
||||
:position {:bounding {:x1 673.3125,
|
||||
:y1 1222.875,
|
||||
:x2 851.4118041992188,
|
||||
:y2 1243.203125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 673.3125,
|
||||
:y1 1222.875,
|
||||
:x2 851.4118041992188,
|
||||
:y2 1243.203125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 122},
|
||||
:content {:text "min granularity"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ee44f-5fca-4d7d-b688-ff4ac22be23a",
|
||||
:page 123,
|
||||
:position {:bounding {:x1 131.578125,
|
||||
:y1 576.9375,
|
||||
:x2 352.4835205078125,
|
||||
:y2 606.9375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 131.578125,
|
||||
:y1 576.9375,
|
||||
:x2 352.4835205078125,
|
||||
:y2 606.9375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 123},
|
||||
:content {:text "Weighting (Niceness)"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ee5dd-9183-4122-9dee-06ff7fb9be46",
|
||||
:page 126,
|
||||
:position {:bounding {:x1 480.874755859375,
|
||||
:y1 266.1875,
|
||||
:x2 561.3439331054688,
|
||||
:y2 286.1875,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 480.874755859375,
|
||||
:y1 266.1875,
|
||||
:x2 561.3439331054688,
|
||||
:y2 286.1875,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 126},
|
||||
:content {:text "hallmark "},
|
||||
:properties {:color "green"}}
|
||||
{:id #uuid "642ee7e4-20d2-44d5-8407-288a8a2e1769",
|
||||
:page 125,
|
||||
:position {:bounding {:x1 131.578125,
|
||||
:y1 735.765625,
|
||||
:x2 561.9702758789062,
|
||||
:y2 765.765625,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 131.578125,
|
||||
:y1 735.765625,
|
||||
:x2 561.9702758789062,
|
||||
:y2 765.765625,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 125},
|
||||
:content {:text "Dealing With I/O And Sleeping Processes"},
|
||||
:properties {:color "yellow"}}
|
||||
{:id #uuid "642ee8c2-89fe-4e7b-bf6d-bb0e379f8fe2",
|
||||
:page 126,
|
||||
:position {:bounding {:x1 387.48431396484375,
|
||||
:y1 796.421875,
|
||||
:x2 451.882080078125,
|
||||
:y2 816.421875,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 387.48431396484375,
|
||||
:y1 796.421875,
|
||||
:x2 451.882080078125,
|
||||
:y2 816.421875,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 126},
|
||||
:content {:text "panacea"},
|
||||
:properties {:color "green"}}
|
||||
{:id #uuid "642eeb3a-8803-4c73-84a7-cc48c903f10f",
|
||||
:page 129,
|
||||
:position {:bounding {:x1 530.402587890625,
|
||||
:y1 868.984375,
|
||||
:x2 593.8715209960938,
|
||||
:y2 888.984375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 530.402587890625,
|
||||
:y1 868.984375,
|
||||
:x2 593.8715209960938,
|
||||
:y2 888.984375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 129},
|
||||
:content {:text "remedy "},
|
||||
:properties {:color "green"}}
|
||||
{:id #uuid "642eeb44-cf62-4cf6-81cb-f1f6423cb66d",
|
||||
:page 129,
|
||||
:position {:bounding {:x1 605.3892822265625,
|
||||
:y1 687.53125,
|
||||
:x2 721.6216430664062,
|
||||
:y2 707.53125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 605.3892822265625,
|
||||
:y1 687.53125,
|
||||
:x2 721.6216430664062,
|
||||
:y2 707.53125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 129},
|
||||
:content {:text "proliferation"},
|
||||
:properties {:color "green"}}
|
||||
{:id #uuid "642eeb7b-257c-4a7c-8f09-a2429cb16b46",
|
||||
:page 129,
|
||||
:position {:bounding {:x1 592.2553100585938,
|
||||
:y1 1042.859375,
|
||||
:x2 649.8491821289062,
|
||||
:y2 1062.859375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 592.2553100585938,
|
||||
:y1 1042.859375,
|
||||
:x2 649.8491821289062,
|
||||
:y2 1062.859375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 129},
|
||||
:content {:text "swath "},
|
||||
:properties {:color "green"}}
|
||||
{:id #uuid "642eecc1-d07d-4e48-bcd5-b84db831b241",
|
||||
:page 132,
|
||||
:position {:bounding {:x1 649.811767578125,
|
||||
:y1 364.125,
|
||||
:x2 800.3143920898438,
|
||||
:y2 391.125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8},
|
||||
:rects ({:x1 649.8125,
|
||||
:y1 364.125,
|
||||
:x2 800.3143920898438,
|
||||
:y2 391.125,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}
|
||||
{:x1 649.811767578125,
|
||||
:y1 366.78125,
|
||||
:x2 800.3143920898438,
|
||||
:y2 387.109375,
|
||||
:width 979.1999999999999,
|
||||
:height 1468.8}),
|
||||
:page 132},
|
||||
:content {:text "cache coherence"},
|
||||
:properties {:color "yellow"}}],
|
||||
:extra {:page 95}}
|
||||
:extra {:page 132}}
|
||||
|
||||
349
logseq/bak/logseq/config/2023-04-06T03_47_03.642Z.Desktop.edn
Normal file
349
logseq/bak/logseq/config/2023-04-06T03_47_03.642Z.Desktop.edn
Normal file
@ -0,0 +1,349 @@
|
||||
{:meta/version 1
|
||||
|
||||
;; Currently, we support either "Markdown" or "Org".
|
||||
;; This can overwrite your global preference so that
|
||||
;; maybe your personal preferred format is Org but you'd
|
||||
;; need to use Markdown for some projects.
|
||||
;; :preferred-format ""
|
||||
|
||||
;; Preferred workflow style.
|
||||
;; Value is either ":now" for NOW/LATER style,
|
||||
;; or ":todo" for TODO/DOING style.
|
||||
:preferred-workflow :now
|
||||
|
||||
;; The app will ignore those directories or files.
|
||||
;; E.g. :hidden ["/archived" "/test.md" "../assets/archived"]
|
||||
:hidden []
|
||||
|
||||
;; When creating the new journal page, the app will use your template if there is one.
|
||||
;; You only need to input your template name here.
|
||||
:default-templates
|
||||
{:journals ""}
|
||||
|
||||
;; Set a custom date format for journal page title
|
||||
;; Example:
|
||||
;; :journal/page-title-format "EEE, do MMM yyyy"
|
||||
|
||||
;; Whether to enable hover on tooltip preview feature
|
||||
;; Default is true, you can also toggle this via setting page
|
||||
:ui/enable-tooltip? true
|
||||
|
||||
;; Show brackets around page references
|
||||
;; :ui/show-brackets? true
|
||||
|
||||
;; Enable showing the body of blocks when referencing them.
|
||||
:ui/show-full-blocks? false
|
||||
|
||||
;; Expand block references automatically when zoom-in
|
||||
:ui/auto-expand-block-refs? true
|
||||
|
||||
;; Enable Block timestamp
|
||||
:feature/enable-block-timestamps? false
|
||||
|
||||
;; Enable remove accents when searching.
|
||||
;; After toggle this option, please remember to rebuild your search index by press (cmd+c cmd+s).
|
||||
:feature/enable-search-remove-accents? true
|
||||
|
||||
;; Enable journals
|
||||
;; :feature/enable-journals? true
|
||||
|
||||
;; Enable flashcards
|
||||
;; :feature/enable-flashcards? true
|
||||
|
||||
;; Enable Whiteboards
|
||||
;; :feature/enable-whiteboards? true
|
||||
|
||||
;; Disable the built-in Scheduled tasks and deadlines query
|
||||
;; :feature/disable-scheduled-and-deadline-query? true
|
||||
|
||||
;; Specify the number of days in the future to display in the
|
||||
;; scheduled tasks and deadlines query, with a default value of 0 which
|
||||
;; only displays tasks for today.
|
||||
;; Example usage:
|
||||
;; Display all scheduled tasks and deadlines in the next 7 days
|
||||
;; :scheduled/future-days 7
|
||||
|
||||
;; Specify the date on which the week starts.
|
||||
;; Goes from 0 to 6 (Monday to Sunday), default to 6
|
||||
:start-of-week 6
|
||||
|
||||
;; Specify a custom CSS import
|
||||
;; This option take precedence over your local `logseq/custom.css` file
|
||||
;; You may find a list of awesome logseq themes here:
|
||||
;; https://github.com/logseq/awesome-logseq#css-themes
|
||||
;; Example:
|
||||
;; :custom-css-url "@import url('https://cdn.jsdelivr.net/gh/dracula/logseq@master/custom.css');"
|
||||
|
||||
;; Specify a custom js import
|
||||
;; This option take precedence over your local `logseq/custom.js` file
|
||||
;; :custom-js-url ""
|
||||
|
||||
;; Set a custom Arweave gateway
|
||||
;; Default gateway: https://arweave.net
|
||||
;; :arweave/gateway ""
|
||||
|
||||
;; Set Bullet indentation when exporting
|
||||
;; default option: tab
|
||||
;; Possible options are for `:sidebar` are
|
||||
;; 1. `:eight-spaces` as eight spaces
|
||||
;; 2. `:four-spaces` as four spaces
|
||||
;; 3. `:two-spaces` as two spaces
|
||||
;; :export/bullet-indentation :tab
|
||||
|
||||
;; When :all-pages-public? true, export repo would export all pages within that repo.
|
||||
;; Regardless of whether you've set any page to public or not.
|
||||
;; Example:
|
||||
;; :publishing/all-pages-public? true
|
||||
|
||||
;; Specify default home page and sidebar status for Logseq
|
||||
;; If not specified, Logseq default opens journals page on startup
|
||||
;; value for `:page` is name of page
|
||||
;; Possible options for `:sidebar` are
|
||||
;; 1. `"Contents"` to open up `Contents` in sidebar by default
|
||||
;; 2. `page name` to open up some page in sidebar
|
||||
;; 3. Or multiple pages in an array ["Contents" "Page A" "Page B"]
|
||||
;; If `:sidebar` is not set, sidebar will be hidden
|
||||
;; Example:
|
||||
;; 1. Setup page "Changelog" as home page and "Contents" in sidebar
|
||||
;; :default-home {:page "Changelog", :sidebar "Contents"}
|
||||
;; 2. Setup page "Jun 3rd, 2021" as home page without sidebar
|
||||
;; :default-home {:page "Jun 3rd, 2021"}
|
||||
;; 3. Setup page "home" as home page with multiple pages in sidebar
|
||||
;; :default-home {:page "home" :sidebar ["page a" "page b"]}
|
||||
|
||||
;; Tell logseq to use a specific folder in the repo as a default location for notes
|
||||
;; if not specified, notes are stored in `pages` directory
|
||||
;; :pages-directory "your-directory"
|
||||
|
||||
;; Tell logseq to use a specific folder in the repo as a default location for journals
|
||||
;; if not specified, journals are stored in `journals` directory
|
||||
;; :journals-directory "your-directory"
|
||||
|
||||
;; Set this to true will convert
|
||||
;; `[[Grant Ideas]]` to `[[file:./grant_ideas.org][Grant Ideas]]` for org-mode
|
||||
;; For more, see https://github.com/logseq/logseq/issues/672
|
||||
;; :org-mode/insert-file-link? true
|
||||
|
||||
;; Setup custom shortcuts under `:shortcuts` key
|
||||
;; Syntax:
|
||||
;; 1. `+` means keys pressing simultaneously. eg: `ctrl+shift+a`
|
||||
;; 2. ` ` empty space between keys represents key chords. eg: `t s` means press `t` followed by `s`
|
||||
;; 3. `mod` means `Ctrl` for Windows/Linux and `Command` for Mac
|
||||
;; 4. use `false` to disable particular shortcut
|
||||
;; 5. you can define multiple bindings for one action, eg `["ctrl+j" "down"]`
|
||||
;; full list of configurable shortcuts are available below:
|
||||
;; https://github.com/logseq/logseq/blob/master/src/main/frontend/modules/shortcut/config.cljs
|
||||
;; Example:
|
||||
;; :shortcuts
|
||||
;; {:editor/new-block "enter"
|
||||
;; :editor/new-line "shift+enter"
|
||||
;; :editor/insert-link "mod+shift+k"
|
||||
;; :editor/highlight false
|
||||
;; :ui/toggle-settings "t s"
|
||||
;; :editor/up ["ctrl+k" "up"]
|
||||
;; :editor/down ["ctrl+j" "down"]
|
||||
;; :editor/left ["ctrl+h" "left"]
|
||||
;; :editor/right ["ctrl+l" "right"]}
|
||||
:shortcuts {}
|
||||
|
||||
;; By default, pressing `Enter` in the document mode will create a new line.
|
||||
;; Set this to `true` so that it's the same behaviour as the usual outliner mode.
|
||||
:shortcut/doc-mode-enter-for-new-block? false
|
||||
|
||||
;; Block content larger than `block/content-max-length` will not be searchable
|
||||
;; or editable for performance.
|
||||
:block/content-max-length 10000
|
||||
|
||||
;; Whether to show command doc on hover
|
||||
:ui/show-command-doc? true
|
||||
|
||||
;; Whether to show empty bullets for non-document mode (the default mode)
|
||||
:ui/show-empty-bullets? false
|
||||
|
||||
;; Pre-defined :view function to use with advanced queries
|
||||
:query/views
|
||||
{:pprint
|
||||
(fn [r] [:pre.code (pprint r)])}
|
||||
|
||||
;; Pre-defined :result-transform function for use with advanced queries
|
||||
:query/result-transforms
|
||||
{:sort-by-priority
|
||||
(fn [result] (sort-by (fn [h] (get h :block/priority "Z")) result))}
|
||||
|
||||
;; The app will show those queries in today's journal page,
|
||||
;; the "NOW" query asks the tasks which need to be finished "now",
|
||||
;; the "NEXT" query asks the future tasks.
|
||||
:default-queries
|
||||
{:journals
|
||||
[{:title "🔨 NOW"
|
||||
:query [:find (pull ?h [*])
|
||||
:in $ ?start ?today
|
||||
:where
|
||||
[?h :block/marker ?marker]
|
||||
[(contains? #{"NOW" "DOING"} ?marker)]
|
||||
[?h :block/page ?p]
|
||||
[?p :block/journal? true]
|
||||
[?p :block/journal-day ?d]
|
||||
[(>= ?d ?start)]
|
||||
[(<= ?d ?today)]]
|
||||
:inputs [:14d :today]
|
||||
:result-transform (fn [result]
|
||||
(sort-by (fn [h]
|
||||
(get h :block/priority "Z")) result))
|
||||
:collapsed? false}
|
||||
{:title "📅 NEXT"
|
||||
:query [:find (pull ?h [*])
|
||||
:in $ ?start ?next
|
||||
:where
|
||||
[?h :block/marker ?marker]
|
||||
[(contains? #{"NOW" "LATER" "TODO"} ?marker)]
|
||||
[?h :block/page ?p]
|
||||
[?p :block/journal? true]
|
||||
[?p :block/journal-day ?d]
|
||||
[(> ?d ?start)]
|
||||
[(< ?d ?next)]]
|
||||
:inputs [:today :7d-after]
|
||||
:collapsed? false}]}
|
||||
|
||||
;; Add your own commands to slash menu to speedup.
|
||||
;; E.g.
|
||||
;; :commands
|
||||
;; [
|
||||
;; ["js" "Javascript"]
|
||||
;; ["md" "Markdown"]
|
||||
;; ]
|
||||
:commands
|
||||
[]
|
||||
|
||||
;; By default, a block can only be collapsed if it has some children.
|
||||
;; `:outliner/block-title-collapse-enabled? true` enables a block with a title
|
||||
;; (multiple lines) can be collapsed too. For example:
|
||||
;; - block title
|
||||
;; block content
|
||||
:outliner/block-title-collapse-enabled? false
|
||||
|
||||
;; Macros replace texts and will make you more productive.
|
||||
;; For example:
|
||||
;; Change the :macros value below to:
|
||||
;; {"poem" "Rose is $1, violet's $2. Life's ordered: Org assists you."}
|
||||
;; input "{{poem red,blue}}"
|
||||
;; becomes
|
||||
;; Rose is red, violet's blue. Life's ordered: Org assists you.
|
||||
:macros {}
|
||||
|
||||
;; The default level to be opened for the linked references.
|
||||
;; For example, if we have some example blocks like this:
|
||||
;; - a [[page]] (level 1)
|
||||
;; - b (level 2)
|
||||
;; - c (level 3)
|
||||
;; - d (level 4)
|
||||
;;
|
||||
;; With the default value of level 2, `b` will be collapsed.
|
||||
;; If we set the level's value to 3, `b` will be opened and `c` will be collapsed.
|
||||
:ref/default-open-blocks-level 2
|
||||
|
||||
:ref/linked-references-collapsed-threshold 50
|
||||
|
||||
;; Favorites to list on the left sidebar
|
||||
:favorites []
|
||||
|
||||
;; any number between 0 and 1 (the greater it is the faster the changes of the next-interval of card reviews) (default 0.5)
|
||||
;; :srs/learning-fraction 0.5
|
||||
|
||||
;; the initial interval after the first successful review of a card (default 4)
|
||||
;; :srs/initial-interval 4
|
||||
|
||||
;; hide specific properties for blocks
|
||||
;; E.g. :block-hidden-properties #{:created-at :updated-at}
|
||||
;; :block-hidden-properties #{}
|
||||
|
||||
;; Enable all your properties to have corresponding pages
|
||||
:property-pages/enabled? true
|
||||
|
||||
;; Properties to exclude from having property pages
|
||||
;; E.g.:property-pages/excludelist #{:duration :author}
|
||||
;; :property-pages/excludelist
|
||||
|
||||
;; By default, property value separated by commas will not be treated as
|
||||
;; page references. You can add properties to enable it.
|
||||
;; E.g. :property/separated-by-commas #{:alias :tags}
|
||||
;; :property/separated-by-commas #{}
|
||||
|
||||
;; Properties that are ignored when parsing property values for references
|
||||
;; :ignored-page-references-keywords #{:author :startup}
|
||||
|
||||
;; logbook setup
|
||||
;; :logbook/settings
|
||||
;; {:with-second-support? false ;limit logbook to minutes, seconds will be eliminated
|
||||
;; :enabled-in-all-blocks true ;display logbook in all blocks after timetracking
|
||||
;; :enabled-in-timestamped-blocks false ;don't display logbook at all
|
||||
;; }
|
||||
|
||||
;; Mobile photo uploading setup
|
||||
;; :mobile/photo
|
||||
;; {:allow-editing? true
|
||||
;; :quality 80}
|
||||
|
||||
;; Mobile features options
|
||||
;; Gestures
|
||||
;; :mobile
|
||||
;; {:gestures/disabled-in-block-with-tags ["kanban"]}
|
||||
|
||||
;; Extra CodeMirror options
|
||||
;; See https://codemirror.net/5/doc/manual.html#config for possible options
|
||||
;; :editor/extra-codemirror-options {:keyMap "emacs" :lineWrapping true}
|
||||
|
||||
;; Enable logical outdenting
|
||||
;; :editor/logical-outdenting? true
|
||||
|
||||
;; When both text and a file are in the clipboard, paste the file
|
||||
;; :editor/preferred-pasting-file? true
|
||||
|
||||
;; Quick capture templates for receiving contents from other apps.
|
||||
;; Each template contains three elements {time}, {text} and {url}, which can be auto-expanded
|
||||
;; by received contents from other apps. Note: the {} cannot be omitted.
|
||||
;; - {time}: capture time
|
||||
;; - {date}: capture date using current date format, use `[[{date}]]` to get a page reference
|
||||
;; - {text}: text that users selected before sharing.
|
||||
;; - {url}: url or assets path for media files stored in Logseq.
|
||||
;; You can also reorder them, or even only use one or two of them in the template.
|
||||
;; You can also insert or format any text in the template as shown in the following examples.
|
||||
;; :quick-capture-templates
|
||||
;; {:text "[[quick capture]] **{time}**: {text} from {url}"
|
||||
;; :media "[[quick capture]] **{time}**: {url}"}
|
||||
|
||||
;; Quick capture options
|
||||
;; :quick-capture-options {:insert-today? false :redirect-page? false :default-page "my page"}
|
||||
|
||||
;; File sync options
|
||||
;; Ignore these files when syncing, regexp is supported.
|
||||
;; :file-sync/ignore-files []
|
||||
|
||||
;; dwim (do what I mean) for Enter key when editing.
|
||||
;; Context-awareness of Enter key makes editing more easily
|
||||
; :dwim/settings {
|
||||
; :admonition&src? true
|
||||
; :markup? false
|
||||
; :block-ref? true
|
||||
; :page-ref? true
|
||||
; :properties? true
|
||||
; :list? true
|
||||
; }
|
||||
|
||||
;; Decide the way to escape the special characters in the page title.
|
||||
;; Warning:
|
||||
;; This is a dangerous operation. If you want to change the setting,
|
||||
;; should access the setting `Filename format` and follow the instructions.
|
||||
;; Or you have to rename all the affected files manually then re-index on all
|
||||
;; clients after the files are synced. Wrong handling may cause page titles
|
||||
;; containing special characters to be messy.
|
||||
;; Available values:
|
||||
;; :file/name-format :triple-lowbar
|
||||
;; ;use triple underscore `___` for slash `/` in page title
|
||||
;; ;use Percent-encoding for other invalid characters
|
||||
:file/name-format :triple-lowbar
|
||||
|
||||
;; specify the format of the filename for journal files
|
||||
;; :journal/file-name-format "yyyy_MM_dd"
|
||||
|
||||
}
|
||||
@ -342,6 +342,7 @@
|
||||
;; ;use triple underscore `___` for slash `/` in page title
|
||||
;; ;use Percent-encoding for other invalid characters
|
||||
:file/name-format :triple-lowbar
|
||||
:ui/show-brackets? false
|
||||
|
||||
;; specify the format of the filename for journal files
|
||||
;; :journal/file-name-format "yyyy_MM_dd"
|
||||
|
||||
@ -139,7 +139,6 @@ file-path:: ../assets/ostep_1680491762166_0.pdf
|
||||
- In user mode, code is restricted in what it can do, otherwise the processor will raise an exception
|
||||
- User code perform system call to do privileged operation.
|
||||
- To execute a system call, use `trap` and `return-from-trap` instruction: jump to/from kernel and change the privilege level.
|
||||
-
|
||||
- Limited Direct Execution Protocol-interesting figure illustrating how system call is done
|
||||
hl-page:: 78
|
||||
ls-type:: annotation
|
||||
@ -164,22 +163,22 @@ file-path:: ../assets/ostep_1680491762166_0.pdf
|
||||
ls-type:: annotation
|
||||
id:: 642cdc2e-329c-423e-a65a-0a53fb6eaa76
|
||||
hl-color:: green
|
||||
- scoff
|
||||
- scoff 嘲笑;愚弄;笑柄
|
||||
hl-page:: 83
|
||||
ls-type:: annotation
|
||||
id:: 642ce319-8087-4252-b51d-42f749f7c283
|
||||
hl-color:: green
|
||||
- enact
|
||||
- enact 制定(法律);通过(法案)
|
||||
ls-type:: annotation
|
||||
hl-page:: 83
|
||||
hl-color:: green
|
||||
id:: 642ce357-9914-417b-8036-35ae44ac7283
|
||||
- whet
|
||||
ls-type:: annotation
|
||||
- whet 引起,刺激(食欲、欲望、兴趣等)
|
||||
hl-page:: 84
|
||||
hl-color:: green
|
||||
ls-type:: annotation
|
||||
id:: 642cef47-0c2f-482f-8b61-9a715e5438e5
|
||||
- analogous
|
||||
hl-color:: green
|
||||
- analogous 相似的,可比拟的
|
||||
ls-type:: annotation
|
||||
hl-page:: 86
|
||||
hl-color:: green
|
||||
@ -195,7 +194,7 @@ file-path:: ../assets/ostep_1680491762166_0.pdf
|
||||
ls-type:: annotation
|
||||
id:: 642cf48d-b312-4af1-a2ff-d55cf9f32e48
|
||||
hl-color:: yellow
|
||||
- conundrum
|
||||
- conundrum 谜,猜不透的难题,难答的问题
|
||||
ls-type:: annotation
|
||||
hl-page:: 91
|
||||
hl-color:: green
|
||||
@ -205,7 +204,7 @@ file-path:: ../assets/ostep_1680491762166_0.pdf
|
||||
ls-type:: annotation
|
||||
id:: 642cf4f9-4afd-4240-ac76-5522285fa1eb
|
||||
hl-color:: yellow
|
||||
- Bad average turnaround when long job runs first
|
||||
- Bad average turnaround when long job runs first(The jobs run for **different amount of time**)
|
||||
- Convoy effect: a number of relatively-short potential consumers of a resource get queued behind a heavyweight resource consumer
|
||||
- Shortest Job First(SJF)
|
||||
hl-page:: 93
|
||||
@ -213,9 +212,227 @@ file-path:: ../assets/ostep_1680491762166_0.pdf
|
||||
id:: 642cf705-4a47-4daa-a542-43c4ae6f239e
|
||||
hl-color:: yellow
|
||||
- assuming that jobs all arriving at the same time, it could be proven that SJF is indeed an optimal scheduling algorithm
|
||||
- Downgrade to the same problem of Convey Effect when jobs don't arrive at the same time. For example, short jobs arrive shortly after the long job.
|
||||
- Downgrade to the same problem of Convey Effect when jobs **don't arrive at the same time**. For example, short jobs arrive shortly after the long job.
|
||||
- Shortest Time-to-Completion First (STCF)
|
||||
ls-type:: annotation
|
||||
hl-page:: 94
|
||||
hl-color:: yellow
|
||||
id:: 642cfce4-67f5-4315-bf81-445922b8ae54
|
||||
id:: 642cfce4-67f5-4315-bf81-445922b8ae54
|
||||
- Basically, it is SJF(by our definition is a non-preemptive scheduler) with **preemption**. When a new job enters the system, STCF schedules to the job with the least time left among all present jobs(including the new guy).
|
||||
- Metric: Response Time. Defined as `resp = firstrun - arrival`. Compare to ((642cf48d-b312-4af1-a2ff-d55cf9f32e48))
|
||||
hl-page:: 95
|
||||
ls-type:: annotation
|
||||
id:: 642e41ac-3b8f-4fe3-a9ef-e2adeeadfe9d
|
||||
hl-color:: yellow
|
||||
- For this metric, STCF is not that good.
|
||||
- Round-Robin (RR)
|
||||
ls-type:: annotation
|
||||
hl-page:: 96
|
||||
hl-color:: yellow
|
||||
id:: 642e435d-7116-4d2c-9ec3-889558ba2dca
|
||||
- Not run jobs to completion But run a job for a time slice and then Switch to the next job in the run queue. Repeat until the jobs are done
|
||||
- Good for Response Time, bad for Turnaround Time.
|
||||
- Length of time slice is critical, in theory the shorter the better performance under response time metric. However, cost of context switching will dominate overall performance. The cost of context switching comes not only from save/restore registers, but also from caches or something alike.
|
||||
- amortization 分期偿还;折旧;(均摊)
|
||||
hl-page:: 97
|
||||
ls-type:: annotation
|
||||
id:: 642e4473-4162-4320-91af-fba22e79be25
|
||||
hl-color:: green
|
||||
- pessimal 最差的;最坏的
|
||||
ls-type:: annotation
|
||||
hl-page:: 97
|
||||
hl-color:: green
|
||||
id:: 642e4a5d-37c1-4484-b2ac-913e40d8a2dc
|
||||
- Incorporating I/O: Overlap. Basic idea is to treat each CPU burst(rather than the whole job) as a job, so that the job is divided into parts. This enables the scheduler to choose another job to run when the job is doing IO
|
||||
hl-page:: 98
|
||||
ls-type:: annotation
|
||||
id:: 642e4ed2-7674-4a5f-bb65-67541b97db95
|
||||
hl-color:: yellow
|
||||
- Multi-level Feedback Queue (MLFQ)
|
||||
ls-type:: annotation
|
||||
hl-page:: 103
|
||||
hl-color:: yellow
|
||||
id:: 642e5117-90c3-41db-9f15-45f3ba9edf91
|
||||
- Workload: a mix of interactive jobs that are short-running, and some longer-running “CPU-bound” jobs
|
||||
- Basic rules: each job assigned to a priority level and MLFQ decides which job to run by priority. In this scheme, a job with higher priority runs first, and jobs with the same priority RR. ((642ecc9e-b28b-4951-aaf6-1191e867b34f))
|
||||
- Change priority: set priority based on its observed behavior, for example, keep high priority for interactive jobs which frequently relinquish CPU.
|
||||
collapsed:: true
|
||||
- one of the major goals of the algorithm: It doesn’t know whether a job will be short or job, it first assumes it might be short, thus giving high priority. If it actually is short, it will run quickly and complete; if it is not, it will slowly move down the queues, and thus soon prove itself to be a long-running more batch-like process.
|
||||
hl-page:: 107
|
||||
ls-type:: annotation
|
||||
id:: 642ece05-2fa8-4a24-88e2-f2550cfdd2ed
|
||||
hl-color:: yellow
|
||||
- Approximates SJF
|
||||
- Basic rules for MLFQ:
|
||||
hl-page:: 104
|
||||
ls-type:: annotation
|
||||
id:: 642ecc9e-b28b-4951-aaf6-1191e867b34f
|
||||
hl-color:: yellow
|
||||
collapsed:: true
|
||||
- Rule 1: If Priority(A) > Priority(B), A runs (B doesn’t).
|
||||
- Rule 2: If Priority(A) = Priority(B), A & B run in RR.
|
||||
- Problematic priority adjustment algorithm
|
||||
hl-page:: 105
|
||||
ls-type:: annotation
|
||||
id:: 642ecd09-c81b-4127-8bfa-e1fbb78ba583
|
||||
hl-color:: yellow
|
||||
collapsed:: true
|
||||
- Rule 3: When a job enters the system, it is placed at the highest priority (the topmost queue).
|
||||
- Rule 4a: If a job uses up an entire time slice while running, its priority is reduced.
|
||||
id:: 642ecd25-c824-4dcd-9a6a-43a717dd5b1e
|
||||
Rule 4b: If a job gives up the CPU before the time slice is up, it stays at the same priority level.
|
||||
- Problem 1: starvation.
|
||||
id:: 642ecd3f-c076-42f1-ba24-7f363eba9e14
|
||||
If there are too many interactive jobs *occupying the CPU in combination*, then the long jobs will never get to run
|
||||
- Problem 2: game the scheduler.
|
||||
For example, a CPU-bound job intentionally issue a trivial IO request just before its time slice is over, so that it will not be moved to lower queue although it should be.
|
||||
- Problem 3: program behavior change.
|
||||
id:: 642ed383-c27c-401c-b77f-66e7ec60ba5e
|
||||
- The Priority Boost
|
||||
ls-type:: annotation
|
||||
hl-page:: 109
|
||||
hl-color:: yellow
|
||||
id:: 642ed47c-9ba8-4451-b6b3-6ca6ee1dbdda
|
||||
collapsed:: true
|
||||
- Rule 5: After some time period `S`, move all the jobs in the system to the topmost queue.
|
||||
- This solves the problem of ((642ecd3f-c076-42f1-ba24-7f363eba9e14)) and ((642ed383-c27c-401c-b77f-66e7ec60ba5e)). Since the priorities will get recalculated periodically, the scheduler re-learns the jobs' traits which may have changed.
|
||||
- However, how to choose such `S` is a problem.
|
||||
- voo-doo constants
|
||||
ls-type:: annotation
|
||||
hl-page:: 109
|
||||
hl-color:: yellow
|
||||
id:: 642ed799-d933-441a-a043-06e47877c0d9
|
||||
- Better Accounting
|
||||
ls-type:: annotation
|
||||
hl-page:: 110
|
||||
hl-color:: yellow
|
||||
id:: 642ed5f6-2a74-4a24-9f69-a472cf644fc9
|
||||
collapsed:: true
|
||||
- Rule 4: Once a job uses up its time allotment at a given level (regardless of how many times it has given up the CPU), its priority is reduced.
|
||||
- This substitutes ((642ecd25-c824-4dcd-9a6a-43a717dd5b1e))
|
||||
- parameterized scheduler
|
||||
hl-page:: 110
|
||||
ls-type:: annotation
|
||||
id:: 642ed6a2-c04b-4f03-a86f-1d70933c0d42
|
||||
hl-color:: yellow
|
||||
- relinquish 交出,让给;放弃
|
||||
hl-page:: 105
|
||||
ls-type:: annotation
|
||||
id:: 642ec9be-dd64-4a66-ab7a-3f0ee376e055
|
||||
hl-color:: green
|
||||
- culprit 犯人,罪犯;被控犯罪的人
|
||||
ls-type:: annotation
|
||||
hl-page:: 110
|
||||
hl-color:: green
|
||||
id:: 642ed5fe-3314-4020-a4fc-b1b75ea987b9
|
||||
- Proportional-share(fair-share) scheduler
|
||||
hl-page:: 115
|
||||
ls-type:: annotation
|
||||
id:: 642eda22-bd34-42e4-b7e4-1107636d1fbc
|
||||
hl-color:: yellow
|
||||
- Instead of optimizing for turnaround or response time, the scheduler tries to guarantee that <u>each job obtain a certain percentage of CPU time</u>.
|
||||
- tickets: represent the share of a resource that a process should receive
|
||||
hl-page:: 115
|
||||
ls-type:: annotation
|
||||
id:: 642edaa2-78d2-4fde-8b14-584b7d39fa24
|
||||
hl-color:: yellow
|
||||
- ticket currency: kind of user interface. Users allocate tickets freely to their own processes, and the system converts user tickets to global tickets according to some kind of exchange rate, in order to achieve fairness between users.
|
||||
hl-page:: 117
|
||||
ls-type:: annotation
|
||||
id:: 642edc09-1329-4eca-95ad-7f62b48875e2
|
||||
hl-color:: yellow
|
||||
- ticket transfer: kind of cooperation between processes. A process temporarily hands off its tickets to another process.
|
||||
hl-page:: 117
|
||||
ls-type:: annotation
|
||||
id:: 642edc0f-464d-4616-9313-92b640cecec5
|
||||
hl-color:: yellow
|
||||
- ticket inflation: another kind of cooperation. A process can temporarily raise or lower the number of tickets it owns, to indicate that it needs CPU.
|
||||
hl-page:: 117
|
||||
ls-type:: annotation
|
||||
id:: 642edc14-74d6-4758-a21f-d615d2ee51c9
|
||||
hl-color:: yellow
|
||||
- Lottery scheduling
|
||||
hl-page:: 115
|
||||
ls-type:: annotation
|
||||
id:: 642edb1d-7740-4459-bb42-0c6a84156475
|
||||
hl-color:: yellow
|
||||
- Scheduler **randomly** pick a winning ticket(i.e. number the tickets 1-N, and do a range random), the job which holdes this ticket runs. The more tickets a job holds, the higher chance it is chosen to run. Thus the CPU is shared by proportion, probabilistically.
|
||||
- Lottery Fairness Study: When the job length is not very long, unfairness can be quite severe. Only as the jobs run for a significant number of time slices does the lottery scheduler approach the desired outcome.
|
||||
ls-type:: annotation
|
||||
hl-page:: 119
|
||||
hl-color:: yellow
|
||||
id:: 642eded0-39d0-40aa-8b28-c273d39f90c2
|
||||
- Stride scheduling: a **deterministic** fair-share scheduler.
|
||||
hl-page:: 120
|
||||
ls-type:: annotation
|
||||
id:: 642edf4f-7c7f-477f-acae-0969da13731e
|
||||
hl-color:: yellow
|
||||
- Each job has a *stride*, which is inverse in proportion to the tickets it has (conceptually like reciprocal).
|
||||
Every time a process runs, increase its counter(called its *pass* value) by 1 stride.
|
||||
The scheduler picks the process with lowest pass value to run
|
||||
- Why still lottery scheduling? No global states! Thus much easier to implement.
|
||||
- Problem: How to determine how many tickets to assign to your processes with different purposes and traits? MLFQ does this automatically, but here nobody does this.
|
||||
- Completely Fair Scheduler (CFS)
|
||||
ls-type:: annotation
|
||||
hl-page:: 121
|
||||
hl-color:: yellow
|
||||
id:: 642ee1b9-281d-4589-ab90-e776507dd04f
|
||||
- Goal: to fairly divide a CPU evenly among all competing processes.
|
||||
hl-page:: 122
|
||||
ls-type:: annotation
|
||||
id:: 642ee242-d382-4685-86b4-b3169fcc4fcf
|
||||
hl-color:: yellow
|
||||
- virtual runtime: As each process runs, it accumulates `vruntime`. And the scheduler picks the lowest one to run.
|
||||
hl-page:: 122
|
||||
ls-type:: annotation
|
||||
id:: 642ee25b-1f3a-4b7c-a721-fa60f5fa5d2f
|
||||
hl-color:: yellow
|
||||
- For blocked processes: need to alter `vruntime` of a job when it wakes up. Otherwise, its `vruntime` would be too small thus breaking fairness. CFS chooses the minimum `vruntime` in the running process table.
|
||||
hl-page:: 125
|
||||
ls-type:: annotation
|
||||
id:: 642ee7e4-20d2-44d5-8407-288a8a2e1769
|
||||
hl-color:: yellow
|
||||
- Parameters
|
||||
- `sched_latency`: when running, scheduler divides this value by the number of running processes `n`. The result is used as the time slice for each process. This simple approach is adaptive to dynamic change of running processes.
|
||||
hl-page:: 122
|
||||
ls-type:: annotation
|
||||
id:: 642ee303-c289-4e55-a0c5-bc4f534fa882
|
||||
hl-color:: yellow
|
||||
- `min_granularity`: minimum of time slice, to avoid reducing performance too much
|
||||
hl-page:: 122
|
||||
ls-type:: annotation
|
||||
id:: 642ee3d6-827b-4d80-b6c3-9cb8253a16d6
|
||||
hl-color:: yellow
|
||||
- Weighting (Niceness): every process is assigned to a `nice` value ranging from -20 to 19. The smaller nice value, the higher priority. A nice value is mapped to some `weight` through a carefully built table.
|
||||
hl-page:: 123
|
||||
ls-type:: annotation
|
||||
id:: 642ee44f-5fca-4d7d-b688-ff4ac22be23a
|
||||
hl-color:: yellow
|
||||
- Given the weight, the time slice can be calculated, and the calculation for `vruntime` needs adaptation to guarantee the time slice.
|
||||
$$ time\_slice_k = \frac{weight_k}{\sum weight_i}\cdot sched\_latency \\ vruntime_i = vruntime_i + \frac{weight_0}{weight_i} \cdot runtime_i$$
|
||||
-
|
||||
- hallmark 特征;特点:
|
||||
ls-type:: annotation
|
||||
hl-page:: 126
|
||||
hl-color:: green
|
||||
id:: 642ee5dd-9183-4122-9dee-06ff7fb9be46
|
||||
- panacea 万能药
|
||||
hl-page:: 126
|
||||
ls-type:: annotation
|
||||
id:: 642ee8c2-89fe-4e7b-bf6d-bb0e379f8fe2
|
||||
hl-color:: green
|
||||
- remedy 补救方法
|
||||
ls-type:: annotation
|
||||
hl-page:: 129
|
||||
hl-color:: green
|
||||
id:: 642eeb3a-8803-4c73-84a7-cc48c903f10f
|
||||
- proliferation 涌现;增殖
|
||||
ls-type:: annotation
|
||||
hl-page:: 129
|
||||
hl-color:: green
|
||||
id:: 642eeb44-cf62-4cf6-81cb-f1f6423cb66d
|
||||
- cache coherence
|
||||
ls-type:: annotation
|
||||
hl-page:: 132
|
||||
hl-color:: yellow
|
||||
id:: 642eecc1-d07d-4e48-bcd5-b84db831b241
|
||||
Loading…
Reference in New Issue
Block a user