SQLite format 3@ Y R)1N  4;''5tablereviewHistoryreviewHistoryCREATE TABLE "reviewHistory" ( "cardId" INTEGER NOT NULL, time FLOAT NOT NULL, "lastInterval" FLOAT NOT NULL, "nextInterval" FLOAT NOT NULL, ease INTEGER NOT NULL, delay FLOAT NOT NULL, "lastFactor" FLOAT NOT NULL, "nextFactor" FLOAT NOT NULL, reps FLOAT NOT NULL, "thinkingTime" FLOAT NOT NULL, "yesCount" FLOAT NOT NULL, "noCount" FLOAT NOT NULL, PRIMARY KEY ("cardId", time) )9M'indexsqlite_autoindex_reviewHistory_1reviewHistoryJktablesourcessourcesCREATE TABLE sources ( id INTEGER NOT NULL, name TEXT NOT NULL, created FLOAT NOT NULL, "lastSync" FLOAT NOT NULL, "syncP)+ "     lJ!2011-02-04@5Um(MA- O$iu z#" !2012-03-04" !2012-02-24 ::/;JktablesourcessourcesCREATE TABLE sources ( id INTEGER NOT NULL, name TEXT NOT NULL, created FLOAT NOT NULL, "lastSync" FLOAT NOT NULL, "syncPeriod" INTEGER NOT NULL, PRIMARY KEY (id) );''5tablereviewHistoryreviewHistoryCREATE TABLE "reviewHistory" ( "cardId" INTEGER NOT NULL, time FLOAT NOT NULL, "lastInterval" FLOAT NOT NULL, "nextInterval" FLOAT NOT NULL, ease INTEGER NOT NULL, delay FLOAT NOT NULL, "lastFactor" FLOAT NOT NULL, "nextFactor" FLOAT NOT NULL, reps FLOAT NOT NULL, "thinkingTime" FLOAT NOT NULL, "yesCount" FLOAT NOT NULL, "noCount" FLOAT NOT NULL, PRIMARY KEY ("cardId", time) )9M'indexsqlite_autoindex_reviewHistory_1reviewHistory  {tablestatsstatsCREATE TABLE stats ( id INTEGER NOT NULL, type INTEGER NOT NULL, day DATE NOT NULL, reps INTEGER NOT NULL, "averageTime" FLOAT NOT NULL, "reviewTime" FLOAT NOT NULL, "distractedTime" FLOAT NOT NULL, "distractedReps" INTEGER NOT NULL, "newEase0" INTEGER NOT NULL, "newEase1" INTEGER NOT NULL, "newEase2" INTEGER NOT NULL, "newEase3" INTEGER NOT NULL, "newEase4" INTEGER NOT NULL, "youngEase0" INTEGER NOT NULL, "youngEase1" INTEGER NOT NULL, "youngEase2" INTEGER NOT NULL, "youngEase3" INTEGER NOT NULL, "youngEase4" INTEGER NOT NULL, "matureEase0" INTEGER NOT NULL, "matureEase1" INTEGER NOT NULL, "matureEase2" INTEGER NOT NULL, "matureEase3" INTEGER NOT NULL, "matureEase4" INTEGER NOT NULL, PRIMARY KEY (id) )`tablemediamediaCREATE TABLE media ( id INTEGER NOT NULL, filename TEXT NOT NULL, size INTEGER NOT NULL, created FLOAT NOT NULL, "originalPath" TEXT NOT NULL, description TEXT NOT NULL, PRIMARY KEY (id) )75 ~qdWJ=0# zm`SF9,vi\OB5fa290ba8dbb4f050358a9f0056951a91<𬵿' M Minkowski.pngAӧ&ve6e962b225ce759866e3bea9f7383c37Ya M latex-200e9c41cd10bd590b2aea9cdd42d76f.pngAaE?}5f15e0f88e6f0381 ӲW  ޤĥi 󘞙 0 $ Ѳܤ> }ɭ | {跒 y֓Ӈ vߞ= tԢڀ qӘ pP lی5 i& gԓ e玒F d̂󘞐 b۷ a¦ ] Z߲$ W¦ U, S Q񺎱 P N۷ K I󙄷 H FИ D石Š BΝR ?ㅭ >ؓ =ߊ :챒 8 5 4؀ 1įY 0 -ۓ˯y , *Ϳۏ (ʺ &X #ƞ Ķ ‚ʟ_ W!newSpacing60.0 hexCache{} cssCacherevSpacing0.!revSpacing0.1)latexPost\end{document}>qlatexPre\documentclass[12pt]{article} \special{papersize=3in,5in} \usepackage[utf8]{inputenc} \usepackage{amssymb,amsmath} \pagestyle{empty} \setlength{\parindent}{0in} \begin{document}  mediaURL# revInactive# newInactive  revActive  newActive perDay1!leechFails16)suspe   2 !!tablecardModelscardModels CREATE TABLE "cardModels" ( id INTEGER NOT NULL, ordinal INTEGER NO]tablemodelsmodels CREATE TABLE models ( id INTEGER NOT NULL, "deckId" INTEGER, created FLOAT NOT NULL, mr7tabledeckVarsdeckVars CREATE TABLE "deckVars" ( "key" TEXT NOT NULL, value TEXT, PRIMARY KEY ("key") )/Cindexsqlite_autoindex_deckVars_1deckVars ]tablemodelsmodels CREATE TABLE models ( id INTEGER NOT NULL, "deckId" INTEGER, created FLOAT NOT NULL, modified FLOAT NOT NULL, tags TEXT NOT NULL, name TEXT NOT NULL, description TEXT NOT NULL, features TEXT NOT NULL, spacing FLOAT NOT NULL, "initialSpacing" FLOAT NOT NULL, source INTEGER NOT NULL, PRIMARY KEY (id) ) !!tablecardModelscardModels CREATE TABLE "cardModels" ( id INTEGER NOT NULL, ordinal INTEGER NO 8WJs=d% sortIndex'mediaLocation)suspendLeechesh pageSize hexCache cssCache!revSpacing latexPost latexPre mediaURL!newSpacing#revInactive#newInactive revActive newActive perDay!leechFails 4 ! ARIAӬABasicPerusmalli?< ""e    -Reverse{{Back}}{{Front}}Arial#000000Arial#000000Arial#ffffffe   -Forward%(Front)s%(Back)sArial#000000Arial#000000Arial#ffffffT NULL, "modelId" INTEGER NOT NULL, name TEXT NOT NULL, description TEXT NOT NULL, active BOOLEAN NOT NULL, qformat TEXT NOT NULL, aformat TEXT NOT NULL, lformat TEXT, qedformat TEXT, aedformat TEXT, "questionInAnswer" BOOLEAN NOT NULL, "questionFontFamily" TEXT, "questionFontSize" INTEGER, "questionFontColour" VARCHAR(7), "questionAlign" INTEGER, "answerFontFamily" TEXT, "answerFontSize" INTEGER, "answerFontColour" VARCHAR(7), "answerAlign" INTEGER, "lastFontFamily" TEXT, "lastFontSize" INTEGER, "lastFontColour" VARCHAR(7), "editQuestionFontFamily" TEXT, "editQuestionFontSize" INTEGER, "editAnswerFontFamily" TEXT, "editAnswerFontSize" INTEGER, "allowEmptyAnswer" BOOLEAN NOT NULL, "typeAnswer" TEXT NOT NULL, PRIMARY KEY (id), FOREIGN KEY("modelId") REFERENCES models (id), CHECK ("questionInAnswer" IN (0, 1)), CHECK ("allowEmptyAnswer" IN (0, 1)), CHECK (active IN (0, 1)) ) #Ї  -BackArial1$Т -FrontArial1 IV ##stablefieldModelsfieldModelsCREATE TABLE "fieldModels" ( id INTEGER NOT NULL, ordinal INTEGER NOT NULL, "modelId" INTEGER NOT NULL, name TEXT NOT NULL, description TEXT NOT NULL, features TEXT NOT NULL, required BOOLEAN NOT NULL, "unique" BOOLEAN NOT NULL, numeric BOOLEAN NOT NULL, "quizFontFamily" TEXT, "quizFontSize" INTEGER, "quizFontColour" VARCHAR(7), "editFontFamily" TEXT, "editFontSize" INTEGER, PRIMARY KEY (id), CHECK (numeric IN (0, 1)), CHECK (required IN (0, 1)), CHECK ("unique" IN (0, 1)), FOREIGN KEY("modelId") REFERENCES models (id) )4 '''tablemodelsDeletedmodelsDeletedCREATE TABLE "modelsDeleted" ( "modelId" INTEGER NOT NULL, "deletedTime" FLOAT NOT NULL, FOREIGN KEY("modelId") REFERENCES models (id) )  ww%  -%# AR\)Ax> A-A~R?񙙙 PriorityVeryHighPriorityHighPriorityLowP3 NULL, "hardIntervalMin" FLOAT NOT NULL, "hardIntervalMax" FLOAT NOT NULL, "midIntervalMin" FLOAT NOT NULL, "midIntervalMax" FLOAT NOT NULL, "easyIntervalMin" FLOAT NOT NULL, "easyIntervalMax" FLOAT NOT NULL, delay0 INTEGER NOT NULL, delay1 INTEGER NOT NULL, delay2 FLOAT NOT NULL, "collapseTime" INTEGER NOT NULL, "highPriority" TEXT NOT NULL, "medPriority" TEXT NOT NULL, "lowPriority" TEXT NOT NULL, suspended TEXT NOT NULL, "newCardOrder" INTEGER NOT NULL, "newCardSpacing" INTEGER NOT NULL, "failedCardMax" INTEGER NOT NULL, "newCardsPerDay" INTEGER NOT NULL, "sessionRepLimit" INTEGER NOT NULL, "sessionTimeLimit" INTEGER NOT NULL, "utcOffset" FLOAT NOT NULL, "cardCount" INTEGER NOT NULL, "factCount" INTEGER NOT NULL, "failedNowCount" INTEGER NOT NULL, "failedSoonCount" INTEGER NOT NULL, "revCount" INTEGER NOT NULL, "newCount" INTEGER NOT NULL, "revCardOrder" INTEGER NOT NULL, PRIMARY KEY (id), FOREIGN KEY("currentModelId") REFERENCES models (id) ) q AtabledecksdecksCREATE TABLE decks ( id INTEGER NOT NULL, created FLOAT NOT NULL, modified FLOAT NOT NULL, description TEXT NOT NULL, version INTEGER NOT NULL, "currentModelId" INTEGER, "syncName" TEXT, "lastSync" FLOAT NOT& +tablefactsfactsCREATE TABLE facts ( id INTEGER NOT NULL, "modelId" INTEGER NOT NULL, created FLOAT NOT NULL, modified FLOAT NOT NULL, tags TEXT NOT NULL, "spaceUntil" TEXT NOT NULL, "lastCardId" INTEGER, PRIMARY KEY (id), FOREIGN KEY("modelId") REFERENCES models (id) )5ItablecardscardsCREATE TABLE cards ( id INTEGER NOT NULL, "factId" INTEGER NOT NULL, "cardModelId" INTEGER NOT NULL, created FLOAT NOT NULL, modified FLOAT NOT NULL, tags TEXT NOT NULL, ordinal INTEGER NOT NULL, question TEXT NOT NULL, answer TEXT NOT NULL, priority INTEGER NOT NULL, ~qdWJ=0# zm`SF9,vi\OB5(ܷ󚦰k܉6ܓۿ󗤽ӗژ󗤦3淓ySuذ򡛮ąәΏ~Ԭ󗤥ɻ{߲%yӵ󚦊w೙hv󙞳uҲtҁsڷrѯqѯ™pђ󕬧ڛoδnУlkVjΈӘ i΃ͳ`g͹󕫌[fͳޓEe͗ٓdԶŧ@cӕ,b̛󘜹ɖa󚦧2`ʏ\‚kXʾӚwVUɉ,T󗤝SкRȆQȁ˓,P𩸐wOǰڐMƥLƢ蓕KƠﳘJƕӕό"I Hū۳3Gː󚪶XFâӘE׳|DC„᳙ B瓚{AԳ8qә^ շӚȬK󚧣淓y ~qdWJ=0# zm`SF9,vi\OB5(AӪ{Cԗ𓕪Bϥ@><̕;ӝ83ړ2ҶG1ҵÓ*Ұ)󕬞(әȒ&峕|#r"!Й㳗ġjЗ(ЄԳϱ㳕#ϫϩ'Ϡϳᓗdͫ ͪØ ͗̀󚦊؅ӕӚ2̾Әt̚ߓʔʅϡ|󚧣dÉlɖ.Ȼȳȸⓘ}ȫ󚦥ȎЕѣӘәȩͳQ֭Ә(ŶŬӚXłoĝ#ĎӘލÔøәÅ;¹)¬瓕‚󘝸Mپٚ䍒 L ϙ# eܦGӘFړinterval FLOAT NOT NULL, "lastInterval" FLOAT NOT NULL, due FLOAT NOT NULL, "lastDue" FLOAT NOT NULL, factor FLOAT NOT NULL, "lastFactor" FLOAT NOT NULL, "firstAnswered" FLOAT NOT NULL, reps INTEGER NOT NULL, successive INTEGER NOT NULL, "averageTime" FLOAT NOT NULL, "reviewTime" FLOAT NOT NULL, "youngEase0" INTEGER NOT NULL, "youngEase1" INTEGER NOT NULL, "youngEase2" INTEGER NOT NULL, "youngEase3" INTEGER NOT NULL, "youngEase4" INTEGER NOT NULL, "matureEase0" INTEGER NOT NULL, "matureEase1" INTEGER NOT NULL, "matureEase2" INTEGER NOT NULL, "matureEase3" INTEGER NOT NULL, "matureEase4" INTEGER NOT NULL, "yesCount" INTEGER NOT NULL, "noCount" INTEGER NOT NULL, "spaceUntil" FLOAT NOT NULL, "relativeDelay" FLOAT NOT NULL, "isDue" BOOLEAN NOT NULL, type INTEGER NOT NULL, "combinedDue" INTEGER NOT NULL, PRIMARY KEY (id), FOREIGN KEY("cardModelId") REFERENCES "cardModels" (id), FOREIGN KEY("factId") REFERENCES facts (id), CHECK ("isDue" IN (0, 1)) )~qdWJ=0# zm`SF9,vi\OB5(ӝ~әӘ̡ӘڑәhҜєӘс䓚ȑevаә΀,ϰςkβIܨ􉙇͛ә,̒سzڲ3ϥ_˯˘Әˏȝ,ʯʬzʛxӕ`vӘr㸓pѓnәmɪkiɚݓhɗ󚦊zcɏس^ɂ[Vȷ˳ÆSȠwOȕNϲƳKǸӕЀIڅFӕό"CƄ@`9ņJ6ɳ3ĄӘL.Þk*Ù򡺋(Ìӓ&볚w$ό!¹¬3«]әsݓqJә#󕗖VӚ񂓕e Sh8KtablefieldsfieldsCREATE TABLE fields ( id INTEGER NOT NULL, "factId" INTEGER NOT NULL, "fieldModelId" INTEGER NOT NULL, ordinal INTEGER NOT NULL, value TEXT NOT NULL, PRIMARY KEY (id), FOREIGN KEY("fieldModelId") REFERENCES "fieldModels" (id), FOREIGN KEY("factId") REFERENCES facts (id) ).%%tablefactsDeletedfactsDeletedCREATE TABLE "factsDeleted" ( "factId" INTEGER NOT NULL, "deletedTime" FLOAT NOT NULL, FOREIGN KEY("factId") REFERENCES facts (id) )0%%#tablemediaDeletedmediaDeletedCREATE TABLE "mediaDeleted" ( "mediaId" INTEGER NOT NULL, "deletedTime" FLOAT NOT NULL, FOREIGN KEY("mediaId") REFERENCES cards (id) ).%%tablecardsDeletedcardsDeletedCREATE TABLE "cardsDeleted" ( "cardId" INTEGER NOT NULL, "deletedTime" FLOAT NOT NULL, FOREIGN KEY("cardId") REFERENCES cards (id) ) tabletagstagsCREATE TABLE tags ( id integer not null, tag text not null collate nocase, priority integer not null default 2, primary key(id))    -{gS<! sbRA-'visualization!statisticsself-help!psychology3positive_psychology!physiology!persuasion-opponent-process/operating_systems math-machine_learning linux )jonathan_haidt 5happiness_hypothesis -getting_stronger 'decision_tree 'consciousness compsci%being_no-one Reverse Forward Basic-PriorityVeryHigh%PriorityHigh# PriorityLow3 /~xrlf`ZTNHB<60*$ 7e3I`6 e3I`5e3I`4e3I`3d2 2 d2 1d2 0d2 /93S. 93S-93S,93S+3IY* 3IY)3IY(3IY'2ݯ& 2ݯ%2ݯ$e-# e-"e-!3?fj  3?fj3?fj3?fjx3?f x3?fx3?fx3?faK3W;k aK3W;kaK3W;kaK3W;k}3 }3 ,c )/ %{ #G ! _ + w C  [ ' s ? W # o ;  S  k 7  O ݊ ډg ؉3 Ո шK Έ ̇c ɇ/ Ɔ{ †G  _ + w C  [ ' s ? W # n 7 {{E`w ##eviewrevCardsNewr!tablecardTagscardTagsCREATE TABLE cardTags ( id integer not null, cardId integer not null, tagId integer not null, src integer not null, primary key(id))##gviewfailedCardsfailedCardsCREATE VIEW failedCards as select * from cards where type = 0 and isDue = 1 order by type, isDue, combinedDue##oviewrevCardsOldrevCardsOldCREATE VIEW revCardsOld as select * from cards where type = 1 and isDue = 1 order by priority desc, interval desc ##eviewrevCardsNewrevCardsNewCREATE VIEW revCardsNew as select * from cards where type = 1 and isDue = 1 order by priority desc, interval##[viewrevCardsDuerevCardsDueCREATE VIEW revCardsDue as select * from cards where type = 1 and isDue = 1 order by priority desc, due))yviewrevCardsRandomrevCardsRandomCREATE VIEW revCardsRandom as select * from cards where type = 1 and isDue = 1 order by priority desc, factId, ordinal ggXZT/qindexix_facts_modifiedfacts$CREATE INDE##[viewacqCardsOldacqCardsOldCREATE VIEW acqCardsOld as select * from cards where type = 2 and isDue = 1 order by priority desc, due ##eviewacqCardsNewacqCardsNewCREATE VIEW acqCardsNew as select * from cards where type = 2 and isDue = 1 order by priority desc, due descn7indexix_cards_typeCombinedcards!CREATE INDEX ix_cards_typeCombined on cards (type, combinedDue, factId)d9indexix_cards_relativeDelaycards"CREATE INDEX ix_cards_relativeDelay on cards (relativeDelay)T/qindexix_cards_modifiedcards#CREATE INDEX ix_cards_modified on cards (modified)T/qindexix_facts_modifiedfacts$CREATE INDEX ix_facts_modified on facts (modified)T /qindexix_cards_prioritycards%CREATE INDEX ix_cards_priority on cards (priority)T!+uindexix_cards_factorcards&CREATE INDEX ix_cards_factor on cards (type, factor)N"+iindexix_cards_factIdcards'CREATE INDEX ix_cards_factId on cards (factId) D!g\9 Q.tA9s33?a3?%eb3?'' Aӱp2/K~AӦ-p"U39;3, FAөEy=3?\3?D"ATRi. 7. SATe`kT. ;js. گAUAj_.?T.ATuJ5. l/. lC4AӠ^ =km2ʮ]2AX悰!m.H?Χv.HEqhAӠoO;)2rl@2Ɠ AӠꭑh2a?=2!HAӠAӪScG3Jdz3Jx%N  jY{=,|pdXL@4(thPD8, xlTH<0$   3IN  й3d  3?  3|  33?:Ø mE3?[  ]2 O3I}  3 d~  }[2!  `-2  L3x  ']3I,2  %3¡t  j3  W2 %3'  3I$w  S5?  Y2g|  3Id   I3Rl  Y3N.  . lC  C2  2am 3}  3I  m. i  82Е  2a  E3Z  3'  3?d)  Bk3NQ  +A2p  w36 s. s'  Ym3(  "3Iv  د3&s  %3J7X 3>o  w3'#  ;m.E  93  xk2ᔴ  2  3?o  3&o¿  c3;  3   u.n g<#- R`3?./ :8E3I ' 3JG Bk3NQ v m3?B+  k*?3&΅  3?fL 0 K%3:B> ūo2 " d.H=7  h_3?: %oAӬ쟮w3'#AӬ쟮;m.E Aӻp|93AӬ쟮xk2ᔴAӮ2A~Hi3T.(A~.  A~ 3I1^A~mE3?[A~%3J7X A~12-. A~AXq. I A~R`3?./A~2@ A~bԓ3% A~3\ 6A~=3'l A~3I A~2o w3'# ;m.E 93 xk2ᔴ 2 3?o 3&o¿ c3; 3  u.nl s{3Ia 3It) 92ט  3\ M 38py e3I` e3q. c R5'2 83Itq #[3# f  3IE=  G2 ^ d+2*m -6u K3Z  Y3N.# 5 7O~~~q2umXy. @ʶum. i @x82Е @8m92a @6.֒ E3Z @fUk3' @2x33?d) @fdgBk3NQ @͍+A2p @4w36?c/ s. s' @ZYm3( @0Ik["3Iv @f}U̻@" 3*@ -a| @3?fL m@p/3Iv@37 @2@+2|i@@82Е @Mo3& @0Ik[{K3I @[3&mQQ4@e3I`Q@h2W @l 3( @?=2! @0ʱ3?_ g@#[3# -@ -a|a @0Ik[G3J3m @r^J@;2n@0ʱ3?_ @?3 ~@-2 c@!}2 X@p(h `40L|p33}j3Iq3I}M. fQm. ic|2e82Еv2 폰2at"3YE3Zw83'*Ŏ3'.3?d3?d):3MBk3NQ a2+A2pQq3w36. s. s'3Ym3(^3IuL"3IvG3&rۊد3&sI3Jr%3J7Xw333>om!3'w3'#=|.M";m.E 3m93[2gxk2ᔴ%22J_3?m[3?o\3&nT3&o¿3цc3; 3 3 {.9u.nl?3Iхs{3Ia5&[3IaU3It)5?2ĵ2v"U39;3, T. ;*>M. ڐ"hy-)\-(A3e3q. Eo3It;33It( iDg3 *!3 @)2rl@2Ɠ3[3T.?p3V+ 3J77-3JP eW!..ҩ >G#2B2B U3I#;3I.Y9o.?  !2012-02-24 !2012-03-04! 2011-02-04 :O# k)l,9%indexix_mediaDeleted_factIdmediaDeleted2CREATE INDEX ix_mediaDeleted_factId on mediaDeleted (mediaId)S#-qindexix_stats_typeDaystats(CREATE INDEX ix_stats_typeDay on stats (type, day)R$-mindexix_fields_factIdfields*CREATE INDEX ix_fields_factId on fields (factId)e%9indexix_fields_fieldModelIdfields+CREATE INDEX ix_fields_fieldModelId on fields (fieldModelId)O&+iindexix_fields_valuefields,CREATE INDEX ix_fields_value on fields (value)['/indexix_media_filenamemedia-CREATE UNIQUE INDEX ix_media_filename on media (filename)a(7indexix_media_originalPathmedia.CREATE INDEX ix_media_originalPath on media (originalPath)k)9%indexix_cardsDeleted_cardIdcardsDeleted/CREATE INDEX ix_cardsDeleted_cardId on cardsDeleted (cardId)r*=' indexix_modelsDeleted_modelIdmodelsDeleted0CREATE INDEX ix_modelsDeleted_modelId on modelsDeleted (modelId)k+9%indexix_factsDeleted_factIdfactsDeleted1CREATE INDEX ix_factsDeleted_factId on factsDeleted (factId)xX 8xhP@(p$`LX0\ptDl4|. 1. 1|r. Nt. N݄.3?dԩ3?d3It)fK3It)f33'kS3'l3NL3NL3s3s[2gH2gp2^)2^3Ikx3IkG¹3Ir[3I]2:k2;Bqa.H] d .H] j3Is)-3LɖF'3L{2Ɣ"l!2Ɣ#}M3J"3J"ǩ22 2 P}2 QtFG3?DW[3?DXW'3 #53 o 3 @3 5?u+5?u"/37jvѭ37jU٤3IS3IS, .1o.1_o2b(2b0.!{.!|3- 3- .7iA.9O- 2i92.H,'FƗ.H,'GnBˋ2i;2M8EG2 2;3'333'33N3뤓[a3뤓<k3? r)3?rƥ3?D|3?D}Jj3Is3Isa252W.HWGə.HWIfp(hPX@8 $p\4l0-Ɖ. 1-Ɖ. N݄-Ɖԩ3?d-ƉfK3It)3-ňS3'l-ƈ3NL3-Ň3s-ƇH2g3-Ň)2^-Ɔx3Ik3-ņr[3I-Ɔk2;-Ɔd .H] 3-ņJ_3Is3-ņ9+.93-ŏF{.#33-T3-hÛ3I3-@3?.Ώ-y[3U-X -3-jk2#z3-.3J"-G3Ipq8-5p.H2t?3-|. HX3- _38pW- 2(P3-J2*9-Y23-φM3&nT-$.2ʮ-蟛3Iɻk3-ž!.C3-ŕ .6,~-ƿ.6,Y3-3Is!3-ũ3-}2ZT>-ƪ2u=-Ɩ[+.HKx7 RSScheduling algorithm goals for interactive systems (in addition to the normal ones):

1. Response time, respond to request quickly.
[...][2C%e?Typical ways for a process to terminate.

1. Normal exit (voluntary).
[...]
3. Fatal error (involuntary).
4. Killed by another process (involuntary).)2^~TThe ants)GThree key characteristics of [...]

1. TG&qgCScheduling algorithm goals for real-time systems (in addition to the normal ones):

[...]

1. TG3xeMain alternatives for real-time scheduling

[..H `j`HR5alatex-8d274 <5alatex-a3ac7c351b159591183457ee0fb6a7eb.png#I.6 O5alatex-db9dd6d23e28e629498472d6ead9d1c7.png 3I '5alatex-36b72dafc5a3b4e0fc718372a7400cfd.pngG. +5alatex-46b8aa37c7ab7636b8d27df8469eb9c1.png`3sf A5alatex-ba363802bb5deba466d359f581a01a3c.png֐.y X5alatex-a8ce3d373aeb260b6f7ac0da93bd28d5.pngQ. M5alatex-f2c7dc9c50c5358efc9d61b508b5cb12.pngȧ.S /5alatex-5817a29683634ebf007f10916a542c7f.png.bڿ !5alatex-131baf9ef659edf69c27ef68cf918c5f.pngzO3uTX 95alatex-97f96bd6adb3e9e384b8a018c4026c9c.png‡.f T5alatex-8b902d1babe9c4614c915804db028bb8.png/.4 75alatex-7b34cbe6c4d1d240f089bcc1817d5f1c.png38 V5alatex-e4c76abb412d42185ed7ec4d2ec8e6e6.png.n G5alatex-c8a19ae65f99e1913f706d46fe0c33f2.png܀. ^5alatex-6f9bbe5e0e679eadcafe9411b5db2d71.pngU. _5alatex-8b902d1babe9c4614c915804db028bb8.png/.4 `0@Pp@p+M0cfd @+M6e63e073f286857b8c873bc23b0572da 3I [+Mf6cae54e636016f64fff61b4ed0ca7f2+.4c )+M25c7b120c4f6ca140d6046b0a91343033! L+Mc2bc8a93c5efa7557c1bb3a1b8335f4b.B E+M8d5a4a67b8c356897dd63d10e4a33537A. 2+M3a291cd385f7485b5c3a70cbf5fe0b5ay-38 .+M3077556e85b6a8693a182c6fc11a2126@.+^ ~+Mae94c84acb649a7a524462f172331f24.ښ J+M97d7347e5a9282c12b7ffe9396877be2N. 6+M428b5a21272440067f212eedba7e4b9cxS3!=d? $+M0cfdd05e282a7b26b143ff92d30211b2/.. h+Mb479d566315760aa882160c734ff2bb93 s+M50c5698707909808c5576d36ee22d2aco3x \+M80f69c442f968468ecae42f967f751ec.d w+M77954993c00a4cde70d4b83058ed540aۧ.-U %+M1a22a27d62f7e10f5e62042aab105ea53F Y+Me2fd8ae21d150bf02f728f602207bf6e#e.e R+Md911238e60c1fe43eec008f79114040d$.q" n+Mcc1494130203b33dbb14a035f428ffdaZs.٭Ğ +M80f69c442f968468ecae42f967f751ec.d     `zhS:'r`'visualization!statistics self-help!psychology3positive_psychology!physiology!persuasion-opponent-process/operating_systemsmath-machine_learning linux)jonathan_haidt 5happiness_hypothesis -getting_stronger 'decision_tree 'consciousness compsci%being_no-one Reverse Forward Basic-PriorityVeryHigh%PriorityHigh# PriorityLow ..LZ19Yindexix_cards_intervalDesc2cards8CREATE INDEX ix_cards_intervalDesc2 on cards (type, priority desc, interval desc, factId, combinedDue)K0%%[tablesqlite_stat1sqlite_stat17CREATE TABLE sqlite_stat1(tbll,9%indexix_mediaDeleted_factIdmediaDeleted2CREATE INDEX ix_mediaDeleted_factId on mediaDeleted (mediaId)H-#gindexix_tags_tagtags3CREATE UNIQUE INDEX ix_tags_tag on tags (tag)d.3indexix_cardTags_tagCardcardTags5CREATE INDEX ix_cardTags_tagCard on cardTags (tagId, cardId)Z/1uindexix_cardTags_cardIdcardTags6CREATE INDEX ix_cardTags_cardId on cardTags (cardId)K0%%[tablesqlite_stat1sqlite_stat17CREATE TABLE sqlite_stat1(tbl,idx,stat)19Yindexix_cards_intervalDesc2cards8CREATE INDEX ix_cards_intervalDesc2 on cards (type, priority desc, interval desc, factId, combinedDue)x2-9indexix_cards_dueAsc2cards9CREATE INDEX ix_cards_dueAsc2 on cards (type, priority desc, due, factId, combinedDue) t`L8$pk\I5! nZG3  U@3J !!5?R CHY.H T2 9{3 *3 P7  2jT .c3&~W4V ͞3;IX #2gM {3! i3Jtn Y22E1 Ns.   =.H4V  .H9 7  m55?|ԁ Ao3?D &e2# U3y  2p ̑2"K OQ3?''0 ]2 d2 0 3J`d> ?2[ 'S. \ ;2  43?d' 3@ ;.H] >, c3h& {3# 82Е Sߛ3 @[5? .;37 [2(o 3&o u3 3\ .ҩA !2gs}z 3I% d2 0. .r`N<*vdR@. zhVD2 wj]PC6) 92טC 92טB 92טA  + x3 I ' qw.H,&  $ m3PP " gA31 b3?'' b  Z%3 )  U@3J  RU.ؖ  L3'3~ F3'E  A.H?Y  ;2  7B2!6 12-.a -/2( 'e3? #[3# 3?D} ɑ2$@D ;2   ?1J" 3?d .Hb` 43?d' u2s  )3Iɻ 3?a| |2摜C ބ2 ٤3?0 3  5?_ pE3JW & j37m  3I1^ !2gs}{  . 2=B -3Y K3Z  2! o+3I^ 3)'% ']3I,2 3} %3J7Xz  3\ M= }j\MA#fieldModels0!cardModels0 media0 models0'reviewHistory0+ CdeckVarssqlite_autoindex_deckVars_112 1 stats0 cardTags0 sources0 %mediaDeleted0'modelsDeleted0 fields0 decks1%factsDeleted0 facts0 cards0%cardsDeleted0#tagsix_tags_tag3 1 2 eO8|ykL ( @X >WK+3CAf?f3FC ( @<;$c2AHs)[2 Q( @RZ_e]2jAm*Z]2+( @C;hh=O3IʺAӽ*a#3IS( ( @rA[-SAЦHݒ;-H~( @O1e/}2$A#zaŤ2@'( @]U.>.4Aۚ7?SE'.>4 0( @bk&AU3I#;A~3I( @8@>A$2z&AӲd+]|2摜 !( @WXqY2,Ȃ2" ( @Hir8RDe2$YAӻ 2hI=2% 3DtAPK3` ( @,wL 3I_Aӵ!gjP3I% +( @K$gA~3&r9A=-+3&rrh( @TVkZ[3?d*!AXnn3?d( @?)/F#RDe2$YAӴ]o$2%( @AE5%3 AӶ@s'3 ӣ t( @,F3IʓAӲI$'3Id ( @2 363Aӱ*37M( @[D VDY2Ax1ʣ+2|-( 1!O-aARSwc- B|0>OykL{( AӷHdKo3IpAӷHdŜ3Ip( AӲYċ222.vAӲYċY22E1( AShҷ/3{AShҹ3( AӺR\I a2AӺR\I+A2p~( A!=38Aɾ39^6( Aӳ]@x"G3&3Aӳ]@xő3&{(A J/3ykA Jڈ3? ( ACF. 'ACB. ( ( AL'3I2ALG+3I( AƱi-3 0 for all x, yd(x,y) = 0 iff x = ySymmetry, d(x,y) = d(y,x)Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z Properties of metric distancesPositivity, d(x,y) => 0 for all x, yd(x,y) = 0 iff x = ySymmetry, d(x,y) = d(y,x)Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z{ K-AӪcAӬ compsci operating_systems linuxHas two arrays, active and expired, with all the processes sorted by priority. The scheduler chooses from among the highest-priority tasks. Processes whose quantum expires are moved to the inactive array. If there are no more tasks in the active array, the active and inactive arrays are swapped. The Linux runqueue ss擘 ?-AӧhahsAӬ compsci operating_systems(Dis)advantages of linked list file allocation[...]2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two. (Dis)advantages of linked list file allocation1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.lization error. General ways to combat overfitting / generalization error1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error. $ -S-AӤn/AӬ machine_learningGeneral ways to combat overfitting / generalization error1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.[...]4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the genera>he smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow. Memory management algorithms for finding an n-sized hole from a list of processes and holes[...]2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow. 667Գ8 ?-AӦC~AӬ compsci operating_systemsMemory management algorithms for finding an n-sized hole from a list of processes and holes1. First fit. Scan the list of segments until a large enough hole is found.2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.3. Best fit. Search the whole list, taking t@ ii 瓚{ ?1-AӪ33AӬ compsci operating_systemsRequirements for Rate Monotonic Scheduling1. Each periodic process must complete within its period.[...]3. Each process needs the same amount of CPU time on each burst.4. Any nonperiodic processes have no deadlines.5. Process preemption occurs instantly and with no overhead. Requirements for Rate Monotonic Scheduling1. Each periodic process must complete within its period.2. No process is dependent on any other process.3. Each process needs the same amount of CPU time on each burst.4. Any nonperiodic processes have no deadlines.5. Process preemption occurs instantly and with no overhead. 4„᳙ ?G-Aөf3 AӬ compsci operating_systemsWhich process to run, and which CPU to run it on? The dimensions of multiprocessor schedulingxӍ --Aӏ~VAӬ machine_learningProperties of metric distancesPositivity, d(x,y) => 0 for all x, yd(x,y) = 0 iff x = y[...]Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z Properties of metric distancesPositivity, d(x,y) => 0 for all x, yd(x,y) = 0 iff x = ySymmetry, d(x,y) = d(y,x)Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, zAӘ ?-AӦZAӬ compsci operating_systemsAdvantages of a large page size[...]2. Allows for a smaller page table, making for faster execution if the page table needs to be copied to e.g. hardware registers. Advantages of a large page size1. Allows for a smaller page table, reducing its space requirement.2. Allows for a smaller page table, making for faster execution if the page table needs to be copied to e.g. hardware registers. 44q ?{-AӨlG7KAӬ compsci operating_systemsBus-based UMA multiprocessors[...]2. Internal cache reduces the memory accesses. Needs a cache-coherence protocol. Bus-based UMA multiprocessors1. Only one CPU can access memory at a time. If line is busy, requesting CPU must wait.2. Internal cache reduces the memory accesses. Needs a cache-coherence protocol.Kò𨹄. -A-ATOAӬ machine_learningFeature selection occurs naturally as part of the data mining algorithm. E.g. decision tree classifiers. The embedded approach to feature subset selectiono‘ӘM ?w-AӦ[AӬ compsci operating_systemsThe copy on write approach In UNIX, parent and child processes share both program text and data after a fork. The data pages are set as read-only until either process tries to update a memory word, at which point the page in question is copied and both processes have their copy of the page set as read-write. Q׳| ?;-AӦ6RAӬ compsci operating_systemsThe structure of a generic page table entry1. The page frame number[...]3. Protection (read/write, execution)4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)5. Referenced bit6. Caching disabled bitNote: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses. The structure of a generic page table entry1. The page frame number2. Present/absent bit3. Protection (read/write, execution)4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)5. Referenced bit6. Caching disabled bitNote: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses. râӘ ?}-AӦyAӬ compsci operating_systemsA page fault A page not currently mapped to a page frame in physical memory is referenced, causing a little-used page frame to be written to disk and the referenced data to be read in.á󗤞1 -G-AӤk%AӬ machine_learningAllowed transformations for nominal attributes Any one-to-one mapping for reassigning values.WÔ󙞨K ?G-AӨkAӬ compsci operating_systemsThree key characteristics of NUMA multiprocessors[...]2. Access to remote memory is via LOAD and STORE instructions.3. Access to remote memory is slower than access to local memory. Three key characteristics of NUMA multiprocessors1. There is a single address space visible to all CPUs.2. Access to remote memory is via LOAD and STORE instructions.3. Access to remote memory is slower than access to local memory. oː󚪶X K?-AӪEAӬ compsci operating_systems linuxThe layers of a Linux system1. Standard utility programs (shell, editors, compilers)2. Standard library (open, close, read, write, fork...)3. Linux operating system[...] The layers of a Linux system1. Standard utility programs (shell, editors, compilers)2. Standard library (open, close, read, write, fork...)3. Linux operating system4. Hardware'󘝝L ?g-AӦ[+2MAӬ compsci operating_systemsThe page tables for the instruction address space and the data address space. I-space and D-space page tables֙ӗ -7-AӤkrAӬ machine_learningExamples of interval attributes Calendar dates, temperatures in Celsius or Fahrenheit Pū۳3 ?9-AӨkfAӬ compsci operating_systemsThree key characteristics of NUMA multiprocessors1. There is a single address space visible to all CPUs.2. Access to remote memory is via LOAD and STORE instructions.3. Access to remote memory is slower than access to local memory. Three key characteristics of NUMA multiprocessors1. There is a single address space visible to all CPUs.[...]3. Access to remote memory is slower than access to local memory.e -AX}`BAӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyWhy do we feel bad more strongly than good? For a fish in the sea, missing a cue for food has a low cost, but missing a cue for a predator has a high cost. The organisms reacting more strongly to bad things than good things have been the ones that survived. O(o ?w-AӠn "AӬ compsci operating_systemsTypical ways for a process to terminate.[...]2. Error exit (voluntary).3. Fatal error (involuntary).4. Killed by another process (involuntary). Typical ways for a process to terminate.1. Normal exit (voluntary).2. Error exit (voluntary).3. Fatal error (involuntary).4. Killed by another process (involuntary).Źԙ ?Q-AӦ-PAAӬ compsci operating_systemsStatic relocation When a program is loaded at address 16,384, the constant 16,384 is added to each program address during the load process. Slow, and requires knowing which words contain relocatable addresses and which do not.&ŸڲӮ0 -w-AT\DAӬ machine_learningFeature extraction E.g. processing an image to extract high-level features such as certain edges from the raw pixels. fƕӕό" ?e-AӠ:AӬ compsci operating_systemsThe contents of a process1. Stack (work area)2. Data (variables)[...] The contents of a process1. Stack (work area)2. Data (variables)3. Text/code (executable instructions)! I -AUJAӬ decision_tree machine_learningEntropy for class t [$]-\sum_{i=0}^{c-1} p(i|t) log_2 p(i|t)[/$]where p(i|t) is fraction of records labeled i at a given class t, and c is the number of labelsProduces values in interval [0,1] Ơﳘ ?Q-AӦW۷AӬ compsci operating_systemsWhat to consider when deciding what processes to swap to disk?1. Process size. Bigger processes need more memory.[...]3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods. What to consider when deciding what processes to swap to disk?1. Process size. Bigger processes need more memory.2. Paging rate. Obvious.3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods. Ƣ蓕 ?7-AӠgAӬ compsci operating_systemsReasons to use threads.1. An application may want to do many things at once.2. Threads are faster to create and destroy than processes.3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.4. Threads share access to the same data area, unlike processes.[...] Reasons to use threads.1. An application may want to do many things at once.2. Threads are faster to create and destroy than processes.3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.4. Threads share access to the same data area, unlike processes.5. Threads are useful on systems with multiple CPUs, where real parallellism is possible. qƥ Wc-AʸAʸbeing_no-one consciousness psychologyThree ways by which mental representations are internal.1. Phenomenal. The states are phenomenally experienced as "internal".2. Functional. The properties making the state available for conscious experience are only realized by a single person.[...] Three ways by which mental representations are internal.1. Phenomenal. The states are phenomenally experienced as "internal".2. Functional. The properties making the state available for conscious experience are only realized by a single person.3. Physical. The states exist physically within the organism.erpret, and have a comparable accuracy to other classification techniques on many simple data sets.4. Decision tree algorithms are quite robust to the presence of noise.5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. Benefits of decision tree induction[...]2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.4. Decision tree algorithms are quite robust to the presence of noise.5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. (x(Eǰڐ W -Aʺ JAʺ being_no-one consciousness psychologyWhat do we mean if we say that the representandum Y is an actual (aktuell) state of the world? Not that it would be actual in the sense of happening at that exact moment, but that it is treated as actual in the frame of reference that the system is using.ǀJ -c-ARh9AӬ machine_learningWhat is an asymmetric attribute? (in machine learning) One where non-zero values are regarded as important.Nӗ| I+-AӤlllAӬ decision_tree machine_learningBenefits of decision tree induction1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).3. Decision trees are relatively easy to intN 𩸐w -e-ATs"AӬ machine_learningGive an example of a non-symmetric similarity measure? A confusion matrix. E.g. shows that a was mistaken as b 3 times, but b was mistaken as a 5 times.Can be made symmetric by the transformation s'(x,y) = s'(y,x) = (s(x,y) + s(y,x))/2.z󙞦T ? -AӨk_+AӬ compsci operating_systemsThree key characteristics of [...]1. There is a single address space visible to all CPUs.2. Access to remote memory is via LOAD and STORE instructions.3. Access to remote memory is slower than access to local memory. Three key characteristics of NUMA multiprocessors1. There is a single address space visible to all CPUs.2. Access to remote memory is via LOAD and STORE instructions.3. Access to remote memory is slower than access to local memory. __,ȁ˓, ?q-AӠt{3 AӬ compsci operating_systemsIn the context of operating systems, an upcall. A message from the kernel to a user-mode thread scheduler. The scheduler may be informed that a thread it was running has blocked, or that it is no longer blocked. A scheduler activation scheme._ ?W-AӠnFAӬ compsci operating_systemsTypical ways for a process to terminate.1. Normal exit (voluntary).2. Error exit (voluntary).3. Fatal error (involuntary).4. Killed by another process (involuntary). Typical ways for a process to terminate.1. Normal exit (voluntary).2. Error exit (voluntary).3. Fatal error (involuntary).[...] jȆ ?m-AӪdžȴAӬ compsci operating_systemsDMA steps1. CPU programs the DMA controller via special registers.2. DMA controller requests device controller to move data to memory.3. Device controller begins transferring data to memory.4. Disk controller sends an acknowledgement to DMA controller.5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.6. DMA controller interrupts the CPU to signal a finished task. DMA steps1. CPU programs the DMA controller via special registers.2. DMA controller requests device controller to move data to memory.[...]4. Disk controller sends an acknowledgement to DMA controller.5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.6. DMA controller interrupts the CPU to signal a finished task. Vк ?E-AӧTjAӬ compsci operating_systemsSuperblock A block on a partition, with key parameters about the partition such as the file system type, the number of blocks on the file system, and so on.ȳ󕫯 ?M-AӠr|AӬ compsci operating_systemsThe program counter, registers, a stack, and state. Everything else (address space, global variables, open files, etc.) is shared between the threads. What are things that are private to each thread running within a process? 󗤝 -U-AӤk{dZAӬ machine_learningExamples of ratio attributes Temperatures in Kelvin, counts, monetary quantities, age, mass, length.: ? -AӦMAӬ compsci operating_systemsTypes of memory abstraction[...]2. Address spaces. Employ base and limit registers plus swapping.3. Virtual memory. Break programs into pages, move pages not currently in use to the disk. Types of memory abstraction1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.2. Address spaces. Employ base and limit registers plus swapping.3. Virtual memory. Break programs into pages, move pages not currently in use to the disk. \ɉ, ?Q-AӨkAӬ compsci operating_systemsThree types of UMA multiprocessors[...]2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches. Three types of UMA multiprocessors1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches. , ?q-AөbNAӬ compsci operating_systemsMotivations for virtual machines1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.2. Cost reduction. Fewer physical machines means lower hardware and energy costs.3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.4. Running legacy systems.5. Software development. A program can be tried on several operating systems. Motivations for virtual machines1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.2. Cost reduction. Fewer physical machines means lower hardware and energy costs.[...]4. Running legacy systems.5. Software development. A program can be tried on several operating systems. 8, 16... quanta).4. Shortest process first (process run time estimated by e.g. historical data).5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).6. Lottery scheduling (give processes a varying amount of lottery tickets).7. Fair-share scheduling (each user is allocated a share of the CPU). Scheduling algorithms used in interactive systems1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).4. Shortest process first (process run time estimated by e.g. historical data).5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).6. Lottery scheduling (give processes a varying amount of lottery tickets).7. Fair-share scheduling (each user is allocated a share of the CPU). ..>ʾӚw ?-AӪAӬ compsci operating_systemsDevice driver general structure1. Check the i[ʬZ -]-AT3TAӬ machine_learningHigh dimensionality makes the data space sparser. Classification may not have enough data objects to create a model that reliably assigns all objects a class. Why does a high dimensionality make classification algorithms work worse?%ʩͳ ?c-AӠz3JQAӬ ˝G. 9VAӬ ˞-3<AӬ ˠ 3 AӬ ˡ93IsAӬ ˡP.HG2AӬ ˢI2ڛAӬ ˢ[3?d*!AӬ ˢ.AӬ ˢ3AӬ ˣׁ37AӬ ˣ3?AӬ ˤ . sAӬ ˤlc3\AӬ ˤ3>AӬ ˤ3IFnput parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.[...]3. Control the device. Determine the command sequence and write to the device registers.4. Possibly block, waiting for the device to finish completing the commands.5. Check for errors, then pass on the data and some status information. Device driver general structure1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.2. Check if the device is already in use. If not, possibly switch it on.3. Control the device. Determine the command sequence and write to the device registers.4. Possibly block, waiting for the device to finish completing the commands.5. Check for errors, then pass on the data and some status information. it‚k ?K-AӦ(yHAӬ compsci operating_systemsPage replacement algorithms1. Optimal (theoretical). Remove the page that won't be used for the longest tim]jϨ ?m-AӠnN AӬ compsci operating_systemsThere is none. A parent process is given a token (a handle) that can be used to control the child, but the token can be passed on to other processes. Windows process hierarchy. ؓ; ?1-AӦ[AӬ compsci operating_systemsThe formula for the overhead per process due to the page table size and the internal fragmentation loss. Let average process size be s bytes and the page size p bytes. Assume that each page table entry requires e bytes. Now the overhead per process is[$]se/p + p/2[/$]With a bit of math, the optimum page size becomes[$]p = \sqrt{2se}[/$]^e.2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.3. First-In, First-Out. Remove the oldest page in memory. Bad choice.4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginn_ing. Basic version not very good, aging version one of the two best ones.8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.[...] Page replacement algorithms1. Optimal (theoretical). Remove the page that won't be used for the longest time.2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.3. First-In, First-Out. Remove the oldest page in memory. Bad choice.4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. -ʏ Kg-AӪohsAӬ compsci operating_systems linuxLinux interprocess communication[...]2. Signals. A process can send signals to members of its process group (ancestors and descendants). A process may ignore, catch, or be killed by a signal. Linux interprocess communication1. Pipes. Channels between two processes, into which one process can write a stream of bytes for the other to read.2. Signals. A process can send signals to members of its process group (ancestors and descendants). A process may ignore, catch, or be killed by a signal. @@5󚦧2 ?-AӪjAӬ compsci operating_systemsDevice driver general structure[...]2. Check if the device is already in use. If not, possibly switch it on.3. Control the device. Determine the command sequence and write to the device registers.4. Possibly block, waiting for the device to finish completing the commands.5. Check for errors, then pass on the data and some status information. Device driver general structure1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.2. Check if the device is already in use. If not, possibly switch it on.3. Control the device. Determine the command sequence and write to the device registers.4. Possibly block, waiting for the device to finish completing the commands.5. Check for errors, then pass on the data and some status information. HHC̛󘜹ɖ ?-AӦWXAAӬ compsci operating_systemsWhat to consider when deciding what processes to swap to disk?1. Process size. Bigger processes need more memory.2. Paging rate. Obvious.3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods. What to consider when deciding what processes to swap to disk?1. Process size. Bigger processes need more memory.2. Paging rate. Obvious.[...]_ӕ譆 ?W-AӠmhsAӬ compsci operating_systemsFour principal ways that causes processes to be created:1. System initialization.2. Execution of a process creation system call by a running process.3. A user request to initiate a new process.[...] Four principal ways that causes processes to be created:1. System initialization.2. Execution of a process creation system call by a running process.3. A user request to initiate a new process.4. Initiation of a batch job. >6ӕ, ?-AӠnBFAӬ compsci operating_systemsEach process has as its parent the process that it was forked from.Init is the top process, which creates a process for each terminal. Each terminal creates a shell when someone logs in, and the shell may fork further processes. UNIX process hierarchy.7̯򡢌 3-AX׿AӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyHow does naive realism lead to hypocrisy? We think we see the world as it really is. We think our medical background gives us special insight to the medical industry. But when lawyers disagree with us on medical law reform, we think it's not because they're experience with victims gives them special expertise, but because they're greedy. _BԶŧ@ I-AUAӬ decision_tree machine_learning[$]I(parent) - \sum_{j=1}^{k} {N(v_j) \over N}I(v_j)[/$]where [$]I(x)[/$] is the impurity of [$]x[/$], [$]N[/$] the total number of records in parent node, and [$]N(v_j)[/$] the records in child node [$]v_j[/$]. Finding the best split for a decision tree node΢ I;-AUAӬ decision_tree machine_learningHunt's algorithm for decision trees 1: If all the records in set Dt belong to the same class Yt, then t is a leaf node labeled Yt.2: Otherwise, select a test condition to split the record sets into smaller subsets. Create a child node for each outcome and distribute the records in Dt between the nodes. Apply the algorithm to the child nodes. DD9͗ٓ ? -AӪAӬ compsci operating_systemsBurst mode (memory bus access mode) E.g. a DMA controller telling a device to acquire the bus, issue a series of transfers, then release the bus. More efficient than cycle stealing, but can block the CPU and other devices for a substantial amount of time.mܩәF ?s-AӨYJAӬ compsci operating_systems(Dis)advantages of physical dumps1. Simplicity, the program can be made pretty much bug free.2. Speed, the process can run at the speed of the disk.3. The process cannot skip selected directories.4. The process cannot make incremental dumps.5. The process cannot restore individual files upon request. (Dis)advantages of physical dumps1. Simplicity, the program can be made pretty much bug free.2. Speed, the process can run at the speed of the disk.3. The process cannot skip selected directories.[...]5. The process cannot restore individual files upon request. TT*ͳޓE ?m-Aө)rAӬ compsci operating_systemsAssume a group of related threads are created at once. If there are as many CPUs as there are threads, each thread is given its own, dedicated CPU. If not, the threads wait until enough CPUs are available. Space sharing (on multiprocessors)LͬӚ΢ K%-AӪjdZAӬ compsci operating_systems linuxCreates a new thread in the current process or in a new process. Allows the working directory, file descriptors and signal handler table to be independently either copied or shared, and the parent to be either the caller or the caller's parent. Linux clone system call͢әɦa ?C-AөAӬ compsci operating_systemsWhen a process on machine 1 calls a process on machine 2, the calling process on 1 is suspended, and execution of the called procedure takes place on 2. As if performing an ordinary procedure call. Remote Procedure Call QQ ͹󕫌[ ?Y-AӠo-`BAӬ compsci operating_systemsSkeleton of what the lowest level of the operh.͹څ ?u-AөdZAӬ compsci operating_systemsRPC implementation issues1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.2. In some languages, the client stub cannot determine the size of the parameters.3. It is not always possible to determine the types of the parameters.4. Global variables cannot be used, unless they are moved to the remote machine. RPC implementation issues1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.2. In some languages, the client stub cannot determine the size of the parameters.3. It is not always possible to determine the types of the parameters.[...]ating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.2. Hardware loads new program counter from interrupt vector.3. Assembly language procedure saves registers (typically to the process table).4. Assembly language procedure sets up new stack.5. C interrupt service runs (typically reads and buffers input).6. Scheduler decides what process to run next.7. Assembly language procedure starts up new current process. Skeleton of what the lowest level of the operating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.2. Hardware loads new program counter from interrupt vector.3. Assembly language procedure saves registers (typically to the process table).4. Assembly language procedure sets up new stack.[...]6. Scheduler decides what process to run next.7. Assembly language procedure starts up new current process. .΃ͳ` ?!-Aӧ EAӬ compsci operating_systemsOperations needed for file deletion in UNIX1. Remove the file from its directory.2. Release the i-node to the pool of free i-nodes.[...] Operations needed for file deletion in UNIX1. Remove the file from its directory.2. Release the i-node to the pool of free i-nodes.3. Return all the disk blocks to the pool of free disk blocks.GӘΫ ?'-AӦWwI%AӬ compsci operating_systemsWhy might a local page replacement algorithm work badly?[...]2. If the working set shrinks, memory that could be allocated to other processes is wasted. Why might a local page replacement algorithm work badly?1. If the working set grows, thrashing will result, even if there are plenty of free page frames.2. If the working set shrinks, memory that could be allocated to other processes is wasted. eeΈӘ ?9-Aӧ +AӬ compsci operating_systemsOperations needed for file deletion in UNIX1. Remove the file from its directory.[...]3. Return all the disk blocks to the pool of free disk blocks. Operations needed for file deletion in UNIX1. Remove the file from its directory.2. Release the i-node to the pool of free i-nodes.3. Return all the disk blocks to the pool of free disk blocks. !:!V -G-AT+AӬ machine_learningAn example of variable transformation being useful in comparing two variables Comparing people based on the variables age and income. With no transformation, the differences in income will dominate the differences in age.;Ώ K-AӪM`BAӬ compsci operating_systems linuxLinux scheduling is based on threads, and distinguishes three classes:1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).2. Real-time round robin.[...]Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given. Linux scheduling is based on threads, and distinguishes three classes:1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).2. Real-time round robin.3. Timesharing.Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given. ~A~0 Wa-AʸrIhsAʸrJnbeing_no-one consciousness psychologyMental Representation, Rep_M (S, X, Y).- S is an individual information-processing system- Y is an aspect of tm8 Wq-AʹkSAʹlZbeing_no-one consciousness psychologyHow is subjective experience like a computer monitor? On a computer monitor, the picture is constantly being redrawn, but it looks like a frozen image. The contents of our mind are constantly being recomputed, but they appear to us as stable.qϋ< ?{-AӧSAӬ compsci operating_systemsA paging daemon A background process that sleeps most of the time but is awakened periodically to inspect the state of the memory. It may choose to evict pages, and tries to ensure that all the free frames are clean. Might be implemented with a two-handed clock, with the front hand writing dirty pages to disk.he current state of the world- X represents Y for S- X is a functionally internal system state- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.[...]- The intentional content of X can become globally available for the selective control of action. Mental Representation, Rep_M (S, X, Y).- S is an individual information-processing system- Y is an aspect of the current state of the world- X represents Y for S- X is a functionally internal system state- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.- The intentional content of X can become globally available for the selective control of action. `У ?Y-AӦ> AӬ compsci operating_systemsThe structure of a generic page table entry1. The page frame number2. Present/absent bit3. Protection (read/write, execution)4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)5. Referenced bit6. Caching disabled bitNote: [...] The structure of a generic page table entry1. The page frame number2. Present/absent bit3. Protection (read/write, execution)4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)5. Referenced bit6. Caching disabled bitNote: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses. dδ ?a-AӪ"AӬ compsci operating_systemsDMA steps1. CPU programs the DMA controller via special registers.2. DMA controller requests device controller to move data to memory.3. Device controller begins transferring data to memory.[...]5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.6. DMA controller interrupts the CPU to signal a finished task. DMA steps1. CPU programs the DMA controller via special registers.2. DMA controller requests device controller to move data to memory.3. Device controller begins transferring data to memory.4. Disk controller sends an acknowledgement to DMA controller.5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.6. DMA controller interrupts the CPU to signal a finished task. BfBђ󕬧ڛ ?K-AӠt)lAӬ compsci operating_systemsTo mimic the functionality of kernel threads, but with the better performance and greater flexibility of threads in user space. The goals of schedule activation research. (In the context of operating systems and threading.)Ԛ򡎲 'M-AXL&AӬ happiness_hypothesis jonathan_haidt persuasion positive_psychology psychologyAn opinion comes to our mind, and we "call our lawyer" (query our brains for evidence) to establish that our position makes sense. If the matter is important, we'll make a more frantic call to gather as much supporting evidence as possible. Motivated stopping as an analogy to the lawyer? ѯ™ CE-AUAӬ machine_learning statisticsMedian Absolute Deviation [$]median = (\langle |x_1 - x|,|x_2 - x|,...,|x_m - x|\rangle)[/$]ZіȪ! ?M-AөAӬ compsci operating_systemsFour ways of implementing sending on multicomputers1. Blocking send (CPU idle during message transmission)2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)3. Nonblocking send with interrupt (makes programming difficult)4. Copy on write (extra copy probably eventually needed) Four ways of implementing sending on multicomputers1. Blocking send (CPU idle during message transmission)2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)[...]4. Copy on write (extra copy probably eventually needed) 4ѯ ?-AӦa7AӬ compsci operating_systemsWhat does a paging system need to do when a process is scheduled for execution?1. Reset the MMU and flush the TLB.2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).3. Optionally, bring some of the process' pages into memory. What does a paging system need to do when a process is scheduled for execution?1. Reset the MMU and flush the TLB.2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).[...] pڷ ?y-Aӧ 7LAӬ compsci operating_systemsReasons to give processes some control over the virtual memory map[...]2. Sharing of pages can be used to implement a message passing system, with one process unmapping a page and another mapping it in. Thus, data doesn't need to be copied. Reasons to give processes some control over the virtual memory map1. If several processes can share the same pages, high bandwidth sharing becomes possible.2. Sharing of pages can be used to implement a message passing system, with one process unmapping a page and another mapping it in. Thus, data doesn't need to be copied. ҁ -_-AT%AӬ machine_learningAn alternative to feature subset selection, which gives the attributes varying weights. Feature weighting? ?-AөI^AӬ compsci operating_systemsMotivations for virtual machines1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.2. Cost reduction. Fewer physical machines means lower hardware and energy costs.3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.4. Running legacy systems.[...] Motivations for virtual machines1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.2. Cost reduction. Fewer physical machines means lower hardware and energy costs.3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.4. Running legacy systems.5. Software development. A program can be tried on several operating systems. **]Ҳ ?S-Aӧ\AӬ compsci operating_systemsMemory developing unused holes due to e.g. variable-length segments being brought into memory and then evicted from it. External fragmentation, AKA checkerboardingcқ܉ ?_-AӧAӬ compsci operating_systemsDynamic vs. static swap area allocation[...]2. Dynamic. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 3 pages. Dynamic vs. static swap area allocation1. Static. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 7 pages.2. Dynamic. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 3 pages. 󙞳 ?-AӨl) AӬ compsci operating_systemsThree types of multiprocessor systems1. Multiprocessors. Shared memory model, access time in nanoseconds.2. Multicomputers. Message passing multiprocessor, access time in microseconds.[...] Three types of multiprocessor systems1. Multiprocessors. Shared memory model, access time in milliseconds.2. Multicomputers. Message passing multiprocessor, access time in microseconds.3. Distributed systems. Wide area distributed system, access time in milliseconds.һF ?A-AӪvcAӬ compsci operating_systemsA low-priority process L is in its critical region when a high-priority process H is scheduled. H begins waiting for L to clear its critical region, but L is lower priority, so it is never scheduled. Priority inversion ::;೙h ?-AӨk=/AӬ compsci operating_systemsThree types of UMA multiprocessors1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches. Three types of [...]1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.e accuracy to other classification techniques on many simple data sets.4. Decision tree algorithms are quite robust to the presence of noise.5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.[...] Benefits of decision tree induction1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.4. Decision tree algorithms are quite robust to the presence of noise.5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. qqӵ󚦊 ?-AӪ=/AӬ compsci operating_systemsGoals of I/O software1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.3. Error handling. Errors should be hanzj󗤽b Ic-AӤlxKAӬ decision_tree machine_learningBenefits of decision tree induction1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).3. Decision trees are relatively easy to interpret, and have a comparablxdled as close to the hardware as possible, without the upper layers ever knowing about them.4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.[...]6. Managing shared versus dedicated devices. Goals of I/O software1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.5. Buffering. The data coming off a device cannot be stored in the final destination.6. Managing shared versus dedicated devices. I߲% ?+-AӪLZAӬ compsci operating_systemsFunctions of device-independent I/O software1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.2. Buffering. More efficient than calling the user process a character |bӷ ?]-Aӧ1hsAӬ compsci operating_systemsDynamic vs. static swap area allocation1. Static. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 7 pages.2. Dynamic. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 3 pages. Dynamic vs. static swap area allocation1. Static. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 7 pages.[...]at a time, but too many buffers reduce performance.3. Error reporting. Errors are device-specific, but the framework for handling errors is general.4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units. Functions of device-independent I/O software1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.3. Error reporting. Errors are device-specific, but the framework for handling errors is general.4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.[...] )0DXl  4H\p$8L`tAӬ ˥3'3hAӬ ˥o2bAӬ ˦3IdAӬ ˦31AӬ ˧}3Ij%AӬ ˥3'3hAӬ ˥o2bAӬ ˦3IdAӬ ˦31AӬ ˧}3Ij%AӬ ˧. AӬ ˧+. HXAӬ ˨3.CAӬ ˨2ɻAӬ ˩3?.ΏAӬ ˩2AӬ ˩2"AӬ ˪2ZAӬ ˪2@vAӬ ˭b'.HMAӬ ˮ37AӬ ˰.HNCAӬ ˰. *bAӬ ˱v5.HEr9AӬ ˲7G3JAӬ ˳S2"'AӬ ˳[-SAӬ ˳2yAӬ ˴Z3Qy[AӬ ˴`23AӬ ˴G2|1AӬ ˵@3F̡AӬ ˵2#zAӬ ˶?2AӬ ˷/3{AӬ ˷_3INAӬ ˸%[3IO6AӬ ˸^2gsAӬ ˸3IkAӬ ˺01Jx&AӬ ˺'3&`}AӬ ˺3mAӬ ˺.7AӬ ˻F)3Iwi^AӬ ˼^.>uAӬ ˼2X 92>,Ԭ󗤥ɻ --AӤkMAӬ machine_learningnew_value = a * old_value + b, where a and b are constants, is a permitted transformation for this attribute type. IntervaliԌ¬× Cg-AU7lAӬ machine_learning statisticsThe spread on multivariate data A covariance matrix whose [$]ij^{th}[/$] entry [$]s_{ij}[/$] is the covariance of the [$]i^{th}[/$] and [$]j^{th}[/$] attributes of the data.|X -#-AT\ZAӬ machine_learningHigh dimensionality makes the data space sparser. This makes the definitions of density and distance between objects less meaningful. Why does a high dimensionality make clustering algorithms work worse?<ߒ -#-AT(bNAӬ machine_learningThe data mining algorithm is used as a black box for finding the best subset of attributes The wrapper approach to feature subset selection AәΏ ?-AөAӬ compsci operating_systemsMultiprocessor operating system types1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions. Multiprocessor operating system types1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.[...]3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions. ~~@ą I-AӤl+CAӬ decision_tree machine_learningDisadvantages of decision tree induction1. Finding an optimal decision tree is an NP-complete problem.2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.3. Redundan$ ?a-AӠnPAӬ compsci operating_systemsScheduling algorithms used in batch systems1. First-come, first-served.[...]3. Shortest remaining time next. Scheduling algorithms used in batch systems1. First-come, first-served.2. Shortest job first.3. Shortest remaining time next.t attributes may end up making a decision tree larger than necessary.4. A subtree might become replicated several times in a decision tree.5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive. Disadvantages of decision tree induction1. Finding an optimal decision tree is an NP-complete problem.2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.3. Redundant attributes may end up making a decision tree larger than necessary.4. A subtree might become replicated several times in a decision tree.5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.[...] @i@:򡛮 9-AXAӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyWhat is the general process for comparing ourselves to others? Frame the question so that the trait in question is related to a self-perceived strength, then go out and look for evidence that you have the strength.Qժӕv ?;-AӠeAӬ compsci operating_systemsSix operating system designs1. Monolithic. The entire operating system runs as a single program in kernel mode.2. Layered. The operating system is organize Հ󕗖 ?1-AӠvAӬ compsci operating_systemsPolicy/mechanism decoupling in operating systems A scheduling algorithm that considers the priority of each process and runs the highest-priority process that is runnable. The mechanism is to look for the highest-priority process and run it, and is in the kernel. The policy is to assign priorities to processes, and is done in user mode.d in a hierarchy of layers, each one constructed upon the one below it.3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).5. Virtual machine. An operating system within an operating system.[...] Six operating system designs1. Monolithic. The entire operating system runs as a single program in kernel mode.2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).5. Virtual machine. An operating system within an operating system.6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.ed. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.3. First-In, First-Out. Remove the oldest page in memory. Bad choice.4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. Page replacement algorithms1. Optimal (theoretical). Remove the page that won't be used for the longest time.2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.3. First-In, First-Out. Remove the oldest page in memory. Bad choice.4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.[...]8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. 8hذ-}-ATf,AӬ machine_learningE.g. Fourier transforms. Mapping the data to a new space'ءC -AX"AӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyHow does self-serving bias make us resentful of others in our team? We overestimate the size of our share of work. (When husbands and wives estimate the percentage of housework each does, their estimates total over 120 percent; when MBA students estimate their contributions to the team, their estimates total 139 percent.)-ׅӘ ?s-AӦ(t:\AӬ compsci operating_systemsPage replacement algorithms1. Optimal (theoretical). Remove the page that won't be used for the longest time.2. Not Recently Us fD W -AʸjhsAʸjtbeing_no-one consciousness psychologyMental Representation, Rep_M (S, X, Y).- S is an individual information-processing system- Y is an aspect of the current state of the world[...]- X is a functionally internal system state- The intentional content of X can become available for introspective a9 'M-AX: JAӬ happiness_hypothesis jonathan_haidt persuasion positive_psychology psychologyWhat did the coin-flipping experiment tell us about moral hypocrisy? People self-reporting more caring for others were more likely to "do the right thing" by opening the bag, but equally likely as others to justify the self-interested decision when the coin didn't give the wanted result.ttention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.- The intentional content of X can become globally available for the selective control of action. Mental Representation, Rep_M (S, X, Y).- S is an individual information-processing system- Y is an aspect of the current state of the world- X represents Y for S- X is a functionally internal system state- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.- The intentional content of X can become globally available for the selective control of action. ++u W-AʸAʸVbeing_no-one consciousness psychologyReading a book in my hands and experiencing interest in it, the content of my consciousness consists of [...] and not the neural process of construction. Reading a book in my hands and experiencing interest in it, the content of my consciousness consists of mental representanta and not the neural process of construction.?ٸӘ ?-AӧOAܗcompsci operating_systemsMaster Boot Record Sector 0 of a disk, used to boot the computer. Contains the partition table, with one partition marked as active.mٍ󚪵 Kg-AӪ ĜAӬ compsci operating_systems linuxThe layers of a Linux system1. Standard utility programs (shell, editors, compilers)[...]3. Linux operating system4. Hardware The layers of a Linux system1. Standard utility programs (shell, editors, compilers)2. Standard library (open, close, read, write, fork...)3. Linux operating system4. Hardwareuite robust to the presence of noise.5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. Benefits of decision tree induction1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.4. Decision tree algorithms are quite robust to the presence of noise.5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. QfS-y-AR)AӬ machine_learningNominal attribute The values are just different names.' IG-AӤln7AӬ decision_tree machine_learningBenefits of decision tree induction1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.[...]3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.4. Decision tree algorithms are q c淓y ?_-AӠmjAӬ compsci operating_systemsFour principal ways that causes processes to be created:1. System initialization.2. Execution of a process creation system call by a running process.3. A user request to initiate a new process.4. Initiation of a batch job. Four principal ways that causes processes to be created:[...]2. Execution of a process creation system call by a running process.3. A user request to initiate a new process.4. Initiation of a batch job. ::wژ󗤦3 --AӤk^vAӬ machine_learningAllowed transformations for ratio attributes new_value = a * old_value:ږ[ ? -Aӧÿz\AӬ compsci operating_systemsA drawback of hard linking. C creates a file, B links to it, C deletes the file. [...] If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links. A drawback of hard linking. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links. ??/ӗ - -AӤl҆AӬ machine_learningIn machine learning, the bounder between two neighboring regions of different classes In machine learning, a decision boundaryНӘ̡ ?!-AӦZ`AӬ compsci operating_systemsAdvantages of a large page size1. Allows for a smaller page table, reducing its space requirement.[...] Advantages of a large page size1. Allows for a smaller page table, reducing its space requirement.2. Allows for a smaller page table, making for faster execution if the page table needs to be copied to e.g. hardware registers.mڡ1 ?s-AӠn MAӬ compsci operating_systemsTypical ways for a process to terminate.1. Normal exit (voluntary).2. Error exit (voluntary).[...]4. Killed by another process (involuntary). Typical ways for a process to terminate.1. Normal exit (voluntary).2. Error exit (voluntary).3. Fatal error (involuntary).4. Killed by another process (involuntary). other classification techniques on many simple data sets.4. Decision tree algorithms are quite robust to the presence of noise.5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. Benefits of decision tree induction1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.4. Decision tree algorithms are quite robust to the presence of noise.[...]6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. wۿ󗤽 I}-AӤlw:=qAӬ decision_tree machine_learningBenefits of decision tree induction1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).3. Decision trees are relatively easy to interpret, and have a comparable accuracy to X ?I-AӧuAӬ compsci operating_systems(Dis)advantages of linked list file allocation1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two. (Dis)advantages of linked list file allocation1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.[...]doesn't depend on the device in any way.3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.[...]5. Buffering. The data coming off a device cannot be stored in the final destination.6. Managing shared versus dedicated devices. Goals of I/O software1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.5. Buffering. The data coming off a device cannot be stored in the final destination.6. Managing shared versus dedicated devices. {{/ܓ W_-AʸlAʸl睲being_no-one consciousness psychologyMental Representation, Rep_M (S, X, Y).- S is an individual information-processing system- Y is an aspect of the current state of the world- X represents Y for S[...]- The intentional content of X can become available for introspective a0󚦊ν ?y-AӪAӬ compsci operating_systemsGoals of I/O software1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.2. Uniform naming. The name of a file or device should be a string or an integer that ttention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.- The intentional content of X can become globally available for the selective control of action. Mental Representation, Rep_M (S, X, Y).- S is an individual information-processing system- Y is an aspect of the current state of the world- X represents Y for S- X is a functionally internal system state- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.- The intentional content of X can become globally available for the selective control of action.   h܉6 ?i-AӪo =AӬ compsci operating_systemsI/O software layers1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded. [...]4. User-level I/O software. I/O libraries might e.g. format output. I/O software layers1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded. 3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.4. User-level I/O software. I/O libraries might e.g. format output. UUܷ󚦰k ?A-AӪ49XAӬ compsci operating_systemsFunctions of device-independent I/O software1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.3. Error reporting. Erroyܗӕ ? -AӠ;dAӬ compsci operating_systemsThe contents of a process1. Stack (work area)2. Data (variables)3. Text/code (executable instructions) The contents of a process1. Stack (work area)[...]3. Text/code (executable instructions)rs are device-specific, but the framework for handling errors is general.4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units. Functions of device-independent I/O software[...]2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.3. Error reporting. Errors are device-specific, but the framework for handling errors is general.4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units. ]x]ݙƳk ?9-AӨl%QAcompsci operating_systemsThree types of multiprocessor systems[...]2. Multicomputers. Message passing multiprocessor, access time in microseconds.3. Distributed systems. Wide area distributed system, access time in milliseconds. Three types of multiprocessor systems1. Multiprocessors. Shared memory model, access time in nanoseconds.2. Multicomputers. Message passing multiprocessor, access time in microseconds.3. Distributed systems. Wide area distributed system, access time in milliseconds.}݌󍍔& -%-Aӏn5?AӬ machine_learningProperties of metric distancesPositivity, d(x,y) => 0 for all x, y[...]Symmetry, d(x,y) = d(y,x)Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z Properties of metric distancesPositivity, d(x,y) => 0 for all x, yd(x,y) = 0 iff x = ySymmetry, d(x,y) = d(y,x)Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z UYUyݻӘ ? -Aӧ=|AӬ compsci operating_systemsRequirements for long-term information storage1. It must be possible to store a very large amount of information[...]3. Multiple processes must be able to access the information concurrently Requirements for long-term information storage1. It must be possible to store a very large amount of information2. The information must survive the termination of the process using it3. Multiple processes must be able to access the information concurrentlyݰ ?Q-AӨXAӬ compsci operating_systems(Dis)advantages of a small block size for disk memory1. Small files can be stored effectively, without wasting disk space.[...] (Dis)advantages of a small block size for disk memory1. Small files can be stored effectively, without wasting disk space.2. Most files will span multiple blocks and thus need multiple seeks and rotational delays to read them.;(5BO\iv,9FS`mz #0=JWdq~;<Ós=擘?$AԳ8B瓚{C„᳙ D;<Ós=擘?$AԳ8B瓚{C„᳙ DE׳|FâӘGː󚪶XHū۳3I Jƕӕό"KƠﳘLƢ蓕MƥOǰڐP𩸐wQȁ˓,RȆSкT󗤝Uɉ,VXʾӚw\‚k`ʏa󚦧2b̛󘜹ɖcӕ,dԶŧ@e͗ٓfͳޓEg͹󕫌[i΃ͳ`jΈӘ kVlnУoδpђ󕬧ڛqѯ™rѯsڷtҁuҲv󙞳w೙hyӵ󚦊{߲%~Ԭ󗤥ɻәΏą򡛮ذuS;(5BO\iv,9FS`mz #0=JWdq~ژ󗤦3ӗۿ󗤽ܓ܉6ܷ󚦰kݙƳkژ󗤦3ӗۿ󗤽ܓ܉6ܷ󚦰kݙƳkݻӘޗ’uߋ ߱߿󙚊ਯ ჊እӘғцޒ㔩㴉ӘӘ걳泘󘐋kP˳Әӂ򠪔:舊ӗ󙞝ԋӚϐ鄙Әٽ*әjw𨵾1間Өد峘nҳFӘ󘌈ә˓ᚘߓӘDӘřӕʨM   uޗ’uI{-AUe^AӬ decision_tree machine_learningClassification error for class t [$]1 - max[p(i|t)][/$]Eœ^ ?#-AӪAӬ compsci operating_systemsGoals of I/O software[...]2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowingݾ§7 C7-AUjVAӬ machine_learning statisticsFor each attibute, calculate the mean, then return [$$]\bar{x} = (\bar{x_1},...,\bar{x_n})[/$$] where [$]\bar{x_i}[/$] is the mean of the [$]i^{th}[/$] attribute [$]x_i[/$]. Computing the mean on multivariate data about them.4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.5. Buffering. The data coming off a device cannot be stored in the final destination.6. Managing shared versus dedicated devices. Goals of I/O software1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.5. Buffering. The data coming off a device cannot be stored in the final destination.6. Managing shared versus dedicated devices. n nߋ ?'-AӧwAӬ compsci operating_systemsBenefits of segmentation1. Different segments1 - -ATyAӬ machine_learninga) transform integers to binary numbers b) encode each class with a binary "belongs to this class" variable. a is more efficient, but creates faux correlations and doesn't create asymmetric binary attributes. Two approaches to binarization and their issues0޴f '-A\pAӬ getting_stronger opponent-process physiology psychology self-helpWhat explains both addiction and thrill-seeking? The opponent-process theory.ޱX ?M-AӠpAӬ compsci operating_systemsScheduling algorithms used in batch systems1. First-come, first-served.2. Shortest job first.[...] Scheduling algorithms used in batch systems1. First-come, first-served.2. Shortest job first.3. Shortest remaining time next. may grow or shrink in size independently without affecting each other.2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.4. Different segments can have different kinds of protection, such as execute only or read-write only. Benefits of segmentation1. Different segments may grow or shrink in size independently without affecting each other.2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.[...]4. Different segments can have different kinds of protection, such as execute only or read-write only. HH߱ -g-AR.AӬ machine_learningThe values are distinct, can be ordered, and the differences between units are meaningful. Interval attributeߎȫ ?!-AөU;AӬ compsci operating_systemsVirtualization types1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware. Virtualization types1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.[...] !!_߿ ?W-AӦLAӬ compsci operating_systemsTwo major issues for any paging system:1. The mapping from virtual address to physical address must be fast.2. If the virtual address space is large, the page table will be large. Two major issues for any paging system:1. The mapping from virtual address to physical address must be fast.[...]j߱ ?m-AӨYIMAӬ compsci operating_systems(Dis)advantages of physical dumps1. Simplicity, the program can be made pretty much bug free.2. Speed, the process can run at the speed of the disk.[...]4. The process cannot make incremental dumps.5. The process cannot restore individual files upon request. (Dis)advantages of physical dumps1. Simplicity, the program can be made pretty much bug free.2. Speed, the process can run at the speed of the disk.3. The process cannot skip selected directories.4. The process cannot make incremental dumps.5. The process cannot restore individual files upon request. )0DXl  4H\p$8L`tAӬ ˽. ,TAӬ ˾/3 AӬ ˾;3?HAӬ ˾-AӬ ˾G3&rAӬ ˽. ,TAӬ ˾/3 AӬ ˾;3?HAӬ ˾-AӬ ˾G3&rAӬ ˾3 AӬ ˿"o2uAӬ 3&,AӬ |3 dAӬ 3 AӬ 2AӬ 3I AӬ S3IAӬ )-3LAӬ C2wAӬ >3IAӬ m.4AӬ K2QAӬ ğ3?CJAӬ -AӬ 3N0AӬ QK3AӬ ƻY3?hAӬ M3 AӬ "U3AӬ ǩ2AӬ 3DtAӬ bS38pAӬ w33AӬ 437AӬ ɧw.NAӬ ɿ3AӬ x. 2>WAӬ Y2AӬ /3ykAӬ 2BPAӬ -3|AӬ 0.!{AӬ ?2)AӬ L.H:AӬ U2A# zz󙚊 ?K-AӨZ/AӬ compsci operating_systemsA cache in which all modified blocks are written to the disk immediately. A write-through cacheW󕫐 ?G-AӠoMS AӬ compsci operating_systemsThe average CPU utilization, given that n processes that spend a fraction p of their time waiting for I/O to complete. (Simplified formula.) [$]1 - p^{n}[/$]   Vਯ ?E-AӦLbAӬ compsci operating_systemsMemory management algorithms for finding an n-sized hole from a list of processes and holes1. First fit. Scan the list of segments until a large enough hole is found.2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off.l ?q-Aӧ@$AӬ compsci operating_systems(Dis)advantages of contiguous file allocation1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.2. Good read performance. The entire file can be read from the disk in a single operation.3. Fragmentation. Deleting files leaves holes, leading to fragmentation. (Dis)advantages of contiguous file allocation[...]2. Good read performance. The entire file can be read from the disk in a single operation.3. Fragmentation. Deleting files leaves holes, leading to fragmentation. Slightly worse performance than the above algorithm.3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.[...] Memory management algorithms for finding an n-sized hole from a list of processes and holes1. First fit. Scan the list of segments until a large enough hole is found.2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.-blocking system call, all the threads will be frozen, which defeats the point of having threads.2. If a thread blocks due to a page fault, the whole process will again be blocked.3. Programmers generally want threads specifically in applications that block often.4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)5. Threads cannot take advantage of multiple processors. Disadvantages of implementing threads in user space:1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.2. If a thread blocks due to a page fault, the whole process will again be blocked.[...]4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)5. Threads cannot take advantage of multiple processors. %e%჊ ?-AӪVAӬ compsci operating_systemsRequirements for Rate Monotonic Scheduling1. Each periodic process must complete within its period.2. No process is dependent on any other process.3. Each process needs the same amount of CPU time on each burst.4. Any nonperiodic processes have no deadlines.5. Process preemption occurs instantly and with no overhead. Requirements for Rate Monotonic Scheduling[...]2. No process is dependent on any other process.3. Each process needs the same amount of CPU time on each burst.4. Any nonperiodic processes have no deadlines.5. Process preemption occurs instantly and with no overhead.'󚦥 ?g-AӪmAӬ compsci operating_systemsBlock devices I/O devices such as disks that contain multiple data blocks that can be accessed independently.ӕ ?)-AӠAӬ compsci operating_systemsDisadvantages of implementing threads in user space:1. If a thread makes a process ~እӘ ?-Aӧ<2!AӬ compsci operating_systemsRequirements for long-term information storage[...]2. The information must survive the termination of the process using it3. Multiple processes must be able to access the information concurrently Requirements for long-term information storage1. It must be possible to store a very large amount of information2. The information must survive the termination of the process using it3. Multiple processes must be able to access the information concurrently .ғ ?u-AӪAӬ compsci operating_systemsDevice driver general structure1. Check the ijĈ ?m-AӠsRAӬ compsci operating_systemsAdvantages of implementing threads in user space:1. Thread switches can be made without kernel calls, which can be very fast.2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)3. Better scaling, as threads don't need to be stored in the kernel. Advantages of implementing threads in user space:1. Thread switches can be made without kernel calls, which can be very fast.2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)[...]nput parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.2. Check if the device is already in use. If not, possibly switch it on.[...]4. Possibly block, waiting for the device to finish completing the commands.5. Check for errors, then pass on the data and some status information. Device driver general structure1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.2. Check if the device is already in use. If not, possibly switch it on.3. Control the device. Determine the command sequence and write to the device registers.4. Possibly block, waiting for the device to finish completing the commands.5. Check for errors, then pass on the data and some status information. hhAц ?-AӠAӬ compsci operating_systemsScheduling algorithms used in interactive systems1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).2. Priority scheduling (each process is assigned a priority, possibly with different priority classes)9酬 I-AŬ+AӬ decision_tree machine_learningBinary or multiway splits. Values can be grouped together if this does not violate their order.E.g. {small,medium},{large,extra-large} is fine. {small,large},{medium,extra-large} is not. Decision tree attribute test conditions for ordinal attributes?.3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).4. Shortest process first (process run time estimated by e.g. historical data).5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).6. Lottery scheduling (give processes a varying amount of lottery tickets).7. Fair-share scheduling (each user is allocated a share of the CPU). Scheduling algorithms used in interactive systems1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).4. Shortest process first (process run time estimated by e.g. historical data).5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).[...]7. Fair-share scheduling (each user is allocated a share of the CPU). ?ޒ -)-ARMAӬ machine_learningMeaningful operations on interval attributes are mode, entropy, chi squared test, median, percentiles, [...]? Meaningful operations on interval attributes are mode, entropy, chi squared test, median, percentiles, mean, standard deviation, Pearson's correlation, t-tests?sәJ ?-AөȴAӬ compsci operating_systemsBenefits of (multiprocessor) two-level scheduling[...]2. Advantage is taken of cache affinity when possible.3. By giving each CPU its own ready list, contention for the ready lists is minimized. Benefits of (multiprocessor) two-level scheduling1. Distributes the load evenly across the available CPUs.2. Advantage is taken of cache affinity when possible.3. By giving each CPU its own ready list, contention for the ready lists is minimized. A$㔩 ?a-AӦ AӬ compsci operating_systemsMemory is divided into blocks and each block is assigned a protection key. Processes are assigned protection keys, and are only allowed to access the memory blocks they have the keys for. Protection keys (memory management technique).4ᓘ ?-AӧíXAӬ compsci operating_systemsA drawback of hard linking. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links. A drawback of [...]. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links. WKWi㴉Ә ?k-AӦaݲ=qAӬ compsci operating_systemsWhat does a paging system need to do when starting a new process?1. Determine the initial size of the program and data.2. Create a page table, allocating it memory and initializing it.3. Allocate space to the swap area on the disk.4. Initialize the swap area with program text and data.5. Record information about the page table and swap area in the process table. What does a paging system need to do when starting a new process?1. Determine the initial size of the program and data.2. Create a page table, allocating it memory and initializing it.[...]4. Initialize the swap area with program text and data.5. Record information about the page table and swap area in the process table.*듙Ѓ ?m-Aө@AӬ compsci operating_systemsA client computer packing the parameters of a remote procedure call into a message. Marshalling (multicomputers) XXӘ ?S-AӦ-pAӬ compsci operating_systemsPage tables for large memories1. Multilevel page tables.[...] Page tables for large memories1. Multilevel page tables.2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.) -걳 ?s-AӠ.4AӬ 13\ AӬ 83AӬ J3AӬ e2!*AӬ Վ 3&pgjAӬ ׹3?_wAӬ -.HT+AӬ . 1AӬ ٤3ISAӬ #.#3AӬ )2rAӬ 3)DAӬ J5. l/AӬ K+3BAӬ uI3 AӬ m3YAӬ 3?B,nAӬ 2YAӬ o2'AӬ ^2FAӬ km2ʮAӬ W323AӬ %2AӬ t]3PAӬ ]-}xAӬ K3'DAӬ 3IɻAӬ p-HAӬ sg3AӬ .H,'FAӬ 3AӬ U3?AӬ M2gAӬ RY3Ips, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.3. First-In, First-Out. Remove the oldest page in memory. Bad choice.4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.[...]9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. Page replacement algorithms1. Optimal (theoretical). Remove the page that won't be used for the longest time.2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.3. First-In, First-Out. Remove the oldest page in memory. Bad choice.4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. q ?{-AӦ\mAӬ compsci operating_systemsCode that only uses relative offsets for jump instructions (as opposed to absolute addresses). Useful with e.g. programs taking advantage of shared libraries. Position-indepedent codeU4 I9-AUQ.+AӬ decision_tree machine_learningGini for class t [$]1 - \sum_{i=0}^{c-1} [p(i|t)]^2[/$]where p(i|t) is fraction of records labeled i at a given class t, and c is the number of labelsBﴓT ?-AӠ^?}AӬ compsci operating_systemsIn the context of computing, a limit register. When a process is run, this register is loaded with the length of the program. Memory references made by the program are checked against this register: references made outside the program's address space are rejected.ttention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.- The intentional content of X can become globally available for the selective control of action. Mental Representation, Rep_M (S, X, Y).- S is an individual information-processing system- Y is an aspect of the current state of the world- X represents Y for S- X is a functionally internal system state- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.- The intentional content of X can become globally available for the selective control of action. ggӘ ?U-AӦW@]?}AӬ compsci operating_systemsA process causing page faults every few instructions Thrashing (in the context of operating systems)*ΒӘ􉙇 ?m-Aӧɱ&AӬ compsci operating_systemsBoot block The first block of an active partition, which loads the operating system contained in that partition.( WQ-AʸeiAʸekFbeing_no-one consciousness psychologyMental Representation, Rep_M (S, X, Y).- S is an individual information-processing system[...]- X represents Y for S- X is a functionally internal system state- The intentional content of X can become available for introspective aplicated several times in a decision tree.5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive. Disadvantages of decision tree induction1. Finding an optimal decision tree is an NP-complete problem.2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.3. Redundant attributes may end up making a decision tree larger than necessary.[...]5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive. LL!ٽ* IQ-AӤl!AӬ decision_tree machine_learningDisadvantages of decision tree induction1. Finding an optimal decision tree is an NP-complete problem.2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.3. Redundant attributes may end up making a decision tree larger than necessary.4. A subtree might become re ^әj ?U-AӨYEbNAӬ compsci operating_systems(Dis)advantages of physical dumps1. Simplicity, the program can be made pretty much bug free.2. Speed, the process can run at the speed of the disk.3. The process cannot skip selected directories.4. The process cannot make incremental dumps.5. The process cannot restore individual files upon request. (Dis)advantages of physical dumps[...]2. Speed, the process can run at the speed of the disk.3. The process cannot skip selected directories.4. The process cannot make incremental dumps.5. The process cannot restore individual files upon request. X2XOw ?7-AөVAӬ compsci operating_systemsA virtual machine that analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine. Type 2 hypervisorC K-AӪ<(AʻK1compsci linux operating_systemsLinux scheduling is based on [...], and distinguishes three classes:1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).2. Real-time round robin.3. Timesharing.Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given. Linux scheduling is based on threads, and distinguishes three classes:1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).2. Real-time round robin.3. Timesharing.Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given. qKqO𨵾1 -I-ATy~AӬ machine_learningEliminate redundant and irrelevant attributes (e.g. student ID numbers) from the data before it's processed. What does feature subset selection attempt to do?*򡨫 -AXAӬ happiness_hypothesis jonathan_haidt positive_psychology psychology1) They are invisible, and cannot be recognized from appearance alone. 2) Their evil spreads by infection, making it important to protect young people from the infection. 3) The villains can only be defeated if we pull together as a team. What are the three things that the targets of popular villain hysterias have in common? BB3間Ө ?-AӪAӬ compsci operating_systemsI/O buffering alternatives1. Unbuffered input. User process has to be started up for every incoming character.2. Buffering in user space. What if the buffer is paged out when a character arrives?3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used. I/O buffering alternatives1. Unbuffered input. User process has to be started up for every incoming character.[...]3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used. & & د C+-ATuAӬ machine_learning statisticsPearson correlation covariance(x,y)/standard_deviation(x)*standard_deviation(y)6ӘD ?-AӦbtAӬ compsci operating_systemsWhat happens on a page fault?[...]2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduleڈ2트󕫌 ?}-AӠoO;AӬ compsci operating_systemsSkeleton of what the lowest level of the operwIJƳ --AUuAӬ machine_learningError rate (Wrong number of predictions)/(Total number of predictions)ating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.2. Hardware loads new program counter from interrupt vector.3. Assembly language procedure saves registers (typically to the process table).4. Assembly language procedure sets up new stack.5. C interrupt service runs (typically reads and buffers input).6. Scheduler decides what process to run next.7. Assembly language procedure starts up new current process. Skeleton of what the lowest level of the operating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.2. Hardware loads new program counter from interrupt vector.3. Assembly language procedure saves registers (typically to the process table).4. Assembly language procedure sets up new stack.5. C interrupt service runs (typically reads and buffers input).[...]7. Assembly language procedure starts up new current process.d for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. What happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. 峘 ?!-AӦgAӬ compsci operating_systemsMemory management with bitmaps Memory is divided into allocation units, each of which corresponds to a bit in the bitmap. Simple, but searching the bitmap to find the space for a new process takes time. U ?C-AӦ;$AӬ compsci operating_systemsThe structure of a generic page table entry1. The page frame number2. Present/absent bit3. Protection (read/write, execution)4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)[...]6. Caching disabled bitNote: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses. The structure of a generic page table entry1. The page frame number2. Present/absent bit3. Protection (read/write, execution)4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)5. Referenced bit6. Caching disabled bitNote: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses. PP$n ?a-Aө׻dZAӬ compsci operating_systemsTwo-level scheduling (for multiprocessor systems) When a thread is created, it is assigned to a CPU. Each CPU then does its own scheduling on its own collection of threads. If a CPU has no thread to run, it takes one from another CPU.vӘ ?-AӧD33AӬ compsci operating_systemsVirtual file system A file system that attempts to integrate multiple file systems into a single structure that is presented to the user. User processes operate it via one set of calls, and it operates other file systems via a list of function calls whose addresses the file systems provide upon registering with it. !ҳF ?U-AӠmxAӬ compsci operating_systemsA daemon. A process that runs in the background to handle some task, possibly only rarely awakening.󗤧' -7-AӤk*AӬ machine_learningnew_value = a * old_value is a permitted transformation for this attribute type RatioTY ?A-AӠ@bAӬ compsci operating_systemsScheduling algorithm goals for batch systems (in addition to the normal ones):1. Throughput, maximize jobs per hour.2. Turnabout time, minimize time between submission and termination.3. CPU utilization, keep the CPU busy all the time. Scheduling algorithm goals for batch systems (in addition to the normal ones):1. Throughput, maximize jobs per hour.[...]3. CPU utilization, keep the CPU busy all the time. plit up into small modules, only one of which runs in kernel mode.4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).5. Virtual machine. An operating system within an operating system.6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. Six operating system designs1. Monolithic. The entire operating system runs as a single program in kernel mode.2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).5. Virtual machine. An operating system within an operating system.6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. mOymӘ ?-AӦ[^aXAӬ compsci operating_systemsWith separate instruction and data spaces, two or more processes can use the same page table for their instruction space, but different page tables for their data space. Page sharing between programsKɻӕ׆ ?/-AӠm^UAӬ compsci operating_systemsThe CPU rapidly switching between various processes, running each for a small fraction of time before switching to the next one. Multiprogramming@ڲ3 ?-AӦV`uAӬ compsci operating_systemsRe-mapping memory references to the address space of a process during runtime, using e.g. base and limit registers. Dynamic relocationSӕ ??-AӠ^ =AӬ compsci operating_systemsSix operating system designs1. Monolithic. The entire operating system runs as a single program in kernel mode.[...]3. Microkernel. The operating system is s O> -S-AR#OAӬ machine_learningThe values are distinct, and provide enough information to allow for an ordering. Ordinal attribute~󚧓 ?-AӪU AӬ compsci operating_systemsAssigning each process a fixed priority in advance Static schedulingәD ?%-AӨl'&AӬ compsci operating_systemsThree types of multiprocessor systems1. Multiprocessors. Shared memory model, access time in nanoseconds.[...]3. Distributed systems. Wide area distributed system, access time in milliseconds. Three types of multiprocessor systems1. Multiprocessors. Shared memory model, access time in milliseconds.2. Multicomputers. Message passing multiprocessor, access time in microseconds.3. Distributed systems. Wide area distributed system, access time in milliseconds.&x -w-AR7TZAӬ machine_learningRatio attribute The values are distinct, can be ordered, and both differences and ratios between them are meaningful. N󘌈 ?5-AӦ4kdZAӬ compsci operating_systemsThe structure of a generic page table entry[...]2. Present/absent bit3. Protection (read/write, execution)4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)5. Referenced bit6. Caching disabled bitNote: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses. The structure of a generic page table entry1. The page frame number2. Present/absent bit3. Protection (read/write, execution)4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)5. Referenced bit6. Caching disabled bitNote: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses. >2ә ?}-Aө􀼋DAӬ compsci operating_systemsSensitive instructions must be a subset of privileged instructions. A requirement for (type 1 hypervisor) virtualizationS ??-AӦE+AӬ compsci operating_systemsMemory management algorithms for finding an n-sized hole from a list of processes and holes1. First fit. Scan the list of segments until a large enough hole is found.[...]3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memoQاF g-AX^AӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyThe ants in a hive work together because of kin altruism: they are all related to their queen. Humans try to extend kin altruism by using family-related words, such as the mafia calling itself family. How is the mafia like an ant colony?ry in uselessly small holes.4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow. Memory management algorithms for finding an n-sized hole from a list of processes and holes1. First fit. Scan the list of segments until a large enough hole is found.2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow. wxwv˓ᚘ ?-AӪ>RAӬ compsci operating_systemsI/O communication techniques1. Programmed IO. CPU continuously studies the control registers in a loop.2. Interrupt-driven IO. Controller makes an interrupt when ready.3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready. I/O communication techniques1. Programmed IO. CPU continuously studies the control registers in a loop.2. Interrupt-driven IO. Controller makes an interrupt when ready.[...]}Ӹg ?-AӠ-QAӬ compsci operating_systemsScheduling algorithm goals for real-time systems (in addition to the normal ones):1. Meeting deadlines, to avoid losing data.2. Predictability, avoid quality degradation in multimedia systems. Scheduling algorithm goals for real-time systems (in addition to the normal ones):1. Meeting deadlines, to avoid losing data.[...] kߓ ?o-AӨZqa7LAӬ compsci operating_systemsFactors to take into account when using a modified LRU scheme for disk block caching1. Is the block likely to be needed again soon? If not, put it at the front of the list to be reused soon.[...] Factors to take into account when using a modified LRU scheme for disk block caching1. Is the block likely to be needed again soon? If not, put it at the front of the list to be reused soon.2. Is the block essential to the consistency of the file system? If it's not a disk block but an i-node block, directory block, etc., write it to the disk as soon as possible. IӘD ?+-AӦ(qxAӬ compsci operating_systemsPage replacement algorithms1. Optimal (theoretical). Remove the page that won't be used for the longest time.2. Not Recently Used. When a process starts, sb󊈳ɒN ?]-Aө$ZAӬ compsci operating_systemsFour ways of implementing sending on multicomputers1. Blocking send (CPU idle during message transmission)2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)3. Nonblocking send with interrupt (makes programming difficult)[...] Four ways of implementing sending on multicomputers1. Blocking send (CPU idle during message transmission)2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)3. Nonblocking send with interrupt (makes programming difficult)4. Copy on write (extra copy probably eventually needed)et its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.3. First-In, First-Out. Remove the oldest page in memory. Bad choice.4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. Page replacement algorithms1. Optimal (theoretical). Remove the page that won't be used for the longest time.2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.3. First-In, First-Out. Remove the oldest page in memory. Bad choice.4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.[...]7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. )0DXl  4H\p$8L`tAӬ (C3?dNAӬ 37DAӬ 3řAӬ G3qAӬ ޹2&sAӬ (C3?dNAӬ 37DAӬ 3řAӬ G3qAӬ ޹2&sAӬ 2kAӬ m3UAӬ 3I;AӬ 2 AӬ )A3'MAӬ ?3IAӬ 3AӬ {2Ɣ"AӬ U3I#;AӬ =3IWAӬ 37AӬ c3IJAӬ 2WAӬ O-aAӬ K#3?AӬ ʥ2"AӬ 3IAӬ "2*9AӬ ܋3?'(PAӬ FG3?DWAӬ 3AӬ CI.H$AӬ ai.AӬ t3?g+AӬ c2AӬ F3?L1:AӬ >13 AӬ cG3JdAӬ 3IAӬ 3i1AӬ 3?AӬ >=.HAӬ |2AӬ ї3 AUAӬ 3?%1AӬ .[3Iv*an the above algorithm.[...]4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow. Memory management algorithms for finding an n-sized hole from a list of processes and holes1. First fit. Scan the list of segments until a large enough hole is found.2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow. yytӘř ?-AӦGAӬ compsci operating_systemsMemory management algorithms for finding an n-sized hole from a list of processes and holes1. First fit. Scan the list of segments until a large enough hole is found.2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance th PP% ?c-AӧFAӬ compsci operating_systemsWays of implementing files1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order. Ways of implementing files[...]2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order. F7 ?-AӠXAӬ compsci operating_systemsScheduling algorithm goals for all systems1. Fairness, giving each process a fair share of the CPU.2. Policy enforcement, seeing that stated policy is carried out.3. Balance, keeping all parts of the system busy. Scheduling algorithm goals for all systems1. Fairness, giving each process a fair share of the CPU.2. Policy enforcement, seeing that stated policy is carried out.[...]/דܦs ?w-AӠAӬ compsci operating_systemsScheduling algorithm goals for all systems[...]2. Policy enforcement, seeing that stated policy is carried out.3. Balance, keeping all parts of the system busy. Scheduling algorithm goals for all systems1. Fairness, giving each process a fair share of the CPU.2. Policy enforcement, seeing that stated policy is carried out.3. Balance, keeping all parts of the system busy. $ӕ ?a-AӠ!AӬ compsci operating_systemsDisadvantages of implementing threads in user space:1. If a thread makes a process-blocking system call, all t5 ?-AӪEPQAӬ compsci operating_systemsThe formula for when a set of real-time processes is schedulable [$]\sum_{i=1}^{m} {C_i \over P_i} \leq 1[/$]where process [$]i[/$] has period [$]P_i[/$] msec and requires [$]C_i[/$] msec of CPU time per frame, and [$]m[/$] is the number of processes.Ә ?Q-AӦ[SAӬ compsci operating_systemsStatic (library) linking When a program is linked, the linker searches the library files for any function calls not present in the object files. An executable binary is then written to disk containing all the needed functions.he threads will be frozen, which defeats the point of having threads.2. If a thread blocks due to a page fault, the whole process will again be blocked.3. Programmers generally want threads specifically in applications that block often.4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)5. Threads cannot take advantage of multiple processors. Disadvantages of implementing threads in user space:1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.2. If a thread blocks due to a page fault, the whole process will again be blocked.3. Programmers generally want threads specifically in applications that block often.4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)[...] jʨM ?m-AӨk&AӬ compsci operating_systemsThree types of UMA multiprocessors1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.[...] Three types of UMA multiprocessors1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches. RR#󚧣 ?_-AӪAӬ compsci operating_systemsRequirements for Rate Monotonic Scheduling1. Each periodic process must complete within its period.2. No process is dependent on any other process.3. Each process needs the same amount of CPU time on each burst.4. Any nonperiodic processes have no deadlines.5. Process preemption occurs instantly and with no overhead. Requirements for [...]1. Each periodic process must complete within its period.2. No process is dependent on any other process.3. Each process needs the same amount of CPU time on each burst.4. Any nonperiodic processes have no deadlines.5. Process preemption occurs instantly and with no overhead. HnH%Ӛ; ?c-AӪrAӬ compsci operating_systemsI/O devices such as keyboards or printers that generate or accept a stream of characters. Character devices#" ?_-AӠobNAӬ compsci operating_systemsSkeleton of what the lowest level of the oper ?'-AӦsAӬ compsci operating_systemsTypes of memory abstraction1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.[...]3. Virtual memory. Break programs into pages, move pages not currently in use to the disk. Types of memory abstraction1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.2. Address spaces. Employ base and limit registers plus swapping.3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.ating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.2. Hardware loads new program counter from interrupt vector.3. Assembly language procedure saves registers (typically to the process table).4. Assembly language procedure sets up new stack.5. C interrupt service runs (typically reads and buffers input).6. Scheduler decides what process to run next.[...] Skeleton of what the lowest level of the operating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.2. Hardware loads new program counter from interrupt vector.3. Assembly language procedure saves registers (typically to the process table).4. Assembly language procedure sets up new stack.5. C interrupt service runs (typically reads and buffers input).6. Scheduler decides what process to run next.7. Assembly language procedure starts up new current process. ppӘW ?#-Aӧf%-AӬ compsci operating_systemsWays to reserve swap space for a process1. When a process starts, reserve an amount of space equal in size to the core image of the process.2. When a process starts, reserve separate swap areas for the text, data and stack.[...] Ways to reserve swap space for a process1. When a process starts, reserve an amount of space equal in size to the core image of the process.2. When a process starts, reserve separate swap areas for the text, data and stack.3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapped back in.access.5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. What happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.[...]9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. ""L㬳 ?1-AӪyAӬ compsci operating_systemsFunctions of device-independent I/O software1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.3. Error reporting. Errors are device-specific, but the framework for handling eh󘟆 ?i-AӦbhAӬ compsci operating_systemsWhat happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the rrors is general.[...]5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units. Functions of device-independent I/O software1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.3. Error reporting. Errors are device-specific, but the framework for handling errors is general.4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units. aa% -u-ARSwAӬ machine_learningMeaningful operations on ratio attributes are mode, entropy, chi squared test, median, percentiles, mean, standard deviation, Pearson's correlation, t-tests, [...]? Meaningful operations on ratio attributes are mode, entropy, chi squared test, median, percentiles, mean, standard deviation, Pearson's correlation, t-tests, geometric mean, harmonic mean, percent variation?dW ?a-AӠbAӬ compsci operating_systemsScheduling algorithm goals for batch systems (in addition to the normal ones):1. Throughput, maximize jobs per hour.2. Turnabout time, minimize time between submission and termination.3. CPU utilization, keep the CPU busy all the time. Scheduling algorithm goals for batch systems (in addition to the normal ones):1. Throughput, maximize jobs per hour.2. Turnabout time, minimize time between submission and termination.[...] ^5^Lӕ ?1-AӠYnAӬ compsci operating_systemsThe memory hierarchy (of computers). A system where computers have e.g. a small cache memory, a larger main memory, and a yet larger disk storage.4䳘? ?-AӦ =AӬ compsci operating_systemsA page (in the context of operating systems) The virtual address space is divided into a number of these fixed-size units.󘜴@ ?-AӦWjAʻ9compsci operating_systemsWhat to consider when deciding what processes to swap to disk?[...]2. Paging rate. Obvious.3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods. What to consider when deciding what processes to swap to disk?1. Process size. Bigger processes need more memory.2. Paging rate. Obvious.3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods. >>ӳ9 ?O-AӠnkAӬ compsci operating_systemsThe three possible states of a process.1. Running (actually using the CPU).2. Ready (runnable; temporarily stopped to let another process run).[...] The three possible states of a process.1. Running (actually using the CPU).2. Ready (runnable; temporarily stopped to let another process run).3. Blocked (unable to run until some external event happens). ?;-AӪ"AӬ compsci operating_systemsTime required to read or write a disk block is determined by1. Seek time (the time to move the arm to the proper cylinder, dominating factor)2. Rotational delay (the time for the proper sector to rotate under the head)[...] Time required to read or write a disk block is determined by1. Seek time (the time to move the arm to the proper cylinder, dominating factor)2. Rotational delay (the time for the proper sector to rotate under the head)3. Actual data transfer time. KΨP ?/-Aө^5AӬ compsci operating_systemsMultiprocessor operating system types1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions. Multiprocessor operating system types[...]2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions. VW ?E-AөMAӬ compsci operating_systemsBenefits of (multiprocessor) two-level scheduling1. Distributes the load evenly across the available CPUs.2. Advantage is taken of cache affinity when possible.3. By giving each CPU its own ready list, contention for the ready lists is minimized. Benefits of (multiprocessor) two-level scheduling1. Distributes the load evenly across the available CPUs.2. Advantage is taken of cache affinity when possible.[...] kkȏ g-AXH?}AӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyVia meditation (breaking of attachments), cognitive behavioral therapy (catching and changing negative thoughts), and psyche medication. How can I change my affective style?nâ ?u-AӦAӬ compsci operating_systemsTypes of memory abstraction1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.2. Address spaces. Employ base and limit registers plus swapping.[...] Types of memory abstraction1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.2. Address spaces. Employ base and limit registers plus swapping.3. Virtual memory. Break programs into pages, move pages not currently in use to the disk. xx ݂΀+ ?--Aө-E/AӬ compsci operating_systemsIn RPC implementations, a small library procedure that represents the server (client) procedure in the client's (server's) address space and hides the fact that address call is not local. Client (server) stubiحŸCi-AU%1%AӬ machine_learning statistics[$]x_{75\%} - x_{25\%}[/$] Interquartile range ( ?i-AӠ۞EAӬ compsci operating_systemsReasons to use threads.1. An application may want to do many things at once.2. Threads are faster to create and destroy than processes.3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.[...]5. Threads are useful on systems with multiple CPUs, where real parallellism is possible. Reasons to use threads.1. An application may want to do many things at once.2. Threads are faster to create and destroy than processes.3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.4. Threads share access to the same data area, unlike processes.5. Threads are useful on systems with multiple CPUs, where real parallellism is possible. L Ɠ ?Y-AӧSe`BAӬ compsci operating_systemsReading starts at the beginning, and cannot skip around or read things out of order. Sequential access): ?k-AөfAӬ compsci operating_systemsGang scheduling1. Groups of related threads are scheduled as a unit, a gang.2. All members of a gang run simultaneously, on different timeshared CPUs.[...] Gang scheduling1. Groups of related threads are scheduled as a unit, a gang.2. All members of a gang run simultaneously, on different timeshared CPUs.3. All gang members start and end their time slices together. ` KM-AӪSAӬ compsci operating_systems linuxLinux scheduling is based on threads, and distinguishes three classes:1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).2. Real-time round robin.3. Timesharing.Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given. Linux scheduling is based on threads, and distinguishes three classes:1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).2. Real-time round robin.3. Timesharing.Note: [...] Ӛ ?-AӪYxAӬ compsci operating_systemsMain alternatives for real-time scheduling[...]2. Earliest Deadline First. Run the process with the least time to its deadline, pre-empting a running process if necessary. Main alternatives for real-time scheduling1. Rate Monotonic Scheduling. Assign each process a fixed priority, equal to the frequency of its triggering event.2. Earliest Deadline First. Run the process with the least time to its deadline, pre-empting a running process if necessary. M1 ?3-AӦar-AӬ compsci operating_systemsWhat does a paging system need to do when a process is scheduled for execution?[...]2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).3. Optionally, bring some of the process' pages into memory. What does a paging system need to do when a process is scheduled for execution?1. Reset the MMU and flush the TLB.2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).3. Optionally, bring some of the process' pages into memory. ; ?-Aө7AӬ compsci operating_systemsMotivations for virtual machines1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.[...]3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.4. Running legacy systems.5. Software development. A program can be tried on several operating systems. Motivations for virtual machines1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.2. Cost reduction. Fewer physical machines means lower hardware and energy costs.3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.4. Running legacy systems.5. Software development. A program can be tried on several operating systems. ߔӗ -g-AӤk)7AӬ machine_learningNominal. Any one-to-one mapping for reassigning values is a permitted transformation for this attribute type.Q򠱓 g-AXGAӬ happiness_hypothesis jonathan_haidt positive_psychology psychology"Don't think about polar bears" creates a system to monitor whether we're thinking about polar bears in order to judge our success. But this monitoring by itself reminds us of the polar bears. Why is it hard not to think about something?;J*7DQ^kx!.;GS`mz #0=JWdq~ȏ݂΀+Ɠ Ӛ1Ӛ;ӘW㬳ӕӳ9ΨPWȏ݂΀+Ɠ Ӛ1 ߔӗ U  _쓙ۅӚӕ՜-ȑӘġӘܓ ڛ[!ŁB$&ē(̝Q)&*ӚJ+,쓕/O3G5铚z7泙Q8Ӎ9򟓗ѤO:H;<>ݸP?&@vAƳ߄EB°ΥOCճD7Gӕ܍PH mmU ?)-Aӧ! AӬ compsci operating_systemsWays of implementing files1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.[...] Ways of implementing files1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order. PP7 Wo-AʸsAʸtbeing_no-one consciousness psychologyThree ways by which mental representations are internal.1. Phenomenal. The states are phenomenally experienced as "internal".[...]3. Physical. The states exist physically within the organism. Three ways by which mental representations are internal.1. Phenomenal. The states are phenomenally experienced as "internal".2. Functional. The properties making the state available for conscious experience are only realized by a single person.3. Physical. The states exist physically within the organism.o˳* ?w-AӪ~AӬ compsci operating_systemsFly-by mode (in the context of Direct Memory Access) The DMA controller telling a device to transfer data directly into main memory, as opposed to sending the data to the DMA first.jʱ?o-Aө5?AӬ compsci operating_systemsA NUMA architecture with coherent caching CC-NUMA ]H_ ?)-AӠbxQAӬ compsci operating_systemsSix operating system designs1. Monolithic. The entire operating system runs as a single program in kernel mode.2. Layered. The operating system is ?C-AӠ,G;dAӬ compsci operating_systemsScheduling algorithm goals for real-time systems (in addition to the normal ones):[...]2. Predictability, avoid quality degradation in multimedia systems. Scheduling algorithm goals for real-time systems (in addition to the normal ones):1. Meeting deadlines, to avoid losing data.2. Predictability, avoid quality degradation in multimedia systems.xȳ͞_ ? -AӠHĜAӬ compsci operating_systemsThe contents of a process1. Stack (work area)2. Data (variables)3. Text/code (executable instructions) The contents of a process[...]2. Data (variables)3. Text/code (executable instructions) )0DXl  4H\p$8L`tAӬ 2WAӬ A2_AӬ ?a3?%eAӬ 3- AӬ _.-AӬ 2WAӬ A2_AӬ ?a3?%eAӬ 3- AӬ _.-AӬ 3J AӬ S2<AӬ }2$AӬ Dg3 *AӬ E.HӢAӬ 3JAӬ O3IAӬ 3 AӬ 2"!AӬ g3IsAӬ 3AӬ 3It)AӬ 93¡AӬ J_3?m[AӬ  3×BAӬ fC.HAӬ {3IAӬ !3IAӬ - 2AӬ 2CAӬ }M. fQAӬ . (AӬ 3?LAӬ 7.HZ&AӬ 9U2AӬ i. aAӬ 3I–JAӬ [3&~=PAӬ 3?"AӬ b3xAӬ a2AӬ yO2AӬ 37^AӬ F3?EOAӬ k1J$AӬ W.HWG organized in a hierarchy of layers, each one constructed upon the one below it.3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.[...]5. Virtual machine. An operating system within an operating system.6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. Six operating system designs1. Monolithic. The entire operating system runs as a single program in kernel mode.2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).5. Virtual machine. An operating system within an operating system.6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. ,쓙 ?q-AөjAӬ compsci operating_systemsDirectory-based multiprocessor A multiprocessor system with a database telling where each cache line is and what its status is. When a cache line is referenced, the database is queried to find out where it is and whether it is clean or dirty.  < %ۅ IY-AUj?PAӬ decision_tree machine_learningHunt's algorithm when all the values in the set have identical attribute values except for the class label? Declare the node a leaf node with the same class label as the majority class of training records associated with the node.9Ә ? -Aӧd33AӬ compsci operating_systemsWays to reserve swap space for a process1. When a process starts, reserve an amount of space equal in size to the core image of the process.2. When a process starts, reserve separate swap areas for the text, data and stack.3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapepd back in. Ways to reserve swap space for a process1. When a process starts, reserve an amount of space equal in size to the core image of the process.[...]3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapepd back in. @@5Ӛ Kw-AӪAӬ compsci linux operating_systemsLinux dynamic priority adjustment[...]* CPU-hogging tasks are punished when they are preempted or their quantum expires.The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes. Linux dynamic priority adjustment* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.* CPU-hogging tasks are punished when they are preempted or their quantum expires.The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes. )ӕ ?9-AӠnIAӬ compsci operating_systemsSkeleton of what the lowest level of the operLʳ< ?1-AӠOAӬ compsci operating_systemsOversimplified POSIX prompt codewhile (TRUE) { type_prompt(); /* display prompt on the screen */ read_command(command, parameters) /* read input from terminal */ if(fork() != 0) { /* fork off child process */ waitpid(-1, &status, 0) /* wait for child to exit */ } else { [...] Oversimplified POSIX prompt codewhile (TRUE) { type_prompt(); /* display prompt on the screen */ read_command(command, parameters) /* read input from terminal */ if(fork() != 0) { /* fork off child process */ waitpid(-1, &status, 0) /* wait for child to exit */ } else { execve(command, parameters, 0) /* execute command */ ating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.2. Hardware loads new program counter from interrupt vector.[...]4. Assembly language procedure sets up new stack.5. C interrupt service runs (typically reads and buffers input).6. Scheduler decides what process to run next.7. Assembly language procedure starts up new current process. Skeleton of what the lowest level of the operating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.2. Hardware loads new program counter from interrupt vector.3. Assembly language procedure saves registers (typically to the process table).4. Assembly language procedure sets up new stack.5. C interrupt service runs (typically reads and buffers input).6. Scheduler decides what process to run next.7. Assembly language procedure starts up new current process. ss ?-Aӧ;dAӬ compsci operating_systemsWays of implementing files1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.[...]4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order. Ways of implementing files1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.  ՜- K-AӪpȃAӬ compsci operating_systems linuxLinux interprocess communication1. Pipes. Channels between two processes, into which one process can write a stream of bytes for the other to read.2. Signals. A process can send signals to members of its process group (ancestors and descendants). A process may ignore, catch, or be killed by a signal. Linux interprocess communication1. Pipes. Channels between two processes, into which one process can write a stream of bytes for the other to read.[...]l" -AX.AӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyBecause it is the only part of our minds that we can directly perceive. Why do we think that the conscious mind is in control of things?one program at a time.5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units. Functions of device-independent I/O software1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.3. Error reporting. Errors are device-specific, but the framework for handling errors is general.4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units. 33:ȑ ? -AӪ7AӬ compsci operating_systemsFunctions of device-independent I/O software1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.[...]3. Error reporting. Errors are device-specific, but the framework for handling errors is general.4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by  nӘ ?u-AӧK"AӬ compsci operating_systemsWays of implementing files1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order. Ways of implementing files1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.[...]3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order. 2ġ Is-AӤl<AӬ decision_tree machine_learningAs we go down the tree, the number of records becomes smaller. At the leaf nodes, the number of records may be too small for a statistically significant classification. The data fragmentation problem (in the context of decision tree induction) ^ ?U-AӪ nAӬ compsci operating_systemsDMA steps1. CPU programs the DMA controller via special registers.2. DMA controller requests device controller to move data to memory.3. Device controller begins transferring data to memory.4. Disk controller sends an acknowledgement to DMA controller.5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.6. DMA controller interrupts the CPU to signal a finished task. DMA steps1. CPU programs the DMA controller via special registers.[...]3. Device controller begins transferring data to memory.4. Disk controller sends an acknowledgement to DMA controller.5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.6. DMA controller interrupts the CPU to signal a finished task. !Ә ?[-Aӧ AӬ compsci operating_systemsReasons to give processes some control over the virtual memory map1. If several processes can share the same pages, high bandwidth sharing becomes possible.2. Sharing of pages can be used to implement a message passing system, with one process unmapping a page and another mapping it in. Thus, data doesn't need to be copied. Reasons to give processes some control over the virtual memory map1. If several processes can share the same pages, high bandwidth sharing becomes possible.[...] cܓ ?_-AӪ2AӬ compsci operating_systemsDMA steps1. CPU programs the DMA controller via special registers.2. DMA controller requests device controller to move data to memory.3. Device controller begins transferring data to memory.4. Disk controller sends an acknowledgement to DMA controller.5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.6. DMA controller interrupts the CPU to signal a finished task. DMA steps1. CPU programs the DMA controller via special registers.2. DMA controller requests device controller to move data to memory.3. Device controller begins transferring data to memory.4. Disk controller sends an acknowledgement to DMA controller.5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.[...] or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. What happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.[...]5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. Aڛ[ ?-Aө0AӬ compsci operating_systemsDistributed Shared Memory An illusion of shared memory for multicomputers, implemented by the OS instead of the hardware. When a program requests a page the machine does not have, a request is made to the machine currently holding it to unmap it and send it over. γӘ ?--AӦb{AӬ compsci operating_systemsWhat happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, a+ŁB ?o-AӦbVAӬ compsci operating_systemsWhat happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, or if one doesn't exist, the pag"ߍӘ ?A-AӦw8rAאĜcompsci operating_systemsA virtual address An address which the memory management unit maps onto a physical address#e replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.[...]11. The routine reloads the registers and other state information and returns to user space to continue execution. What happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. u ?-AӪ AӬ compsci operating_systemsRAID levels.0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.1. Mirroring with strips. Each primary disk has a backup disk.2. Bits with Ha%:Ȳ 9-AX]`BAӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyStimuli appeal directly to the elephant. Like a tired muscle, willpower soon wears down, but automatic systems run automatically, effortlessly and endlessly. Why is stimulus control a good way to control ourselves?mming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. RAID levels.0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.1. Mirroring with strips. Each primary disk has a backup disk.[...]3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. AA4ē ?-AӪ`BAӬ compsci operating_systemsI/O buffering alternatives1. Unbuffered input. User process has to be started up for every incoming character.2. Buffering in user space. What if the buffer is paged out when a character arrives?3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used. I/O buffering alternatives[...]2. Buffering in user space. What if the buffer is paged out when a character arrives?3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.ity classes).[...]4. Shortest process first (process run time estimated by e.g. historical data).5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).6. Lottery scheduling (give processes a varying amount of lottery tickets).7. Fair-share scheduling (each user is allocated a share of the CPU). Scheduling algorithms used in interactive systems1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).4. Shortest process first (process run time estimated by e.g. historical data).5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).6. Lottery scheduling (give processes a varying amount of lottery tickets).7. Fair-share scheduling (each user is allocated a share of the CPU). o>oD̝Q -3-AT_AӬ machine_learning(number of matching presences)/(number of attributes not involved in 00 matches)(1/6) Jaccard Coefficient[1,0,0,0,0,1,1,0,1,0][0,0,1,0,0,0,1,1,0,0]oӕÅ ?w-AӠ"G\)AӬ compsci operating_systemsScheduling algorithm goals for interactive systems (in addition to the normal ones):1. Response time, respond to request quickly.[...] Scheduling algorithm goals for interactive systems (in addition to the normal ones):1. Response time, respond to request quickly.2. Proportionality, meet users' expectations.5 ?-AӠ|!XAӬ compsci operating_systemsScheduling algorithms used in interactive systems1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).2. Priority scheduling (each process is assigned a priority, possibly with different prior' eJe3& +-AX9AӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyThey become paralyzed. They examine the pros and cons of each decision, but in the absence of feeling see little reason to pick one over the other. What happens when people lose the ability to feel emotions? ?Q-AөemAӬ compsci operating_systemsGang scheduling1. Groups of related threads are scheduled as a unit, a gang.2. All members of a gang run simultaneously, on different timeshared CPUs.3. All gang members start and end their time slices together. Gang scheduling1. Groups of related threads are scheduled as a unit, a gang.[...]3. All gang members start and end their time slices together.+ђ --ATP9AӬ machine_learningThree different approaches to feature creation? Feature extraction, mapping the data to a new space, feature construction. SSӚJ ?G-AӪУAӬ compsci operating_systemsWays of dealing with bad sectors1. Substituting a spare for the bad sector. Reading the whole track takes two turns.[...] Ways of dealing with bad sectors1. Substituting a spare for the bad sector. Reading the whole track takes two turns.2. Shifting all the sectors to bypass the bad one. Reading continuous, but more bookkeeping for the controller.6ڳ --AT.-AӬ machine_learningSimple Matching Coefficient[1,0,0,0,0,0,1,0,1,1][0,0,1,0,0,0,1,1,1,0] (number of matching attribute values)/(number of attributes)0,6?Ϊӕ ?-AӠ2|AӬ compsci operating_systemsIn the context of computing, a base register. When a process is run, this register is loaded with the physical address where the program begins in memory. Whenever the program references a memory location, the content of this register is added to the reference. [e?e-AөpĜAӬ compsci operating_systemsNC-NUMA A NUMA architecture with no caching.󋳙P ?M-AӨZ{ƨAӬ compsci operating_systemsChecks made by the fsck file system checker1. Check that each disk block is either assigned to the free pool once, or to a file once.2. Check that if a file appears in n directories, then it has a link count of n. Checks made by the fsck file system checker1. Check that each disk block is either assigned to the free pool once, or to a file once.[...] ww 쓕 ?+-AӠrAӬ compsci operating_systemsDisadvantages of implementing threads in user space:1. If a thread makes a process--bӘ ?]-AӦaAӬ compsci operating_systemsWhat does a paging system need to do when starting a new process?1. Determine the initial size of the program and data.2. Create a page table, allocating it memory and initializing it.3. Allocate space to the swap area on the disk.4. Initialize the swap area with program text and data.5. Record information about the page table and swap area in the process table. What does a paging system need to do when starting a new process?[...]2. Create a page table, allocating it memory and initializing it.3. Allocate space to the swap area on the disk.4. Initialize the swap area with program text and data.5. Record information about the page table and swap area in the process table.blocking system call, all the threads will be frozen, which defeats the point of having threads.2. If a thread blocks due to a page fault, the whole process will again be blocked.3. Programmers generally want threads specifically in applications that block often.4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)5. Threads cannot take advantage of multiple processors. Disadvantages of implementing threads in user space:1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.[...]3. Programmers generally want threads specifically in applications that block often.4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)5. Threads cannot take advantage of multiple processors.asses).3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).4. Shortest process first (process run time estimated by e.g. historical data).5. Guaranteed scheduling (e.g. if there are n processes, each is guaranteed 1/n of the CPU cycles).6. Lottery scheduling (give processes a varying amount of lottery tickets).7. Fair-share scheduling (each user is allocated a share of the CPU). Scheduling algorithms used in interactive systems1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).[...]5. Guaranteed scheduling (e.g. if there are n processes, each is guaranteed 1/n of the CPU cycles).6. Lottery scheduling (give processes a varying amount of lottery tickets).7. Fair-share scheduling (each user is allocated a share of the CPU). --RO ?=-AөoKAӬ compsci operating_systemsProcessor allocation algorithms for load balancing1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffi2 ^ ?+-Aӧ17AӬ compsci operating_systemsModern Operating Systems: Memory management chapter summary1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allo0;ީ󕾂 ?-AӠ~2AӬ compsci operating_systemsScheduling algorithms used in interactive systems1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).2. Priority scheduling (each process is assigned a priority, possibly with different priority cl.1w only one process at a time in memory, others support multiprogramming.2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. Modern Operating Systems: Memory management chapter summary1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.[...]3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.c while meeting constraints such as each processor's memory capacity.2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks. Processor allocation algorithms for load balancing1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.[...] G C-AXi*nAӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyMoral idealism and self-esteem (the major ones), greed/ambition (minor cause), sadism (very minor cause). What are the four causes of violence and cruelty?SӍ$ -Q-Aӏ>AӬ machine_learningProperties of metric distancesPositivity, d(x,y) => 0 for all x, yd(x,y) = 0 iff x = ySymmetry, d(x,y) = d(y,x)Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z Properties of metric distancesPositivity, d(x,y) => 0 for all x, yd(x,y) = 0 iff x = ySymmetry, d(x,y) = d(y,x)[...] )0DXl  4H\p$8L`tAӬ I3I}zAӬ g33?aQAӬ 3&r9AӬ M1IAӬ 2(OAӬ I3I}zAӬ g33?aQAӬ 3&r9AӬ M1IAӬ 2(OAӬ  3&sAHAӬ 3J7AӬ 3W;AӬ 2uAӬ .aAӬ ,3?AӬ y3?rAӬ \3&nTAӬ u39_PAӬ 2z&AӬ 222.vAӬ 32EAӬ  2%OAӬ 63JtAӬ SG3R7AӬ 3AӬ  2 PAӬ G=2AӬ n2!AӬ m.H?AӬ c.H=AӬ U3I,KAӬ 363AӬ 3aAӬ [2gAӬ {.H6AӬ .HKwAӬ e2lAӬ i. AӬ w2!AӬ %2?AӬ U. IzAӬ ]'3&^WAӬ !=38AӬ !73'@AӬ ".k3?[ u(铚z ?i-AӪ聩AӬ compsci operating_systemsGoals of I/O software1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.3. Error handling. Errors should be handled as close to the hardware as possible6򡽲f E-AXǝAӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyWhy does the elephant's short-sightedness make so much studying hard? Because the elephant feels pleasure when we take a step towards the goal, but may not recognize all progress as the same goal. Easy-to-measure points may help motivate us, but also subject us to living by a cliche., without the upper layers ever knowing about them.4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.5. Buffering. The data coming off a device cannot be stored in the final destination.[...] Goals of I/O software1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.5. Buffering. The data coming off a device cannot be stored in the final destination.6. Managing shared versus dedicated devices. c泙Q ?_-Aө췝AӬ compsci operating_systemsFour ways of implementing sending on multicomputers[...]2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)3. Nonblocking send with interrupt (makes programming difficult)4. Copy on write (extra copy probably eventually needed) Four ways of implementing sending on multicomputers1. Blocking send (CPU idle during message transmission)2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)3. Nonblocking send with interrupt (makes programming difficult)4. Copy on write (extra copy probably eventually needed) mӍ --Aӏ9XAӬ machine_learningProperties of metric distancesPositivity, d(x,y) => 0 for all x, yd(x,y) = 0 iff x = ySymmetry, d(x,y) = d(y,x)Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z Properties of metric distances[...]d(x,y) = 0 iff x = ySymmetry, d(x,y) = d(y,x)Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, zcⓙ9 ?_-AӨYG AӬ compsci operating_systems(Dis)advantages of physical dumps1. Simplicity, the program can be made pretty much bug free.2. Speed, the process can run at the speed of the disk.3. The process cannot skip selected directories.4. The process cannot make incremental dumps.5. The process cannot restore individual files upon request. (Dis)advantages of physical dumps1. Simplicity, the program can be made pretty much bug free.[...]3. The process cannot skip selected directories.4. The process cannot make incremental dumps.5. The process cannot restore individual files upon request. 1򟓗ѤO - -AӤm#AӬ machine_learningReasons for overfitting[...]2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence. Reasons for overfitting1. Overfitting due to presence of noise. Incorrect training records may be generalized from.2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence. eeH ?9-AӨYAӬ compsci operating_systemsChecks made by the fsck file system checker1. Check that each disk block is either assigned to the free pool once, or to a file once.2. Check that if a file appears in n directories, then it has a link count of n. Checks made by the fsck file system checker[...]2. Check that if a file appears in n directories, then it has a link count of n. DD1 Ko-AӪ ?}AӬ compsci operating_systems linuxLinux scheduling is based on threads, and distinguishes three classes:1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).2. Real-time round robin.3. Timesharing.Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given. Linux scheduling is based on threads, and distinguishes three classes:1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).[...]3. Timesharing.Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given. 88 ?3-AөiAӬ compsci operating_systemsAn instruction that causes a trap if executed in user mode A privileged instructionBa -/-AUs$AӬ machine_learningThe definition of classification The task of learning a target function f that maps each attribute set x to one of the predefined class labels y.s񓕖u ?-AӠZ;dAӬ compsci operating_systemsSix operating system designs[...]2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.3. Microkernel. The operating system is s=R ?=-Aӧ54(AӬ compsci operating_systemsWhat is required for journaling file systems to work? The logged operations must be idempotent, e.g. "search the list of free blocks and add block n to it if it is not already present" as opposed to "add the freed blocks to the end of the free list" (they might already be there).plit up into small modules, only one of which runs in kernel mode.4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).5. Virtual machine. An operating system within an operating system.6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. Six operating system designs1. Monolithic. The entire operating system runs as a single program in kernel mode.2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).5. Virtual machine. An operating system within an operating system.6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. 2ݸP ?}-AӦ(AӬ compsci operating_systemsThe working set of a process The set of pages that a process is currently using (has used in the last k page references)kוT ?o-AӨY"AӬ compsci operating_systemsPhysical (copy/backup) dump A copy process that starts at block 0 of a disk, writes all the disk blocks onto the output tape in order, and stops when it has copied the last one.'r ?g-Aө5AӬ compsci operating_systemsModifying an operating system's source code so that instead of making hardware calls, it makes calls to a hypervisor program. Simplifies virtualization, as hardware instructions no longer need to be emulated in detail. Paravirtualization nn& ?'-AӠqVAӬ compsci operating_systemsWhen to make process scheduling decisions1. When a new process is created (run the parent process or the child process?).2. When a process exits.[...]4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).5. When a clock interrupt occurs. When to make process scheduling decisions1. When a new process is created (run the parent process or the child process?).2. When a process exits.3. When a process blocks.4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).5. When a clock interrupt occurs.   iv -}-AӤm=qAӬ machine_learningReasons for overfitting1. Overfitting due to presence of noise. Incorrect training records may be generalized from.2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence. Reasons for overfitting1. Overfitting due to presence of noise. Incorrect training records may be generalized from.2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.[...] rƳ߄E ?}-AӠ{AӬ compsci operating_systemsScheduling algorithm goals for batch systems (in addition to the normal ones):1. Throughput, maximize jobs per hour.2. Turnabout time, minimize time between submission and termination.3. CPU utilization, keep the CPU busy all the time. Scheduling algorithm goals for batch systems (in addition to the normal ones):[...]2. Turnabout time, minimize time between submission and termination.3. CPU utilization, keep the CPU busy all the time. vv°ΥO ?-AӠ|AӬ compsci operating_systemsWhen to make process scheduling decisions1. When a new process is created (run the parent process or the child process?).2. When a process exits.3. When a process blocks.4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).[...] When to make process scheduling decisions1. When a new process is created (run the parent process or the child process?).2. When a process exits.3. When a process blocks.4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).5. When a clock interrupt occurs. 22Cճ K-AӪvyAӬ compsci linux operating_systemsLinux dynamic priority adjustment* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.* CPU-hogging tasks are punished when they are preempted or their quantum expires.The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes. Linux dynamic priority adjustment* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.* CPU-hogging tasks are punished when they are preempted or their quantum expires.The maximum reward/penalty is -5/+5. This way, [...] X7 ?I-Aӧ^5AӬ compsci operating_systemsA drawback of hard linking. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. [...] A drawback of hard linking. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.Fhe access.5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.[...]7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. What happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. JJ/ӕ܍P ?w-AӠQAӬ compsci operating_systemsSystems relevant for whether to use (non)preemptive scheduling algorithms.1. Batch, may use nonpreemptive algorithms.2. Interactive, uses preemptive algorithms.3. Real time, may use nonpreemptive algorithms. Systems relevant for whether to use (non)preemptive scheduling algorithms.1. Batch, may use nonpreemptive algorithms.2. Interactive, uses preemptive algorithms.[...]eӘ ?c-AӦb+AӬ compsci operating_systemsWhat happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with tE } ')-AX悰!AӬ happiness_hypothesis jonathan_haidt persuasion positive_psychology psychologyWhy might we be blind to our own selfishness? Because cultivating a reputation for kind-heartedness is even better than true kind-heartedness.M I)-AӤl[tAӬ decision_tree machine_learningDisadvantages of decision tree induction1. Finding an optimal decision tree is an NP-complete problem.2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.3. Redundant attributes Iӕ ?%-AӠmg+AӬ compsci operating_systemsThe part of the operating system that keeps track of which parts of memory are in use, allocates memory to processes that need it, and deallocates it when they are done. The memory manager (of computers).may end up making a decision tree larger than necessary.4. A subtree might become replicated several times in a decision tree.5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive. Disadvantages of decision tree induction1. Finding an optimal decision tree is an NP-complete problem.2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.3. Redundant attributes may end up making a decision tree larger than necessary.4. A subtree might become replicated several times in a decision tree.[...]6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive. SշӚȬK ??-AӪĜAӬ compsci operating_systemsFunctions of device-independent I/O software1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.[...]4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by K> '+-AX33AӬ happiness_hypothesis jonathan_haidt persuasion positive_psychology psychologyHow does reciprocity build relationships? A relationship is built by a set of back-and-forth trades, with one person offering gifts, favors, attention or self-disclosure, and the other reciprocating in kind.one program at a time.5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units. Functions of device-independent I/O software1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.3. Error reporting. Errors are device-specific, but the framework for handling errors is general.4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.Mdest page in memory. Bad choice.4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good perforNmance, but expensive to implement.9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. Page replacement algorithms1. Optimal (theoretical). Remove the page that won't be used for the longest time.2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.3. First-In, First-Out. Remove the oldest page in memory. Bad choice.4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. 7 G7L틕 ]-AXcAӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyHow can the tit-for-tat strategy be seen is gossip? If we tell somebody about a person we both know, they feel a desire to reciprocate by sharing their own gossip. This gives each of us more information about the person in question..򓕯 ?u-AӠ ȴAӬ compsci operating_systemsA process that typically has long CPU bursts and infrequent I/O waits. The CPU-usage profile of a CPU-bound process.N ?5-Aӧq3EAӬ >N.3$AӬ >\2E8AӬ >.H4AӬ >ٿ3I_AӬ >O3AӬ ?=3&o;AӬ @I3uAӬ @3 }AӬ AaS3RAӬ AyM2 AӬ A2AӬ BY.H2tAӬ Bqa.H] AӬ Bˋ2AӬ Cu.Hd.AӬ C53?tAӬ D3cAӬ F3I'fAӬ F. 'AӬ G#2BAӬ G¹3IAӬ HQ3]AӬ H3?<^AӬ H3 n AӬ I3JrAӬ JY3?lDAӬ Jw3? possibly with different priority classes).3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).4. Shortest process first (process run time estimated by e.g. historical data).5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).6. Lottery scheduling (give processes a varying amount of lottery tickets).7. Fair-share scheduling (each user is allocated a share of the CPU). Scheduling algorithms used in interactive systems[...]2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).4. Shortest process first (process run time estimated by e.g. historical data).5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).6. Lottery scheduling (give processes a varying amount of lottery tickets).7. Fair-share scheduling (each user is allocated a share of the CPU). hhccMS-ATaxAӬ machine_learning math statisticsMinkowski distance? Minkowski.png Ӻ ?I-AӠui%AӬ compsci operating_systemsScheduling algorithms used in interactive systems1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).2. Priority scheduling (each process is assigned a priority, w 2} ?}-AөnAӬ compsci operating_systemsMultiprocessor operating system types1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions. Multiprocessor operating system types1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.[...] c೙@ ?_-Aө\)AӬ compsci operating_systems(Dis)advantages of a large page size on a DSM[...]2. False sharing. Two CPUs might both refer to different unrelated variables on the same page, unnecessarily sending the page back and forth. (Dis)advantages of a large page size on a DSM1. The startup time on a network transfer is pretty large, so sending 4096 bytes doesn't take that much longer than sending 1024 bytes. Reduces the number of needed transfers.2. False sharing. Two CPUs might both refer to different unrelated variables on the same page, unnecessarily sending the page back and forth. uu˳U ?-AӪEAӬ compsci operating_systemsRequirements for Rate Monotonic Scheduling1. Each periodic process must complete within its period.2. No process is dependent on any other process.3. Each process needs the same amount of CPU time on each burst.4. Any nonperiodic processes have no deadlines.5. Process preemption occurs instantly and with no overhead. Requirements for Rate Monotonic Scheduling1. Each periodic process must complete within its period.2. No process is dependent on any other process.3. Each process needs the same amount of CPU time on each burst.4. Any nonperiodic processes have no deadlines.[...] OӘ ?7-AӦ<{AӬ compsci operating_systemsThe structure of a generic page table entry1. The page frame number2. Present/absent bit3. Protection (read/write, execution)4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)5. Referenced bit6. Caching disabled bitNote: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses. The structure of a generic page table entry1. The page frame number2. Present/absent bit3. Protection (read/write, execution)4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)5. Referenced bit[...]Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.~til it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.[...] Modern Operating Systems: Memory management chapter summary1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. ,Ѐ ??-AӠ|AӬ compsci operating_systemsA scheduling algorithm that picks a process to run and just lets it run until it blocks or voluntarily releases the CPU. That is, the algorithm will not react to clock interrupts. A nonpreemptive scheduling algorithm.Zןy y-AX~z JAӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyWhat are some external conditions that affect your happiness? Noise, commuting, lack of control, shame, relationships.X듘𹟂 ?I-Aӧ.{AӬ compsci operating_systemsModern Operating Systems: Memory management chapter summary1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there un} ++JĽӘ ?--Aӧw`AӬ compsci operating_systemsTwo ways of sharing files1. Hard linking. Disk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.2. Symbolic linking. The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked. Two ways of sharing files1. Hard linking. Disk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.[...] ((M埳ʈ ?3-AӨk|AӬ compsci operating_systemsThree key characteristics of NUMA multiprocessors1. There is a single address space visible to all CPUs.2. Access to remote memory is via LOAD and STORE instructions.[...] Three key characteristics of NUMA multiprocessors1. There is a single address space visible to all CPUs.2. Access to remote memory is via LOAD and STORE instructions.3. Access to remote memory is slower than access to local memory. ӚH ?S-AӪ@AӬ compsci operating_systemsI/O software layers1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded. 3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.4. User-level I/O software. I/O libraries might e.g. format output. I/O software layers[...]2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded. 3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.4. User-level I/O software. I/O libraries might e.g. format output. rrӮ ?;-AӠj=qAӬ compsci operating_systemss = execve(name, argv, environp)(POSIX system call) Replace a process' core image. Parameters:name = name of the file to be executedargv = a pointer to the argument arrayenvironp = a pointer to the environment arraygӘ ?g-AӧvIAӬ compsci operating_systemsTwo ways of sharing files[...]2. Symbolic linking. The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked. Two ways of sharing files1. Hard linking. Disk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.2. Symbolic linking. The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked. ++Jҥ ?--AӦa=qAӬ compsci operating_systemsWhat does a paging system need to do when starting a new process?1. Determine the initial size of the program and data.2. Create a page table, allocating it memory and initializing it.3. Allocate space to the swap area on the disk.4. Initialize the swap area with program text and data.[...] What does a paging system need to do when starting a new process?1. Determine the initial size of the program and data.2. Create a page table, allocating it memory and initializing it.3. Allocate space to the swap area on the disk.4. Initialize the swap area with program text and data.5. Record information about the page table and swap area in the process table. ]]<椑 I-AUAӬ decision_tree machine_learningEither a potential outcome for each possible value, or group several together. "Single, married, divorced" can be split into {single, married, divorced} or e.g. {single},{married,divorced}. Decision tree attribute test conditions for nominal attributes?(ΓE ?i-AӦW65?AӬ compsci operating_systemsA page replacement algorithm that, upon process A triggering a page fault, removes the oldest page associated with any process. Causes the number of page frames assigned to each process to vary in time. A global page replacement algorithmߔ¬" IK-AU LjAӬ machine_learning visualizationStem and leaf plots Split values into groups, where each group contains values that are the same except for the last digit. The non-last digits become the stem, the rest become leaves. E.g. 35, 36, 42, 49, 51:3: 564: 295: 1uite robust to the presence of noise.5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. Benefits of decision tree induction1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.4. Decision tree algorithms are quite robust to the presence of noise.5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. B%BX u-AX`AӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyAs a mechanism to prevent cheaters. Why do we feel resentment and vengefulness if people fail to repay their favors?H8 I-AӤlrAӬ decision_tree machine_learningBenefits of decision tree induction1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).[...]4. Decision tree algorithms are q about them.4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.5. Buffering. The data coming off a device cannot be stored in the final destination.6. Managing shared versus dedicated devices. Goals of I/O software1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.5. Buffering. The data coming off a device cannot be stored in the final destination.6. Managing shared versus dedicated devices.  ?%-AӦa33AӬ compsci operating_systemsWhat does a paging system need to do when a process is scheduled for execution?1. Reset the MMU and flush the TLB.[...]3. Optionally, bring some of the process' pages into memory. What does a paging system need to do when a process is scheduled for execution?1. Reset the MMU and flush the TLB.2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).3. Optionally, bring some of the process' pages into memory.V󚦊_ ?E-AӪd9XAӬ compsci operating_systemsGoals of I/O software1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.[...]3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing "} ?]-AӦFAӬ compsci operating_systemsA page frame (in the context of operating systems) A unit in physical memory that corresponds to a page.#ɓu ?_-AӦb}tAӬ compsci operating_systemsWhat happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, or if one doesn't exist,~ϼ; ?-AӨY?}AӬ compsci operating_systemsA copy process that starts at one or more specified directories and recursively dumps all files and directories found there that have changed since some given base date. Logical (copy/backup) dump the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. What happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.[...]6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. 9ީӕ ?U-AӠm;AӬ compsci operating_systemsScheduling algorithms used in batch systems[...]2. Shortest job first.3. Shortest remaining time next. Scheduling algorithms used in batch systems1. First-come, first-served.2. Shortest job first.3. Shortest remaining time next.<ت ?-Aӧ}TAӬ compsci operating_systemsSymbolic linking The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked. t ?-AӠ'KAӬ compsci operating_systemsReasons to use threads.1. An application may want to do many things at once.2. Threads are faster to create and destroy than processes.[...]4. Threads share access to the same data area, unlike processes.5. Threads are useful on systems with multiple CPUs, where real parallellism is possible. Reasons to use threads.1. An application may want to do many things at once.2. Threads are faster to create and destroy than processes.3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.4. Threads share access to the same data area, unlike processes.5. Threads are useful on systems with multiple CPUs, where real parallellism is possible. ==}򡺋 ?-AX7;AӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyThe inner lawyer, the rose-colored mirror, naive realism, and the myth of pure evil. Our ever-judging minds give us constant flashes of approval or disapproval, along with the certainty that we are in the right. What are the four mechanisms that weave for us a web of significance?0 %-AX+AӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyWhat is an explanation for why we wish to reciprocate good deeds? It's a tit-for-tat strategy: act good to someone, then respond to his actions in kind. Co-operation helps even out variance in daily life. several times in a decision tree.5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive. Disadvantages of decision tree induction[...]2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.3. Redundant attributes may end up making a decision tree larger than necessary.4. A subtree might become replicated several times in a decision tree.5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive. XD:XOә ?7-AөMAӬ compsci operating_systemsProcessor allocation algorithms for load balancing[...]2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pickɗ. C-AXUXAӬ happiness_hypothesis jonathan_haidt positive_psychology psychology[$]H = S + C + V[/$]Where S is your biological set point, C is the conditions of your life, and V is the voluntary activities you do. The Happiness Formula)񳗤 Ia-AӤlAӬ decision_tree machine_learningDisadvantages of decision tree induction1. Finding an optimal decision tree is an NP-complete problem.2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.3. Redundant attributes may end up making a decision tree larger than necessary.4. A subtree might become replicated up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks. Processor allocation algorithms for load balancing1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks.ess.5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. What happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.[...]8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. :x΂ --AT>&AӬ machine_learning feature_subset_selection_blank.png feature_subset_selection (1).png 1f ?{-AӪvAӬ compsci operating_systemsRAID levels.0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.1. Mirrorkc ?o-AӦbuAӬ compsci operating_systemsWhat happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the accing with strips. Each primary disk has a backup disk.2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. RAID levels.0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.1. Mirroring with strips. Each primary disk has a backup disk.2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.[...]5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.lization error. General ways to combat overfitting / generalization error1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error. J줳 -?-AӤnȤzAӬ machine_learningGeneral ways to combat overfitting / generalization error1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.2. [...]3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the genera cꓘݣ ?_-Aӧ爓uAӬ compsci operating_systemsModern Operating Systems: Memory management chapter summary1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finiuד ?-AӪ 9AӬ compsci operating_systemsDisk arm scheduling algorithms1. First-Come, First-Served.[...]3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions. Disk arm scheduling algorithms1. First-Come, First-Served.2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.shes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. Modern Operating Systems: Memory management chapter summary1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.[...]4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. 'ә^ ?g-AөFyAӬ compsci operating_systemsAffinity scheduling A scheduling scheme that takes into account the fact that, if thread A has run a long time on CPU K, K's cache will be full of A's blocks. Tries to schedule a thread on the same CPU as the one it ran on the last time. AӘ ?-AӦ7AӬ compsci operating_systemsThe structure of a generic page table entry1. The page frame number2. Present/absent bit3. Protection (read/write, execution)4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)5. Referenced bit6. Caching disabled bitNote: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses. The structure of a generic page table entry1. The page frame number2. Present/absent bit[...]4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)5. Referenced bit6. Caching disabled bitNote: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses. f򘓚r KY-AӪmAӬ compsci operating_systems linuxLinux scheduling is based on threads, and distinguishes three classes:[...]2. Real-time round robin.3. Timesharing.Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given. Linux scheduling is based on threads, and distinguishes three classes:1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).2. Real-time round robin.3. Timesharing.Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given. )0DXl  4H\p$8L`tAӬ JS3ItAӬ Ko3IpAӬ Ks3ItFAӬ Ko. CpAӬ L. /AӬ JS3ItAӬ Ko3IpAӬ Ks3ItFAӬ Ko. CpAӬ L. /AӬ L 3I_AӬ M:3IEAӬ MQ3?pVAӬ N 3'"AӬ N3뤓AӬ N2ZSAӬ Ou. *AӬ O+.y[AӬ O3x`AӬ P'3I,AӬ P93AӬ P3ZčAӬ QH3)AӬ Qx. RAӬ Q.6+AӬ Qq3AӬ R3?/.AӬ RDe2$YAӬ R3?1AAӬ SVE2UjAӬ SW3#AӬ T. ;AӬ V)2AӬ V3?HeAӬ W'3 AӬ W3|AӬ W3I AӬ Xo3 PAӬ Y-3&AӬ YG.Hp*AӬ Z .AӬ Z2NAӬ Z+2<AӬ Z3AӬ [3IiAӬ [I3 kS 44 ?--AөcՁAӬ compsci operating_systemsA sensitive instruction An instruction that may only be executed in kernel mode.,D ?q-Aө}hAӬ compsci operating_systemsRPC implementation issues1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.[...]3. It is not always possible to determine the types of the parameters.4. Global variables cannot be used, unless they are moved to the remote machine. RPC implementation issues1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.2. In some languages, the client stub cannot determine the size of the parameters.3. It is not always possible to determine the types of the parameters.4. Global variables cannot be used, unless they are moved to the remote machine. jj 󚪶 K#-AӪZAӬ compsci operating_systems linuxThe layers of a Linux system1. Standard utility programs (shell, editors, compilers)2. Standard library (open, close, read, write, fork...)3. Linux operating system4. Hardware The layers of a Linux system1. Standard utility programs (shell, editors, compilers)2. Standard library (open, close, read, write, fork...)[...]4. Hardware e ?c-AӪ^AӬ compsci operating_systemsI/O buffering alternatives1. Unbuffered input. User process has to be started up for every incoming character.2. Buffering in user space. What if the buffer is paged out when a character arrives?[...]4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used. I/O buffering alternatives1. Unbuffered input. User process has to be started up for every incoming character.2. Buffering in user space. What if the buffer is paged out when a character arrives?3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.  7'-ATb AӬ machine_learning mathHow to transform values to the range [0, 1]? s' = (s - min_s)/(max_s - min_s):Ƨ ? -AӪ!AӬ compsci operating_systemsCycle stealing E.g. a DMA controller requesting the bus one word at a time, taking bus cycle from the CPU every once in a while.Ӛ ?;-AӪ1'AӬ compsci operating_systemsI/O communication techniques1. Programmed IO. CPU continuously studies the control registers in a loop.2. Interrupt-driven IO. Controller makes an interrupt when ready.3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready. I/O communication techniques[...]2. Interrupt-driven IO. Controller makes an interrupt when ready.3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready. xᓚϥ_ ? -AӪݒAӬ compsci operating_systemsRAID levels.0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.1. Mirroring with strips. Each primary disk has a backup disk.2. Bits with Hammi+߶ --AT AӬ machine_learningTwo unsupervised discretization approaches Equal width takes a number n and splits the attribute into n same-width intervals. Can be badly affected by outliers. Equal frequency (equal depth) tries to put the same number of objects into each interval.ng code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. RAID levels.[...]1. Mirroring with strips. Each primary disk has a backup disk.2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. hh 󚧦ū ?3-AӪcƨAӬ compsci operating_systemsRequirements for Rate Monotonic Scheduling1. Each periodic process must complete within its period.2. No process is dependent on any other process.3. Each process needs the same amount of CPU time on each burst.[...]5. Process preemption occurs instantly and with no overhead. Requirements for Rate Monotonic Scheduling1. Each periodic process must complete within its period.2. No process is dependent on any other process.3. Each process needs the same amount of CPU time on each burst.4. Any nonperiodic processes have no deadlines.5. Process preemption occurs instantly and with no overhead. ꓙV ?U-Aө+AӬ compsci operating_systemsMotivations for virtual machines1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.2. Cost reduction. Fewer physical machines means lower hardware and energy costs.3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.4. Running legacy systems.5. Software development. A program can be tried on several operating systems. Motivations for virtual machines[...]2. Cost reduction. Fewer physical machines means lower hardware and energy costs.3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.4. Running legacy systems.5. Software development. A program can be tried on several operating systems. }פ ?I-AӦFAӬ compsci operating_systemsThe address space of a process. The set of addresses that a process can use to address memory.x" ? -AӨlHAӬ compsci operating_systemsBus-based UMA multiprocessors1. Only one CPU can access memory at a time. If line is busy, requesting CPU must wait.[...] Bus-based UMA multiprocessors1. Only one CPU can access memory at a time. If line is busy, requesting CPU must wait.2. Internal cache reduces the memory accesses. Needs a cache-coherence protocol. 7襲[ C-AU֗wAӬ machine_learning statisticsDefine p as a percentage between 0 and 100, and compute a mean that has the top (p/2)% of the data thrown out. Trimmed meanS -Q-AT|/AӬ machine_learningFeature construction E.g. we have various artifacts made of various materials. A 'density = mass / volume' feature could be used to help classify their materials.8󕬞S ? -AӠsuAӬ compsci operating_systemsAdvantages of implementing threads in user space:1. Thread switches can be made without kernel calls, which can be very fast.[...]3. Better scaling, as threads don't need to be stored in the kernel. Advantages of implementing threads in user space:1. Thread switches can be made without kernel calls, which can be very fast.2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)3. Better scaling, as threads don't need to be stored in the kernel. o` ?w-Aӧ(AӬ compsci operating_systems(Dis)advantages of policy/mechanism separation within an OS1. More modular code and greater flexibility.2. Extra overhead from crossing the user-kernel boundary.3. Extra overhead from sending various messages between pieces of the system. (Dis)advantages of policy/mechanism separation within an OS[...]2. Extra overhead from crossing the user-kernel boundary.3. Extra overhead from sending various messages between pieces of the system. --H, ?)-AӪs"AӬ compsci operating_systemsDisk arm scheduling algorithms1. First-Come, First-Served.2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.[...] Disk arm scheduling algorithms1. First-Come, First-Served.2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions. č ?W-AӦ[SAӬ compsci operating_systemsShared libraries Library files that, once loaded, can be used by several different processes. When a program is linked with shared libraries, the linker includes a small stub routine that binds to the called function at run time.#Ә ?_-AӦW`BAӬ compsci operating_systemsMeasure the number of page faults that a process has recently generated. Assign it more pages if it produces too many page faults, and assign it less pages if it produces very few page faults. The Page Fault Frequency (PFF) algorithm ?(?^޲+ IK-AUAӬ decision_tree machine_learningDecision tree attribute test conditions for continuous attributes? Binary or multiway splits, using comparison tests (A < v) or range queries (vi <= A < vi+1)._ޑ𩤄 -i-AT9AӬ machine_learningProperties of metric distances Positivity: d(x,y) => 0 for all x, yd(x,y) = 0 iff x = ySymmetry: d(x,y) = d(y,x)Triangle inequality: d(x,z) <= d(x,y) + d(y,z) for all x, y, zcқ ?_-AӧvAӬ compsci operating_systems(Dis)advantages of policy/mechanism separation within an OS1. More modular code and greater flexibility.[...]3. Extra overhead from sending various messages between pieces of the system. (Dis)advantages of policy/mechanism separation within an OS1. More modular code and greater flexibility.2. Extra overhead from crossing the user-kernel boundary.3. Extra overhead from sending various messages between pieces of the system.pped out to disk. Free space can be kept track of with a bitmap or hole list.3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. Modern Operating Systems: Memory management chapter summary1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. tӗ Iw-AӤl`AӬ decision_tree machine_learningAn oblique decision tree (An often computationally expensive) decision tree that allows test conditions involving more than one attribute, such as the test condition[$]x + y < 1[/$]?ވ. ?-AөGAӬ compsci operating_systemsSpinning vs. switching Wait for a resource that's been locked (by another CPU) to become free, or load another process? (terminology) ?)-Aӧ⾗AӬ compsci operating_systemsModern Operating Systems: Memory management chapter summary[...]2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swa ӕj ?9-AӠnAӬ compsci operating_systemsSkeleton of what the lowest level of the oper^A ?U-AөT;dAӬ compsci operating_systemsVirtualization types1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware. Virtualization types1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.[...]3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.ating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.2. Hardware loads new program counter from interrupt vector.3. Assembly language procedure saves registers (typically to the process table).4. Assembly language procedure sets up new stack.5. C interrupt service runs (typically reads and buffers input).6. Scheduler decides what process to run next.7. Assembly language procedure starts up new current process. Skeleton of what the lowest level of the operating system does when an interrupt occurs.[...]2. Hardware loads new program counter from interrupt vector.3. Assembly language procedure saves registers (typically to the process table).4. Assembly language procedure sets up new stack.5. C interrupt service runs (typically reads and buffers input).6. Scheduler decides what process to run next.7. Assembly language procedure starts up new current process. ; -7-ATe`BAӬ machine_learningBefore data mining, features are selected using some approach independent of the data mining task. E.g. selecting sets of attributes with a low pairwise correlation. The filter approach to feature subset selectionw# ?-Aӧ?6AӬ compsci operating_systemsRequirements for long-term information storage1. It must be possible to store a very large amount of information2. The information must survive the termination of the process using it[...] Requirements for long-term information storage1. It must be possible to store a very large amount of information2. The information must survive the termination of the process using it3. Multiple processes must be able to access the information concurrently or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.[...] What happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution.  Г ?--AӦb$Aecompsci operating_systemsWhat happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, bӕ ?]-AӠsAӵ}A%compsci operating_systemsAdvantages of implementing threads in user space:[...]2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)3. Better scaling, as threads don't need to be stored in the kernel. Advantages of implementing threads in user space:1. Thread switches can be made without kernel calls, which can be very fast.2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)3. Better scaling, as threads don't need to be stored in the kernel.niques on many simple data sets.[...]5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. Benefits of decision tree induction1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.4. Decision tree algorithms are quite robust to the presence of noise.5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. 哗 I1-AӤlutAӬ decision_tree machine_learningBenefits of decision tree induction1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification tech i WS-AʸCAʸ?}being_no-one consciousness psychologyThree ways by which mental representations are internal.[...]2. Functional. The properties making the state available for conscious experience are only realized by a single person.3. Physical. The states exist physically within the organism. Three ways by which mental representations are internal.1. Phenomenal. The states are phenomenally experienced as "internal".2. Functional. The properties making the state available for conscious experience are only realized by a single person.3. Physical. The states exist physically within the organism. $L$󘜙 ?S-AӦW&/AӬ compsci operating_systemsA page replacement algorithm that, upon process A triggering a page fault, removes the oldest page associated with process A. Effectively allocates each process a fixed fraction of the memory. A local page replacement algorithm)e ?k-AөcAӬ compsci operating_systemsGang scheduling[...]2. All members of a gang run simultaneously, on different timeshared CPUs.3. All gang members start and end their time slices together. Gang scheduling1. Groups of related threads are scheduled as a unit, a gang.2. All members of a gang run simultaneously, on different timeshared CPUs.3. All gang members start and end their time slices together. ?󚦯 ?-AӪ1'AӬ compsci operating_systemsDevice driver general structure1. Check the ip㹓 ?y-AӦC33AӬ compsci operating_systemsPage tables for large memories[...]2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.) Page tables for large memories1. Multilevel page tables.2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.)nput parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.2. Check if the device is already in use. If not, possibly switch it on.3. Control the device. Determine the command sequence and write to the device registers.4. Possibly block, waiting for the device to finish completing the commands.[...] Device driver general structure1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.2. Check if the device is already in use. If not, possibly switch it on.3. Control the device. Determine the command sequence and write to the device registers.4. Possibly block, waiting for the device to finish completing the commands.5. Check for errors, then pass on the data and some status information. %U%%ә ?c-AӨZEAӬ compsci operating_systemsA strategy of pre-emptively reading block k + 1 of a file into the cache if block k is read. The OS can keep track of whether a file is being accessed sequentially or randomly to see whether this technique makes sense. Block race ahead З ?Y-AӧB<9XAӬ compsci operating_systems(Dis)advantages of contiguous file allocation1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.[...]3. Fragmentation. Deleting files leaves holes, leading to fragmentation. (Dis)advantages of contiguous file allocation1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.2. Good read performance. The entire file can be read from the disk in a single operation.3. Fragmentation. Deleting files leaves holes, leading to fragmentation. )N2)~ҝN ?-AӠmHAӬ compsci operating_systemsThe contents of a process on the operating system. An instance of an executing program, including the current values of the program counter, registers and variables. Thus, has its own virtual CPU. i-A\nRAӬ getting_stronger opponent-process physiology psychology self-helpIncreasing the intensity of stimulus exposure, increasing the duration of the stimulus, shortening the interstimulus interval. What strengthens the stimulus opponent process?'* -AX11'AӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyConspicious consumption is one where our relative position to others matters: inconspicious consumption is one where we buy things mostly for themselves. Inconspicious consumption often lets us spend more time with people (e.g. vacations), and makes us happier on the net. What is conspicious and inconspicious consumption? (0DXl  4H\p$8L`tAӬ `y3I1AӬ a(+.RgAӬ af22AӬ a3?i1AӬ a2AӬ b=%3JWjAӬ ]2:AӬ ]2jAӬ ^ 2AӬ ^c3IAӬ `3IpqAӬ `y3I1AӬ a(+.RgAӬ af22AӬ a3?i1AӬ a2AӬ b=%3JWjAӬ b2`AӬ c8/3AӬ c|2eAӬ d2 AӬ e-EAӬ eW!.AӬ eg2@AӬ f3-AӬ f3&~WAӬ g2!AӬ g0#27AӬ gD!3\AӬ h=O3IʺAӬ h2`AӬ i3AӬ ia?2%AӬ i3UAӬ j_.?AӬ j3IsAӬ j3IqAӬ kR3AӬ k 3AӬ k37FAӬ l/M.0AӬ l\2 mAӬ l72cAӬ l. iAӬ mg3ChAӬ m!3' !Y !a潓 ?[-AӪAӬ compsci operating_systemsTime required to read or write a disk block is determined by1. Seek time (the time to move the arm to the proper cylinder, dominating factor)2. Rotational delay (the time for the proper sector to rotate under the head)3. Actual data transfer time. Time required to read or write a disk block is determined by1. Seek time (the time to move the arm to the proper cylinder, dominating factor)[...]3. Actual data transfer time.5Ә ?-AӧgAӬ compsci operating_systemsModern Operating Systems: Memory management chapter summary1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, otheų -c-AӤk{AӬ machine_learningnew_value = a * old_value + b, where a and b are constants. Allowed transformations for interval attributesrs support multiprogramming.2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. Modern Operating Systems: Memory management chapter summary1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.[...]5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. CC2꩓S ?}-AӧCzAӬ compsci operating_systems(Dis)advantages of contiguous file allocation1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.2. Good read performance. The entire file can be read from the disk in a single operation.[...] (Dis)advantages of contiguous file allocation1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.2. Good read performance. The entire file can be read from the disk in a single operation.3. Fragmentation. Deleting files leaves holes, leading to fragmentation. Y( WQ-AʸcvAʸcrbeing_no-one consciousness psychologyMental Representation, Rep_M (S, X, Y).[...]- Y is an aspect of the current state of the world- X represents Y for S- X is a functionally internal system state- The intentional content of X can become available for introspective aƃD ?Q-AӧAӬ compsci operating_systemsOperations needed for file deletion in UNIX[...]2. Release the i-node to the pool of free i-nodes.3. Return all the disk blocks to the pool of free disk blocks. Operations needed for file deletion in UNIX1. Remove the file from its directory.2. Release the i-node to the pool of free i-nodes.3. Return all the disk blocks to the pool of free disk blocks.ttention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.- The intentional content of X can become globally available for the selective control of action. Mental Representation, Rep_M (S, X, Y).- S is an individual information-processing system- Y is an aspect of the current state of the world- X represents Y for S- X is a functionally internal system state- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.- The intentional content of X can become globally available for the selective control of action. 1ӕj ?{-AӠ׾wAӬ compsci operating_systemsA Process Control Block. An entry in the process control table, with all the information about some particular process.P: ?9-AӠ?|AӬ compsci operating_systemsWhen to make process scheduling decisions1. When a new process is created (run the parent process or the child process?).2. When a process exits.3. When a process blocks.4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).5. When a clock interrupt occurs. When to make process scheduling decisions[...]2. When a process exits.3. When a process blocks.4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).5. When a clock interrupt occurs. ݩr ?;-AөɨAӵƧcompsci operating_systemsTwo types of send and receive in multicomputers Blocking (the process is suspended while sending the message and waiting to receive one) or nonblocking (returns control to the caller as soon as the message is sent).N쳚 ?5-AӪ.{AӬ compsci operating_systems[$]U \leq n(2^{1/n}-1)[/$]Where n is the number of tasks. The upper CPU utilization which still guarantees that Rate Monotonic Scheduling will work.Jӕ ?--AӠonAӬ compsci operating_systemsA word-processing example of thread usage. There might be one thread interacting with the user, another thread handling changes (e.g. if a line is deleted on one page, all the subsequent pages have to be reformatted), and a third to save the document at regular intervals. vvQϓ ?;-AӪ>vAӬ compsci operating_systemsGoals of I/O software1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in aʄq ?O-AӪVAӬ compsci operating_systemsI/O communication techniques1. Programmed IO. CPU continuously studies the control registers in a loop.2. Interrupt-driven IO. Controller makes an interrupt when ready.3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready. I/O communication techniques1. Programmed IO. CPU continuously studies the control registers in a loop.[...]3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.ny way.[...]4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.5. Buffering. The data coming off a device cannot be stored in the final destination.6. Managing shared versus dedicated devices. Goals of I/O software1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.5. Buffering. The data coming off a device cannot be stored in the final destination.6. Managing shared versus dedicated devices. ww~ʅg C-AU _O\)AӬ machine_learning statisticsBox plot. Lower and upper ends of the box are [...], the middle line is [...], the tails are [...], and + marks represent [...]. Box plot. Lower and upper ends of the box are the 25th and 75th percentiles, the middle line is the 50th percentile, the tails are the 10th and 90th percentiles, and + marks represent outliers. yӗ --AӤm|AӬ machine_learningReasons for overfitting1. Overfitting due to presence of noise. Incorrect training records may be generalized from.2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence. Reasons for overfitting1. Overfitting due to presence of noise. Incorrect training records may be generalized from.[...]3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.CS`mz #0=JWdq~F9,vi\OB5(׊ϩ&Š9Ͳ瓚wΟ󙞞βә޳򸴖Ӛ/ԯ膦Ә4췻ӘoOrē綪ҕ涗m᳘ߵ󚦤ܵӚs۴Uڴا˯ش󕗕`Գ̄7ӲⓕҲEѱ΅бÕ`ϰӕΰәұ̰ӗӘ 򘓚r󚪶ᓚϥ_󚧦ūꓙVפ襲[`,č޲+ӗӕj;Гӕ哗󘜙󚦯 әҝN潓ĭ꩓SŮǮӕjȯݩrɰϓ˰ʅg `әұ ?Y-Aө|/AӬ compsci operating_systemsRPC implementation issues1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.2. In some languages, the client stub cannot determine the size of the parameters.3. It is not always possible to determine the types of the parameters.4. Global variables cannot be used, unless they are moved to the remote machine. RPC implementation issues[...]2. In some languages, the client stub cannot determine the size of the parameters.3. It is not always possible to determine the types of the parameters.4. Global variables cannot be used, unless they are moved to the remote machine. Iӕ ?+-AӠ\AӬ compsci operating_systemspid = waitpid(pid, &statloc, options)(POSIX system call) Wait for a child process to terminate. Parameters:pid = the child to wait for, or -1 for any&statloc = set this address to the child's exit status (normal or abnormal termination, exit value)options = other options .Õ` ?u-AӠ'MAӬ compsci operating_systemsThe CPU-usage profile of an I/O-bound process. A process that typically has short CPU bursts and frequent I/O waits.Ӛj KG-AӪ{SAӬ compsci linux operating_systemsLinux dynamic priority adjustment* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.* CPU-hogging tasks are punished when they are preempted or their quantum expires.The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes. Linux dynamic priority adjustment* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.* CPU-hogging tasks are punished when they are preempted or their quantum expires.The maximum reward/penalty is [...]. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes. TT!΅ ?[-AӧF+AӬ compsci operating_systemsBenefits of segmentation1. Different segments may grow or shrink in size independently without affecting each other.[...]3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.4. Different segments can have different kinds of protection, such as execute only or read-write only. Benefits of segmentation1. Different segments may grow or shrink in size independently without affecting each other.2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.4. Different segments can have different kinds of protection, such as execute only or read-write only. sqGsIE -=-ARzAӬ machine_learningHow is precision defined, and how is it often measured? As the closeness of repeated measurements to one other. Often measured using standard deviation.c˳ WG-Aʹ6Aʹ8being_no-one consciousness psychologyWhat you subjectively perceive as an integrated object is being constituted by a neural process, [...]. What you subjectively perceive as an integrated object is being constituted by a neural process, which constructs a stable, coherent content and thereby deletes its own temporality.1 - -AӤkAӬ machine_learningAny way of changing the values in a way that preserves their order is a permitted transformation for this attribute type Ordinalߕe ?!-AӠÙAӬ compsci operating_systemspid = fork()(POSIX system call) Create a child process identical to parent ⓕ ?)-AӠmAӬ compsci operating_systemsWhen to make process scheduling decisions1. When a new process is created (run the parent process or the child process?).[...]3. When a process blocks.4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).5. When a clock interrupt occurs. When to make process scheduling decisions1. When a new process is created (run the parent process or the child process?).2. When a process exits.3. When a process blocks.4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).5. When a clock interrupt occurs.] -A\ MAӬ getting_stronger opponent-process physiology psychology self-helpPrimary process A activates, then the more sluggish opponent process B activates to counter A. The opponent-process theory xE&̄7 ?e-AӠp&RAӬ compsci operating_systemsA dispatcher/worker model for e.g. a web server. The dispatcher thread waits for incoming requests, and upon receiving one, wakes a worker thread and tasks it with carrying out the request. Then the dispatcher resumes its infinite loop.Sӗ I5-AӤlAӬ decision_tree machine_learningDisadvantages of decision tree induction1. Finding an optimal decision tree is an NP-complete problem.[...]3. Redundant attributes may end up making a decision tree larger than necessary.4. A subtree might become replicated several times in a decision tree.5. Data fragmentation pՁBÓח ?-AӨZAӬ compsci operating_systemsLRU (page replacement algorithm) Mark each page with a counter indicating when it was last used, then remove the oldest one when needed.~ -'-ARBAӬ machine_learningMode, entropy, chi squared test. Meaningful operations on nominal attributes?roblem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive. Disadvantages of decision tree induction1. Finding an optimal decision tree is an NP-complete problem.2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.3. Redundant attributes may end up making a decision tree larger than necessary.4. A subtree might become replicated several times in a decision tree.5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive. free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.[...]10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. What happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. vdv[󕗕` ?O-AӠ`|(AӬ compsci operating_systemsSix operating system designs1. Monolithic. The entire operating system runs as a single program in kernel mode.2. Layered. The operating system is organized in a hieف󚧕 ?'-AӪ[rAӬ compsci operating_systemsDynamic scheduling Modifying the priorities of different processes on the flysф ?-AӦbAӬ compsci operating_systemsWhat happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. Ararchy of layers, each one constructed upon the one below it.[...]4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).5. Virtual machine. An operating system within an operating system.6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. Six operating system designs1. Monolithic. The entire operating system runs as a single program in kernel mode.2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).5. Virtual machine. An operating system within an operating system.6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. (Nا˯ I+-AӤm JAӬ decision_tree machine_learningIn machine learning, creating new attributes that are composites of two or more attributes. Helps e.g. decision trees classifiers to correctly classify data into nonrectangular regions, but may introduce redundancy in the data. In machine learning, constructive inductionMIJӘ ?3-AӦWx\)AӬ compsci operating_systemsWhy might a local page replacement algorithm work badly?1. If the working set grows, thrashing will result, even if there are plenty of free page frames.[...] Why might a local page replacement algorithm work badly?1. If the working set grows, thrashing will result, even if there are plenty of free page frames.2. If the working set shrinks, memory that could be allocated to other processes is wasted. ww~U ?-AӧtnAӬ compsci operating_systems(Dis)advantages of linked list file allocation1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two. (Dis)advantages of linked list file allocation1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.[...]3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.  : :Ӛs ? -AӪ)AӬ compsci operating_systemsDevice driver general structure1. Check the iފ3 Wg-Aʸa=qAʸa?}being_no-one consciousness psychology[...]- S is an individual information-processing system- Y is an aspect of the current state of the world- X represents Y for S- X is a functionally internal system state- The intentional content of X can become available for introspective ak?Ig-AUAAӬ machine_learning visualization ParCoordinates (1).png Parallel coordinates; ?-AӠt֧At(compsci operating_systemsA pop-up thread. A thread that is created to e.g. handle a new incoming message, instead of letting an existing thread handle it.ttention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.- The intentional content of X can become globally available for the selective control of action. Mental Representation, Rep_M (S, X, Y).- S is an individual information-processing system- Y is an aspect of the current state of the world- X represents Y for S- X is a functionally internal system state- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.- The intentional content of X can become globally available for the selective control of action.nput parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.2. Check if the device is already in use. If not, possibly switch it on.3. Control the device. Determine the command sequence and write to the device registers.[...]5. Check for errors, then pass on the data and some status information. Device driver general structure1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.2. Check if the device is already in use. If not, possibly switch it on.3. Control the device. Determine the command sequence and write to the device registers.4. Possibly block, waiting for the device to finish completing the commands.5. Check for errors, then pass on the data and some status information. 7󚦤 ?-AӪAӬ compsci operating_systemsI/O software layers1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded. 3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.[...] I/O software layers1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded. 3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.4. User-level I/O software. I/O libraries might e.g. format output. $0Xl  4H\p$8L`tD08L`tAӬ }=K2&AӬ rƥ3?D|AӬ rC3&AӬ r2NAӬ t"3YAӬ t>. lAӬ t.HAӬ v2 AӬ wu2 vAӬ w83'*AӬ 2xAӬ C3׊AӬ m2@rAӬ m3IpOAӬ nm3(oAӬ o3]4AӬ o3ItAӬ p2^AӬ p2/AӬ pе3J:/AӬ q2NAӬ q3IAӬ r3?[AӬ rƥ3?D|AӬ rC3&AӬ r2NAӬ t"3YAӬ t>. lAӬ t.HAӬ v2 AӬ wu2 vAӬ w83'*AӬ xG.>AӬ x93J>wAӬ x3I/AӬ yk. PAӬ y=3?\AӬ z(m.AӬ zx3 nAӬ {.9AӬ |r. NtAӬ }=K2&AӬ ~3bAӵƧ_uI3?`rAӵ}A%U-2AeUV3ôaking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow. Memory management algorithms for finding an n-sized hole from a list of processes and holes1. First fit. Scan the list of segments until a large enough hole is found.2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.[...]5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow. E=Em᳘ ?s-AӦ棕AӬ compsci operating_systemsA linked list of nodes with e.g. the following contents:Type - Process or holeStart - Starting memory addressLength - Length of process or hole Memory management with linked lists0 ?y-AӦImAӬ compsci operating_systemsMemory management algorithms for finding an n-sized hole from a list of processes and holes1. First fit. Scan the list of segments until a large enough hole is found.2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.3. Best fit. Search the whole list, t, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.3. First-In, First-Out. Remove the oldest page in memory. Bad choice.4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. Page replacement algorithms1. Optimal (theoretical). Remove the page that won't be used for the longest time.2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.3. First-In, First-Out. Remove the oldest page in memory. Bad choice.[...]5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. m ?A-AӠni(AӬ compsci operating_systemsThe three possible states of a process.1. Running (actually using the CPU).[...]3. Blocked (unable to run until some external event happens). The three possible states of a process.1. Running (actually using the CPU).2. Ready (runnable; temporarily stopped to let another process run).3. Blocked (unable to run until some external event happens).[ IE-AUy-AӬ decision_tree machine_learning1) How should the training records be split?2) How should the splitting procedure stop? Two issues that a decision tree learning algorithm needs to address.JӘƣ ?--AӦ(jxAӬ compsci operating_systemsPage replacement algorithms1. Optimal (theoretical). Remove the page that won't be used for the longest time.2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00 fAfPҕ -K-ATbAӬ machine_learningCosine Similarity (x d y)/(||x|| ||y||)where d = dot product, ||x|| = length of xGeometrically, the angle between x and y: 1 is 0 degrees and 0 and 90 degrees.4c ?-AӠng 33AӬ compsci operating_systemsThe three possible states of a process.[...]2. Ready (runnable; temporarily stopped to let another process run).3. Blocked (unable to run until some external event happens). The three possible states of a process.1. Running (actually using the CPU).2. Ready (runnable; temporarily stopped to let another process run).3. Blocked (unable to run until some external event happens). huhē ?-AӨko|1AӬ compsci operating_systemsA multiprocessor where the access time to a memory location is independent of which processor makes the request or which memory chip contains the transferred data. Uniform Memory Access multiprocessor󘝆 ?-AӦZVAӬ compsci operating_systemsAdvantages of a small page size1. Reduces the amount of data wasted due to internal fragmentation.[...] Advantages of a small page size1. Reduces the amount of data wasted due to internal fragmentation.2. A smaller portion of a program can be loaded at a time, which saves memory if only a small part of the program is in use. YY/r ?w-AӠn/AӬ compsci operating_systemsSkeleton of what the lowest level of the oper&𣳚 ?e-AӪDAӬ compsci operating_systemsDisk arm scheduling algorithms1. First-Come, First-Served.2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions. Disk arm scheduling algorithms[...]2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.ating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.2. Hardware loads new program counter from interrupt vector.3. Assembly language procedure saves registers (typically to the process table).4. Assembly language procedure sets up new stack.5. C interrupt service runs (typically reads and buffers input).6. Scheduler decides what process to run next.7. Assembly language procedure starts up new current process. Skeleton of what the lowest level of the operating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.2. Hardware loads new program counter from interrupt vector.3. Assembly language procedure saves registers (typically to the process table).[...]5. C interrupt service runs (typically reads and buffers input).6. Scheduler decides what process to run next.7. Assembly language procedure starts up new current process. iO ?k-AӪUAӬ compsci operating_systemsDMA steps1. CPU programs the DMA controller via special registers.2. DMA controller requests device controller to move data to memory.3. Device controller begins transferring data to memory.4. Disk controller sends an acknowledgement to DMA controller.5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.6. DMA controller interrupts the CPU to signal a finished task. DMA steps[...]2. DMA controller requests device controller to move data to memory.3. Device controller begins transferring data to memory.4. Disk controller sends an acknowledgement to DMA controller.5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.6. DMA controller interrupts the CPU to signal a finished task. aӘo ?[-AӦaeAӬ compsci operating_systemsWhat does a paging system need to do when starting a new process?1. Determine the initial size of the program and data.2. Create a page table, allocating it memory and initializing it.3. Allocate space to the swap area on the disk.4. Initialize the swap area with program text and data.5. Record information about the page table and swap area in the process table. What does a paging system need to do when starting a new process?1. Determine the initial size of the program and data.2. Create a page table, allocating it memory and initializing it.3. Allocate space to the swap area on the disk.[...]5. Record information about the page table and swap area in the process table.lacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. What happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.[...]3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.10. The operating system returns to the assembly language routine that called it.11. The routine reloads the registers and other state information and returns to user space to continue execution. 0Ә4 ?y-AӦbvȴAӬ compsci operating_systemsWhat happens on a page fault?1. Hardware traps the kernel, saving the program counter on the stack.2. Assembly code routine saves the registers and other volatile information.3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.4. The operating system checks whether the virtual address is valid and the protection consistent with the access.5. A free page is selected, or if one doesn't exist, the page rep ,膦 ?q-AӪM?}AӬ compsci operating_systemsDMA steps1. CPU programs the DMA controller via special registers.2. DMA controller requests device controller to move data to memory.3. Device controller begins transferring data to memory.4. Disk controller sends an acknowledgement to DMA controller.[...]6. DMA controller interrupts the CPU to signal a finished task. DMA steps1. CPU programs the DMA controller via special registers.2. DMA controller requests device controller to move data to memory.3. Device controller begins transferring data to memory.4. Disk controller sends an acknowledgement to DMA controller.5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.6. DMA controller interrupts the CPU to signal a finished task. ~~|ԯ ?-AӠ9AӬ compsci operating_systemsA scheduling algorithm that will let a process run for some maximum amount of time before switching to another process. Uses clock interrupts for this purpose. A preemptive scheduling algorithm.pӕޱ ?y-AӠn VAӬ compsci operating_systemsTypical ways for a process to terminate.1. Normal exit (voluntary).[...]3. Fatal error (involuntary).4. Killed by another process (involuntary). Typical ways for a process to terminate.1. Normal exit (voluntary).2. Error exit (voluntary).3. Fatal error (involuntary).4. Killed by another process (involuntary). %%PӚ/ K--AӪ^AӬ compsci linux operating_systemsLinux dynamic priority adjustment* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.* CPU-hogging tasks are punished when they are preempted or their quantum expires.The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes. Linux dynamic priority adjustment* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.[...]The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes. %t޳ ?-AӪ5?AӬ compsci operating_systemsRAID levels.0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.1. Mirroring with strips. Each primary disk has a backup disk.2. Bits with HPN ?9-AӠmՁAӬ compsci operating_systemsFour principal ways that causes processes to be created:1. System initialization.2. Execution of a process creation system call by a running process.[...]4. Initiation of a batch job. Four principal ways that causes processes to be created:1. System initialization.2. Execution of a process creation system call by a running process.3. A user request to initiate a new process.4. Initiation of a batch job.amming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. RAID levels.0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.1. Mirroring with strips. Each primary disk has a backup disk.2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.[...]4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. ә ?C-AөAӬ compsci operating_systemsType 1 hypervisor When a virtual machine program executes a privileged instruction, this component is trapped to process it (execute instruction if coming from the OS, emulate response if coming from user mode program).K W;-Aʹ-GAʹ-Mbeing_no-one consciousness psychologyWhat's the risk involved in talking about a "content of consciousness" or a content of a single phenomenal "representation"? It invokes the image of a static object, instead of a continuous representational process. ]β ?S-AӠ"AӬ compsci operating_systemsDisadvantages of implementing threads in usercȳܦ ?_-AӦv2~AӬ compsci operating_systemsSwapping (in the context of operating systems) Keeping each process in memory in its entirety, occasionally writing it back to the disk to make room for other processes.vә| ?-Aө2=qAӬ compsci operating_systemsBenefits of (multiprocessor) two-level scheduling1. Distributes the load evenly across the available CPUs.2. Advantage is taken of cache affinity when possible.3. By giving each CPU its own ready list, contention for the ready lists is minimized. Benefits of (multiprocessor) two-level scheduling1. Distributes the load evenly across the available CPUs.[...]3. By giving each CPU its own ready list, contention for the ready lists is minimized. space:1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.2. If a thread blocks due to a page fault, the whole process will again be blocked.3. Programmers generally want threads specifically in applications that block often.4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)5. Threads cannot take advantage of multiple processors. Disadvantages of implementing threads in user space:[...]2. If a thread blocks due to a page fault, the whole process will again be blocked.3. Programmers generally want threads specifically in applications that block often.4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)5. Threads cannot take advantage of multiple processors. ||, -AXAӬ happiness_hypothesis jonathan_haidt positive_psychology psychologyOur mental Like-O-Meter Everything we see triggers in us varying degrees of like or dislike. We also like our own name, which slightly biases us towards words and names that sound similar to our name.yө Ws-Aʸt9Aʸt !being_no-one consciousness psychologyMental Representation, Rep_M (S, X, Y).- S is an individual information-processing system- Y is an aspect of the current state of the world- X represents Y for S- X is a functionally VCC-ATiAӬ machine_learning statisticsCovariance Covariance.png Vؓ ?E-AӦ[0AAӬ compsci operating_systemsFunctions that are called by an object file or a library that the object file calls, but that are not present in the object file itself. Undefined externalsinternal system state- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.[...] Mental Representation, Rep_M (S, X, Y).- S is an individual information-processing system- Y is an aspect of the current state of the world- X represents Y for S- X is a functionally internal system state- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.- The intentional content of X can become globally available for the selective control of action. pap Ο󙞞 ?Y-AӨk7LAӬ compsci operating_systemsA computer in which two or more CPUs share full access to a common RAM. (Shared memory) multiprocessor;ӕ΍v ?-AӠ{,AӬ compsci operating_systemsWhen to make process scheduling decisions1. When a new process is created (run the parent process or the child process?).2. When a process exits.3. When a process blocks.4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).5. When a clock interrupt occurs. When to make process scheduling decisions1. When a new process is created (run the parent process or the child process?).2. When a process exits.3. When a process blocks.[...]5. When a clock interrupt occurs. -S-AӤkjAAӬ machine_learningHardness of minerals, {good, better, best}, street numbers, grades. Examples of ordinal attributes. l瓚w Ke-AӪd/AӬ compsci linux operating_systemsThe layers of a Linux system[...]2. Standard library (open, close, read, write, fork...)3. Linux operating system4. Hardware The layers of a Linux system1. Standard utility programs (shell, editors, compilers)2. Standard library (open, close, read, write, fork...)3. Linux operating system4. Hardware_> -A\`AAӬ getting_stronger opponent-process physiology psychology self-helpIt intensifies, it starts earlier, and it decays more slowly. What happens to the opponent stimulus after many stimulations? --Ͳ -_-ATSAӬ machine_learning(Dis)similarity metrics for interval or ratio attributes? d = |x - y|s = -d, s = 1/(1 + d), s = e^(-d)...# ?_-AӪEAӬ compsci operating_systemsI/O software layers1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.[...] 3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.4. User-level I/O software. I/O libraries might e.g. format output. I/O software layers1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded. 3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.4. User-level I/O software. I/O libraries might e.g. format output.hs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.[...]3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks. Processor allocation algorithms for load balancing1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks. sŠ9C}-AU}KAӬ machine_learning statistics[$]{1 \over m-1} \sum_{i=1}^{m} (x_i - x)^2[/$] Variancean ?[-AӦJQAӬ compsci operating_systemsTwo major issues for any paging system:1. The mapping from virtual address to physical address must be fast.2. If the virtual address space is large, the page table will be large. Two major issues for any paging system:[...]2. If the virtual address space is large, the page table will be large.: I-AU ]-AӬ machine_learning visualizationColored matrices, parallel coordinates, star coordinates, Chernoff faces. Four ways of visualizing higher-dimensional data?,ә\ ?q-AөEAӬ compsci operating_systemsProcessor allocation algorithms for load balancing1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgrap ii$ϩ& ?a-AӠn,AӬ compsci operating_systemsSkeleton of what the lowest level of the operڲt -W-ATԓSAӬ machine_learningTransform the classes to a numbered scale starting at 0, then define the dissimilarity of x and y as d = |x - y|/(n - 1) where n is the number of classes. For similarity, s = 1 - d. (Dis)similarity metrics for ordinal attributes?ating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.[...]3. Assembly language procedure saves registers (typically to the process table).4. Assembly language procedure sets up new stack.5. C interrupt service runs (typically reads and buffers input).6. Scheduler decides what process to run next.7. Assembly language procedure starts up new current process. Skeleton of what the lowest level of the operating system does when an interrupt occurs.1. Hardware pushes the program counter etc. of the current process to the stack.2. Hardware loads new program counter from interrupt vector.3. Assembly language procedure saves registers (typically to the process table).4. Assembly language procedure sets up new stack.5. C interrupt service runs (typically reads and buffers input).6. Scheduler decides what process to run next.7. Assembly language procedure starts up new current process. 44H\p$8L`tAʸt5?|Aʸ푌Y5?|Aʸa?}jA5?|Aʸcr\5?AʸekF5?Aʸjt5?1Aʸl睲5?Aʸov'15?AʸrJn5?Aʸt !tE5?AʸV5?uAʸ!xw5?SAʹ8d[5?iAʹlZc5?Aʹ-Mr5?KAʹ/;d5?gAʺ 5?ڐAʻ93.@AʻK1ս3J`At(j92fAאĜ|m3Aܗ3Af33'k bb1׊ ?{-Aӧ\;AӬ compsci operating_systemsRandom access Reading may start at an arbitrary point, and may skip around the medium or read parts of it out of order.Wb ?G-AӦaAӬ compsci operating_systemsWhat does a paging system need to do when starting a new process?1. Determine the initial size of the program and data.[...]3. Allocate space to the swap area on the disk.4. Initialize the swap area with program text and data.5. Record information about the page table and swap area in the process table. What does a paging system need to do when starting a new process?1. Determine the initial size of the program and data.2. Create a page table, allocating it memory and initializing it.3. Allocate space to the swap area on the disk.4. Initialize the swap area with program text and data.5. Record information about the page table and swap area in the process table.ltiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).4. Shortest process first (process run time estimated by e.g. historical data).5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).6. Lottery scheduling (give processes a varying amount of lottery tickets).[...] Scheduling algorithms used in interactive systems1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).4. Shortest process first (process run time estimated by e.g. historical data).5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).6. Lottery scheduling (give processes a varying amount of lottery tickets).7. Fair-share scheduling (each user is allocated a share of the CPU). G߳ ?'-AӠIAӬ compsci operating_systemsScheduling algorithms used in interactive systems1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).3. Mu/span>
2. Dynamic. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 3 pages.3\C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. [...]3R8>
1. Phenomenal. The states are phenomenally experienced as "internal".
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
3. Physical. The states exist physically within the organism.&5?| _5O8}SG3R73-A drawback of hard linking. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. [...] !A3㠉3-Superblock܉lc3\3-Dynamic vs. static swap area allocation

[...]
2. Dynamic. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 3 pages.p̝Q ?}M. fQ-(number of matching presences)/(number of attributes not involved in 00 matches)
(1/6) =ә[33'3-Nonuniform Memory Access multiprocessor ߓ u5?|-Three ways by which mental representations are internal.

1. Phenomenal. The states are phenomenally experienced as "internal".
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
3. Physical. The states exist physically within the organism.nvert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
[...]P3I 9 S>.H4Š-As a mechanism to prevent cheaters.a󘜣E !>q3E-A page replacement algorithm that, upon process A triggering a page fault, removes the oldest page associated with any process. Causes the number of page frames assigned to each process to vary in time.EԞӚ iW3I 3-Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
[...] w.. =. *b-E.g. Fourier transforms.׆ %2-The CPU rapidly switching between various processes, running each for a small fraction of time before switching to the next one.U򡛮 b'.HM3-What is the general process for comparing ourselves to others?Rӕ;Mq23-s = execve(name, argv, environp)

(POSIX system call)Ә;]Z3N;3-The formula for the overhead per process due to the page table size and the internal fragmentation loss. RR*L&zi(Dis)zi(Dis)aL (Dis)advantages of a V!"Don't think about polar bears" creates a system to monitor whether we're thinking about polar bears in order to judge our success. But this monitoring by itself reminds us of the polar bears. J{.H3[(An often computationally expensive) decision tree that allows test conditions involving more than one attribute, such as the test condition

[$]x + y < 1[/$]!2$Y6a(Dis)advantages of a large page size on a DSM

1. The startup time on a network transfer is p.Q(Dis)advantages of a large page size on a DSM

1. The startup time on a network transfer is p6a(Dis)advantages of a large page size on a DSM

  (Dis)advantages of a large page size on a DSM

/S(Dis)advantages of a small block size for disk memory

1. Small files can be stored effective5 rL&RA pe%?(Dis)advantages of contiguous file allocation

1. Simple to imۃzi(Dis)advantages of contiguous file allocation

1. Simple to im(/S(Dis)advantages of a small block size for disk memory


#qW(Dis)advantages of contiguous file allocation

zi(Dis)advantages of contiguous file allocation

1. Simple to im%?(Dis)advantages of contiguous file allocation

1. Simple to imۃ7c(Dis)advantages of contiguous file allocation

1. Simple to imass is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
[...]
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).i92  ڧ- 23-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
[...]
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).tary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary).32 ..NՓ{G#2B3-General ways to combat overfitting / generalization error

[...]
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.DœÕaib2`3-The CPU-usage profile of an I/O-bound process.法 iط2ʠ-Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary).ight:600; color:#0000ff;">[...]

3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.3 S|Use a resubstitution estimate.
Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. [...]
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.2Bnt-weight:600;">1. Use a resubstitution estimate.
Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. [...]
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error. period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
[...]
5. Process preemption occurs instantly and with no overhead.3IE }2’әECJY3?lD3-RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
[...]
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.xūOM:3IE3-Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
[...]
5. Process preemption occurs instantly and with no overhead.d into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
[...]
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.K53?lE rL&U
1. Simplicity, the program can be made pretty much bug fre~q(Dis)advantages of linked list file allocation

1. No externalR(Dis)advantages of linked list file allocation


1. No externalO(Dis)advantages of linked list file allocation

1. No external(E(Dis)advantages of linked list file allocation

1. No external(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug freZO(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug fre(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug frehe type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.u2 q A?2-Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.-theoretic deterministic algorithm.
Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
[...]
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks. 3?] ;;:«]Sy=3?\3-Processor allocation algorithms for load balancing

1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
[...]
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks.triping.
No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.o3IE3 @@5¬3 I2C3IE3-RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.f milliseconds, special measures must be taken to ensure that they occur. (A process running an idle loop for 1000 ms might be idle for longer, as other processes are swapped into memory.)2m ¹ ad[5?i٠-What you subjectively perceive as an integrated object is being constituted by a neural process, which constructs a stable, coherent content and thereby deletes its own temporality.6µߓm Ke2l-If particular events must occur within a specified number of milliseconds, special measures must be taken to ensure that they occur. (A process running an idle loop for 1000 ms might be idle for longer, as other processes are swapped into memory.)pan style="font-weight:600; color:#0000ff;">which constructs a stable, coherent content and thereby deletes its own temporality
.5?i1. Simple to implement.
Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.
1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.nvert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
[...]
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.[3Iw D볚wg 3Iw3-Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
[...]
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information. continuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.3Ip 7Ìӓw333-Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
[...]>޳ᚘ [RY3Ip-I/O communication techniques

1. Programmed IO. CPU continuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.out affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
[...]23 $d$jÙ򡺋 3Bqa.H] -The inner lawyer, the rose-colored mirror, naive realism, and the myth of pure evil. Our ever-judging minds give us constant flashes of approval or disapproval, along with the certainty that we are in the right.@Ò󚦯s_j3Is3-Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
[...]
5. Check for errors, then pass on the data and some status information.\Î򡽲f?.H^f3-Why does the elephant's short-sightedness make so much studying hard?,Íވ/9R3?/.3-Spinning vs. switching ++rL&p-up thre(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug fre[+(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug fre(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug fre߂T(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug fre0(Dis)advantages of physical dumps

1. SimplicitւO(Dis)advantages of physical dumps

[...]?s(Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greaterwc(Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greaterV?s(Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greaternvert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
[...]
5. Check for errors, then pass on the data and some status information.J_3Is1. When a new process is created (run the parent process or the child process?).

2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.k2; U5vÞk K3Ik-Functions of device-independent I/O software

[...]
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions. Ú񓕯; ]2:-When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs. color:#0000ff;">[...]

3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.r[3I. Uniform interfacing for device drivers.
Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.x3Ik PdQHPNDecisi\-
1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units. dĄӘL '3NL-The page tables for the instruction address space and the data address space.Әs3s3-Properties of [...] distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z]Ғ󕯾 [2g-A process that typically has long CPU bursts and infrequent I/O waits.p哕޲?p2^3-Typical ways for a process to terminate.

1. Normal exit (voluntary).
[...]
3. Fatal error (involuntary).
4. Killed by another process (involuntary).y, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z3s]

2. Multicomputers. Message passing multiprocessor, access time in microseconds.
3. Distributed systems. Wide area distributed system, access time in milliseconds.S3'l ɳ 3It)-DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task./Īʳl=f33'k3-Three types of multiprocessor systems

[...]
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
3. Distributed systems. Wide area distributed system, access time in milliseconds.uests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.fK3It)ssage transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)ԩ3?d >^>LņJy-J3-What is an asymmetric attribute? (in machine learning)[ӕa23-pid = waitpid(pid, &statloc, options)

(POSIX system call)𨵾1 e. 1-Eliminate redundant and irrelevant attributes (e.g. student ID numbers) from the data before it's processed.L݄ w|r. Nt-Transform the classes to a numbered scale starting at 0, then define the dissimilarity of x and y as d = |x - y|/(n - 1) where n is the number of classes. For similarity, s = 1 - d.ȓ .3?d-Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed) kEy'C5Client (server) stubޤE3?g,*ICode that only uses relative offsets for jump instructions (as opposed to absolute ad@wCalendar dates, temperatures in Celsius or Fahrenheit2a/Character devices3I#;J Checks made by the fsck file system checker

1. CheckEsChecks made by the fsck file system checker

1. CheckÂJ Checks made by the fsck file system checker

fsck file system checker

u5Client (server) stubޤE3?g,*ICode that only uses relative offsets for jump instructions (as opposed to absolute addresses). Useful with e.g. programs taking advantage of shared libraries.3\ UColored matrices, parallel coordinates, star coordinates, Chernoff faces.7a.# -|0DXl|  4H\p$8L`t3'k\3'T2AV$)2AV%T2AV$~2AV$2avm2aPw3'Ks-3'L2#V 2#V2#V X2#V2aÅ2a3JxO3Jx3Jx$bc3Jx3s3s3sU3s13 3 13 63 j38ҧ38j38-E3893I{ 3I{93I{F73I{+3C 3C+3C1 3C1J'1J1J]|1J 3?: 3?: 3?: c3?:Dm3SME3SMDm3SMޖ3SM. .њ. .. .cw. .3'c3'3'k\3'ֻ3 S|3 S|ֻ3 S|W'3 S|Pw3'K<.'3'K2o1>k2o22o1A2o23ʐM333X2a2aX2a2a3NL3NL3NLQ3NL,3JX93JX,3JXdr3JYu.H 眔ma.H u.H d/.H 3'333'34 *0DXl  4H\p$8L`t5?ڐo5?ڐ2L 2L !.:M!.:M"!.:M!^.:M"A2}xq2{3|#3. )0E. )0. )0 !. )0333? M32L #2L 2L 2L !.:M!.:M"!.:M!^.:M"TM2g"=2g"TM2g"32g#{3W3A22Y5?|5?|Y5?|D/5?|2| 2}2|C%2|-J-J-JAԝ-K5?ڐ/5?ڐ5?ڐo5?ڐR3'mT3'mUR3'mT@3'mU. \w-. \w. \w%. \wط2ʃ32ط2w2Y2,;2,Y2,%2-'3Isܑ13Is'3Isa3Is2ט\ 2ט2טR32טA3〻3A3㳉3'3a3'3C3O2?2O20Y2'3',/m3','3',L+3', -||0DXl  4H\p$8L`t-ƀO. fQ-ƀO. fQ-Ɓ&5?|-ƁO3E-Ɓ.H4-Ƃ/2-ƃ:. *b.-ƃ32-Ƅu2-Ƅo3IE3-Ƅ2m-Ƅ5?i-ƅA3?1A-Ǝ 2-Ǝ5?-Ɛ% 3'3i-ƐU3?L-Ɛm3'l-Ɛ22.w-Ɛ3'34-Ɛ2B-Ƒo2Z-ƒ3'-ƒ>3Ii-ƒfm5?-ƒQ3?`s-Ɠѝ3ô-Ɣ93J-Ɣ3I-Ɩ;g.HG2 )0DXl  4H\p$8L`t-Ɩc31-Ɨs3I_-Ɨ.Hd/-Ɨe3I#;-Ɨ323-Ɩc31-Ɨs3I_-Ɨ.Hd/-Ɨe3I#;-Ɨ323-ƘJ2z-Ƙ3T.-Ƙї-+-Ƙ2-Ƙ9--ƚo2 -ƚsc3SD-ƚ.H$-ƛy . ,T-ƛ.B-ƛ3'-Ɯ!.9-Ɯə.HWI-ƝG. 2>W-ƞ38Lk-ƞ3-Ɵ.Hm-Ɵ#3?<_-Ơ3IaU-Ơ 3?g,-ơ3I'v-ơ3IV-ơF/.HZ'-Ƣ 3?-ƢP3-ƥJ2^-ƥe3 -Ʀ$37-Ʀu3?.~-Ʀ/3&pgk-Ʀ.H;-Ʀy.N-Ƨ53]4-Ƨu3&r9-Ʃ2#z-ƪ 3?damay be generalized from.
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.O22 J` sO3x`-(Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greater flexibility.
2. Extra overhead from crossing the user-kernel boundary.
3. Extra overhead from sending various messages between pieces of the system.‰ maf22-Reasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records may be generalized from.
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.lor:#0000ff;">1. More modular code and greater flexibility.

2. Extra overhead from crossing the user-kernel boundary.
3. Extra overhead from sending various messages between pieces of the system.3x`ch service is in its own virtual machine, one machine crashing doesn't affect the others.
[...]
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.W3? m_Ƅ |m3-An address which the memory management unit maps onto a physical address(Ӯ01. )03-Feature extractionV 3?3-Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
[...]
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems. %%lF u#Motivations for virtual machines

1. Reliability. If eaOMotivations for virtual machines

1. Reliability. If eaPb9Multiprocessor operating system types

1. Each \hEMultiprocessor operating system types

[...]
1. Each CPU has its ownƒ^1Multiprocessor operating system types

1. Each CPU has its ownUb9Multiprocessor operating system types

1. Each CPU has its ownԃOMultiprocessor operating system types

1. Each CPU has its ownQ-Multiprogramming2NC-NUMA+3?"C}Noise, commuting, lack of control, shame, relationships..Hk} that each disk block is either assigned to the free pool once, or to a file once.
2. Check that if a file appears in n directories, then it has a link count of n.T3&~=Q a!ӕό"!TM2g"3-The contents of a process

1. Stack (work area)
2. Data (variables)
[...]4󙞦UGR3'mT3-Three key characteristics of [...]

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.UƕQ [3&~=P-Checks made by the fsck file system checker

1. Check that each disk block is either assigned to the free pool once, or to a file once.
2. Check that if a file appears in n directories, then it has a link count of n.here is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.3'mUd into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.3?m څ ]3?m-RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.ged instruction, the hypervisor is trapped to process it.
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.>A3?1A **JǸӕЀ s8EG2-A scheduling algorithm that picks a process to run and just lets it run until it blocks or voluntarily releases the CPU. That is, the algorithm will not react to clock interrupts.vǏȓA KR3?1A-Virtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.weight:600; color:#0000ff;">- S is an individual information-processing system

- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.5? 66J}+yCx%%HOn a computNominal.22[Nonuniform Memory Access multiprocessorJ3',MNot that it would be actual in the sense of happening at that exact moment, but that it is treated as actual in the frame of reference that the system is using.o5?ڐMOffer something for free first, then ask for something in return. .H;HOn a computer monitor, the picture is constantly being redrawn, but it looks like a frozen image. The contents of our mind are constantly being recomputed, but they appear to us as stable.fm5?4_One potential outcome for each condition.10!.1?uOne where non-zero values are regarded as important.Aԝ-KOperations needed for file deletion in UNIX

1. Remove the file from its directory.
2. RelkY'Operations needed for file deletion in UNIX

1. Remove the file from its directory.
2. Release the i-node to the pool of free i-nodes.
[...]e#3W%a >h> ϲƳ!#.#33-Error rate ǽө y\5?-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action. @Tz@/ȕ =3?L-Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
2. All members of a gang run simultaneously, on different timeshared CPUs.
3. All gang members start and end their time slices together."ȓ%3ʠ3-A page fault#ȉi %3'3h-Three types of UMA multiprocessors

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.,󘜹N9473N3-Internal fragmentation9S9.#m⠉3-Hunt's algorithm for decision trees)պә^3H3?<^3-Affinity schedulingus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.% 3'3i="font-weight:600; color:#0000ff;">2. All members of a gang run simultaneously, on different timeshared CPUs.

3. All gang members start and end their time slices together.U3?Lultiprocessors. Shared memory model, access time in nanoseconds.

2. Multicomputers. Message passing multiprocessor, access time in microseconds.
3. Distributed systems. Wide area distributed system, access time in milliseconds.m3'l uuȠw m222.v-Reasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records may be generalized from.
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.nțl ;f33'k-Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access time in nanoseconds.
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
3. Distributed systems. Wide area distributed system, access time in milliseconds.may be generalized from.
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.22.w to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.3'34 ^ȷ˳Æ2C3-Scheduling algorithm goals for interactive systems (in addition to the normal ones):

1. Response time, respond to request quickly.
[...]ȯܳ {G#2B-General ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest tYCȧ4 e3'33-Three key characteristics of NUMA multiprocessors

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.XUse a resubstitution estimate.
Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.2Braining error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.>[...]

2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two. 3 ~~}>O3鵠3-What does a paging system need to do when a process is scheduled for execution?

1. Reset the MMU and flush the TLB.
[...]
3. Optionally, bring some of the process' pages into memory.]13 3-(Dis)advantages of linked list file allocation

[...]
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two. MMU and flush the TLB.
[...]
3. Optionally, bring some of the process' pages into memory.S_3pan>
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.iy3J 2:ɂ Sm!3'-A multiprocessor where the access time to a memory location is independent of which processor makes the request or which memory chip contains the transferred data.Gәno3?B,n3-Two-level scheduling (for multiprocessor systems)HZ o2Y-Scheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput, maximize jobs per hour.
2. Turnabout time, minimize time between submission and termination.
3. CPU utilization, keep the CPU busy all the time. pگ?3J 3-Linux dynamic priority adjustment

[...]
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes., maximize jobs per hour.
2. Turnabout time, minimize time between submission and termination.
3. CPU utilization, keep the CPU busy all the time. o2Z wwQ+rhEygReasons to use threads.

1. An application IReasons to use threads.

[...]
 7Remote Procedure Callm3?da >1o(o D+KA scheduling algorithm thatV!A page replacement algorithm that, upon process A triggering a page fau/SA multiprocessor where the access time to a memory location is independent of which processor makes the request or which memory chip contains the transferred data.3'qWA multiprocessor where the memory access time depends on the memory location relative to a processor.3'0WA nonpreemptive scheduling algorithm.927eA page (in the context of operating systems)L%M3?%A page faultM3=qA page frame (in the context of operating systems)G3 }7cA page not currently mapped to a page frame in physical memory is referenced, causing a little-used page frame to be written to disk and the referenced data to be read in.3ʁV!A page replacement algorithm that, upon process A triggering a page fault, removes the oldest page associated with any process. Causes the number of page frames assigned to each process to vary in time.O3Erfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.2(P Eɏس [3Ii-Time required to read or write a disk block is determined by

1. Seek time (the time to move the arm to the proper cylinder, dominating factor)
2. Rotational delay (the time for the proper sector to rotate under the head)
3. Actual data transfer time.0ɇѤP?2(O3-Reasons for overfitting

[...]
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.1. Seek time
(the time to move the arm to the proper cylinder, dominating factor)
2. Rotational delay (the time for the proper sector to rotate under the head)
3. Actual data transfer time.>3IiWut1:i[...]UM3&`}O(Dis)advantages of linked list file allocation


1. Simplicity, the program can be made pretty much bug fre*O(Dis)advantages of 14_0-99 (real-time), 100-139 (non-real-time)3JŘ+  (Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greaterIMental Representation, Rep_M (S, X, Y).
- S is an individu'CEqual width takes a number n and splits the attribute into n KK5?sA scheduling algorithm that picks a process to run and just lets it run until it blocks or voluntarily releases the CPU. That is, the algorithm will not react to clock interrupts. 2aL A page replacement algorithm that, upon process A triggering a page fault, removes the oldest page associated with process A. Effectively allocates each process a fixed fraction of the memory.`3 _3A multiprocessor system with a database telling where each cache line is and what its status is. When a cache line is referenced, the database is queried to find out where it is and whether it is clean or dirty.E3?%eByA hardware cache for the page table. When a virtual address is presented to the MMU, all the entries are checked in parallel. Misses can be handled either in hardware or in software.;~3 ziA drawback of [...]. C creates a file, B linksd be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
[...]\G3I}z ,,Iɗ󚦊zqI3I}z3-Goals of I/O software

1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
[...] ")ɚݓ3m3Y̠3-Virtual file systemSəө c5?-On a computer monitor, the picture is constantly being redrawn, but it looks like a frozen image. The contents of our mind are constantly being recomputed, but they appear to us as stable.kRemove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
[...]38Lkf a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
[...] Hɪko38Lk3-Page replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. Il 7jә33?L᠉3-Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
[...]
3. All gang members start and end their time slices together.9°ӚS^3IuL3-Burst mode (memory bus access mode)>ɱʓs [_uI3?`r-Blocking (the process is suspended while sending the message and waiting to receive one) or nonblocking (returns control to the caller as soon as the message is sent).al information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
[...]
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.J5? ;;:ѓS'15?3-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
[...]
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.d be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
[...]
6. Managing shared versus dedicated devices.3Id UU 㸓3Idܠ3-Goals of I/O software

1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
[...]
6. Managing shared versus dedicated devices.tn the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.ѝ3ôress is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution. ;;2Ә CUV3ô-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual addu operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
[...]
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.2` Cӕ`eh2`3-Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
[...]
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.me in nanoseconds.
[...]
3. Distributed systems. Wide area distributed system, access time in milliseconds.3'E AAʛcu.H 眠3-Why do we feel bad more strongly than good?ʀΎ i3J-Linux interprocess communication

1. Pipes. Channels between two processes, into which one process can write a stream of bytes for the other to read.
2. Signals. A process can send signals to members of its process group (ancestors and descendants). A process may ignore, catch, or be killed by a signal.$󙞳E'K3'D3-Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access time in nanoseconds.
[...]
3. Distributed systems. Wide area distributed system, access time in milliseconds.ocess can write a stream of bytes for the other to read.
2. Signals. A process can send signals to members of its process group (ancestors and descendants). A process may ignore, catch, or be killed by a signal.93J l?rl&tK DDMA steps

1. CPU programs the DMA controller via spe5aCreate a child process identical to parentkE2e+Comparing people based on the variables age and income. With no transformation, the differences in income will dominate the differences in age.@. 9V2[Computing the mean on multivariate dataiA.9-Conspicious consumption is one where our relative position to others matters: inconspicious consump/Cosine Similarity0#. i!Covariance-/. luCreates a new thread in the current process or in a new process. Allows the working directory, file5Current virtual timefu3:B)Cycle stealings3ItFDMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller req7TDMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller req>DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller req #DXl  4H\pD$8L`t8L`th-3.5-Ƴ3-Ƴ#24-ƴ0Y2-ƴ[2@s-Ƶ.-3(o-ƶ3JWj-ƶ03q-ƶO3Jx-ƷQ3R8-Ʒ3I/-Ƹ3\ -Ƹ{2-Ƹ2w-ƹ7u2c-ƹU3&3-ƹʏ3J -ƺ[G3?l3-ƺ3-ƽ<3I-ƽ2-ƾ}{3It-ƾħ. -ƾU3?'(Q-ƿ>3>.]

2. Policy enforcement, seeing that stated policy is carried out.
3. Balance, keeping all parts of the system busy.t2&t LL"ʬ #?3IѠ-Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.|ʝܦtW޹2&s3-Scheduling algorithm goals for all systems

[...]
2. Policy enforcement, seeing that stated policy is carried out.
3. Balance, keeping all parts of the system busy.
1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.3Iff;">[...]

2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks.3?t ]ʯC53?t3-Processor allocation algorithms for load balancing

[...]
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks.span style="font-weight:600;">2. Layered.
The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them._2u 77Yȝ,Q.6+3-Decision tree attribute test conditions for continuous attributes?[ʹu2u3-Six operating system designs

[...]
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.t
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: [...]3 s4:ˏUʥ2"3-The memory hierarchy (of computers).ˎ򡎲 P.HG2-An opinion comes to our mind, and we "call our lawyer" (query our brains for evidence) to establish that our position makes sense. If the matter is important, we'll make a more frantic call to gather as much supporting evidence as possible.5ʓLK3NL3-I-space and D-space page tablesc 3 3-The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: [...] establish that our position makes sense. If the matter is important, we'll make a more frantic call to gather as much supporting evidence as possible.;g.HG2 nnHrL&0PRDisk a'CDisadvantages of implementing threads in user space:

1|mDevice driver general structure

1. Check the i0UDevice driver general structure

[...]
1. Finding an optimal decision tree is an NP-comple  Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-comple.QDisadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-comple'Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-compleu.QDisadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complemODisadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-compleR rL&*W#Requirements for Rate Monotonic Scheduling
#Requirements for Rate Monotonic Scheduling
{Requirements for [...]

1. Each periodic#Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its`5Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its#Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within itsCmORequirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its#Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its \-Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its>[...]

2. The information must survive the termination of the process using it
3. Multiple processes must be able to access the information concurrentlyF'3L A˘Ә o31-Dynamic vs. static swap area allocation

1. Static. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 7 pages.
2. Dynamic. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 3 pages. ˖򡗮x s.HKw-We present our best self to others, trying to appear virtuous; and we look for flaws in the presentation of others.ˑ)-3Lɠ3-Requirements for long-term information storage

[...]
2. The information must survive the termination of the process using it
3. Multiple processes must be able to access the information concurrentlya process has 7 pages out of which 4 are currently in use, then swap space is reserved for 7 pages.
2. Dynamic. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 3 pages.c31C deletes the file. [...] If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.q3Qy[ o ˯yeg2@3-When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
[...]
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.Kˠw3W;Ƞ3-What is required for journaling file systems to work?1˜[AZ3Qy[3-A drawback of hard linking. C creates a file, B links to it, C deletes the file. [...] If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.nt process or the child process?).
[...]
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.[2@ple disks via striping.
No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.s3I_ @@5ϥ_ IL 3I_-RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. LU[L ڲ3 sW323-Re-mapping memory references to the address space of a process during runtime, using e.g. base and limit registers.pӚ; ?U3I#;-I/O devices such as keyboards or printers that generate or accept a stream of characters.fܝ+G3&r۠3-(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
[...]
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.&ێ4-.>.43-Gini for class tOڀyk. P3-(Dis)similarity metrics for interval or ratio attributes? ɗ/ Cu.Hd.-[$]H = S + C + V[/$]
Where S is your biological set point, C is the conditions of your life, and V is the voluntary activities you do.e.
2. Speed, the process can run at the speed of the disk.
[...]
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.p3&rreads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
[...]2 E>̒سz [2y-Four principal ways that causes processes to be created:

1. System initialization.
2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.0̃?A23-Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
[...]:#0000ff;">1. System initialization.

2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.J2zmed. After each operation is performed, its entry is erased from the log. If the system crashes partway, the system may look up the log and then perform the remaining operations.3T. /& 7ReZPage replacement algorithms


[.OrdinalF12 ";Our mental Like-O-Meter$k.H7cOversimplified /Ordinal attributeo-He?Operations needed for file deletion in UNIX

1. Remove the file from its directory.
[...]
3. Return all the disk blocks to the pool of free disk blocks.83W Operations needed for file deletion in UNIX

1.qWOperations needed for file deletion in UNIX

[.OrdinalF12 ";Our mental Like-O-Meter$k.H7cOversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display promb9Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prom+  ә,c'3',3-Three types of UMA multiprocessors

[...]
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.6̿ǒ Mf3--Mode, entropy, chi squared test.̻ |2-Nominal.1̴+ A"hy-)-Meaningful operations on ordinal attributes are mode, entropy, chi squared test, median, percentiles.,̠ 73[3T.-A file system that, upon e.g. file deletion, first notes in a log which operations are to be performed. After each operation is performed, its entry is erased from the log. If the system crashes partway, the system may look up the log and then perform the remaining operations.>
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches./m3', h2͛ C2 -Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.BeKo. Cp3-How to transform values to the range [0, 1]?Bϙ3e`233-Allowed transformations for ratio attributes system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.o2 \) ܨ􉙇!833-Boot blockZó)1K3&s/)3-(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
[...])ͯ󘝽3+3^3-Memory-mapped filesͪÒȏ CI.H$-Via meditation (breaking of attachments), cognitive behavioral therapy (catching and changing negative thoughts), and psyche medication.o͜쳘D =*3SD-Disk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.e.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
[...]:3&s/) ))K50L&F!9Spinning vs. switching43?//gCSplit values into groups, where each group contains values that are the same except for the last di#=Static (library) linking# 13U/Static relocation3/Static scheduling3Iɻ3Stem and leaf plots .M")GStimuli appeal directly to the elephant. Like a tired muscle, willpower soon wears down, but automatic systems run automatically, effortlessly and endlessly..H !Superblock39iSwapping (in the context of operating systems)+3&-Symbolic linking>3RȂ 5Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may usevaSystems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may useV 5Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may use}ziSystems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may use :&βI _W.HWG-Moral idealism and self-esteem (the major ones), greed/ambition (minor cause), sadism (very minor cause).Eي9 k{.9-[$]{1 \over m-1} \sum_{i=1}^{m} (x_i - x)^2[/$]'ΝГ/r3?[3-Type 1 hypervisor ΂ӕYq2Y3-Scheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput, maximize jobs per hour.
[...]
3. CPU utilization, keep the CPU busy all the time. | W33'-A multiprocessor where the memory access time depends on the memory location relative to a processor.:푲B Uj_.?-qޡ A. ,Tՠ-a) transform integers to binary numbers b) encode each class with a binary "belongs to this class" variable. a is more efficient, but creates faux correlations and doesn't create asymmetric binary attributes., maximize jobs per hour.
[...]
3. CPU utilization, keep the CPU busy all the time. 2Y &&C&&\ziWait for a resource that's been locked (by another CPU) to become free, or load another process? (terminology)ƙ3?//0UWays of dealing with bad sectors

1. Substituting a spare for the bad sector. Reading the who}FWays of dealing with bad sectors

1. Substituting a spare for the bad sector. Reading the whole track takes two turns.
[...]3I–J0UWays of dealing with bad sectors

1. Substitutia7Ways of dealing with bad sectors

[...]
2. Shifting all the sectors to bypass the bad one. Reading continuous, but more bookkeeping for the controller.Y~3I$ԅ#;Ways of implementing files

1. Contiguous alloc%UWays of implementing files

[...]
W bb^ςk 38Lk-Page replacement algorithms

1. Optimal (thӕG^2F3-A daemon.pΛ ?" 3W 3-Operations needed for file deletion in UNIX

1. Remove the file from its directory.
[...]
3. Return all the disk blocks to the pool of free disk blocks.yW Qx. 2>W-The entropy of an interval is a measure of the purity of the interval. If an interval contains only values of one class, the entropy is 0. If the classes of values in an interval appear equally often, the entropy is maximized. )0DXl  4H\p$8L`to2b52b3Idܓ3Id3IdɌ3Id31c3131E;31o2b52b3Idܓ3Id3IdɌ3Id31c3131E;31}3Ij%,.HND. *b:. *b.. *b=]A. *b.v5.HEr99 .HEr9v5.HEr9!m.HEr:5?15?15?1 !5?17G3J>%3J7G3JX3J3P333 )0DXl  4H\p$8L`t-72,-)3I}z-@3 -Á/2Uk-K2-72,-)3I}z-@3 -Á/2Uk-K2-#3x-3Y-V3J3-Ɨ.H,'G-ƛ.-?3J7-!2$Y-1.HT+-y3 -Ɍ3Id-ɗ3I- 2}-52b-Pm37-U{2%-ك2h-X.Hp+-ͨ13'*-y3?\-μ93]-m%3?.ΐ-л3I-њ. .-ѯ3ɖ-2"!-437-W/3?i1-ҧ38-2@-(37F-k3J-tu3Y-)3J:0-\ 2ט-֒}37D-2"Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.38Lkeoretical).
Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.rocess has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
[...]
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.3It ""0ϰ?ս3J`̠3-Linux scheduling is based on [...], and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.τJS3ItΠ3-I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
[...]
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.guishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.g3J` MMU and flush the TLB.
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
3. Optionally, bring some of the process' pages into memory.3 kpKwc5?3-How is subjective experience like a computer monitor?p_ ?H3?<^-A scheduling scheme that takes into account the fact that, if thread A has run a long time on CPU K, K's cache will be full of A's blocks. Tries to schedule a thread on the same CPU as the one it ran on the last time.  u).Hm-Pleasures are delights that have clear sensory and strong emotional components, such as good, sex, backrubs and cool breezes. Gratifications are activities that engage you fully, draw on your strengths, and allow you to lose self-consciousness.tϽӘ G3-What does a paging system need to do when a process is scheduled for execution?

1. Reset the MMU and flush the TLB.
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
3. Optionally, bring some of the process' pages into memory.backrubs and cool breezes. Gratifications are activities that engage you fully, draw on your strengths, and allow you to lose self-consciousness..Hm ++rL&{Gc;Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-comple.QDisadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-compleK3Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-compleچ.QDisadvantages of decision tree induction

1. Fiu_Disadvantages of decision tree induction

[...]>'CDisadvantages of implementing threads in user space:

1. If a thread makes a process-blockingt]Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking'CDisadvantages of implementing threads in user space:

1. If a thread makes a process-blockingڃpUDisadvantages of implementing threads in user space:

1. If a thread makes a process-blocking period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.3IaU vSvRаә΀, t3?g+-In RPC implementations, a small library procedure that represents the server (client) procedure in the client's (server's) address space and hides the fact that address call is not local."ЫU #5&[3IaU-Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead. 4{-Mlَ=oPage replacement algorithms

1. Optimal (theoretical).<(GPage sharing between programsm3P1Paravirtualizatione3?s=oPage replacement algorithms

1. Optimal (theoretical). j%Page tables for large memories

1. Multilevel pZ{Page tables for large memories

[...]
1. Multilevel page tables.
1. Multilevel page tables.
[...]35Parallel coordinatesG.A3Pearson correlation=. l/qWPeople self-reporting more caring for others were more likely to "do the right thing" by &CPhysical (copy/backup) dumpφM3&nTtriping.
No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.3I'v nnH"ceThe structurexeThe structure of a generic page table entry
1. Standard utility programs (shell, editors, compilers)
2. ~qThe layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. x}The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. ށpUThe layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. }The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)

1. Standard utility programs (shell, editors, compilers)
[...]
3. Linux operating system
4. Hardware>%3J眂yThe logged operations must be idempotent, e.g. "search the list of free blocks and add block n/UThe memory hierarchy (of computers).<2" Q`SBecause it is the only part of our minds that we can directly perceive.4G.Hӣ1WAs systematic variation of measurements from the quantity being defined. Often measured by the difference between the mean of the measurements and the real quantity.X -t3[Blocking (the pro+KAdvantages of a small page size

1. Reduces the amount of data wasted due to 14]Advantages of a small page size

1. Reduces the amount of data wasted due to internal fragmentation.
[...]3ChFAn instruction that causes a trap if executed in user model%3?3Affinity schedulingU3?<^W1WAs systematic variation of measurements from the quantity being defined. Often measured by the difference between the mean of the measurements and the real quantity.X -`SBecause it is the only part of our minds that we can directly perceive.4G.Hӣ @@5v IF3I'f-RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. 66`W13oFour ways of vi)IExamples of nominal attributesc*I2 M*KExamples of ordinal attributes.T^2 'EExamples of ratio attributes?26cExternal fragmentation, AKA checkerboardingš+3>܃:iFactors to take into account when using a modified LRU scheme for disk block caching

1. Is tlFactors to take into account when using a modified LRU scheme for disk block caching

1. Is t:iFactors to take into account when using a modified LRU scheme for disk block caching



1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.
[...]
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.*' 3 7.HZ&-They become paralyzed. They examine the pros and cons of each decision, but in the absence of feeling see little reason to pick one over the other.;೘U"U33-Page tables for large memories

1. Multilevel page tables.
[...]^V 3IF-A low-priority process L is in its critical region when a high-priority process H is scheduled. H begins waiting for L to clear its critical region, but L is lower priority, so it is never scheduled.contents of memory to disk, or via e.g. protection keys and static relocation.
[...]
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.^ 3 of a gang run simultaneously, on different timeshared CPUs.
3. All gang members start and end their time slices together.3?He weMV3?He3-Gang scheduling

[...]
2. All members of a gang run simultaneously, on different timeshared CPUs.
3. All gang members start and end their time slices together.facing for device drivers.
Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
[...]
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.!3I ttс䓚ȑaO3I3-Functions of device-independent I/O software

1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
[...]
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.ch service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems. 3? SєӘ o3-Sector 0 of a disk, used to boot the computer. Contains the partition table, with one partition marked as active."у #3?-Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems. that each disk block is either assigned to the free pool once, or to a file once.
[...]l/3&~=P pҜ?sg33-The structure of a generic page table entry

[...]
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.)333-Master Boot Record ћPs [3&~=P3-Checks made by the fsck file system checker

1. Check that each disk block is either assigned to the free pool once, or to a file once.
[...]..]

2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.p 3ight:600; color:#0000ff;">2. Error exit (voluntary).

3. Fatal error (involuntary).
4. Killed by another process (involuntary).J2^ ڑәh 3'3h3-Three types of [...]

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.(Ƴ/:3M3-Two ways of sharing files

[...]
2. Symbolic linking. The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.ٳ޲ ip2^-Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary)./>2. Symbolic linking. The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.b33M ++rL&EWhat d1Ways of implementing files

1. Contiguous allocation. EK#;Ways of implementing files

1. Contiguous allocation. E3[Ways of implementing files

1. Contiguous allocation. E.#;Ways of implementing files

1. Contiguous allocation. E8eWays of implementing files

1. Contiguous allocation. E.?sWays to reserve swap space for a process

1. When a process starts, reserve an amount of ł=oWays to reserve swap space for a process

1. When a process starts, reserve an amount of ҃?sWays to reserve swap space for a process

1. When a process starts, reserve an amount of EqWWays to reserve swap space for a process

1. When a process starts, reserve an amount of ztecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.h3'3hach file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.e3  GG.Ә ;3 Ԡ-Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.tyle="font-weight:600; color:#0000ff;">[...]

2. Is the block essential to the consistency of the file system? If it's not a disk block but an i-node block, directory block, etc., write it to the disk as soon as possible.3&3 --EәӘ̡i@3F̡3-Advantages of a large page size

1. Allows for a smaller page table, reducing its space requirement.
[...]ӎ (y3J3ˠ3-Linux interprocess communication

[...]
2. Signals. A process can send signals to members of its process group (ancestors and descendants). A process may ignore, catch, or be killed by a signal.^Ӊ 437-Page replacement algorithms

1. Optimal (thт`ә"G3&33-Factors to take into account when using a modified LRU scheme for disk block caching

[...]
2. Is the block essential to the consistency of the file system? If it's not a disk block but an i-node block, directory block, etc., write it to the disk as soon as possible.Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.$37eoretical).
Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.br>2. Signals. A process can send signals to members of its process group (ancestors and descendants). A process may ignore, catch, or be killed by a signal.8y3J3 OS.
In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.u3?.~ mӝ~ 95 3?.}-Multiprocessor operating system types

1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.y, the program can be made pretty much bug free.

2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request./3&pgk dIӫ’ sɧw.Nˠ-[$]{1 \over m} \sum_{i=1}^{m} \mid x_i - x \mid[/$]rӦӕC2W3-Scheduling algorithm goals for real-time systems (in addition to the normal ones):

[...]
2. Predictability, avoid quality degradation in multimedia systems.ӣ򠪔; ]L.H:-The rider is like an advisor, placed on the elephant's back to try to guide it to make better decisions.ӡk Վ 3&pgj-(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.le="font-weight:600; color:#0000ff;">[...]

2. Predictability, avoid quality degradation in multimedia systems.2We stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.53]4he fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution. nSn?򡢌_.HQ 3-How does naive realism lead to hypocrisy?ݻ9 3&r9-(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.;󘟄4 o3]4-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused t;(5BO\iv,9FS`mz #0=JWdq~8 ә  .ڧՓ’әE8 ә  .ڧՓ’әE«]¬3!¹$ό&볚w(Ìӓ*Ù򡺋.Þk3ĄӘL6ɳ9ņJ@`CƄFӕό"IڅKǸӕЀNϲƳOȕSȠwVȷ˳Æ[^ɂcɏسhɗ󚦊ziɚݓmɪknәpѓr㸓vӘxӕ`zʛʬʯȝ,ˏ˘Ә˯ϥ_ڲ3̒سzә,͛ܨ􉙇βIςkϰаә΀,v;}(5BO\iv,9FS`mz #0=JWdq~с䓚ȑєӘҜڑәhӘәӘ̡ӝ~ӫ’с䓚ȑєӘҜڑәhӘәӘ̡ӝ~ӫ’򡢌ԧ󗤝쵳󚦊ՂәɦaՇu֞ә"Ǜӗì׬΢ڻؖآӕ<ب𳚦Ө Γْ̓󘌙󕫖ڣәګәJ#ۆ6&ێ9)ʓ8+ҭӕ.󚦤0ܣ3ܵ߳7ә<瓳j>݇DAݑԓڅDݖ3FݥӘJޭےVPӕSSӕW߆¬×[߱Ÿ ]߲әΨQ`bӘSdeEj঻Ӛmtr˥ukw╩ә{鳕e.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.u3&r9 (0DXl  4H\p$8L`t2yJ2z2yG2zZ3Qy[q3Qy[Z3Qy[}3Qy\`23<23`23#245?uQ35?uS2"'2"'S2"'%j2"([-S-][-Sm-^2yJ2z2yG2zZ3Qy[q3Qy[Z3Qy[}3Qy\`23<23`23#24G2|12|2G2|1q2|2@3F̡d]3F̡@3F̡m-3F̡2#z2#z2#zjk2#z?2u2?2v2/3{3{/3{ -3{_3INԛ3IN_3IN3IN5?$N{5?5?z5?%[3IO63IO6%[3IO6)_3IOE^2gs2gs^2gs_΋2gs3Ikx3Ik3Ikq3Ik01Jx&c{1Jx&01Jx&]1Jx&f33'kS3'lf33'km3'l'3&`}UM3&`}'3&`}/ 3&`}3m>O!3m3mfs3m.7?~.9nvert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
[...]
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.73I 2ԧ󗤝EO23-Examples of ratio attributes4ԍ㳚G>3Iנ3-Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
[...]
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information. 8TmVmaLinOHow does sele?Goals of I/O software

1. Device independence. It shoulGoals of I/O software


1. Device independence. It shoulGoals of I/O software

1. Device independence. It shoulqe?Goals of I/O software

1. Device independence. It shouln>qGoals of I/O software

1. Device independence. It shoulg%Hard linking3SDOHardness of minerals, {good, better, best}, street numbers, grades.2 4]Has two arrays, active and expired, with all the processes sorted by priority. The scheduler choose'*IHigh dimensionality makes the data space sparser. Classification may not have enough data objects to create a model that reliably assigns all objects a class.. TZ interrupt from the hardware and unblock the device driver.
[...]
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.3I/ <[쵳Qq33-Modern Operating Systems: Memory management chapter summary

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
[...]
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.lor:#0000ff;">[...]

2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.3font-weight:600; color:#0000ff;">[...]

2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.d be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
[...]
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices._3I1 r󚦊C`y3I13-Goals of I/O software

1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
[...]
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices. \Ղәɦa 3?da-When a process on machine 1 calls a process on machine 2, the calling process on 1 is suspended, and execution of the called procedure takes place on 2. As if performing an ordinary procedure call.pan> The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.2u LL)Շu 12u-Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. oG o 3?: -Which process to run, and which CPU to run it on?9򓕗vQ2@v3-Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
[...]Cջ볕g[2g砉3-The CPU-usage profile of a CPU-bound process. )0DXl  4H\p$8L`t-3JŘ-؟. /-2"-١3?%1-2-3JŘ-؟. /-2"-١3?%1-2- .y[-*=1J$-N2ڝ-ۘ.?-3Is-=2-ܑ13Is-!3I,-5?|-N53-t}3 n- 1I-k3-ޖ3SM-_2Z\-@3'mU-5?-E3?%e-3?_x-/2Q-/ 3&`}-1S2-B2i-Y.H-l%3?-2 -Q3a-|2u-Á.-52/-m3IE-y3- -3?pW-矫3IƂ-C2Y-m3 operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
[...]2@ve stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.3che virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution. .S .Q֞ә"N 3'"3-Bus-based UMA multiprocessors

1. Only one CPU can access memory at a time. If line is busy, requesting CPU must wait.
[...]>֓ [,K2-Four principal ways that causes processes to be created:

1. System initialization.
2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.󘟆c D3c-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether tstyle="font-weight:600; color:#0000ff;">2. Execution of a process creation system call by a running process.

3. A user request to initiate a new process.
4. Initiation of a batch job.O2 ~~9Ǜӗì Qw2!-Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.4־𩤄IQx. R3-Properties of metric distanceste problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.2!l).
Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.Л3eoretical).
Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. awa ׬΢ uM3J"-Creates a new thread in the current process or in a new process. Allows the working directory, file descriptors and signal handler table to be independently either copied or shared, and the parent to be either the caller or the caller's parent.r Cɿ3-Page replacement algorithms

1. Optimal (th descriptors and signal handler table to be independently either copied or shared, and the parent to be either the caller or the caller's parent.3J"triping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.i3I +rL+&QRequirements for long-term information storage

1. It must be possible to store a very large *lMRequirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its#Requirements for Rate Monotonic Scheduling

1. c;Requirements for Rate Monotonic Scheduling

[..hQRequirements for long-term information storage

1. It must be possible to store a very large  Requirements for long-term information storage

1. It must be possible to store a very large ?Requirements for long-term information storage

1. It must be possible to store a very large FQRequirements for long-term information storage



0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. [[5|VEWhat does a paging system need to do when starting a nEWhat does a paging system need to do when starting a new process?

1. Determine the initial sWhat does a paging system need to do when starting a new process?

1. Determine the initial s EWhat does a paging system need to do when starting a new process?

1. Determine the initial se+What does a paging system need to do when starting a new process?

1. Determine the initial sǃEWhat does a paging system need to do when starting a new process?

1. Determine the initial s What does a paging system need to do when starting a new process?

1. Determine the initial sEWhat does a paging system need to do when starting a new process?


1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the faulTؕܓϩ 2Ϩ-There is none. A parent process is given a token (a handle) that can be used to control the child, but the token can be passed on to other processes.m29G2|13-Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
[...]
4. Killed by another process (involuntary).e stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.Y3|t.

4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
[...]
2< MM(آӕ</S2<3-Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
[...]
rocess has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.3IS ??6ب𳚦Ө K٤3IS-I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.reads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
[...]
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible. 2 ,0.=RDe2$Y3-An oblique decision treeqt Ay3?r-Modifying an operating system's source code so that instead of making hardware calls, it makes calls to a hypervisor program. Simplifies virtualization, as hardware instructions no longer need to be emulated in detail.Iǡqc23-Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
[...]
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible. e stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.3uhe virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution. S'RΓ Z+2<Ϡ-new_value = a * old_value + b, where a and b are constants.!ә!3'랠3-Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access time in nanoseconds.
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
[...]u @I3u-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether t me in nanoseconds.
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
[...]]3' Address spaces. Employ base and limit registers plus swapping.
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.a3 ̓ '33-Types of memory abstraction

[...]
2. Address spaces. Employ base and limit registers plus swapping.
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk. fragmentation.
Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.3{ Z=rLj>sHow can the tit-for-tat strategy be seen is gossip?.H6%?How does existing within a physical system prevent the information available to us from being actual information? 5?g4_How does naive realism lead to hypocrisy?.HQ 4_How does reciprocity build relationships? .H=OHow does self-serving bias make us resentful of others in our team?6K+.HNCTHow is bias defined, and how is it often measured? (in machine learning)i-B{How is precision defined, and how is it often measured?;-E@wHow is subjective experience like a computer monitor??5?/UHow is the mafia like an ant colony?X.H,'F| ^#|k+MClassification error for class t}.>u=TDMA steps

1. CPU programۄDMA steps

1. CPU programs the DMA controller vyoSBenefits of segmentation

1. Different segments may grow or shrink in size independently withP_fABenefits of decision tree induction

1. Nonparametric - requires no prior assumptions about tbt3[Blocking (the process is suspended while sending the message and waiting to receive one) or nonblocking (returns control to the caller as soon as the message is sent).Q3?`sICC-NUMA \33?%1+MClassificat|/DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller req:gCCombining all the holes in memory into a solid block by rearranging the contents of memory.3Re|mDevice driver general structure

1. Check the input parameters for validity, then possibly co Qْ󘌙13 3-Translation Lookaside Buffer (TLB), or associative memory.Z /3{-(Dis)advantages of linked list file allocation

1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two. nonpreemptive algorithms.
2. Interactive, uses preemptive algorithms.
3. Real time, may use nonpreemptive algorithms.}2 Q w.󕫖=Y23-A thread (in computing)."5 #.>.4-[$]1 - \sum_{i=0}^{c-1} [p(i|t)]^2[/$]
where p(i|t) is fraction of records labeled i at a given class t, and c is the number of labelsHپX o2W-Scheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput, maximize jobs per hour.
2. Turnabout time, minimize time between submission and termination.
3. CPU utilization, keep the CPU busy all the time. +ٺӕ܍Q 5 2 P-Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may use nonpreemptive algorithms.
2. Interactive, uses preemptive algorithms.
3. Real time, may use nonpreemptive algorithms., maximize jobs per hour.
2. Turnabout time, minimize time between submission and termination.
3. CPU utilization, keep the CPU busy all the time. 2X "XXl  4H\p$8L`t$8L`t3&,5%3&,;3?H3?H;3?Hk|3?H-5a--yq-G3&rۗp3&rG3&r]{3&r3 3 3 3 "o2u2u"o2u|2u3&,c3&,F)3Iwi^a3Iwi^F)3Iwi^?3Iwi^^.>u}.>u^.>u/7.>v2X'2X2XC2Yн.fAJ.gн.fY.g. ,T՛y . ,T. ,T. ,T/3 m3 /3 e>A3 ;3?H3?H;3?Hk|3?H-5a--yq-G3&rۗp3&rG3&r]{3&r3 3 3 3 "o2u2u"o2u|2u3&,c3&,3&,5%3&,|3 dڅ[1,0,0,0,0,0,1,0,1,1]
[0,0,1,0,0,0,1,1,1,0]*ڇْ5Ou. *砉3-Feature construction/ij4 ?`23-new_value = a * old_value(Ә /A3-A block on a partition, with key parameters about the partition such as the file system type, the number of blocks on the file system, and so on. +r+L&  ThwSkeleton of what the lowest level of the operating system does when an interrupt occurs.


1. Monolithic. The entire`5Six operating system designs

1. Monolithic. The entire1Six operating system designs

1. Monolithic. The entire.QSix operating system designs

1. Monolithic. The entireISkeleton of what the lowest level of the operating system does when an interrupt occurs.




1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.[2@s y?ګ]mg3Ch3-Advantages of a small page size

1. Reduces the amount of data wasted due to internal fragmentation.
[...]|ڦs Wm2@r-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.ize of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table..-3(o %әJğ3?CJ3-Benefits of (multiprocessor) two-level scheduling

[...]
2. Advantage is taken of cache affinity when possible.
3. By giving each CPU its own ready list, contention for the ready lists is minimized.PӘo nm3(o-What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.f;">[...]

2. Advantage is taken of cache affinity when possible.
3. By giving each CPU its own ready list, contention for the ready lists is minimized.3?CJ )0DXl  4H\p$8L`t3-ŕ3 3-ŕQ3NL3-Ŗ<2"3-ŖF'3L3-Ŗq3Qy[3-ŕ3 3-ŕQ3NL3-Ŗ<2"3-ŖF'3L3-Ŗq3Qy[3-Ŗ3W;3-Ŗ[2@3-ŗh. P3-ŗlu.>.43-ŗp3&r3-Ř23-ř/m3',3-ř<233-řw. Cp3-ŚO3^3-ś:3&s/)3-śqG33-Ŝ 2Y3-Ŝv3?\3-ŝ83W 3-ŝ2G3-Ş3It3-Şg3J`3-ş?5?3-š33-š^ 33-š3?He3-Ţ!3I3-Ţl/3&~=P3-ţ33-Ťp 33-ťb33M3-ťh3'3h3-ť3&33-Ŧ8y3J33-Ŧd]3F̡3-Ŧ2W3-ŧ.HQ 3-Ũ73I3-Ũ?23-Ũ3I/y 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.3JWj 00bۆ6#%[3IO63-I/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
[...]
4. User-level I/O software. I/O libraries might e.g. format output.Xہj b=%3JWj-Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes. interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
[...]
4. User-level I/O software. I/O libraries might e.g. format output.3IO6ation.
Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.03q G[ێ9v5.HEr93-What did the coin-flipping experiment tell us about moral hypocrisy?.ی ;G3q-Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.s from among the highest-priority tasks. Processes whose quantum expires are moved to the inactive array. If there are no more tasks in the active array, the active and inactive arrays are swapped.O3Jx ((d=L&;mPolicy/mechanism decoupling in operating systems-2Z#=Position-indepedent codeh3\ ʁ3[Positivity: d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry: d(x,y) = d(y,x)
Triangle inequality: d(x,z) <= d(x,y) + d(y,z) for all x, y, zR2. RjIPrimary process A activates, then the more sluggish opponent process B activates to counter A.Á.1Priority inversion 3IF}Processing information takes time, so all of our information is always slightly behind that which is actually happening.Z'5?g|mProcessor allocation algorithms for load balancing


1. A graph/SProcessor allocation algorithms for load balancing

1. A graph w2ʓ8 CSG3R7-A drawback of hard linking. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.5۰󗤜KX2a3-Examples of interval attributes?ۣ ]3Jx-Has two arrays, active and expired, with all the processes sorted by priority. The scheduler chooses from among the highest-priority tasks. Processes whose quantum expires are moved to the inactive array. If there are no more tasks in the active array, the active and inactive arrays are swapped.C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.Q3R8 1ҭӕA}2$3-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
[...]
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.eu)5?u3-Reading a book in my hands and experiencing interest in it, the content of my consciousness consists of [...] and not the neural process of construction.Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
[...]
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.Im2$ interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.3I/ o󚦤 =x3I/-I/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.rocess or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
[...]Ɂ2%P g}'g5ܣ I13\ ʠ-Code that only uses relative offsets for jump instructions (as opposed to absolute addresses). Useful with e.g. programs taking advantage of shared libraries.K܁u 3۠3-Types of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.
2. Address spaces. Employ base and limit registers plus swapping.
[...]x򰓕ΥPO 2%O3-When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
[...]contents of memory to disk, or via e.g. protection keys and static relocation.
2. Address spaces. Employ base and limit registers plus swapping.
[...]'3tyle="font-weight:600; color:#0000ff;">1. Response time, respond to request quickly.

2. Proportionality, meet users' expectations.{2 IIܵ߳ C2w-Advantages of implementing threads in user space:

1. Thread switches can be made without kernel calls, which can be very fast.
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
3. Better scaling, as threads don't need to be stored in the kernel.ܤ k22-Scheduling algorithm goals for interactive systems (in addition to the normal ones):

1. Response time, respond to request quickly.
2. Proportionality, meet users' expectations. kernel calls, which can be very fast.
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
3. Better scaling, as threads don't need to be stored in the kernel.2w ^'g;^%AAbsolute Av+A paging daemon\3L-QA preemptive sch?uA requirement for (type 1 hypervisor) virtualizationsg3?+A paging daemon\3L-A pop-up thread.2f-QA preemptive scheduling algorithm.Y?y2/#=A privileged instructioncM3??uA process causing page faults every few instructionsJ3xeA process may map a file onto a portion of its virtual address space. Shared libraries are a speciafAA process that runs in the background to handle some task, possibly only rarely awakening.u2GRA process that typically has long CPU bursts and infrequent I/O waits.H2gQA process that typically has short CPU bursts and frequent I/O waits.kI2a1WA relationship is built by a set of back-and-forth trades, with one person offering gifts, favors, attention or self-disclosure, and the other reciprocating in kind.~.H=-OA scheduling algorithm that considers the priority of each process and runs the highest-priority prthe screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
execve(command, parameters, 0) /* execute command */
7u2c LLEә i"G3&3-Factors to take into account when using a modified LRU scheme for disk block caching

1. Is the block likely to be needed again soon? If not, put it at the front of the list to be reused soon.
2. Is the block essential to the consistency of the file system? If it's not a disk block but an i-node block, directory block, etc., write it to the disk as soon as possible.Yӕ߲c '_2c-Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
execve(command, parameters, 0) /* execute command */
tyle="font-weight:600; color:#0000ff;">1. Is the block likely to be needed again soon? If not, put it at the front of the list to be reused soon.

2. Is the block essential to the consistency of the file system? If it's not a disk block but an i-node block, directory block, etc., write it to the disk as soon as possible.U3&3:Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
[...]
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.37jcurrent value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. ==0瓳j?"/37j3-Page replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
[...]
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the ;ctive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.

* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.ʏ3J }J"݇D%*3SD3-Hard linking)݃د3J5. l/3-Pearson correlation݀󕾍 A23-Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
[...]
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.X󚫔 3J -Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.reads are faster to create and destroy than processes.
[...]
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.2 rL&&TTypical ways for a process to terminate.

1. Normal exit (voluntary)/Type 2Types of memory abstraction

1. No memory abstr/Type 2 hypervisorU3?_xTypes of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole m@uTypes of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole 1Types of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole ҂Y'Types of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole Types of memory abstraction

1. No memory abstrb  Types of memory abstraction

[...]
2.ziTypical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (volun z4ݑԓڅG3?m3-RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
[...]-݉;t.H㠉3-Our mental Like-O-MeterE݈sk_uI3?`r3-Two types of send and receive in multicomputersd into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
[...]F3?md into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.[G3?l3 ݖ3 ]*w3?l3-RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.yle="font-weight:600;">2. Uniform naming.
The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.a3Iwi^ ݥӘ ikR3ߠ-Memory management algorithms for finding an n
[...]
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.om a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.3span>-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.ghest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
[...]

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.q3JQ 4Y4dޭےV'G. 9V3-An example of variable transformation being useful in comparing two variablesFޫ󘟅uk@I3u3-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsinMTޖןz6U.Hky3-What are some external conditions that affect your happiness?ރΓ>3JQ3-Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
[...]

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.Le stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
[...]
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.3ug the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
[...]
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.rocess has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.<3I nnHL&qWRAID levels.

9iProtecUProcessor allocation algorithms for load balancing

1. A graph҂Properties of [...] distances

Positivit4Properties of metric distances

Positivi)IProperties of metric distances. R{Properties of metric distances

Positivity, d(x,y) => 0 for all x, y

Positivity, d(x,y) => 0 for all x, y

Positivity, d(xlMProperties of metric distances

[...]
Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x ?"ӕS#N2ZS3-Advantages of implementing threads in user space:

1. Thread switches can be made without kernel calls, which can be very fast.
[...]
3. Better scaling, as threads don't need to be stored in the kernel.6ϒϐ KP]3I-I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.nel calls, which can be very fast.
[...]
3. Better scaling, as threads don't need to be stored in the kernel.Fe2ZSz`z\>G4|mReasons for overfitting

1. Overfitting due to presence ofOziProperties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x(|mProcessor allocation algorithms for load balancing

1. A graphFRAID levels.

0. Data is distributed over multiple disks via s&Ct]RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turneH[Z)Reading a book in my hands and experiencing interest in it, the content of my consciousness consists of [...] and not the neural process of construction.+5?u4|mReasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records ?H%?Reasons to use threads.

1. An application may want to do many things at once.
2. Th 2ӕ C a2-Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.H󘌂}q@3 }3-A page frame (in the context of operating systems) system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.2 +0DXl  4H\p$8L`t0.!{b.!|?2)q2*?2)VA2**S3IczZ3IcP]3Iyc3I0.!{b.!|?2)q2*?2)VA2*L.H:.H;L.H:_.H: U2A#JH2A# U2A#a2A#*S3Ic-S 3Ic33'J3'33'3'z_2Q;=2Qz_2Qd=2QP]3I<3I{3?t 9/3?t{3?t53?t38 >[3838L38ӽ2T<Q2Tӽ2T@)]2U.>.4lu.>.4.>.4[.>.513\ ʸ3\ 13\ h3\ 5?75?5?!5?83qG383k3J3J3J3g'3e2!*2!+e2!*H2!*Վ 3&pgj/3&pgkՎ 3&pgj23&pgkս3J`̞g3J`ս3J`33J`׹3?_w3?_x׹3?_wU3?_x -.HT+1.HT+ -.HT+̜G.HT+. 1. 1. 1Ǘ. 1 flexibility.
2. Extra overhead from crossing the user-kernel boundary.
[...]3Dt >}>5߆¬×K3.C3-The spread on multivariate datak߂ד]52H3]3-Ways to reserve swap space for a process

[...]
2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapped back in.߁tc3Dt3-(Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greater flexibility.
2. Extra overhead from crossing the user-kernel boundary.
[...]...]

2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapped back in. 3] rL&&:iWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter o'CWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter os:iWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter oWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter on thC{What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on th<What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on th$  What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on th݋What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on thʊuWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter on throcess has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.}{3It ?0߱Ÿ  Aai.-[$]x_{75\%} - x_{25\%}[/$]-߯;Jw3? 3-A sensitive instruction6ߟ KJS3ItΠ-I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.CPU has its own OS.
In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.U3?'(Q m߲әΨQ 9܋3?'(P-Multiprocessor operating system types

1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.essing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.%e5?| ++rL&J yBox vaBenefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the GBenefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the t!Benefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the قGBenefits of (multiprocessor) two-level scheduling


1. Nonparametric - requires no prior assumptions about t~qBenefits of decision tree induction

1. Nonparametric - requires no prior assumptions about tfABenefits of decision tree induction

1. Nonparametric - requires no prior assumptions about t  Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about t  {3>ܠ-Memory developing unused holes due to e.g. variable-length segments being brought into memory and then evicted from it.EɬөijA5?|ޠ3-[...]
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.plement.
Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
2. Good read performance. The entire file can be read from the disk in a single operation.
[...]v]3 kS 33BӘSc[I3 kS3-(Dis)advantages of contiguous file allocation

1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
2. Good read performance. The entire file can be read from the disk in a single operation.
[...]al information-processing system
[...]
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.75? `5?3-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
[...]
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action. Q09ES>q3E3-A global page replacement algorithm˳c{D3c3-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual pageh$, 'Q.6+-Binary or multiway splits, using comparison tests (A < v) or range queries (vi <= A < vi+1).ge stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
[...]
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.V[3c is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
[...]
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.he type of probability distributions satisfied by the class and other attributes.
[...]
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.2"' I:If঻Ӛ+x93J>w3-The layers of a Linux system

[...]
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
4. Hardware;ӗ'US2"'3-Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
[...]
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. )0DXl  4H\p$8L`t3-ũ_3I13-Ū[2g3-ū2@v3-ŬxE3'"3-Ŭ. R3-ũ_3I13-Ū[2g3-ū2@v3-ŬxE3'"3-Ŭ. R3-ů2|23-Ű2<3-ű 23-űc2$Y3-ű]3'3-űa33-ŲJ3 3-ų23-Ŵ. *3-Ŵ#u. a3-Ŵ3?%e3-Ŵ3Ch3-ŵ3?CJ3-Ŷ3IO63-Ŷ9 .HEr93-Ŷ2a3-ŷ+5?u3-ŷIm2$3-ŷɁ2%P3-Ÿ'33-Ź37j3-ź23-ź=. l/3-ź3SD3-ź!3?`s3-ź$k.H3-źF3?m3-źa3Iwi^3-żq3JQ3-żY3.Hkz3-ż3u3-ż. 9V3-ŽFe2ZS3-ŽG3 }3-ž3Dt3-ž 3]italic;">Init
is the top process, which creates a process for each terminal. Each terminal creates a shell when someone logs in, and the shell may fork further processes.72, TEtk|r. Nt3-(Dis)similarity metrics for ordinal attributes?p哚z ?I3I}z-Goals of I/O software

1. Device independenp+ೕ, 52,-Each process has as its parent the process that it was forked from.

Init is the top process, which creates a process for each terminal. Each terminal creates a shell when someone logs in, and the shell may fork further processes.d be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.)3I}z /&e?Ld=I/O software layers

1. Inter*KI-space and D-space page tablesQ3NL+KI/O buffering alternatives

1. Unbuffered inpu.SHow to use concessions as a weapon?|ȥ.H=2PHow to standardize a variable to mean 0 and standard deviation of 1?. A@7eHow to transform values to the range [0, 1]?w. Cp.SHow to use reciprocity as a weapon?.H;.SHunt's algorithm for decision treeso.#mwcHunt's algorithm when all the values in the set have identical attribute values except for the class label?.-*KI-space and D-space page tablesQ3NL+KI/O buffering alternatives

1. Unbuffered inputĄ\-I/O buffering alternatives

[...]

1. Unbuffered input. User pce.
It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.t
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.@3  ˥!t>. l3-Covariance ә3s3'333-Three key characteristics of NUMA multiprocessors

1. There is a single address space visible to all CPUs.
[...]
3. Access to remote memory is slower than access to local memory.᐀ e 3 -The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses. to all CPUs.
[...]
3. Access to remote memory is slower than access to local memory.3'330ff;">[...]

2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)`3?aR |k WSVE2Uj-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.[؀Rg33?aQ3-Four ways of implementing sending on multicomputers

[...]
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)an style="font-weight:600; color:#0000ff;">1. Hardware pushes the program counter etc. of the current process to the stack.

2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.Á/2Uk W╩ә '3&`}3-(Dis)advantages of a small block size for disk memory

1. Small files can be stored effectively, without wasting disk space.
[...] ⎳ӚXq,3JX3-The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
[...])"3!.:M!3-Entropy for class tStandard library (open, close, read, write, fork...)
3. Linux operating system
[...]93JX ++rL&d%?Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about tZfABenefits of decision tree induction

1. Nonparametric - requires no prior assumptions about tڅ\-Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about tfABenefits of decision tree induction

1. Nonparametric - requires no prior assumptions about t0UBenefits of decision tree induction

1. Nonparametric - requires no prior assumptions about tifABenefits of decision tree induction

1. Nonparab9Benefits of decision tree induction

[...]
1. Different segments may grow or shrink in size independently withBenefits of segmentation

1. Different segments may grow or shrink in size independently with)ss is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).K2 r鳕 C- 2-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).cution of a process creation system call by a running process.
3. A user request to initiate a new process.
[...]=2- s񂓕E"o2u3-The average CPU utilization, given that n processes that spend a fraction p of their time waiting for I/O to complete. (Simplified formula.)A襳c3>ܠ3-External fragmentation, AKA checkerboarding&Ϸ譆+2-3-Four principal ways that causes processes to be created:

1. System initialization.
2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
[...]end a fraction p of their time waiting for I/O to complete. (Simplified formula.)2u00; color:#0000ff;">1. Determine the initial size of the program and data.

2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.#3x %? ]m3Y̠-A file system that attempts to integrate multiple file systems into a single structure that is presented to the user. User processes operate it via one set of calls, and it operates other file systems via a list of function calls whose addresses the file systems provide upon registering with it.P䳘  b3xР-What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.ented to the user. User processes operate it via one set of calls, and it operates other file systems via a list of function calls whose addresses the file systems provide upon registering with it.3Ynnels between two processes, into which one process can write a stream of bytes for the other to read.

2. Signals. A process can send signals to members of its process group (ancestors and descendants). A process may ignore, catch, or be killed by a signal.V3J3 p Z .Ԡ-Increasing the intensity of stimulus exposure, increasing the duration of the stimulus, shortening the interstimulus interval._اG .H,'F-The ants in a hive work together because of kin altruism: they are all related to their queen. Humans try to extend kin altruism by using family-related words, such as the mafia calling itself family.Գ i(y3J3ˠ-Linux interprocess communication

1. Pipes. Channels between two processes, into which one process can write a stream of bytes for the other to read.
2. Signals. A process can send signals to members of its process group (ancestors and descendants). A process may ignore, catch, or be killed by a signal. [?Variance.b9Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
[...]
4. Killed ziTypical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (volunjb9Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
[...]
4. Killed by another process (involuntary).2|2ziTypical ways for a process to terminate.

1. Normal exit (voluntary).
[...]
3. Fatal error (involuntary).
4. Killed by another process (involuntary).)2^ziTypical ways for a process to terminate.

1. Nohe type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
[...](2b  ʒbqo2b3-Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
[...]ghest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.?3J7 eOe󚧣{?3IѠ3-Requirements for [...]

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.G𨵾1o. 13-What does feature subset selection attempt to do?& +3J7-Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given. process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.Ǫ3Is goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
[...]3I, >X[2X3-Scheduling algorithms used in batch systems

1. First-come, first-served.
2. Shortest job first.
[...]>䈺 [RDe2$Y-(An often computationally expensive) decision tree that allows test conditions involving more than one attribute, such as the test condition

[$]x + y < 1[/$]h,/P'3I,3-Disk arm scheduling algorithms

1. First-Come, First-Served.
2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
[...]ection, making it important to protect young people from the infection. 3) The villains can only be defeated if we pull together as a team.1.HT+ Q%񳘐)ɿ33-Page replacement algorithms

[...]
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.䌷򡨫 i -.HT+-1) They are invisible, and cannot be recognized from appearance alone. 2) Their evil spreads by infection, making it important to protect young people from the infection. 3) The villains can only be defeated if we pull together as a team.ize of the program and data.
[...]
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.<13br />2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.ȷ3ff;">[...]

2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.t
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.y3 ||p󚦊 ?3Idܠ-Goals of I/O software

1. Device independenϓ e.T3 -The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.d be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.Ɍ3Idce.
It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.triping.
No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.ɗ3I @@5 Iq3I-RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.triping.
No redundancy, works best with large request.
[...]
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.ɘg3IƂ rL&aSystems relevant for6aSkeleton of what the lowe6aSkeleton of what the lowest level of the operating system dqWSkeleton of what the lowest level of the operating system does when an interrupt occurs.

1. 6aSkeleton of what the lowest level of the operating system does when an interrupt occurs.

1. qWSkeleton of what the lowest level of the operating system does when an interrupt occurs.

1. ESkeleton of what the lowest level of the operating system does when an interrupt occurs.

1. ZqWSkeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Ʉ&ASkeleton of what the lowest level of the operating system does when an interrupt occurs.

1. ,qWSkeleton of what the lowest level of the operating system does when an interrupt occurs.



0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
[...]
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. flexibility.
[...]
3. Extra overhead from sending various messages between pieces of the system.;3) +rL+&yMental Representation, Rep_M (S, X, Y).
- S is an individuyMental Representation, Rep_M (S, X, Y).
- S is an individuS&AMental Representation, Rep_M (S, X, Y).
- S is an individuZ)Mental Representation, Rep_M (S, X, Y).
- S is an individuɅ5_Mental Representation, Rep_M (S, X, Y).
- S is an individu܆Z)Mental Representation, Rep_M (S, X, Y).
- S is an individu(/SMental Representation, Rep_M (S, X, Y).
- S is an individuo\-Mental Representation, Rep_M (S, X, Y).
- S is an individuZ)Mental Representation, Rep_M (S, X, Y).
- S is an individu{00O!7Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every proceN%?Scheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of A#Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its:~qScheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput@=oScheduling algorithms used in batch systems

1. First-come, first-served.
[...]
3. Shortest remaining time next.C2OScheduling algorithm goals for real-time systems (in addition to the normal ones):

1. Meeting deadlines, to avoid losing data.
[...]E2gGScheduling algorithms used in interactive systems

1. Round-robin scheduling (every proce ;瓕ЀW8EG2ࠉ3-A nonpreemptive scheduling algorithm. QH3)3-(Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greater flexibility.
[...]
3. Extra overhead from sending various messages between pieces of the system. )0DXl  4H\p$8L`t 3)D*G73)D 3)DdW3)DJ5. l/=. l/J5. l/?f. l/K+3BE3BW323}$323٤3ISGY3IS#.#3F{.#3#.#3mq.#3)2r~2r)2rK2r 3)D*G73)D 3)DdW3)DJ5. l/=. l/J5. l/?f. l/K+3BE3BK+3BM!3BuI3 +3 uI3 !3 m3Y̒j3Ym3Y3Y3?B,n3?B,n3?B,n'53?B,o2Yo2Z2Y 2Yo2'c12(o2'd2(^2F2G^2Fu2Gkm2ʮ2ʮkm2ʮ$.2ʮW323323%2/2%22t]3PM3Pt]3Pm3P]-}xQvU-}x]-}x]v-}yK3'D3'EK3'D3'E3Iɻ蟛3Iɻ3Iɻ3Iɻp-H$=m-Hp-Ho-Hsg3p 3sg32[%3metric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.

2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. 2} q僖} A2|-Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.he type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.52b q卢b Ao2b-Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. operating system runs as a single program in kernel mode.
[...]
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.2ʮ t+DfAThe stru5_The part of the operating system that keeps track of which parts of memory arJ The set of addresses that a process can use to address memory.uK3뤓&CThe opponent-process theoryq.'EThe opponent-process theory.Y.gY'The page tables for the instruction address space and the data address space.3NL5_The part of the operating system that keeps track of which parts of memory are in use, allocates memory to processes that need it, and deallocates it when they are done.1S2"9The program counter, registers, a stack, and state. Everything else (address space, global variables, open files, etc.) is shared between the threads.\ 2טt]The rider is like an advisor, placed on the elephant's back to try to guide it to make better decisions..H;The set of pages that a process is currently using (has used in the last k page references)%39_P*KThe spread on multivariate data!.C ;Ukm2ʮ3-Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
[...]
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.out affecting each other.
[...]
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.3 BBJ ,B.bpUDisadv*)IExampl'E.g. we have various artifacts made of various materials. A 'density = mass / volume' feature could be used to help classify their materials.A_. * 5Each process has as its parent the process that it was forked from.


1. Optimal (th,弙7c8/3䬠3-Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
[...]
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.Pm37eoretical).
Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones..g. decision trees classifiers to correctly classify data into nonrectangular regions, but may introduce redundancy in the data.U{2% interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
[...]˛e3Iq ''Ӛ3J73-Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
[...]
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.1ӚAj3Iq3-I/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
[...]ghest priority, only preemptable by a newly readied FIFO with higher priority).
[...]
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.3J7 )0DXl  4H\p$8L`t3-ž3? 3-ſ%e5?|3-ſv]3 kS3-ſ75?3-V[3c3-ž3? 3-ſ%e5?|3-ſv]3 kS3-ſ75?3-V[3c3-m3E3-2"'3-3J>3-. Nt3-3'333--/. l3-`3?aR3-.:M"3-93JX3-UM3&`}3-=2-3-š+3>3-2u3-(2b3-Ǘ. 13-Ǫ3I3-3I,3-'2X3-<13b3-ȷ33-ɘg3IƂ3-;3)3-923-2ʮ3-33-˛e3Iq3-3J73-23-̜G.HT+3- 3IF3-9u.H2t3-;3JWj3-,3I 3-=2E83-E23-2Ug deadlines, to avoid losing data.
2. Predictability, avoid quality degradation in multimedia systems.ك2h o5o'֜+ -YG.Hp*-Conspicious consumption is one where our relative position to others matters: inconspicious consumption is one where we buy things mostly for themselves. Inconspicious consumption often lets us spend more time with people (e.g. vacations), and makes us happier on the net.XήBY.H2t3-What is an explanation for why we wish to reciprocate good deeds?(󚧯F13IF3-Priority inversionn槈򡨫; -.HT+3-What are the three things that the targets of popular villain hysterias have in common?&悏׆-%23-Multiprogrammingh M2g-Scheduling algorithm goals for real-time systems (in addition to the normal ones):

1. Meeting deadlines, to avoid losing data.
2. Predictability, avoid quality degradation in multimedia systems. 55|QygReasons to u=oScheduling algorithm goals for batch systems (in addition to the normal ones):


1. RespSScheduling algorithm goals for interactive systems (in addition to the normal ones):

1. Response time, respond to request quickly.
[...][2C{kScheduling algorithm goals for interactive systems (in addition to the normal ones):


[...]
2. Proportionality, meet users' expectations.<2 Scheduling algorithm goals for real-time systems (in addition to the normal ones):

1. Meetintion is one where we buy things mostly for themselves. Inconspicious consumption often lets us spend more time with people (e.g. vacations), and makes us happier on the net.X.Hp+ #狖󚦥 '3I 3-Block devices`炏 r3?[-When a virtual machine program executes a privileged instruction, this component is trapped to process it (execute instruction if coming from the OS, emulate response if coming from user mode program).X炇jb=%3JWj3-Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is [...]. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.^ꆓ w83'*Š-A computer in which two or more CPUs share full access to a common RAM.;G(5BO\iv,9FS`mz #0=JWdq~ʒb󚧣X񳘐󚦊ʒb󚧣X񳘐󚦊Ƃ瓕Ѐ僖}卢bկ˯Ӛ֜+狖󚦥 現󗤼8ҝUәTӕӗġ鍟Ә8өʒƣ󚪶ׁӕΨӕӕk߶첞ӗąua󕬺ӕē NJݏӘnӚȬKӘ􉙈ﳎ󍍕$ƽӘ!Ә)*ӕg-󕾂ч/񊣳`6˯9Ӻ:삳;򲬳=ߒӕAԯDӘ y 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is [...]. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.;3JWj VVd9tނziLinux interproceGIn RPC implementations, a smGIn RPC implementations, a small library procedure that represents the server (client) procedure in the client's (server's) address space and hides the fact that address call is not local. 3?g,&AIn UNIX, parent and child processes share both program text and data after a fork. The data pages a3]In machine learning, a decision boundaryjk2#z6cIn machine learning, constructive induction?2%݁oSIn machine learning, creating new attributes that are composites of two or more attributes. Helps ea7In machine learning, the bounder between two neighboring regions of different classes2#z8gIn the context of computing, a base register.Y29iIn the context of computing, a limit register.<Q2T:kIn the context of operating systems, an upcall.;2,  Increasing the intensity of stimulus exposure, increasing the duration of the stimulus, shortening the interstimulus interval.ƛ.he type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
[...]
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.=2E8 g現󗤼8->\2E83-Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
[...]
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.wap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.μ93]
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. iHҝUqZ2N3-The contents of a process on the operating system.@ӕa^ 2񽠉3-A word-processing example of thread usage.:篇ݣ SHQ3]-Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming. OS.
In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.m%3?.ΐ MM1әTC\3&nT3-Physical (copy/backup) dumpmۤәΐ 93?.Ώ-Multiprocessor operating system types

1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions..
User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.л3I /?/ӕi2a3-Systems relevant for whether to use (non)preemptive scheduling algorithms.

[...]
2. Interactive, uses preemptive algorithms.
3. Real time, may use nonpreemptive algorithms.6 K!3I-I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.-weight:600; color:#0000ff;">[...]

2. Interactive, uses preemptive algorithms.
3. Real time, may use nonpreemptive algorithms.Å2a f-0f?ӗġ ]2"!Ϡ-As we go down the tree, the number of records becomes smaller. At the leaf nodes, the number of records may be too small for a statistically significant classification."󘜹ɖ #l3ɖ-What to consider when deciding what processes to swap to disk?

1. Process size. Bigger processes need more memory.
2. Paging rate. Obvious.
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.F꩒΂mF. '㠉3-𨹄. ]. .-Feature selection occurs naturally as part of the data mining algorithm. E.g. decision tree classifiers.@販߶aL. /3-Two unsupervised discretization approaches">1. Process size.
Bigger processes need more memory.
2. Paging rate. Obvious.
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.ѯ3ɖ R鍟Ә 37Š-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether t́#釈*%"hy-)3-Meaningful operations on ordinal attributes are mode, entropy, chi squared test, [...].e stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.437he virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.ass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.

2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.W/3?i1 8 ij38-Memory management algorithms for finding an n
1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.om a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.ҧ38span>-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.nt process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.2@ UUEU0ө?5?g3-How does existing within a physical system prevent the information available to us from being actual information?+ɗ.7Cu.Hd.3-The Happiness Formula󍍕i1J砉3-Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
[...]
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z 򓕯 eg2@-When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs. = y
[...]
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z'1Jss is assigned a time interval, a quantum, during which it is allowed to run).
[...]
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).=2 oo^ʒƣ k37F-Page replacement algorithms

1. Optimal (th؆ǧӕk23-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
[...]
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.(37Feoretical).
Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.te problem.
[...]
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.G2! KK*3g2!3-Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
[...]
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.al information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
[...]
- The intentional content of X can become globally available for the selective control of action.d5? 5󚪶 }JO3J-The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
4. Hardware@٘ө_5?砉3-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
[...]
- The intentional content of X can become globally available for the selective control of action.Standard library (open, close, read, write, fork...)
3. Linux operating system
4. Hardwarek3J $0Xl  4H\p$D8L`0t8L`t(C3?dNi_?3?dO37D֒}37D37Dm37D3ř#3ř3řkw3řG3q03qG3q.3q޹2&st2&t޹2&sl;2&t2k=2k2 vQ2 m3Uy[3U.H,'FX.H,'F3333\3U3?q3?U3?sg3?M2gك2hM2gE2gRY3Ip3IpRY3IprT#3Ip3&]e{3&3&q3&(C3?dNi3?dO(C3?dNi_?3?dO37D֒}37D37Dm37D3ř#3ř3řkw3řG3q03qG3q.3q޹2&st2&t޹2&sl;2&t2k=2k2kL"2km3U# 13U3I;H`3I;3I;hw3I;2 o2 )A3'M|3'N)A3'MK`3'N?3Iє3I?3IǪ3I3^ 333{2Ɣ" 2Ɣ" 33 zT&RI/O communication techniques

1. Programmed IO. CPUm+KI/O communication techniques

1. Programmed IO.e?I/O communication techniques

[...]
<e+KI/O communication techniques

1. Programmed IO. CPU consoSI/O communication techniques

1. Programmed IO. CPU conJkKI/O devices such as disks that contain multiple data blocks that can be accessed independently.I3I e?I/O devices such as keyboards or printers that generate or accept a stream of characters.e3I#;d=I/O software layers

1. Interrupt handlers.
[...]

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.yꩫƣQk37F3-Page replacement algorithms

1. Optimal (thݎӘ t"3Y-Functions that are called by an object file or a library that the object file calls, but that are not present in the object file itself.Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
[...]
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.ԥY37Feoretical).
Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
[...]
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.oluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.)3J:0 ++rL&d=Three types of UMA multiprocessors

1. Bus-basewcThree types of UMA multiprocessors

[...]
1. Bus-based architecture.)Three types of UMA multiprocessors

1. Bus-based architecture.Âd=Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access tied=Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access ti!Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access ti'Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access tiyc;Three types of multiprocessor systems

1. MR/span>
2. Ready (runnable; temporarily stopped to let another process run).
3. Blocked (unable to run until some external event happens).դ2c vΨӕ],K23-Four principal ways that causes processes to be created:

1. System initialization.
[...]
3. A user request to initiate a new process.
4. Initiation of a batch job. gʥ2"-A system where computers have e.g. a small cache memory, a larger main memory, and a yet larger disk storage.^ӘD 37D-Page replacement algorithms

1. Optimal (th cql72c3-The three possible states of a process.

[...]
2. Ready (runnable; temporarily stopped to let another process run).
3. Blocked (unable to run until some external event happens).Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.֒}37Deoretical).
Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.style="font-weight:600; color:#0000ff;">[...]

3. A user request to initiate a new process.
4. Initiation of a batch job.9E2nel calls, which can be very fast.
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
3. Better scaling, as threads don't need to be stored in the kernel.}2ZT Eb}}E.ӕk=]2j3-A Process Control Block.uӕIz_2Qנ3-Scheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of the CPU.
[...]
3. Balance, keeping all parts of the system busy.Cƒgm.H?Π3-Why might we be blind to our own selfishness?Ek. ,Tՠ3-Two approaches to binarization and their issues?ѓ _$'w3JŘ-0-99 (real-time), 100-139 (non-real-time)ߠӕT N2ZS-Advantages of implementing threads in user space:

1. Thread switches can be made without kernel calls, which can be very fast.
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
3. Better scaling, as threads don't need to be stored in the kernel. )0DXl  4H\p$8L`t3-Å2a3-M. /3-ѩI. '3-A-*3-'1J3-Å2a3-M. /3-ѩI. '3-A-*3-'1J3-.Hd.3- 5?g3-=23-G2!3-d5?3-ԥY37F3-դ2c3-9E23-. ,T3-*1.H?3-;=2Q3-^-2k3-Yq3 d3-}.>u3-333-q2*3-E3SM3-$c3J3-z.a3-2f3-U-a3-ݠ3I,K3-?2_3-ޤE3?g,3-ު3J3-2Ϩ3-w1J$3-3ô3-m3?da3-W33-}373-=-;3-E2g3-)3 *3-)3x`3-?2%the CPU.
[...]
3. Balance, keeping all parts of the system busy.;=2Qsame-width intervals. Can be badly affected by outliers. Equal frequency (equal depth) tries to put the same number of objects into each interval.؟. / 2߶ CL. /-Equal width takes a number n and splits the attribute into n same-width intervals. Can be badly affected by outliers. Equal frequency (equal depth) tries to put the same number of objects into each interval. )0DXl  4H\p$8L`t-=5?(-3Iw-L.H^g-.!|-. s-=5?(-3Iw-L.H^g-.!|-. s-93&s/)-3-3 -3 -!5?-P3 -M!3B-. TZ-3?D}-@. 9V-.H -A_. *-|.3$-5?1-F2-~2r-3V-q3&-3I-W. -2fi-]3:B-3?H-Y3?EP-?. Iz-3N0-3\-q3I -=3&^W-2%P-G2-3Dt-`3 -2!+-u3Iʓ--2-te problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.2" 9첞ӗą Q2"-Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.[...]

2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.Yq3 d y06uM^.>u3-Classification error for class t?әʱ _3?%1-A NUMA architecture with coherent caching|֮W|3 dڠ3-(Dis)advantages of contiguous file allocation

[...]
2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.om a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
[...]
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.33 [3Ѡ3-Memory management algorithms for finding an n-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
[...]
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow. system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.2 CC2 C2Π-Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors. system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
[...]
5. Threads cannot take advantage of multiple processors.q2* zz6aM.a3-The definition of classification{퉌UJO3J3-The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. Standard library (open, close, read, write, fork...)
[...]
4. Hardware0ӘMADm3SM3-The copy on write approach{*U?2)3-Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
[...]
5. Threads cannot take advantage of multiple processors.Standard library (open, close, read, write, fork...)
[...]
4. Hardware$c3J pLM&󕬺-j92f3-A pop-up thread.T? xG.>-It intensifies, it starts earlier, and it decays more slowly.דڝ I2ڛ-To mimic the functionality of kernel threads, but with the better performance and greater flexibility of threads in user space.Ӎ$ k1J$-Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, zÐ[ iO+.y[-Define p as a percentage between 0 and 100, and compute a mean that has the top (p/2)% of the data thrown out. = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z*=1J$ght:600; color:#0000ff;">2. DMA controller requests device controller to move data to memory.

3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.3Is &ln3[Four principal ways that causes processes to be create:iFactors to take into a?uFly-by mode (in the context of Direct Memory Access)+3Iv*a7For a fish in the sea, missing a cue for food has a low cost, but missing a cue for a predator has a high cost. The organisms reacting more strongly to bad things than good things have been the ones that survived.d/.H 睁QFor each attibute, calculate the mean, then return

[$$]\bar{x} = (\bar{x_1},...,\bar{x_n})[/$$]

where [$]\bar{x_i}[/$] is the mean of the [$]i^{th}[/$] attribute [$]x_i[/$].?~.95aFour benefits of dimensionality reduction?oE. ΂3[Four principal ways that causes processes to be created:

1. System initialization.
2. Exe+Four principal ways that causes processes to be created:

1. System initialization.
2. Exe|3[Four principal ways that causes processes to be created:

1. System initialization.
2. Exe: Jӕ s;Mq2-Replace a process' core image. Parameters:

name = name of the file to be executed
argv = a pointer to the argument array
environp = a pointer to the environment array g3Is-DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task. ,0DXl  4H\p$8L`tO3IhÛ3I.[3Iv*h3Iv*2W}<2W>=.Hz/.H>13 x3 ї3 AUw23 AVFG3?DW-Vk3?DX 3۸'3 3F o3CI.H$.H$CI.H$a.H$ai.ħ. ai. .t3?g+ 3?g,t3?g+ޤE3?g,c2 2c2c2F3?L1:3?L1:F3?L1:Cg3?L1;>13 KC3!cG3JdB3JdcG3Jd53Jd3I沽3I3IN3I 3i1(aA3i1 3i1Nh3i13?W3?3? 3?>=.H J{.H|22|2S2ї3 AU9J3 AV3?%1١3?%13?%1 \33?%1.[3Iv*+3Iv*.[3Iv*h3Iv*5?|&5?|5?|[/5?|C2f_2fiC2f_I2fi2W2WA2_?2_A2_R2_?a3?%e3?%e?a3?%eE3?%e3- y3- uests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.ܑ13Is //"ē #, 3I,-Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead. '3IsР-DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task. period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.!3I,>
1. Phenomenal. The states are phenomenally experienced as "internal".
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
3. Physical. The states exist physically within the organism.5?| pNJ?O-a㠉3-Meaningful operations on ratio attributes are mode, entropy, chi squared test, median, percentiles, mean, standard deviation, Pearson's correlation, t-tests, [...]?  uY5?|-Three ways by which mental representations are internal.

1. Phenomenal. The states are phenomenally experienced as "internal".
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
3. Physical. The states exist physically within the organism. wap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.N53
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.  ݏӘn uzx3 n-Two major issues for any paging system:

1. The mapping from virtual address to physical address must be fast.
2. If the virtual address space is large, the page table will be large.:Ә SZ3-Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming. mapping from virtual address to physical address must be fast.

2. If the virtual address space is large, the page table will be large.t}3 nfacing for device drivers.
Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
[...]
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.ݠ3I,K [[ӚȬKU3I,K3-Functions of device-independent I/O software

1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
[...]
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.,y) => 0 for all x, y

d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z 1I  M1I-Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
[...]
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.?2_ ??|Ә􉙈 W83-The first block of an active partition, which loads the operating system contained in that partition.0󕗖_?A2_3-Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
[...]
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.re set as read-only until either process tries to update a memory word, at which point the page in question is copied and both processes have their copy of the page set as read-write.ޖ3SM rL&&y3Master Boot Record fAMain alternatives for real-time scheduling


1. Pipes. Cha  Linux interprocess communication

[...]<Ӄ%?Linux scheduling is based on [...], and distin'CLinux scheduling is based on threads, and dist 6aLinux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (hi+Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (hia+Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (hiLinux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (hiI s[s]ﳎ󍍕$k1J$3-Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
[...]0ﰛϨA2Ϩ3-Windows process hierarchy.p׳Ύ?3J3-Linux interprocess communication

1. Pipes. Channels between two processes, into which one process can write a stream of bytes for the other to read.
[...]*煮ә΀,5t3?g+3-Client (server) stub1гM ADm3SM-In UNIX, parent and child processes share both program text and data after a fork. The data pages are set as read-only until either process tries to update a memory word, at which point the page in question is copied and both processes have their copy of the page set as read-write.Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process._2Z\ !y!EƽӘiUV3ôࠉ3-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or |󕫌\ W2Z[-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.n the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
[...]3ô ==^3J What happens to the xeWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter on th{What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on thيHWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter on thoWhat happens on a page fault?

1. Hardware trapNWhat happens on a page fault?

[...]
J What happens to the opponent stimulus after many stimulations?c.>GWhat happens when people lose the ability to feel emotions?SGa.HZ&AyWhat is an asymmetric attribute? (in machine learning)-JMWhat is an explanation for why we wish to reciprocate good deeds?9u.H2t=qWhat is conspicious and inconspicious consumption?V?.Hp+@wWhat is required for journaling file systems to work?3W;re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
[...]an>

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.@3'mU e}eӘ4373-Page replacement algorithms

1. Optimal (th&󘜹 {33-What to consider when deciding what processes to swap to disk?

1. Process size. Bigger processes need more memory.
[...]
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.+۹ɦa73?da3-Remote Procedure CallCЖәU eR3'mT-Three key characteristics of NUMA multiprocessors

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.600;">1. Process size.
Bigger processes need more memory.
[...]
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.W3$Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
[...]
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.}37_A&| Three types of UMA mul Three types of UMA multiprocessors

1. Bus-based architect}7L Time required to read or wri Three types of UMA multiprocessors

1. Bus-based architect}$=Three types of multiprocessor systems

[...57L Time required to read or write a disk block is determined by

>qTwo major issues for any paging system:

1. The mapping from virtual address to physical address must be fast.
[...]3 2/Type 1 hypervisorv3?\@TTypical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
3. Fatal error (involuntary).
[...]w2'eoretical).
Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
[...]
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.al information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.5? e )'15?-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action. , ,ZӕgM2g3-Scheduling algorithm goals for real-time systems (in addition to the normal ones):

1. Meeting deadlines, to avoid losing data.
[...]ߓx ׹3?_w-A virtual machine that analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.Kw){-;3-Give three strategies for dealing with missing valuesjә 3?a3?%e-A multiprocessor system with a database telling where each cache line is and what its status is. When a cache line is referenced, the database is queried to find out where it is and whether it is clean or dirty. rrL&&xeThe structure of a generic page table entry

1. The page frame number
2. Present/absent bi9lMThe structure of a generic page table entry

1. The page frame number
2. Present/absent bi,xeThe structure of a generic page table entry

1. The page frame number
2. Present/absent bixeThe structure of a generic page table entry

1. The page frame number
2. Present/absent biqxeThe structure of a generic page table entry

1. The page frame number
2. Present/absent bi_fAThe structure of a generic page table entry

1. The page frame number
2. Present/absent biۃxeThe structure of a generic page table entry

1. The page frame number
2. Present/absent bi9lMThe structure of a generic page table entry

1. The page frame number
2. Present/absent bi,xeThe structure of a generic page table entry

1. The page frame number
2. Present/absent biss is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU)./2Q r󕾂ч CK2Q-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).ach file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
[...]
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.)3 * "񊣳`#O3x`3-(Dis)advantages of policy/mechanism separation within an OS

[...]
2. Extra overhead from crossing the user-kernel boundary.
3. Extra overhead from sending various messages between pieces of the system.>哘[Dg3 *3-Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
[...]
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.lor:#0000ff;">[...]

2. Extra overhead from crossing the user-kernel boundary.
3. Extra overhead from sending various messages between pieces of the system.)3x` >_| >Ci& 7A write-through cache5%3&,/A virtual address y3A virtual machine that analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.3?_x5aA word-processing example of thread usage.E2%AAbsolute Average Deviation4/.N&CAccuracy (machine learning)b.!|5_Advantages of a large page size

1. Allows for a smaller page table, reducing its space rL:iAdvantages of a large page size

1. Allows for a smaller page table, reducing its space requirement.
[...]d]3F̡/SAdvantages of a large page size

1. Allows for qWAdvantages of a large page size

[...]
1. Reduces the amount of data wasted due to internal fragmen_4 #<#!  Four principal ways that causes processes to be created:

1. System initialization.
2. ExegFirst ask for something, then when the other person says no make a "concession" by asking something less instead.|j.H=2LyFour ways of implementing sending on multicomputers

1. Blocking send (CPU idle during messag*KExamples of interval attributes2anQE.g. processing an image to extract high-level features such as certain edges from the raw pixels. !. )0duDynamic vs. static swap area allocation

[...]<QRDisk arm scheduling algorithms

1. First-Come, 'CDisadvantages of implementing threads in user space:

1. If a thread makes a process-blocking.QDisadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-compleV<e/A block on a partition, with key parameters about the partition such as the file system type, the numbee/A block on a partition, with key parameters about the partition such as the file system type, the number of blocks on the file system, and so on.3fpUA variable-length independent address space used by a process. Something the programmer is aware of.Q3aGBenefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the u9gDevice driver general structure

1. Check the input parameters for validity, then possibly co%2PFunctions of device-independent I/O software

[g[+I/O buffering alternatives

1. Unbuffered input. User pyC{Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'vxuPleasures are delights that have clear sensory and strong emotional components, such as good, sex, R?sReplace a process' core image. Parameters:

name = name of the file to be executed
argv = a po(yMotivations for virtual machines

1. Reliability. If earuPleasures are delights that have clear sensory and strong emotional components, such as good, sex, R?sReplace a process' core image. Parameters:

name = name of the file to be executed
argv = a pointer to the argument array
environp = a pointer to the environment array=2PSix operating system designs

[...]
<A[+The layers of a Linux system

[...]
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
4. Hardware3J>ly, without wasting disk space.
2. Most files will span multiple blocks and thus need multiple seeks and rotational delays to read them./ 3&`} A˯cia?2%ܠ3-In machine learning, constructive induction@񌪳 _G=2-The part of the operating system that keeps track of which parts of memory are in use, allocates memory to processes that need it, and deallocates it when they are done.:ә S'3&`}-(Dis)advantages of a small block size for disk memory

1. Small files can be stored effectively, without wasting disk space.
2. Most files will span multiple blocks and thus need multiple seeks and rotational delays to read them. ++rL&uThree ways by which mental representations are internal.internal
.internal
.internal
.internal
.internal
.

d000ff;">1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).B2i rӺ C4U2i-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU). 3ZZ삳 v2 -Hardness of minerals, {good, better, best}, street numbers, grades.Qۄә ,3?-An instruction that causes a trap if executed in user modeAәc 3?: 3-The dimensions of multiprocessor schedulingF˵m2Z3-Policy/mechanism decoupling in operating systems4ӘIK+3BԠ3-Memory management with bitmapsG񖸲 mt.H-Everything we see triggers in us varying degrees of like or dislike. We also like our own name, which slightly biases us towards words and names that sound similar to our name.pҳ9?"2*93-The three possible states of a process.

1. Running (actually using the CPU).
2. Ready (runnable; temporarily stopped to let another process run).
[...] v-KvJ򲬳s3'3-Bus-based UMA multiprocessors

[...]
2. Internal cache reduces the memory accesses. Needs a cache-coherence protocol..ә=,3?3-A privileged instructionӘ b3xР3-What does a paging system need to do when starting a new process?

[...]
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.Hȳo23-Scheduling algorithms used in batch systems

1. First-come, first-served.
[...]
3. Shortest remaining time next.00; color:#0000ff;">[...]

2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.G3x >{n>&ߒӕ -"o2u-[$]1 - p^{n}[/$]̓#SW3#3-Requirements for long-term information storage

1. It must be possible to store a very large amount of information
2. The information must survive the termination of the process using it
[...]_Ӛ3It)3-DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
[...]{򼊓 U3a-A variable-length independent address space used by a process. Something the programmer is aware of.uests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
[...]3It)amount of information
2. The information must survive the termination of the process using it
[...]03# >{0&C{ReQRequirements for long-term information storage

1. It OScheduling algorithm goals for real-time systems (in addition to the normal ones):

1. M Scheduling algorithm goals for real-time systems (in addition to the normal ones):



1. First-come, first-served.
2. Shortest job first.
3. Shortest remaining time next.C2Y3[Scheduling algorithms used in batch systems

1. First-come, first-served.
2. Shortest job first.
[...]'2XNScheduling algorithms used in batch systems

1. First-come, first-served.
2. Shortest job first.
3. Shortest remaining time next.(_2 OO6ԯ Kp2/-A scheduling algorithm that will let a process run for some maximum amount of time before switching to another process. Uses clock interrupts for this purpose.f賙ұ+a3?i13-RPC implementation issues

[...]
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.u IeW!.-Primary process A activates, then the more sluggish opponent process B activates to counter A.n some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.C3?i1 period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.m3IE ~S~JӘ  s3- -Ways to reserve swap space for a process

1. When a process starts, reserve an amount of space equal in size to the core image of the process.
2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapepd back in."󛱓ū #M:3IE-Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.space equal in size to the core image of the process.
2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapepd back in.y3- y.
If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.3?pW ESEӚe3I3-Main alternatives for real-time scheduling

[...]
2. Earliest Deadline First. Run the process with the least time to its deadline, pre-empting a running process if necessary."۳W #MQ3?pV-Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems..]

2. Earliest Deadline First. Run the process with the least time to its deadline, pre-empting a running process if necessary.沽3I (n w(?cBus-based UMA multiprocessors

1. Only one CPU @!Boot blockqG3AwBox plot. Lower and upper ends of the box are [...], the middle line is [...], the tails are [...], and + marks represent [...].1.RpyBox plot. Lower and upper ends of the box are the 25tC.SBurst mode (memory bus access mode) 3IuLBus-based UMA multiprocessors

1. Only one CPU can access memory at a time. If line is busy, FBus-based UMA multiprocessors

1. Only one CPU can access memory at a time. If line is busy, requesting CPU must wait.
[...]xE3'"?sBus-based UMA multiprocessors

[...]
2. Internal cache reduces the memory accesses. Needs a cache-coherence protocol.c3' ))L̠pwa(+.Rg3-Box plot. Lower and upper ends of the box are [...], the middle line is [...], the tails are [...], and + marks represent [...].triping.
No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.矫3IƂ @@5Ƃ I%va3IƂ-RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. Ӻe4U2i렉3-Scheduling algorithms used in interactive systems

[...]
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).YY 2X-Scheduling algorithms used in batch systems

1. First-come, first-served.
2. Shortest job first.
3. Shortest remaining time next.000ff;">[...]

2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).L+2i (0DXl  4H\p$8L`t 3&sAHPS3&sAH 3&sAHJ3&sAH3J7?3J73J73J7 3I–JuG3I–J 9U2o22"!~`2"!_.-.-_.-ZǑ.-3J iy3J 3J ʏ3J S2<2<S22. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.m3 ++rL&X%Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking'CDisadvantages of implementing threads in user space:

1. If a thread makes a process-blockingTY'Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking'CDisadvantages of implementing threads in user space:


1. First-Come, First-Served.
2. Shortest Seek First. Alway‚]/Disk arm scheduling algorithms

1. First-Come, First-Served.
2. Shortest Seek First. AlwayRDisk arm scheduling algorithms

1. First-Come, First-Served.

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.al information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.=5?( hh ө( ytE5?-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.nvert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.3Iw nvTŽ| 0.!{-(number of correct predictions)/(total number of predictions)mӃ򡽲g 9?.H^f-Because the elephant feels pleasure when we take a step towards the goal, but may not recognize all progress as the same goal. Easy-to-measure points may help motivate us, but also subject us to living by a cliche.󚦯w m 3Iw-Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information. )0DXl  4H\p$8L`t-38p-3'@-3'E-w2<-i2$-38p-3'@-3'E-w2<-i2$-{3W;-&3I1-)3M-g.#m-2-3-3?DE-k.4-ƙ3?//-PS3&sAH-2 w-Ra. Hh-.Hk}-י.HQ -13?d*"-3Is-W24J-c2- !. )0- 2#V-D_3N-3 n -M2-G. ;- 02k- J{.H- r)3?- I3I$- R. a- O[2!- 2L - e3?h- c3¡- !3IH- I3]- 3 WΠ) 1K3&s/)-(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.U , .1젉3-Decision tree attribute test conditions for binary attributes?g->.H4Š3-Why do we feel resentment and vengefulness if people fail to repay their favors?'Գ;/U3I#;3-Character devicesn ; . s-An alternative to feature subset selection, which gives the attributes varying weights. )0DXl  4H\p$8L`t3-E3B3--2Z3-c3?:3-C23-G3x3-E3B3--2Z3-c3?:3-C23-G3x3-cM3?3-c3'3-3It)3-03#3-C3?i13-沽3I3-1.Rp3-L+2i3-3I#;3-.H43-o.13-e#3W%a3-/33-2N3-$. Iz3-\53Jr3-oE. 3-ԛ3IN3-#3ř3-7223-3?3-a.H$3-33-3I–J3-3- 3-c.>3-3IJ3-A+373-#2L 3-3?L1:3-3 3-m3?pW3->2ڜ3-V33Is3-. s3-q.e.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.93&s/) @lF g@QRatiod2(+Ratio attributeQvU-}x)GRPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turneBt]RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turneC3[RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turnet]RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turneG'CRPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turnet]RPC implementation issues

1. Cannot normally p͂[+RPC implementation issues

[...]
2. IB'Random access gw3׊sRe-mapping memory references to the address space of a process during runtime, using e.g. base and limit registers.323 SiS Ә u3 -Two major issues for any paging system:

1. The mapping from virtual address to physical address must be fast.
2. If the virtual address space is large, the page table will be large.ó 3ڠ-Reasons to give processes some control over the virtual memory map

1. If several processes can share the same pages, high bandwidth sharing becomes possible.
2. Sharing of pages can be used to implement a message passing system, with one process unmapping a page and another mapping it in. Thus, data doesn't need to be copied.d٤a'k3W%`3-Operations needed for file deletion in UNIX

1. Remove the file from its directory.
2. Release the i-node to the pool of free i-nodes.
[...]an share the same pages, high bandwidth sharing becomes possible.
2. Sharing of pages can be used to implement a message passing system, with one process unmapping a page and another mapping it in. Thus, data doesn't need to be copied.3ess must be fast.
2. If the virtual address space is large, the page table will be large.3 t
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.3 󘌗 e5%3 -The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.al information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.!5? hh  y5?-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.om a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
[...]
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow./3 ==8OkR3ߠ3-Memory management algorithms for finding an n-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
[...]
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.ize of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.P3  %Eəzk U. Iz3-(Dis)similarity metrics for nominal attributes?ѓN q2N3-Four principal ways that causes processes to be created:

1. System initialization.
2. Execution of a process creation system call by a running process.
[...]
4. Initiation of a batch job.P M3 -What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.cution of a process creation system call by a running process.
[...]
4. Initiation of a batch job.2N KK%l*9iIn t8eI/O software layers

1. Interrupt handlers. Receive thed=I/O software layers

1. Interrupt handlers. Receive the˃W#I/O software layers

1. Interrupt handlers. Receive the$d=I/O software layers

1. Interrupt handlers. Receive the&AI/O software layers

1. Interrupt handlers. Receive the<mIf x is the mean of the attribute values and sx is their standard deviation, then x' = (x - x) / sx. _. A@Â+KIf particular events must occur within a specified number o hEIf the object classes are the same, similarity 1 and 0 otherwise. Reverse for dissimilarity.?. Iz 35Z I. TZ-High dimensionality makes the data space sparser. Classification may not have enough data objects to create a model that reliably assigns all objects a class.@ai. 3-Four benefits of dimensionality reduction?G׆ӚrmI3Jr3-Linux scheduling is based on threads, and distinguishes three classes:

[...]
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.BӤ cK+3BԠ-Memory is divided into allocation units, each of which corresponds to a bit in the bitmap. Simple, but searching the bitmap to find the space for a new process takes time.ght:600; color:#0000ff;">[...]

2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.\53Jr Oz5)IMeme?Meaningful operations on ratio attributes are mode,6aMany algorithms work better with less attributes; the model may be easier to understand; the data may be easier to visualize; the algorithm runs faster and in less space.W. *KMapping the data to a new space=]A. *b.s[Mark each page with a counter indicating when it was last used, then remove the oldest one when needed.Vu}3&~W'EMarshalling (multicomputers)tI+3?h3Master Boot Record 3.QMeaningful operations on interval attributes are mode, entropy, chi squared test, median, percentiles, [...]?Q-a7Meaningful operations on interval attributes are mode, entropy, chi squared test, median, percentiles, mean, standard deviation, Pearson's correlation, t-tests?uh-7eMeaningful operations on nominal attributes?x--d be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
[...]
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.ԛ3IN Qν_3IN3-Goals of I/O software

1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
[...]
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.om a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
[...]
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.#3ř yy|䳘řW3ř3-Memory management algorithms for finding an n-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
[...]
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.may be generalized from.
[...]
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.722 }}xOaf22⠉3-Reasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records may be generalized from.
[...]
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.ch service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
[...]
5. Software development. A program can be tried on several operating systems.3? hh әy'R3?3-Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
[...]
5. Software development. A program can be tried on several operating systems.available CPUs.
2. Advantage is taken of cache affinity when possible.
3. By giving each CPU its own ready list, contention for the ready lists is minimized.3?D} ooWu&'CDisadvantages of implementing threads in user space:

1. If a thread makes a process-blockingTY'Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking'CDisadvantages of implementing threads in user space:

[...]
1. Sta \_8\Q󚧅J 3I–J3-Ways of dealing with bad sectors

1. Substituting a spare for the bad sector. Reading the whole track takes two turns.
[...]+𹟂55Y33-Modern Operating Systems: Memory management chapter summary

1. The simplex&КV +G. 9V-Comparing people based on the variables age and income. With no transformation, the differences in income will dominate the differences in age.:ȏUCI.H$3-How can I change my affective style?Rғ} rƥ3?D|-Benefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the available CPUs.
2. Advantage is taken of cache affinity when possible.
3. By giving each CPU its own ready list, contention for the ready lists is minimized.wap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
[...]3st systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
[...] "A"| W3- 3-Ways to reserve swap space for a process

1. When a process starts, reserve an amount of space equal in size to the core image of the process.
[...]
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapepd back in.^ߟ椒 >N.3$-Either a potential outcome for each possible value, or group several together. "Single, married, divorced" can be split into {single, married, divorced} or e.g. {single},{married,divorced}.$Ы 'Ou. *-E.g. we have various artifacts made of various materials. A 'density = mass / volume' feature could be used to help classify their materials.4  GfC.H-Stimuli appeal directly to the elephant. Like a tired muscle, willpower soon wears down, but automatic systems run automatically, effortlessly and endlessly.space equal in size to the core image of the process.
[...]
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapepd back in.3- al information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.5?1 11U̲> xG.>3-What happens to the opponent stimulus after many stimulations?e )5?1-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action. nonpreemptive algorithms.
2. Interactive, uses preemptive algorithms.
3. Real time, may use nonpreemptive algorithms.F2 CC|Г W)2r͠-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.+ 5"'2-Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may use nonpreemptive algorithms.
2. Interactive, uses preemptive algorithms.
3. Real time, may use nonpreemptive algorithms.Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.~2r a;The task of learning a target function
1. The page frame number
1.e?The structure of a generic page table entry

[.}oThe system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.z3RȂ/The three possible states of a process.

1. Running (actually using the CPU).
2. Ready (rui fragmentation.
Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.3V kk ӘV si3U-(Dis)advantages of linked list file allocation

1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.facing for device drivers.
Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
[...]
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.3IJ &&J Memory space being wasted due to data not fully filling pages.Y3NziMemory management algorithms for ziMemory management algorithms for finding an n-&AMeaningful operations on ordinal attributes are mode, entropy, chi squared test, median, percentiles.ї-+e?Meaningful operations on ratio attributes are mode, entropy, chi squared test, median, percentiles, mean, standard deviation, Pearson's correlation, t-tests, [...]?U-aMeaningful operations on ratio attributes are mode, entropy, chi squared test, median, percentiles,L Measure the number of page faults that a process has recently generated. Assign it more pages if it produces too many page faults, and assign it less pages if it produces very few page faults. 3$?Median Absolute Deviationt./Memory compactiond'3R bbc3IJ3-Functions of device-independent I/O software

1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
[...]
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.nto the cache if block k is read. The OS can keep track of whether a file is being accessed sequentially or randomly to see whether this technique makes sense.q3& rL&;=ygAn illusion mOAdvantages of a small page size

1. Reduces themOAdvantages of a small page size

[...]
1. Thread switches can be made without4QAdvantages of implementing threads in user space:

1. Thread switches can be made withoutAdvantages of implementing threads in user space:


1. Thread switches can be made without ker#Advantages of implementing threads in user space:

1. Thread switches can be made without kerQo_A#993[I/O communication techniques

1. Programmed IO. CPU'wcHunt's algorithmHigh dimensionality makes the datFunctions of device-independent I/O software

1. Uniform inters$=Gang scheduling

1. Groups of related threads a-.e?Goals of I/O software

1. Device independence. It shoulNQ{General ways to combat overfitting / generalization error

1. 4hFGoals of I/O software

1. Device independence. It shoullHigh dimensionality makes the data space sparser. This makes the definitions of density and distance between objects less meaningful.Ra. HhAyHow powerful is the rider as compared to the elephant?_.H: ]Ӛ m3I-Disk arm scheduling algorithms

1. First-Come, First-Served.
2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.Aஓ aY-3&-A strategy of pre-emptively reading block k + 1 of a file into the cache if block k is read. The OS can keep track of whether a file is being accessed sequentially or randomly to see whether this technique makes sense.First-Served.

2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.3IRemove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
[...]
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.A+37clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
[...]
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. \37ˠ3-Page replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, <)6CP]jw -:GTan{ $1>KXdq~J̠pLƂMӺR󳚧Tө(VŽ|XΠ)J̠pLƂMӺR󳚧Tө(VŽ|XΠ)\Ә`󘌗bdfəziZmνo䳘řqsәv󚧅Jy |̲>~ГӘVӚ:ѓȬޓڜƳPܳ܉ϳә㳕ΥP󕾂t󘜙]ӕ譇Գ3әxՕ󙞣@<퓕Ž|󗤢ۅՈ|ڀĄӘ݀ԊH׈0⁋ד䁺ꓚן}ꂜӕ킢Ȫ"Әݣ𳕾J󍓍Ӯ0 k4:mkw:MF3?L1:3-Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
2. All members of a gang run simultaneously, on different timeshared CPUs.
[...]B͞i cC2f_-The contents of a process

1. Stack (work area)
2. Data (variables)
3. Text/code (executable instructions)o =2L 3-Typical ways for a process to terminate.

[...]
2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary).A ai. -Many algorithms work better with less attributes; the model may be easier to understand; the data may be easier to visualize; the algorithm runs faster and in less space. 33VuOt&kKVirtualization types

1. /UUniform Memory Access multiprocessorm-3'Variance.9Via meditation (breaking of attachments), cognitive behavioral therapy (catching and changing negative thoughts), and psyche medication..H$$?Virtual Machine Interface3?[3Virtual file systemj3Y̓kKVirtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileuVirtualization types

1. Type 1 hypervisor. When a virtual machine progr";UNIX process hierarchy.S2,3Undefined externals:U3Y/UUniform Memory Access multiprocessorm-3'Variance.9Via meditation (breaking of attachments), cognitive behavioral therapy (catching and changing negative thoughts), and psyche medication..H$$?Virtual Machine Interface3?[3Virtual file systemj3Y̓kKVirtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privile -|0DXl  4|H\p$8L`t63Jt"I3Jt.a}.bW.HWG,)E.HWG?.H^f9+.H^f?.H^fL.H^gI3I}z\G3I}zI3I}z)3I}zg33?aQ`3?aRg33?aQ63?aR3&r9u3&r93&r9hO3&r9M1I 1IM1Ii1I2(O2(P2(O 2(P 3&sAHPS3&sAH 3&sAHJ3&sAH3J7?3J73J73J73W;Ȗ3W;3W;{3W;2u_2u2u2u.az.a,3?l%3?,3?cM3?y3?rW3?ty3?re3?s\3&nTφM3&nT\3&nT/3&nUu39_PO39_Pu39_P%39_P2z&ߏ2z&2z&VD52z'222.v22.w222.v22.v32E/%2F32Eo2E 2%OɁ2%P 2%O2%P63Jt"I3Jt63Jt"3JtSG3R73R8SG3R7Q3R83J4s33n3ers of a gang run simultaneously, on different timeshared CPUs.
[...]3?L1: uJvuvѓȬ K;3?H-Virtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.I򳘌q3 3-Two major issues for any paging system:

1. The mapping from virtual address to physical address must be fast.
[...]+Әœ 5&u3:B-The amount of CPU time that a process has actually used since it was started (as opposed to the real time that has passed since the process started) qrL&PWhat did the coin-flipping experiment tell us about moral hypocrisy?9 .HEr9What do we mean if we say that the representandum Y is an actual (aktuell) state of the world?/5?ڐiGWhat does a paging system need to do when a process is scheduled for execution?

1. Reset the2YWhat does a paging system need to do when a process is scheduled for execution?

1. Reset the#iGWhat does a paging system need to do when a process is scheduled for execution?

1. Reset the}What does a paging system need to do when a process is scheduled for execution?

1. Reset the\iGWhat does a paging system need to do when a process is scheduled for execution?



1. Determine the initial s+ged instruction, the hypervisor is trapped to process it.
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.3?Hbr>2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.m3?pW <<vޓڜKI2ڛ3-The goals of schedule activation research. (In the context of operating systems and threading.)9әWQMQ3?pV3-Motivations for virtual machines

[...]
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.4OkvaWait for a child process to terminate. Parameters:

pid = the child to wait for, or -1 for anuVirtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileDkvaWait for a child process to terminate. Parameters:

pid = the child to wait for, or -1 for an#;Ways of implementing files

1. Contiguous allocation. EɃ?sWays to reserve swap space for a process

1 nRWhat design constraint does multiprogramming impose on program design?72m|mWhat does a paging system need to do when starting a new process?

1. Determine the initial s;mWhat explains both addiction and thrill-seeking?AJ.gYWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter on thght:600; color:#0000ff;">[...]

3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.V33Is ZƳg3Is3-DMA steps

1. CPU programs the DMA controller via special registers.
[...]
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.-theoretic deterministic algorithm.
Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks.Y3?EP nnP m F3?EO-Processor allocation algorithms for load balancing

1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks. (R(ܳ܉ olc3\-Dynamic vs. static swap area allocation

1. Static. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 7 pages.
2. Dynamic. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 3 pages.  w 3N0-A drawback of hard linking. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.'/ . s3-Feature weightingsz E U. Iz-If the object classes are the same, similarity 1 and 0 otherwise. Reverse for dissimilarity.B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.3N0 >v/a9iAny one-to-pUAny one-to-one mapping for reassigning values is a permittedFAn instr:kAllowed transformations for interval attributes~ͽ2<9iAllowed transformations for nominal attributes>k2o29iAllowed transformations for ordinal attributesd27eAllowed transformations for ratio attributes<23TAn address which the memory management unit maps onto a physical address3c;An alternative to feature subset selection, which gives the attributes varying weights.. sjIAn entry in the process control table, with all the information about some particular process. 02kY'An example of variable transformation being useful in comparing two variables. 9VygAn illusion of shared memory for multicomputers, implemented by the OS instead of the hardware. Whe/An instance of an executing program, including the current values of the program counter, registers and variables. Thus, has its own virtual CPU.O2Utic.
If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 7 pages.
2. Dynamic. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 3 pages.3\nvert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.q3I )n):ϳә S ]'3&^WǠ-(Dis)advantages of a small block size for disk memory

1. Small files can be stored effectively, without wasting disk space.
2. Most files will span multiple blocks and thus need multiple seeks and rotational delays to read them.  mW3I -Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.000ff;">1. Small files can be stored effectively, without wasting disk space.

2. Most files will span multiple blocks and thus need multiple seeks and rotational delays to read them.=3&^W +rL+&8eThree key characteristics of NUMA multiprocessors

1. Bus-based architectThree key characteristics of NUMA multiprocessors

UMA multiprocessors

1. BP  Three types of [...]

1. Bus-based archi &&㳕ΥP  2%O-When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.1ܷCeW!.3-The opponent-process theoryrocess or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.2%Pss is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranteed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).G2 q󕾂 A yO2-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranteed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).uests device controller to move data to memory.
3. Device controller begins transferring data to memory.
[...]
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.3Is Jt s3Dt-(Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greater flexibility.
2. Extra overhead from crossing the user-kernel boundary.
3. Extra overhead from sending various messages between pieces of the system.`93Is3-DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
[...]
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task. flexibility.
2. Extra overhead from crossing the user-kernel boundary.
3. Extra overhead from sending various messages between pieces of the system.3Dt CCM]!7A copy 5_A copy process thUA cache in which all modified blocks are written to the disk immediately.c3&,_3A client computer packing the parameters of a remote procedure call into a message. e3?hSA computer in which two or more CPUs share full access to a common RAM.ͨ13'*Ƃ]/A confusion matrix. E.g. shows that a was mistaken as 2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.2!+ ']/[-S3-Nominal attribute9ӗ+ Qe2!*-Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive. a fixed priority, equal to the frequency of its triggering event.
2. Earliest Deadline First. Run the process with the least time to its deadline, pre-empting a running process if necessary.u3Iʓ QQ>ӕ譇 [2--Four principal ways that causes processes to be created:

1. System initialization.
2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job._ط2ʠ3-Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
3. Fatal error (involuntary).
[...]qӚʓ A,F3Iʓ-Main alternatives for real-time scheduling

1. Rate Monotonic Scheduling. Assign each process a fixed priority, equal to the frequency of its triggering event.
2. Earliest Deadline First. Run the process with the least time to its deadline, pre-empting a running process if necessary. .hh|0DXl  4H\p$8L`t 2 P62 PG=21S2G=2M 2n2! O[2!n2!t)2!m.H?*1.H?m.H?(#.H?c.H= .H=c.H=~.H=U3I,Kݠ3I,KU3I,K'Y3I,K363o[36C363)36C3aQ3a3ai73a[2gH2g[2g[2g{.H6.H6{.H6ffK.H6.HKw[+.HKx.HKwy.HKwe2l2me2l72m5?g 5?g5?gZ'5?gi. oE. i. W. w2!2!w2!3js2!%2?g2?%2?f2? U. Iz$. Iz U. Iz?. Iz ]'3&^W=3&^W ]'3&^W 3&^W!=386[38!=38S*+38!73'@3'@!73'@/3'@".k3?[3?[".k3?[73?["G3&33&3"G3&3U3&3"hy-)ї-+"hy-)A-*"/37j37jcution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.-2-y
&statloc = set this address to the child's exit status (normal or abnormal termination, exit value)
options = other optionsY2 i>Գ3[*w3?l33-RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
[...]
4. Global variables cannot be used, unless they are moved to the remote machine.-;$'w3JŘ3-Linux thread prioritiesJ“ ubS38p-Loading memory pages only on demand, not in advance.󋓕 aa2-Wait for a child process to terminate. Parameters:

pid = the child to wait for, or -1 for any
&statloc = set this address to the child's exit status (normal or abnormal termination, exit value)
options = other options Cd>CNFModifying the priorities of different processes on the flyPM3Iʺ/SModern Operating Systems: Memory management chapter summary

1. The simplest systems do not s+KModern Operating Systems: Memory management chapter summary

1. The simplest systems do not s/SModern Operating Systems: Memory management chapter summary

1. The simplest systems do not svQModern Operating Systems: Memory management chapter summary

1. The simplest systems do not s/SModern Operating Systems: Memory management chapter summary


[...]
4. Global variables cannot be used, unless they are moved to the remote machine.J3?l3te problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
[...]ӏ2" rL&j+kKFunctions of device-independent I/O software
1. Uniform interkKFunctions of device-independent I/OkKFunctions of device-independent I/O software

1. Uniform inter2vaFunctions of device-independent I/O software

1. Uniform interkKFunctions of device-independent I/O software

1. Uniform interFunctions of device-independent I/O software

1. Uniform interkKFunctions of device-independent I/O software

1. Uniform inter?Functions of device-independent I/O software

1. Uniform interkKFunctions of device-independent I/O software

1. Uniform inter9 -^-'әx/׹3?_w3-Type 2 hypervisorą 2"3-Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
[...]
Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.3'@ kkՕoZ33-Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at allo󙞣@ =!73'@-Three types of UMA multiprocessors

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches. program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
[...]
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.T3. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
[...]
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. )0DXl  4H\p$8L`t-Q35?u-)36C-2a-!3 -2gs-Q35?u-)36C-2a-!3 -2gs-F73I{- .Rp-I3I -> 3?lE-/7.>v-3-u2G-g). P-xY3.@- 3Ch-%3׋-B3Jd-7. Cp-3R--2*:-2N-Z'5?g-[3?DX-~.H=-5?S-W'3 S|-3IN-%2--?3Iwi^-3'J-.C-(_2-m-^- _. A@- .H;- 3- ҋ2C-!k3Iq-!m.HEr:-"[3$-"I3Jtme in milliseconds.
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
3. Distributed systems. Wide area distributed system, access time in milliseconds.3'E %󙞣@)!73'@3-Three types of UMA multiprocessors

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
[...]
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.o낳E =K3'D-Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access time in milliseconds.
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
3. Distributed systems. Wide area distributed system, access time in milliseconds.
Two or more CPUs and one or more memory modules all use the same bus for communication.
[...]
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches./3'@>
[...]
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
3. Physical. The states exist physically within the organism.t5?vX P4PY< S2<-Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
execve(command, parameters, 0) /* execute command */
AөaVk5?vXޠ3-Three ways by which mental representations are internal.

[...]
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
3. Physical. The states exist physically within the organism.the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
execve(command, parameters, 0) /* execute command */
w2< to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
[...]3'J gg|퓕 W}2$-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.әʈm93'J3-Three key characteristics of NUMA multiprocessors

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
[...]Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.i2$ to it if it is not already present" as opposed to "add the freed blocks to the end of the free list" (they might already be there).{3W;  r[ 1Ž|C0.!{3-Accuracy (machine learning) ʹ w:3M-Two ways of sharing files

1. Hard linking. Disk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.
2. Symbolic linking. The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.pۓ ?`y3I1-Goals of I/O software

1. Device independen͂  y3W;Ƞ-The logged operations must be idempotent, e.g. "search the list of free blocks and add block n to it if it is not already present" as opposed to "add the freed blocks to the end of the free list" (they might already be there).d be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.&3I1ce.
It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices. Disk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.

2. Symbolic linking. The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.)3M>2: Otherwise, select a test condition to split the record sets into smaller subsets. Create a child node for each outcome and distribute the records in Dt between the nodes. Apply the algorithm to the child nodes.g.#m \g\Y󗤢 %2-Any way of changing the values in a way that preserves their orderڐ5?ڐ3-What do we mean if we say that the representandum Y is an actual (aktuell) state of the world?4ߟәIw83'*Š3-(Shared memory) multiprocessorP 9.#m-1: If all the records in set Dt belong to the same class Yt, then t is a leaf node labeled Yt.
2: Otherwise, select a test condition to split the record sets into smaller subsets. Create a child node for each outcome and distribute the records in Dt between the nodes. Apply the algorithm to the child nodes. 5|VkD}When a thread is created, it is assigned to a CPU. EachJ What is t:kWhat strengthens the stimulus opponent process?.3What to consider when deciding what processes to swap to disk?



[...].B5?icontents of memory to disk, or via e.g. protection keys and static relocation.
2. Address spaces. Employ base and limit registers plus swapping.
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.3 &U&ۅc_.-3-Hunt's algorithm when all the values in the set have identical attribute values except for the class label?dE '3?DE-Assume a group of related threads are created at once. If there are as many CPUs as there are threads, each thread is given its own, dedicated CPU. If not, the threads wait until enough CPUs are available.Vϲ椑 >N.3$3-Decision tree attribute test conditions for nominal attributes?I틖s{.H63-How can the tit-for-tat strategy be seen is gossip?  3-Types of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.
2. Address spaces. Employ base and limit registers plus swapping.
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk. )0DXl  4H\p$8L`t3--]3-w23-HQ3JŘ3-J3?l33-ӏ2"3--]3-w23-HQ3JŘ3-J3?l33-ӏ2"3-U3?_x3-T33-/3'@3-t5?vX3-3'J3-b.!|3-|3'*3-/5?ڐ3-.H63-{.3$3-.-3-A2Ba3- 3V,D3-q3?D|3-%3 3-? 2i3-\C3J:03-.3q3- 23-Q3I,3-J3&sAH3-fu3:B3-p2 3-E3]3-}.Hm3-i1I3-ߏ2z&3-23-2Z[3-G23-O39_P3- 3C3-2ɻ3- !3IE33-5?K3- gw3׊ qq!|!rƥ3?D|3-Benefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the available CPUs.
[...]
3. By giving each CPU its own ready list, contention for the ready lists is minimized.|DW\3V,D3-Operations needed for file deletion in UNIX

[...]
2. Release the i-node to the pool of free i-nodes.
3. Return all the disk blocks to the pool of free disk blocks.]ȓ0+2BaҠ3-General ways to combat overfitting / generalization error

2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
[...]
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.A2Bant-weight:600;">1. Use a resubstitution estimate.
Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
[...]
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error...]

2. Release the i-node to the pool of free i-nodes.
3. Return all the disk blocks to the pool of free disk blocks. 3V,Davailable CPUs.
[...]
3. By giving each CPU its own ready list, contention for the ready lists is minimized.q3?D| uquqĄӘA5%3 3-The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
[...]

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.㦦/ iR3?/.-Wait for a resource that's been locked (by another CPU) to become free, or load another process? (terminology)t
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
[...]

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.%3 2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.? 2i !UԊH  3&sAH-Checks made by the fsck file system checker

1. Check that each disk block is either assigned to the free pool once, or to a file once.
2. Check that if a file appears in n directories, then it has a link count of n.Tᓕ1k2i3-Reasons to use threads.

[...]
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.yle="font-weight:600; color:#0000ff;">1. Check that each disk block is either assigned to the free pool once, or to a file once.

2. Check that if a file appears in n directories, then it has a link count of n.PS3&sAHoluntarily' give up CPU in the middle of a quantum.
[...]

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.\C3J:0 tt׈0apе3J:/3-Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
[...]

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.an style="font-weight:600;">2. Linked list allocation.
Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order..3q `דG3q3-Ways of implementing files

[...]
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order. system call, all the threads will be frozen, which defeats the point of having threads.
[...]
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors. 2 gꓚ-, 3I,3-Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
[...]
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.d᳕' a23-Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
[...]
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors. period.
2. No process is dependent on any other process.
[...]
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.Q3I,nt process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.2 w UJoNן} }6U.Hky-Noise, commuting, lack of control, shame, relationships.*Әœ5&u3:B3-Current virtual time̒h +. HX-High dimensionality makes the data space sparser. This makes the definitions of density and distance between objects less meaningful.֓H_ 3&sAH3-Checks made by the fsck file system checker

[...]
2. Check that if a file appears in n directories, then it has a link count of n. ĕ΍w wu2 v-When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.yle="font-weight:600; color:#0000ff;">[...]

2. Check that if a file appears in n directories, then it has a link count of n.J3&sAHical background gives us special insight to the medical industry. But when lawyers disagree with us on medical law reform, we think it's not because they're experience with victims gives them special expertise, but because they're greedy.י.HQ eBӕcAyM2 3-Scheduling algorithms used in batch systems

[...]
2. Shortest job first.
3. Shortest remaining time next.򡢌 .HQ -We think we see the world as it really is. We think our medical background gives us special insight to the medical industry. But when lawyers disagree with us on medical law reform, we think it's not because they're experience with victims gives them special expertise, but because they're greedy. pp123^43]The Page Fault Frequency (P)GStimuli appeal directlyziSystems relevant for whether to use (non)preemptive scheduling algorithms.

3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)13?d*" hh Ȫ" y[3?d*!-Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)nvert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.3Is n6ӘݣKHQ3]3-Modern Operating Systems: Memory management chapter summary

1. The simple󚦯s mj3Is-Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.wap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
[...]
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.E3]st systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
[...]
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. .h|h0DXl  4H\p$8L`t#_.H=2|ȥ.H=2"'2F2"'2_2#_.H=2|j.H=2#3xii _3xi#3xiv 3xi$'w3JŘ3JŘ$'w3JŘHQ3JŘ$3I$ I3I$$3I$Y~3I$%va3IƂɘg3IƂ%va3IƂ矫3IƂ%22%2d2&C3?f,43?f&C3?f6%3?f&u3:B]3:B&u3:Bfu3:B&vw24IW24J&vw24IM24J'R3?3?'R3?l3?'15?J5?'15?5?'. A@. A@'. A@ _. A@'_2c7u2c'_2cSV2c)-X -)-i-){-;=-;){-;]-;).Hm.Hm).Hm}.Hm*w3?l3[G3?l3*w3?l3J3?l3*3SDsc3SD*3SD3SD+Y.H;.H;+Y.H; .H;+3^O3^+3^Lk3^, 3I,!3I,, 3I,Q3I,,F3Iʓu3Iʓ,F3Iʓ2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranteed 1/n of the CPU cycles)
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).W24J  𳕾J &vw24I-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranteed 1/n of the CPU cycles)
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).reads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.c2 w󍓍MM1I3-Properties of metric distances

[...]
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, zO߳).Hm3-What are the two types of experience making us feel good?󕾍 gc2-Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible. />d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, zi1Int process or the child process?).
2. When a process exits.
[...]
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.ߏ2z& iyӮ0 Q. )0-E.g. processing an image to extract high-level features such as certain edges from the raw pixels. &w2z&3-When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
[...]
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs. operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. 2#V LL)󕗖V 12#V-Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. style="font-weight:600; color:#0000ff;">[...]

3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.2 '  w93N-Two ways of sharing files

1. Hard linking. Disk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.
2. Symbolic linking. The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.Nճ{ǩ2֠3-Reasons to use threads.

1. An application may want to do many things at once.
[...]
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.ocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.
2. Symbolic linking. The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.D_3NHardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
[...]
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.2Z[ A󕫌[a2Z[3-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
[...]
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process. system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
[...]
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.G2 VV2PEu39_P3-The working set of a processc󕾑%2Π3-Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
[...]
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.t
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.3 n WW 񜳗ɻq2ɻ3-new_value = a * old_value + b, where a and b are constants, is a permitted transformation for this attribute type.|ѓW+3C3-Advantages of a large page size

[...]
2. Allows for a smaller page table, making for faster execution if the page table needs to be copied to e.g. hardware registers.  eH3 n -The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.r>2. Allows for a smaller page table, making for faster execution if the page table needs to be copied to e.g. hardware registers. 3Ctriping.
No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
[...] !3IE3 [32C3IE33-RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
[...]000ff;">1. Thread switches can be made without kernel calls, which can be very fast.

2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
3. Better scaling, as threads don't need to be stored in the kernel.M2 iZ0i<; WT. ;-Before data mining, features are selected using some approach independent of the data mining task. E.g. selecting sets of attributes with a low pairwise correlation.ؓKr5?K3-What's the risk involved in talking about a "content of consciousness" or a content of a single phenomenal "representation"?ӕ U-2-Advantages of implementing threads in user space:

1. Thread switches can be made without kernel calls, which can be very fast.
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
3. Better scaling, as threads don't need to be stored in the kernel.f consciousness" or a content of a single phenomenal "representation"?5?K hh#׊'C3׊3-Random accessaϲ򠱓 !>=.H-"Don't think about polar bears" creates a system to monitor whether we're thinking about polar bears in order to judge our success. But this monitoring by itself reminds us of the polar bears.u̓k I]2j-An entry in the process control table, with all the information about some particular process.ch service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems. r)3?  S ; U$3I$Ԡ-Ways of dealing with bad sectors

1. Substituting a spare for the bad sector. Reading the whole track takes two turns.
2. Shifting all the sectors to bypass the bad one. Reading continuous, but more bookkeeping for the controller."œ #k3?-Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.ng a spare for the bad sector. Reading the whole track takes two turns.

2. Shifting all the sectors to bypass the bad one. Reading continuous, but more bookkeeping for the controller. I3I$ )w{M93I{3-Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
[...]
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.\޲  i. a-(number of matching attribute values)/(number of attributes)
0,69聺Q{3?t3-(Dis)advantages of a large page size on a DSM

1. The startup time on a network transfer is pretty large, so sending 4096 bytes doesn't take that much longer than sending 1024 bytes. Reduces the number of needed transfers.
[...]#'bS38p栉3-Demand pagingretty large, so sending 4096 bytes doesn't take that much longer than sending 1024 bytes. Reduces the number of needed transfers.
[...] 9/3?t period.
[...]
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead. 3I{ zT.z5/Sequential accessx3 OSensitive instructions must be a subset of privileged instructions.q3?܆gCScheduling algorithms used in interactive systems

1. Round-robin scheduling (every proce͆Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every proceԆgCScheduling algorithms used in interactive systems

[1,0,0,0,0,0,1,0,1,1]
[0,0,1,0,0,0,1,1,1,0]#u. a1Six operating system designs

1. Monolithic.2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive. O[2! 9볗 Qn2!Ꝡ-Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.rmal exit (voluntary).

2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary). 2L AbA쳘 93¡-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
1. Use a갓  i2L -Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary).itution estimate.
Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
[...] 2BP resubstitution estimate.
Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
[...]e stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution. c3¡0ff;">4. The operating system checks whether the virtual address is valid and the protection consistent with the access.

5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.an> Receive the interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output. !3IH oH =:ם3IH-I/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.al information-processing system
- Y is an aspect of the current state of the world
[...]
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action. !5?1 T5?13-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
[...]
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.. When a process starts, reserve an amount of space equal in size to the core image of the process.

2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapepd back in. I3] +: SQq3-Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a ti$JӘ] s2H3]-Ways to reserve swap space for a process

1. When a process starts, reserve an amount of space equal in size to the core image of the process.
2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapepd back in.#lor:#0000ff;">1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.

2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. 3me in memory, others support multiprogramming.

2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.presence of noise. Incorrect training records may be generalized from.

2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence. 2(P xxŠ9{.93-VariancezәS ]'3&^WǠ3-(Dis)advantages of a small block size for disk memory

[...]
2. Most files will span multiple blocks and thus need multiple seeks and rotational delays to read them.?_c.H=3-How does reciprocity build relationships?ӗѤP m2(O-Reasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records may be generalized from.
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.000ff;">[...]

2. Most files will span multiple blocks and thus need multiple seeks and rotational delays to read them. 3&^Ws of mental representanta and not the neural process of construction.Q35?u /™?.3-Median Absolute Deviationtu G5?u-Reading a book in my hands and experiencing interest in it, the content of my consciousness consists of mental representanta and not the neural process of construction.ss is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
[...]
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).M24J 22CӕJe&vw24I3-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
[...]
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).t
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
[...]
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.+3 wӘMuI3 ֠3-The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
[...]
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses./Remove the page that won't be used for the longest time.
[...]
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.o[36Ccurrent value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. @y@/?".k3?[3-Virtual Machine Interfacet볘CG3633-Page replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
[...]
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the 03Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.)36C Cu&L Reading a book in my hands and experiencing interest in it, the content of my consciousness consists of mental representanta and not [...].xA5?S`5Reading starts at the beginning, and cannot skip around or read things out of order.KC3!iGReading a book in my hands and experiencing interest in it, the content of my consciousness consist(iGReading a book in my hands and experiencing interest in it, the content of my consciousness consistxu_Reading may start at an arbitrary point, and may skip around the medium or read parts of it out of order.%3׋|mReasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records T]/Reasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records c6eoretical).
Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. Z5'ZBӕ c^2gsߠ-The contents of a process

1. Stack (work area)
2. Data (variables)
3. Text/code (executable instructions)ē euI3 ֠-The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.Kӗ wX2a-Calendar dates, temperatures in Celsius or Fahrenheit^œC 363-Page replacement algorithms

1. Optimal (th5 )0DXl  4H\p$8L`t-$=m-H-%39_P-%j2"(-%3?-%. \w-$=m-H-%39_P-%j2"(-%3?-%. \w-& m3'#-&D5?|-&2`-'Y3I,K-'s3I,-'53?B,o-(#.H?-(.SA-(5?-)_3IOE-)3&sG-,U3?CK--2E8--)/3I--S 3Ic-/3&nU-/S2'-/3I-/%2F-/3-0G'3-0.0-0. l-02 n-1 2@v-1 3C-10!.1-12Y2-1'3Ip-2[%3-3nC-a-32Z-33J`-32g#-4G.Hӣ-42t
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.!3 period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.F73I{ S 3?"3-NC-NUMANŸӘB{ 3×B3-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the in>"󚧦{ #93I{-Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.=e stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
[...]
11. The routine reloads the registers and other state information and returns to user space to continue execution.3×Bstruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
[...]
11. The routine reloads the registers and other state information and returns to user space to continue execution. )0DXl  4H\p$8L`t3- 9/3?t3- 3I{3- 2BP3- !5?13- .H=3- 9/3?t3- 3I{3- 2BP3- !5?13- .H=3- 3&^W3-.93-t.3-M24J3-+3 3-o[36C3-3?[3-3×B3-+3?"3-K2r3-.H;3- 2Ɣ"3-M3 3-92Q3--. \w3-u3?3-H2!*3-i3?dO3-3Iɻ3- .3-33-62 P3-=3 n 3-;2,3-2@r3-G2z3-. r3-P5.H 3-22.v3-. A@3-y3I'f3-.3- .M"3-i=2Uj3--E383-[3ɖHardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
[...]
7. Assembly language procedure starts up new current process.K2r%I{%TThe ants in a hive work together because of kin altruism: they are all related to their queen. Humans try to extend kin altruism by using family-related words, such as the mafia calling itself family.Ɨ.H,'GGThe dispatcher thread waits for incoming requests, and upon receiving one, wakes a worker thread and tasks it with carrying out the request. Then the dispatcher resumes its infinite loop.[28E)GThe contents of a process

1. Stack (work area)
[...]
3. Text/code (executable instructions)_΋2gs 5Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Monolithic. The entire G_G p ya(+.Rg-Box plot. Lower and upper ends of the box are the 25th and 75th percentiles, the middle line is the 50th percentile, the tails are the 10th and 90th percentiles, and + marks represent outliers.9S+Y.H;3-How to use reciprocity as a weapon?S󕫌)2r͠3-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
[...]
7. Assembly language procedure starts up new current process.h and 75th percentiles
, the middle line is the 50th percentile, the tails are the 10th and 90th percentiles, and + marks represent outliers. .Rp>1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
[...] 2Ɣ" KKGG]z7cThe contents of a proces7cThe contents of a process

1. StTThe ants in a hive work together because of kin altruism: they are all related to their queen. Humans try to extend kin altruism by using family-related words, such as the mafia calling itself family.Ɨ.H,'GhEThe average CPU utilization, given that n processes that sp~=qThe contents of a process on the operating system.2U7cThe contents of a process

1. Stack (work area)
2. Data (variables)
3. Text/code (executable instructions)32g#!The contents of a process

1. Stack (work area)
2. Data (variables)
[...]=2g"7cThe contents of a process

1. Stack (work area)
2. Data (variables)
3. Text/code (executable instructions)2gs !!v  K3I -I/O devices such as disks that contain multiple data blocks that can be accessed independently.T"{2Ɣ"3-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
[...]d into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.> 3?lE L&rygReasons to use threads.

1. An application may want to do many things at once.
2. ThnQReasons to give processes some control over the virtual memory map

1. If several processes căReasons to give processes some control over the virtual memory map


1. Overfitting due to presence of noise. Incorrect training records p|mReasons for overfitting

1. Overfitting due to %%?Reasons for overfitting

[...]
2. OvebReasons to give processes some control over the virtual memory map

1. If several processes c] әE ]JY3?lD-RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.;(5BO\iv,9FS`mz #0=JWdq~󕫌[P񜳗ɻ3 ; ׊ 󕫌[P񜳗ɻ3 ; ׊ {볗쳘H!&Š9)™+ӕJ-Ә17ӕ;BpF IәELOvQݾәS󘌃Uړ܍PY[z^׋bdRhjӕjm˨Ә8qߞXtvƧz󘌖||^ߛ?Ә ;𳘜˳ʱѳÆ:Ә$ȆڷӕϳӘP󗤼(ݳach file is a stored as a contiguous run of disk blocks.
[...]
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.M3  )13 Ԡ3-Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
[...]
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order. -||0DXl  4H\p$8L`t6U.Hky.Hk}, .110!.1,K2O2,K29E2,52 Mc*I2 M,52 My2 M.T3 y3 .T3 =3 .3?dԩ3?d.3?d| ]3?d0+2BaA2Ba0+2Bahכ2Ba13 J3 13 ;~3 1K3&s/):3&s/)1K3&s/)93&s/)1k2i? 2i1k2iL)2i23 3R3R23 3Rd'3R2H3] 3]2H3] I3]2C3IE3o3IE32C3IE3 !3IE322{222<23[3T.3T.3[3T.f3T.473N3N473NY3N4U2iB2i4U2iL+2i4. c. r4. cT. r5 3?.}u3?.~5 3?.}nS3?.~53?o@.P3?oA53?o@M}3?oA5&[3IaU3IaU5&[3IaUJ53IaU5%3 3 5%3 %3 5Y335Y30G'36U.HkyY3.Hkz6U.Hky.Hk}ss is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
[...]
7. Fair-share scheduling (each user is allocated a share of the CPU).92Q =s=,v 9^.>u-[$]1 - max[p(i|t)][/$]L˳𩸐wy. \w3-Give an example of a non-symmetric similarity measure?,Ǔц7K2Q3-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
[...]
7. Fair-share scheduling (each user is allocated a share of the CPU).ch service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
[...]u3? Zݾә3?⠉3-Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
[...]te problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
[...]
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.H2!* 00B󘌃 c3ʠ-A page not currently mapped to a page frame in physical memory is referenced, causing a little-used page frame to be written to disk and the referenced data to be read in.x*Oe2!*3-Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
[...]
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.e transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
[...]i3?dO jړ܍Pa 2 P3-Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may use nonpreemptive algorithms.
2. Interactive, uses preemptive algorithms.
[...]'Әԙ/33-Static relocation)Ÿ3ai.3-Interquartile rangeqӕG A^2F-A process that runs in the background to handle some task, possibly only rarely awakening.'󚧓/3Iɻ3-Static schedulingZɒO(C3?dN3-Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
[...] nonpreemptive algorithms.
2. Interactive, uses preemptive algorithms.
[...]62 Pt
[...]
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.=3 n a;5Y'The virtual address space is divided into a number of these fixed-size units.W3?fAThe values are distinct, can be ordered, and the differences between units ;m/The three possible states of a process.

1. Running (actually using the CPU).

1. Running (actually using the CPU).
[...]
3. Blocked (unable to run until some external event happens)."2 n/The three possible states of a process.

1. Run~qThe three possible states of a process.

[...]<fAThe upper CPU utilization which still guarantees that Rate Monotonic Scheduling will work.N$/3I]/The values are distinct, and provide enough information to allow for an ordering.$=m-H nnK wyk. P-d = |x - y|
s = -d, s = 1/(1 + d), s = e^(-d)...Edz,kY2,3-In the context of operating systems, an upcall.cϳӘ %H3 n 3-The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
[...]
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
[...]
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.2@r pp*z32y3-Four principal ways that causes processes to be created:

[...]
2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.P󕫌rm2@r3-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
[...]
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.:#0000ff;">[...]

2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.G2z600; color:#0000ff;">1. Process size.
Bigger processes need more memory.
2. Paging rate. Obvious.
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.xY3.@ LK L׋ _C3׊-Reading may start at an arbitrary point, and may skip around the medium or read parts of it out of order.)r34. c3-Minkowski distance?6Ә Kmg3Ch-Advantages of a small page size

1. Reduces the amount of data wasted due to internal fragmentation.
2. A smaller portion of a program can be loaded at a time, which saves memory if only a small part of the program is in use.*ދ@ 33.@-What to consider when deciding what processes to swap to disk?

1. Process size. Bigger processes need more memory.
2. Paging rate. Obvious.
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.tation.
2. A smaller portion of a program can be loaded at a time, which saves memory if only a small part of the program is in use. 3Ch WWzM=qAssigning each process a fixed priority in advance蟛3IɻY'Assume a group of related threads are created at once. If there are as many CPUs as there are threads, each thread is given its own,lMAs the closeness of repeated measurements to one other. Often measured using standard deviation.^-E4]As we go down the tree, the number of records becomes smaller. At the leaf nodes, the number of records may be too small for a statistically significant classification.2"!=qAssigning each process a fixed priority in advance蟛3IɻY'Assume a group of related threads are created at once. If there are as many CPUs as there are threads, each thread is given its own, dedicated CPU. If not, the threads wait until enough CPUs are available.3?DElMBecause cultivating a reputation for kind-heartedness is even better than true kind-heartedness.(#.H?ghest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.B3Jd DOD6 MKo. Cp-s' = (s - min_s)/(max_s - min_s)hv/222.v3-Reasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records may be generalized from.
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
[...]N }fC.H3-Why is stimulus control a good way to control ourselves?&ڳ +cG3Jd-Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.may be generalized from.
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
[...]22.v rR C23 3R-Combining all the holes in memory into a solid block by rearranging the contents of memory.['. A@à3-How to standardize a variable to mean 0 and standard deviation of 1? kk#r  &Z)DMA steps

[...]
2. DMA controller re{J Decision tree attribute test conditions for binary attributes?o.1NDecision tree attribute test conditions for continuous attributes? .6,K Decision tree attribute test conditions for nominal attributes?{.3$K Decision tree attribute test conditions for ordinal attributes?`.4Declare the node a leaf node with the same class label as the majority class of training records associated with the node.ZǑ.-ziDefine p as a percentage between 0 and 100, and compute a mean that has the top (p/2)% of the data thrown out. .y['Demand paging _38p|mDevice driver general structure

1. Check the input parameters for validity, then possibly co:iDevice driver general structure

1. Check the input parameters for validity, then possibly co triping.
No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
[...]
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.y3I'fCāe?Why might a local page replacement algorithm work badly?

[...]
2. If the working set shrinks, memory that could be allocated to other processes is wasted.g3NfANWhat happens on a page fJ What is the general process for comparing ourselves to others?.HMсvaWhat you subjectively perceive as an integrated object is being constituted by a neural process,
1. When a new process is created (run the paremOWhen to make process scheduling decisions

1. When a new process is created (run the parent p/ EkZ .Ԡ3-What strengthens the stimulus opponent process? fyF3I'f3-RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
[...]
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.nnable; temporarily stopped to let another process run).
3. Blocked (unable to run until some external event happens).-2*: ^^1ӕjASVE2Uj3-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

[...]
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.)¬"3=|.M"3-Stem and leaf plots(ӕ: /"2*9-The three possible states of a process.

1. Running (actually using the CPU).
2. Ready (runnable; temporarily stopped to let another process run).
3. Blocked (unable to run until some external event happens).an style="font-weight:600; color:#0000ff;">[...]

2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.i=2Ujom a list of processes and holes

[...]
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.-E38 66?˨Ә8]j383-Memory management algorithms for finding an n-sized hole from a list of processes and holes

[...]
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow. ,0DXl  4H\p$8L`t F3?EOV) 3?EO{3I7W3I8EG29293ND_3N93NV)3N93'J3'J93'J3'J:ם3IH !3IH:ם3IHtjy3IH:3Mb33M:3M)3M;Mq2"=2;Mq2=2q3EO3E>q3Em3E>N.3$|.3$>N.3${.3$>\2E8=2E8>\2E8-2E8>.H4Ł.H4>.H4.H4>ٿ3I_'83I_>ٿ3I_?%!3I_>O3鵑S_3>O3Jjc3?=3&o;Tz3&o<?=3&o;[g3&o;@I3u3u@I3u3u@3 }G3 }@3 }s3 }AaS3R>3RAaS3Rz3RAyM2 p2 AyM2 812 A22A282BY.H2t9u.H2tBY.H2t5p.H2tBqa.H] d .H] Bqa.H] 6 .H] Bˋ242">1. Process size.
Bigger processes need more memory.
2. Paging rate. Obvious.
[...][3ɖ O&w XGcovariancC}Why is stimulus control a good way to control ourselveWhen to make process scheduling\-When a program is loaded at address 16,384, the constant 16,384 is added to each program address during the load process. Slow, and requires knowing which words contain relocatable addresses and which do not.? M3D}When a thread is created, it is assigned to a CPU. Each CPU then does its own scheduling on its own collection of threads. If a CPU has no thread to run, it takes one from another CPU.'53?B,oUWhen a virtual machine program executes a privileged instruction, this component is trapped to process it (execute instruction if coming from the OS, emulate response if coming from user mode program).y3?\When to make process scheduling decisions

1. When a new process is created (run the pare5_When to make process scheduling decisions

1. When a new process is created (run the pareR YY\ߞX+. HX3-Why does a high dimensionality make clustering algorithms work worse?6󘜹ɖKl3ɖ3-What to consider when deciding what processes to swap to disk?

1. Process size. Bigger processes need more memory.
2. Paging rate. Obvious.
[...]00ff;">1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.

2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.2N BBE#lMGang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
2. All memb$=Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.

1. Groups of related threads are scheduledFunctions that are called by an object file or a library that the object file calls, but that are not present in the object file itself.tu3Y$=Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
2. All membdlMGang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
2. All memb$=Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.

1. Groups of related threads are scheduled as a unit, a gang.
[...]
3. All gang members start and end their time slices together.*3?L UCU }5?g-Processing information takes time, so all of our information is always slightly behind that which is actually happening.J*u.[3Iv*3-Fly-by mode (in the context of Direct Memory Access)2󕾐β Cr2N-Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.available CPUs.
2. Advantage is taken of cache affinity when possible.
3. By giving each CPU its own ready list, contention for the ready lists is minimized.[3?DX YMY$Ƨ)Ks3ItF3-Cycle stealingt Gw5?S-Reading a book in my hands and experiencing interest in it, the content of my consciousness consists of mental representanta and not the neural process of construction.< Wc.H=-A relationship is built by a set of back-and-forth trades, with one person offering gifts, favors, attention or self-disclosure, and the other reciprocating in kind.L򠪔:yL.H:3-How powerful is the rider as compared to the elephant?RX FG3?DW-Benefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the available CPUs.
2. Advantage is taken of cache affinity when possible.
3. By giving each CPU its own ready list, contention for the ready lists is minimized. "lkgK Linux s bytes and the page size the neural process of construction
.5?St
3. Protection (read/write, execution)
[...]
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.=3 AOA󘌖| eֻ3 S|-The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.&Ә+.T3 3-The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
[...]
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.ight:600; color:#0000ff;">2. Present/absent bit

3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.W'3 S| >>p^ ?F)3Iwi^-Goals of I/O software

1. DeYӕ- Y2,-A message from the kernel to a user-mode thread scheduler. The scheduler may be informed that a thread it was running has blocked, or that it is no longer blocked. A scheduler activation scheme.pֳν ?_3IN-Goals of I/O software

1. Device independenߖәN)A3'M3-Three types of UMA multiprocessors

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
[...]Eרђk. (3-Three different approaches to feature creation?ure.
Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
[...]|3'Nd be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.3INce.
It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices./span> It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.?3Iwi^ L&L&MLinux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when the"MLinux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when theMLinux dynamic priority adjustment

* Intera=e?Linux dynamic priority adjustment

[...]clone system call.3J"MLinux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when the"MLinux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when theMLinux dynamic priority adjustment

* Intera=e?Linux dynamic priority adjustment

[...] It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices. to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.3'J Bߛ?c%2?3-Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on the screen */
read_command(command, parameters) /* read input from terminal */

[...]
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
execve(command, parameters, 0) /* execute command */
Cܓʉ e93'J-Three key characteristics of NUMA multiprocessors

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.pt on the screen */
read_command(command, parameters) /* read input from terminal */

[...]
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
execve(command, parameters, 0) /* execute command */
g2?om a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
[...]M3 ^Ә 3 3-Memory management algorithms for finding an n-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
[...] ZZ4{U'CA drawback of hard linking. C creates a file, B links to it, wA drawback of hard linking. C creates a file, &AA drawback of hard linking. C creates a file, B links to it, 'CA drawback of hard linking. C creates a file, B links to it, *D}A drawback of hard linking. C creates a file, B links to it, 4]A file system that attempts to integrate multiple file systems into a single structure that is pres!7A file system that, upon e.g. file deletion, first notes in a log which operations are to be perfor{kA generic, non-hardware specific hypervisor API that can be used for paravirtualization with a variety of APIs.73?[.SA global page replacement algorithmm3E HQmHE;kT. ;3-The filter approach to feature subset selection:^ U[-S-The values are just different names.˜Әҥm
1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
[...]Yʋ 2-Scheduling algorithms used in batch systems

1. First-come, first-served.
2. Shortest job first.
3. Shortest remaining time next.$Ò¬× '3.C-A covariance matrix whose [$]ij^{th}[/$] entry [$]s_{ij}[/$] is the covariance of the [$]i^{th}[/$] and [$]j^{th}[/$] attributes of the data.ize of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
[...],3R .hh|0DXl  4H\p$8L`tN3뤓uK3뤓N2ZSFe2ZSN2ZS}2ZTOu. *. *Ou. *A_. *O+.y[ .y[O+.y[q.y[O3x`3x`O3x`)3x`P'3I,3I,P'3I,'s3I,P93 3P934Hi3P3Zč's3ZčP3Zča3ZčQH3);3)QH3)\i3)Qx. R. RQx. RR2. RQ.6+ .6,Q.6+.6,Qq33Qq3 3R3?/.43?//R3?/.ƙ3?//RDe2$Yc2$YRDe2$Y!2$YR3?1A>A3?1AR3?1An3?1ASVE2UjÁ/2UkSVE2Uji=2UjSW3#03#SW3#"[3$T. ;G. ;T. ;. ;UV3ôѝ3ôUV3ô3ôU-2M2U-22_2V)2o 2V)2oE2Vk5?vXt5?vXVk5?vXt$5?vXV3?He3?HeV3?Heg3?HfW'3 `3 .W𳘜 P93-Measure the number of page faults that a process has recently generated. Assign it more pages if it produces too many page faults, and assign it less pages if it produces very few page faults.X +Y.H;-Offer something for free first, then ask for something in return.G m'. A@à-If x is the mean of the attribute values and sx is their standard deviation, then x' = (x - x) / sx. rL&qWOperations needed for file deletion in UNIX


1. Optimal (theoretical). SPage replacement algorithms

1. Optimal (theoretical). 2iGPage replacement algorithms

1. Optimal (theoretical). .SPage replacement algorithms

1. Optimal (theoretical). ϐPage replacement algorithms

1. Optimal (theoretical). #SPage replacement algorithms

1. Optimal (theoretical). ֏nQPage replacement algorithms

1. Optimal (theoretical). %?Page replacement algorithms

1. Optimal (theoretical). 9Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
[...]
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. >[38he hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
[...]
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. yyt˳G383-Page replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move t operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
[...]
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. X2#V ccʱ3?%13-CC-NUMAkV52#V3-Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
[...]
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. fragmentation.
Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
[...] -3{   -[0[0{kA generic, non-hardware specific hypervisor API that can be used for paravirtualization with a variety of APIs.73?[.SA global page replacement algorithmm3Es[A kind of miniprocess running in quasi-parallel with other similar ones, sharing the same memory space.12Y2+KA linked list of nodes with e.g. the following contents:

Type - Process or hole
Start - Starting memory address
Length - Length of process or hole/3-QA local page replacement algorithm#53 SA low-priority process L is in its critical region when a high-priority process H is scheduled. H begins waiting for L to clear its critical region, but L is lower priority, so it is never scheduled.3IVNA message from the kernel to a user-mode thread scheduler. The scheduler may be informed that a thread it was running has blocked, or that it is no longer blocked. A scheduler activation scheme.%2-e?The three possible states of a process.

1. Running (actually using the CPU).
2. Ready (runnable; temporarily stopped to let another process run).
[...]J2*9++The structure of a generic page table entry

1. The page frame number
2. Present/absent biywcThe structure of a generic page table entry

1. The page frame number
2. Present/absent bi-QThe memory manager (of computers).M 2fe?The structure of a generic page table entry

2. Proportionality, meet users' expectations.'/|m3ࠉ3-A virtual address3ӘE/3{3-(Dis)advantages of linked list file allocation

1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
[...] )0DXl  4H\p$8L`t3-+3Iv*3-_.H:3-s3ItF3-=3 3-]A. (3-+3Iv*3-_.H:3-s3ItF3-=3 3-]A. (3-|3'N3-g2?3-M3 3-,3R3-. ;3- >[383- X2#V3- \33?%13- -3{3- y33-"5?3-"2 n3-"3Jt3-#3?DE3-# 13U3-#53 3-#373-$N{5?3-$bc3Jx3-$3?3-&Z. TZ3-'s3Zč3-'+%3I3-'83I_3-(aA3i13-(~3&~W3-(3N03-) Y. fQ3-*G73)D3-+u3IW3-+3&3-+]2&3-,)E.HWG3-,43?f3--3\3--Vk3?DXonse time, respond to request quickly.
2. Proportionality, meet users' expectations. ҋ2C interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.!k3Iq |: Wv5.HEr9-People self-reporting more caring for others were more likely to "do the right thing" by opening the bag, but equally likely as others to justify the self-interested decision when the coin didn't give the wanted result.oͳ =j3Iq-I/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.opening the bag, but equally likely as others to justify the self-interested decision when the coin didn't give the wanted result.!m.HEr:al information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
[...]"5? 1AtE5?3-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
[...] ~~XBTime required to read or write a disk block is determined by

|mTime required to read or write a disk block is determined by

  To mimic the functionality of kernel threads, but with the better performance and greater flexibility of threads in user space.N2ڝAwTransform the classes to a numbered scale starting at 0, then define the dissimilarity of x and y as d = |x - y|/(n - 1) where n is the number of classes. For similarity, s = 1 - d.. N݄FTranslation Lookaside Buffer (TLB), or associative memory.J3 %Trimmed meanq.y[:kTwo approaches to binarization and their issues. ,TPTwo issues that a decision tree learning algorithm needs to address.P.0uTwo major issues for any paging system:

1. The mapping from virtual address to physical addr^  \Ә$ SW3#-Requirements for long-term information storage

1. It must be possible to store a very large amount of information
2. The information must survive the termination of the process using it
3. Multiple processes must be able to access the information concurrentlyin1l\2 m3-The three possible states of a process.

1. Running (actually using the CPU).
[...]
3. Blocked (unable to run until some external event happens).amount of information
2. The information must survive the termination of the process using it
3. Multiple processes must be able to access the information concurrently"[3$oluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes."I3Jt .'f..Ȇ=m3U젉3-Static (library) linking8ƼEQ3?DE3-Space sharing (on multiprocessors)tӚG63JtР3-Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, [...]N {63JtР-Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.oluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, [...]"3Jt .hh|0DXl  4H\p$8L`tCu.Hd..Hd/Cu.Hd..Hd.C53?t3?tC53?teo3?tD3c3cD3cV[3cF3I'f3I'vF3I'fy3I'fF. 'ѩI. 'F. 'uQ. 'G#2B2BG#2B2BG¹3Ir[3IG¹3I/3IHQ3]μ93]HQ3]E3]H3?<^U3?<^H3?<^#3?<_H3 n 3 n H3 n =3 n I3Jr\53JrI3Jro;3JrJY3?lDK53?lEJY3?lD> 3?lEJw3? 3? Jw3? GD3? JO3Jk3JJO3J$c3JJS3ItΞ3ItJS3Itξ}{3ItKo3Ip1'3IpKo3IpDo3IpKs3ItFs3ItFKs3ItF6P3ItFKo. Cpw. CpKo. Cp7. CpL. /M. /L. /؟. /L 3I_s3I_L 3I_K3I_M:3IE3IEM:3IEm3IEMQ3?pV3?pWMQ3?pVm3?pWN 3'"xE3'"N 3'"& m3'# .hh|0DXl  4H\p$8L`tW3|3i3|W3|A3|W3I P3I W3I q3I Xo3 PW/3 PXo3 Pa3 PY-3&q3&Y-3&83&YG.Hp*X.Hp+YG.Hp*V?.Hp+Z .ƛ.Z ..Z2N2UZ2NO2UZ+2<ϱq2<Z+2<~ͽ2<Z3N53Z3T3[3Ii>3Ii[3Iiy3Ii[I3 kSv]3 kS[I3 kSf'3 kT\3V,D 3V,D\3V,D`m3V,E\5?5?\5?5N5?]2:k2;]2:9A2:]2j^-2k]2j 02k^ 2E2^ 2;>i2^c3IIY3I^c3IN$/3I_uI3?`rQ3?`s_uI3?`r!3?`s`3IpqG3Ipq`3IpqlO3Ipq`y3I1_3I1`y3I1&3I1a(+.Rg1.Rpa(+.Rg .Rpaf22O22af22722a3?i1W/3?i1a3?i1C3?i1 kkHڷoׁ37젉3-Reasons to give processes some control over the virtual memory map

[...]
2. Sharing of pages can be used to implement a message passing system, with one process unmapping a page and another mapping it in. Thus, data doesn't need to be copied.8ӘQW'3 3-A local page replacement algorithm600; color:#0000ff;">[...]

2. Sharing of pages can be used to implement a message passing system, with one process unmapping a page and another mapping it in. Thus, data doesn't need to be copied.#37 operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.$.2ʮ LL)ӕ 1km2ʮ-Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. gϳ-5?3-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
[...]
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.h /p-H-The values are distinct, and provide enough information to allow for an ordering.al information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
[...]
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.$N{5? |ӘP u39_P-The set of pages that a process is currently using (has used in the last k page references)Gmk3?3-Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
[...]
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.(̳13Jx3-The Linux runqueuech service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
[...]
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.$3? )0DXl  4H\p$8L`t-53?t-5a--53?^-6%3?f-6P3ItF-53?t-5a--53?^-6%3?f-6P3ItF-6S3?"-63?aR-63 -73?[-7a.#-8~w3R-812 -82-;>i2-;~3 -;2BQ-i3->,.HND->?.-? M3-?2!-?%!3I_-?f. l/-?~.9-@)]2U-Ai2f-A2o2-A3 -A3|-Aԝ-K-B 3I-B`.HM-C3-Cg3?L1;-E 3W%a-F o3-F12 he type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.%j2"( q󗤼( AS2"'-Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.ch service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.%3? SS"ݳ #3?-Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.tyle="font-weight:600;">b
3 times, but b was mistaken as a 5 times.
Can be made symmetric by the transformation s'(x,y) = s'(y,x) = (s(x,y) + s(y,x))/2.%. \w ffә# N 3'"-Bus-based UMA multiprocessors

1. Only one CPU can access memory at a time. If line is busy, requesting CPU must wait.
2. Internal cache reduces the memory accesses. Needs a cache-coherence protocol.h𩸐w /. \w-A confusion matrix. E.g. shows that a was mistaken as b 3 times, but b was mistaken as a 5 times.
Can be made symmetric by the transformation s'(x,y) = s'(y,x) = (s(x,y) + s(y,x))/2.requesting CPU must wait.
2. Internal cache reduces the memory accesses. Needs a cache-coherence protocol.& m3'# is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.&D5?| $$`Z. TZ3-Why does a high dimensionality make classification algorithms work worse?g -jA5?|ޠ-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action. operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.&2` L&Ůč-P3Zč3-Shared libraries)㳕` 1h2`-Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.1. Seek time
(the time to move the arm to the proper cylinder, dominating factor)
2. Rotational delay (the time for the proper sector to rotate under the head)
[...]'+%3I nnӚm3I3-Time required to read or write a disk block is determined by

1. Seek time (the time to move the arm to the proper cylinder, dominating factor)
2. Rotational delay (the time for the proper sector to rotate under the head)
[...]d be possible to write programs that can access any I/O device without having to specify the device in advance.
[...]
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.'83I_ ~~wΑ_M>ٿ3I_3-Goals of I/O software

1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
[...]
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.facing for device drivers.
Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.'Y3I,K;">1. Uniform interfacing for device drivers.
Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units. Oәo }3?B,n-When a thread is created, it is assigned to a CPU. Each CPU then does its own scheduling on its own collection of threads. If a CPU has no thread to run, it takes one from another CPU.]γ, P'3I,-Disk arm scheduling algorithms

1. First-Come, First-Served.
2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.vֺӚȬK KU3I,K-Functions of device-independent I/O software

3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.'s3I,"font-weight:600; color:#0000ff;">[...]

2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
3. Optionally, bring some of the process' pages into memory.(aA3i1 %<ssO%AwWhy might a local page replacement algorithm work badly?

1. If the working set grows, thrashAwWhy might a local page replacement algorithm work badly?

[...]. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.wIJ Mm.H?Π-Because cultivating a reputation for kind-heartedness is even better than true kind-heartedness.6חMf3&~W3-LRU (page replacement algorithm)V1 3i13-What does a paging system need to do when a process is scheduled for execution?

[...]
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
3. Optionally, bring some of the process' pages into memory. to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.(3N0ty of [$]x[/$], [$]N[/$] the total number of records in parent node, and [$]N(v_j)[/$] the records in child node [$]v_j[/$].(.SA vŧA KQ.S@-[$]I(parent) - \sum_{j=1}^{k} {N(v_j) \over N}I(v_j)[/$]

where [$]I(x)[/$] is the impurity of [$]x[/$], [$]N[/$] the total number of records in parent node, and [$]N(v_j)[/$] the records in child node [$]v_j[/$].al information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.(5? **\ȋ̝Q}M. fQ3-Jaccard Coefficient
[1,0,0,0,0,1,1,0,1,0]
[0,0,1,0,0,0,1,1,0,0]e )5?-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action. interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.)_3IOE o󚦤E =%[3IO6-I/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.e.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.)3&sG dYD 3)D3-What happens on a page fault?

[...]
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused tуG qM3&sF-(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.*G73)Dhe fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.space equal in size to the core image of the process.
2. When a process starts, reserve separate swap areas for the text, data and stack.
[...]+u3IW __D彳ܦirC3&3-Swapping (in the context of operating systems)HӘWo=3IW3-Ways to reserve swap space for a process

1. When a process starts, reserve an amount of space equal in size to the core image of the process.
2. When a process starts, reserve separate swap areas for the text, data and stack.
[...]>1. Hardware pushes the program counter etc. of the current process to the stack.
[...]
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.+]2& OOGGoW.HWG3-What are the four causes of violence and cruelty?Uӕ& }=K2&3-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
[...]
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process. rL&&What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on th ;kWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter on thK{What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on thfWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter on thU}oWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter on thWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter on th ;kWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter on thKWhat happens on a page fault?

1. Hardware traps the kernel, saving the program counter on th"9What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on th hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.,43?f zRK ğ3?CJ-Benefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the available CPUs.
2. Advantage is taken of cache affinity when possible.
3. By giving each CPU its own ready list, contention for the ready lists is minimized.{U&C3?f젉3-Virtualization types

[...]
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.f;">1. Distributes the load evenly across the available CPUs.

2. Advantage is taken of cache affinity when possible.
3. By giving each CPU its own ready list, contention for the ready lists is minimized.,U3?CKhe type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.-2E8 rrL&DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller reqUDMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller reqDMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller req[+DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller req DMA steps

1. CPU programs the DMA controller via special registers.
\2E8-Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.e stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
[...]
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.-3\ed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
[...]
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution. **"ʥ󚧥 # S3Iᅠ-Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.ŹӘ gD!3\3-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needEach periodic process must complete within its period.

2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.-)/3I 00&NScheduling algorithms used in batch systems

1. First-come, first-served.
2. Shortest job first.
3. Shortest remaining time next.812 7cScheduling algorithms used in batch systems

[...]
2. Shortest job first.
3. Shortest remaining time next.p2 gCScheduling algorithms used in interactive systems

1. Round-robin scheduling (every proce'CScheduling algorithms used in interactive systems

1. Round-robin scheduling (every proce]gCScheduling algorithms used in interactive systems

1. Round-robin scheduling (every proce,olor:#0000ff;">1. Seek time
(the time to move the arm to the proper cylinder, dominating factor)
2. Rotational delay (the time for the proper sector to rotate under the head)
3. Actual data transfer time.-S 3Ic VJV΢ M3J"3-Linux clone system callͳXaFG3?DW3-Benefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the available CPUs.
2. Advantage is taken of cache affinity when possible.
[...]Ӛ *S3Ic-Time required to read or write a disk block is determined by

1. Seek time (the time to move the arm to the proper cylinder, dominating factor)
2. Rotational delay (the time for the proper sector to rotate under the head)
3. Actual data transfer time.available CPUs.
2. Advantage is taken of cache affinity when possible.
[...]-Vk3?DX[...]

2. False sharing. Two CPUs might both refer to different unrelated variables on the same page, unnecessarily sending the page back and forth..P3?oA &&,U 7\3&nT-A copy process that starts at block 0 of a disk, writes all the disk blocks onto the output tape in order, and stops when it has copied the last one.vKi33-Why might a local page replacement algorithm work badly?

1. If the working set grows, thrashing will result, even if there are plenty of free page frames.
[...]әA 53?o@3-(Dis)advantages of a large page size on a DSM

[...]
2. False sharing. Two CPUs might both refer to different unrelated variables on the same page, unnecessarily sending the page back and forth.ing will result, even if there are plenty of free page frames.
[...].b3>1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process./S2' ii ӕ' w}=K2&-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.>2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions./a3I G/G] G¹3I-Disk arm scheduling algorithms

1. First-Come, First-Served.
2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.Fدkm3I3-Disk arm scheduling algorithms

[...]
2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions. color:#0000ff;">2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.

3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions./3Ifont-weight:600; color:#0000ff;">1. Throughput, maximize jobs per hour.

2. Turnabout time, minimize time between submission and termination.
3. CPU utilization, keep the CPU busy all the time. /%2F nn:𹟂 S5Y3-Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.'ҕ/l. i3-Cosine Similarity6Ә Kk 3-A linked list of nodes with e.g. the following contents:

Type - Process or hole
Start - Starting memory address
Length - Length of process or holeHӕ߄F o32E-Scheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput, maximize jobs per hour.
2. Turnabout time, minimize time between submission and termination.
3. CPU utilization, keep the CPU busy all the time. wap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.0G'3
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. H(n /l\2 m-The three possible states of a process.

1. Running (actually using the CPU).
2. Ready (runnable; temporarily stopped to let another process run).
3. Blocked (unable to run until some external event happens).2 Et>. l-rҒ Cl/M.0-1) How should the training records be split?
2) How should the splitting procedure stop?"font-weight:600; color:#0000ff;">2. Ready (runnable; temporarily stopped to let another process run).

3. Blocked (unable to run until some external event happens).02 n operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.1 2@v LL)Ýv 12@v-Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.a smaller page table, reducing its space requirement.

2. Allows for a smaller page table, making for faster execution if the page table needs to be copied to e.g. hardware registers.1 3C )r)6 KKo3Ip -I/O communication techniques

1. Programmed IO. CPU continuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.~˓ [Y2-A kind of miniprocess running in quasi-parallel with other similar ones, sharing the same memory space.?̄ _, .1-One potential outcome for each condition.:á S+3C-Advantages of a large page size

1. Allows for a smaller page table, reducing its space requirement.
2. Allows for a smaller page table, making for faster execution if the page table needs to be copied to e.g. hardware registers.
CPU continuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.1'3Ip
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.23&pgk Ә esg3-The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.ZkՎ 3&pgj3-(Dis)advantages of physical dumps

[...]
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.;r(5BO\iv,9FS`mz #0=JWdq~̔󚦤EΕDӕ彳ܦՖGؖKܖӗ8ʥ󚧥䗆΢ZŮčӚΑ_әoŔȔŧAʔȋ̝Q̔󚦤EΕDӕ彳ܦՖGؖKܖӗ8ʥ󚧥䗆΢Uӕ'𹟂󘻑nÝvӘڼ󘌠γì󕗖 ճ ’ 󕬞ԓ^C򡺋"Ƿӕm%⌒#')ҥ,󕾍/Ә3T8ۓ%<ӕ>⠓DDHéӘԙMɤ_PӕUTΏVK\ΨQ^򡛮aɲ󗤧|c;fi釳l The page frame number

2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.2[%3000ff;">[...]

2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
3. Better scaling, as threads don't need to be stored in the kernel.2_2 ڼ󘌠{W3|3-Page tables for large memories

[...]
2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.)TU-23-Advantages of implementing threads in user space:

[...]
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
3. Better scaling, as threads don't need to be stored in the kernel.>2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.)3i3|te problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
[...]
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.3js2! nγì;w2!3-Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
[...]
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive. mean, standard deviation, Pearson's correlation, t-tests, geometric mean, harmonic mean, percent variation?3nC-a 7rL&#Motivations for virtual machines

1. Reliability. If eaI:kMotivated stopping as an analogy to the lawyer?Th#.HG2#Motivations for virtual machines

1. ReliabilitF.QMotivations for virtual machines

[...]<#Motivations for virtual machines

1. Reliability. If eaK Motivations for virtual machines

1. Reliability. If eaB#Motivations for virtual machines

1. Reliability. If ea <mMotivations for virtual machines

1. Reliability. If ea 8󕗖 O2Z-A scheduling algorithm that considers the priority of each process and runs the highest-priority process that is runnable. The mechanism is to look for the highest-priority process and run it, and is in the kernel. The policy is to assign priorities to processes, and is done in user mode.Ȳ O-a-Meaningful operations on ratio attributes are mode, entropy, chi squared test, median, percentiles, mean, standard deviation, Pearson's correlation, t-tests, geometric mean, harmonic mean, percent variation?ocess that is runnable. The mechanism is to look for the highest-priority process and run it, and is in the kernel. The policy is to assign priorities to processes, and is done in user mode.32Zss is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
[...]
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranteed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).32 L&1Six operating system designs

1. Monolithic. The entire1Six operating system designs

1. Monolithic. The entire0USix operating system designs

1. Monolithic. The entire1Six operating system designs

1. Monolithic. The entire8eSix operating system designs

1. Monolithic. The entirew 'ճ- yO23-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
[...]
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranteed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).inguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.33J` <Cv<0’Aɧw.Nˠ3-Absolute Average DeviationBό# cTM2g"-The contents of a process

1. Stack (work area)
2. Data (variables)
3. Text/code (executable instructions)2 Cս3J`̠-Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.ize of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
[...]
5. Record information about the page table and swap area in the process table.43(o @W@\󕬞C2w3-Advantages of implementing threads in user space:

1. Thread switches can be made without kernel calls, which can be very fast.
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
[...]>]P933-The Page Fault Frequency (PFF) algorithm^ӣ E.HӢ-Because it is the only part of our minds that we can directly perceive.onm3(o3-What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
[...]
5. Record information about the page table and swap area in the process table. kernel calls, which can be very fast.
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
[...]42wnding an optimal decision tree is an NP-complete problem.

2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.42 9 QBˋ2ᑠ-Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.weight:600; color:#0000ff;">[...]

- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.5N5? E3Ux_E@wA unit in physical memory that corresponds to a page.s3 }+KA scheduling algorithm that will let a process run for some maximum amount of time before switching to another process. Uses clock interrupts for this purpose.52/e?A scheduling scheme that takes into account the fact that, if thread A has run a long time on CPU K, K's cache will be full of A's blocks. Tries to schedule a thread on the same CPU as the one it ran on the last time.#3?<_:kA segment (in the context of operating systems)i73a";A sensitive instruction3? 6aA strategy of pre-emptively reading block k + 1 of a file iygA system where computers have e.g. a small cache memory, a larger main memory, and a yet larger disk storage.2"#=A thread (in computing).2|mA thread that is created to e.g. handle a new incoming message, instead of letting an existing thread handle it.Ai2f `ԓ\5?3-Mental Representation, Rep_M (S, X, Y).
[...]
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action. 77&5fa7Meaningful operations on interval attributes are mode, entropy, chi squared test, median, percentiles, mean, standard deviation, Pearson's correlation, t-tests?uh-'EMarshalling (multicomputers7cMemory is divided into allocation units, each of which corresponds to a bit in the bitmap. Simple, but searching the bitmap to find the space for a new process takes time.M!3BԁGMemory is divided into blocks and each block is assigned a protection key. Processes are assigned protection keys, and are only allowed to access the memory blocks they have the keys for.i:E3ziMemory management algorithms for finding an n-sized hole frχ4]Memory management algorithms for finding an n-sized hole frlziMemory management algorithms for finding an n-sized hole fr  T q A-ɠ-The values are distinct, can be ordered, and the differences between units are meaningful.Aә聺 a{3?t-(Dis)advantages of a large page size on a DSM

1. The startup time on a network transfer is pretty large, so sending 4096 bytes doesn't take that much longer than sending 1024 bytes. Reduces the number of needed transfers.
2. False sharing. Two CPUs might both refer to different unrelated variables on the same page, unnecessarily sending the page back and forth.!܃ !BY.H2t-It's a tit-for-tat strategy: act good to someone, then respond to his actions in kind. Co-operation helps even out variance in daily life.retty large, so sending 4096 bytes doesn't take that much longer than sending 1024 bytes. Reduces the number of needed transfers.
2. False sharing. Two CPUs might both refer to different unrelated variables on the same page, unnecessarily sending the page back and forth.53?t VV0 ?oyMental Representation, Rep_M (S, X, Y).
- S is an individuaUMental Representation, Rep_M (S, X, Y).
- S is an individucyMental Representation, Rep_M (S, X, Y).
Mental Representation, Rep_M (S, X, Y).
-Mg. -M3P-N!{3yk-Nh3i1-Nӽ3 *-N3I-O2U-PM3Iʺ-Qh37-R2. R-R2_-Rǭ. (-S3L-S*+38-S3b-S3-Tpm3IuL-Tz3&o<-TG3IW-T. r-U3s-U12-VD52z'-Vu}3&~W-VA2*-W3?-X3J-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks.53?^ nn^ my=3?\-Processor allocation algorithms for load balancing

1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks. )0DXl  4H\p$8L`t3-.P3?oA3-.b33-/a3I3-0#. i3-23&pgk3-.P3?oA3-.b33-/a3I3-0#. i3-23&pgk3-2_23-3i3|3-3js2!3-323-4/.N3-43(o3-4Hi33-42w3-5N5?3-53Jd3-6K+.HNC3-6[383-6 .H] 3-72m3-7K133-7W3I3-72 3-7 3&sF3-83&3-9J3 AV3-9A2:3-:U3Y3-;-E3-;3?m[3-<Q2T3-<.'3'K3-<23-O!3m3->k2o23->3R3->%3J3-?c2 w3-@3Iʺ3-@;a3I2ghest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: [...]53Jd OOZC.HNC3-How does self-serving bias make us resentful of others in our team?v K&C3?f-Virtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.AacG3Jd3-Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: [...]n a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.

2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.6%3?f m)5\򡺋Bqa.H] 3-What are the four mechanisms that weave for us a web of significance? R yg33?aQ-Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)R!=383-Locality of reference (in the context of operating systems): U 3?"-A NUMA architecture with no caching.Ƨ oKs3ItF-E.g. a DMA controller requesting the bus one word at a time, taking bus cycle from the CPU every once in a while.0ff;">1. Blocking send (CPU idle during message transmission)

2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)63?aR>1. No external fragmentation.
Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.63 ]Ƿӕme2l3-What design constraint does multiprogramming impose on program design?ZӘ 13 -(Dis)advantages of linked list file allocation

1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two. MMU and flush the TLB.
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
[...]7K13 Kq(c):kZip codes, employee numbers, eye color, gender.y2 MC}Why is stimulus control a good way to control ourselves?P5.H kKWhy might a local page replacement algorithm work badly?
8gWhy might we be blind to our own selfishness?*1.H?%AWindows process hierarchy.2Ϩ5_With separate instruction and data spaces, two or more processes can use the same page table for their instruction space, but different page tables for their data space.M3P:kZip codes, employee numbers, eye color, gender.y2 MD}[$]-\sum_{i=0}^{c-1} p(i|t) log_2 p(i|t)[/$]
where p(i|t) is fraction of records labeled i at a given class t, and c is the number of labels
Produces values in interval [0,1]^.:M"#[$]1 - \sum_{i=0}^{c-1} [p(i|t)]^2[/$]
where p(i|t) is fraction of records labeled i at a given class t, and c is the number of labels[.>.5!9[$]1 - max[p(i|t)][/$]/7.>v-[$]1 - p^{n}[/$]|2u '`⌒# z(m.-Colored matrices, parallel coordinates, star coordinates, Chernoff faces.ᕓ k".k3?[-A generic, non-hardware specific hypervisor API that can be used for paravirtualization with a variety of APIs.=擘Y33-What does a paging system need to do when a process is scheduled for execution?

1. Reset the MMU and flush the TLB.
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
[...]triping.
No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
[...]
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.7W3I Q{3I几3-RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
[...]
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk..]4kqWMemory management algorithms for finding an n-sized hole frn}oModern Operating Systems: Memory managemenPMemory management algorithms for finding an n-sized hole fr{Memory developing unused holes due to e.g. variable-length segments being brought into memory and then evicted from it.>3>ziMemory management algorithms for finding an n-sized hole frX/GMemory is divided into blocks and eack%Meaningful operations on ordinal attributes are mode, entropy, chi squared test, [...].A-*؈}oModern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once au_Moral idealism and self-esteem (the major ones), greed/ambition (minor cause), sadism (very minor cause).ə.HWI fPҥ 
1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.i᳙F1qM3&sF3-(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
[...]
5. The process cannot restore individual files upon request.󗤣 }d2 3-Any way of changing the values in a way that preserves their order is a permitted transformation for this attribute typee.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
[...]
5. The process cannot restore individual files upon request.7 3&sFize of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.8~w3R 󕾍 gA2-Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.Y擕 AyM2 -Scheduling algorithms used in batch systems

1. First-come, first-served.
2. Shortest job first.
3. Shortest remaining time next.&-Y-3&3-Block race aheadreads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.82ach file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
[...]9J3 AV R)Ә3t"3Y3-Undefined externalsUȓ: ]2:3-When to make process scheduling decisions

[...]
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.CVeї3 AU3-Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
[...][...]
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.9A2:e is deleted on one page, all the subsequent pages have to be reformatted), and a third to save the document at regular intervals.;>i2 oo|V|mTime required to read or write a disk block is determined by
1. The@uTwo major issues for any paging system:

[...]
2. If the virtual address space is large, the page table will be large.Ea3 n:kTwo types of send and receive in multicomputers!3?`s5aTwo unsupervised discretization approachesM. /wTwo ways of sharing files

1. Hard linking.΂/Two ways of sharing files

[...]

1. Hard linking. Disk bluTwo ways of sharing files

1. Hard linking. Disk bl<oTwo-level scheduling (for multiprocessor systems)3?B,n "!p"DTiӽ2T3-In the context of computing, a limit register./޳ڛ[?J_3?m[3-Distributed Shared MemoryӗQ {2BP-General ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest t6ME{e-E3-How is precision defined, and how is it often measured?Mҳ y13 -A hardware cache for the page table. When a virtual address is presented to the MMU, all the entries are checked in parallel. Misses can be handled either in hardware or in software.|͓ W^ 2-There might be one thread interacting with the user, another thread handling changes (e.g. if a line is deleted on one page, all the subsequent pages have to be reformatted), and a third to save the document at regular intervals.5Use a resubstitution estimate.
Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.;2BQraining error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.f;">[...]

2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.<.'3'K nnvۓ% K}3Ij%-Functions of device-independent I/O software

[...]
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.facing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.out affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.<3 {^ӕ223-Scheduling algorithm goals for interactive systems (in addition to the normal ones):

[...]
2. Proportionality, meet users' expectations.z Sc8/3䬠-Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only. a fixed priority, equal to the frequency of its triggering event.
[...]
1. Fairness, giving each process a fair share of the CPU.
2. Policy enforcement, seeing that stated policy is carried out.
3. Balance, keeping all parts of the system busy.5ר.K. *b3-Mapping the data to a new spacevà Kc3IJ-Functions of device-independent I/O software

[...]facing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.= 3IJ;">1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.the CPU.
2. Policy enforcement, seeing that stated policy is carried out.
3. Balance, keeping all parts of the system busy.=2kan>
2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.)>i3 rrL&*IRAID levels.

0. Data is distributed over multiple disks via sERAID levels.

0. Data is distributed over multiple disks via s~*IRAID levels.

0. Data is distributed over multiple disks via syRAID levels.

0. Data is distributed over multiple disks via sf*IRAID levels.

0. Data is distributed over multiple disks via sPRAID levels.

0. Data is distributed over multiple disks via s 1R1D .HNC-We overestimate the size of our share of work. (When husbands and wives estimate the percentage of housework each does, their estimates total over 120 percent; when MBA students estimate their contributions to the team, their estimates total 139 percent.)#퓘 %"U3-Page tables for large memories

1. Multilevel page tables.
2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.)housework each does, their estimates total over 120 percent; when MBA students estimate their contributions to the team, their estimates total 139 percent.)>,.HNDamount of information
[...]
3. Multiple processes must be able to access the information concurrently>O!3m L&Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every proce8eScheduling algorithms used in interactive systems

1. Round-robin scheduling (every proce*fAScheduling algorithms used in interactive systems

1. Round-robin scheduling (every proce-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every procegCScheduling algorithms used in interactive systems

1. Round-robin scheduling (every procez  ]u géӘԙ -3-When a program is loaded at address 16,384, the constant 16,384 is added to each program address during the load process. Slow, and requires knowing which words contain relocatable addresses and which do not.Y™ .-[$]median = (\langle |x_1 - x|,|x_2 - x|,...,|x_m - x|\rangle)[/$]]Ӛ7G3J眠3-The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
[...]
3. Linux operating system
4. Hardware&-AaS3RǠ3-Symbolic linkingD2i2o13-Allowed transformations for nominal attributes䓘3m3-Requirements for long-term information storage

1. It must be possible to store a very large amount of information
[...]
3. Multiple processes must be able to access the information concurrently --jF<oThe embedded approach to feature subset selectioncw. .nQThe entropy of an interval is a measure of the purity of the interval. If an interval contains only:kThe filter approach to feature subset selection. ;qWThe first block of an active partition, which loads the operating system contained in that partition.k3t]The formula for the overhead per process due to the page table size and the internal fragmentation loss.}3N;L The formula for when a set of real-time processes is schedulableH`3I;kKThe goals of schedule activation research. (In the context of operating systems and threading.)>2ڜ_3The inner lawyer, the rose-colored mirror, naive realism, and the myth of pure evil. Our ever-judging minds give us constant flashes of approval or disapproval, along with the certainty that we are in the right.d .H] The layers of a Linux system

1. Standard u .h|0DXhl  4H\p$8L`td[5?iB5?ia2Y2b=%3JWj3JWjb=%3JWj;3JWjb2`)2ab2`kI2ac8/33c8/3<3c|2eJi52ec|2ekE2ed2 72 d2 F12 d[5?iل5?ie-E;-Ee-E^-EeW!.Á.eW!.q.eg2@[2@eg2@2@f3-9-f3-x--f3&~W(~3&~Wf3&~WVu}3&~Wg2!G2!g2!?2!g0#27Q27g0#27[28gD!3\-3\gD!3\e3\h=O3Iʺ@3Iʺh=O3IʺPM3Iʺh2`2`h2`&2`i3.b3i3}g3ia?2%U{2%ia?2%?2%i3U3Vi3U|3Vj92f2fj92fAi2fj_.?.Bj_.?G.AjA5?|޿%e5?|jA5?|&D5?|j3IsJ_3Iste problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.?2! rL&3[Four 3[Four principal ways that causes processes to be created:

1. System initialization.

1. System initialization.


1. Blocking send (CPU idle during me8FFour ways of implementing sending on multicomputers

1. Blocking send (CPU idle during meyFour ways of implementing sending on multicomputers

1. Blocking send (CPU idle during messag;OFour ways of implementing sending on multicomputers

1. Blocking send (CPU idle during messagT FFpɤ_ ?>ٿ3I_-Goals of I/O software

1. Device independenO9Ǒ Qg2!-Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.d be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.?%!3I_ce.
It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices. Er@EpӕU ?ӽ2T-When a process is run, this register is loaded with the length of the program. Memory references made by the program are checked against this register: references made outside the program's address space are rejected.(󚧕1h=O3Iʺ3-Dynamic scheduling@̳΍w_wu2 v3-When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
[...]
5. When a clock interrupt occurs.\§9 .7-For each attibute, calculate the mean, then return

[$$]\bar{x} = (\bar{x_1},...,\bar{x_n})[/$$]

where [$]\bar{x_i}[/$] is the mean of the [$]i^{th}[/$] attribute [$]x_i[/$].RҒد J5. l/-covariance(x,y)/standard_deviation(x)*standard_deviation(y) oL&&{General ways to combat overfitting / generalizatio General ways to combat overfitting / generalization error

1. {General ways to combat overfitting / generalization erlMGang scheduling

[...]
2. All members{General ways to combat overfitting / generalization error


1. WC{General ways to combat overfitting / generalization error

1. {General ways to combat overfitting / generalization error

1.  General ways to combat overfitting / generalization error

1. nt process or the child process?).
2. When a process exits.
3. When a process blocks.
[...]
5. When a clock interrupt occurs.?c2 wr>2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.@;a3I2 F:FiΏ13?.Ώ3-Multiprocessor operating system types

1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
[...]
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.;쓚2U'3I23-Device driver general structure

[...]
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information. OS.
In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
[...]
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.@3?.Ώ XZXJK u-J-One where non-zero values are regarded as important.#ؓ %W3|-Page tables for large memories

1. Multilevel page tables.
2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.)㶳  i3 -Memory management algorithms for finding an n
1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.A3 span>-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.age tables.

2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.)A3|pan>
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.B3?'(Q sΨQE܋3?'(P3-Multiprocessor operating system types

[...]
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.nvert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.B 3I n.򡛮 ;b'.HM-Frame the question so that the trait in question is related to a self-perceived strength, then go out and look for evidence that you have the strength.󚦯 m>3Iנ-Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information. 4H \p $8L`t3'pA3'93Isb-3Is[3?d*!_3?d*!P.HG2Th#.HG2ׁ37Qh3793Is3IsP.HG2;g.HG2I2ڛN2ڝI2ڛ>2ڜ[3?d*!13?d*".t..>?.3337K13ׁ37#373?u3?3?%3? . s. s . s. slc3\3\lc3\3\3>ܿ>3>3>š+3>3IF3IV3IF 3IF3'랱]3'3'3h% 3'3i3'3hh3'3hn>
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.C%2| mɲ󗤧|92|3-Benefits of decision tree induction

[...]
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.action. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.

2. Address spaces. Employ base and limit registers plus swapping.
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.C3 U/; =F3?L1:-Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
2. All members of a gang run simultaneously, on different timeshared CPUs.
3. All gang members start and end their time slices together.  '3-Types of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.
2. Address spaces. Employ base and limit registers plus swapping.
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.ers of a gang run simultaneously, on different timeshared CPUs.
3. All gang members start and end their time slices together.Cg3?L1;span style="font-weight:600;">2. Interrupt-driven IO.
Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.Do3Ip SY5?|3-Three ways by which mental representations are internal.

1. Phenomenal. The states are phenomenally experienced as "internal".
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
[...]p?Ko3Ip 3-I/O communication techniques

[...]
2. Interrupt-driven IO. Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.>
1. Phenomenal. The states are phenomenally experienced as "internal".
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
[...]D/5?|.]

2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.D3I 釳313-Dynamic vs. static swap area allocation

1. Static. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 7 pages.
[...]KغӘnuzx3 n3-Two major issues for any paging system:

[...]
2. If the virtual address space is large, the page table will be large.nӚ; S3Iᅠ3-Requirements for Rate Monotonic Scheduling

[...]
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 7 pages.
[...]E;31ease the i-node to the pool of free i-nodes.
3. Return all the disk blocks to the pool of free disk blocks.E 3W%a --   3۠-Types of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.
2. Address spaces. Employ base and limit registers plus swapping.
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.졳a k3W%`-Operations needed for file deletion in UNIX

1. Remove the file from its directory.
2. Release the i-node to the pool of free i-nodes.
3. Return all the disk blocks to the pool of free disk blocks.contents of memory to disk, or via e.g. protection keys and static relocation.
2. Address spaces. Employ base and limit registers plus swapping.
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.F o3 aa;(re`5Ways to reserve swap space for a process

[X  We overestimate the size of our share of work. (When husbands and wives estimate the percentage of EsWe present our best self to others, trying to appear virtuous; and we look for flaws in the presentation of others.[+.HKxWe think we see the world as it really is. We think our medIWhat are some external conditions that affect your happiness?Y3.Hkz<oWhat are the four causes of violence and cruelty?,)E.HWGQWhat are the four mechanisms that weave for us a web of significance?6 .H] c;What are the three things that the targets of popular villain hysterias have in common?̜G.HT+DWhat are the two types of experience making us feel good?}.HmUWhat are things that are private to each thread running within a process?R32טpe stack.
[...]
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.F 3]4he fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution. dL%d6ݓq K`3Ipq-I/O communication techniques

1. Programmed IO. CPU continuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.  d2 -OrdinalDWix. 2>W3-Intuitively define entropy (in classification)S4o3]43-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
[...]
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused tqtinuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.G3Ipq ;;\Benefits of segmentation

1. Different segments may grow or shrink in size independently with!oSBenefits of segmentation

1. Different segments may grow or shrink in size independently with;!7Benefits of segmentation

1. Different segments may grow or shrink in size independently withoSBenefits of segmentation

1. Different segments%Benefits of segmentation

[...]
2. If'Binary or multiway splits, using comparison tests (A < v) or range queries (vi <= A < vi+1)..6,RBinary or multiway splits. Values can be grouped together if this does not violate their order.

E.g. {small,medium},{large,extra-large} is fine. {small,large},{medium,extra-large} is not.k.4'Block devices,3I -Block race ahead83& [[:^ S 37^-Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.xNђ }Jw3? -An instruction that may only be executed in kernel mode.wwap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.G37^
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.rocess has to be started up for every incoming character.
[...]
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.GY3IS E[EӘe-3|3-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
[..}*A5j_.?3-Parallel coordinatesfꋓӨ+٤3IS3-I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
[...]
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.|e stack.
2. Assembly code routine saves the registers and other volatile information.
[...]
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.G53|.]

4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.triping.
No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
[...]
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.H43I DDWӚ 3I;3-The formula for when a set of real-time processes is schedulablePӚq3I3-RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
[...]
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk. *0DXl  4H\p$8L`t3-D3I3-Ea3 n3-E;313-F 3]43-AJ.g3-B3?'(Q3-C%2|3-Do3Ip3-D/5?|3-D3I3-Ea3 n3-E;313-F 3]43-F>. 2>W3-GY3IS3-G.A3-G53|3-H43I3-H`3I;3-H3It3-I&A2X3-I2fi3-J4s33-JH2A#3-JP{37^3-Ji52e3-J53IaU3-K3I_3-L"2k3-L%M3?3-M 23-N$/3I3-N3yk3-P.03-P3Ij%3-QvU-}x3-Q3.@3-Q-3-Q273-R32ט3-S2,3-SGa.HZ&3-SV2c3-S23-T^2 3-Th#.HG2 )0DXl  4H\p$8L`t-X3×B-Y.g-Y3N-Z!.M"-ZǑ.--X3×B-Y.g-Y3N-Z!.M"-ZǑ.--[28-\_3It-\i3)-\3-]v-}y-]|1J-]-;-]{3&r-^.:M"-^-E-^}3?m[-`׻3&-`m3V,E-a3Zč-a2A#-a3 P-b-3Is-c3&,-c3JQ -d2(-dr3JY-dW3)D-d2-dˋ3W-d3IpO-d=2Q-d/.H -eo3?t-e3\-ffK.H6-f'3 kT-fs3m-f2?-g3?Hf-h3Iv*-hw3I;ning (actually using the CPU).

2. Ready (runnable; temporarily stopped to let another process run).
3. Blocked (unable to run until some external event happens).Hbi2c (Ӛ膦/o3It3-DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
[...]
6. DMA controller interrupts the CPU to signal a finished task.(͓c /l72c-The three possible states of a process.

1. Running (actually using the CPU).
2. Ready (runnable; temporarily stopped to let another process run).
3. Blocked (unable to run until some external event happens).uests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
[...]
6. DMA controller interrupts the CPU to signal a finished task.H3It, maximize jobs per hour.
2. Turnabout time, minimize time between submission and termination.
[...]I&A2X tto3⦆3-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtua틓 g^c3Iנ-[$]U \leq n(2^{1/n}-1)[/$]

Where n is the number of tasks.3г͞iEC2f_3-The contents of a process

[...]
2. Data (variables)
3. Text/code (executable instructions)ȓX2W3-Scheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput, maximize jobs per hour.
2. Turnabout time, minimize time between submission and termination.
[...]e stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
[...]
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.J4s3l page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
[...]
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.0000ff;">[...]

2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.JH2A# color:#0000ff;">[...]

2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error. @|@t̳ G>O3鵠-What does a paging system need to do when a process is scheduled for execution?

1. Reset the MMU and flush the TLB.
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
3. Optionally, bring some of the process' pages into memory.=ӕe[c|2e3-pid = fork()

(POSIX system call)\^ 37^3-Modern Operating Systems: Memory management chapter summary

1. The simpleqӗA U2A#3-General ways to combat overfitting / generalization error

[...]
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.JP{37^st systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
[...]
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory. MMU and flush the TLB.
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
3. Optionally, bring some of the process' pages into memory.Jjc3 rrL&c;When a process is run, this register is loaded with the physical address where the program begins in memory. Whenever the program references a memory location, the content of this register is added to the reference.o2vawWhen to make process scheduling decisions

1. When a new process is created (run the pareWhen to make process scheduling decisions

1. When a new process is created (run the pareуyWhen to make process scheduling decisions

1. When a new process is created (run the pareWhen to make process scheduling decisions

-J When to make process scheduling decisions

0 When to make process scheduling decisions

1. When a new process is created (run the parent p period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
[...]J53IaU rL&%?Scheduling algorithm goals for all systems

1. GygScheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of %?Scheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of jIScheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of qWScheduling algorithm goals for all systems

[..=oScheduling algorithm goals for batch systems (in addition to the normal ones):

1. ThroughputScheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput=oScheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput_ 464w؂N M)A3'M-Three types of UMA multiprocessors

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.JГ uJ3-A process causing page faults every few instructionskӚU55&[3IaU3-Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
[...]ure.
Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.K`3'N ,,Tϥ_L 3I_3-RAID levels.

[...]
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.k䨳! 5>13 -Reading starts at the beginning, and cannot skip around or read things out of order.-weight:600;">1. Mirroring with strips.
Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.K3I_the CPU.
2. Policy enforcement, seeing that stated policy is carried out.
[...]L"2k  g1k2i-Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.BӘ?eK#3?3-A page (in the context of operating systems)g2k3-Scheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of the CPU.
2. Policy enforcement, seeing that stated policy is carried out.
[...]may want to do many things at once.

2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.L)2id architecture.
Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.L+3', @@8QG=23-The memory manager (of computers).^򓘐 38-Page replacement algorithms

1. Optimal (th󘝽 e+3^-A process may map a file onto a portion of its virtual address space. Shared libraries are a special case of this technique. If two or more processes map onto the same file at the same time, they can communicate over the shared memory. oә, ='3',-Three types of UMA multiprocessors

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.l case of this technique. If two or more processes map onto the same file at the same time, they can communicate over the shared memory. Lk3^Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.L38eoretical).
Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.1. The startup time on a network transfer is pretty large, so sending 4096 bytes doesn't take that much longer than sending 1024 bytes. Reduces the number of needed transfers.

2. False sharing. Two CPUs might both refer to different unrelated variables on the same page, unnecessarily sending the page back and forth.M}3?oA 4q A. -The data mining algorithm is used as a black box for finding the best subset of attributesӚ x93J>w-The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
4. HardwareAәA a53?o@-(Dis)advantages of a large page size on a DSM

1. The startup time on a network transfer is pretty large, so sending 4096 bytes doesn't take that much longer than sending 1024 bytes. Reduces the number of needed transfers.
2. False sharing. Two CPUs might both refer to different unrelated variables on the same page, unnecessarily sending the page back and forth.tility programs (shell, editors, compilers)

2. Standard library (open, close, read, write, fork...)
3. Linux operating system
4. HardwareMe3J> 77d;Gcovariance(x,y)/standard_deviation(x)*standard_deviation(y)?f. l/@wd = |x - y|
s = -d, s = 1/(1 + d), s = e^(-d)...g). P$?new_value = a * old_value#24~qnew_value = a * old_value + b, where a and b are constants, is a permitted transformation for this attribute type.2ɻGnew_value = a * old_value + b, where a and b are constants.q2<[+new_value = a * old_value is a permitted transformation for this attribute typec12(2[pid = fork()

(POSIX system call)Ji52ePpid = waitpid(pid, &statloc, options)

(POSIX system call)52Gs = execve(name, argv, environp)

(POSIX system call)"=2+Ms' = (s - min_s)/(max_s - min_s)7. Cp 555q󚧯A^c3Iנ3-The upper CPU utilization which still guarantees that Rate Monotonic Scheduling will work.zk S/3yk-Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.@󘝡 _t]3P͠-With separate instruction and data spaces, two or more processes can use the same page table for their instruction space, but different page tables for their data space. may grow or shrink in size independently without affecting each other.

2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.N!{3yk"font-weight:600; color:#0000ff;">1. Reset the MMU and flush the TLB.

2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
3. Optionally, bring some of the process' pages into memory.Nh3i1 t1 G 3i1-What does a paging system need to do when a process is scheduled for execution?

1. Reset the MMU and flush the TLB.
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
3. Optionally, bring some of the process' pages into memory.ach file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.Nӽ3 * GG.Ә ;Dg3 *-Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order. each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.N3yk VVq󚧖 A3I-Main alternatives for real-time scheduling

1. Rate Monotonic Scheduling. Assign each process a fixed priority, equal to the frequency of its triggering event.
2. Earliest Deadline First. Run the process with the least time to its deadline, pre-empting a running process if necessary.#ݳk%/3yk3-Benefits of segmentation

[...]
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.Rate Monotonic Scheduling. Assign each process a fixed priority, equal to the frequency of its triggering event.

2. Earliest Deadline First. Run the process with the least time to its deadline, pre-empting a running process if necessary.N3I M[l/M.03-Two issues that a decision tree learning algorithm needs to address.(—ҝU /Z2N-An instance of an executing program, including the current values of the program counter, registers and variables. Thus, has its own virtual CPU.facing for device drivers.
Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
[...]P3Ij% QӚ h=O3Iʺ-Modifying the priorities of different processes on the fly%}3Ij%3-Functions of device-independent I/O software

1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
[...]600; color:#0000ff;">1. If several processes can share the same pages, high bandwidth sharing becomes possible.

2. Sharing of pages can be used to implement a message passing system, with one process unmapping a page and another mapping it in. Thus, data doesn't need to be copied.Qh37 X)|@W3.@3-What to consider when deciding what processes to swap to disk?

[...]
2. Paging rate. Obvious.
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.%x+]-}x3-Ratio attributeژڷ ׁ37-Reasons to give processes some control over the virtual memory map

1. If several processes can share the same pages, high bandwidth sharing becomes possible.
2. Sharing of pages can be used to implement a message passing system, with one process unmapping a page and another mapping it in. Thus, data doesn't need to be copied.600; color:#0000ff;">[...]

2. Paging rate. Obvious.
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.Q3.@ <#`ӕ2ט3-What are things that are private to each thread running within a process?>𩤄 [Qx. R-Positivity: d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry: d(x,y) = d(y,x)
Triangle inequality: d(x,z) <= d(x,y) + d(y,z) for all x, y, zFӕ7mg0#273-A dispatcher/worker model for e.g. a web server.9Q-3-Meaningful operations on interval attributes are mode, entropy, chi squared test, median, percentiles, [...]? ddL&Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff xRProperties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
[...]w1J$9iProtection keys (memory management technique).|CG3*IRAID levels.

0. Data is distributed over multiIRAID levels.

[...]
0. Data is distributed over multiple disks via sKqWRAID levels.

0. Data is distributed over multiple disks via s*IRAID levels.

0. Data is distributed over multiple disks via s operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.R2_ LL)_ 1A2_-Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them. ^sR& 7.HZ&3-What happens when people lose the ability to feel emotions?zų S!=38-During any phase of execution, the process references only a relatively small fraction of its pages\Ǡ )-3Lɠ-Requirements for long-term information storage

1. It must be possible to store a very large amount of information
2. The information must survive the termination of the process using it
3. Multiple processes must be able to access the information concurrently-񳕪,;2,3-UNIX process hierarchy.aђ !. (-Feature extraction, mapping the data to a new space, feature construction.>1. It must be possible to store a very large amount of information

2. The information must survive the termination of the process using it
3. Multiple processes must be able to access the information concurrentlyS3Lthe screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
[...]
} else {
execve(command, parameters, 0) /* execute command */
SV2c L&mOPage replacement algorithms

1. Optimal (theoretical). MSPage replacement algorithms

1. Optimal (theoretical). QPage replacement algorithms

1. Optimal (theoretical). SPage replacement algorithms

1. Optimal (theoretical). iGPage replacement algorithms

1. Optimal (theoretical).  Q{촓U|2⠉3-Any one-to-one mapping for reassigning values is a permitted transformation for this attribute type.$ۓ߲c''_2c3-Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
[...]
} else {
execve(command, parameters, 0) /* execute command */
ize of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.S3b %%PӘb ~3b-What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.out affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.S3 {<E򡎲kP.HG2렉3-Motivated stopping as an analogy to the lawyer?5سKv2 3-Examples of ordinal attributes.z Sw33-Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.2v#v,9FS`mz #0=JWdq~0=JWdq~Ӛ@ӕ_&촓Әb򡎲êѳƪr˪󘈷sΪѪӫәOիӕ'٫*u^zӘӚӚ膦̳؂Nϥ_󚧯1Ә󚧖Ӛ@ӕ_&촓Әb򡎲êѳƪr˪󘈷sΪѪӫәOիӕ'٫*ܬެԯ㭱ۅ쮭“y鯳әȪ!ܦӗ ҳИ 𨹄.ӘRDӕ ȓ e the bus. More efficient than cycle stealing, but can block the CPU and other devices for a substantial amount of time.Tpm3IuL 484yѳQ3ڠ3-Reasons to give processes some control over the virtual memory map

1. If several processes can share the same pages, high bandwidth sharing becomes possible.
[...]@ֳ< _?=3&o;-A copy process that starts at one or more specified directories and recursively dumps all files and directories found there that have changed since some given base date.rӚ C^3IuL-E.g. a DMA controller telling a device to acquire the bus, issue a series of transfers, then release the bus. More efficient than cycle stealing, but can block the CPU and other devices for a substantial amount of time.an share the same pages, high bandwidth sharing becomes possible.
[...]T3space equal in size to the core image of the process.
2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapped back in.TG3IW ?+z?1r C4. c-&+M3 3-What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
[...]
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.JW s=3IW-Ways to reserve swap space for a process

1. When a process starts, reserve an amount of space equal in size to the core image of the process.
2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapped back in.ize of the program and data.
2. Create a page table, allocating it memory and initializing it.
[...]
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.T/3 e stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
[...]
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.U3¡are register or re-parsing the instruction that caused the fault.
[...]
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution. 󘈷s 3s-Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z-Ә993¡3-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardwty, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, zU3sss is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).U12 r Ck2-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).an style="font-weight:600;">2. Buffering in user space.
What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.U3I { K&+Linux scheduling is based on threads, and distinguishes three classes:


1. Rate Monotonic Scheduling. Assign each processoSMain alternatives for real-time scheduling

1. Rate Monotonic Scheduling. Assign each process=fAMain alternatives for real-time scheduling

1.  g-!3I3-I/O buffering alternatives

[...]
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.-theoretic deterministic algorithm.
Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
[...]V) 3?EO `әO F3?EO3-Processor allocation algorithms for load balancing

1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
[...]ocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.
[...]V)3N mjm ӕ' 2z&-When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.H+qYG.Hp*3-What is conspicious and inconspicious consumption? u93N3-Two ways of sharing files

1. Hard linking. Disk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.
[...] -||0DXl  4H\p$8L`tr2N~2N2x|2xz(m.y$.#2xo2xrƥ3?D|q3?D|rC3&+3&rC3&`׻3&r2N2Nt"3Ytu3Yt"3Y:U3Yt>. l-/. lt>. l0. ltE5?=5?(tE5?"5?t.H$k.Ht.HY.Hv2 2 v2 T^2 wu2 v2 wwu2 v?c2 ww83'*ͨ13'*w83'*|3'*xG.>ۘ.?xG.>c.>x93J>w3J>x93J>wMe3J>x3I/3I/x3I/3I/yk. Ph. Pyk. Pg). Py=3?\ 3?]y=3?\53?^z(m.7a.#zx3 nt}3 nzx3 nEa3 n{.9!.9{.9.9|r. Nt. N݄|r. Nt. Nt}=K2&+]2&}=K2&/S2'~3b<13b~3bS3bC3׊ gw3׊C3׊%3׋nt process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.VD52z' >m>On&.SMemory management with linked lists~3SMemory management algorithms for finding an n-sized hole fr)IMemory management with bitmapsE3BJ Memory space being wasted due to data not fully filling pages.Y3N3Memory-mapped filesO3^3Minkowski distance?. r+MMode, entropy, chi squared test.9-/SModern Operating Systems: Memory management chapter summary

1. The simplest systems do not s 5Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not sw/SModern Operating Systems: Memory management chapter summary

1. The simplest systems do not s x2* C?2)-Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.~әט [f3&~W-Mark each page with a counter indicating when it was last used, then remove the oldest one when needed. system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.VA2*plement.
Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
[...]
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.W/3 P E }7G3J眠-The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
4. HardwaredӘ? 'K#3?-The virtual address space is divided into a number of these fixed-size units.0И?Xo3 P3-(Dis)advantages of contiguous file allocation

1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
[...]
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.an style="font-weight:600; color:#0000ff;">2. Standard library (open, close, read, write, fork...)

3. Linux operating system
4. HardwareX3J 9H8ԯQp2/3-A preemptive scheduling algorithm.ӘB  3×B-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether t:اFU.H,'F3-How is the mafia like an ant colony?< W)--As systematic variation of measurements from the quantity being defined. Often measured by the difference between the mean of the measurements and the real quantity. !ll  4H\p$8L`t- 2K22C[2C2C ҋ2C}M. fQO. fQ}M. fQ) Y. fQ. (]A. (. (Rǭ. (3?LU3?L3?L*3?L 7.HZ&F/.HZ' 7.HZ&SGa.HZ& 9U2Y2 9U2o2 i. a#u. a i. a R. a 3I–J3I–J 3I–JuG3I–J [3&~=PT3&~=Q [3&~=Pl/3&~=P 3?"+3?" 3?"6S3?" b3x#3x b3xG3x a22 a2 2 yO2G2 yO232 37^G37^ 37^JP{37^ F3?EOY3?EP F3?EOV) 3?EOk1J$*=1J$k1J$w1J$e stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.X3×Bhe virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.  n!$ۅ _.--Declare the node a leaf node with the same class label as the majority class of training records associated with the node.r¬" C=|.M"-Split values into groups, where each group contains values that are the same except for the last digit. The non-last digits become the stem, the rest become leaves. E.g. 35, 36, 42, 49, 51:

3: 56
4: 29
5: 1Cٓg 9U2ࠉ3-In the context of computing, a base register.UӘN 473N-Memory space being wasted due to data not fully filling pages.2g Eн.f-The opponent-process theory.lӚ7$3I$Ԡ3-Ways of dealing with bad sectors

[...]
2. Shifting all the sectors to bypass the bad one. Reading continuous, but more bookkeeping for the controller. (0DXl  4H\p$8L`t-k\3'-kw3ř-kE2e-k+2ɼ-kI2a-l!2Ɣ#-hכ2Ba-i:E3-i<_2N-i_?3?dO-if3L-k\3'-kw3ř-kE2e-k+2ɼ-kI2a-l!2Ɣ#-l;2&t-l3?-m-3F̡-mq.#3-n3-o+{. i-o5?ڐ-o;3Jr-oS5?K-oE2-o2-pA3'-q3?-q2|2-q3&-r3N;-s-3'L-s3 }-t$5?vX-uQ. '-uh--uG3I–J-uK3뤓-vm2a-vѭ37j-v 3xi-w23 AV-y2 M-y3I2 .h|h0DXl  4H\p$8L`tk 3~3j3Iq˛e3Iqj3Iq!k3IqkR3ߺ3kR3/3k 3/3k37F(37Fk37FԥY37Fl/M.00.0l/M.0P.0l\2 m"2 nl\2 m02 nl72cդ2cl72cHbi2cl. i0#. il. io+{. img3Ch3Chmg3Ch 3Chm!3'3'm!3'm-3'm3I3Im3I/a3Im2@r[2@sm2@r2@rm3IpOd3IpOm3IpOu/I3IpOnm3(o.-3(onm3(o43(oo3]453]4o3]4F 3]4o3ItH3Ito3It\_3Itp2^)2^p2^J2^p2/52/p2/Y?y2/pе3J:/)3J:0pе3J:/\C3J:0q2N2Nq2Ni<_2Nq3Iɗ3Iq3IH43Ir5?K5?Kr5?KoS5?Kr3?[v3?\r3?[y3?\git. The non-last digits become the stem, the rest become leaves. E.g. 35, 36, 42, 49, 51:

3: 56
4: 29
5: 1Z!.M" VfV6V!The data fragmentation problem (in the context of decision tree induction)~`2"!ρ7cThe contents of a process

1. Stack (work area)
2. Data (variables)
3. Text/code (executable instructions)2fi(EThe contents of a process

[...]
2. Data (variables)
3. Text/code (executable instructions)I2fi%AThe copy on write approachE3SMfAThe data mining algorithm is used as a black box for finding the best subset of attributesMg. +MThe definition of classificationz.a6cThe dimensions of multiprocessor schedulingc3?: #5?|3-Three ways by which mental representations are internal.

1. Phenomenal. The states are phenomenally experienced as "internal".
[...]
3. Physical. The states exist physically within the organism.0;A?=3&o;3-Logical (copy/backup) dump5زפKN3뤓3-The address space of a process.Ró8 g0#27-The dispatcher thread waits for incoming requests, and upon receiving one, wakes a worker thread and tasks it with carrying out the request. Then the dispatcher resumes its infinite loop. *0DXl  4H\p$8L`t3-Y~3I$3-Y23-[a3뤓3-[g3&o;3-T/3 3-U3¡3-U3I3-V) 3?EO3-V)3N3-V?.Hp+3-W/3 P3-X.H,'F3-Y?y2/3-Y~3I$3-Y23-[a3뤓3-[g3&o;3-[/5?|3-\3L3-]e{3&3-]i373-_3?d*!3-_23-_΋2gs3-`.43-`.S@3-a3Is3-c*I2 M3-c12(3-cw. .3-c{1Jx&3-d23-d'3R3-e>A3 3-e3?s3-f3T.3-g'33-g3N3-hO3&r93-h3\ 3-i _3xi3-i5?. 3-i73a3-i-3-iA.93-i;2>
1. Phenomenal. The states are phenomenally experienced as "internal".
[...]
3. Physical. The states exist physically within the organism.[/5?|uests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.\_3It “ i3Ѡ-Memory management algorithms for finding an n
1. More modular code and greater flexibility.
2. Extra overhead from crossing the user-kernel boundary.
3. Extra overhead from sending various messages between pieces of the system.Ⳛ膦 o3It-DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task. flexibility.
2. Extra overhead from crossing the user-kernel boundary.
3. Extra overhead from sending various messages between pieces of the system.\i3)om a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.\3span>-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow. |y W]-}x-The values are distinct, can be ordered, and both differences and ratios between them are meaningful. ڰӘu37Š3-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual pٯ3&᠉3-Factors to take into account when using a modified LRU scheme for disk block caching

1. Is the block likely to be needed again soon? If not, put it at the front of the list to be reused soon.
[...]%L+-3<3-A paging daemonhe block likely to be needed again soon? If not, put it at the front of the list to be reused soon.
[...]]e{3&[yy'Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on R)Page replacement algorithms

[...]
1. Remove the file from its directory.

1. Optimal (theoretical). SPage replacement algorithms

1. Optimal (theoretical). e stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
[...]
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.]i37age is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
[...]
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution. ||X:kThrashing (in the context of operating systems)g'33They become paralyzed. They examine the pros and cons of each decision, but in the absence of feeling see little reason to pick one over the other.F/.HZ':kThree different approaches to feature creation?]A. (8eThree key characteristics of NUMA multiprocessorsSymmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z]|1J S鯳 G3&r۠-(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request. ]){-;-Eliminate data objects or attributes, estimate missing values, ignore the missing value during analysis.߁󍍕 1J-Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z   4H\p$8L`t w5?SxA5?Sǩ2d23Dt3Dt3Dt3DtbS38p38pbS38p _38pw3323w33S3437$37437}37ɧw.N˦y.Nɧw.N4/.Nɿ3Л3ɿ3ȷ3x. 2>WG. 2>Wx. 2>WF>. 2>WY22Y212Y2/3ykN!{3yk/3ykN3yk2BP 2BP2BP;2BQw5?S5?S-3|Y3|-3|G53|e.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.]{3&r 9&9RәȪ![3?d*!3-Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
[...]
4. Copy on write (extra copy probably eventually needed)әڛ[ gJ_3?m[-An illusion of shared memory for multicomputers, implemented by the OS instead of the hardware. When a program requests a page the machine does not have, a request is made to the machine currently holding it to unmap it and send it over.wE Me-E-As the closeness of repeated measurements to one other. Often measured using standard deviation.O" }!.:M!-[$]-\sum_{i=0}^{c-1} p(i|t) log_2 p(i|t)[/$]
where p(i|t) is fraction of records labeled i at a given class t, and c is the number of labels
Produces values in interval [0,1] iiMb9Because the elephant feels pleasure when we take a step towards the goal, but may not recognize all progress as the same goal. Easy-to-measure points may help motivate us, but also subject us to living by a cliche.L.H^g1WBefore data mining, features are selected using some approach independent of the data mining task. E.g. selecting sets of attributes with a low pairwise correlation.G. ;n a program requests a page the machine does not have, a request is made to the machine currently holding it to unmap it and send it over.^}3?m transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
[...]
4. Copy on write (extra copy probably eventually needed)_3?d*! nonpreemptive algorithms.
[...]
3. Real time, may use nonpreemptive algorithms._2 1ܦ rC3&-Keeping each process in memory in its entirety, occasionally writing it back to the disk to make room for other processes.Eŧ@kQ.S@3-Finding the best split for a decision tree nodeV酬 m.43-Decision tree attribute test conditions for ordinal attributes?4ѳG^2gsߠ3-The contents of a process

1. Stack (work area)
[...]
3. Text/code (executable instructions)i"'2󍠉3-Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may use nonpreemptive algorithms.
[...]
3. Real time, may use nonpreemptive algorithms. Remove the file from its directory.

2. Release the i-node to the pool of free i-nodes.
3. Return all the disk blocks to the pool of free disk blocks.`m3V,E ӗ { U2A#-General ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model wikǚӘč 5P3Zč-Library files that, once loaded, can be used by several different processes. When a program is linked with shared libraries, the linker includes a small stub routine that binds to the called function at run time.ӘE \3V,D-Operations needed for file deletion in UNIX

1. Remove the file from its directory.
2. Release the i-node to the pool of free i-nodes.
3. Return all the disk blocks to the pool of free disk blocks.r:#0000ff;">1. Use a resubstitution estimate.
Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.a2A#th the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.plement.
Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.a3 P )k&9iuQ. 'gC1) How should the training records be split?
2) How should the splitting procedure stop?0.0zi1) They are invisible, and cannot be recognized from appearance alone. 2) Their evil spreads by infE1: If all the records in set Dt belong to the same class Yt, then t is a leaf node labeled Yt.
0. l&CT. r/U.B;mѩI. '\-Mental Representation, Rep_M (S, X, Y).
- S:i[...]
- S is an individual information-proc^LL.C{Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'v+Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (hiqe?3[I/O communication techniques

1. Programmed IO. CPU'd=I/O software layers

1. Interrupt handlers. Receive the-h@uIf we tell somebody about a person we both know, they feel a desire to reciprocate by sharing their own gossip. This gives each of us more information about the person in question.ffK.H6!9Internal fragmentation3Nw`5Library files that, once loaded, can be used by several different processes. When a program is linked with shared libraries, the linker includes a small stub routine that binds to the called function at run time.a3Zč   E󙚊 i3&-Factors to take into account when using a modified LRU scheme for disk block caching

1. Is the block likely to be needed again soon? If not, put it at the front of the list to be reused soon.
2. Is the block essential to the consistency of the file system? If it's not a disk block but an i-node block, directory block, etc., write it to the disk as soon as possible.繓2 iG2|1-Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary). ҳИ iXo3 P-(Dis)advantages of contiguous file allocation

1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.uests device controller to move data to memory.
[...]
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.a3Is LL&5_Device driver general structure

1. Check the input parameters for validity, then possibly co,|mDevice driver general structure

1. Check the input parameters for validity, then possibly co])GDevice driver general structure

1. Check the input parameters for validity, then possibly co|mDevice driver general structure

1. Check the input parameters for validity, then possibly coU f+'3IsР3-DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
[...]
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.uests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.b-3Is sr4sG𨹄.o. .3-The embedded approach to feature subset selectionf̴ӗ(+o2'3-new_value = a * old_value is a permitted transformation for this attribute type4ɓI,52 M3-Examples of nominal attributes`󙚊 3&,-A cache in which all modified blocks are written to the disk immediately.Ӛ 93Is-DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task."font-weight:600; color:#0000ff;">[...]

Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, zc{1Jx& 6'ӘR/23 3R3-Memory compactionӗ( o2'-RatioDӗi%23-Allowed transformations for ordinal attributes&  +>3JQ-Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.ﳍ&{01Jx&3-Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
[...]
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, zghest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.c3JQ Standard library (open, close, read, write, fork...)
3. Linux operating system
4. Hardwaredr3JY Gw5fAThe values are distinct, can be ordered, and the differences between units are meaningful.5a-/UThe values are just different names.m-^Y'The virtual address space is divided into a number of these fixed-size units.W3?'EThe working set of a processO39_P;mThe wrapper approach to feature subset selectioni5?. IThere is none. A parent process is given a token (a handle) that can be used to control the child, but the token can be passed on to other processes.V2ϩ 99D  3)D-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused tӚY },3JX-The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
4. Hardwares the kernel, saving the program counter on the stack.

2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.dW3)Dhe fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution. style="font-weight:600; color:#0000ff;">2. Threads are faster to create and destroy than processes.

3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.d2  " 3W -Operations needed for file deletion in UNIX

1. Remove the file from its directory.
2. Release the i-node to the pool of free i-nodes.
3. Return all the disk blocks to the pool of free disk blocks.“ gǩ2֠-Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.style="font-weight:600; color:#0000ff;">2. Release the i-node to the pool of free i-nodes.
3. Return all the disk blocks to the pool of free disk blocks.dˋ3Wia special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.d3IpO 0ӕ ?z_2Qנ-Scheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of the CPU.
2. Policy enforcement, seeing that stated policy is carried out.
3. Balance, keeping all parts of the system busy.O m3IpO-DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.the CPU.
2. Policy enforcement, seeing that stated policy is carried out.
3. Balance, keeping all parts of the system busy.d=2Q jjDGFour ways of implementing sending on multicomputers

1. Blocking send (CPU idle during messagyFour ways of implementing sending on multicomputers


10  ȓ /3 3-Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
[...]
4. Different segments can have different kinds of protection, such as execute only or read-write only.l 7u.H 眠-For a fish in the sea, missing a cue for food has a low cost, but missing a cue for a predator has a high cost. The organisms reacting more strongly to bad things than good things have been the ones that survived.out affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
[...]
4. Different segments can have different kinds of protection, such as execute only or read-write only.e>A3 ff;">1. A graph-theoretic deterministic algorithm.
Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks.eo3?t <n<(әs1y3?r3-Paravirtualizationә mC53?t-Processor allocation algorithms for load balancing

1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks.%e stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.e3\he virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution. GS}G,93[3T.3-Journaling file systemKɲ틖 u{.H6-If we tell somebody about a person we both know, they feel a desire to reciprocate by sharing their own gossip. This gives each of us more information about the person in question.ؓ gD!3\-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether t&plement.
Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.f'3 kT \ 3m-Requirements for long-term information storage

1. It must be possible to store a very large amount of information
2. The information must survive the termination of the process using it
3. Multiple processes must be able to access the information concurrentlyT i[I3 kS-(Dis)advantages of contiguous file allocation

1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.amount of information
2. The information must survive the termination of the process using it
3. Multiple processes must be able to access the information concurrentlyfs3mpt on the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
execve(command, parameters, 0) /* execute command */
f2? E󘜥kJ33-Thrashing (in the context of operating systems)/f =V3?He-Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
2. All members of a gang run simultaneously, on different timeshared CPUs.
3. All gang members start and end their time slices together.mߛ? 9%2?-Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
execve(command, parameters, 0) /* execute command */
re scheduled as a unit, a gang.
2. All members of a gang run simultaneously, on different timeshared CPUs.
3. All gang members start and end their time slices together.g3?Hf 33 &RGeneral ways to combat overfitting / generalization error

1. ֊{General ways to combat overfitting / generalization error

1. 4pUGeneral ways to combat overfitting / generalization error

1. Use a resubst-Gini for class tlu.>.4AyGive an example of a non-symmetric similarity measure?-. \w@wGive three strategies for dealing with missing values=-;e?Goals of I/O software

1. Device independence.<[+Goals of I/O software

[...]

where process [$]i[/$] has period [$]P_i[/$] msec and requires [$]C_i[/$] msec of CPU time per frame, and [$]m[/$] is the number of processes._93&r93-(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
[...]
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.𳚥* .[3Iv*-The DMA controller telling a device to transfer data directly into main memory, as opposed to sending the data to the DMA first.p󘜦Ϋ?"3N3-Why might a local page replacement algorithm work badly?

[...]
2. If the working set shrinks, memory that could be allocated to other processes is wasted.e.
[...]
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.hO3&r9 R1.Fͧm. 3-The wrapper approach to feature subset selectionxË󘜼iO#3xi3-Advantages of a small page size

[...]
2. A smaller portion of a program can be loaded at a time, which saves memory if only a small part of the program is in use.󳗥 {0+2BaҠ-General ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest t6v󳚦ȑ KO3I-Functions of device-independent I/O software

2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.hÛ3I;">1. Uniform interfacing for device drivers.
Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.5Use a resubstitution estimate.
Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.hכ2Baraining error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.r>2. A smaller portion of a program can be loaded at a time, which saves memory if only a small part of the program is in use.i _3xi B#B ɒO y(C3?dN-Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)>ϋN [q2N-Four principal ways that causes processes to be created:

1. System initialization.
2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.RӘ QK3-Memory is divided into blocks and each block is assigned a protection key. Processes are assigned protection keys, and are only allowed to access the memory blocks they have the keys for. ,XlD0  4H\p$8L`t3-Ńi923-Ń)2a-]1Jx&-Z3I-)2AV%-}.b-}3Qy\-}xq2-}<2W-}g3-|2x-|#3-z5?-z3R-{3N-|j.H=23-ŀ3\3-ŀ33-ŀ3R83-ŁJ3'3-ŁP3I 3-ł}3N;3-ł"=23-ł.HM3-Ńi923-Ń)2a3-Ń3 S|3-Ń2B3-Ń3IE3-ńK53?lE3-ń 3?]3-Ņ[3Iw3-ņ233-ņ43?//3-ņ9+.H^f3-ņJ_3Is3-ņr[3I3-Ň)2^3-Ň3s3-ňS3'l3-ʼn523-Ŋ-J3-ŋW3?3-ŋE. )03-ō3'mU3-ō=2g"cution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.i<_2Ne transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)i_?3?dO of the memory. It may choose to evict pages, and tries to ensure that all the free frames are clean. Might be implemented with a two-handed clock, with the front hand writing dirty pages to disk.if3L h=§9[.73-Computing the mean on multivariate data_)-3-How is bias defined, and how is it often measured? (in machine learning)Ek3a3-A segment (in the context of operating systems)>ճL [-3<-A background process that sleeps most of the time but is awakened periodically to inspect the state of the memory. It may choose to evict pages, and tries to ensure that all the free frames are clean. Might be implemented with a two-handed clock, with the front hand writing dirty pages to disk.

2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.i;2 >񳗤]2#z3-In machine learning, a decision boundarydz_Bˋ2ᑠ3-Disadvantages of decision tree induction

[...]
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.can access memory at a time. If line is busy, requesting CPU must wait.

2. Internal cache reduces the memory accesses. Needs a cache-coherence protocol.k\3' [c[ųɼ 2ɻ-Interval@ӕe ac|2e-Create a child process identical to parent ߐәȬu;3?H3-Virtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
[...]ř i3ř-Memory management algorithms for finding an n
1. Only one CPU can access memory at a time. If line is busy, requesting CPU must wait.
2. Internal cache reduces the memory accesses. Needs a cache-coherence protocol.om a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.kw3řspan>-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.ged instruction, the hypervisor is trapped to process it.
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
[...]k|3?H  ē# w{2Ɣ"-Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.\ɓÕa b2`-A process that typically has short CPU bursts and frequent I/O waits.>1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.l!2Ɣ#Fairness, giving each process a fair share of the CPU.

2. Policy enforcement, seeing that stated policy is carried out.
3. Balance, keeping all parts of the system busy.l;2&t " #'R3?-Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.0ܦt ?޹2&s-Scheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of the CPU.
2. Policy enforcement, seeing that stated policy is carried out.
3. Balance, keeping all parts of the system busy.ch service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.l3?tinuously studies the control registers in a loop.
[...]
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.lO3Ipq {0:әUm!3'3-Uniform Memory Access multiprocessorRܾƳ #.#3-(Wrong number of predictions)/(Total number of predictions)@˹̡ _@3F̡-Advantages of a large page size

1. Allows for a smaller page table, reducing its space requirement.
2. Allows for a smaller page table, making for faster execution if the page table needs to be copied to e.g. hardware registers.zqS`3Ipq3-I/O communication techniques

1. Programmed IO. CPU continuously studies the control registers in a loop.
[...]
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.equirement.
2. Allows for a smaller page table, making for faster execution if the page table needs to be copied to e.g. hardware registers.m-3F̡NRemove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
[...]
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.m37Dand to the next page. Great improvement over 3.
[...]
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. 8u83ӘGt]3P͠3-Page sharing between programsxDO37D3-Page replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hO OS.
In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
[...]nS3?.~ DDNOversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on 6/Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on NOversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on ƐgCPage replacement algorithms

1. Optimal (theoretica eA)R3?1A3-Virtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.
[...]
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.Zⓙ~5 3?.}3-Multiprocessor operating system types

1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
[...]ged instruction, the hypervisor is trapped to process it.
[...]
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.n3?1AVe stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.n3 aH-What's the risk involved in talking about a "content o e?When a process is run, this register is loaded with the length of the program. Memory references made by the program are checked against this register: references made outside the program's address space are rejected.@)]2Uc;When a process is run, this register is loaded with the physical address where the program begins in memory. Whenever the program references a memory location, the content of this register is added to the reference.o2QWhen a process on machine 1 calls a process on machine 2, the calling process on 1 is suspended, and execution of the called procedure takes place on 2. As if performing an ordinary procedure call. 3?dahe virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution. SS 3⦆-What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether tXhe type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
[...]
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.o 2 0Û?V)2Ҡ3-Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
[...]
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. E7ҳڐ M5?ڐ-Not that it would be actual in the sense of happening at that exact moment, but that it is treated as actual in the frame of reference that the system is using.0ҕ ?l. i-(x d y)/(||x|| ||y||)
where d = dot product, ||x|| = length of x
Geometrically, the angle between x and y: 1 is 0 degrees and 0 and 90 degrees.ss is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
[...]o2x 2C2x3-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
[...]ght:600; color:#0000ff;">1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).

2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.o;3Jr Oq곩K Ar5?K-It invokes the image of a static object, instead of a continuous representational process.'ӕ߄E-32E3-Scheduling algorithm goals for batch systems (in addition to the normal ones):

[...]
2. Turnabout time, minimize time between submission and termination.
3. CPU utilization, keep the CPU busy all the time. &r +I3Jr-Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.font-weight:600; color:#0000ff;">[...]
2. Turnabout time, minimize time between submission and termination.
3. CPU utilization, keep the CPU busy all the time. o2Ehe type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.oE2 qӗ AV)2Ҡ-Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms. \0Zә U3?۠-Sensitive instructions must be a subset of privileged instructions."ߒ[%O+.y[3-Trimmed meanoȓ =3'랠-Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access time in milliseconds.
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
3. Distributed systems. Wide area distributed system, access time in milliseconds.'/p-H젉3-Ordinal attributen󕾟 ; 9U2-When a process is run, this register is loaded with the physical address where the program begins in memory. Whenever the program references a memory location, the content of this register is added to the reference.me in milliseconds.
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
3. Distributed systems. Wide area distributed system, access time in milliseconds.pA3' ,0DXl  4H\p$8L`t|h3-}$3233-|3V3-vQ2 3-B5?i3-5%3&,3-~33-~2N3-~ͽ2<3-~2AV$3-k|3?H3-lO3Ipq3-m-3'3-m37D3-m3P3-nS3?.~3-n3?1A3-o 23-o2x3-o2E3-o-H3-q.y[3-q3Ik3-rT#3Ip3-sg3?3-t)2!3-tI+3?h3-tjy3IH3-u/I3IpO3-v.Hӣ3-v23-xA5?S3-x--3-x3 3-yq-3-y$.#3-yc3I3-y.HKw3-y3Ii3-z/.H3-zZ3Ic3-| ]3?d3-|CG33-|ȥ.H=23-|3V3-}$3233-~`2"!...]
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.q3Ik LL&llMGoals of I/O software

1. Device independence. It shoule?Goals of I/O software

1. Device independence. It shoul̆gCGoals of I/O software

1. Device independence. It shoule?Goals of I/O software

1. Device independence. It shoul~ [Ӛk3Ik3-Functions of device-independent I/O software

[...]
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.tary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary).q2|2 LL&kKVirtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileJZ)Virtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileTkKVirtualization types

1. Type 1 hypervisor. WhepUVirtualization types

[...]
2. Type 2he block likely to be needed again soon? If not, put it at the front of the list to be reused soon.
2. Is the block essential to the consistency of the file system? If it's not a disk block but an i-node block, directory block, etc., write it to the disk as soon as possible.q3& continuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
[...]rT#3Ip Փ; Z3N;-Let average process size be s bytes and the page size p bytes. Assume that each page table entry requires e bytes. Now the overhead per process is

[$]se/p + p/2[/$]

With a bit of math, the optimum page size becomes

[$]p = \sqrt{2se}[/$]]ᚘRY3Ip3-I/O communication techniques

1. Programmed IO. CPU continuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
[...]  4H\p $8L`t"3N{3NM3J".3J"3?DE3?DE3?DE#3?DE3?m3?m3?mF3?m2Z[_2Z\2Z[2Z["3Ng3Nk3W%`e#3W%ak3W%`E 3W%a" 3W 83W " 3W dˋ3W>3JQq3JQ>3JQc3JQ G. 9V. 9VG. 9V@. 9V-3<\3L-3p
bytes. Assume that each page table entry requires e bytes. Now the overhead per process is

[$]se/p + p/2[/$]

With a bit of math, the optimum page size becomes

[$]p = \sqrt{2se}[/$]r3N; LL&iGLinux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'vC{Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'vvaLinux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'v߂ziLinux interprocess communication

1. Pipes. Channels between two processes, into which one pr{f;">1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.s-3'L  ] JuU3?۠3-A requirement for (type 1 hypervisor) virtualizationKӘ} w@3 }-A unit in physical memory that corresponds to a page.CәL ePw3'K-Three key characteristics of NUMA multiprocessors

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.  4H\p$8L`t 3IZ3IU3I#;e3I#;U3I#;3I#;=3IW+u3IW=3IWTG3IW3743737]i37c3IJ3IJc3IJ= 3IJ2W2X2WI&A2XO-aU-aO-a3nC-a3.@xY3.@3.@Q3.@K#3?L%M3?K#3?W3?ʥ2"<2"ʥ2"2"3I'+%3I"2*9J2*9"2*9-2*:܋3?'(PU3?'(Q܋3?'(PB3?'(Qte problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
[...]
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.t)2! QQ$'n2!Ꝡ3-Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
[...]
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.>
1. Phenomenal. The states are phenomenally experienced as "internal".
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
3. Physical. The states exist physically within the organism.t$5?vX 2ЃEƻY3?h֠3-Marshalling (multicomputers) ө uVk5?vXޠ-Three ways by which mental representations are internal.

1. Phenomenal. The states are phenomenally experienced as "internal".
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
3. Physical. The states exist physically within the organism.e="font-weight:600;">2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.tjy3IH D΂ iF. '-ϓH :ם3IH3-I/O software layers

[...]
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.quests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.u/I3IpO lڝ 7--Meaningful operations on interval attributes are mode, entropy, chi squared test, median, percentiles, mean, standard deviation, Pearson's correlation, t-tests?e铚O)m3IpO3-DMA steps

[...]
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.le track takes two turns.
2. Shifting all the sectors to bypass the bad one. Reading continuous, but more bookkeeping for the controller.uG3I–J [%^Әj "/37j-Page replacement algorithms

1. Optimal (th+ӕ 52a-Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may use nonpreemptive algorithms.
2. Interactive, uses preemptive algorithms.
3. Real time, may use nonpreemptive algorithms.U鳘פ N3뤓-The set of addresses that a process can use to address memory.;󚧅J U 3I–J-Ways of dealing with bad sectors

1. Substituting a spare for the bad sector. Reading the whole track takes two turns.
2. Shifting all the sectors to bypass the bad one. Reading continuous, but more bookkeeping for the controller.-weight:600; color:#0000ff;">1. Batch, may use nonpreemptive algorithms.

2. Interactive, uses preemptive algorithms.
3. Real time, may use nonpreemptive algorithms.vm2aRemove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.vѭ37jeoretical). Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones. amount of data wasted due to internal fragmentation.
2. A smaller portion of a program can be loaded at a time, which saves memory if only a small part of the program is in use.v 3xi ^^Wӣ E.HӢ3-Why do we think that the conscious mind is in control of things?6i K#3xi-Advantages of a small page size

1. Reduces the amount of data wasted due to internal fragmentation.
2. A smaller portion of a program can be loaded at a time, which saves memory if only a small part of the program is in use.he type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
[...]
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.v2  ?23-Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
[...]
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.ach file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.w23 AV GeBef3-3-Meaningful operations on nominal attributes?Wȓ w5?S3-Reading a book in my hands and experiencing interest in it, the content of my consciousness consists of mental representanta and not [...]..ӘV ;ї3 AU-Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order. LL&ziMemory management algorithms for finding an n-sized hole frBqWMemory management algorithms for finding an n-sized hole frnziMemory management algorithms for finding an n-sized hole frG-OMemory management algorithms for finding an n-sized hole frc LEӗ k,52 M-Zip codes, employee numbers, eye color, gender.=ϐYP]3I栉3-I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
[...]GɁ#oz(m.3-Four ways of visualizing higher-dimensional data?(1-ɠ3-Interval attribute' />13 3-Sequential access.S`mz #0=JWdq~F9,ғճ㳗$ގɓӘڲ3ӘΫ򠱓Ӛ򡗮wӗ'),󘜥/󓚧1ͧ8ɒO=§9?񳗤AųɼEē#HKәPӘSAY[Û\ҳڐ^`곩KcӗdәiӚk 󙚊nՓ;svxЃz΂|ڝ~Әjӣrocess has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
[...]yc3Input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.y3I2 3n3F򡗮wm.HKw3-How do we try to play Machiavellian tit-for-tat?` m3U-When a program is linked, the linker searches the library files for any function calls not present in the object files. An executable binary is then written to disk containing all the needed functions.2 m'3I2-Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information. VV=`kK[$]I(parent) - \sum_{j=1}^{k} {N(v_j) \over N}I(v_j)[/$]

where [$]I(x)[/$] is the impuriyg[$]U \leq n(2^{1/n}-1)[/$]

Where n is the number of tasks.IY3IׁR[$]\sum_{i=1}^{m} {C_i \over P_i} \leq 1[/$]

where process [$]i[/$] has period [$]P_i[/$] msec and requires [$]C_i[/$] msec of CPU time per frame, and [$]m[/$] is the number of processes.hw3I;N[$]median = (\langle |x_1 - x|,|x_2 - x|,...,|x_m - x|\rangle)[/$]>?.%A[$]x_{75\%} - x_{25\%}[/$]ħ. :k[$]{1 \over m-1} \sum_{i=1}^{m} (x_i - x)^2[/$]!.9>s[$]{1 \over m} \sum_{i=1}^{m} \mid x_i - x \mid[/$]y.N LL&+KI/O buffering alternatives

1. Unbuffered input. User pZ I/O buffering alternatives

1. Unbuffered input. User p+KI/O buffering alternatives

1. Unbuffered input. User pN2YI/O buffering alternatives

1. Unbuffered input. User pqe?Linux interprocess communication

1. Pipes. Channels between two processes, into which one process can write a stream of bytes for the other to read.
[...]ު3J+Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (hi1. Seek time (the time to move the arm to the proper cylinder, dominating factor)
[...]
3. Actual data transfer time.y3Ii WӚ [3Ii᠉3-Time required to read or write a disk block is determined by

1. Seek time (the time to move the arm to the proper cylinder, dominating factor)
[...]
3. Actual data transfer time.al information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.z5? hB򠱓e>=.H3-Why is it hard not to think about something?  y5?-Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.yy$[$]H = S + C + V[/$]
Where S is your biological set point, C is the conditions of your life, and V is the voluntary activities you do..Hd/fAa) transform integers to binary numbers b) encode each class with a binary "belongs to this class" variable. a is more efficient, but creates faux correlations and doesn't create asymmetric binary attributes.y . ,T+What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on th%d=Typical ways for a process to terminate.

[...]
2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary).#2L ge?Why might a local page replacement algorithm work badly?

[...]
2. If the working set shrinks, memory that could be allocated to other processes is wasted.g3Nolor:#0000ff;">[...]
2. Rotational delay (the time for the proper sector to rotate under the head)
3. Actual data transfer time.zZ3Ic LӘΫ w"3N-Why might a local page replacement algorithm work badly?

1. If the working set grows, thrashing will result, even if there are plenty of free page frames.
2. If the working set shrinks, memory that could be allocated to other processes is wasted.ؓ oAaS3RǠ-The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.SӚ*S3Ic3-Time required to read or write a disk block is determined by

[...]
2. Rotational delay (the time for the proper sector to rotate under the head)
3. Actual data transfer time.:#0000ff;">1. If the working set grows, thrashing will result, even if there are plenty of free page frames.
2. If the working set shrinks, memory that could be allocated to other processes is wasted.{3Nssage transmission)
[...]
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)| ]3?d V #_.H=2-First ask for something, then when the other person says no make a "concession" by asking something less instead.DiQK33-Protection keys (memory management technique).Qәȓ.3?d3-Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
[...]
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed) 44H\p$8L`t3-ŏU3?<^3-ŏo.#m3-ŏ3N3-ŐM33-Ő[2C3-ő 3 3-őS_33-őiy3J 3-ő3?B,n3-Œ2(P3-Œ\G3I}z3-Œj3Y3-Œ38Lk3-œ 3IuL3-œ*3?L3-œJ5?3-œ3Id3-œ2`3-œ3'E3-Ŕma.H 3-Ŕt2&t3-Ŕ3?t3-Ŕ_2u600;">1. Process size. Bigger processes need more memory.
2. Paging rate. Obvious.
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.|#3 KK* 3{3-What to consider when deciding what processes to swap to disk?

1. Process size. Bigger processes need more memory.
2. Paging rate. Obvious.
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.ss is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).|2x @@9S#_.H=23-How to use concessions as a weapon?rӕ C2x-Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU). fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
[...]
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.|3V cc(ɓӘڲ31W3233-Dynamic relocationL󘜭 wi3-Why might a local page replacement algorithm work badly?

1. If the working set grows, thrashing will result, even if there are plenty of free page frames.
2. If the working set shrinks, memory that could be allocated to other processes is wasted. ӘVqi3U3-(Dis)advantages of linked list file allocation

1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
[...]
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.ing will result, even if there are plenty of free page frames.
2. If the working set shrinks, memory that could be allocated to other processes is wasted.}g3le="font-weight:600; color:#0000ff;">1. Meeting deadlines, to avoid losing data.
2. Predictability, avoid quality degradation in multimedia systems.}<2W ގ gA2-Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.Ϛ 2W-Scheduling algorithm goals for real-time systems (in addition to the normal ones):

1. Meeting deadlines, to avoid losing data.
2. Predictability, avoid quality degradation in multimedia systems.reads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.}xq2C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.}3Qy\ 8C8㳗$T2AV$3-General ways to combat overfitting / generalization error

target function f that maps each attribute set x to one of the predefined class labels y.2\ CZ3Qy[-A drawback of hard linking. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.ht:600;">f that maps each attribute set x to one of the predefined class labels y.}.bUse a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
[...]
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.~2AV$nt-weight:600;">1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
[...]
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error. +n+9ճSk 33-Memory management with linked lists8βOr2N3-Disadvantages of implementing threads in user space:

[...]
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.EӗkZ+2<Ϡ3-Allowed transformations for interval attributes00ff;">[...]
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.~2N }oDynamic vs. static swap area allocation

1. Static. If Dynamic vs. static swap area allocation

1. Static. If j#=E.g. Fourier transforms.:. *b.}oE.g. a DMA controller requesting the bus one word at a time, taking bus cycle from the CPU every once in a while.6P3ItFgCE.g. a DMA controller telling a device to acquire the bus, issue a series of transfers, then releasUse a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.)2AV%raining error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error. BBғ 3I-Time required to read or write a disk block is determined by

1. Seek time (the time to move the arm to the proper cylinder, dominating factor)
2. Rotational delay (the time for the proper sector to rotate under the head)
3. Actual data transfer time.3өEd[5?i٠3-What you subjectively perceive as an integrated object is being constituted by a neural process, [...].+ͤә73&,3-A write-through cacheʾ% {T2AV$-General ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest t1. Seek time (the time to move the arm to the proper cylinder, dominating factor)
2. Rotational delay (the time for the proper sector to rotate under the head)
3. Actual data transfer time.Z3I system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
[...]vQ2 NvNӍ& 01Jx&-Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, zʓ]2 3-Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
[...] 44H\p$8L`t)-3LS3LC2w2wC2w42w>3Iר73I>3IB 3Im.4k.4m.4`.4K2Q/2QK2Q92Qğ3?CJ3?CJğ3?CJ,U3?CK-Q--uh- 3N03N0 3N0(3N0QK3i:E3QK3|CG3ƻY3?h e3?hƻY3?htI+3?hM3 P3 M3 T/3 "U33"U3>i3"font-weight:600; color:#0000ff;">d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z]1Jx& error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
[...]
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.General ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
>n) __b=%3JWj0-AӪ{SA~Why does a high dimensionality make clustering algorithms work worse?High dimensionality makes the data space sparser. This makes the definitions of density and distance between objects less meaningful.AT\Z@@ʶuAT\Z*B) y^.>u0-AUe^A~Classification error for class t$1 - max[p(i|t)]$AUe^@?p/AUe^  Ә( m  |m3ҥ-AӦw8rAדdZAn address which the memory management unit maps onto a physical addressA virtual addressAӦw8r@@AӦw8rځj𬵿) 4. c0-ATaxA~Minkowski distance?ATax@?c JATax ff̩k) wi  ةk) wik3W%`0-Aӧ EA~Operations needed for file deletion in UNIX

1. Remove the file from its directory.
2. Release the i-node to the pool of free i-nodes.
[...]
Operations needed for file deletion in UNIX

1. Remove the file from its directory.
2. Release the i-node to the pool of free i-nodes.
3. Return all the disk blocks to the pool of free disk blocks.
Aӧ E@@fdgAӧ E _j)    y3?rҥ-Aө5AӬ쟮Modifying an operating system's source code so that instead of making hardware calls, it makes calls to a hypervisor program. Simplifies virtualization, as hardware instructions no longer need to be emulated in detail.ParavirtualizationAө5@@2x3Aө5ʃޛә) g3?da0-AөA~Remote Procedure CallWhen a process on machine 1 calls a process on machine 2, the calling process on 1 is suspended, and execution of the called procedure takes place on 2. As if performing an ordinary procedure call.Aө@@2x3Aө ӗݯ) G   X2aҥ-AӤkrAӵ^#tCalendar dates, temperatures in Celsius or FahrenheitExamples of interval attributesAӤkr@@:AӤkrS) Ke-E0-ARzA~How is precision defined, and how is it often measured?As the closeness of repeated measurements to one other. Often measured using standard deviation.ARz@@ARz `( }?   AaS3R0-Aӧ}TAӬ쟮Symbolic linkingThe system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.Aӧ}T@@314Aӧ}T󚧸) k3IFҥ-AӪvcA~A low-priority process L is in its critical region when a high-priority process H is scheduled. H begins waiting for L to clear its critical region, but L is lower priority, so it is never scheduled.Priority inversionAӪvc@@0Ik[AӪvc uu䍒) c_    ٚ䍒) c_M2g0-AӠ-QA~Scheduling algorithm goals for real-time systems (in addition to the normal ones):

1. Meeting deadlines, to avoid losing data.
[...]
Scheduling algorithm goals for real-time systems (in addition to the normal ones):

1. Meeting deadlines, to avoid losing data.
2. Predictability, avoid quality degradation in multimedia systems.
AӠ-Q@@AӠ-Q MM辳) s  M(پ) sM:3IE0-AӪcƨA~Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
[...]
5. Process preemption occurs instantly and with no overhead.
Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.
AӪcƨ@@c|AӪcƨpan style="font-weight:600;">1. First fit.
Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.
AӦE+@@AӦE+6. Least Recently Used. E.g. have a counter that's incremented after each i5">The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: [...]The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.
AӦ> @?YAӦ> /span> Remove the page that won't be used for the longest time.
[...]Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.
AӠ!@@AӠ!ways by which mental representations are internal.

1. Phenomenal. The states are phenomenally experienced as "internal".
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
[...]Three ways by which mental representations are internal.

1. Phenomenal. The states are phenomenally experienced as "internal".
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
3. Physical. The states exist physically within the organism.
Aʸ@@Aʸ 󘝸M( }  P3Zč0-‚󘝸M( }P3Zč0-AӦ[SA~Shared librariesLibrary files that, once loaded, can be used by several different processes. When a program is linked with shared libraries, the linker includes a small stub routine that binds to the called function at run time.AӦ[S@@ib =AӦ[S4€Әy) ?k38Lk0-AӦ(yHA~A dispatcher/worker model for e.g. a web server.The dispatcher thread waits for incoming requests, and upon receiving one, wakes a worker thread and tasks it with carrying out the request. Then the dispatcher resumes its infinite loop.AӠp&R@@AӠp&R ZZї)) s ¹)) s5&[3IaU0-AӪEA~Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
[...]
Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.
AӪE@@AӪE 77uirements for Requirements for [...]

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.
Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.
AӪ@@AӪ 7 Å;) e9   30-AӦE+Apg+${1 \over m-1} \sum_{i=1}^{m} (x_i - x)^2$VarianceAU}K@@KAU}KӘ) 35 3 0-AӦ> A~Memory management algorithms for finding an n-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
[...]
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.
Memory management algorithms for finding an n-sized hole from a list of processes and holes

C3 e3?A e$.HW fK3?o g<#- gu.nN u$3Iʺ@ uy.R6 v03?C v-2^[ x3 x2 y1Jw y'33'< z3- {K3I {T32! {G2? |.H2t2 }Y3 }I2 }!3 ~2 I3J`R )3 .?jB Ns.  i3Jtn ؓ.  }3 aK3W;k x3?f 3?fj e- 2ݯ 3IY 93S d2 e3I` 38py  3\ M 92ט 3It) s{3Ia u.nl 3  c3; 3&o¿ 3?o 2 xk2ᔴ 93 ;m.E w3'# 3>o %3J7X د3&s "3Iv Ym3( s. s' w36 +A2pprocedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
[...]
Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.
Aӧ(@@4Aӧ( 3¿)   lâ¿) \3&nT0-AӨY"A~Physical (copy/backup) dumpA copy process that starts at block 0 of a disk, writes all the disk blocks onto the output tape in order, and stops when it has copied the last one.AӨY"@@3J"AӨY"2ә) 7  Bøә) 7J_3?m[0-Aө0A~Distributed Shared MemoryAn illusion of shared memory for multicomputers, implemented by the OS instead of the hardware. When a program requests a page the machine does not have, a request is made to the machine currently holding it to unmap it and send it over.Aө0@@f) HfAө0 P..Fh4Vx "Bqa.H] AӠ7M1V9.H^!Qx. RAӎi|I'S. \H^c3IAӪ"M3IK~@RE\o@yk. PAӧLК. R'*@B5$6D3cAӼ//k37WK*0@h;ϻh.H,'FA:cu|.H2t2!2#VAӠdTj{G2?@ZBI02WA80~2)@RRt.32EAȁe}I2)@H| M3J"AFI3J`R)@BQ4BW3|AӷKq )3R@5GcN|m3Aӱ:}!3)@4=GP93AӰy}Y3!2aAӠꭑh?=2!!3JxAӪc쵡3JŘ'!3sAӦƨ3]!13 Aӧhahsx3!T2AV$AӤn/јm2Baf!j38AӦC~й3d!93I{AӪ33']3I,2!+3CAӦZf3FC!1JAӏ~VJI1J! 3?: Aөf3 h3?M. ڐ)ATe`kT. ;ATe`kjs. گ)AT(bN. AT(bNs. s')AT(bx. AT(bxG. s6)AT% . sAT%&. 'v)AT>&F. 'AT>&B. ()ATP9. (ATP9H+. ))AT\D. )0AT\D7. *a)ATf,. *bATf,. *)AT|/Ou. *AT|//. ,Th)ATy. ,TATyO. /)AT L. /AT 푶 . 2=)ATLx. 2>WATL. 9 ppÔ) 7i    [2g0-AӠ ȴAӬ쟮The CPU-usage profile of a CPU-bound process.A process that typically has long CPU bursts and infrequent I/O waits.AӠ ȴ@@AӠ ȴKӓ( ]}%2ҥ-AӠm^U0A~The CPU rapidly switching between various processes, running each for a small fraction of time before switching to the next one.MultiprogrammingAӠm^U0@@%0FAӠm^U0 AӘ) cg  ĎӘ) cg3m0-Aӧ=|A~Requirements for long-term information storage

1. It must be possible to store a very large amount of information
[...]
3. Multiple processes must be able to access the information concurrently
Requirements for long-term information storage

1. It must be possible to store a very large amount of information
2. The information must survive the termination of the process using it
3. Multiple processes must be able to access the information concurrently
Aӧ=|@@fdgAӧ=| K#) #%    m!3'ҥ-AӨko|[AӬ쟮A multiprocessor where the access time to a memory location is independent of which processor makes the request or which memory chip contains the transferred data.Uniform Memory Access multiprocessorAӨko|[@@3J"AӨko|[*Ď ) =|.M"0-AU LjA~Stem and leaf plotsSplit values into groups, where each group contains values that are the same except for the last digit. The non-last digits become the stem, the rest become leaves. E.g. 35, 36, 42, 49, 51:

3: 56
4: 29
5: 1
AU Lj@@AU Lj MMvCl$Fh4Vxchanging the addr( @/Xyڥ53?o@AӱϹhxg3?tZ( @,;2g3IsAӰRkS]3Isr( @*A2N 3Aӱ"Os3( @(v N`3IpqAӰtij3Ipd)@#jȝJ_3?mӳfK3?o( @;Y{3IAӰ;nk3I( @Ck}u5?1A'ӆHr#5?( @ ̨+ tE5?Aྲ1!nT5?( ?vXR;'15?Ami+5?z!2aAӠꭑh?=2!!3JxAӪc쵡3JŘ'!3sAӦƨ3]!T2AV$AӤn/јm2Baf!j38AӦC~й3d!93I{AӪ33']3I,2!+3CAӦZf3FC!1JAӏ~VJI1J! 3?: Aөf3 h3?Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and other  zzӚX) ={  {ŬӚX) ={I3Jr0-AӪmA~Linux scheduling is based on threads, and distinguishes three classes:

[...]
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.
Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.
AӪm@@c|AӪm /Nm'FeAӎi|IQx. R'S. \Aӻ"Ѿ/3 q93Aӑ7C  U. Izi#. NAӎi|IQx. R'S. \AӠ7M1Bqa.H] V9.H^#AӪ"M^c3I3I#AoR,B.l. iYAӱ:|m3}!3xAӷKq W3|)3ZAȁe32E}I2AF嚰M3J"I3J`RA802W~2AR)[-Sݒ;-H~AR#Op-H[;-^AR.-`‹-}AR7TZ]-}xM-ARBf3-g<#-ARG^E"hy-)\-(ARM- -a|ARSwO-ac-ARh9-J$u-ARze-Ee-ARĜ)-L-;3AR`B){-;-6uATRi. 7. SAT3T. TZ. GAT\Z+. HXNs. ATy~. 155. ATOم. .. ϯATO. .. ATe`BT. ;*>M. ڐ VVu/Nm'FeAʶ3?3Aʶ˥㷇_3IN#3IdnAȴ)2rl@2Ɠ AӰti`3Ipqj3IpdxA J/3ykڈ3 Aӽa?.H^ft.Hd Aȁe32E}I2 A2\23 3 A:cu.H,AT(bN. s. s'AT(bx. G. s6AT% . s&. 'vAT>&F. 'B. (ATP9. (H+. )AT\D. )07. *aATf,. *b. *AT|/Ou. */. ,ThATy. ,TO. /AT L. / . 2=ATLx. 2>W. 9AT+G. 9V. A@VAT'. A@ò. Cp#ATb Ko. CpAXq. I ATZ U. Izi#. NATԓS|r. Nt-. PATSyk. PК. R'AT9Qx. R'S. \ATs"я. \w*&. aߧAT.- i. a7. fAT_}M. fQm. iATbl. iҁ. l/M pp•) {Q    Ŷ) {QG3&r0-AӨYIMA~(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
[...]
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.
(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.
AӨYIM@@f}U̻AӨYIM ;Ә() ?    3ҥ-AӧP AܙSector 0 of a disk, used to boot the computer. Contains the partition table, with one partition marked as active.Master Boot Record AӧP @@314AӧP :ó) #^3IuL0-AӪA~Burst mode (memory bus access mode)E.g. a DMA controller telling a device to acquire the bus, issue a series of transfers, then release the bus. More efficient than cycle stealing, but can block the CPU and other devices for a substantial amount of time.AӪ@@0Ik[AӪ uu) e#  Qq30-Aӧ⾗Aӯ=The wrapper approach to feature subset selectionThe data mining algorithm is used as a black box for finding the best subset of attributesAT(bN@@K1AT(bN#) e#Qq30-Aӧ⾗A~Modern Operating Systems: Memory management chapter summary

[...]
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is 7s that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.
Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.
AӠr@@AӠrAssembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
[...]
7. Assembly language procedure starts up new current process.Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.
AӠoO;@@5(XdyAӠoO;ce drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
[...]I/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.
AӪ@@c|AӪ IIͳQ) G   :3M0-AӧvIAӯ1xDisadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
[...]
3. Programmers generally want threads specifically in application 33 ways of sharing files

Two ways of sharing files

[...]
2. Symbolic linking. The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.
Two ways of sharing files

1. Hard linking. Disk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.
2. Symbolic linking. The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.
AӧvI@@fdgAӧvI әȩ) Q]  vәȩ) Q].3?d0-Aө01'A~Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
[...]
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)
Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)
Aө01'@@f) HfAө01' rrǣӘ) m  t"3Y0-AӦ[0AAӯBŲ-Undefined externalsFunctions that are called by an object file or a library that the object file calls, but that are not present in the object file itself.AӦ[0A@@ib =AӦ[0A!ǥ) kw83'*0-AӨk7LA~(Shared memory) multiprocessorA computer in which two or more CPUs share full access to a common RAM.AӨk7L@@3J"AӨk7L {Е) +1    c|2e0-AӠÙAӬ쟮pid = fork()

(POSIX system call)
Create a child process identical to parentAӠÙ@@JOQ'AӠÙ󗤜) cv2 ҥ-AӤkjAA~Hardness of minerals, {good, better, best}, street numbers, grades.Examples of ordinal attributes.AӤkjA@@llJAӤkjA ZZ󚦥)    j3Iq0-AӪAӯHI/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
2. DeviZȩҔ) g}M. fQ0-AT_A~Jaccard Coefficient
[1,0,0,0,0,1,1,0,1,0]
[0,0,1,0,0,0,1,1,0,0]
(number of matching presences)/(number of attributes not involved in 00 matches)
(1/6)
AT_@@ʶuAT_ *ddz*@Vl2H^t$:Pf| @.?jB@Ns. @i3Jtn@ؓ. @}3@aK3W;k@x3?f@3?fj@e-@2ݯ@3IY@93S@d2 @e3I`@38py@ 3\ M@92ט@3It)@s{3Ia@u.nl@3 @c3;@3&o¿@3?o@2@xk2ᔴ@93@;m.E @w3'#@3>o@%3J7X@د3&s@"3Iv@Ym3(@s. s'@w36@+A2p@Bk3NQ@3?d)@3'@E3Z@2a )zz*@Vl2H^t$:Pf|@ffffffPu3Iwh@m. i@3I@3}@2am@C2@. lC@Y3N.@ I3Rl@3Id@Y2g|@S5?@3I$w@%3'@W2@j3@%3¡t@']3I,2@L3x @`-2@}[2!@3 d~@O3I}@]2@mE3?[@33?:Ø@3|@3?@й3d@3IN@' 2B@{3@3)'@3&s@@2C#@2$Y@3I@\-(@g2"!j@3I"@+3&rr@}2AU5">Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
[...]
Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
execve(command, parameters, 0) /* execute command */
AӠO@@}ބ8ZAӠOTP9. (H+. )AT\D. )07. *aATf,. *b. * ccⓘ}) woȸⓘ}) wo30-AӦsA~Types of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.
[...]
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.
Types of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.
2. Address spaces. Employ base and limit registers plus swapping.
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.
AӦs@@,FrAӦs   4H\p$8L`tAӬ쟮3?fjAӬ쟮e-AӬ쟮93SAӬ쟮e3I`AӬ쟮22.AӬ쟮22#z:AӬ쟮5.H=2AӬ쟮.;3AӬ쟮0.HKAӬ쟮s3AӬ쟮t.HddAӬ쟮)3PAӰYq/}I2Aʶ@["I3J`R(A`^~2Aד}!3A~.?jBA~Ns. A~i3JtnA~ؓ. A~}3A~aK3W;kA~x3?fA~3?fjA~e-A~2ݯA~3IYA~93SA~d2 A~e3I`A~38pyA~ 3\ MA~92טA~3It)A~s{3IaA~u.nlA~3 A~c3;A~3&o¿A~3?oA~2A~xk2ᔴA~93A~;m.E A~w3'#A~3>o #DDXl  4H\p$8L`tAӬ쟮.{9AӬ쟮 . 2=AӬ쟮p2AӬ쟮.ZAӬ쟮H.Hm?AӬ쟮IM2{AӬ쟮Km2a3AӬ쟮m2AӬ쟮m2rA~93SA~d2 A~د3&sA~"3IvA~Ym3(A~s. s'A~w36A~+A2pA~Bk3NQA~3?d)A~3'A~E3ZA~2aA~82ЕA~m. iA~3IA~3}A~2amA~C2A~. lCA~Y3N.A~ I3RlA~3IdA~Y2g|A~S5?A~3I$wA~%3'A~W2A~j3A~%3¡tA~']3I,2A~L3x A~`-2A~}[2!A~3 d~A~O3I}A~]2 .hh|0DXl  4H\p$8L`t2#V{G2?2a?=2!3Jx쵡3JŘ'3s3]13 x3T2AV$јm2Bafj38й3d93I{']3I,2+3Cf3FC1JJI1J 3?: h3?<Dm3SMU3UDm3SM3Uo. .. ϯ. .. 3'3'ֻ3 S|ފK3 mPw3'K(3'22o1u2s3ʬA333E-_3BX2a2ݯX2aQ2ݝ3NLm3PP,3JXG3J3mu.H ADu.H$3'33o-3'J-. )07. *a3mI33Mo3&2L v-2^[!.:M!Qs.;(TM2g"Y2g|{3i3)A2X}2Y5?|m55?|ԁ2|2!-J$u-5?ڐ%5?UR3'mTF3'. \w*&. aߧط2蹵2Y2,̑2"'3Ismr3Is2טd+2*A3T{3qA .h|0DXl  4H\ph$8L`tM3J"I3J`R'393O2)2nO2;2n'3',%3'k3?#3?]k2s2. TZ. G 3IwQO3IzZ3N;E3N2Ϩ/g2 38Lk38py(y3J3b3JN'3I2G+3I2-2Kl3ɖu3.HQ H'.HT+2,1a2P9.#mc1.-9.#mIu.(X8Q.S@u.S~qM3&sFI3&s.^3IuL"3Iv^3IuLp/3Iv3?dax3?f3?da!3?fM3J"3J`d3?DEʹ3?H3?DEm+ 3?H3?m03?m2Z[ʾ2rl"3N2x+3#k3W%`aK3W;k" 3W 3W%>3JQ'l3Jd@G. 9V. A@V-3A Process Control Block.
An entry in the process control table, with all the information about some particular process.AӠ׾w@@AӠ׾wȻӗm) cv2 0-AӤkjAA~Examples of ordinal attributes.Hardness of minerals, {good, better, best}, street numbers, grades.AӤkjA@@8m9AӤkjAble entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
[...]
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.
The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.
AӦ;$@@AӦ;$ ::d 6`2\.X)AT'. A@AT녲. Cp#)ATb Ko. CpATb AXq. I )ATs"я. \wATs"*&. aߧ)AT.- i. aAT.-7. f)AT_}M. fQAT_m. i)ATuJ5. l/ATu. lC)ATit>. lATi@. pu)ATax4. cATaxՀؓ. )AU֗wO+.y[AU֗w.{9)AU}K{.9AU}Kgu.nN)AU}K{.9AU}Ku.nl)AUzɧw.NAUz/w.Z)AU{ ɧw.NAU{ .Z)AU.AU"Y.?)AUʢ.AUY9o.?)AU%1%ai.AU%1%k.*)AUjV.7AUjVRU.ؖ)AU7l3.CAU7l.L)AU Lj=|.M"AU Lj;m.E )AU _O\)a(+.RgAU _O\)%.B)AU ]-z(m.AU ]-Yc.)AUAj_.?AUAT.)AUs$.aAUs$ݻ.! .) ;E   J30-AӦW@]?}Aʻ3⟾Thrashing (in the context of operating systems)A process causing page faults every few instructionsAӦW@]?}@@6.֒ AӦW@]?} C) SJ5. l/0-ATuA~Pearson correlationcovariance(x,y)/standard_deviation(x)*standard_deviation(y)ATu@@먺ATu ff̉l) M Él) MSG3R70-Aӧ^5A~A drawback of hard linking. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. [...]A drawback of hard linking. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.Aӧ^5@@fdgAӧ^5 6󚧣d) #  y󚧣d) #,F3Iʓ0-AӪtA~Main alternatives for real-time scheduling

1. Rate Monotonic Scheduling. Assign each process a fixed priority, equal to the frequency of its triggering event.
[...]
Main alternatives for real-time scheduling

1. Rate Monotonic Scheduling. Assign each process a fixed priority, equal to the frequency of its triggering event.
2. Earliest Deadline First. Run the process with the least time to its deadline, pre-empting a running process if necessary.
AӪt@@c|AӪt /ϡ|) q3   qʅϡ|) q3TM2g"0-AӠ:A~The contents of a process

1. Stack (work area)
2. Data (variables)
[...]
The contents of a process

1. Stack (work area)
2. Data (variables)
3. Text/code (executable instructions)
AӠ:@@5(XdyAӠ:5">Three types of UMA multiprocessors

[...]
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.Three types of UMA multiprocessors

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.
AӨk@@f}U̻AӨkselective control of action.@A8ʒ@[%faq@AʻɂH@+@+A8ʒ rr) oI{ʔ) oI\5?0-AʸcvA~Mental Representation, Rep_M (S, X, Y).
[...]
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become glo 9 ""k arm scheduling algoritS䷓w) iP'3I,0-AӪs"A~Disk arm scheduling algorithms

1. First-Come, First-Served.
2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
[...]
Disk arm scheduling algorithms

1. First-Come, First-Served.
2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.
AӪs"@@c|AӪs" b) ?a   20-AӠnPAӻ:MSˉә) 3 '3',0-AӨkA~Scheduling algorithms used in batch systems

1. First-come, first-served.
[...]
3. Shortest remaining time next.
Scheduling algorithms used in batch systems

1. First-come, first-served.
2. Shortest job first.
3. Shortest remaining time next.
AӠnP@@AӠnP :k of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
[...]
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.
Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It al :d 6`2\.X:)AX^.H,'FAX^|.H2t2)AUu#.#3AUun.#m{)AU9.#mAUIu.(X8)AU \9.#mAU \c1.-)AUj?P_.-AUj?P4͓.0/)AUy-l/M.0AUy-QK.1)AU7, .1AU7^.3$))AU>N.3$AU&}.4E)AŬ+m.4AŬ+jj.6)AUQ.6+AU.7)AUJ!.:M!AUJQs.;()AUQ.+.>.4AUQ.+E'.>4)AUe^^.>uAUe^.?jB)AUQ.S@AUu.S~)AX9 7.HZ&AX9CHY.H)AXL.H:AXX.H)AX]`BfC.HAX]`B%+.H)AXG>=.HAXGR.H+)AX.E.HӢAX..Hb)AXt.HAX.H )AX}`Bu.H AX}`BADu.H$)AXH?}CI.H$AXH?}qw.H,&)AX+BY.H2tAX+=.H4V ::d 6`2\.X.Q)AXc{.H6AXc.H9 )AX_dz+Y.H;AX_dz5.H=2)AXgo;d#_.H=2AXgo;dd.H=7)AX33c.H=AX33A.H?Y)AX悰!m.H?AX悰!v.HEq)AX: Jv5.HEr9AX: Jb.HG2s)AXL&P.HG2AXL&0.HK)AXmuO.HKwAXmuOFK.HMP)AXb'.HMAX=.HN)AX"Ѱ.HNCAX"DWU.HQ ~)AX׿.HQ AX׿H'.HT+)AX -.HT+AXe$.HW)AXi*nW.HWGAXi*n;.H] >)AXǝ?.H^fAXǝt.Hd)AXUXCu.Hd.AXUX^J.Hkq)AX~z J6U.HkyAX~z JH.Hm?)AX).HmAXE.Hp)AX11'YG.Hp*AX11'-.Hx{)A\nRZ .A\nRuy.R6)A\ MeW!.A\ M.ҩ)A\ MeW!.A\ MOX.)A\`AxG.>A\`AS!.)A\pн.fA\pLj.D{ ߓ) ?#  P̚ߓ) ?#Z30-AӧgA~Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept traclock pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
[...]
Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.
Aӧ! @@314Aӧ!  6Xz$Fh4Vxt, the page replacement algorithm runs.
6. If t!3'AӨl) s^I3'C!"3NAӦWwI%2x+3#!k3W%`Aӧ EaK3W;k!" 3W Aӧ + 3W%!>3JQAӪM`B'l3Jd@!G. 9VAT+. A@V!-3 Ņ3 !93IsAӪ"_E3ItH!P.HG2AXL&0.HK!I2ڛAӠt)lūo2 ![3?d*!Aө3?d!.AU"Y.?!.AUY9o.?!3AӦa7C3(!ׁ37Aӧ 7Lc3m!3?AөI^3? '! . sAT%&. 'v!lc3\Aӧ631%!3>Aӧ\U3!3>Aӧ\ַ3&!3IFAӪvcϽ3IY!3IFAӪvc3IY wӘt) 5c ͖+̾Әt) 5c-3|0-AӦbxA~What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
[...]
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed ; NNӚ2) s   'Ӛ2) s93I{0-AӪ33A~Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
[...]
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.
Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.
AӪ33@@AӪ33 /ӕ) 7    9U2ҥ-AӠ2|AӬ쟮When a process is run, this register is loaded with the physical address where the program begins in memory. Whenever the program references a memory location, the content of this register is added to the reference.In the context of computing, a base register.AӠ2|@@h[BAӠ2|Ӄ󘜼 ) Y 473Nҥ-AӦWFUA~Memory space being wasted due to data not fully filling pages.Internal fragmentationAӦWFU@@ib =AӦWFU Tک󚦊) o 3Id0-AӪ=/Aӻ-Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each b߫!( {go2'0-AӤk*A~new_value = a * old_value is a permitted transformation for this attribute typeRatioAӤk*@@8m9AӤk* 6Xz$Fh4Vxx!"3NAӦWwI%2x+3#!k3W%`Aӧ EaK3W;k!" 3W Aӧ + 3W%!>3JQAӪM`B'l3Jd@!o2bAӤlxK/2&!3IdAӪ=/O3I}!31Aӧ1hsݍ3D!}3Ij%AӪLZ^f3I!. AT(bNs. s'!. AT(bxG. s6!+. HXAT\ZNs. !3.CAU7l.L!2ɻAӤkM2!3?.ΏAөa3?.!2AӠnPW2!2"AӤl+Cg2"!j!2ZAӠv 2,!2@vAӠe{2Z!b'.HMAX=.HN!37AӦ(t:\U38#!.HNCAX"DWU.HQ ~!. *bATf,. *!v5.HEr9AX: Jb.HG2s!5?1Aʸjhsr#5?!7G3JAӪ Ĝ3JG!3AӧO?3!3AӧP Ym3(!5?uAʸ!!5?R =5">Goals of I/O software

1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
[...]
6. Managing shared versus dedicated devices.
Goals of I/O software

1. Device in >5">Memory management algorithms for finding an n-sized hole from a list of processes and holes

[...]
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.
Memory management algorithms for finding resources between them.Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.
AӠ^ =@@}ބ8ZAӠ^ = $Fh4Vx4Vx ( !'3IsAӪdžȴmr3Is!3NLAӦ[+2Mm3PP!3AӦE-_3B!3AӦ-PAmI3!3AӦ-PAMo3&!2L AӠn "v-2^[!!.:M!AUJQs.;(!TM2g"AӠ:Y2g|!{3AӦW۷i3)!A2AӠgX}2!Y5?|Aʸm55?|ԁ!2|AӤlll2!!-JARh9$u-!5?ڐAʺ J%5?U!R3'mTAӨk_+F3'!. \wATs"*&. aߧ!ط2AӠnF蹵2!Y2,AӠt{34̑2"!'3IsAӪdžȴmr3Is!2טAӠr|d+2*!A3AӧTje3q.!A3AӧTjT{3qA!'3AӦM93!O2AӤk{dZ)2n!O2AӤk{d;2n!'3',AӨk%3'!k3?AөbN#3?]!k2AӠzSix operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
[...]
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating wwØ)  9  R3?/.0-AөGAӬ쟮Spinning vs. switchingWait for a resource that's been locked (by another CPU) to become free, or load another process? (terminology)AөG@@f) HfAөG3͛әۊ) EcU3?0-Aө􀼋DA~A requirement for (type 1 hypervisor) virtualizationSensitive instructions must be a subset of privileged instructions.Aө􀼋D@@£EAө􀼋D C(5BO\iv,9FS`mz #0=JWdq~ i#. N Cb3ͽ <3 %3¡t V9.H^ -. P 3|X )k3A Ə%3\ К. R' ~=3 k37W 3\ 3I ҁ. l/M 4g3Ö 'S. \ 23ô .?jB Ns.  i3Jtn ؓ.  }3 aK3W;k x3?f 3?fj e- 2ݯ 3IY 93S d2 e3I` 38py  3\ M 92ט 3It) s{3Ia u.nl 3  c3; 3&o¿ 3?o 2 xk2ᔴ 93 ;m.E w3'# 3>o %3J7X د3&s "3Iv Ym3( s. s' w36 +A2p Bk3NQ 3?d) 3' E3Z 2a 82Е m. i 3I 3} 2am C2 . lC ?(5BO\iv,9FS`mz #0=JWdq~ 3I$w %3' W2 j3  I3Rl 3Id Y2g| S5? 3I$w %3' W2 j3 ']3I,2 L3x `-2 }[2! 3 d~ O3I} ]2 mE3?[ 33?:Ø 3| 3? й3d 3IN ' 2B {3 3)' 3&s@ 2C# 2$Y 3I \-( g2"!j 3I" +3&rr }2AU +2| E3?d 2Y o+3I 3I 2@ 3JG . A@V 23 G2 !3 @ u2a 2 03 j E.Hp v.HEq 2! '3I _2) 3J G. s6 '3 ӣ 3I% 3y U3U 3S @3, M- A33 #3I) II鶳) QI  ,ͫ) QI13 0-AӦRA~Translation Lookaside Buffer (TLB), or associative memory.A hardware cache for the page table. When a virtual address is presented to the MMU, all the entries are checked in parallel. Misses can be handled either in hardware or in software.AӦR@@[v AӦR nnΗd) -9    j380-AӦC~Aʵ9XWhat does a paging system need to do when a process is scheduled for execution?

1. Reset the MMU and flush the TLB.
[...]
3. Optionally, bring some of the process' pages into memory.
What does a paging system need to do when a process is scheduled for execution?

1. Reset the MMU and flush the TLB.
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
3. Optionally, bring some of the process' pages into memory.
AӦa33@@ib =AӦa33 ?ight:600;">3. Minimum length description.
Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.
General ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.

3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.
I/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.
AӪE@@c|AӪEthe DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
[...]
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.
DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.
AӪ"@@0Ik[AӪ":600;">2.
Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.AӤn\9X@@llJAӤn\9X tᓗ) iK   0+2Ba0-AӤn\9XAӯ AGeneral ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization@έ) 5 x3I/0-AӪEA~I/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
[...]W. 9AT+G. 9V. A@VAT'. A@ò. Cp#ATb Ko. CpAXq. I ATZ U. Izi#. NATԓS|r. Nt-. PATSyk. PК. R'AT9Qx. R'S. \ATs"я. \w*&. aߧAT.- i. a7. fAT_}M. fQm. iATbl. iҁ. l/MATuJ5. l/. lCATit>. l@. puATax4. cؓ. AU֗wO+.y[.{9AU}K{.9gu.nNAU}K{.9u.nlAUzɧw.N/w.ZAU{ ɧw.N˷.ZAU."Y.?AUʢ.Y9o.?AU%1%ai.k.*AUjV.7RU.ؖAU7l3.C.LAU Lj=|.M";m.E AU _O\)a(+.Rg%.BAU ]-z(m.Yc. ^^}7Vu/Nm'Fe( @hAUs$.a.!AU/0.!{"%.#3SAUu#.#3n.#m{AU9.#mIu.(X8AU \9.#mc1.-AUj?P_.-4͓.0/AUy-l/M.0QK.1AU7, .1^.3$)AU>N.3$&}.4EAŬ+m.4jj.6AUQ.6+.7AUJ!.:M!Qs.;(AUQ.+.>.4E'.>4AUe^^.>u.?jBAUQ.S@u.S~AX9 7.HZ&CHY.HAXL.H:X.HAX]`BfC.H%+.HAXG>=.HR.H+AX.E.HӢ.HbAXt.H.H AX}`Bu.H ADu.H$AXH?}CI.H$qw.H,&AX^.H,'F|.H2t2AX+BY.H2t=.H4VAX`>.H4E;.H6%AXc{.H6.H9 AX_dz+Y.H;5.H=2AXgo;d#_.H=2d.H=7AX33c.H=A.H?Y ::d 6`2\.Xlowe)Aӏn5?01Jx&Aӏn5?G1Jz)Aӏ~V1JAӏ~VJI1J)Aӏ>k1J$Aӏ> ?1J")AӠƨ%2?AӠƨ 2j)AӠP'_2cAӠP-/2)AӠOS2[...]Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.
AӤl+C@@8m9AӤl+C ||ϳ) Eo  yϠϳ) Eo 30-AӦA~Types of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.
2. Address spaces. Employ base and limit registers plus swapping.
[...]
Types of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.
2. Address spaces. Employ base and limit registers plus swapping.
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.
AӦ@@AӦ 7') sC zϩ') sCO3x`0-Aӧ(A~(Dis)advantages of policy/mechanism separation within an OS

[...]
2. Extra overhead from crossing the user-kernel boundary.
3. Extra overhead from sending various messages between pieces of the system.
(Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greater flexibility.
2. Extra overhead from crossing the user-kernel boundary.
3. Extra overhead from sending various messages between pieces of the system.
Aӧ(@@gFBBAӧ( ||) cQ yϫ) cQ1K3&s/)0-AӨYKԋDA~(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
[...]
(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.
AӨYKԋD@@f}U̻AӨYKԋD 㳕#) k;  rϱ㳕#) k;220-AӠ PA~Scheduling algorithm goals for interactive systems (in addition to the normal ones):

[...]
2. Proportionality, meet users' expectations.
Scheduling algorithm goals for interactive systems (in addition to the normal ones):

1. Response time, respond to request quickly.
2. Proportionality, meet users' expectations.
AӠ P@@h[BAӠ P Գ(    U3I#;0-AӪrAF~Character devicesI/O devices such as keyboards or printers that generate or accept a stream of characters.AӪr@@0Ik[AӪr9ك) -2#z0-AӤl҆A~In machine learning, a decision boundaryIn machine learning, the bounder between two neighboring regions of different classesAӤl҆@@:AӤl҆ "() u     "bЗ() u"hy-)0-ARG^EA~Meaningful operations on ordinal attributes are mode, entropy, chi squared test, [...].Meaningful operations on ordinal attributes are mode, entropy, chi squared test, median, percentiles.ARG^E@@ffffffARG^E 6Xz$Fh4Vxlor:#000!Y2,AӠt{34̑2"!O2AӤk{dZ)2n!3?DEAө)rm+ 3?H!'3',AӨk%3'!k3?AөbN#3?]!M3J"AӪjdZI3J`R! 3IwAӪQO3Iz!Z3N;AӦ[E3N!2ϨAӠnN /g2 !38LkAӦ(yH38py!(y3J3AӪohsb3JN!'3I2AӪjG+3I!2-AӠmhs2K!l3ɖAӦWXAu3!.HQ AX׿H'.HT+!2,AӠnBF1a2P!9.#mAUIu.(X8!9.#mAU \c1.-!Q.S@AUu.S~!qM3&sFAӨYJI3&s.!^3IuLAӪ"3Iv!^3IuLAӪp/3Iv!3?daAөx3?f!3?daAө¹!3?f!M3J"AӪjd3J`d!3?DEAө)rʹ3?H!3?DEAө)rm+ 3?H!3?mAөdZ03?m 㳗ġj) ]!     ^Й㳗ġj) ]!2"0-AӤl+CA~Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go d d( w   '( w3I 0-AӪmA~Block devicesI/O devices such as disks that contain multiple data blocks that can be accessed independently.AӪm@@0Ik[AӪm wwr) mQ  ~r) mQ3&r90-AӨYG A~(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
[...]
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.
(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.
AӨYG @@3J"AӨYG /span> Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.
AӪ49X@@AӪ49Xation error, and choose the model with the lowest training error.
2. Functions of device-independent I/O software

[...]
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.
Functions of device-independent I/O software

1. Uniform interfacing for device drivers.< 峕|)  +    Y20-AӠozAP1'A thread (in computing).A kind of miniprocess running in quasi-parallel with other similar ones, sharing the same memory space.AӠoz@@%0FAӠozÔ ӗ) K U2A#0-AӤnkmA~General ways to combat overfitting / generalization error

[...]
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
Four ways of implementing sending on multicomputers

[...]
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)
Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)
Aө췝@@f) HfAө췝 xx󕬞) We  }󕬞) WeU-20-AӠsA~Advantages of implementing threads in user space:

[...]
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
3. Better scaling, as threads don't need to be stored in the kernel.
Advantages of implementing threads in user space:

1. Thread switches can be made without kernel calls, which can be very fast.
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
3. Better scaling, as threads don't need to be stored in the kernel.
AӠs@@AӠs 5!5) A  I3I}z0-AӪ聐GҰ) AI3I}z0-AӪ聩A~What are the four mechanisms that weave for us a web of significance?The inner lawyer, the rose-colored mirror, naive realism, and the myth of pure evil. Our ever-judging minds give us constant flashes of approval or disapproval, along with the certainty that we are in the right.AX7;@@K AX7;pan style="font-weight:600;">1. Device independence.
It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.
AӪ聩@@c|AӪ聩ing for device drivers.<+5">Goals of I/O software

1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
[...]
Goals of I/O software

4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
[...]
Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.
AӠobN@@AӠobNach block pointing to the next one and the rest being data.
[...]
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.
Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.
Aӧ;d@@fdgAӧ;dnter from interrupt vector.
[...]
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.
Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.
AӠnI@@h[BAӠnIts).
7. Fair-share scheduling (each user is allocated a share of the CPU).Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).
AӠ|!X@@5(XdyAӠ|!X Ó) '   ;ҵÓ) '}2$0-AӠnIA~Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program cou/ {{G) iM  zҶG) iM7G3J0-AӪ ĜA~The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
[...]
3. Linux operating system
4. Hardware
The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
4. Hardware
AӪ Ĝ@@c|AӪ Ĝ ] ړ) !]   W'3 0-AӦW&/AӬ쟮A local page replacement algorithmA page replacement algorithm that, upon process A triggering a page fault, removes the oldest page associated with process A. Effectively allocates each process a fixed fraction of the memory.AӦW&/@@ib =AӦW&/ŚV) w{G. 9V0-AT+A~An example of variable transformation being useful in comparing two variablesComparing people based on the variables age and income. With no transformation, the differences in income will dominate the differences in age.AT+@@BTAT+ ^^}7Vu/Nm'Fe$8L`tAX: Jv5.HEr9b.HG2sAXL&P.HG20.HKAXmuO.HKwFK.HMPAXb'.HM=.HNAX"Ѱ.HNCDWU.HQ ~AX׿.HQ H'.HT+AX -.HT+e$.HWAXi*nW.HWG;.H] >AX7;Bqa.H] V9.H^AXǝ?.H^ft.HdAXUXCu.Hd.^J.HkqAX~z J6U.HkyH.Hm?AX).HmE.HpAX11'YG.Hp*-.Hx{A\nRZ .uy.R6A\ MeW!..ҩA\ MeW!.OX.A\`AxG.>S!.A\pн.fLj.D{Aӏ9XM1Iy1JwAӏn5?01Jx&G1JzAӏ~V1JJI1JAӏ>k1J$ ?1J"AӠƨ%2? 2jAӠP'_2c-/2AӠOS2ַ3&3>U33IF3IY3IF3IY3's^I3'C3'3h=3'lo2b/2&3IdܚO3I}31ݍ3D}3Ij%^f3I. s. s'. G. s6+. HXNs. 3.C.L2ɻ23?.Ώa3?.2W22"g2"!j2Z 2,2@v{2Zb'.HM=.HN37U38#.HNCDWU.HQ ~. *b. *v5.HEr9b.HG2s5?1r#5?7G3J眤3JG3Ym3(3?35?u!!5?RS2"'簯2D[-Sݒ;-H~2y2Z3Qy[W 3R`23SI2G2|1X2m@3F̡mE3F2#z2$Y2#zG2$Y jj6Xz$Fh4Vx!C2wAӠsRkAg2M!3I AӪ֖I3I"! S3IAӪVڕ3I!)-3LAӧ<2!z3l!C2wAӠsRkAg2M!>3IAӪ$~3I!m.4AŬ+jj.6!K2QAӠJ2w!ğ3?CJAөȴAo3?D!-ARM -a|! 3N0AӧíX3Qx!QK3AӦ c3+!ƻY3?hAө@53?i1!ƻY3?hAө@NM3?i10!M3 AӦaݲ=ql 3(!"U3AӦ-p9;3,!ǩ2AӠo!437AӦ(f")Q37F6!ɧw.NAUz/w.Z!ɧw.NAU{ .Z!ɿ3AӦ(a?}х36!x. 2>WATL. 9!Y2AӠozã+2|!Y2AӠoz`|A25">(Dis)advantages of contiguous file allocation

1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
2. Good read performance. The entire file can be read from the disk in a single operation.
[...]
(Dis)advantages of contiguous file allocation

1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.
AӧCz@@fdgAӧCz1  h2m f) o  ) o- 20-AӠ|!XA~Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
[...]
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery ticke0t with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.
AӦb$@@6.֒ AӦb$9k address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
[...]What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consisten s) !   p2/0-AӠ9AӬ쟮A preemptive scheduling algorithm.A scheduling algorithm that will let a process run for some maximum amount of time before switching to another process. Uses clock interrupts for this purpose.AӠ9@@AӠ9zӇ䓘) + Dg3 *0-Aӧ;dA~Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of e.  ) 9   Xo3 P0-AC̕) 9Xo3 P0-AӧB<9XA~pid = waitpid(pid, &statloc, options)

(POSIX system call)
Wait for a child process to terminate. Parameters:

pid = the child to wait for, or -1 for any
&statloc = set this address to the child's exit status (normal or abnormal termination, exit value)
options = other options
AӠ\@@JOQ'AӠ\sure has little effect on the performance of decision tree induction algorithms.
Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.
AӤlll@@~YAӤlll  ) 7    m.H?0-AX悰!AӬ쟮Why might we be blind to our own selfishness?Because cultivating a reputation for kind-heartedness is even better than true kind-heartedness.AX悰!@@(LGAX悰!iѠ) OE).Hm0-AXA~What are the two types of experience making us feel good?Pleasures are delights that have clear sensory and strong emotional components, such as good, sex, backrubs and cool breezes. Gratifications are activities that engage you fully, draw on your strengths, and allow you to lose self-consciousness.AX@@~>NAX
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
[...]
I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.
AӪ7L@@0Ik[AӪ7L 4)     l)  2|0-AӤlllA~Benefits of decision tree induction

[...]
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity mea=ite programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.
AӪ>v@@0Ik[AӪ>vɒ~.?jBA~Ns. A~i3JtnA~ؓ. A~}3A~aK3W;k llϥ) )  ϥ) )P]3I0-AӪ7LA~I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?? VV𓕪)   ԗ𓕪) l\2 m0-AӠni(A~The three possible states of a process.

1. Running (actually using the CPU).
[...]
3. Blocked (unable to run until some external event happens).
The three possible states of a process.

1. Running (actually using the CPU).
2. Ready (runnable; temporarily stopped to let another process run).
3. Blocked (unable to run until some external event happens).
AӠni(@@AӠni( ]]ՓӚ) %M ԥӚ) %MJO3J0-AӪZA~The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. Standard library (open, close, read, write, fork...)
[...]
4. Hardware
The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
4. Hardware
AӪZ@@0Ik[AӪZ 󘌗ӣ) 5   5%3 0-AӦ<{AӬ쟮The structure of a generic p BFԨ6) =. ҥ-AT(bxA~The data mining algorithm is used as a black box for finding the best subset of attributesThe wrapper approach to feature subset selectionAT(bx@?c/ AT(bx>3(5BO\iv,9FS`mz #0=JWdq~nӘةkjӗݯͳQÅ;nӘةkjӗݯβٚ䍒پ‚󘝸M¬瓕ﳚa¹)øәލÔĎӘĝ#łoŬӚXŶ֭Ә(蓕pәȩѣӘȎЕȫ󚦥ȸⓘ}Ȼȳɖ.Él󚧣dʅϡ|䷓wʔ̚ߓ̾ӘtӚ2؅ӕ̀󚦊 ͗ ͪØͫdᓗϠϳϩ'ϫϱ㳕#ЄԳЗ(!Й㳗ġj"#r&峕|(әȒ)󕬞*Ұ1ҵÓ2ҶGB(5BO\iv,9FS`mz #0=JWdq~8󕬮申aۦөԁ`ھ)Rꩳ P֨)N֐ꬳ8;ӝ<̕>@BϥCԗ𓕪DԥӚE󘌗ӣIեKլ%LJӘO֥3UׁZסĴ[ײx_׸󕾃^򓘋ԙ+]ә3d⬳mf؅g^iّ7j٦ֳp٦ӘXq쳘sӳ|tړꓙΧyӗz|ۉϋݒ’ڝܘ!ܮӘHÜ)୓Ѓrӗ݈ӕ}²Žޛ{ޣޱ󚧸ߡЬ๨ٕၓuᩛ≓ڷoӕ⊭AՓK󙚊{ӘmぺӘ] Vu7/Nm'FeAӠnI}2$2@AӠn/m2@r2YAӠb2W~2AӠ{32E}I2AӠ"G\)2Ch2WAӠֺH1k2ih2mAӠK2QJ2wAӠ-z_2QJ2k1AӠL/"'2;2 AӠQ 2 PF2&AӠ޹2&sտM2Q>AӠX2k2AӠ@b2Y}2AӠ P222C#AӠ,G;d2W2AӠ-QM2gd2 AӠm;AyM2 12AӠnP2W2AӠp2X&e2#AӠHĜC2f_!2gs}AӠ;d^2gs߷#2gAӠ:TM2g"Y2g|AӠui%4U2iS2AӠz(Dis)similarity metrics for ordinal attributes?Transform the classes to a numbered scale starting at 0, then define the dissimilarity of x and y as d = |x - y|/(n - 1) where n is the number of classes. For similarity, s = 1 - d.ATԓS@@~dPR ATԓS evels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with largOմ) %;3aҥ-AӧA variable-length independent address space used by a process. Something the programmer is aware of.
A segment (in the context of operating systems)AӧIn UNIX, parent and child processes share both program text and data after a fork. The data pages are set as read-only until either process tries to update a memory word, at which point the page in question is copied and both processes have their copy of the page set as read-write.The copy on write approachAӦ[@@ib =AӦ[ VVܞ%) W  լ%) WL 3I_0-AӪݒA~RAID levels.

[...]
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single C _Ә)    Dm3SMҥ-AӦ[AӵQIn UNIX, parent and child processes share both program text and data after a fork. The data pages are set as read-only until either process tries to update a memory word, at which point the page in question is copied and both processes have their copy of the page set as read-write.The copy on write approachAӦ[@@ib =AӦ[Oմ) <( ?}AaS3Rҥ-Aӧ}~A~The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.Symbolic linkingAӧ}~@@fdgAӧ}~ 6Xz$Fh4Vx( @bdˆZ׹3?_wA<-;oDY3?( @bҟFR!2BPAӤnĴZʱA2B!w5?SAʸ 5?i|!0.!{AU/"%.#3S!?2)AӠVG2 ^!L.H:AXX.H! U2A#AӤnkm}2AU!*S3IcAӪ.V(Q3Ii!33'AӨkwq63'*V!33'AӨkwq&3'*g!z_2QAӠ-J2k1!P]3IAӪ7L'3I!{3?tAөmo3?t!38AӦ(w3338K!ӽ2TAӠ^?}?2[!ӽ2TAӠ^?Χ2v!.>.4AUQ.+E'.>4!13\ AӦ\m1+3^ț!13\ AӦ\G 3^Ȼ!5?Aʸei\]5?0!83Aӧɱ&`S3v!83Aӧɱ'd>C3!J3AӦW@]?}Y3N.!J3AӦW@]?SR/3NM!e2!*AӤl!7B2!6!Վ 3&pgjAӨYEbN/3&r!ս3J`AӪ<(U@3J 22C֐ꬳ) C2H3]0-AӧcA~Ways to reserve swap space for a process

[...]
2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapped back in.
Ways to reserve swap space for a process

1. When a process starts, reserve an amount of space equal in size to the core image of the process.
2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapepd back in.
Aӧc@@gFBBAӧc IIto reserve swap space for a process

[...]
2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothingk( {'   /֢( {'/֢( {']-}x0-AR7TZA~Ratio attributeThe values are distinct, can be ordered, and both differences and ratios between them are meaningful.AR7TZ@@fffffgAR7TZr֥3( u330-AӦyA~A page faultA page not currently mapped to a page frame in physical memory is referenced, causing a little-used page frame to be written to disk and the referenced data to be read in.AӦy@@[v AӦy ..uP?֨)) '%va3IƂ0-AӪߎA~RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
[...]
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single E[...]
Processor allocation algorithms for load balancing

1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks.
AөoK@@2x3AөoK  No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly f ) m  Wꩳ ) mt"3Yҥ-AӦ[0AA~Functions that are called by an object file or a library that the object file calls, but that are not present in the object file itself.Undefined externalsAӦ[0A@@@p+AӦ[0A-weight:600;">2. Not Recently Used.
When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
[...]
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Feplacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after NFF:㳙) o= u㳙) o= F3?EO0-AөoKA~Processor allocation algorithms for load balancing

1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
Q3) k   `ׁ) k380-AӦ(w33A~Page rT Iight:600;">3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.
General ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
[...]
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.
The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.
AӦ9G@@AӦ9G used for the longest time.
[...]Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).
AӠI@@h[BAӠI Ĵ) AE    bסĴ) AE3 0-AӦLA~Two major issues for any paging system:

1. The mapping from virtual address to physical address must be fast.
[...]
Two major issues for any paging system:

1. The mapping from virtual address to physical address must be fast.
2. If the virtual address space is large, the page table will be large.
AӦL@@AӦL [x) {5   .T37ײx) {5.T3 0-AӦ9GA~Ways of dealing with bad sectors

1. Substituting a spare for the bad sector. Reading the whole track takes two turns.
[...]
Ways of dealing with bad sectors

1. Substituting a spare for the bad sector. Reading the whole track takes two turns.
2. Shifting all the sectors to bypass the bad one. Reading continuous, but more bookkeeping for the controller.
AӪУ@@c|AӪУrdware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
[...]
4. User-level I/O software. I/O libraries might e.g. format output.
I/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.
AӪo =@@AӪo = Lre of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
[...]
5. Referenced bit
6. Caching disaM) 7%ʥ2"ҥ-AӠYnA~A system where computers have e.g. a small cache memory, a larger main memory, and a yet larger disk storage.The memory hierarchy (of computers).AӠYn@@h[BAӠYnƒ)ә3) m')-0-ARĜA~How is bias defined, and how is it often measured? (in machine learning)As systematic variation of measurements from the quantity being defined. Often measured by the difference between the mean of the measurements and the real quantity.ARĜ@@ARĜ PP:#0000ff;">[...]
Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are Protection keys (memory management technique).
Memory is divided into blocks and each block is assigned a protection key. Processes are assigned protection keys, and are only allowed to access the memory blocks they have the keys for.AӦ @@AӦ w󕾃)   2׸󕾃) 2x0-AӠIA~Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of loY &&Oھ)) ]{30-AӦW۷A~What to consider when deciding what processes to swap to disk?

1. Process size. Bigger processes need more memory.
[...]
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.
What to consider when deciding what processes to swap to disk?

1. Process size. Bigger processes need more memory.
2. Paging rate. Obvious.
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.
AӦW۷@@ib =AӦW۷   ۦөԁ) UE     Y5?|0-AʸAʻtThree ways by which mental representc)) ]    {30-AӦW۷A\Protection keys (memory management technique).Memory is divided into blocks and each block is assigned a protection keөԁ) UElۦөԁ) UEY5?|0-AʸA~Three parity disk.RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.
AӪv@@c|AӪv5">RPC implementation issues

[...]
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.
RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.
Aө|/@@2x3Aө|/es exist physically within the organism.
@v_{zAVz*@[%faq@Aʻt@f`@f`AVz* m) ?i   s⬳m) ?iׁ370-Aӧ 7LA~Reasons to give processes some control over the virtual memory map

[...]
2. Sharing of pages can be used to implement a message passing system, with one process unmapping a page and another mapping it in. Thus, data doesn't need to be copied.
Reasons to give processes some control over the virtual memory map

1. If several processes can share the same pages, high bandwidth sharing becomes possible.
2. Sharing of pages can be used to implement a message passing system, with one process unmapping a page and another mapping it in. Thus, data doesn't need to be copied.
Aӧ 7L@@4Aӧ 7L5">What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
[...]
What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.
AӦa=q@@ib =AӦa=qottleneck of a single parity disk.@߰*@oQAӱAӭZE0@c|@c|AӪ`1'@;|@^_Aӱ ) I P؅) IF3I'f0-AӪvA~RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
[...]
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single b 0X0^(      p-H0-AR#OAӰYhsOrdinal attributeThe values are distinct, and provide enough information to allow for an ordering.AR#O@@AR#O߃Ә) o m3Uҥ-AӦ[SA~When a program is linked, the linker searches the library files for any function calls not present in the object files. An executable binary is then written to disk containing all the needed functions.Static (library) linkingAӦ[S@@6.֒ AӦ[S ^}^7Vu/Nm'Fe( @\AӠdTj2#V{G2?AӠ`|(h2`T2AӠbxQA2_sEO2"AӠe2@v{2ZAӠvɪ2Z 2,AӠmHZ2NN2AӠmHZ2N r2AӠm^U%2.2AӠm^U0%22AӠm/\)e2l-2AӠmx^2Fbw2AӠmx^2Fx2AӠmj2y2AӠmR,K2Eڥ2AӠmՁq2N12-.AӠmhs2-2KAӠn "2L v-2^[AӠn Vp2^IM2{AӠn MӴG2|1X2mAӠnFط2蹵2AӠnBF2,1a2PAӠnN ŕ2Ϩ/g2 AӠng 33l72c2 AӠni(l\2 m_2)AӠnk"2*9s<2UAӠnSVE2UjR5'2AӠn,}=K2&ɑ2$@AӠnI}2$2@AӠn/m2@r2YAӠo-`B2Z[ʾ2rl 7) #S   Zّ7) #S#_.H=20-AXgo;dA~How to use concessions as a weapon?First ask for something, then when the other person says no make a "concession" by asking something less instead.AXgo;d@@~>NAXgo;d @@ֳ) {-   s٦ֳ) {-a3?i10-Aө|/A~What does a paging system need to do when a process is scheduled for execution?

1. Reset the MMU and flush the TLB.
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
[...]
What does a paging system need to do when a process is scheduled for execution?

1. Reset the MMU and flush the TLB.
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
3. Optionally, bring some of the process' pages into memory.
AӦa7@@ib =AӦa75">RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
[...]
RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.
AөdZ@@2x3AөdZ.֒ f3FC @6.֒ e-3Ys whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.AӦbvȴ@@ib =AӦbvȴ ;(5BO\iv,9FS`mz #0=JWdq~ 3?o 38K 3 Ĵ S3I®l 3 x 2 7s2 L-;3 3?o 38K 3 Ĵ S3I®l 3 x 2 7s2 L-;3 c3+ i3) m55?|ԁ c3m 3ID -3Y [;-^ d.H=7 C3( 3?l . Cp# c3h 5?i| E'.>4 OQ3?'' 2B .H9 .{9  . 2= '3?T k.* #2g p2 .Z `3;I!  3H  3?D 3 ^.3$) i3?hr ĵ2 ޏ3?C !2gs} 3II 37 .! 2Y Oa3?[` g3' n.#m{ i3' c- p?3&3; 3IY 39^ . * 2Ь S3?&  3I1^ G2$Y ~3IuK  6`2\.XXpage)AӠsRC2wAӠsRkAg2M)AӠozY2AӠoz`|A2)AӠt֨j92fAӠt֨T2)AӠnI}2$AӠnI2@)AӠr|2טAӠr|d+2*)AӠsU-2AӠs2Y)AӠsuN2ZSAӠsu2vY)AӠsRC2wAӠsRkAg2M)AӠt)lI2ڛAӠt)lūo2 )AӠt{34Y2,AӠt{34̑2")AӠt֧j92fAӠt֧ބ2)AӠt֨j92fAӠt֨T2)AӠ ȴ[2gAӠ ȴxk2ᔴ)AӠ [2gAӠ 8'c2)AӠ'Mb2`AӠ'M'u2v)AӠ'M¹b2`AӠ'M¹p2)AӠqV2z&AӠqV|2摜)AӠ{,wu2 vAӠ{,IX2$)AӠ| 2%OAӠ| 2@)AӠmeg2@AӠmJ2穥)AӠ?|]2:AӠ?|62)AӠ|8EG2AӠ|ZDk2/)AӠ}8EG2AӠ}2/# %*@Vl2H^t$:Pf|esn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, @2ݯ@3IY@93S@d2 @e3I`@38py@ 3\ M@92ט@3It)@s{3Ia@u.nl@3 @c3;@3&o¿@3?o@2@xk2ᔴ@93@;m.E @w3'#@3>o@%3J7X@د3&s@"3Iv@Ym3(@s. s'@w36@+A2p@Bk3NQ@3?d)@3'@E3Z@2a@82Е@m. i@3I@3} nnӘX) Uc  {٦ӘX) Uco3]40-AӦbvȴA~What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
[...]
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed E쳘) =O    e쳘) =OHow to standardize a variable to mean 0 and standard deviation of 1?
If x is the mean of the attribute values and sx is their standard deviation, then x' = (x - x) / sx.AT@@ʶuAT j6Xz$Fh4Vxjprocess?!3?B,nAө׻dv03?C!K3'DAӨl'&y'33'Reading a book in my hands and experiencing interest in it, the content of my consciousness consists of mental representanta and not [...].Reading a book in my hands and experiencing interest in it, the content of my consciousness consists of mental representanta and not the neural process of construction.Aʸ @@[%faqAʸ  gꓙΧ)     ?a3?%eҥ-AөALjA multiprocessor system with a database telling where each cache line is and what its status is. When a cache line is referenced, the database is queried to find out where it is and whether it is clean or dirty.Directory-based multiprocessorAө@@2x3Aөڑ( }c.>.40-AUQ.+A~Gini for class t$1 - \sum_{i=0}^{c-1} [p(i|t)]^2$
where p(i|t) is fraction of records labeled i at a given class t, and c is the number of labels
AUQ.+@@~Q))AUQ.+5">Reasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records may be generalized from.
[...]
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.Reasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records may be generalized from.
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.
AӤm|@@llJAӤm|. *aAӮnk3IAӮ2S3?L0AӮjI23AӮ7smT 3&~< *0DXl  4H\p$8L`tC2wkAg2Mm.4jj.63I ֖I3I" S3Iڕ3I/3 q93/3{3_3IN#3Idn5? 15?%[3IO63Ip^2gs߷#2g3Iko+3I01Jx&G1Jzf33'k?3''3&`}3&`3m93.7RU.ؖF)3Iwi^M3I^.>u.?jB2X&e2#н.fLj.D{. ,TO. /;3?HOa3?[`-`‹-}G3&rۊد3&s3 3 Ĵ"o2uf2K3&,C 3&r3&,k*?3&΅|3 d*3 P73 #[3#2 23I 3I"3I ֖I3I" S3Iڕ3I)-3Lz3lC2wkAg2M>3I$~3Im.4jj.6K2QJ2wğ3?CJAo3?D- -a| 3N03QxQK3c3+ƻY3?h53?i1ƻY3?hNM3?i10M3 l 3( V/NmV'Feu'Fest required message for trAӠm;AyM2 12AӠnP2W2AӠp2X&e2#AӠHĜC2f_!2gs}AӠ;d^2gs߷#2gAӠ:TM2g"Y2g|AӠui%4U2iS2AӠz2 IAӤkjAv2 2amAӤkjAv2 폰2aAӤkrX2a2ݯ 7Vu/Nm'Felization error as the sum AӤk{dO2;2nAӤk%2o1u2sAӤk)7|2"N27AӤk{dO2;2nAӤk%2o1u2sAӤk)7|2"N27AӤkw%2!}2AӤkd2 2\2E8 2bAӤlutV)2]k2>AӤlw:=q?2ĵ2AӤlxKǥo2b/2&AӤlBˋ2a2!AӤlg2!p52!AӤl1'w2!5G2!AӤl!e2!*7B2!6AӤl[tn2!k2"AӤl+C2"g2"!jAӤl<2"!22#z:AӤl҆۵2#z2$YAӤl҆2#zG2$YAӤl`RDe2$Y$2%AӤl`*RDe2$YI=2%AӤm Jia?2%[2( 3ӗ) KK jӗ) KKG#2B0-AӤnȤzA~General ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. [...]
Trimmed meanDefine p as a percentage between 0 and 100, and compute a mean that has the top (p/2)% of the data thrown out.AU֗w@@~Q)%AU֗w#) CE{.H60-AXcA~How can the tit-for-tat strategy be seen is gossip?If we tell somebody about a person we both know, they feel a desire to reciprocate by sharing their own gossip. This gives each of us more information about the person in question.AXc@@\zAXc : 6`d:2\.X)AӠb2WAӠb~2)AӠ{32EAӠ{}I2)AӠcp2/AӠcKm2a3)AӠꭑh2aAӠꭑh?=2!)AӠL/"'2AӠL/;2 )AӠQ 2 PAӠQF2&)AӠ޹2&sAӠտM2Q>)AӠ-z_2QAӠ-J2k1)AӠX2kAӠX2)AӠ@b2YAӠ@b}2)AӠ P22AӠ P2C#)AӠ"G\)2CAӠ"G\)h2W)AӠ,G;d2WAӠ,G;d2)AӠ-QM2gAӠ-Qd2 )AӠm;AyM2 AӠm;12)AӠnP2AӠnPW2)AӠp2XAӠp&e2#)AӠHĜC2f_AӠHĜ!2gs})AӠ;d^2gsAӠ;d#2g)AӠ:TM2g"AӠ:Y2g|)AӠui%4U2iAӠui%S2)AӠzA generic, non-hardware specific hypervisor API that can be used for paravirtualization with a variety of APIs.
Virtual Machine InterfaceAөe@@f) HfAөeۂڒ) 1L. /0-AT A~Two unsupervised discretization approachesEqual width takes a number n and splits the attribute into n same-width intervals. Can be badly affected by outliers. Equal frequency (equal depth) tries to put the same number of objects into each interval.AT @@먺AT 7Vu/Nm'FeAT(bx. AӤnkm U2A#}2AUAӤn/T2AV$јm2BafAӤn\9X0+2Baҝ' 2BAӤnĴZ2BPʱA2BAӤm#2(O'U22qAӤm|af2222.AӤm=q222.vY22E1AӤnkm U2A#}2AUAӤn/T2AV$јm2BafAӤn\9X0+2Baҝ' 2BAӤnĴZ2BPʱA2BAӤnȤzG#2B2BAӦƨ3s3]AӦMӑ'393AӦs33}AӦ 3۞{3AӦ QK3c3+AӦ-PA3mI3AӦ-PA3Mo3&AӦFN3뤓P31AӦFN3뤓gA31AӦV`uW323O#3%AӦV`W323bԓ3%AӦv2~rC3&93AӦv2$rC3&3AӦ23 3RJ3BgAӦ23 3RtA3BvAӦgK+3B.?3AӦ棕k 3V]3AӦC~j38й3d 7Vu/Nm'Fe7( Aӵ%yAZ2NAӵ%yAN2RAӵ0OiBˋ2Aӵ0Oia2!)AӵO *3SDAӵO Hi3T.( AӵOE:\3V,DAӵOE:"=3W{AӵY8XZ+2 Š 3 3 AӦJQzx3 nWK3 AӦL3 3 ĴAӦR13 3|AӦ|13 3| tϋ) 3   ^2gs0-AӠ;dAʶ -The contents of a process

1. Stack (work area)
[...]
3. Text/code (executable instructions)
The contents of a process

1. Stack (work area)
2. Data (variables)
3. Text/code (executable instructions)
AӠ;d@@%0FAӠ;d!۷ͲŸ*) ai.0-AU%1%A~Interquartile range$x_{75\%} - x_{25\%}$AU%1%@@XAU%1% zzݒ’ڝ) 3   ɧw.Nҥ-AU{ AӬ쟮${1 \over m} \sum_{i=1}^{m} \mid x_i - x \mid$Absolute Average DeviationAU{ @@AU{ /ܙĆ) g9b2`ҥ-AӠ'M¹A~A process that typically has short CPU bursts and frequent I/O waits.The CPU-usage profile of an I/O-bound process.AӠ'M¹@@AӠ'M¹ !)   dܘ!) &u3:Bҥ-AӦ("A~The amount of CPU time that a process has actually used since it was started (as opposed to the real time that has passed since the process started)Current virtual timeAӦ("@@AӦ(" 6Xz$Fh4Vx Aӵć."/37j37 Aӵ /x93J>wX3J8 Aӵ Cl/M.0!3.@AӦWj;3~#!K#3?AӦ =1#A3 !K#3?AӦ g3 !ʥ2"AӠYn0!/2!ʥ2"AӠYn¯7s2!3IAӪ"Xi3I!"2*9AӠnks<2U!܋3?'(PAө^5R`3?./!FG3?DWAөMӹ 3?D! 3AӦ녞{3!CI.H$AXH?}qw.H,&!ai.AU%1%k.*!t3?g+Aө-E/53?h`!t3?g+Aө-E/Ei3?hr!c2AӠ۞E)[2!F3?L1:Aөf@?3?LD!>13 AӧSe`BSߛ3!>13 AӧSe`l" 3*!cG3JdAӪSz3Jx%!3IAӪYx3I! 3i1AӦar- 3H!3?Aө7e3?A!>=.HAXGR.H+!|2AӤk)7"N27!ї3 AUAӧ! 3 d~ ӘH) [ XܮӘH) [ 3i10-AӦar-A~What does a paging system need to do when a process is scheduled for execution?

[...]
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
3. Optionally, bring some of the process' pages into memory.
What does a paging system need to do when a process is scheduled for execution?

1. Reset the MMU and flush the TLB.
2. Make the new process' page table current by copying it or a pointer to it to some hardware register(s).
3. Optionally, bring some of the process' pages into memory.
AӦar-@@ib =AӦar-geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
[...]
5. Check for errors, then pass on the data and some status information.Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.
AӪ)@@c|AӪ) ) 1S    aÜ) 1SFG3?DW0-AөMA~Benefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the available CPUs.
2. Advantage is taken of cache affinity when possible.
[...]
Benefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the available CPUs.
2. Advantage is taken of cache affinity when possible.
3. By giving each CPU its own ready list, contention for the ready lists is minimized.
AөM@@f) HfAөMsure has little effect on the performance of decision tree induction algorithms.Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.
AӤlw:=q@@8m9AӤlw:=q $R$)) Y/   , .10-AU7AӯeE?}Decision tree attribute test conditions for binary attributes?One potential outcome for each condition.AU7@@XAU7Ġ) c/3{0-AӧuA~(Dis)advantages of linked list file allocation

1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block In RPC implementations, a small library procedure that represents the server (client) procedure in the client's (server's) address space and hides the fact that address call is not local.
Client (server) stubAө-E/E@@£DAө-E/E 5">Functions of device-independent I/O software

1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
[...]
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.Functions of device-independent I/O software

Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
[...]
6. The choice of impurity mea sӕ}) 3   C2f_0-AӠHĜA){The contents of a process

[...]
2. Data (variables)
3. Text/code (executable instructions)
The contents of a process

1. Stack (work area)
2. Data (variables)
3. Text/code (executable instructions)
AӠHĜ@@h[BAӠHĜC) Q ,3?ҥ-AөiA~An instruction that causes a trap if executed in user modeA privileged instructionAөi@@f) HfAөi L Used.
Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.
Page replacement algorithms

1. Optimal (theoretical). Remove the page that weplacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
[...]
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently  X²Ž) m   .a0-AUs$AӮKɩThe definition of classificationThe task of learning a target function f that maps each attribute set x to one of the predefined class labels y.AUs$@@KAUs$ݠ`ݶ) k3630-AӦ(d17LA~Page rݯɛ) cU3I,K0-AӪĜA~What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protec3. Assembly language procedure saves registers (typically to the process table).
[...]
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.
Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.
AӠn/@@AӠn/5">What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
[...]
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.
What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.
AӦa@@6.֒ AӦaerence, store the current value in the page table entry for the page just referenced. Excellent, but requires spe5">Virtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
[...]
Virtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.
AөU;@@£DAөU; @;4Aӱ*AӫRpi,@@AӦ(đ^@M @tI@Aӱ*  6`2\.X)AӠ;d^2gsAӠ;d#2g)AӠ:TM2g"AӠ:Y2g|)AӠ#&vw24IAӠ#2Q)AӠK2QAӠJ2w)AӠI2xAӠI2)AӠ׾w]2jAӠ׾wC2)AӠ׾]2jAӠ׾]2+)AӠֺH1k2iAӠֺHh2m)AӠThree types of UMA multiprocessors

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
[...]
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.
Three types of UMA multiprocessors

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.
AӨkƨ@@f}U̻AӨkƨ\oAӮk朗,@@AӠ⩝@.ff@X9AӾ]\o q{( qS    #.#30-AUuAʻjError rate(Wrong number of predictions)/(Total number of predictions)AUu@@KAUu"󙞤) y !73'@0-AӨkƨA~Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
5">Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
[...]
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.
Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.
AӠ'K@@h[BAӠ'K@7P@Q-A8Y'  6`2\.X sty)AӠmg+G=2AӠmg+m2r)AӠ2| 9U2AӠ2|S[2)AӠ2| 9U2AӠ2|`-2)AӠ^?}ӽ2TAӠ^?}?2[)AӠ^?ӽ2TAӠ^?Χ2v)AӤka,52 MAӤka>2 I)AӤka,52 MAӤkaq2 ֈ)AӤkjAv2 AӤkjA2am)AӤkjAv2 AӤkjA2a)AӤkrX2aAӤkrQ2ݝ)AӤkrX2aAӤkr2ݯ)AӤk{dZO2AӤk{dZ)2n)AӤk{dO2AӤk{d;2n)AӤk%2o1AӤk%u2s)AӤk)7|2AӤk)7"N27)AӤkw%2AӤkw!}2)AӤkd2 AӤk2A computer in which two or more CPUs share full access to a common RAM.(Shared memory) multiprocessorAӨk7v@@3J"AӨk7v .hh|0DXl  4H\p$8L`tǩ2;23DtK3`bS38p➛38bS38p38w333>o437)Q37F6ɧw.N˷.Zɧw.N/w.Zɿ3х36x. 2>W. 9Y2+2|Y2`|A2/3ykڈ3?2BPʱA2Bw5?S5?i|-3|%3¡t0.!{"%.#3S?2)G2 ^L.H:X.H U2A#}2AU*S3Ic(Q3Ii33'3'*g33'63'*Vz_2QJ2k1P]3I'3I{3?to3?t3838Kӽ2TΧ2vӽ2T?2[.>.4E'.>413\ 1+3^ț13\ G 3^Ȼ5?\]5?083`S3v83d>C3J3Y3N.J3SR/3NMe2!*7B2!6Վ 3&pgj/3&rս3J`U@3J׹3?_wO3?׹3?_woDY3? -.HT+e$.HW. 155. ٤3IS83Itq#.#3n.#m{ \\׬) e   ޱ) eO-a0-ARSwA~Meaningful operations on ratio attributes are mode, entropy, chi squared test, median, percentiles, mean, standard deviation, Pearson's correlation, t-tests, [...]?Meaningful operations on ratio attributes are mode, entropy, chi squared test, median, percentiles, mean, standard deviation, Pearson's correlation, t-tests, geometric mean, harmonic mean, percent variation?ARSw@@fffffgARSw 󚧸) k    3IF0-AӪvcAʶPriority inversionA low-priority process L is in its critical region when a high-priority process H is scheduled. H begins waiting for L to clear its critical region, but L is lower priority, so it is never scheduled.AӪvc@@0Ik[AӪvcςC܇󙚀;) +f3&~W0-AӨZA~LRU (page replacement algorithm)Mark each page with a counter indicating when it was last used, then remove the oldest one when needed.AӨZ@@f}U̻AӨZ ''ڣЬ) Y7    A20-AӠ'KAӯnMapping the data to a new spaceE.g. Fourier transforms.ATf,@@BTATf,Z߅Ó) #S!=38ҥ-AӦ($A~During any phase of execution, the process references only a relatively small fraction of its pagesLocality of reference (in the context of operating systems)AӦ($@@AӦ($to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.AӪd9X@@AӪd9Xble.@?qU@:9#,5}AӺ|AӮG@5(Xdy@h[BAӠ kC@5_@\/KAӺ| -q-ٕ) -   2#zҥ-AӤl҆Aӻ3GIn machine learning, the bounder between two neighboring regions of different classesIn machine learning, a decision boundaryAӤl҆@@:AӤl҆u󚦊^) >ٿ3I_0-AӪd9XA~A privileged instructionAn instruction that causes a trap if executed in user modeAөi@@f) HfAөi //Nm'Fe/Nm'Fe. Device independence. Š 3 3 AӦJQzx3 nWK3 AӦL3 3 ĴAӦR13 3|AӦ|13 3|AӦ-p"U39;3,AӦ(a?}ɿ3х36AӦ(d17L36337AӦ(f"437)Q37F6AӦ(jxk37F-Fu37AӦ(m}`B"/37j37AӦ(qx37Dj37mAӦ(t:\37U38#AӦ(w333838KAӦ(yH38Lk38pyAӦ( bS38p➛38AӦ( bS38p38AӦ($!=38٩539^AӦ($!=3839^AӦ(u39_PTA3:B/AӦ(u39_PK%3:B> %*@Vl2H^t$:Pf| device in advance.
2. Uniform naming. The name of a file or device shou@C2@. lC@Y3N.@ I3Rl@3Id@Y2g|@S5?@3I$w@%3'@W2@j3@%3¡t@']3I,2@L3x @`-2@}[2!@3 d~@O3I}@]2@mE3?[@33?:Ø@3|@3?@й3d@3IN@' 2B@{3@3)'@3&s@@2C#@2$Y@3I@\-(@g2"!j@3I"@+3&rr@}2AU5">(Dis)advantages of contiguous file allocation

[...]
2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.(Dis)advantages of contiguous file allocation

1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.
Aӧ@$@@fdgAӧ@$NPRAӸo)\j3IqAӸo)\3I)AӸ.22AӸ.낞2C# WWǓu) G-     ){-;0-AR`BAӬ쟮Give three strategies for dealing with missing valuesEliminate data objects or attributes, estimate missing values, ignore the missing value during analysis.AR`B@@AR`B:˃( y?Ks3ItF0-AӪ!A~Cycle stealingE.g. a DMA controller requesting the bus one word at a time, taking bus cycle from the CPU every once in a while.AӪ!@@c|AӪ! ) ?M   3?B,n0-Aө׻dZAxTwo-level scheduling (for multiprocessor systems)When a thread is created, it is assigned to a CPU. Each CPU then does its own scheduling on its own collection of threads. If a CPU has no thread to run, it takes one from another CPU.Aө׻dZ@@f) HfAө׻dZUၳϯ) ?-. .0-ATOA~The embedded approach to feature subset selectionFeature selection occurs naturally as part of the data mining algorithm. E.g. decision tree classifiers.ATO@@ʶuATOA5">Goals of I/O software

1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
[...]
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.Goals of I/O software

1. Device independence. It should be possible to wr z) WO  r≓) WO~3b0-AӦaA~Bus-based UMA multiprocessors

1. Only one CPU can access memory at a time. If line is busy, requesting CPU must wait.
[...]
Bus-based UMA multiprocessors

1. Only one CPU can access memory at a time. If line is busy, requesting CPU must wait.
2. Internal cache reduces the memory accesses. Needs a cache-coherence protocol.
AӨlH@@f}U̻AӨlH 6Xz$Fh4Vxxprocess?!"2*9AӠnks<2U!CI.H$AXH?}qw.H,&!3.@AӦWj;3~#!K#3?AӦ =1#A3 !.[3Iv*AӪ~Pu3Iwh!.[3Iv*AӪ$3Iwi!5?|Aʸs5?|!C2f_AӠHĜ!2gs}!2WAӠ,G;d2!A2_AӠbxQsEO2"!?a3?%eAөjb3?''!?a3?%eAөOQ3?''!3- Aӧd33Yy3H!_.-AUj?P4͓.0/!3J AӪ 3J9!S2A paging daemon
A background process that sleeps most of the time but is awakened periodically to inspect the state of the memory. It may choose to evict pages, and tries to ensure that all the free frames are clean. Might be implemented with a two-handed clock, with the front hand writing dirty pages to disk.AӧS@@4AӧS 3ӕ) +  vӕ) +2y0-AӠmjA~Four principal ways that causes processes to be created:

[...]
2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.
Four principal ways that causes processes to be created:

1. System initialization.
2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.
AӠmj@@5(XdyAӠmjs paged out when a character arrives?
[...]
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.
AӪ^@@c|AӪ^ ) ]E  p) ]E.[3Iv*ҥ-AӪ$A~The DMA controller telling a device to transfer data directly into main memory, as opposed to sending the data to the DMA first.Fly-by mode (in the context of Direct Memory Access)AӪ$@@AӪ$ Ocement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
[...]
7. Not Frequently dd 6`2\.Xelec)AӤm=q222.vAӤm=qY22E1)AӤlutV)2AӤlut]k2>)AӤlw:=q?2AӤlw:=qĵ2)AӤlxKǥo2bAӤlxK/2&)AӤlBˋ2AӤla2!)AӤlg2!AӤlp52!)AӤl1'w2!AӤl1'5G2!)AӤl!e2!*AӤl!7B2!6)AӤl[tn2!AӤl[tk2")AӤl+C2"AӤl+Cg2"!j)AӤl<2"!AӤl<22#z:)AӤl҆۵2#zAӤl҆۟2$Y)AӤl҆2#zAӤl҆G2$Y)AӤl`RDe2$YAӤl`$2%)AӤl`*RDe2$YAӤl`*I=2%)AӤm Jia?2%AӤm J[2()AӤm tia?2%AӤm t8C2()AӤm#2(OAӤm#'U22q)AӤm|af22AӤm|22.)AӤm=q222.vAӤm=qY22E1)AӤnkm U2A#AӤnkm}2AU)AӤn/T2AV$AӤn/јm2Baf)AӤn\9X0+2BaAӤn\9X' 2B {{A) ;c  n⊭A) ;c@I3u0-AӦb}tA~What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
[...]
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed  ՓK) m   `ՓK) m"o2u0-AӠoMS A~The average CPU utilization, given that n processes that spend a fraction p of their time waiting for I/O to complete. (Simplified formula.)$1 - p^{n}$AӠoMS @@5(XdyAӠoMS ddV}gӘ)  3[3T.0-Aӧ A~Journaling file systemA file system that, upon e.g. file deletion, first notes in a log which operations are to be performed. After each operation is performed, its entry is erased from the log. If the system crashes partway, the system may look up the log and then perform the remaining operations.Aӧ @@fdgAӧ W) ] :ם3IH0-AӪ@A~I/O software layers

[...]
2. Device drivers. A part of the kernel, either dӘm) k37D0-AӦ(qxA~Page replaguage procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.
Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.
AӠn,@@AӠn, 44H\p$8L`t$8L`tperations common to all devices, and provides a uniform interface to the user-level software.
Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
[...]
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.
General ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
Factors to take into account when using a modified LRU scheme for disk block caching

[...]
2. Is the block essential to the consistency of the file system? If it's not a disk block but an i-node block, directory block, etc., write it to the disk as soon as possible.
Factors to take into account when using a modified LRU scheme for disk block caching

1. Is the block likely to be needed again soon? If not, put it at the front of the list to be reused soon.
2. Is the block essential to the consistency of the file system? If it's not a disk block but an i-node block, directory block, etc., write it to the disk as soon as possible.
AӨZp'@@f}U̻AӨZp' AAweight:600;">2. Not Recently Used.
When a proces4申) Ko3Ip0-AӪ1'A~I/O communication techniques

[...]
2. Interrupt-driven IO. Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.
I/O communication techniques

1. Programmed IO. CPU continuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.
AӪ1'@@AӪ1' 66Xz$Fh4Vx4Vxrequentl!C2f_AӠHĜ!2gs}!2WAӠ,G;d2!A2_AӠbxQsEO2"!?a3?%eAөjb3?''!?a3?%eAөOQ3?''!3- Aӧd33Yy3H!_.-AUj?P4͓.0/!|m3AӦw8rڀ}3!fC.HAX]`B%+.H!{3IAӪ nk3I!!3IAӪ`B/3ISJ!- 2AӠ|!XG2!2CAӠ"G\)h2W!}M. fQAT_m. i!. (ATP9H+. )!3?LAөemS3?L0! 7.HZ&AX9CHY.H! 9U2AӠ2|S[2! 9U2AӠ2|`-2! i. aAT.-7. f! 3I–JAӪУ׮S3I®l! [3&~=PAӨZ{ƨ.c3&~W4! 3?"AөpĜtS3?%0! b3xAӦaK93! a2AӠr+A2p! yO2AӠ~2I23! 37^Aӧ17H93]6! F3?EOAөoKǭ3?o [[(M󕬮) [     I2ڛ0-AӠt)lAӻmkThe goals of schedule activation research. (In the context of operating systems and threading.)To mimic the functionality of kernel threads, bv)   Ko3Ip0-AӪ1'AӯT1The goals of schedule activation research. (In the context of operating systems and threading.)To mimic the functionality of kernel threads, but with the better performance and greater flexibility of threads in user space.AӠt)l@@AӠt)lhen the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
[...]
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.
What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.
AӦbh@@ib =AӦbh BBӘ]) SU  3ぺӘ]) SU3s0-AӦƨA~Properties of [...] distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z
Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z
AӦƨ@@MđAӦƨFile Allocation Table.
A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.
Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.
AӧF@@fdgAӧF ZZӘ) i  Ә) i" 3W 0-Aӧ +A~Operations needed for file deletion in UNIX

1. Remove the file from its directory.
[...]
3. Return all the disk blocks to the pool of free disk blocks.
Operations needed for file deletion in UNIX

1. Remove the file from its directory.
2. Release the i-node to the pool of free i-nodes.
3. Return all the disk blocks to the pool of free disk blocks.
Aӧ +@@ZAӧ + eeβگ) ';    βگ) ';T. ;ҥ-ATe`kA~Before data mining, features are selected using some approach independent of the data mining task. E.g. selecting sets of attributes with a low pairwise correlation.The filter approach to feature subset selectionATe`k@@BMATe`kupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
[...]
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.
AӠo-`B@@h[BAӠo-`B ;ted, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the 㶦әЃ`) St3?g+0-Aө-E/A~Client (server) stubIn RPC implementations, a small library procedure that represents the server (client) procedure in the client's (server's) address space and hides the fact that address call is not local.Aө-E/@@f) HfAө-E/:܅) #^3IuLҥ-AӪA~E.g. a DMA controller telling a device to acquire the bus, issue a series of transfers, then release the bus. More efficient than cycle stealing, but can block the CPU and other devices for a substantial amount of time.Burst mode (memory bus access mode)AӪ@@0Ik[AӪ }Әܓ) Ec    3Әܓ) Ec370-AӦbhA~What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. W LL_)) #   ^3IuLҥ-AӪAӵpSCE.g. a DMA controller telling a device to acquire ⒲{) =н.f0-A\pA~What explains both addiction and thrill-seeking?The opponent-process theory.A\p@@$aŜA\pē) g3?daҥ-Aө¹A~When a process on machine 1 calls a process on machine 2, the calling process on 1 is suspended, and execution of the called procedure takes place on 2. As if performing an ordinary procedure call.Remote Procedure CallAө¹@@£EAө¹ !!LrT喯) 'C3- 0-Aӧd33A~Ways to reserve swap space for a process

1. When a process starts, reserve an amount of space equal in size to the core image of the process.
[...]
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapepd back in.
Ways to reserve swap space for a process

1. When a process starts, reserve an amount of space equal in size to the core image of the process.
2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapepd back in.
Aӧd33@@4Aӧd33 -|0DXl|  4H\p$8L`t 2%O 2@32E}I23W;3YX2u;2ʮQ.a.!,3?ޏ3?C,3?S3?&y3?r3?fjy3?r3?fL\3&nT3&o¿\3&nT3&ou39_PK%3:B>u39_PTA3:B/2z&|2摜222.vY22E1 2%O 2@63JtY3JʓjSG3R7 I3Rl3~=3 2 PF2&G=2m2̓G=2m2rn2!k2"m.H?Χv.HEqc.H=A.H?YU3I,K3II363373a3y3a}3x[2gxk2ᔴ[2g8'c2{.H6.H9 .HKwFK.HMPe2l-25?g5?2i. 7. Sw2!5G2!%2? 2j U. Izi#. N ]'3&^WF3&`}P!=3839^!=38٩539^!73'@g3'".k3?['3?T".k3?[M3?T"G3&3ő3&{ s to reserve s]圈Ӛ ) 1Kpе3J:/0-AӪ^A~Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
[...]

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.
Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.
AӪ^@@c|AӪ^:600;">2.
Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.
AӤnĴZ@@llJAӤnĴZ ??򡺋>) ?/     V򡺋>) ?/W.HWG0-AXi*nA~What are the four causes of violence and cruelty?Moral idealism and self-esteem (the major ones), greed/ambition (minor cause), sadism (very minor cause).AXi*n@@~>MAXi*n2) %K  嬨) %K2BP0-AӤnĴZA~General ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training ;(5BO\iv,9FS`mz #0=JWdq~ . ϯ ¤3?C  #3'H ÈI3 G37o 2 3Iwi f2K . ϯ ¤3?C  #3'H ÈI3 G37o 2 3Iwi f2K ģ3V+ Ŀk3I/W j37m ő3&{ Ŝ3Ip ūo2 3]  3W% js. گ 53?h` p/3Iv Lj.D{ !3?f Yy3H pE3JW ;.H] > ʱA2B ʾ2rl 3?mL 3I• .ҩ b3IuK tS3?%0 ̑2" S2 I=2% ͞3;I 5? 2 !}2 .2 ֖I3I" ַ3& &. 'v  6`2\.Xn er)AӦLb3 AӦLb#[3#)AӦw8r|m3AӦw8r}!3)AӦLb3 AӦLb#[3#)AӦw8r|m3AӦw8r}!3)AӦw8r|m3AӦw8rڀ}3)AӦ =K#3?AӦ =1#A3 )AӦ gK#3?AӦ g3 )AӦF@3 }AӦFV3M)AӦp@3 }AӦp3])AӦy3AӦyA33)AӦ飆3AӦE-_3B)AӦ4kdZsg3AӦ4kdZ3 S)AӦ6Rֻ3 S|AӦ6RފK3 m)AӦ7H3 n AӦ73 )AӦ9G.T3 AӦ9G3 x)AӦ;$uI3 AӦ;$C9U3 -)AӦ<{5%3 AӦ<{'3 ӣ)AӦ> Š 3 AӦ> Ņ3 )AӦJQzx3 nAӦJQWK3 )AӦL3 AӦL3 Ĵ)AӦR13 AӦR3|)AӦ|13 AӦ|3|)AӦC33W3|AӦC33)35">RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
[...]
4. Global variables cannot be used, unless they are moved to the remote machine.
RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.
AөP1'@@f) HfAөP1'2=o@TnAИ\H }ӕl) 1'   2Z[0-AӠo-`BA1Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saveʔI嬨) %K   2BP0-AӤnĴZA@9General ways to combat overfitting / generalization error

Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrts).
7. Fair-share scheduling (each user is allocated a share of the CPU).
Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).
AӠui%@@AӠui%5">DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
[...]
6. DMA controller interrupts the CPU to signal a finished task.
DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.
AӪM?}@@c|AӪM?}@Ways of dealing with bad sectors

[...]
2. Shifting all the sectors to bypass the bad one. Reading continuous, but more bookkeeping for the controller.
Ways of dealing with bad sectors

1. Substituting a spare for the bad sector. Reading the whole track takes two turns.
2. Shifting all the sectors to bypass the bad one. Reading continuous, but more bookkeeping for the controller.
AӪ@Q@@AӪ@QK弃څL) +-*w3?l30-AөP1'A~8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.Page replacement algorithms

1. Optimal (theoretical). Remove the page that w {{ѳ˒( ?y  Ks3ItFҥ-AӪKAӯE.g. a DMA controller requesting the bus one word at a time, taking bus cycle from the CPU every once in a while.Cycle stealingAӪK@@0Ik[AӪK5ҩ) eW!.0-A\ MA~The opponent-process theoryPrimary process A activates, then the more sluggish opponent process B activates to counter A.A\ M@@̫.iA\ M WWӕ") a;    Y2,ҥ-AӠt{34Aӵ/A message from the kernel to a user-mode thread scheduler. The scheduler may be informed that a thread it was running has blocked, or that it is no longer blocked. A scheduler activation scheme.In the context of operating systems, an upcall.AӠt{34@@AӠt{34f杊ʰ( k% 3?"0-AөpĜA~NC-NUMAA NUMA architecture with no caching.AөpĜ@@f) HfAөpĜ intentional content of X can become globally available for the selective control of action.
Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.
AʸrIhs@@[%faqAʸrIhs H) 5    潪) 54U2i0-AӠui%A~Scheduling algorithms used in interactive systems

[...]
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery ticke B߳)   &u3:B0-AӦ("AӬ쟮Current virtual timeThe amount of CPU time that a process has actually used since it was started (as opposed to the real time that has passed since the process started)AӦ("@@AӦ("у3ҧӗˏ)  RDe2$Yҥ-AӤl`*A~(An often computationally expensive) decision tree that allows test conditions involving more than one attribute, such as the test condition

$x + y < 1$
An oblique decision treeAӤl`*@@8m9AӤl`*  6`2\.X)AӦ(jxk37FAӦ(jx-Fu37)AӦ(m}`B"/37jAӦ(m}`B37)AӦ(qx37DAӦ(qxj37m)AӦ(a?}ɿ3AӦ(a?}х36)AӦ(d17L363AӦ(d17L37)AӦ(f"437AӦ(f")Q37F6)AӦ(jxk37FAӦ(jx-Fu37)AӦ(m}`B"/37jAӦ(m}`B37)AӦ(qx37DAӦ(qxj37m)AӦ(t:\37AӦ(t:\U38#)AӦ(w3338AӦ(w3338K)AӦ(yH38LkAӦ(yH38py)AӦ( bS38pAӦ( ➛38)AӦ( bS38pAӦ( 38)AӦ($!=38AӦ($٩539^)AӦ($!=38AӦ($39^)AӦ(u39_PAӦ(TA3:B/)AӦ(u39_PAӦ(K%3:B>)AӦ("&u3:BAӦ("͞3;I)AӦ("&u3:BAӦ("`3;I!)AӦW&/W'3 AӦW&/23)AӦW&/EW'3 AӦW&/E.;3)AӦW65?>q3EAӦW65?z3- $$Fh4Vx$Fh4Vx="fma01f!3?LAөemS3?L0! 7.HZ&AX9CHY.H! 9U2AӠ2|S[2! 9U2AӠ2|`-2! i. aAT.-7. f! 3I–JAӪУ׮S3I®l! [3&~=PAӨZ{ƨ.c3&~W4! 3?"AөpĜtS3?%0! b3xAӦaK93! a2AӠr+A2p! yO2AӠ~2I23! 37^Aӧ17H93]6! F3?EOAөoKǭ3?o!k1J$Aӏ> ?1J"!W.HWGAXi*n;.H] >!?.H^fAXǝt.Hd!I3I}zAӪ聩3I!g33?aQAө췝E3?d!3&r9AӨYG +3&rr!M1IAӏ9Xy1Jw!2(OAӤm#'U22q! 3&sAHAӨYT 3&~Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
[...]
- Thector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.
Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly language procedure saves registers (typically to the process table).
4. Assembly language procedure sets up new stack.
5. C interrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. Assembly language procedure starts up new current process.
AӠn@@AӠn EE泚訧) a   o3It0-AӪM?}AӰZO泚訧) ao3It0-AӪM?}A~Any way of changing the values in a way that preserves their order is a permitted transformation for this attribute typeOrdinalAӤk@@llJAӤkif characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.
AӪ`B@@c|AӪ`B5">Goals of I/O software

1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
[...]
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.Goals of I/O software

1. Device independence. It should be possible an style="font-style:italic;">n
, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
[...](Dis)advantages of linked list file allocation

1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.
Aӧu@@fdgAӧu 66`2\.X( Aאz(m.AאYc.( Ak%\o2bAk%\/2&)AuZ+, .1AuZ+^.3$)( AՉA^FM3J"AՉA^F3J`d( AM3 Al 3(( Aay&O2)AӦW@]?}J3AӦW@]?}Y3N.)AӦW@]?J3AӦW@]?SR/3NM)AӦWwI%"3NAӦWwI%2x+3#)AӦWx\)i3AӦWx\)3)AӦW`BP93AӦW`B}Y3)AӦW`lP93AӦW`l9{3)AӦWj3.@AӦWj;3~#)AӦW۷{3AӦW۷i3))AӦWXAl3ɖAӦWXAu3)AӦWF+473NAӦWF+-93w)AӦWFU473NAӦWFUL3x )AӦZT|I#3xiAӦZT|I63Ch%)AӦZVmg3ChAӦZVQ%3C()AӦZ+3CAӦZf3FC)AӦZ`@3F̡AӦZ`mE3F)AӦ[Z3N;AӦ[E3N)AӦ[+2MӇ3NLAӦ[+2Mm3PP K󘝸]( }   P3Zčҥ-AӦ[T"AӯEaLibrary files that, once loaded, can be used by several different processes. When a program is linked with shared libraries, the linker includes a small stub routine that binds to the called function at run time.Shared librariesAӦ[T"@@6.֒ AӦ[T"*秿) SC;Mq20-AӠj=qA~s = execve(name, argv, environp)

(POSIX system call)
Replace a process' core image. Parameters:

name = name of the file to be executed
argv = a pointer to the argument array
environp = a pointer to the environment array
AӠj=q@@}ބ8ZAӠj=q VV) 9G   ) 9G 3N00-AӧíXA~A drawback of [...]. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.A drawback of hard linking. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.AӧíX@@ZAӧíX a؎Ӛ) E].[3Iv*0-AӪ~AkFly-by mode (in the context of Direct Memory Access)The DMA controller telling a device to transfer data directly into main memory, as opposed to sending the data to the DMA first.AӪ~@@ffffffAӪ~ӕԯ#) C'8EG2ҥ-AӠ}A~A scheduling algorithm that picks a process to run and just lets it run until it blocks or voluntarily releases the CPU. That is, the algorithm will not react to clock interrupts.A nonpreemptive scheduling algorithm.AӠ}@@AӠ} ^^}7Vu/Nm'Fe)@H|AӦ("&u3:B`3;I!AӦW&/W'3 23AӦW&/EW'3 .;3AӦW65?>q3Ez3-AӦW65i>q3EI3LAӦW@]?}J3Y3N.AӦW@]?J3SR/3NMAӦWwI%"3N2x+3#AӦWx\)i33AӦW`BP93}Y3AӦW`lP939{3AӦWj3.@;3~#AӦW۷{3i3)AӦWXAl3ɖu3AӦWF+473N-93wAӦWFU473NL3x AӦZT|I#3xi63Ch%AӦZVmg3ChQ%3C(AӦZ+3Cf3FCAӦZ`@3F̡mE3FAӦ[Z3N;E3NAӦ[+2MӇ3NLm3PPAӦ[^aXt]3P/]3SAӦ[Dm3SM3UoAӦ[Dm3SMU3UAӦ[Sm3Ue-3YAӦ[Sm3U-3YAӦ[0At"3YE3ZAӦ[0At"3YK3Z AӦ[SP3Zč 3\ M   $J) }  !3I0-AӪ`BAӯqI/O buffering alternatives

[...]
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What ؂*𩤄') OGyk. P0-ATSA~(Dis)similarity metrics for interval or ratio attributes?d = |x - y|
s = -d, s = 1/(1 + d), s = e^(-d)...
ATS@@먺ATS? 9(5BO\iv,9FS`mz #0J=Wdq~βگӘܓ܅喯 򟞓͑Ӛй嬨圈Ӛ βگӘܓē܅喯ӕlѳ˒椿ӕ"潪߳泚訧֏󘝸]蔎Ӛ趥JӗfۃӘCӘӘ꿄Sӕ>ӕ&مѧ%?Ә W ӕ, Dz~ Ә] ݓܷ ɳ h әұ Ә ӳ   !ޭ' $̓ % &̳4 (󗤼 *䳘ܥ ,ӕﻹ -ӕ /󗤦 11 3' 4󕾽v 7󙞨 Hj6HXz$Fh4Vxtyle="fo!32EAӠ{}I2!y3?rAө5ʁ3?fj!\3&nTAӨY"ц3&o¿!\3&nTAӨY"3&o!u39_PAӦ(TA3:B/!u39_PAӦ(K%3:B>!2z&AӠqV|2摜!222.vAӤm=qY22E1! 2%OAӠ| 2@!63JtAӪvyY3Jʓj!SG3R7Aӧ^5 I3Rl! 2 PAӠQF2&!G=2AӠmg+m2r!G=2AӠmg+,m2̓!n2!AӤl[tk2"!m.H?AX悰!v.HEq!c.H=AX33A.H?Y!U3I,KAӪĜ3II!363AӦ(d17L37!3aAӧGeneral ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
2. Reading may start at an arbitrary point, and may skip around the medium or read parts of it out of order.Random accessAӧ\e@@fdgAӧ\e  6`2\.X( @@M1MjZ2NAӵ%yAN2( @@RVS)AӦ23 3RAӦtA3Bv)AӦFN3뤓AӦFgA31)AӤnȤzG#2BAӤnȤz2B)AӦƨ3sAӦƨ3])AӦMӑ'3AӦM93)AӦs3AӦs3})AӦ 3AӦ녞{3)AӦ QK3AӦ c3+)AӦ-PA3AӦ-PAmI3)AӦ-PA3AӦ-PAMo3&)AӦFN3뤓AӦFP31)AӦV`uW323AӦV`uO#3%)AӦV`W323AӦV`bԓ3%)AӦv2~rC3&AӦv2~93)AӦv2$rC3&AӦv2$3)AӦ23 3RAӦJ3Bg)AӦgK+3BAӦg.?3)AӦ棕k 3AӦ棕V]3)AӦC~j38AӦC~й3d)AӦE+3AӦE+c3;)AӦG3řAӦGMB3 Spage and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.
What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protec :d 6`:2\.Xgene)Aӧ 3Aӧ s3)AӦa b3xAӦaK93)AӦa~3bAӦaÈI3 )AӦaݲ=qM3 AӦaݲ=ql 3()AӦaenm3(oAӦae?M3RG)AӦa=qO3AӦa333?)AӦa73AӦa7C3()AӧS-31: If all the records in set Dt belong to the same class Yt, then t is a leaf node labeled Yt.
2: Otherwise, select a test condition to split the record sets into smaller subsets. Create a child node for each outcome and distribute the records in Dt between the nodes. Apply the algorithm to the child nodes.
Hunt's algorithm for decision treesAU \@@XAU \ 11ӘC) '#  DӘC) '#+3C0-AӦZA~Advantages of a large page size

[...]
2. Allows for a smaller page table, making for faster execution if the page table needs to be copied to e.g. hardware registers.
Advantages of a large page size

1. Allows for a smaller page table, reducing its space requirement.
2. Allows for a smaller page table, making for faster execution if the page table needs to be copied to e.g. hardware registers.
AӦZ@@6.֒ AӦZ Ttyle="font-weight:600; color:#0000ff;">[...]
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protec )0DXl  4H\p$8L`tyle="font-weight:600; color:#0000ff;">6. If the selected page is dirty, it's scheduled for transfer to the disk, aA~3JGA~. A@VA~23A~G2A~!3 @A~u2aA~2A~03 jA~E.HpA~v.HEqA~2!A~'3IA~_2)A~3JA~G. s6A~'3 ӣA~-. PA~3I%A~3yA~U3UA~3SA~@3,A~M-A~A33A~#3I)A~K3Z A~3?oA~38KA~3 ĴA~S3I®lA~3 xA~2A~7s2A~L-;3A~c3+A~i3)A~m55?|ԁA~c3mA~3IDA~-3YA~[;-^ zӘ) ?c  0Ә) ?c30-AӦb+A~What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
[...]
7. When the page frame is clean, the operating system looks up the disk address of the needed  ffӚй) S{   3J70-AӪ ?}AӯSThe virtual address space is divided into a number of these fixed-size units.A page (in the context of operating systems)AӦ g@@AӦ gOӘ) ;%3a0-AӧA segment (in the context of operating systems)
A variable-length independent address space used by a process. Something the programmer is aware of.AӧLinux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
[...]
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.
Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.
AӪ ?}@@c|AӪ ?} ~~nӕ+)     2괫ӕ+)  ]2jҥ-AӠ׾A~An entry in the process control table, with all the information about some particular process.A Process Control Block.AӠ׾@@AӠ׾2S) Q  꿄S) Qh=O3Iʺҥ-AӪ[rA~Modifying the priorities of different processes on the flyDynamic schedulingAӪ[r@@c|AӪ[r ;;ӕ>) ' :ӕ>) '޹2&s0-AӠA~Scheduling algorithm goals for all systems

[...]
2. Policy enforcement, seeing that stated policy is carried out.
3. Balance, keeping all parts of the system busy.
Scheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of the CPU.
2. Policy enforcement, seeing that stated policy is carried out.
3. Balance, keeping all parts of the system busy.
AӠ@@AӠ ssӕ( }]    %20-AӠm^UAH]`BMultiprogrammingThe CPU rapidly switching between various processes, running each for a small fraction of time before switching to the next one.AӠm^U@@AӠm^U,눯ӗ) 9a%20-AӤkwA~Allowed transformations for ordinal attributesAny way of changing the values in a way that preserves their orderAӤkw@@8m9AӤkw ee&) K3    3>ҥ-Aӧ\Aӻ1Memory developing unused holes due to e.g. variable-length segments being brought into memory and then evicted from it.External fragmentation, AKA checkerboardingAӧ\@@4Aӧ\Ђ'ɓ( w3I ҥ-AӪA~I/O devices such as disks that contain multiple data blocks that can be accessed independently.Block devicesAӪ@@0Ik[AӪ ,, ) o    2ט0-AӠr|Aӻ<{ What are things that are private to each thread running within a process?The program counter, registers, a stack, and state. Everything else (address space, global variables, open files, etc.) is shared between the threads.AӠr|@@AӠr|#΂v(   . s0-AT%A~Feature weightingAn alternative to feature subset selection, which gives the attributes varying weights.AT%@@~dPR!AT% l%) }#   /ѧ%) }#>.H40-AX`A~Why do we feel resentment and vengefulness if people fail to repay their favors?As a mechanism to prevent cheaters.AX`@@K AX` u) %  ) %&C3?f0-AөRA~Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
[...]
4. Killed by another process (involuntary).
Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary).
AӠn M@@AӠn M start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.
AӧdI@@gFBBAӧdI ) /     ?=3&o;0-AӨY?}AӬ쟮Logical (copy/backup) dumpA copy process that starts at one or more specified directories and recursively dumps all files and directories found there that have changed since some given base date.AӨY?}@@f}U̻AӨY?}ZӘ) S#!=380-AӦ($A~Locality of reference (in the context of operating systems)During any phase of execution, the process references only a relatively small fraction of its pagesAӦ($@@AӦ($ ,0DXl  4H\p$8L`t,52 Mq2 ֈ'15?mi+5?z"/37j37"'2;2 #_.H=2d.H=7#3xi63Ch%$'w3JŘ[;3J$3I$3I•%va3IƂ#3I)%2!}2&C3?f٤3?0&u3:B`3;I!&u3:B͞3;I&vw24I2Q'R3?_ϟ3?'15?mi+5?z'. A@ò. Cp#'_2c-/2)-L-;3){-;-6u).HmE.Hp*w3?l33?mL*3SDHi3T.*3SD)3T.+Y.H;5.H=2+3^C3`R+3^?3`3, 3I, 3IE=,F3Iʓ3Id, .1^.3$),K2Eڥ2,52 M>2 I,52 Mq2 ֈ.T3 3 x.3?d3?d)0+2Baҝ' 2B13 3|13 3|1K3&s/)3&s@1k2ih2m23 3RJ3Bg23 3RtA3Bv2H3]@3,2C3IE3Vş3Ib222C#3[3T.ģ3V+ }}7Vu/Nm'Fees.
3. Facilitates sharAӦ[SP3Zč 3\ MAӦ\m13\ 1+3^țAӦ\13\ G 3^ȻAӦ\7+3^?3`3AӦ\7¹+3^C3`RAӦa b3xK93AӦa~3bÈI3 AӦaݲ=qM3 l 3(AӦaenm3(o?M3RGAӦa=qO3鵛3?AӦa73C3(AӦbt 3)D3\AӦbvȴo3]43|XAӦbx-3|%3¡tAӦb{93¡<3AӦb}t@I3u)k3AAӦb+3~=3AӦbuD3ck37WAӦbh37Ə%3\AӦbgD!3\4g3ÖAӦbV 3×B23ôAӦb$UV3ôCb3ͽAӧS-3Benefits of segmentation

[...]
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment WWӣ)  s )  s S3I0-AӪVA~Requirements for Rate Monotonic Scheduling

[...]
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.
Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.
AӪV@@c|AӪV %*@Vl2H^t$:Pf|

[...]
2. Functional. The p@7s2@L-;3@c3+@i3)@m55?|ԁ@c3m@3ID@-3Y@[;-^@d.H=7@C3(@3?l@3|X@. Cp#@c3h@5?i|@E'.>4@OQ3?''@2B@.H9 @.{9@ . 2=@'3?T@k.*@#2g@p2@.Z@`3;I!@ 3H@ 3?D@3@^.3$)@i3?hr@ĵ2@ޏ3?C@!2gs}@3II ) 1Z) 1EVk5?vX0-AʸCA~Dynamic vs. static swap area allocation

1. Static. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 7 pages.
[...]
Dynamic vs. static swap area allocation

1. Static. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 7 pages.
2. Dynamic. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 3 pages.
Aӧ1hs@@4Aӧ1hs5">Three ways by which mental representations are internal.

[...]
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
3. Physical. The states exist physically within the organism.Three ways by which mental representations are internal.

1. Phenomenal. The states are phenomenally experienced as "internal".
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
3. Physical. The states exist physically within the organism.
AʸC@@AʸC 3\ Ms whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.AӦbt@@ib =AӦbt ^}7Vu^/Nm'Feithm runs.
6. If the seAӧw/3 q93Aӧlc3\631%Aӧ1hs31ݍ3DAӧ(O3x`3)'AӧvQH3).3DAӧF3DtK3`AӧoAӧ\3>U3Aӧ\Ф3>ַ3&Aӧ⾗Qq3w36Aӧ17 37^H93]6Aӧ爓uHQ3]+'3AӧgZ3j3Aӧ.{5Y33S3Aӧ<2!)-3Lz3lAӧ=|3m93Aӧ?6SW3#Z%3AӧSe`B>13 Sߛ3AӧSe`l>13 " 3*Aӧ\;C3׊Mq3^Aӧ\eC3׊m3_ AӧO߲3?3AӧP 3Ym3(Aӧɱ&83`S3vAӧɱ'83d>C3AӧTjA3e3q. W) Kc  6W) KcD3c0-AӦbuA~What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
Policy/mechanism decoupling in operating systemsA scheduling algorithm that considers the priority of each process and runs the highest-priority process that is runnable. The mechanism is to look for the highest-priority process and run it, and is in the kernel. The policy is to assign priorities to processes, and is done in user mode.AӠv@@JOQ'AӠvɂ[Ә>) cu39_Pҥ-AӦ(A~The set of pages that a process is currently using (has used in the last k page references)The working set of a processAӦ(@@AӦ(  6`2\.X)AӧTjA3AӧTje3q.)Aӧɱ'83Aӧɱ'd>C3)Aӧw/3 Aӧwq93)Aӧ(w33Aӧ(Ê3>o)Aӧ\3>Aӧ\U3)Aӧ\Ф3>Aӧ\ַ3&)Aӧ⾗Qq3Aӧ⾗w36)Aӧ17 37^Aӧ17H93]6)Aӧ爓uHQ3]Aӧ爓u+'3)AӧgZ3Aӧg٘j3)Aӧ.{5Y3Aӧ.{3S3)Aӧ<2!)-3LAӧ<2!z3l)Aӧ=|3mAӧ=|93)Aӧ?6SW3#Aӧ?6Z%3)AӧSe`B>13 AӧSe`BSߛ3)AӧSe`l>13 AӧSe`l" 3*)Aӧ\;C3׊Aӧ\;Mq3^)Aӧ\eC3׊Aӧ\em3_ )AӧO߲3AӧO?3)AӧP 3AӧP Ym3()Aӧɱ&83Aӧɱ&`S3v)Aӧɱ'83Aӧɱ'd>C3)AӧTjA3AӧTje3q. C>CsDz~( %    [-S0-AR)Aӻ$NomipDz~( %[-S0-AR)A~Nominal attributeThe values are just different names.AR)@@AR)A̖ښ) -3?m0-AөdZA~Absolute Average Deviation${1 \over m} \sum_{i=1}^{m} \mid x_i - x \mid$AUz@@KAUzpage and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.
What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system check `Ә]) GA   #Ә]) GA@3 }ҥ-AӦpA~A unit in physical memory that corresponds to a page.A page frame (in the context of operating systems)AӦp@@AӦp Uimulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.
Page replacement algorithms

1. Optimal (theoretical). Remove the page that woe table entry

1. The page frame number
[...]
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.
The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.
AӦ6R@@AӦ6R hhݓܷ) ac ݓܷ) ac 3)D0-AӦbtA~What happens on a page fault?

[...]
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed al fragmentation in the last block.
[...]
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.
(Dis)advantages of linked list file allocation

1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.
Aӧtn@@fdgAӧtn ##ɳ) 5     ֻ3 S|0-AӦ6RAӵRjThe structure of a generic pag ;󕬿( }=j92f0-AӠt֧A~A pop-up thread.A thread that is created to e.g. handle a new incoming message, instead of letting an existing thread handle it.AӠt֧@@h[BAӠt֧ze independently without affecting each other.
[...]
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.
Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.
AӧF+@@gFBBAӧF+ 7Vu/Nm'Fe @[%faq5? @[%faqھ5?| @[%faq5?| @[%faq 15? AӨY"\3&nT3&oAӨY?}?=3&o;N73&pfAӨY??=3&o;:J3&pg AӨYEbNՎ 3&pgj/3&rAӨYG 3&r9+3&rrAӨYIMӾG3&rۊد3&sAӨYJqM3&sFI3&s.AӨYKԋD1K3&s/)3&s@AӨY 3&sAHT 3&~<AӨZ{ƨ [3&~=P.c3&~W4AӨZf3&~Wp?3&3;AӨZf3&~W23&3NAӨZp'"G3&3ő3&{AӨZqa7L3&p3&+AӨZ/3&,C 3&rAӨZ/3&,k*?3&΅AӨZEY-3&Q3&m@AӨZEY-3&[3&mQAӨko|1m!3'Q3' AӨko|[m!3'w3'#AӨkwq33'63'*VAӨkwq&33'3'*gAӨk7Lw83'*Ŏ3'AӨk7vw83'*żi3'AӨk'3',%3'AӨkƨ!73'@g3'AӨk&)A3'ML3'3 :h) w     Ou. *0-AT|/AӬ쟮Feature constructionE.g. we have various artifacts made of various materials. A 'density = mass / volume' feature could be used to help classify their materials.AT|/@@BTAT|/;ﺈR) 5+3^ҥ-AӦ\7¹A~A process may map a file onto a portion of its virtual address space. Shared libraries are a special case of this technique. If two or more processes map onto the same file at the same time, they can communicate over the shared memory. Memory-mapped filesAӦ\7¹@@ib =AӦ\7¹ әұ)    ƻY3?h0-Aө@AϮMarshalling (multicomputers)A client computer packing the parameters of a remote procedure call into a message.Aө@@@f) HfAө@σgӘX) GI3W;0-Aӧ54(A~What is required for journaling file systems to work?The logged operations must be idempotent, e.g. "search the list of free blocks and add block n to it if it is not already present" as opposed to "add the freed blocks to the end of the free list" (they might already be there).Aӧ54(@@fdgAӧ54( ]]Ә) 9   kR30-AӦImAӬ쟮Memory manageKӘ) 9kR30-AӦImA~Benefits of segmentation

1. Different segments may grow or shrink in si [𔩲⎂) el/M.00-AUy-A~Two issues that a decision tree learning algorithm needs to address.1) How should the training records be split?
2) How should the splitting procedure stop?
AUy-@@KAUy- jj6Xz$Fh4Vx$8L`t!%2?AӠƨ 2j! ]'3&^WAӨXfF3&`}P!!=38AӦ($٩539^!!=38AӦ($39^!!73'@AӨkƨg3'!".k3?[Aөe^M3?T!".k3?[Aөe'3?T!"G3&3AӨZp'ő3&{!"hy-)ARG^E\-(!"/37jAӦ(m}`B37!"'2AӠL/;2 !#_.H=2AXgo;dd.H=7!#3xiAӦZT|I63Ch%!$'w3JŘAӪ{P[;3J!$3I$AӪ@Q3I•!%va3IƂAӪߎ۬#3I)!%2AӤkw!}2!&C3?fAөR٤3?0!&u3:BAӦ("͞3;I!&u3:BAӦ("`3;I!!&vw24IAӠ#2Q!'R3?Aө{_ϟ3?!'15?Aʸomi+5?z!'. A@AT녲. Cp#!'_2cAӠP-/2!)-ARĜL-;3!){-;AR`B-6un style="font-style:italic;">n
-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.
AӦIm@@AӦIm@ZV{AӼ͡d?d ;(5BO\iv,9FS`mz #0=JWdq~ E;.H6% X2m ٤3?0 ٩539^ N73&pf ڈ3? ڕ3I ھ5?| E;.H6% X2m ٤3?0 ٩539^ N73&pf ڈ3? ڕ3I ھ5?| ݍ3D K%3:B>  2, /w.Z 03?m ݒ;-H~ 3] ބ2 ފK3 m C3`R /. ,Th 3YX 53?i1 QK.1 d3 %3 J3Bg ➛38 х36 bw2 3 |2摜 -2 yi3N0' a2! 3 .c3&~W4 簯2D E3 m O#3% 蹵2 S!.  2 e-3Y 2 3?a Y22E1 쵡3JŘ' b3?_ Χ2v (3'2 F2& G+3I ?3`3 2Q 631% .7 .H  3I  )3Iɻ Hi3T.  6`2\.XnAӧ\ַ3&)Aӧ⾗Qq3Aӧ⾗w36)Aӧhahs13 Aӧhahsx3)AӧFG3qAӧFE3 m)AӧK"3 AӧK"#Y3 ))Aӧ;dDg3 *Aӧ;d!3 @)Aӧ! ї3 AUAӧ! 3 d~)Aӧ@$|3 dAӧ@$*3 P7)AӧB<9XXo3 PAӧB<9X03 j)AӧCz[I3 kSAӧCz:/3 b)Aӧtni3UAӧtn2'3{P)Aӧu/3{Aӧu3)AӧvI:3MAӧvIBk3NQ)Aӧw`93NAӧw`yi3N0')AӧíX 3N0AӧíX3Qx)Aӧÿz\Z3Qy[Aӧÿz\W 3R)Aӧ^5SG3R7Aӧ^5 I3Rl)Aӧ}TAaS3RAӧ}T93S)Aӧ}~AaS3RAӧ}~3S)Aӧƨ*3SDAӧƨHi3T.)Aӧ*3SDAӧ)3T.)Aӧ 3[3T.Aӧ ģ3V+)Aӧ43[3T.Aӧ4?p3V+ RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software s jӳ( wE    bS38p0-AӦ( A;Demand pagingLoading memory pages only on demand, not in advance.AӦ( @@AӦ( ł'Әg( 23 3R0-AӦA~Memory compactionCombining all the holes in memory into a solid block by rearranging the contents of memory.AӦ@@(CjAӦbally available for the selective control of action.
Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.
Aʸl@@Aʸl W5">Page replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremen5">Two ways of sharing files

1. Hard linking. Disk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.
[...]Two ways of sharing files

1. Hard linking. Disk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.
2. Symbolic linking. The system creates a new file, of type LINK, which contains just the path name of the file to which it is linked.
Aӧw`@@U'cAӧw` page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
Page replacement algorithms

[...]
2. Not Recently Used. When a process starts, set its pages to ( o^2F0-AӠmxA~A daemon.A process that runs in the background to handle some task, possibly only rarely awakening.AӠmx@@AӠmx )0DXl  4H\p$8L`tre simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts countersA~C3(A~3?lA~3|XA~. Cp#A~c3hA~5?i|A~E'.>4A~OQ3?''A~2BA~.H9 A~.{9A~ . 2=A~'3?TA~k.*A~#2gA~p2A~.ZA~`3;I!A~ 3HA~ 3?DA~3A~^.3$)A~i3?hrA~ĵ2A~ޏ3?CA~!2gs}A~3IIA~37A~.!A~2YA~Oa3?[`A~g3'A~n.#m{A~i3'A~c-A~p?3&3;A~3IYA~39^A~. *A~2ЬA~S3?& %%P) Gi30-AӦWx\)A~Why might a local page replacement algorithm work badly?

1. If the working set grows, thrashing will result, even if there are plenty of free page frames.
[...]
Why might a local page replacement algorithm work badly?

1. If the working set grows, thrashing will result, even if there are plenty of free page frames.
2. If the working set shrinks, memory that could be allocated to other processes is wasted.
AӦWx\)@@ib =AӦWx\)5">Reasons for overfitting

[...]
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.
Reasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records may be generalized from.
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.
AӤm#@@AӤm# A~wu2 vIX2$ ;;}:򟞓͑) Go2z&0-AӠqVA~When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
[...]
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.
When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.
AӠqV@@AӠqVtheir work. Creates extra traffic in underloaded networks.Processor allocation algorithms for load balancing

1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks.
AөE@@2x3AөE single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.
AӤl@@llJAӤl ^^^ӕ) i  !ӕ) ie2l0-AӠm/\)A~What design constraint does multiprogramming impose on program design?If particular events must occur within a specified number of milliseconds, special measures must be taken to ensure that they occur. (A process running an idle loop for 1000 ms might be idle for longer, as other processes are swapped into memory.)AӠm/\)@@AӠm/\)%ޭ') EG93N0-Aӧw`A~Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.
AӤln7@@llJAӤln7 && ̓) /!    G̓) /!Bˋ20-AӤlA~Disadvantages of decision tree induction

[...]
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a ) Q9  d) Q9rC3&ҥ-AӦv2$A~Keeping each process in memory in its entirety, occasionally writing it back to the disk to make room for other processes.Swapping (in the context of operating systems)AӦv2$@@(CjAӦv2$ *̳4) CY  m̳4) CY [3&~=P0-AӨZ{ƨA~Checks made by the fsck file system checker

1. Check that each disk block is either assigned to the free pool once, or to a file once.
[...]
Checks made by the fsck file system checker

1. Check that each disk block is either assigned to the free pool once, or to a file once.
2. Check that if a file appears in n directories, then it has a link count of n.
AӨZ{ƨ@@f}U̻AӨZ{ƨ00ff;">[...]

4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.
Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.
AӠ@@AӠ 33󗤼) %    :󗤼) %S2"'0-AӤln7A~Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
[...]
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity mea #5">Reasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records may be generalized from.
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
[...]
Reasons for overfitting

1. Overfitting due to presence of noise. Incorrect training records may be generalized from.
2. Overfitting due to lack of representative samples. If the sample is not representative, it might be missing counterexamples to the derived rules.
3. Multiple comparison -related overfitting. Having enough classification criteria will produce some criteria that are statistically significant out of coincidence.
AӤm=q@@llJAӤm=q in order.@bbAh2@@nlZAij.AӹgG@fdg@fdgAӧ8c@:kl@UjnAij. Q䳘ܥ) C    W3230-AӦV`uADDynamic relocationRe-mapping memory references to the address space of a process during runtime, using e.g. base and limit registers.AӦV`u@@AӦV`um) o G3q0-AӧFA~Ways of implementing files

[...]
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3.  }7V}u/Nm'Fe( @G6AӧTjA3T{3qAAӧhahs13 x3AӧFG3qE3 mAӧK"3 #Y3 )Aӧ;dDg3 *!3 @Aӧ! ї3 AU3 d~Aӧ@$|3 d*3 P7AӧB<9XXo3 P03 jAӧCz[I3 kS:/3 bAӧtni3U2'3{PAӧu/3{3AӧvI:3MBk3NQAӧw`93Nyi3N0'AӧíX 3N03QxAӧÿz\Z3Qy[W 3RAӧ^5SG3R7 I3RlAӧ}TAaS3Rǃ93SAӧ}~AaS3Rǫ3SAӧƨ*3SDHi3T.Aӧ*3SD)3T.Aӧ 3[3T.ģ3V+Aӧ43[3T.?p3V+Aӧ\3V,D"=3WAӧ +" 3W 3W%Aӧ Ek3W%`aK3W;kAӧ54(3W;3YXAӧD33m3Y!3Z6AӧD3]m3Yh3ZHAӨXf ]'3&^WF3&`}PAӨX'3&`}3&` ӕﻹ) m9     rӕﻹ) m9ط20-AӠnFA~Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
3. Fatal error (involuntary).
[...]
Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary).
AӠnF@@h[BAӠnF ӕ) u     20-AӠAfDisadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
What happens to the opponent stimulus after many stimulations?It intensifies, it starts earlier, and it decays more slowly.A\`A@@$aŜA\`A 7Vu/Nm'Fearily gives up the CPU. (UAӨZ/3&,k*?3&΅AӨY"\3&nT3&oAӨl'&K3'Dy'33'<Aө׻d3?B,nv03?CAӨk_+R3'mTF3'AӨkPw3'K(3'2AӨkf3'33o-3'J-AӨk|93'Jc3'`0AӨl%Qf33'k?3'AӨl) 녥3's^I3'CAӨlG7KDž3'3'AӨlHN 3'" #3'HAөpĜ 3?"tS3?%0Aө5?3?%1iH73?%dAөj?a3?%eb3?''Aө?a3?%eOQ3?''Aө^5܋3?'(PR`3?./Aөͩ3?.Ώa3?.Aөn5 3?.} m3?/AөGR3?/.33?:ØAөGnew_value = a * old_value + b, where a and b are constants, is a permitted transformation for this attribute type.
IntervalAӤkM@@8m9AӤkMӃ٥Ә)  om3U0-AӦ[SA~Static (library) linkingWhen a program is linked, the linker searches the library files for any function calls not present in the object files. An executable binary is then written to disk containing all the needed functions.AӦ[S@@ib =AӦ[S5">Virtualization types

[...]
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.
Virtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.
AөR@@2x3AөRT.  Y3Jʓj  m2̓  o3?t  5?|  FK.HMP  z3Jx%  V]3  z3l c1) = }1) =222.v0-AӤm=qA~Two types of send and receive in multicomputersBlocking (the process is suspended while sending the message and waiting to receive one) or nonblocking (returns control to the caller as soon as the message is sent).Aөɨ@@f) HfAөɨspan>
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).
Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranteed 1/n of the CPU cycles)
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).
AӠ#@@AӠ# 5') -    v') -3Jx0-AӪcA~The Linux runqueueHas two arrays, active and expired, with all the processes sorted by priority. The scheduler chooses from among the highest-priority tasks. Processes whose quantum expires are moved to the inactive array. If there are no more tasks in the active array, the active and inactive arrays are swapped.AӪc@@c|AӪc `2󕾽v) 9     ӽ2Tҥ-AӠ^?Aʷ\When a process is run, this register is loaded with the length of the program. Memory references made by the program are checked against this register: references made outside the program's address space are rejected.In the context of computing, a limit register.AӠ^?@@AӠ^?( or3?[0-AөA~Type 1 hypervisorWhen a virtual machine program executes a privileged instruction, this component is trapped to process it (execute instruction if coming from the OS, emulate response if coming from user mode program).Aө@@f) HfAө5">Linux scheduling is based on [...], and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.
AӪ<(@@0Ik[AӪ<(ؓ.  }3 aK3W;k x3?f 3?fj e- 2ݯ 3IY 93S  6`2\.X)AӧvI:3MAӧvIBk3NQ)Aӧw`93NAӧw`yi3N0')Aӧ +" 3W Aӧ + 3W%)Aӧ Ek3W%`Aӧ EaK3W;k)Aӧ54(3W;Aӧ54(3YX)AӧD33m3YAӧD33!3Z6)AӧD3]m3YAӧD3]h3ZH)AӨXf ]'3&^WAӨXfF3&`}P)AӨX'3&`}AӨX3&`)AӨY"\3&nTAӨY"ц3&o¿)AӨY"\3&nTAӨY"3&o)AӨY?}?=3&o;AӨY?}N73&pf)AӨY??=3&o;AӨY?:J3&pg )AӨYEbNՎ 3&pgjAӨYEbN/3&r)AӨYG 3&r9AӨYG +3&rr)AӨYIMӾG3&rAӨYIMӊد3&s)AӨYJqM3&sFAӨYJI3&s.)AӨYKԋD1K3&s/)AӨYKԋD3&s@)AӨY 3&sAHAӨYT 3&~<)AӨZ{ƨ [3&~=PAӨZ{ƨ.c3&~W4)AӨZf3&~WAӨZp?3&3;)AӨZf3&~WAӨZ23&3N)AӨZp'"G3&3AӨZp'ő3&{ !󙞨) Q5    b󙞨) Q5Pw3'K0-AӨkA~Three key characteristics of NUMA multiprocessors

[...]
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.
Three key characteristics of NUMA multiprocessors

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.
AӨk@@f}U̻AӨk 5">Memory management algorithms for finding an n-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
[...]
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.Memory management algorithms for finding an Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may use nonpreemptive algorithms.
2. Interactive, uses preemptive algorithms.
[...]
Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may use nonpreemptive algorithms.
2. Interactive, uses preemptive algorithms.
3. Real time, may use nonpreemptive algorithms.
AӠQ@@h[BAӠQ 6Xz$Fh4Vxmmand se!,52 MAӤkaq2 ֈ!){-;AR`B-6u!*w3?l3AөP1'3?mL!*3SDAӧƨHi3T.!*3SDAӧ)3T.!+Y.H;AX_dz5.H=2!+3^AӦ\7?3`3!+3^AӦ\7¹C3`R!, 3I,AӪᝁ 3IE=!,F3IʓAӪt3Id!, .1AU7^.3$)!,K2AӠmREڥ2!,52 MAӤka>2 I!,52 MAӤkaq2 ֈ!.T3 AӦ9G3 x!.3?dAө01'3?d)!0+2BaAӤn\9X' 2B!13 AӦR3|!13 AӦ|3|!1K3&s/)AӨYKԋD3&s@!1k2iAӠֺHh2m!23 3RAӦJ3Bg!23 3RAӦtA3Bv!2H3]Aӧc푬@3,!2C3IE3AӪ痮Vş3Ib!22AӠ P2C#!3[3T.Aӧ ģ3V+!3[3T.Aӧ4?p3V+ WW*3) 5   +3^0-AӦ\7AӰYuMemory-mapped filesA process may map a file onto a portion of its virtual address space. Shared libraries are a special case of this technique. If two or more processes map onto the same file at the same time, they can communicate over the shared memory. AӦ\7@@6.֒ AӦ\7P峚) %='3I20-AӪjA~Device driver general structure

[...]
2. Ch 6Xz$Fh4Vxling (ea!*w3?l3AөP1'3?mL!*3SDAӧƨHi3T.!>q3EAӦW65?z3-!473NAӦWFUL3x !4U2iAӠui%S2!4. cATaxՀؓ. !5 3?.}Aөn m3?/!53?o@Aө\)hxg3?tZ!5&[3IaUAӪE3It)!5%3 AӦ<{'3 ӣ!5Y3Aӧ.{3S3!6U.HkyAX~z JH.Hm?!8EG2AӠ|ZDk2/!8EG2AӠ}2/#!93NAӧw`yi3N0'!93'JAӨk|c3'`0!:ם3IHAӪ@Ŀk3I/W!:3MAӧvIBk3NQ!;Mq2AӠj=qΝ2!q3EAӦW65iI3L!>N.3$AU&}.4E!>\2E8AӤlr 2b!>.H4AX`E;.H6%!>ٿ3I_AӪd9X 3I1^!>O3AӦa333?!?=3&o;AӨY?}N73&pf ||Գ) 5o    qԳ) 5o&vw24I0-AӠ#A~Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
[...]q3Ez3-473NL3x 473N-93w4U2iS24. cؓ. 5 3?.} m3?/53?o@hxg3?tZ5&[3IaU3It)5%3 '3 ӣ5Y33S36U.HkyH.Hm?8EG22/#8EG2ZDk2/93Nyi3N0'93'Jc3'`0:ם3IHĿk3I/W:3MBk3NQ;Mq2Ν2q3EI3L>N.3$&}.4E>\2E8 2b>.H4E;.H6%>ٿ3I_ 3I1^>O3鵛3??=3&o;N73&pf?=3&o;:J3&pg @I3u)k3A@3 }3]@3 }V3MAaS3Rǃ93SAaS3Rǫ3SAyM2 12A22ЬBY.H2t=.H4VBqa.H] V9.H^Bˋ2a2!Cu.Hd.^J.HkqC53?t]3?D3ck37WF3I'f3IDF. 'B. ( oԳ%) g?   2Գ%) g?lc3\0-AӧA~Dynamic vs. static swap area allocation

[...]
2. Dynamic. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 3 pages.
Dynamic vs. static swap area allocation

1. Static. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 7 pages.
2. Dynamic. If a process has 7 pages out of which 4 are currently in use, then swap space is reserved for 3 pages.
Aӧ@@4Aӧ j)  =   t.H0-AXAӬ쟮Our mental Like-O-MeterEverything we see triggers in us varying degrees of like or dislike. We also like our own name, which slightly biases us towards words and names that sound similar to our name.AX@@~>NAX ) awQ.6+0-AUA~Decision tree attribute test conditions for continuous attributes?Binary or multiway splits, using comparison tests (A < v) or range queries (vi <= A < vi+1).AU@@XAU d 6`2\.Xd)Aө5?3?%1Aө5?iH73?%d)AӨl'&K3'DAӨl'&y'33'<)AӨl) 녥3'AӨl) s^I3'C)AӨZ/3&,AӨZ/C 3&r)AӨZ/3&,AӨZ/k*?3&΅)AӨZEY-3&AӨZEQ3&m@)AӨZEY-3&AӨZE[3&mQ)AӨko|1m!3'AӨko|1Q3' )AӨko|[m!3'AӨko|[w3'#)AӨkwq33'AӨkwq63'*V)AӨkwq&33'AӨkwq&3'*g)AӨk7Lw83'*AӨk7L3')AӨk7vw83'*AӨk7vi3')AӨk'3',AӨk%3')AӨkƨ!73'@AӨkƨg3')AӨk&)A3'MAӨk&L3'3)AӨk=/3'3hAӨk=/=3'l)AӨk_+R3'mTAӨk_+F3')AӨkPw3'KAӨk(3'2)AӨkf3'33AӨkfo-3'J-)AӨk|93'JAӨk|c3'`0)AӨl%Qf33'kAӨl%Q?3')AӨlG7KDž3'AӨlG7K3' b(    %疳( U3I#;ҥ-AӪrA~I/O devices such as keyboards or printers that generate or accept a stream of characters.Character devicesAӪr@@AӪr  ) ] Z) ]3I;0-AӪEPQA~The formula for when a set of real-time processes is schedulable$\sum_{i=1}^{m} {C_i \over P_i} \leq 1$

where process $i$ has period $P_i$ msec and requires $C_i$ msec of CPU time per frame, and $m$ is the number of processes.
AӪEPQ@@0Ik[AӪEPQ VԎәK) y   R3?1A0-AөT;dAӬ쟮Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks ( u *3SD0-AӧƨA~Hard linkingDisk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.Aӧƨ@@fdgAӧƨ5">Virtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.
[...]
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.
Virtualization types

1. Type 1 hypervisor. When a virtual machine program executes a privileged instruction, the hypervisor is trapped to process it.
2. Type 2 hypervisor. The virtual machine analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.
3. Paravirtualization. OS source code is modified to make calls to a hypervisor program instead of the hardware.
AөT;d@@2x-AөT;dke advantage of multiple processors.
@The dimensions of multiprocessor scheduling
Which process to run, and which CPU to run it on?Aөf3 @@2x3Aөf3 |( EwbS38pҥ-AӦ( A~Loading memory pages only on demand, not in advance.Demand pagingAӦ( @@AӦ( //Nm'Fe/Nm'FeAө¹3?da!3?fAө-E/t3?g+53?h`Aө-E/Et3?g+i3?hrAө@ƻY3?h53?i1Aө@ƻY3?hNM3?i10Aө|/a3?i13?lAө}hJY3?lD'#3?lAөP1'*w3?l33?mLAөdZ3?m03?mAө0J_3?m[3?oAө0*J_3?mK3?oAө\)53?o@hxg3?tZAөm{3?to3?tAөMC53?t]3?AөEy=3?\3?DAөoK F3?EO3?oAө+MQ3?pV;Я3?OAө73?e3?AAөbNk3?#3?]Aө{'R3?_ϟ3?AөI^3?3? 'AөcՁJw3? 'e3?AөcՁ0Jw3? D{3?Aөi,3?S3?&Aөi,3?ޏ3?CAө􀼋DU3?ۚmE3?[Aө􀼋nU3?.]3?[Aөr3?[b3?_Aөr3?[0ʱ3?_AөV׹3?_wO3? ڳY) sU  CڳY) sUN2ZS0-AӠsuA~Advantages of implementing threads in user space:

1. Thread switches can be made without kernel calls, which can be very fast.
[...]
3. Better scaling, as threads don't need to be stored in the kernel.
Advantages of implementing threads in user space:

1. Thread switches can be made without kernel calls, which can be very fast.
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
3. Better scaling, as threads don't need to be stored in the kernel.
AӠsu@@AӠsuts).
7. Fair-share scheduling (each user is allocated a share of the CPU).
Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).
AӠzWhat to consider when deciding what processes to swap to disk?

1. Process size. Bigger processes need more memory.
2. Paging rate. Obvious.
[...]What to consider when deciding what processes to swap to disk?

1. Process size. Bigger processes need more memory.
2. Paging rate. Obvious.
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.
AӦWXA@@ib =AӦWXA әԧ) ; Dәԧ) ;".k3?[0-Aөe^A~Virtual Machine InterfaceA generic, non-hardware specific hypervisor API that can be used for paravirtualization with a variety of APIs.Aөe^@@f) HfAөe^ +) [C  n) [CQH3)0-AӧvA~(Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greater flexibility.
[...]
3. Extra overhead from sending various messages between pieces of the system.
(Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greater flexibility.
2. Extra overhead from crossing the user-kernel boundary.
3. Extra overhead from sending various messages between pieces of the system.
Aӧv@@gFB;Aӧv f) 3a  )) 3aAyM2 0-AӠm;A~Scheduling algorithms used in batch systems

[...]
2. Shortest job first.
3. Shortest remaining time next.
Scheduling algorithms used in batch systems

1. First-come, first-served.
2. Shortest job first.
3. Shortest remaining time next.
AӠm;@@h[BAӠm; vMv=) 9!    x. 2>W0-ATLAHbNIntuitively define entropy (in classification)The entropy of an interval is a measure of the purity of the interval. If an interval contains only values of one class, the entropy is 0. If the classes of values in an interval appear equally often, the entropy is maximized.ATL@@K1ATL(L) y3?r0-Aө5A~ParavirtualizationModifying an operating system's source code so that instead of making hardware calls, it makes calls to a hypervisor program. Simplifies virtualization, as hardware instructions no longer need to be emulated in detail.Aө5@@2x3Aө5Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.
Aө+@@f) HfAө+(  J      M  V J  R  8    o    Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After ea5">What does a paging system need to do when starting a new process?

[...]
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.
AӦa@@ib =AӦaptimal (theoretical). Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for 5">Three ways by which mental representations are internal.

1. Phenomenal. The states are phenomenally experienced as "internal".
[...]
3. Physical. The states exist physically within the organism.Three ways by which mental representations are internal.

1. Phenomenal. The states are phenomenally experienced as "internal".
2. Functional. The properties making the state available for conscious experience are only realized by a single person.
3. Physical. The states exist physically within the organism.
Aʸs@@Aʸs@AӦ(م?}@M@y$jA!M g瓘) mO    b3x0-AӦaAӮ lAllowed transformations for nominal attributesAny one-to-one mapping for reassigning values.AӤk%@@8m9AӤk%HӘ#) gk370-AӦ(t:\A~(Dis)advantages of physical dumps

[...]
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.
(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.
AӨYEbN@@3J"AӨYEbN 66ӕ) A  ?ӕ) Al72c0-AӠng 33A~The three possible states of a process.

[...]
2. Ready (runnable; temporarily stopped to let another process run).
3. Blocked (unable to run until some external event happens).
The three possible states of a process.

1. Running (actually using the CPU).
2. Ready (runnable; temporarily stopped to let another process run).
3. Blocked (unable to run until some external event happens).
AӠng 33@@AӠng 33 VV) cQ   y) cQՎ 3&pgj0-AӨYEbNA~(Dis)advantages of physical dumps

[...]
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.
Disk blocks are not listed in directories, but in a little data structure associated with the file itself. Directories then just point to the little data structure. UNIX uses this, with i-nodes as the data structure.Hard linkingAӧ@@fdgAӧ %%P˓j) K63Jt0-AӪvyA~Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, [...]
Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.
AӪvy@@c|AӪvy T Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.Page replacement algorithms

1. Optimal (theoretical). Remove the page that w nnĶ̓) /!    ̓) /!G=2ҥ-AӠmg+,A~The part of the operating system that keeps track of which parts of memory are in use, allocates memory to processes that need it, and deallocates it when they are done.The memory manager (of computers).AӠmg+,@@h[BAӠmg+, mmŭ蔧) !1   蔧) !1{3?t0-AөmA~(Dis)advantages of a large page size on a DSM

1. The startup time on a network transfer is pretty large, so sending 4096 bytes doesn't take that much longer than sending 1024 bytes. Reduces the number of needed transfers.
[...]
(Dis)advantages of a large page size on a DSM

1. The startup time on a network transfer is pretty large, so sending 4096 bytes doesn't take that much longer than sending 1024 bytes. Reduces the number of needed transfers.
2. False sharing. Two CPUs might both refer to different unrelated variables on the same page, unnecessarily sending the page back and forth.
Aөm@@£EAөm [1. Optimal (theoretical).
Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
[...]
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently 2) aE5?|0-AʸsA~What to consider when deciding what processes to swap to disk?

[...]
2. Paging rate. Obvious.
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.
What to consider when deciding what processes to swap to disk?

1. Process size. Bigger processes need more memory.
2. Paging rate. Obvious.
3. CPU or I/O boundedness. If there are many I/O bound processes in memory, the CPU may be idle for long periods.
AӦWj@@ib =AӦWj ɲ򡛮P) =C     _ɲ򡛮P) =C.HKw0-AXmuOA~How do we try to play Machiavellian tit-for-tat?We present our best self to others, trying to appear virtuous; and we look for flaws in the presentation of others.AXmuO@@\zAXmuO ҳ%) 1{  uҳ%) 1{cG3Jd0-AӪSA~Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: [...]
Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.
AӪS@@0Ik[AӪS %*@Vl2H^t$:Pf| AƧ~erC3&3 AQ,K2Eڥ2AƧ~erC3&3 AQ,K2Eڥ2@Lj.D{@!3?f@Yy3H@pE3JW @;.H] >@ʱA2B@ʾ2rl@3?mL@3I•@.ҩ@b3IuK@tS3?%0@̑2"@S2@I=2%@͞3;I@5?@2 ::݁󚧯) ';󚧯) '^c3I0-AӪ.{A~The upper CPU utilization which still guarantees that Rate Monotonic Scheduling will work.$U \leq n(2^{1/n}-1)$

Where n is the number of tasks.
AӪ.{@@AӪ.{B )6CP]jw -:GTan{ #0=JWdq~ ;3 ;3 =Գ ?Գ% @ B疳 C DәK Hژ JڳY LӘ Mәԧ N O P V瓘 Xӕ W Y哘 Z˓j \̓ ]蔧 _ `󘜸# aɲ򡛮P bҳ% d󚧯 g͞әɦ hӘ i֓ j󚧣 kɓ lә m铘L o v wВدM y󕗕Q {] ~Ԯ }פ  ߓϩ ә  6 Γ] ͌󘟇 9 ɑ ә ד 糚 ğ 󚧦= b ړ׆ 覓 M ә- ӕ 𣳚 ˱ ә'  ;(5BO\iv,9FS`mz #0=JWdq~ u3?HK 38 h3?< 2vY u3 M3?T .3D 12 u3?HK 38 h3?< 2vY u3 M3?T .3D 12 3?fL . 9 U38# u2s K93 2  /3&r )3T. Y3Jʓj m2̓ o3?t 5?| ;3~# FK.HMP z3Jx% 43?d V]3 z3l 3I I3&s. 3&` I3L 5G2! 37 {2Z ;2ʮQ  2j 3 S #3?] .Hb Qs.;( mI3 ?3' J2穥 3' U3 ?3 !3Z6 =.H4V 2q2] B. ( 2Ƭ9 3?d 3&o Q3' }2 Mq3^ ʹ3?H 3Uo [;3J  3J9 әɦ) cI u͞әɦ) cI(C3?dN0-Aө$ZA~Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
[...]
Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)
Aө$Z@@f) HfAө$Z wwӘ) #  ~Ә) #k 30-AӦ棕A~Memory management with linked listsA linked list of nodes with e.g. the following contents:

Type - Process or hole
Start - Starting memory address
Length - Length of process or hole
AӦ棕@@AӦ棕 F֓) mg    ֓) mg)-3L0-Aӧ<2!A~Requirements for long-term information storage

[...]
2. The information must survive the termination of the process using it
3. Multiple processes must be able to access the information concurrently
Requirements for long-term information storage

1. It must be possible to store a very large amount of information
2. The information must survive the termination of the process using it
3. Multiple processes must be able to access the information concurrently
Aӧ<2!@@314Aӧ<2! >󚧣) 5   󚧣) 53I0-AӪYxA~Main alternatives for real-time scheduling

[...]
2. Earliest Deadline First. Run the process with the least time to its deadline, pre-empting a running process if necessary.
Main alternatives for real-time scheduling

1. Rate Monotonic Scheduling. Assign each process a fixed priority, equal to the frequency of its triggering event.
2. Earliest Deadline First. Run the process with the least time to its deadline, pre-empting a running process if necessary.
AӪYx@@AӪYx mmɓ) Q   ɓ) QqM3&sF0-AӨYJA~(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
[...]
5. The process cannot restore individual files upon request.
(Dis)advantages of physical dumps

1. Simplicity, the program can be made pretty much bug free.
2. Speed, the process can run at the speed of the disk.
3. The process cannot skip selected directories.
4. The process cannot make incremental dumps.
5. The process cannot restore individual files upon request.
AӨYJ@@f}U̻AӨYJ VVә) ]#  ә) ]#'3&`}0-AӨXA~(Dis)advantages of a small block size for disk memory

1. Small files can be stored effectively, without wasting disk space.
[...]
(Dis)advantages of a small block size for disk memory

1. Small files can be stored effectively, without wasting disk space.
2. Most files will span multiple blocks and thus need multiple seeks and rotational delays to read them.
AӨX@@f}U̻AӨX LL铘L) q#  )铘L) q#>q3Eҥ-AӦW65iA~A page replacement algorithm that, upon process A triggering a page fault, removes the oldest page associated with any process. Causes the number of page frames assigned to each process to vary in time.A global page replacement algorithmAӦW65i@@ib =AӦW65ithe page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.
AӦ(m}`B@@AӦ(m}`B }8}!) k    "/37j0-AӦ(m}`BAӰYPage replacement algorithms

^5)  !w2!0-AӤl1'A~Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
[...]
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a r:#0000ff;">[...]
Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.
AӠe@@JOQ'AӠe ron't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.
AӦ(f"@@AӦ(f" resources between them.Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.
AӠZ;d@@JOQ'AӠZ;dif characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer is paged out when a character arrives?
3. Buffering in kernel, followed by copying to user space. What if characters arrive when the buffer is full and the user buffer is being brought in from the disk?
4. Double buffering in kernel. After the first buffer is filled up but hasn't been copied over yet, the second buffer is used.
AӪ@@c|AӪ5">Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on the screen */
read_command(command, parameters) /* read input from terminal */

[...]
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
execve(command, parameters, 0) /* execute command */
Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
execve(command, parameters, 0) /* execute command */
AӠƨ@@}ބ8ZAӠƨ'AӠ3ѩ@3 mP@gAռ] }}) !  p) !2@v0-AӠeA~Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
Cosine Similarity(x d y)/(||x|| ||y||)
where d = dot product, ||x|| = length of x
Geometrically, the angle between x and y: 1 is 0 degrees and 0 and 90 degrees.
ATb@@ʶuATbtion consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.
AӦb@@ib =AӦb [[󕗕Q) e  󕗕Q) e2u0-AӠZ;dA~Six operating system designs

[...]
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating smeans lower hardware and energy costs.
[...]
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.
Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.
AөbN@@f) HfAөbN mm]) =s    k3?0-AөbNAӻZ9xMotivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines z򳘌) 5sg30-AӦ4kdZA~The structure of a generic =ӕ߱j) 3 %2?0-AӠƨA~[...]
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.
What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protec YYt-weight:600; color:#0000ff;">[...]

4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.
Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
Static relocationWhen a program is loaded at address 16,384, the constant 16,384 is added to each program address during the load process. Slow, and requires knowing which words contain relocatable addresses and which do not.AӦ-PA@@AӦ-PA )) =  !.:M!0-AUJA/Entropy for class t$-\sum_{i=0}^{c-1} p(i|t) log_2 p(i|t)$
where p(i|t) is fraction of records labeled i at a given class t, and c is the number of labels
Produces values in interval [0,1]
AUJ@?c JAUJCb) ]kE.HӢ0-AX.A~Why do we think that the conscious mind is in control of things?Because it is the only part of our minds that we can directly perceive.AX.@@~>NAX. +)  f33'k0-AӨl%QA~Three types of multiprocessor systems

[...]
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
3. Distributed systems. Wide area distributed system, access time in milliseconds.
Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access time in nanoseconds.
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
3. Distributed systems. Wide area distributed system, access time in milliseconds.
AӨl%Q@@3J"AӨl%Q ::"ߓϩ) Io;ߓϩ) Ioeg2@0-AӠmA~When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
[...]
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.
When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.
AӠm@@AӠm j6Xz$Fh4Vxjhen a ne!%2AӠm^U02!2WAӠb~2!.H,'FAX^|.H2t2!2 AӠ!{T32!!sg3AӦ4kdZ3 S!3AӦE+c3;!U3?Aө􀼋DmE3?[!U3?Aө􀼋n.]3?[!M2gAӠ-Qd2 !RY3IpAӪ>RL!3Ip!3&AӨZqa7Lp3&+!(C3?dNAө$Z43?d!37DAӦ(qxj37m!3řAӦGMB3!G3qAӧFE3 m!޹2&sAӠտM2Q>!2kAӠX2!m3UAӦ[Se-3Y!m3UAӦ[S-3Y!3I;AӪEPQ )3Iɻ!)A3'MAӨk&L3'3!?3IAӪs{3Ia!3AӦs3}!{2Ɣ"AӠobN2Ƭ9!U3I#;AӪr3I!U3I#;AӪr3I!=3IWAӧf%-%33\!c3IJAӪyn3Ii ә) Cg  tә) Cg3'0-AӨlG7KA~Bus-based UMA multiprocessors

[...]
2. Internal cache reduces the memory accesses. Needs a cache-coherence protocol.
Bus-based UMA multiprocessors

1. Only one CPU can access memory at a time. If line is busy, requesting CPU must wait.
2. Internal cache reduces the memory accesses. Needs a cache-coherence protocol.
AӨlG7K@@3J"AӨlG7KFile Allocation Table.
A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
2. Linked list allocation. Each file is a linked list, with the first word of each block pointing to the next one and the rest being data.
3. File Allocation Table. A table with an entry for each physical disk block, pointing to the next block in the file.
4. I-nodes. For each file, there is an index node, that lists the addresses of the various disk blocks in order.
AӧK"@@fdgAӧK" LL) ?  30-AӧOAܙ@) ?30-AӧOA~Master Boot Record Sector 0 of a disk, used to boot the computer. Contains the partition table, with one partition marked as active.AӧO@@ZAӧO߂^Ә) 3K3>0-Aӧ\A~External fragmentation, AKA checkerboardingMemory developing unused holes due to e.g. variable-length segments being brought into memory and then evicted from it.Aӧ\@@gFBBAӧ\ 36) -   w6) -m3Y0-AӧD33A~Virtual file systemA file system that attempts to integrate multiple file systems into a single structure that is presented to the user. User processes operate it via one set of calls, and it operates other file systems via a list of function calls whose addresses the file systems provide upon registering with it.AӧD33@@314AӧD33 2G\q.CXm @u$3Iʺ@ @22#z: @K |.H2t2u~@s{3Iau@-6uu@.2u@3]u@|2摜u@38 @2Ƭ9 @'u2v @1a2P?@?=2!*@r=.H4V@c|Xi3I @c|j3Ipd@f) HfS3?L0@llJ]k2> @llJp52! @}ބ8Zm2 @K |.H2t2 @rqw.H,& @nk3I @u$3Iʺ@ @}I2 @}!3@'r3.>\]5?0 @(Cj)3 @0Ik[c# 3Is @0Ik[c3I+ @0Ik[kS]3Isr @0Ik[mr3Is @0Ik[{K3I@2x3]3? @2x3a3?. @2x3e3?A @2x3fK3?o @2x3hxg3?tZ @2x3oDY3? @3J"s^I3'C @5(Xdys<2U @6.֒ m3PP @JOQ'{G2? @ne:Ry1Jw =n=Γ]) ;S  Z+2<0-AӤk{AӯzDIAllowed transformations for interval attributesnew_value = a * old_value + b, where a and b are constants.AӤk{@@8m9AӤk{V) _qBY.H2t0-AX+A~What is an explanation for why we wish to reciprocate good deeds?It's a tit-for-tat strategy: act good to someone, then respond to his actions in kind. Co-operation helps even out variance in daily life.AX+@@(LGAX+parity disk.RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.
AӪ5?@@AӪ5? 6`2\.X X ope)AӨZEY-3&AӨZE[3&mQ)AӨYG 3&r9AӨYG +3&rr)AӨYIMӾG3&rAӨYIMӊد3&s)AӨYJqM3&sFAӨYJI3&s.)Aө׻d3?B,nAө׻dv03?C)Aө)rښ3?DEAө)rm+ 3?H)AөpĜ 3?"AөpĜtS3?%0)Aө5?3?%1Aө5?iH73?%d)Aөj?a3?%eAөjb3?'')Aө?a3?%eAөOQ3?'')Aө^5܋3?'(PAө^5R`3?./)Aөͩ3?.ΏAөa3?.)Aөn5 3?.}Aөn m3?/)AөGR3?/.AөG33?:Ø)AөGBenefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.
AӤlr@@llJAӤlr 󘟇) [c gD>͌󘟇) [cgD!3\0-AӦbA~What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the pag | ZZ9) WG    {2Ɣ"0-AӠobNA `rSkeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Assembly -Ւё) =9F. '0-AT>&A~AT>&@@K1AT>& )0DXl  4H\p$8L`terrupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
A~;33It(A~Ν2A~X3\ ]A~3QxA~2/#A~Pu3IwhA~К. R'A~/3ISJA~m3_ A~јm2BafA~c1.-A~f3FCA~~=3A~3 A~}3xA~7-3JPA~]2+A~#3ISA~տM2Q>A~!}2A~.2A~֖I3I"A~ַ3&A~&. 'vA~d+2*A~E;.H6%A~X2mA~٤3?0A~٩539^A~N73&pfA~ڈ3?A~ڕ3IA~ھ5?|A~ݍ3DA~k37WA~K%3:B>A~ 2,A~/w.ZA~03?mA~ݒ;-H~A~3] ɑ) SI    mɑ) SI[3?d*!0-AөA~Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
[...]
4. Copy on write (extra copy probably eventually needed)
Four ways of implementing sending on multicomputers

1. Blocking send (CPU idle during message transmission)
2. Nonblocking send with copy (CPU time wasted for extra copy, kernel call)
3. Nonblocking send with interrupt (makes programming difficult)
4. Copy on write (extra copy probably eventually needed)
Aө@@f) HfAө ә ) %#   m!3'0-AӨko|1AӬ쟮Uniform Memory Access multiprocessorA multiprocessor where the access time to a memory location is independent of which processor makes the request or which memory chip contains the transferred data.AӨko|1@@f}U̻AӨko|1lә) \3&nTҥ-AӨY"A~A copy process that starts at block 0 of a disk, writes all the disk blocks onto the output tape in order, and stops when it has copied the last one.Physical (copy/backup) dumpAӨY"@@3J"AӨY" ) A?   _) A?2Y0-AӠ@bA~Scheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput, maximize jobs per hour.
[...]
3. CPU utilization, keep the CPU busy all the time.
Scheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput, maximize jobs per hour.
2. Turnabout time, minimize time between submission and termination.
3. CPU utilization, keep the CPU busy all the time.
AӠ@b@@AӠ@bdue to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
[...]
5. Threads cannot take advantage of multiple processors.
Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.
AӠV@@h[BAӠV Jד) !w     3?DE0-Aө)rAʶHȴRandom accessReading may start at an arbitrary point, and may skip around the medium or read parts of it out of order.Aӧ\;@@fdgAӧ\;+ד) !w3?DE0-Aө)rA~Space sharing (on multiprocessors)Assume a group of related threads are created at once. If there are as many CPUs as there are threads, each thread is given its own, dedicated CPU. If not, the threads wait until enough CPUs are available.Aө)r@@2x3Aө)r +0DXl  4H\p$8L`tZ .uy.R6^ 2qX2`3Ipqj3IpdP93}Y3G¹3I#+3IHQ3]+'3H3?<^m3?B+H3?<^%The copy on write approach
In UNIX, parent and child processes share both program text and data after a fork. The data pages are set as read-only until either process tries to update a memory word, at which point the page in question is copied and both processes have their copy of the page set as read-write.AӦ[@@6.֒ AӦ[|糚)  /$'w3JŘ0-AӪ{PA~Linux thread priorities0-99 (real-time), 100-139 (non-real-time)AӪ{P@@9hAӪ{P ux dynamic priority aVğ) _3J 0-AӪA~Linux dynamic priority adjustment

[...]
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.
Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.
AӪ@@AӪ ^^֯󚧦=) }s   󚧦=) }s, 3I,0-AӪᝁA~Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
[...]
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.
Requirements for Rate Monotonic Scheduling

1. Each periodic process must complete within its period.
2. No process is dependent on any other process.
3. Each process needs the same amount of CPU time on each burst.
4. Any nonperiodic processes have no deadlines.
5. Process preemption occurs instantly and with no overhead.
AӪᝁ@@c|AӪᝁght:600; color:#0000ff;">[...]
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.
AӪU@@c|AӪU5">Disk arm scheduling algorithms

[...]
2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.Disk arm scheduling algorithms

1. First-Come, First-Served.
2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.
AӪD@@c|AӪDlJ@llJAӤo-@8kp@g1AӴo -b) }   fb) }>\2E80-AӤlrA~Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
[...]
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity mea vvړ׆) A  ړ׆) AZ2Nҥ-AӠmHA~An instance of an executing program, including the current values of the program counter, registers and variables. Thus, has its own virtual CPU.The contents of a process on the operating system.AӠmH@@AӠmH  =f3\QQQQQQ( A802WA80~2( A:cu.H,'FA:cu|.H2t2( Agu2L Aguv-2^[AOʥ2"AO0!/2{AbS38pA38RAn'^X2aAn'^2ݯ)Ag^2gsAg#2g( A41ƻY3?hA41NM3?i10ADM U2A#ADMݣ}2AU)Ac#-t3'3hAc#-t=3'l( AZmeW!.AZmOX.( A]L͵3A]L͵E-_3B( Avw>=.HAvwR.H+( Ah!vZuI3 Ah!vZC9U3 -( A .A Y9o.?( Aa H,3JXAa HG3J3m( At5$'3IsAt5$mr3Is)Afh. 1Afh55. ( AO$W001Jx&AO$W0G1Jz( A:cu.H,'FA:cu|.H2t2( A41ƻY3?hA41NM3?i10( A; 7.HZ&A;CHY.H( Agu2L Aguv-2^[ 66Xz$Fh4Vx4Vx">&B. (!G#2BAӤnȤz2B!G¹3IAӪ 9#+3I!HQ3]Aӧ爓u+'3!H3?<^AөFym3?B+!H3?<^AөF%Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
[...]
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become glo  qM) ;i  1M) ;im3I0-AӪDA~A~Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
[...]
Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z
Aӏ>@@Cm4Aӏ>5">Disk arm scheduling algorithms

[...]
2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.
Disk arm scheduling algorithms

1. First-Come, First-Served.
2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.
@0D"=.@߭\:ߎAӱPAӫ o@0Ik[@c|AӪ@`@+`AӱP MM忳)   () H3?<^0-AөFyA~Affinity schedulingA scheduling scheme that takes into account the fact that, if thread A has run a long time on CPU K, K's cache will be full of A's blocks. Tries to schedule a thread on the same CPU as the one it ran on the last time.AөFy@@2x3AөFy ә-) C5  [ә-) C53'330-AӨkfA~Three key characteristics of NUMA multiprocessors

1. There is a single address space visible to all CPUs.
[...]
3. Access to remote memory is slower than access to local memory.
Three key characteristics of NUMA multiprocessors

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.
AӨkf@@f}U̻AӨkf [[סӕ) W  ӕ) W 2%O0-AӠ|A~When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
[...]
When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.
AӠ|@@AӠ|e and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
[...]
Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.
AөI^@@f) HfAөI^ %) s    _𣳚) s %[3IO60-AӪo =A~I/O software layers

1. Interrupt handlers. Receive the interrupt from the ha\ ) =af220-AӤm|A~2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
[...]
4. User-level I/O software. I/O libraries might e.g. format output.
I/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.
@C_k@< *[AL#iA@@AӪ́@1M@TAL#i 0˱) {+  r˱) {+2-0-AӠmhsA~Four principal ways that causes processes to be created:

1. System initialization.
2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
[...]
Four principal ways that causes processes to be created:

1. System initialization.
2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.
AӠmhs@@AӠmhs0;">3. Easy checkpointing and migration.
To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
[...]Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.
@QL+"@.ԭAVyAӳ|^S@f) Hf@f) HfAӪ/T@(Õ}@J/AVy ccϻә') cs   ә') cs3?0-AөI^A~Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardwar ]]) _   ) _2W0-AӠ,G;dA~Scheduling algorithm goals for real-time systems (in addition to the normal ones):

[...]
2. Predictability, avoid quality degradation in multimedia systems.
Scheduling algorithm goals for real-time systems (in addition to the normal ones):

1. Meeting deadlines, to avoid losing data.
2. Predictability, avoid quality degradation in multimedia systems.
AӠ,G;d@@AӠ,G;d f =3\( A]13?%1A]1iH73?%d( A mJ5. l/A mȑ. lC( A]YL. ,TA]YLO. /( AHCK3'DAHCy'33'<( A L3?B,nA Lv03?C( A2CI.H$A2qw.H,&RAuɧw.NAuӷ.Z=)A‽Zt3IFA‽Zt3IY( AfY>c.H=AfY>A.H?Y( A7cJ>83A7cJ>d>C3( A L3?B,nA Lv03?C( AfY>c.H=AfY>A.H?Y( A7cJ>83A7cJ>d>C3 )A sU3?A s.]3?[( A]YL. ,TA]YLO. /( AHCK3'DAHCy'33'<( A2CI.H$A2qw.H,&)Ac0-JAc0$u-( Aww>K2QAww>J2w( A]13?%1A]1iH73?%d( ApW323Apbԓ3%( AcG3IAcGXi3I)Aq63J Aq6 3J9 AA񍳙)   4)  V3?He0-AөcA~Gang scheduling

[...]
2. All members of a gang run simultaneously, on different timeshared CPUs.
3. All gang members start and end their time slices together.
Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
2. All members of a gang run simultaneously, on different timeshared CPUs.
3. All gang members start and end their time slices together.
Aөc@@f) HfAөc RR⣲) o  #) o. TZ0-AT3TA~Why does a high dimensionality make classification algorithms work worse?High dimensionality makes the data space sparser. Classification may not have enough data objects to create a model that reliably assigns all objects a class.AT3T@@~dPR!AT3T hݳΎN) ]9   *ݳΎN) ]9(y3J30-AӪohsA~Linux interprocess communication

[...]
2. Signals. A process can send signals to members of its process group (ancestors and descendants). A process may ignore, catch, or be killed by a signal.
Linux interprocess communication

1. Pipes. Channels between two processes, into which one process can write a stream of bytes for the other to read.
2. Signals. A process can send signals to members of its process group (ancestors and descendants). A process may ignore, catch, or be killed by a signal.
AӪohs@@0Ik[AӪohs G=f3\\\\\\\( @UxM%3'A`FPs^I3'C)@T&rXX8l3I A]kk3I")@T!ʍXlғk3?AŸ#3?]( @T\E ӕ) Ok20-AӠzScheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
[...]
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery ticke Kuser is allocated a share of the CPU).
Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).
@JF!AAӾr@ffffff@AӠ @A @_\A //>Fә) Yu3'3h0-AӨk=/A~Three types of [...]

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.
Three types of UMA multiprocessors

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.
AӨk=/@@3J"AӨk=/of a generic page table entry

1. The page frame number
2. Present/absent bit
[...]
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.
AӦ7@@AӦ7 77܌) 9  >ŧ܌) 9"'20-AӠL/A~Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may use nonpreemptive algorithms.
[...]
3. Real time, may use nonpreemptive algorithms.
Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may use nonpreemptive algorithms.
2. Interactive, uses preemptive algorithms.
3. Real time, may use nonpreemptive algorithms.
AӠL/@@h[BAӠL/ G) u5   H3 n 0-AӦ7Aӯ SThe structure .ݳ:) q-2"!0-AӤl<A~The data fragmentation problem (in the context of decision tree induction)As we go down the tree, the number of records becomes smaller. At the leaf nodes, the number of records may be too small for a statistically significant classification.AӤl<@@AӤl<000ff;">2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.Aӧ17@@4Aӧ17 $$Fh4VxFhH4Vx!/3 Aӧwq93!?2AӤlw:=qĵ2!/3{Aӧu3!_3INAӪ#3Idn!5?Aʸl 15?!%[3IO6AӪo =3Ip!^2gsAӠ;d#2g!3IkAӪ49Xo+3I!01Jx&Aӏn5?G1Jz!f33'kAӨl%Q?3'!'3&`}AӨX3&`!3mAӧ=|93!.7AUjVRU.ؖ!F)3Iwi^AӪM3I!2XAӠp&e2#!н.fA\pLj.D{!. ,TATyO. /!/3 Aӧwq93!;3?HAөU;Oa3?[`!-AR.`‹-}!G3&rAӨYIMӊد3&s!3 AӦL3 Ĵ!"o2uAӠoMS f2K!3&,AӨZ/C 3&r!3&,AӨZ/k*?3&΅!|3 dAӧ@$*3 P7!3 AӦLb#[3#!2AӠ 2 ƳS) W    0.!{0-AU/Aʷ0d1Accuracy (machine learning)(number of correct predictions)/(total number of predictions)AU/@@XAU/3|) !-0-ARMA~Meaningful operations on interval attributes are mode, entropy, chi squared test, median, percentiles, [...]?Meaningful operations on interval attributes are mode, entropy, chi squared test, median, percentiles, mean, standard deviation, Pearson's correlation, t-tests?ARM@?ARM )0DXl  4H\p$8L`t A:cu.H,'F|.H2t2AN0%%2.2 AcE;3mI3 Avw>=.HA~G2$YA~~3IuKA~-6uA~. ϯA~¤3?CA~ #3'HA~ÈI3 A~G37oA~2A~3IwiA~)k3AA~f2KA~ģ3V+A~Ŀk3I/WA~j37mA~ő3&{A~Ŝ3IpA~ūo2 A~3]A~ 3W%A~js. گA~Ə%3\A~53?h`A~p/3IvA~Lj.D{A~!3?fA~Yy3HA~pE3JW A~;.H] >A~ʱA2BA~ʾ2rlA~3?mLA~3I•A~.ҩA~b3IuKA~tS3?%0A~̑2"A~S2A~I=2%A~͞3;IA~5? ;(5BO\iv,9FS`mz #0=JWdq~  2b  r2  15?  ?1J" - 3IM m3?B+ o-3'J-  2@  2b  r2  15?  ?1J" - 3IM m3?B+ o-3'J-  2@ 22. 3Ip 2K 3? ' 2 k3?L . G b3JN s2 =3'l ;2 22#z: 3   -a| "%.#3S H'.HT+ h3ZH k2" 5?2 u.S~ 5.H=2 3J`d .L ɑ2$@ =.HN 93  m3?/  3I H93]6 K3` 3| @?3?LD Q3&m@ [2( 3'*g /2& F3&`}P 3?D 2 *3 P7 7. f p3&+ I23 .  !!5?R " 3* "=3W "N27 "Y.? #Y3 ) #3Idn 򡨫) /O ^򡨫) /O.HQ 0-AX׿A~How does naive realism lead to hypocrisy?We think we see the world as it really is. We think our medical background gives us special insight to the medical industry. But when lawyers disagree with us on medical law reform, we think it's not because they're experience with victims gives them special expertise, but because they're greedy.AX׿@@(LGAX׿ 4H) -  wH) -m3Yҥ-AӧD3]A~A file system that attempts to integrate multiple file systems into a single structure that is presented to the user. User processes operate it via one set of calls, and it operates other file systems via a list of function calls whose addresses the file systems provide upon registering with it.Virtual file systemAӧD3]@@ZAӧD3]In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
[...]Multiprocessor operating system types

1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.
Aөn@@f) HfAөn ӗą) w!   kӗą) w!n2!0-AӤl[tA~Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
[...]
6. A decision tree using only a ((³2) MM³2) M5?g0-Aʹ.5?A~How does existing within a physical system prevent the information available to us from being actual information?Processing information takes time, so all of our information is always slightly behind that which is actually happening.Aʹ.5?@@Aʹ.5? Yŧ~) ;;    ŧ~) ;;Q.S@0-AUA~Finding the best split for a decision tree node$I(parent) - \sum_{j=1}^{k} {N(v_j) \over N}I(v_j)$

where $I(x)$ is the impurity of $x$, $N$ the total number of records in parent node, and $N(v_j)$ the records in child node $v_j$.
AU@?c JAU ^d) E[   M3J"ҥ-AӪjdAӵCreates a new thread in the current process or in a new process. Allows the working directory, file descriptors and signal handler table to be independently either copied or shared, and the parent to be either the caller or the caller's parent.Linux clone system callAӪjd@@0Ik[AӪjd ) #_+Y.H;0-AX_dzA~How to use reciprocity as a weapon?Offer something for free first, then ask for something in return.AX_dz@@K AX_dz }¬̧) 7  H¬̧) 73.C0-AU7lA~The spread on multivariate dataA covariance matrix whose $ij^{th}$ entry $s_{ij}$ is the covariance of the $i^{th}$ and $j^{th}$ attributes of the data.AU7l@@AU7l )0DXl  4H\p$8L`tupt service runs (typically reads and buffers input).
6. Scheduler decides what process to run next.
7. A~ބ2A~ފK3 mA~C3`RA~/. ,ThA~3YXA~53?i1A~QK.1A~d3A~%3A~J3BgA~➛38A~х36A~bw2A~3A~|2摜A~-2A~yi3N0'A~a2!A~3A~.c3&~W4A~簯2DA~E3 mA~O#3%A~蹵2A~S!.A~ 2A~e-3YA~2A~3?aA~Y22E1A~쵡3JŘ'A~b3?_A~Χ2vA~(3'2A~F2&A~G+3IA~?3`3A~2QA~631%A~.7A~.H  ~) Y     b'.HM0-AXAӻhWhat is the general process for comparing ourselves to others?Frame the question so that the trait in question is related to a self-perceived strength, then go out and look for evidence that you have the strength.AX@@rAXo򲓕@) YG}=K2&0-AӠn,A~Skeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
[...]
3. Assembly lan Lәއ) c   5 3?.}0-AөnAӰYrMultiprocessor operating system types

1. Each CPU has its own OS. d瓘) 9QrC3&0-AӦv2~A~Swapping (in the context of operating systems)Keeping each process in memory in its entirety, occasionally writing it back to the disk to make room for other processes.AӦv2~@@[v AӦv2~ divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.
Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
Three types of UMA multiprocessors

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
[...]
Three types of UMA multiprocessors

1. Bus-based architecture. Two or more CPUs and one or more memory modules all use the same bus for communication.
2. Crossbar switches. For connecting n CPUs with k memory modules, an n*k grid.
3. Multistage switching networks. A network that connects CPUs to memory modules using 2x2 switches.
AӨk&@@f}U̻AӨk&R.H+Ah!vZuI3 C9U3 - A .Y9o.? %*@Vl2H^t$:Pf| the command sequence and write to the device registers.
[...]
5. Che@yi3N0'@a2!@3@.c3&~W4@簯2D@E3 m@O#3%@蹵2@S!.@ 2@e-3Y@2@3?a@Y22E1@쵡3JŘ'@b3?_@Χ2v@(3'2@F2&@G+3I@?3`3@2Q@631%@.7@.H @3I@ )3Iɻ@Hi3T.@G2 ^@u3?HK@38@h3?<@2vY@u3@M3?T@.3D@12 ) /= UÑ) /=j3Is0-AӪ)A~Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's  the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
[...]
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.
Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.
AӪ@@AӪof decision trees.
[...]
Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.
AӤlxK@@8m9AӤlxK m6) g#  $҇6) g# 37^0-Aӧ17A~Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
[...]
3. Modern computers use virtual memory. In simplest form, each process' address space is ) 3CZ) 3C3Dt0-AӧFA~(Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greater flexibility.
2. Extra overhead from crossing the user-kernel boundary.
[...]
(Dis)advantages of policy/mechanism separation within an OS

1. More modular code and greater flexibility.
2. Extra overhead from crossing the user-kernel boundary.
3. Extra overhead from sending various messages between pieces of the system.
AӧF@@gFBBAӧF II龓) IQ    ,) IQ13 ҥ-AӦ|A~A hardware cache for the page table. When a virtual address is presented to the MMU, all the entries are checked in parallel. Misses can be handled either in hardware or in software.Translation Lookaside Buffer (TLB), or associative memory.AӦ|@@(CjAӦ| AAĢ)    4Ģ)  F3?L1:0-AөfA~Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
2. All members of a gang run simultaneously, on different timeshared CPUs.
[...]
Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
2. All members of a gang run simultaneously, on different timeshared CPUs.
3. All gang members start and end their time slices together.
Aөf@@f) HfAөf 2@( }1  u@( }1Y-3&0-AӨZEA~Block race aheadA strategy of pre-emptively reading block k + 1 of a file into the cache if block k is read. The OS can keep track of whether a file is being accessed sequentially or randomly to see whether this technique makes sense.AӨZE@@f}U̻AӨZEA $(5BO\iv,9FS`mz #0=JWdq~ 蜳n ә ݳΎN ӕ ә ŧ܌  ƳS 򡨫 H ӗą ³2 ŧ~ d ¬̧ Œ Ì­әއ njÑ ʌ҇6 ˌ ̌ ͍Ģ ΍@ Ўg Ҏ󗤽& ӎÓP Վݳ ׏7 ُ̜ ڏܞ󙚊 ݏ牓 ޏ ߑ* ⑏ ؑ˒š ˓ 蜳n 볘 峚 ؓˏ 򠱓 ψ B ܳU 򦳘 # ΢C ۗ@ ٲ ӗq 볕 ߧ ڐ 𹁶 쓩 ӕ Ә Ә ׾Ә ӚP 򡗭 ț ӕ. "쓕P +g) '+      33'ҥ-AӨkwq&Aʷ_\9XA multiprocessor where the memory access time depends on the memory location relative to a processor.Nonuniform Memory Access multiprocessorAӨkwq&@@3J"AӨkwq&Jӗѣ) 3#ia?2%0-AӤm JA~In machine learning, constructive inductionIn machine learning, creating new attributes that are composites of two or more attributes. Helps e.g. decision trees classifiers to correctly classify data into nonrectangular regions, but may introduce redundancy in the data.AӤm J@@llJAӤm Jf I/O software

1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.
AӪ@@AӪ P󗤽&) A    󗤽&) Ao2b0-AӤlxKA~Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy 33ÓP) ## BÓP) ## ]'3&^W0-AӨXfA~(Dis)advantages of a small block size for disk memory

[...]
2. Most files will span multiple blocks and thus need multiple seeks and rotational delays to read them.
(Dis)advantages of a small block size for disk memory

1. Small files can be stored effectively, without wasting disk space.
2. Most files will span multiple blocks and thus need multiple seeks and rotational delays to read them.
AӨXf@@f}U̻AӨXfets).
7. Fair-share scheduling (each user is allocated a share of the CPU).
Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranteed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).
AӠ~2@@AӠ~2 ݳ) #= Oݳ) #=y=3?\0-AөEA~Processor allocation algorithms for load balancing

1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
[...]
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of  6Xz$Fh4VxH!N3뤓AӦFgA31!Cu.Hd.AXUX^J.Hkq!C53?tAөM]3?!F3I'fAӪvɰ3ID!JO3JAӪZ3J!JS3ItAӪ^:8E3I!Ko3IpAӪ1'Ŝ3Ip!Ks3ItFAӪ!~3IuK!Ks3ItFAӪKb3IuK!Ko. CpATb AXq. I !L. /AT 푶 . 2=!L 3I_AӪݒ3I%!M:3IEAӪcƨe3I`!MQ3?pVAө+;Я3?O!N 3'"AӨlH #3'H!N3뤓AӦFP31!N3뤓AӦFgA31!N2ZSAӠsu2vY!Ou. *AT|//. ,Th!O+.y[AU֗w.{9!O3x`Aӧ(3)'!P'3I,AӪs"ѕ3I$w!P93AӦW`B}Y3!P93AӦW`l9{3!P3ZčAӦ[S 3\ M!P3ZčAӦ[T"X3\ ]!QH3)Aӧv.3D!Q.6+AU.7 37) '9  7) '9|3 d0-Aӧ@$A~Scheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of the CPU.
2. Policy enforcement, seeing that stated policy is carried out.
[...]
Scheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of the CPU.
2. Policy enforcement, seeing that stated policy is carried out.
3. Balance, keeping all parts of the system busy.
AӠX@@AӠX ttadvantages of contiguous file allocation

[...]
2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.
<'ޓ7( %m|20-AӤk)7A~Any one-to-one mapping for reassigning values is a permitted transformation for this attribute type.Nominal.AӤk)7@@8m9AӤk)7O˒š) Q.0-AUA~Median Absolute Deviation$median = (\langle |x_1 - x|,|x_2 - x|,...,|x_m - x|\rangle)$AU@@XAU ̜) g     iR̜) g i. a0-AT.-A~Simple Matching Coefficient
[1,0,0,0,0,0,1,0,1,1]
[0,0,1,0,0,0,1,1,1,0]
(number of matching attribute values)/(number of attributes)
0,6
AT.-@@ʶuAT.- 󙚊) e9  nܞ󙚊) e93&0-AӨZqa7LA~Factors to take into account when using a modified LRU scheme for disk block caching

1. Is the block likely to be needed again soon? If not, put it at the front of the list to be reused soon.
[...]
Factors to take into account when using a modified LRU scheme for disk block caching

1. Is the block likely to be needed again soon? If not, put it at the front of the list to be reused soon.
2. Is the block essential to the consistency of the file system? If it's not a disk block but an i-node block, directory block, etc., write it to the disk as soon as possible.
AӨZqa7L@@f}U̻AӨZqa7L %*@Vl2H^t$:Pf|@E3?d@2Y@V9.H^@o+3I@3I@E3?d@2Y@V9.H^@o+3I@3I@2@@3JG@. A@V@23@G2@!3 @@u2a@2@03 j@E.Hp@v.HEq@2!@'3I@_2)@3J@G. s6@'3 ӣ@-. P@3I%@3y@U3U@3S@@3,@M-@A33@#3I)@K3Z @3?o@38K@3 Ĵ@S3I®l@3 x 6Xz$Fh4Vxjf605c6">!P93AӦW`B}Y3!W3I AӪ1'{K3I!R3?/.AөG!R3?/.AөG33?:Ø!R3?/.AөGM. ڐ!T. ;ATe`kjs. گ!U-2AӠs2Y!V)2AӤlut]k2>!Vk5?vXAʸCھ5?|!V3?HeAөck3?L!W'3 AӦW&/23!W'3 AӦW&/E.;3!W3|AӦC33)3!W3I AӪ1'{K3I!Xo3 PAӧB<9X03 j!Y-3&AӨZEQ3&m@!Y-3&AӨZE[3&mQ!YG.Hp*AX11'-.Hx{!Z .A\nRuy.R6!Z2NAӠmHN2!Z2NAӠmH r2 m) }   &牓) } yO20-AӠ~2A~Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
[...]
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranteed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tick ) -?    U) -?. .ҥ-ATOA~Feature selection occurs naturally as part of the data mining algorithm. E.g. decision tree classifiers.The embedded approach to feature subset selectionATO@@BTATO cc{*(       >13 ҥ-AӧSe`lA΂ *( >13 ҥ-AӧSe`lA~Reading starts at the beginning, and cannot skip around or read things out of order.Sequential accessAӧSe`l@@314AӧSe`lgȾ) y5?u0-AʸA~Reading a book in my hands and experiencing interest in it, the content of my consciousness consists of [...] and not the neural process of construction.Reading a book in my hands and experiencing interest in it, the content of my consciousness consists of mental representanta and not the neural process of construction.Aʸ@@Aʸ DX  4\$8`tttAʷ\Χ2vAʷ 1+3^țAʷ M`S3vAʻ,NG 3^ȻAʻ-td>C30Aʷ\Χ2vAʷ 1+3^țAʷ M`S3vAʻ,NG 3^ȻAʻ-td>C3lAʻ3⟾Y3N.Aʻ:mSR/3NMAʻ?H7B2!6AʻA2=q/3&rAʻLxU@3JAʻ\ dZO3?AʻvTe$.HWAʻ$Z83ItqAʻjn.#m{Aʻbr#5?HAʻ5?2Aʻ%5?UAʻonT5?Aʻ`Bmi+5?zpAʻŏK 15?Aʻl:[5?Ways of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run of disk blocks.
[...]
3. &4HX \ p$D8L`0lttE5?nT5?{.9gu.nNz(m.Yc.x93J>wX3J8q3IW3I' zx3 nWK3 p2/Km2a3wu2 vIX2$p2^IM2{t>. l@. pur2N=Q2rƥ3?D|1g3?Dq2N12-.r3?[0ʱ3?_r5?K+a5?gp2/u2apе3J:/pE3JW r3?[b3?_rC3&3rC3&93t"3YE3Zt"3YK3Z t.H.H v2 폰2av2 2amw83'*Ŏ3'w83'*żi3'xG.>S!.x3I/3INyk. PК. R'y=3?\3?D{.9u.nl|r. Nt-. P}=K2&ɑ2$@~3bÈI3 C3׊m3_ C3׊Mq3^2x2 NN䲳) 'i  ') 'i\3V,D0-AӧA~Operations needed for file deletion in UNIX

[...]
2. Release the i-node to the pool of free i-nodes.
3. Return all the disk blocks to the pool of free disk blocks.
Operations needed for file deletion in UNIX

1. Remove the file from its directory.
2. Release the i-node to the pool of free i-nodes.
3. Return all the disk blocks to the pool of free disk blocks.
Aӧ@@fdgAӧ tO蜳n) Q_3IN0-AӪA~Goals of I/O software

1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
[...]
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.
Goals o -||0DXl  4H\p$8L`t2 {T32! 3)D3\J5. l/. lCK+3B.?3uI3 C9U3 -m3Y!3Z6m3Yh3ZH3?B,n¤3?C3?B,nv03?C2Y}2o2'}[2!^2Fbw2^2Fx2km2ʮ]2W323O#3%W323bԓ3%%22%2.2t]3P/]3S]-}xM-K3'Dy'33'<3IɻEg3Iʺ03Iɻu$3Iʺ@p-H[;-^sg33 S.H,'F|.H2t23цc3;U3?ۚmE3?[U3?.]3?[M2gd2 RY3IpL!3Ip3&p3&+(C3?dN43?d37Dj37m3řMB3G3qE3 m޹2&sտM2Q>2k2m3U-3Ym3Ue-3Y3I; )3Iɻ2 {T32!)A3'ML3'3?3Iхs{3Ia33}{2Ɣ"2Ƭ9 *0DXl  4H\p$8L`tW3|)3UV3ôCb3ͽU-22YV)2]k2>Vk5?vXھ5?|V3?Hek3?LW'3 23W'3 .;3W3I {K3IXo3 P03 jY-3&Q3&m@Y-3&[3&mQYG.Hp*-.Hx{Z .uy.R6Z2N r2Z2NN2Z+2<2q2]Z3j3[3IiY.3I/[I3 kS:/3 b\3V,D"=3W\5?S5?]2:62]2jC2]2j]2+^ 2qX2^c3I3I_uI3?`r3?a`3Ipqj3Ipd`y3I103INPa(+.Rg%.Baf2222.a3?i13?la22b=%3JWji3Jtnb2`p2b2`'u2vc8/3d3c|2e82Еd2 2RRY3IpL!3IpAӪV`3Ipqj3IpdAӪ1'Ko3IpŜ3IpAӪUm3IpOc# 3IsAӪ ng3IskS]3IsrAӪdžȴ'3Ismr3IsAӪ"ѡ93Is_E3ItHAӪM?}o3It;33It(AӪ23It)g3ItFIAӪ!Ks3ItF~3IuKAӪKKs3ItFb3IuKAӪ^3IuL"3IvAӪ^3IuLp/3IvAӪ~.[3Iv*Pu3IwhAӪ$.[3Iv*3IwiAӪF)3Iwi^M3IAӪd9X>ٿ3I_ 3I1^AӪ>v`y3I103INPAӪ_3IN#3IdnAӪ=/3IdܚO3I}AӪ聩I3I}z3IAӪ@:ם3IHĿk3I/WAӪEx3I/3IN jj#볘) k9     3 0-AӦLbAӻFyWays of implementing files

1. Contiguous allocation. Each file is a stored as a contiguous run oq볘) k93 0-AӦLbA~1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.
AӦLb@@[v AӦLb"font-weight:600;">1. Device independence.
It should be possible to write programs that can access any 5">Memory management algorithms for finding an n-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
[...]
Memory management algorithms for finding an n-sized hole from a list of processes and holes
1. Uniform interfacing for device drivers.
Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.
AӪĜ@@c|AӪĜ3[3T.AӻՇ<ģ3V+( @B '_2cAӶp -/2 single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.
Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.
AӤl1'@@llJAӤl1' 5">Memory management algorithms for finding an n-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
[...]
Memory management algorithms for finding an n-sized hole from a list of processes and holes
RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
[...]
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.
RPC implementation issues

1. Cannot normally pass pointers. Call by reference could be turned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
2. In some languages, the client stub cannot determine the size of the parameters.
3. It is not always possible to determine the types of the parameters.
4. Global variables cannot be used, unless they are moved to the remote machine.
Aө}h@@f) HfAө}h uu峚) Yi 峚) YiG¹3I0-AӪ 9A~Disk arm scheduling algorithms

1. First-Come, First-Served.
[...]
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.
Disk arm scheduling algorithms

1. First-Come, First-Served.
2. Shortest Seek First. Always goes to the nearest cylinder. On a heavily loaded disk, arm tends to stay in the middle of the disk most of the time, with a long time before requests in the ends get served.
3. Elevator. Keep moving in the same direction until there are no more requests in that direction, then switch directions.
AӪ 9@@AӪ 9 %*@Vl2H^t$:Pf|00; color:#0000ff;">[...]

4. Possibly block, waiting for the device to finish completing the commands.
5. Check for@. 9@U38#@u2s@K93@2 @/3&r@)3T.@Y3Jʓj@m2̓@o3?t@5?|@;3~#@FK.HMP@z3Jx%@3I@43?d@V]3@z3l@3I@I3&s.@3&`@I3L@5G2!@37@{2Z@ҁ. l/M@;2ʮQ@ 2j@3 S@#3?]@.Hb@Qs.;(@mI3@?3'@J2穥@3'@U3 !ؓˏ)    RDe2$Y0-AӤl`AӬ쟮An oblique decision tree(An often computationally expensive) decision tree that allows test conditions involving more than one attribute, such as the test condition

$x + y < 1$
AӤl`@@AӤl`Iܳ) =>3I0-AӪA~Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for ;(5BO\iv,9FS`mz #0=JWdq~   m3?/   3I  H93]6  3|  @?3?LD  Q3&m@  [2(  3'*g C3( 3?l 3|X . Cp# c3h 5?i| E'.>4 OQ3?'' 2B .H9 .{9  . 2= '3?T k.* #2g p2 .Z `3;I!  3H  3?D 3 ^.3$) i3?hr ĵ2 ޏ3?C !2gs} 3II 37 .! 2Y Oa3?[` g3' n.#m{ i3' c- p?3&3; 3IY 39^ . * 2Ь S3?&  3I1^ G2$Y ~3IuK -6u . ϯ ¤3?C  #3'H ÈI3 G37o 2 3Iwi )k3A f2K ģ3V+ Ŀk3I/W j37m ő3&{ Ŝ3Ip 33򠱓) M   fC.H0-AX]`BAӬ쟮Why is stimulus control a good way to control ourselves?Stimuli appeal directly to the elephant. Like a tired muscle, willpower soon wears down, but automatic systems run automatically, effortlessly and endlessly.AX]`B@@K AX]`B&) IE-J0-ARh9A~What is an asymmetric attribute? (in machine learning)One where non-zero values are regarded as important.ARh9@@ARh9 MM )   (ψ ) H3?<^ҥ-AөFA~A scheduling scheme that takes into account the fact that, if thread A has run a long time on CPU K, K's cache will be full of A's blocks. Tries to schedule a thread on the same CPU as the one it ran on the last time.Affinity schedulingAөF@@f) HfAөF B) GI   gB) GIa(+.Rg0-AU _O\)A~Box plot. Lower and upper ends of the box are [...], the middle line is [...], the tails are [...], and + marks represent [...].Box plot. Lower and upper ends of the box are the 25th and 75th percentiles, the middle line is the 50th percentile, the tails are the 10th and 90th percentiles, and + marks represent outliers.AU _O\)@@AU _O\)  ܳU) ibܳU) i5?ڐ0-Aʺ JA~What do we mean if we say that the representandum Y is an actual (aktuell) state of the world?Not that it would be actual in the sense of happening at that exact moment, but that it is treated as actual in the frame of reference that the system is using.Aʺ J@@Aʺ J UUݦ) ?C    򦳘) ?C=3IW0-Aӧf%-A~Ways to reserve swap space for a process

1. When a process starts, reserve an amount of space equal in size to the core image of the process.
2. When a process starts, reserve separate swap areas for the text, data and stack.
[...]
Ways to reserve swap space for a process

1. When a process starts, reserve an amount of space equal in size to the core image of the process.
2. When a process starts, reserve separate swap areas for the text, data and stack.
3. Reserve nothing in advance, allocating disk space for each page when it is paged out and deallocating it when it is swapped back in.
Aӧf%-@@gFBBAӧf%- c#) +a     %#) +a2X0-AӠpA~Scheduling algorithms used in batch systems

1. First-come, first-served.
2. Shortest job first.
[...]
Scheduling algorithms used in batch systems

1. First-come, first-served.
2. Shortest job first.
3. Shortest remaining time next.
AӠp@@h[BAӠp @΢C) 9 ΢C) 93J0-AӪpȃA~Linux interprocess communication

1. Pipes. Channels between two processes, into which one process can write a stream of bytes for the other to read.
[...]
Linux interprocess communication

1. Pipes. Channels between two processes, into which one process can write a stream of bytes for the other to read.
2. Signals. A process can send signals to members of its process group (ancestors and descendants). A process may ignore, catch, or be killed by a signal.
AӪpȃ@@c|AӪpȃ t)  M   Jw3? 0-AөcՁAӰYVDecision tree attribute test conditions for nominal attributes?Either a potential outcome for each possible value, or group several together. "Single, married, divorced" can be split into {single, married, divorced} or e.g. {single},{married,divorced}.AU@@KAU?) -JY3?lD0-Aө}hA~A sensitive instructionAn instruction that may only be executed in kernel mode.AөcՁ@@f) HfAөcՁ compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.
I/O software layers

1. Interrupt handlers. Receive the interrupt from the hardware and unblock the device driver.
2. Device drivers. A part of the kernel, either compiled into it or dynamically loaded.
3. Device-independent OS software. Performs the I/O operations common to all devices, and provides a uniform interface to the user-level software.
4. User-level I/O software. I/O libraries might e.g. format output.
AӪ@@@c|AӪ@ )0DXl  4H\p$8L`trned into copy-restore, but this could fail if e.g. the pointer is to a complex data structure.
Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
[...]

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.
Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.
@_g-6@@3JQ0-AӪM`BA~Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
[...]

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.
Linux scheduling is based on threads, and distinguishes three classes:

1. Real-time FIFO (highest priority, only preemptable by a newly readied FIFO with higher priority).
2. Real-time round robin.
3. Timesharing.

Note: the real-time classes aren't actually that, for no deadlines can be specified and no guarantees are given.
AӪM`B@@0Ik[AӪM`B5">Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
[...]
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.
AӠ۞E@@333333AӠ۞EAӳR lĆv) 9g   /ݾĆv) 9gb2`0-AӠ'MA~The CPU-usage profile of an I/O-bound process.A process that typically has short CPU bursts and frequent I/O waits.AӠ'M@@AӠ'Mv+𩸏) + 㪲𩸏) +Qx. R0-AT9A~Properties of metric distancesPositivity: d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry: d(x,y) = d(y,x)
Triangle inequality: d(x,z) <= d(x,y) + d(y,z) for all x, y, z
AT9@@~dPR!AT9ӗq) Eӗq) =2(O0-AӤm#A~Time required to read or write a disk block is determined by

[...]
2. Rotational delay (the time for the proper sector to rotate under the head)
3. Actual data transfer time.
Time required to read or write a disk block is determined by

1. Seek time (the time to move the arm to the proper cylinder, dominating factor)
2. Rotational delay (the time for the proper sector to rotate under the head)
3. Actual data transfer time.
AӪ.V@@0Ik[AӪ.Vthe page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.AӦ(jx@@AӦ(jx es for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
[...]
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.
Aӧ爓u@@gFBBAӧ爓u on't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for 77볕) A7  c20-AӠ۞EAo;dReasons to use threads.
[볕) A7c20-AӠ۞EA~Examples of ratio attributesTemperatures in Kelvin, counts, monetary quantities, age, mass, length.AӤk{dZ@@8m9AӤk{dZ Ծ6) kk4370-AӦ(f"A~Page replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
[...]
} else {
execve(command, parameters, 0) /* execute command */
Oversimplified POSIX prompt code

while (TRUE) {
type_prompt(); /* display prompt on the screen */
read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
waitpid(-1, &status, 0) /* wait for child to exit */
} else {
execve(command, parameters, 0) /* execute command */
AӠP@@}ބ8ZAӠP@<;$@ ZzAAHsAӰN[@333333@333333AӠQIhs@7mN@tX AHs ߧ) I   Cߧ) I. \w0-ATs"A~Give an example of a non-symmetric similarity measure?A confusion matrix. E.g. shows that a was mistaken as b 3 times, but b was mistaken as a 5 times.
Can be made symmetric by the transformation s'(x,y) = s'(y,x) = (s(x,y) + s(y,x))/2.
ATs"@@~dPR!ATs" eeڐ) ;'      ڐ) ;'T. ;0-ATe`BA~The filter approach to feature subset selectionBefore data mining, features are selected using some approach independent of the data mining task. E.g. selecting sets of attributes with a low pairwise correlation.ATe`B@@K1ATe`B ;(5BO\iv,9FS`mz #0=JWdq~ #+3I $~3I $2% $u- %+.H %M. ڐ +'3 +a5?g -.Hx{ -/2 -93w -Fu37 .]3?[ .;3 .?3 /]3S /g2 0!/2 03INP 0ʱ3?_ 0.HK 1#A3  1+3^ț 12-. 1g3?D 1a2P 2x+3# 2'3{P 23&3N 3=37 3S3 4͓.0/ 55.  63'*V 62 63Ch% 7B2!6 7Y3ID 7. *a 7. S 8'c2 8C2(">2. Master-Slave Multiprocessors.
The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.
Multiprocessor operating system types

1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.
Aө^5@@2x3Aө^5 he longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
[...]
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently  Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.Page replacement algorithms

1. Optimal (theoretical). Remove the page that w H𹁶) #  ~𹁶) #HQ3]0-Aӧ爓uA~Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Process  G쓩) m쓩) mr5?K0-Aʹ-GA~What's the risk involved in talking about a "content of consciousness" or a content of a single phenomenal "representation"?It invokes the image of a static object, instead of a continuous representational process.Aʹ-G@@Aʹ-G ӕ) wa  ӕ) wa'_2c0-AӠPA~What is conspicious and inconspicious consumption?Conspicious consumption is one where our relative position to others matters: inconspicious consumption is one where we buy things mostly for themselves. Inconspicious consumption often lets us spend more time with people (e.g. vacations), and makes us happier on the net.AX11'@@(LGAX11' ;(5BO\iv,9FS`mz #0=JWdq~read_command(command, parameters) /* read input from terminal */

if(fork() != 0) { /* fork off child process */
 2, /w.Z 03?m ݒ;-H~ 3] 3\ ބ2 ފK3 m C3`R /. ,Th 3YX 53?i1 QK.1 d3 %3 J3Bg ➛38 х36 bw2 3 |2摜 -2 yi3N0' a2! 3 .c3&~W4 簯2D E3 m O#3% 蹵2 S!.  2 e-3Y 2 3?a Y22E1 쵡3JŘ' b3?_ Χ2v (3'2 F2& G+3I ?3`3 2Q 631% .7 .H  3I  )3Iɻ Hi3T. G2 ^ u3?HK 38 h3?< 2vY u3 M3?T .3D 12 hӘ) !k   k37F0-AӦ(jxAӰZ*|IPage replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for t ΠӘ)  Y473N0-AӦWF+A~Internal fragmentationMemory space being wasted due to data not fully filling pages.AӦWF+@@ib =AӦWF+ >2. Not Recently Used.
When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
[...]
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At eac h clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.
Page replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.
@78@2ߎ!AӸ>!IAӯF@@AӦ(O;d@?Դ9@colAӸ>!I Ә) ]!  W'3 ҥ-AӦW&/EAӬ쟮A page replacement algorithm that, upon process A triggering a page fault, removes the oldest page associated with process A. Effectively allocates each process a fixed fraction of the memory.A local page replacement algorithmAӦW&/E@@ib =AӦW&/E3әۜ) cEU3?ҥ-Aө􀼋nA~Sensitive instructions must be a subset of privileged instructions.A requirement for (type 1 hypervisor) virtualizationAө􀼋n@@2x3Aө􀼋n zz$Fh4VxVxx @!P93AӦW`l9{3!P3ZčAӦ[S 3\ M!P3ZčAӦ[T"X3\ ]!QH3)Aӧv.3D!Z .A\nRuy.R6!^ 2AӠonqX2!`3IpqAӪVj3Ipd!YG.Hp*AX11'-.Hx{!Z2NAӠmHN2!Z3Aӧg٘j3![3IiAӪY.3I/![I3 kSAӧCz:/3 b!\3V,DAӧ"=3W!\5?AʸcvɔS5?!]2:AӠ?|62!]2jAӠ׾wC2!]2jAӠ׾]2+!^ 2AӠonqX2!_uI3?`rAөɨ3?a!`3IpqAӪVj3Ipd!`y3I1AӪ>v03INP!a(+.RgAU _O\)%.B!af22AӤm|22.!a3?i1Aө|/3?l!a2AӠ\2!b=%3JWjAӪ{Si3Jtn!b2`AӠ'M'u2v!b2`AӠ'M¹p2 pӘ) /   t]3P0-AӦ[^aXA_\)Page sharing between programsWith separate instruction and data spaces, two or more processes can use the same page table for their instruction space, but different page tables for their data space.AӦ[^aX@@6.֒ AӦ[^aX) 3K+3B0-AӦgA~Memory management with bitmapsMemory is divided into allocation units, each of which corresponds to a bit in the bitmap. Simple, but searching the bitmap to find the space for a new process takes time.AӦg@@AӦg |Nl|>.j Agu2L v-2^[ A802W~2<AW)-3Lz3lAKSb'.HM=.HN A; 7.HZ&CHY.H A^P.HG20.HK<AjWɿ3х36A떚437)Q37F6 Agu2L v-2^[ Arbv5.HEr9b.HG2s Am.4jj.6 ZA77Ұ΄Dm3SM3UoAE[sO2)2n A팠e<. TZ. G Ab -.HT+e$.HW\AlRDO-ac- A L3?B,nv03?C<Auɧw.N˷.ZA‽Zt3IF3IY AfY>c.H=A.H?Y A7cJ>83d>C3LZAU ɧw.N/w.ZA sU3?.]3?[LA mJ5. l/. lC A]YL. ,TO. /A.bS38p➛38 AHCK3'Dy'33'< A2CI.H$qw.H,&ZAc0-J$u-<Aww>K2QJ2wAۚ7?S.>.4E'.>4 b ӚP)    `y3I10-AӪ>vAӯ-The memory hierarchy (of computers).A system where computers have e.g. a small cache memory, a larger main memory, and a yet larger disk storage.AӠYn@@5(XdyAӠYn ) W2Ϩ0-AӠnN A~Windows process hierarchy.There is none. A parent process is given a token (a handle) that can be used to control the child, but the token can be passed on to other processes.AӠnN @@h[BAӠnN lows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.
Aӧ.{@@gFBBAӧ.{ ry. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
[...]Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It al p`pT򡗭) ;Q    P.HG20-AXL&AӬ쟮Motivated stopping as an analogy to the lawyer?An opinion comes to our mind, and we "call our lawyer" (query our brains for evidence) to establish that our position makes sense. If the matter is important, we'll make a more frantic call to gather as much supporting evidence as possible.AXL&@@rAXL&֓( or3?[ҥ-AөA~When a virtual machine program executes a privileged instruction, this component is trapped to process it (execute instruction if coming from the OS, emulate response if coming from user mode program).Type 1 hypervisorAө@@2x3Aө CCⅳț)     13\ 0-AӦ\mAʷ Position-indepedent codeCode that only uses relative offsets for jump instructions (as opposed to absolute addresses). Useful with e.g. programs taking advantage of shared libraries.AӦ\m@@ib =AӦ\m5蓘) 5wK#3?0-AӦ =A~A page (in the context of operating systems)The virtual address space is divided into a number of these fixed-size units.AӦ =@@AӦ =  ӕ.) ]+  cӕ.) ]+q2N0-AӠmՁA~Four principal ways that causes processes to be created:

1. System initialization.
2. Execution of a process creation system call by a running process.
[...]
4. Initiation of a batch job.
Four principal ways that causes processes to be created:

1. System initialization.
2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.
AӠmՁ@@AӠmՁ @) qS   ) qSrƥ3?D|0-Aө2=qA~Benefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the available CPUs.
[...]
3. By giving each CPU its own ready list, contention for the ready lists is minimized.
Benefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the available CPUs.
2. Advantage is taken of cache affinity when possible.
3. By giving each CPU its own ready list, contention for the ready lists is minimized.
Aө2=q@@f) HfAө2=qReasons to use threads.

[...]
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.
Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.
AӠֺH@@AӠֺH $쓕P)      g쓕P)  2,0-AӠnBFA~UNIX process hierarchy.Each process has as its parent the process that it was forked from.

Init is the top process, which creates a process for each terminal. Each terminal creates a shell when someone logs in, and the shell may fork further processes.
AӠnBF@@AӠnBF ^}7Vu^/Nm'Fe AJݏAӪ1'W3I {K3IAӪj3Iq3IAӪm3I 3I"AӪ3I ֖I3I"AӪrU3I#;3IAӪrU3I#;3IAӪj'3I2G+3IAӪ 3IwQO3IzAӪ>3I$~3IAӪ)j3Is 3IAӪ49X3Iko+3IAӪ7O3Ic3I+AӪĜU3I,K3IIAӪyc3IJn3IiAӪLZ}3Ij%^f3IAӪ`B!3I/3ISJAӪ٤3IS83ItqAӪ^JS3It:8E3IAӪ7LP]3I'3IAӪݒL 3I_3I%AӪߎ%va3IƂ#3I)AӪ {3Ink3IAӪ5?q3IW3I' AӪvF3I'f3IDAӪ痮2C3IE3Vş3IbAӪ.V*S3Ic(Q3IiAӪ[3IiY.3I/AӪ"3IXi3IAӪDm3I- 3IMAӪ 9G¹3I#+3I ++#) G  J#) G"3N0-AӦWwI%A~Why might a local page replacement algorithm work badly?

[...]
2. If the working set shrinks, memory that could be allocated to other processes is wasted.
Why might a local page replacement algorithm work badly?

1. If the working set grows, thrashing will result, even if there are plenty of free page frames.
2. If the working set shrinks, memory that could be allocated to other processes is wasted.
AӦWwI%@@ib =AӦWwI%tion consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.AӦbV@@ib =AӦbV fP) AC !P) ACi3U0-AӧtnA~(Dis)advantages of linked list file allocation

1. No external fragmentation. Every disk block can be used, so the only space lost is to intern d 6`2\d.Xupt )AӪUm3IpOAӪUc# 3Is)Aө׹3?_wAөoDY3?)AөoK F3?EOAөoKǭ3?o)Aө+MQ3?pVAө+;Я3?O)Aө73?Aө7e3?A)AөbNk3?AөbN#3?])Aө{'R3?Aө{_ϟ3?)AөI^3?AөI^3? ')AөcՁJw3? AөcՁ'e3?)AөcՁ0Jw3? AөcՁ0D{3?)Aөi,3?Aөi푾S3?&)Aөi,3?Aөiޏ3?C)Aө􀼋DU3?Aө􀼋DmE3?[)Aө􀼋nU3?Aө􀼋n.]3?[)Aөr3?[Aөb3?_)Aөr3?[Aө0ʱ3?_)AөV׹3?_wAөVO3?)Aө5y3?rAө53?fL)Aө5y3?rAө5ʁ3?fj)AөR&C3?fAөR٤3?0)AөT;dR3?1AAөT;du3?HK)AөU;;3?HAөU;Oa3?[`)Aөe^".k3?[Aөe^M3?T single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.
Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.
AӤl!@@llJAӤl! ss֓) Kc  v֓) Kc 3×B0-AӦbVA~What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk dd 6`2\.X)Aө73?Aө7e3?A)AӪ>RRY3IpAӪ>RL!3Ip)AӪV`3IpqAӪVj3Ipd)AӪ1'Ko3IpAӪ1'Ŝ3Ip)AӪUm3IpOAӪUc# 3Is)AӪ ng3IsAӪ nkS]3Isr)AӪdžȴ'3IsAӪdžȴmr3Is)AӪ"ѡ93IsAӪ"_E3ItH)AӪM?}o3ItAӪM?};33It()AӪ23It)AӪ2g3ItFI)AӪ!Ks3ItFAӪ!~3IuK)AӪKKs3ItFAӪKb3IuK)AӪ^3IuLAӪ"3Iv)AӪ^3IuLAӪp/3Iv)AӪ~.[3Iv*AӪ~Pu3Iwh)AӪ$.[3Iv*AӪ$3Iwi)AӪF)3Iwi^AӪM3I)AӪd9X>ٿ3I_AӪd9X 3I1^)AӪ>v`y3I1AӪ>v03INP)AӪ_3INAӪ#3Idn)AӪ=/3IdAӪ=/O3I})AӪ聩I3I}zAӪ聩3I)AӪ@:ם3IHAӪ@Ŀk3I/W `Әڷ( +{   -3<ҥ-AӧT"Aӵ A background process that sleeps most of the time but is awakened periodically to inspect the state of the memory. It may choose to evict pages, and tries to ensure that all the free frames are clean. Might be implemented with a two-handed clock, with the front hand writing dirty pages to disk.A paging daemonAӧT"@@cwAӧT"CN) +f3&~Wҥ-AӨZA~Mark each page with a counter indicating when it was last used, then remove the oldest one when needed.LRU (page replacement algorithm)AӨZ@@f}U̻AӨZ :d 6`:2\.X a b)AӪ1'W3I AӪ1'{K3I)AӪo =%[3IO6AӪo =3Ip)AӪj3IqAӪː3I)AӪm3I AӪm3I")AӪ3I AӪ֖I3I")AӪrU3I#;AӪr3I)AӪrU3I#;AӪr3I)AӪj'3I2AӪjG+3I)AӪ 3IwAӪQO3Iz)AӪ>3IAӪ$~3I)AӪ)j3IsAӪ) 3I)AӪ49X3IkAӪ49Xo+3I)AӪ7O3IAӪ7c3I+)AӪĜU3I,KAӪĜ3II)AӪyc3IJAӪyn3Ii)AӪLZ}3Ij%AӪLZ^f3I)AӪ`B!3IAӪ`B/3ISJ)AӪ٤3ISAӪ83Itq)AӪ^JS3ItAӪ^:8E3I)AӪ7LP]3IAӪ7L'3I)AӪݒL 3I_AӪݒ3I%)AӪߎ%va3IƂAӪߎ۬#3I))AӪ {3IAӪ nk3I %*@Vl2H^t$:Pf|Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each pr@!3Z6@=.H4V@2q2]@4g3Ö@B. (@2Ƭ9@3?d@3&o@Q3' @}2@Mq3^@ʹ3?H@3Uo@[;3J@ 3J9@ 3IE=@ 2b@ r2@ 15?@ ?1J"@- 3IM@m3?B+@o-3'J-@ 2@@22.@3Ip@2K@3? '@2@k3?L@. G@b3JN@s2@=3'l@;2 @22#z:@3  >𹺰) #   s𹺰) #5Y30-Aӧ.{A~Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memo  Tɦ𨹃) ?5     . 10-ATy~AӬ쟮What does feature subset selection attempt to do?Eliminate redundant and irrelevant attributes (e.g. student ID numbers) from the data before it's processed.ATy~@@ʶuATy~!/) 3Q_.-0-AUj?PA~Hunt's algorithm when all the values in the set have identical attribute values except for the class label?Declare the node a leaf node with the same class label as the majority class of training records associated with the node.AUj?P@@AUj?P ;(5BO\iv,9FS`mz #0=JWdq~@aq3IɻA-!u$3Iʺ@( @bZ'$8T3&A[Hq?p3&+( @a#`olb'.HMAKS=.HNG)@a 3]  3W% js. گ Ə%3\ 53?h` p/3Iv Lj.D{ !3?f Yy3H pE3JW ;.H] > ʱA2B ʾ2rl 3?mL 3I• .ҩ b3IuK tS3?%0 ̑2" S2 I=2% ͞3;I 5? 2 !}2 .2 ֖I3I" ַ3& &. 'v d+2* E;.H6% X2m ٤3?0 ٩539^ N73&pf ڈ3? ڕ3I ھ5?| ݍ3D k37W} W hBWykL ( @X >WK+3CAf?f3FC ( @<;$c2AHs)[2 Q( @RZ_e]2jAm*Z]2+( @C;L% 3>AӻU3L% ?a3?%eA9s33b3?''Z( @oWu 1. )0A5 F7. *a-( @h&V3&,AIԴk*?3&΅Z( @-( @pmWz.A Y9o.?( @RRt.32EAȁe}I2;a( @aq3IɻA-!u$3Iʺ@4( }-( @U[N13 Al9x3 !3I AӪm3I"( !. .ATO.  !. TZAT3T. G!2|AӤlll2! !2Z[AӠo-`Bʾ2rlM!׹3?_wAөVO3?!S2"'AӤln7簯2D!3'3hAӨk=/=3'l6!/3ykAӧdIڈ3?'!^.>uAUe^.?jBr!p-HAR#O߱[;-^ D8^Bh.zBr!O-aARSwc- ?1J" !Jw3? AөcՁ0D{3?!|m3AӦw8r}!3!3?%1Aө5?iH73?%d!w2!AӤl1'5G2!!y3?rAө53?fL :!473NAӦWF+-93w !).HmAXE.Hp Nonuniform Memory Access multiprocessor
A multiprocessor where the memory access time depends on the memory location relative to a processor.AӨkwq@@f}U̻AӨkwq rr޳Ѐ) Yo  ޳Ѐ) Yo]2:0-AӠ?|A~When to make process scheduling decisions

[...]
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.
When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.
AӠ?|@@h[BAӠ?| 99󘝆%)   <󘝆%) #3xi0-AӦZT|IA~Advantages of a small page size

[...]
2. A smaller portion of a program can be loaded at a time, which saves memory if only a small part of the program is in use.
Advantages of a small page size

1. Reduces the amount of data wasted due to internal fragmentation.
2. A smaller portion of a program can be loaded at a time, which saves memory if only a small part of the program is in use.
AӦZT|I@@6.֒ AӦZT|I )0DXl  4H\p$8L`t/span>Disadvantages of decision tree induction

1. Finding an optimal decisA~.HbA~Qs.;(A~mI3A~?3'A~J2穥A~3'A~U3A~?3A~!3Z6A~=.H4VA~2q2]A~4g3ÖA~B. (A~2Ƭ9A~3?dA~3&oA~Q3' A~}2A~Mq3^A~ʹ3?HA~3UoA~[;3JA~ 3J9A~ 3IE=A~ 2bA~ r2A~ 15?A~ ?1J"A~- 3IMA~m3?B+A~o-3'J-A~ 2@A~22.A~3IpA~2KA~3? 'A~2A~k3?LA~. GA~b3JNA~s2 ..ӓ6) !     ?ӓ6) !e2!*0-AӤl!A~Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
[...]
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a ( )0DXl  4H\p$8L`tA~3?fjA~e-A~2ݯA~3IYA~93SA~3?fjA~e-A~2ݯA~3IYA~93SA~d2 A~e3I`A~38pyA~ 3\ MA~92טA~3It)A~s{3IaA~u.nlA~3 A~c3;A~3&o¿A~3?oA~2A~xk2ᔴA~93A~;m.E A~w3'#A~3>oA~%3J7XA~د3&sA~"3IvA~Ym3(A~s. s'A~w36A~+A2pA~Bk3NQA~3?d)A~3'A~E3ZA~2aA~82ЕA~m. iA~3IA~3}A~2amA~C2 ) !    . )00-AT\DAӮjnFeature extractionE.g. processing an image to extract high-level features such as certain edges from the raw pixels.AT\D@@BTAT\DֲӚD) Qh=O3Iʺ0-AӪ[rA~Dynamic schedulingModifying the priorities of different processes on the flyAӪ[r@@c|AӪ[r +e+쳕Ô) i7    [2gҥ-AӠ AӬ쟮A process that typically has long CPU bursts and infrequent I/O waits.The CPU-usage profile of a CPU-bound process.AӠ @@AӠ ރ) 11i. 0-ATRA~Four benefits of dimensionality reduction?Many algorithms work better with less attributes; the model may be easier to understand; the data may be easier to visualize; the algorithm runs faster and in less space.ATR@@ʶuATR n+nq) {  ٤3IS0-AӪAʻ$ZI/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
[...]
3. Buffering in kernel, followed by copying to user space. What tJⳗѣ) #3ia?2%ҥ-AӤm tA~In machine learning, creating new attributes that are composites of two or more attributes. Helps e.g. decision trees classifiers to correctly classify data into nonrectangular regions, but may introduce redundancy in the data.In machine learning, constructive inductionAӤm t@@llJAӤm t =5">Goals of I/O software

[...]
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.
Goals of I/O software

1. Device independence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.
AӪ@@c|AӪied over yet, the second buffer is used.
@>#zAʻ$ZAӺGܾ -@9h@c|AӪ5@.@Nd\Aʻ$Z ^}7Vu/Nm'F^e A{=ΦF^AӪjdZM3J"I3J`RAӪU43Iɻu$3Iʺ@AӪ@Q$3I$3I•AӪУ 3I–JS3I®lAӪEPQ3I; )3IɻAӪU 3IɻEg3Iʺ0AӪ[rh=O3Iʺ7Y3IDAӪ[rh=O3Iʺ#3ISAӪYx3I3IAӪt,F3Iʓ3IdAӪ?3Iхs{3IaAӪV S3Iڕ3IAӪ3393I{']3I,2AӪᝁ, 3I, 3IE=AӪcƨM:3IEe3I`AӪE5&[3IaU3It)AӪ.{^c3I3IAӪvcϤ3IF3IYAӪvc3IF3IYAӪd/x93J>wX3J8AӪ Ĝ7G3J眤3JGAӪZJO3J3JAӪE,3JXG3J3mAӪohs(y3J3b3JNAӪpȃ3J&|3J"CAӪjdM3J"3J`dAӪ<(ս3J`U@3JAӪmI3Jr%3J7XAӪ ?}3J77-3JPAӪM`B>3JQ'l3Jd@ QQ㯳) ]-    $鯳) ]-P93ҥ-AӦW`lA~Measure the number of page faults that a process has recently generated. Assign it more pages if it produces too many page faults, and assign it less pages if it produces very few page faults.The Page Fault Frequency (PFF) algorithmAӦW`l@@ib =AӦW`l d 6`2\d.X)AӪm3I AӪm3I")AӪU43IɻAӪU4u$3Iʺ@)AӪvF3I'fAӪvɰ3ID)AӪ痮2C3IE3AӪ痮Vş3Ib)AӪ.V*S3IcAӪ.V(Q3Ii)AӪ[3IiAӪY.3I/)AӪ"3IAӪ"Xi3I)AӪDm3IAӪD- 3IM)AӪ 9G¹3IAӪ 9#+3I)AӪs"P'3I,AӪs"ѕ3I$w)AӪ@Q$3I$AӪ@Q3I•)AӪУ 3I–JAӪУ׮S3I®l)AӪEPQ3I;AӪEPQ )3Iɻ)AӪU 3IɻAӪU Eg3Iʺ0)AӪ[rh=O3IʺAӪ[r7Y3ID)AӪ[rh=O3IʺAӪ[r#3IS)AӪYx3IAӪYx3I)AӪt,F3IʓAӪt3Id)AӪ?3IAӪs{3Ia)AӪV S3IAӪVڕ3I)AӪ3393I{AӪ33']3I,2)AӪᝁ, 3I,AӪᝁ 3IE=)AӪcƨM:3IEAӪcƨe3I`} OO4bLZ(Aӻ*\}3Ij%Aӻ*\^f3IL-(A_+t]3PA_+/]3Z(Aʶ5?.7Aʶ5?RU.ؖ-( AӰ΅nm3(oAӰ΅}X)AӠmj2yAӠmj2}*( AHCK3'DAHCy'33')AR`B){-;AR`B-6uH-)AӠmg+,G=2AӠmg+,m2{)AӠ~2 yO2AӠ~2I23X)AӠp&Rg0#27AӠp&R92ט)AӠ^?}ӽ2TAӠ^?}?2[)AT+G. 9VAT+. A@V)AX`>.H4AX`E;.H6%)AU/0.!{AU/"%.#3S)Aӏ9XM1IAӏ9Xy1Jw)AӤlr>\2E8AӤlr 2bn)AӠ9p2/AӠ9u2a\)AӠHĜC2f_AӠHĜ!2gs}\)AӤlr>\2E8AӤlr 2b)AӠmj2yAӠmj2)AӤnĴZ2BPAӤnĴZʱA2B A|N b4Hvv{)AӠHĜC2f_AӠHĜ!2gs} A)AөcV3?HeAөck3?L)AӤkd2 AӤk2q3EAӦW65iI3L)AӦ-p"U3AӦ-p9;3, )AӦ\7¹+3^AӦ\7¹C3`R )AӧTjA3AӧTjT{3qA)AӧF+c8/3AӧF+d3 A)AӨlHN 3'"AӨlH #3'H 6)AӨZqa7L3&AӨZqa7Lp3&+ )AөcV3?HeAөck3?L ')Aөe".k3?[Aөe'3?T G)AөEy=3?\AөE3?D ,)AӪ5?q3IAӪ5?W3I' *)AӪEx3I/AӪE3IN @)AӪE5&[3IaUAӪE3It) 2)AT9Qx. RAT9'S. \ )AӪvy63JtAӪvyY3Jʓj   *dz) %u  ldz) %u"U30-AӦ-pA~Page tables for large memories

1. Multilevel page tables.
[...]
Page tables for large memories

1. Multilevel page tables.
2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.)
AӦ-p@@`y7AӦ-p ) ]o  E) ]o'30-AӦMA~Types of memory abstraction

[...]
2. Address spaces. Employ base and limit registers plus swapping.
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.
Types of memory abstraction

1. No memory abstraction. Multiprogramming via saving the whole contents of memory to disk, or via e.g. protection keys and static relocation.
2. Address spaces. Employ base and limit registers plus swapping.
3. Virtual memory. Break programs into pages, move pages not currently in use to the disk.
AӦM@?T&}AӦM $00DXl  4H\p$8L`teW!.OX.eg2@J2穥f3-g<#-f3&~Wp?3&3;f3&~W23&3Ng2!p52!g0#2792טgD!3\4g3Öh=O3Iʺ#3ISh=O3Iʺ7Y3IDh2`T2i33ia?2%[2(ia?2%8C2(i3U2'3{Pj92fބ2j92fT2j_.?T.jA5?|:[5?j3Is 3Ij3Iq3IkR3%3k 3V]3k37F-Fu37l/M.0QK.1l\2 m_2)l72c2 l. iҁ. l/Mmg3ChQ%3C(m!3'w3'#m!3'Q3' m3I- 3IMm2@r2Ym3IpOc# 3Isnm3(o?M3RGo3]43|Xntentional content of X can become globally available for the selective control of action.
Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.
Aʸa=q@@Aʸa=q Փ ) /  ?=3&o;ҥ-AӨY?AӬ쟮A copy process that starts at one or more specified directories and recursively dumps all files and directories found there that have changed since some given base date.Logical (copy/backup) dumpAӨY?@@3J"AӨY?\Ӛϐ) _JS3It0-AӪ^A~I/O buffering alternatives

1. Unbuffered input. User process has to be started up for every incoming character.
2. Buffering in user space. What if the buffer i5">Reasons to use threads.

1. An application may want to do many things at once.
[...]
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.
Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.
AӠMental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.
@ ݿkD4A:K@[%faq@Aʻl@"1&@"1&A:K k볩) 9}:볩) 9}jA5?|0-Aʸa=qA~[...]
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The i F@ (5BO\iv,9FS`mz #0=JWdq~ ԯ 9 :쳕Ô &P )֓ +Әڷ .𹺰 /𨹃 3ՓV 4޳Ѐ 5󘝆% 7ӓ6 9 :쳕Ô ;q ?鯳 Cdz D GՓ Ib K볩 NO UӘ WI YϠ! Z܂ [賳[ ^u _˳ `֎ aY b eҋ򠪓 hӘͽ j򡢌~ l˫󘌈B n󓚧0 o󳘝 pӕ q rȻ s󍍕z t󚪶m u? wӕ x֗Τ yݣ8 z󍍕 {1 }󕾂 ӕ3  פ& ׆ ䷲ߵ ڱ ɠӘ( 󗤝ݝ 󕫌 §ؖ + 󘜦M ә A 󕬿 󕗖 ;(5BO\iv,9FS`mz #0=JWdq~ e3I` 38py  3\ M 92ט 3It) s{3Ia u.nl 3  e3I` 38py  3\ M 92ט 3It) s{3Ia u.nl 3  c3; 3&o¿ 3?o 2 xk2ᔴ 93 ;m.E w3'# 3>o %3J7X د3&s "3Iv Ym3( s. s' w36 +A2p Bk3NQ 3?d) 3' E3Z 2a 82Е m. i 3I 3} 2am C2 . lC Y3N.  I3Rl 3Id Y2g| S5? 3I$w %3' W2 j3 %3¡t ']3I,2 L3x `-2 }[2! 3 d~ O3I} ]2 mE3?[ 33?:Ø 3| 3? й3d 3IN `O) !s  MQ3?pV0-Aө+Aӯ"uMotivations for virtual machinesMotivations for virtual machines

[...]
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Q`ڳ) K7ǩ20-AӠTemperatures in Kelvin, counts, monetary quantities, age, mass, length.Examples of ratio attributesAӤk{d@@:AӤk{d Ppage and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.
What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.
AӦb{@@6.֒ AӦb{grams the DMA controller via special registers.
[...]
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.
DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.
AӪ n@@c|AӪ n  pp=f 3( AӼ1 O3x`AӼ1 3)'( AӼA &Tg0#27AӼA &T92ט( AӾʏ ,Z2NAӾʏ , r2)AӾ4#_.H=2AӾ4d.H=7( Aӿf3-Aӿg<#-)AӼċgC53?tAӼċg]3?)AӽTuw3It)AӽTuwg3ItFI( Aӽa?.H^fAӽat.HdAӿf3-Aӿg<#-{Ajj_.?AjT.RA9C\ 9U2A9C\S[2)ASVE2UjAR5'2( Aȁe32EAȁe}I2( A2\23 3RA2\tA3Bv( A'15?Ami+5?z\)AE!8EG2AE!ZDk2/( Aྲ1!tE5?Aྲ1!nT5?( A'ӆH5?1A'ӆHr#5?( Ą*|3?DEĄ*|m+ 3?H)AM5?AM\]5?0( AY$p^ 2AY$pqX2)A?`2j92fA?`2T2( AύC,52 MAύCq2 ֈ5">What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
[...]
5. Record information about the page table and swap area in the process table.
What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.
AӦae@@ 4. The operating system checks whether the virtual address is valid and the protection cs that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.
AӠ"@@uAӠ" Ә)  c UӘ)  c93¡0-AӦb{A~What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
[...]
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed Ots running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.
Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications that block often.
4. If a thread starts running, no other thread will ever run unless the first thread voluntarily gives up the CPU. (Using clock interrupts for this is messy and has its own disadvantages.)
5. Threads cannot take advantage of multiple processors.
@-AӱOiDAӯ1@u@uAӠS@0@\AӱOiD auaqI) ;  ,52 M0-AӤkaAӯo|9XExamples of nominal attributesZip codes, employee numbers, eye color, gender.AӤka@@8m9AӤkaxʓ) r2N0-AӠ"A~Disadvantages of implementing threads in user space:

[...]
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in application Tstyle="font-weight:600; color:#0000ff;">[...]
Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.
Aʸt9@@Aʸt9 77!) 9   >Ϡ!) 92a0-AӠꭑhA~Systems relevant for whether to use (non)preemptive scheduling algorithms.

[...]
2. Interactive, uses preemptive algorithms.
3. Real time, may use nonpreemptive algorithms.
Systems relevant for whether to use (non)preemptive scheduling algorithms.

1. Batch, may use nonpreemptive algorithms.
2. Interactive, uses preemptive algorithms.
3. Real time, may use nonpreemptive algorithms.
AӠꭑh@@%0FAӠꭑh $)   g܂)  3[3T.ҥ-Aӧ4A~A file system that, upon e.g. file deletion, first notes in a log which operations are to be performed. After each operation is performed, its entry is erased from the log. If the system crashes partway, the system may look up the log and then perform the remaining operations.Journaling file systemAӧ4@@314Aӧ4 zHz3[) 9   ӽ2T0-AӠ^?}AʷhsIn the context of computing, a limit register.When a process is run, this register is loaded with the length of the program. Memory references made by the program are checked against this register: references made outside the program's address space are rejected.AӠ^?}@@AӠ^?}-㓩) GUc5?0-AʹkSA~How is subjective experience like a computer monitor?On a computer monitor, the picture is constantly being redrawn, but it looks like a frozen image. The contents of our mind are constantly being recomputed, but they appear to us as stable.AʹkS@@[%faqAʹkS $Fh4Vxh4Vx!\5?AʸcvɔS5?!]2:AӠ?|62!]2jAӠ׾wC2!]2jAӠ׾]2+!_uI3?`rAөɨ3?a!`y3I1AӪ>v03INP!a(+.RgAU _O\)%.B!af22AӤm|22.!a3?i1Aө|/3?l!a2AӠ\2!b=%3JWjAӪ{Si3Jtn!b2`AӠ'M'u2v!g2!AӤlp52!!f3-ARBg<#-!c|2eAӠÙ82Е!d2 AӤk2. l0-ATiA~CovarianceATi@@K1ATi|ӘG) kOnm3(o0-AӦaeA~What you subjectively perceive as an integrated object is being constituted by a neural process, [...].What you subjectively perceive as an integrated object is being constituted by a neural process, which constructs a stable, coherent content and thereby deletes its own temporality.Aʹ6@@Aʹ6 &9&{ ) 5    Ko. Cp0-ATb AӬ쟮How to transform values to the range [0, 1]?s' = (s - min_s)/(max_s - min_s)ATb @@BSATb <юȎ) 3u.H 0-AX}`BA~Why do we feel bad more strongly than good?For a fish in the sea, missing a cue for food has a low cost, but missing a cue for a predator has a high cost. The organisms reacting more strongly to bad things than good things have been the ones that survived.AX}`B@@(LGAX}`B kkY) /'    Y) /'c.H=0-AX33A~How does reciprocity build relationships?A relationship is built by a set of back-and-forth trades, with one person offering gifts, favors, attention or self-disclosure, and the other reciprocating in kind.AX33@@~>NAX33 3) kS ~) kSğ3?CJ0-AөȴA~Benefits of (multiprocessor) two-level scheduling

[...]
2. Advantage is taken of cache affinity when possible.
3. By giving each CPU its own ready list, contention for the ready lists is minimized.
Benefits of (multiprocessor) two-level scheduling

1. Distributes the load evenly across the available CPUs.
2. Advantage is taken of cache affinity when possible.
3. By giving each CPU its own ready list, contention for the ready lists is minimized.
Aөȴ@@f) HfAөȴ ;(5BO\iv,9FS`mz #0=JWdq~ ;2 ;Я3?O =Q2 >2 I ?=2! ?p3V+ ?5? ?2[ 9{3 9;3, 93 :8E3I :J3&pg :/3 b :[5? ;2n ;2 ;Я3?O =Q2 >2 I ?=2! ?p3V+ ?5? ?2[ ?M3RG @. pu @[5? ADu.H$ AXq. I A.H?Y Ao3?D C9U3 - CHY.H C 3&r DWU.HQ ~ D{3? E-_3B Eg3Iʺ0 E3N Eڥ2 F3' G 3^Ȼ G1Jz G3J3m H+. ) H.Hm? IM2{ IX2$ Iu.(X8 JI1J J2k1 J2w Km2a3 L!3Ip L3'3 MB3 M3I Mo3& NM3?i10 N2 OX. O. / O3? P31 Q%3C( QO3Iz Q2ݝpan>
7. Fair-share scheduling (each user is allocated a share of the CPU).Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
6. Lottery scheduling (give processes a varying amount of lottery tickets).
7. Fair-share scheduling (each user is allocated a share of the CPU).
AӠ@@h[BAӠ e򠪓) S     7.HZ&0-AX9AӬ쟮What happens when people lose the ability to feel emotions?They become paralyzed. They examine the pros and cons of each decision, but in the absence of feeling see little reason to pick one over the other.AX9@@rAX9ΪӘ-) 5uI3 0-AӦ;$A~The structure of a generic page ta )0DXl  4H\p$8L`trived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting iA~;2 A~22#z:A~3 A~ -a|A~"%.#3SA~H'.HT+A~h3ZHA~k2"A~5?2A~u.S~A~5.H=2A~3J`dA~.LA~ɑ2$@A~=.HNA~93A~ m3?/A~ 3IA~H93]6A~K3`A~3|A~@?3?LDA~Q3&m@A~[2(A~3'*gA~/2&A~F3&`}PA~3?DA~2A~*3 P7A~7. fA~p3&+A~I23A~. A~!!5?RA~" 3*A~"=3WA~"N27A~"Y.?A~#Y3 )A~#3Idn %*@Vl2H^t$:Pf|elected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer ha@"%.#3S@H'.HT+@h3ZH@k2"@5?2@u.S~@5.H=2@3J`d@.L@ɑ2$@@=.HN@93@ m3?/@ 3I@H93]6@K3`@3|@@?3?LD@Q3&m@@[2(@3'*g@/2&@F3&`}P@3?D@2@*3 P7@7. f@p3&+@I23@. @!!5?R@" 3*@"=3W@"N27@"Y.?@#Y3 )@#3Idn ddӘͽ) 9 Әͽ) 9UV3ô0-AӦb$A~What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the dis: -||0DXl  4H\p$8L`t2W~2U3I#;3I=3IW%33\37Ə%3\c3IJn3IiO-ac-3.@;3~#K#3?3 K#3?1#A3 ʥ2"7s2ʥ2"0!/23IXi3I"2*9s<2U܋3?'(PR`3?./FG3?DW 3?D 3۞{3CI.H$qw.H,&ai.k.*t3?g+i3?hrt3?g+53?h`c2)[2F3?L1:@?3?LD>13 " 3*>13 Sߛ3cG3Jdz3Jx%3I3I 3i1 3H3?e3?A>=.HR.H+|2"N27ї3 AU3 d~3?%1iH73?%d.[3Iv*3Iwi.[3Iv*Pu3Iwh5?|5?|C2f_!2gs}2W2A2_sEO2"?a3?%eOQ3?''?a3?%eb3?''3- Yy3H_.-4͓.0/3J 3J9S2How does self-serving bias make us resentful of others in our team?
We overestimate the size of our share of work. (When husbands and wives estimate the percentage of housework each does, their estimates total over 120 percent; when MBA students estimate their contributions to the team, their estimates total 139 percent.)AX"@@rAX"т塓r) o3&,0-AӨZ/A~A write-through cacheA cache in which all modified blocks are written to the disk immediately.AӨZ/@@3J"AӨZ/ 6Xz$Fh4Vx!!z(m.AU ]-Yc.!x93J>wAӪd/X3J8!tE5?Aʸt9nT5?!q2NAӠmՁ12-.!q3IAӪ5?W3I' !r5?KAʹ-G+a5?g!r3?[Aөb3?_!r3?[Aө0ʱ3?_!rƥ3?D|Aө2=q1g3?D!rC3&AӦv2~93!rC3&AӦv2$3!r2NAӠ"=Q2!t"3YAӦ[0AE3Z!t"3YAӦ[0AK3Z !t>. lATi@. pu!t.HAX.H !v2 AӤkjA2am!v2 AӤkjA2a!wu2 vAӠ{,IX2$!w83'*AӨk7L3'!w83'*AӨk7vi3'!xG.>A\`AS!.!x93J>wAӪd/X3J8!x3I/AӪE3IN!y=3?\AөE3?D!z(m.AU ]-Yc.!zx3 nAӦJQWK3 !{.9AU}Kgu.nN mm󘌈B( 3u   3ҥ-AӦAӵ*A page not currently mapped to a page frame in physical memory is referenced, causing a little-used page frame to be written to disk and the referenced data to be read in.A page faultAӦ@@`y7AӦ飂 ) M Jw3? ҥ-AөcՁ0A~An instruction that may only be executed in kernel mode.A sensitive instructionAөcՁ0@@2x3AөcՁ0 %*@Vl2H^t$:Pf|@.!@2Y@Oa3?[`@g3'@n.#m{@.!@2Y@Oa3?[`@g3'@n.#m{@i3'@c-@p?3&3;@3IY@39^@. *@2Ь@S3?&@ 3I1^@G2$Y@~3IuK@-6u@. ϯ@¤3?C@ #3'H@ÈI3 @G37o@2@3Iwi@)k3A@f2K@ģ3V+@Ŀk3I/W@j37m@ő3&{@Ŝ3Ip@ūo2 @3]@ 3W%@js. گ@Ə%3\@53?h` ;󓚧0( A    ~󓚧0( A3Iɻ0-AӪU A~Static schedulingAssigning each process a fixed priority in advanceAӪU @@AӪU Y󳘝) -G   󳘝) -GZ3N;0-AӦ[A~The formula for the overhead per process due to the page table size and the internal fragmentation loss.Let average process size be s bytes and the page size p bytes. Assume that each page table entry requires e bytes. Now the overhead per process is

$se/p + p/2$

With a bit of math, the optimum page size becomes

$p = \sqrt{2se}$
AӦ[@@@p+AӦ[ **ӕ) -+  Kӕ) -+,K20-AӠmRA~Four principal ways that causes processes to be created:

1. System initialization.
[...]
3. A user request to initiate a new process.
4. Initiation of a batch job.
Four principal ways that causes processes to be created:

1. System initialization.
2. Execution of a process creation system call by a running process.
3. A user request to initiate a new process.
4. Initiation of a batch job.
AӠmR@@AӠmR B) 5  ) 5R3'mT0-AӨk_+A~Three key characteristics of [...]

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.
Three key characteristics of NUMA multiprocessors

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.
AӨk_+@@f}U̻AӨk_+ Ȼ)      rȻ)  13\ ҥ-AӦ\A~Code that only uses relative offsets for jump instructions (as opposed to absolute addresses). Useful with e.g. programs taking advantage of shared libraries.Position-indepedent codeAӦ\@@ib =AӦ\ <<󍍕z) Ki   9󍍕z) Ki01Jx&0-Aӏn5?A~Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
[...]
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z
Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z
Aӏn5?@@ne:RAӏn5? OO󚪶m) AM  &󚪶m) AM,3JX0-AӪEA~The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
[...]
The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
4. Hardware
AӪE@@c|AӪE ?) WM     6U.Hky0-AX~z JAӬ쟮What are some external conditions that affect your happiness?Noise, commuting, lack of control, shame, relationships.AX~z J@@~>NAX~z J5ӭ) ;q. (0-ATP9A~Three different approaches to feature creation?Feature extraction, mapping the data to a new space, feature construction.ATP9@@먺ATP9 ;(5BO\iv,9FS`mz #0=JWdq~ . 9 U38# u2s K93 2  /3&r )3T. Y3Jʓj m2̓ o3?t 5?| ;3~# FK.HMP z3Jx% 3I 43?d V]3 z3l 3I I3&s. 3&` I3L 5G2! 37 {2Z ҁ. l/M ;2ʮQ  2j 3 S #3?] .Hb Qs.;( mI3 ?3' J2穥 3' U3 ?3 !3Z6 =.H4V 2q2] 4g3Ö B. ( 2Ƭ9 3?d 3&o Q3' }2 Mq3^ ʹ3?H 3Uo [;3J  3J9  3IE=  2b  r2  15?  ?1J" - 3IM rrӕ) 9  ӕ) 9p2^0-AӠn VA~Typical ways for a process to terminate.

1. Normal exit (voluntary).
[...]
3. Fatal error (involuntary).
4. Killed by another process (involuntary).
Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary).
AӠn V@@AӠn V Τ) /o    n֗Τ) /owu2 v0-AӠ{,A~When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
[...]
5. When a clock interrupt occurs.
When to make process scheduling decisions

1. When a new process is created (run the parent process or the child process?).
2. When a process exits.
3. When a process blocks.
4. When an I/O interrupt occurs (run a newly ready process, the process that was running, or other?).
5. When a clock interrupt occurs.
AӠ{,@@h[BAӠ{, W8) #O    ݣ8) #O9.#m0-AUA~Hunt's algorithm for decision trees1: If all the records in set Dt belong to the same class Yt, then t is a leaf node labeled Yt.
2: Otherwise, select a test condition to split the record sets into smaller subsets. Create a child node for each outcome and distribute the records in Dt between the nodes. Apply the algorithm to the child nodes.
AU@@XAU II󍍕) 9a     ,󍍕) 9a1J0-Aӏ~VA~Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
[...]
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z
Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z
Aӏ~V@@Cm4Aӏ~V BB1)    z31) z_2Q0-AӠ-A~Scheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of the CPU.
[...]
3. Balance, keeping all parts of the system busy.
Scheduling algorithm goals for all systems

1. Fairness, giving each process a fair share of the CPU.
2. Policy enforcement, seeing that stated policy is carried out.
3. Balance, keeping all parts of the system busy.
AӠ-@@ffffffAӠ- 5">Memory management algorithms for finding an n-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
[...]
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.
Memory management algorithms for finding an n-sized hole from a list q󕾂)    ,󕾂) K2Q0-AӠA~Scheduling algorithms used in interactive systems

1. Round-robin scheduling (every process is assigned a time interval, a quantum, during which it is allowed to run).
2. Priority scheduling (each process is assigned a priority, possibly with different priority classes).
3. Multiple queues (e.g. the first queue gives 1, the next 2, then 4, 8, 16... quanta).
4. Shortest process first (process run time estimated by e.g. historical data).
5. Guaranteed scheduling (e.g. if there are n processes, each is guaranateed 1/n of the CPU cycles).
[...]@ 2,@/w.Z@03?m@ݒ;-H~@3]@3\@ބ2@ފK3 m@C3`R@/. ,Th@3YX@53?i1@QK.1@d3@%3@J3Bg@➛38@х36@bw2@3@|2摜 xxӕ3) !  }ӕ3) !p2/ҥ-AӠcA~A scheduling algorithm that will let a process run for some maximum amount of time before switching to another process. Uses clock interrupts for this purpose.A preemptive scheduling algorithm.AӠc@@AӠc LL儓) i+  )) i+RY3Ip0-AӪ>RA~I/O communication techniques

1. Programmed IO. CPU continuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
[...]
I/O communication techniques

1. Programmed IO. CPU continuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.
AӪ>R@@0Ik[AӪ>R of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.
AӦG@@AӦGAӶ]OҬ@3J"@f}U̻AӨ(@2ě@_AڤS'z7 פ&( }  פ&( }3ҥ-AӦ-PAA~When a program is loaded at address 16,384, the constant 16,384 is added to each program address during the load process. Slow, and requires knowing which words contain relocatable addresses and which do not.Static relocationAӦ-PA@@AӦ-PAd󚦊) {F)3Iwi^0-AӪA~Memory management algorithms for finding an n-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
[...]
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.
Memory management algorithms for finding an n-sized hole from a list )0DXl  4H\p$8L`tn the list of segments until a large enough hole is found.
2. Next fit. LA~A.H?YA~Ao3?DA~C9U3 -A~CHY.HA~Cb3ͽA~C 3&rA~DWU.HQ ~A~D{3?A~E-_3BA~Eg3Iʺ0A~E3NA~Eڥ2A~F3'A~G 3^ȻA~G1JzA~G3J3mA~H+. )A~H.Hm?A~IM2{A~IX2$A~Iu.(X8A~JI1JA~J2k1A~J2wA~Km2a3A~L!3IpA~L3'3A~MB3A~M3IA~Mo3&A~NM3?i10A~N2A~OX.A~O. /A~O3?A~P31A~Q%3C(A~QO3IzA~Q2ݝA~R5'2A~RU.ؖ )0DXl  4H\p$8L`tpan>
2. Uniform naming. The name of a file or device should be a string oA~1g3?DA~1a2PA~2x+3#A~2'3{PA~23ôA~23&3NA~3=37A~3S3A~4͓.0/A~55. A~63'*VA~62A~63Ch%A~7B2!6A~7Y3IDA~7. *aA~7. SA~8'c2A~8C2(A~83ItqA~9{3A~9;3,A~93A~:8E3IA~:J3&pg A~:/3 bA~:[5?A~;2nA~;2A~;Я3?OA~<3A~=Q2A~>2 IA~?=2!A~?p3V+A~?5? A~?2[A~?M3RGA~@. puA~@[5?A~ADu.H$etry.
[...]
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.
Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.
AӪ@@0IkWAӪ % address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is backed up to the state it had when it began and the program counter is reset to point to that instruction.
[...]
11. The routine reloads the registers and other state information and returns to user space to continue execution.
What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protec @@׆) A  Z2N0-AӠmHAӬ쟮The contents of a process on the operating system.An instance of an executing program, including the current values of the program counter, registers and variables. Thus, has its own virtual CPU.AӠmH@@AӠmHÂ+әұ0) ƻY3?hҥ-Aө@A~A client computer packing the parameters of a remote procedure call into a message.Marshalling (multicomputers)Aө@@@£EAө@ 5ߵ) ;    . ,T0-ATyAʶ0Two approaches to binarization and their issuesa) transform integers to binary numbers b) encode each class with a binary "belongs to this class" variable. a is more efficient, but creates faux correlations and doesn't create asymmetric binary attributes.ATy@@K1ATy5֐) eW!.ҥ-A\ MA~Primary process A activates, then the more sluggish opponent process B activates to counter A.The opponent-process theoryA\ M@@̫.iA\ M ڱ) Y    N3뤓0-AӦFAӬ쟮The address space of a process.The set of addresses that a process can use to address memory.AӦF@@[v AӦFςO齳( c׹3?_w0-AөVA~Type 2 hypervisorA virtual machine that analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.AөV@@2x3AөV rrӘ() -  ɠӘ() -mg3Ch0-AӦZVA~Advantages of a small page size

1. Reduces the amount of data wasted due to internal fragmentation.
[...]
Advantages of a small page size

1. Reduces the amount of data wasted due to internal fragmentation.
2. A smaller portion of a program can be loaded at a time, which saves memory if only a small part of the program is in use.
AӦZV@@ib =AӦZV +0DXl  4H\p$8L`t|m3}!3M1Iy1Jw?.H^ft.HdE.HӢ.Hb3J&|3J"CO3Ic3I+3 #Y3 )2"!22#z:g3IskS]3Isr3s33It)g3ItFI93¡<3J_3?m[3?oJ_3?mK3?o|m3}3 3×B23ôfC.H%+.H{3Ink3I!3I/3ISJ- 2G22Ch2W}M. fQm. i. (H+. )3?LS3?L0 7.HZ&CHY.H 9U2`-2 9U2S[2 i. a7. f 3I–JS3I®l [3&~=P.c3&~W4 3?"tS3?%0 b3xK93 a2+A2p yO2I23 37^H93]6 F3?EO3?ok1J$ ?1J"W.HWG;.H] >I3I}z3Ig33?aQE3?d3&r9+3&rr2(O'U22q 3&sAHT 3&~<sure has little effect on the performance of decision tree induction algorithms.
Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
4. Decision tree algorithms are quite robust to the presence of noise.
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity measure has little effect on the performance of decision tree induction algorithms.
AӤlut@@llJAӤlut yy󗤝ݝ) G      X2a0-AӤkrACExamples of interval attributesCalendar dates, temperatures in Celsius or FahrenheitAӤkr@@8m9AӤkrY󚦯z) 7= 3Iw0-AӪA~Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geom resources between them.
Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.
AӠ`|(@@}ބ8ZAӠ`|( 󕫌) '  ;󕫌) 'SVE2Uj0-AӠnA~Skeleton of what the lowest level of the operating system does when an interrupt occurs.

[...]
2. Hardware loads new program counter from interrupt ve )0DXl  4H\p$8L`tA~#+3IA~$~3IA~$2%A~$u-A~%+.HA~#+3IA~$~3IA~$2%A~$u-A~%+.HA~%M. ڐA~+'3A~+a5?gA~-.Hx{A~-/2A~-93wA~-Fu37A~.]3?[A~.;3A~.?3A~/]3SA~/g2 A~0!/2A~03INPA~0ʱ3?_A~0.HKA~1#A3 A~1+3^ț MMޱ§ؖ) +g   (§ؖ) +g.70-AUjVA~Computing the mean on multivariate dataFor each attibute, calculate the mean, then return

\begin{displaymath}\bar{x} = (\bar{x_1},...,\bar{x_n})\end{displaymath}

where $\bar{x_i}$ is the mean of the $i^{th}$ attribute $x_i$.
AUjV@@Q%\ZAUjV (0DXl  4H\p$8L`t
A~A.H?YA~Ao3?DA~C9U3 -A~CHY.HA~Cb3ͽA~C 3&rA~R.H+A~SI2A~SR/3NMA~S[2A~S3?L0A~Sߛ3A~T{3qAA~T.A~T2A~T2A~T 3&~<A~TA3:B/A~U@3JA~Vş3IbA~V3MA~W 3RA~WK3 A~W3I' A~Xi3IA~X3J8A~X}2A~X.HA~Y.3I/A~Y9o.?A~Yc.A~ZDk2/A~Z%3A~[3&mQA~\]5?0A~]k2>A~]3?A~^J.HkqA~^f3IA~_E3ItHA~_ϟ3?A~`S3vA~`|A2A~`‹-}A~a3?.A~b3?'' BB!+) 5q     >=.H0-AXGAӬ쟮Why is it hard not to think about something?"Don't think about polar bears" creates a system to monitor whether we're thinking about polar bears in order to judge our success. But this monitoring by itself reminds us of the polar bears.AXG@@~>NAXGnә/)  ܋3?'(P0-Aө^5A~Multiprocessor operating system types

[...]
M. ڐ +'3 +a5?g -.Hx{ -/2 -93w -Fu37 .]3?[ .;3 .?3 /]3S /g2 0!/2 03INP 0ʱ3?_ 0.HK 1#A3  1+3^ț 12-. 1g3?D 1a2P 2x+3# 2'3{P 23ô 23&3N 3=37 3S3 4͓.0/ 55.  63'*V 62 63Ch% 7B2!6 7Y3ID 7. *a 7. S 8'c2 8C2( 83Itq 9{3 9;3, 93 󘜦M) E;    J3ҥ-AӦW@]?Aʻ:mA process causing page faults every few instructionsThrashing (in the context of operating systems)AӦW@]?@@s^AӦW@]?Ҽӗ) 5`230-AӤk^vA~Allowed transformations for ratio attributesnew_value = a * old_valueAӤk^v@@:AӤk^v %*@Vl2H^t$:Pf|@#+3I@$~3I@$2%@$u-@%+.H@#+3I@$~3I@$2%@$u-@%+.H@%M. ڐ@+'3@+a5?g@-.Hx{@-/2@-93w@-Fu37@.]3?[@.;3@.?3@/]3S@/g2 @0!/2@03INP 55) 7   @) 7  9U20-AӠ2|A~In the context of computing, a base register.When a process is run, this register is loaded with the physical address where the program begins in memory. Whenever the program references a memory location, the content of this register is added to the reference.AӠ2|@@h[BAӠ2| NNә)    'ә)  3?L0-AөemA~Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
[...]
3. All gang members start and end their time slices together.
Gang scheduling

1. Groups of related threads are scheduled as a unit, a gang.
2. All members of a gang run simultaneously, on different timeshared CPUs.
3. All gang members start and end their time slices together.
Aөem@@f) HfAөem %*@Vl2H^t$:Pf|@0.HK@1#A3 @1+3^ț@12-.@1g3?D@0.HK@1#A3 @1+3^ț@12-.@1g3?D@1a2P@2x+3#@2'3{P@23ô@23&3N@3=37@3S3@4͓.0/@55. @63'*V@62@63Ch%@7B2!6@7Y3ID@7. *a@7. S@8'c2@8C2(@83Itq@9{3@9;3,@93@:8E3I@:J3&pg @:/3 b@:[5?@;2n@;2@;Я3?O@<3@=Q2@>2 I ttA( q  A3ҥ-AӧTjAӻ>;A block on a partition, with key parameters about the partition such as the file system type, the number of blocks on the file system, and so on.SuperblockAӧTj@@fdgAӧTj ( >13 0-AӧSe`BA~Sequential accessReading starts at the beginning, and cannot skip around or read things out of order.AӧSe`B@@fdgAӧSe`B 󕬿( =}   j92fҥ-AӠt֨At+A thread that is created to e.g. handle a new incoming message, instead of letting an existing thread handle it.A pop-up thread.AӠt֨@@h[BAӠt֨t) %j_.?0-AUAA~Parallel coordinatesAUA@@~Q))AUA[...]
RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.
AӪ痮@@c|AӪ痮 ss󕗖) 5  z󕗖) 5h2`0-AӠ`|(A~Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
[...]
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating ;(5BO\iv,9FS`mz #0=JWdq~ o-3'J-  2@ 22. 3Ip 2K 3? ' 2 k3?L o-3'J-  2@ 22. 3Ip 2K 3? ' 2 k3?L . G b3JN s2 =3'l ;2 22#z: 3   -a| "%.#3S H'.HT+ h3ZH k2" 5?2 u.S~ 5.H=2 3J`d .L ɑ2$@ =.HN 93  m3?/  3I H93]6 K3` 3| @?3?LD Q3&m@ [2( 3'*g /2& F3&`}P 3?D 2 *3 P7 7. f p3&+ I23 .  !!5?R " 3* "=3W "N27 "Y.? #Y3 ) #3Idn #[3# #+3I $~3I $2% $u- %+.H  ) /Y c) /Y 3&sAH0-AӨYA~Checks made by the fsck file system checker

[...]
2. Check that if a file appears in n directories, then it has a link count of n.
Checks made by the fsck file system checker

1. Check that each disk block is either assigned to the free pool once, or to a file once.
2. Check that if a file appears in n directories, then it has a link count of n.
AӨY@@f}U̻AӨY $$)    pД) ս3J`0-AӪ<(A~The working set of a processThe set of pages that a process is currently using (has used in the last k page references)AӦ(@@AӦ( ;(5BO\iv,9FS`mz #0=JWdq~ Real-time %.B %5?U %33\ &e2# &|3J"C &}.4E '#3?l 'e3? :J3&pg :/3 b :[5? ;2n ;2 ;Я3?O <3 =Q2 >2 I ?=2! ?p3V+ ?5? ?2[ ?M3RG @. pu @[5? ADu.H$ AXq. I A.H?Y Ao3?D C9U3 - CHY.H Cb3ͽ C 3&r DWU.HQ ~ D{3? E-_3B Eg3Iʺ0 E3N Eڥ2 F3' G 3^Ȼ G1Jz G3J3m H+. ) H.Hm? IM2{ IX2$ Iu.(X8 JI1J J2k1 J2w Km2a3 L!3Ip L3'3 MB3 M3I Mo3& NM3?i10 N2 OX. O. / O3? P31 Q%3C( QO3Iz Q2ݝ R5'2 RU.ؖ5">Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
[...]
Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.
AӠg@@333333AӠgiG@/n@FfAӴ4 OO) e  ) e2C3IE30-AӪ痮A~RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
a󘌃M) AG  #󘌃M) AG@3 }0-AӦFA~A page frame (in the context of operating systems)A unit in physical memory that corresponds to a page.AӦF@@AӦF Ә)    qȘӘ) Z3Qy[0-Aӧÿz\A~A drawback of hard linking. C creates a file, B links to it, C deletes the file. [...] If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.A drawback of hard linking. C creates a file, B links to it, C deletes the file. If the system then erases the file, B will be left with pointers to an invalid i-node, or even the wrong i-node if it gets reassigned. If not, C remains its owner and it will continue to consume to C's disk quota until B deletes his links.Aӧÿz\@@fdgAӧÿz\ ) EE   d) EEzx3 n0-AӦJQA~Two major issues for any paging system:

[...]
2. If the virtual address space is large, the page table will be large.
Two major issues for any paging system:

1. The mapping from virtual address to physical address must be fast.
2. If the virtual address space is large, the page table will be large.
AӦJQ@@AӦJQ ZZ levels.

0. Data is distributed over multiӚ ) Oq3I0-AӪ5?A~RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
[...]
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single AAشӚ ) O4) =m3I0-AӪ"A~Time required to read or write a disk block is determined by

1. Seek time (the time to move the arm to the proper cylinder, dominating factor)
2. Rotational delay (the time for the proper sector to rotate under the head)
[...]
Time required to read or write a disk block is determined by

1. Seek time (the time to move the arm to the proper cylinder, dominating factor)
2. Rotational delay (the time for the proper sector to rotate under the head)
3. Actual data transfer time.
AӪ"@@c|AӪ"bally available for the selective control of action.
Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.
Aʸei@@[%faqAʸei hh@@mӕ) 7   A20-AӠgAӻ*)Reasons ?󚪵8) {a    x93J>w0-AӪd/AӰZ7 T󚪵8) {a    󚪵8) {ax93J>w0-AӪd/A~The layers of a Linux system

[...]
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
4. Hardware
The layers of a Linux system

1. Standard utility programs (shell, editors, compilers)
2. Standard library (open, close, read, write, fork...)
3. Linux operating system
4. Hardware
AӪd/@@c|AӪd/ $Fh4Vx( @^M0@2#VAvޏ{G2?( @\Dr gK3'DAHCy'33)@(v N`3IpqAӰtij3Ipdl)@;Y{3IAӰ;nk3I{@Ck}u5?1A'ӆHr#5?R@ ̨+ tE5?Aྲ1!nT5?)?vXR;'15?Ami+5?z!2aAӠꭑh?=2!!3JxAӪc쵡3JŘ'!3sAӦƨ3]!T2AV$AӤn/јm2Baf!j38AӦC~й3d!93I{AӪ33']3I,2!+3CAӦZf3FC!1JAӏ~VJI1J! 3?: Aөf3 h3? RU.ؖ R`3?./ R.H+ SI2 SR/3NM S[2 S3?L0 Sߛ3 T{3qA T. T2 T2 T 3&~< TA3:B/ U@3J Vş3Ib V3M W 3R WK3 W3I' Xi3I X3J8 X}2 X.H Y.3I/ Y9o.? Yc. ZDk2/ Z%3 [3&mQ \]5?0 ]k2> ]3? ^J.Hkq ^f3I _E3ItH _ϟ3? `S3v `|A2 `‹-} a3?. b3?'' bԓ3% b.HG2s c3'`0 c# 3Is c3I+ d>C3 e3?A e$.HW hӕBӕ) 7A20-AӠgA~How powerful is the rider as compared to the elephant?The rider is like an advisor, placed on the elephant's back to try to guide it to make better decisions.AX@@~>NAX qq/) ]m  /) ]m[3Ii0-AӪA~Time required to read or write a disk block is determined by

1. Seek time (the time to move the arm to the proper cylinder, dominating factor)
[...]
3. Actual data transfer time.
Time required to read or write a disk block is determined by

1. Seek time (the time to move the arm to the proper cylinder, dominating factor)
2. Rotational delay (the time for the proper sector to rotate under the head)
3. Actual data transfer time.
AӪ@@c|AӪ ee) ?o   z(m.0-AU ]-AӯX@1'Four ways of visualizing higher-dimensional data?Colored matrices, parallel coordinates, star coordinates, Chernoff faces.AU ]-@@KAU ]-Oݚ) Q.ҥ-AUA~$median = (\langle |x_1 - x|,|x_2 - x|,...,|x_m - x|\rangle)$Median Absolute DeviationAU@@~Q)&AU 2vv,9FS`mz #0=JWdq~#0=JWdq~ >2 I ?=2! ?p3V+ ?5? ?2[ ?M3RG @. pu @[5? ADu.H$ AXq. I A.H?Y Ao3?D C9U3 - CHY.H Cb3ͽ C 3&r DWU.HQ ~ R.H+ SI2 SR/3NM S[2 S3?L0 Sߛ3 T{3qA T. T2 T2 T 3&~< TA3:B/ U@3J Vş3Ib V3M W 3R WK3 W3I' Xi3I X3J8 X}2 X.H Y.3I/ Y9o.? Yc. ZDk2/ Z%3 [3&mQ \]5?0 ]k2> ]3? ^J.Hkq ^f3I _E3ItH _ϟ3? `S3v `|A2 `‹-} a3?. b3?'' bԓ3% b.HG2s c3'`0 c# 3Is c3I+ d>C3 e3?A e$.HW e3q. fK3?o aaэԯ) 'C  ԯ) 'C8EG20-AӠ|A~A nonpreemptive scheduling algorithm.A scheduling algorithm that picks a process to run and just lets it run until it blocks or voluntarily releases the CPU. That is, the algorithm will not react to clock interrupts.AӠ|@@AӠ| AӘ) _g  Ә) _gSW3#0-Aӧ?6A~Requirements for long-term information storage

1. It must be possible to store a very large amount of information
2. The information must survive the termination of the process using it
[...]
Requirements for long-term information storage

1. It must be possible to store a very large amount of information
2. The information must survive the termination of the process using it
3. Multiple processes must be able to access the information concurrently
Aӧ?6@@fdgAӧ?6 1әQ( 1}  u—әQ( 1}Y-3&ҥ-AӨZEA~A strategy of pre-emptively reading block k + 1 of a file into the cache if block k is read. The OS can keep track of whether a file is being accessed sequentially or randomly to see whether this technique makes sense.Block race aheadAӨZE@@3J"AӨZEC 5(BO\iv,9FS`zm #0=JWdq~ 铚R ޵d 󚪵8 ӕᱩ   Д 󘌃M ȘӘ  Ӛ ߒ / ԯ Ә —әQ ө 󗤽> ђ ӳ ï Ű ǰ ʱܥ ˱򡎲s ̱ᓚ ѲƒA Ӳ. ճτ ֳ蓘ڱ ٴәê ۴Z ܵٲ웾 ڴ҆ 󙚍΅ Ь󕬟M 䶡᳘ ᓙ Ѳ󘝍 ⓕr 񷕘 ⓚ舑 ы ì ıֈ ֛ ij  ϒ ѩ󕗖 ɓC v ޵6 ӕ[   泙< 󚦰 Ն 󕗖 ˓their work. Creates extra traffic in underloaded networks.
Processor allocation algorithms for load balancing

1. A graph-theoretic deterministic algorithm. Represent each process as a vertex, and the flow of messages between two processes as an arc. With k processors, try to split the graph into k subgraphs that minimizes between-graph traffic while meeting constraints such as each processor's memory capacity.
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of their work. Creates extra traffic in underloaded networks.
AөM@@2x3AөM rrө) oI   {ө) oI5?0-AʸeiA~Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
[...]
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become glo device-independent I/O software

1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.
AӪLZ@@c|AӪLZ t󗤽>)  /󗤽>) V)20-AӤlutA~Benefits of decision tree induction

1. Nonparametric - requires no prior assumptions about the type of probability distributions satisfied by the class and other attributes.
2. Heuristic techniques for constructing decision trees are computationally inexpensive. Once a tree has been built, classifying a record has a complexity of O(maximum depth of the tree).
3. Decision trees are relatively easy to interpret, and have a comparable accuracy to other classification techniques on many simple data sets.
[...]
5. The presence of redundant attributes does not adversly affect the accuracy of decision trees.
6. The choice of impurity mea '*@Vl2H^t$:Pf|r load balancing

1. A graph@NM3?i10@N2@OX.@O. /@O3?@P31@Q%3C(@QO3Iz@Q2ݝ@R5'2@RU.ؖ@R`3?./@R.H+@SI2@SR/3NM@S[2@S3?L0@Sߛ3@T{3qA@T.@T2@T2@T 3&~<@TA3:B/@U@3J@Vş3Ib@V3M@W 3R@WK3 @W3I' @Xi3I@X3J8@X}2@X.H@Y.3I/@Y9o.?@Yc.@ZDk2/@Z%3 {{) i=  r) i=C53?t0-AөMA~Processor allocation algorithms for load balancing

[...]
2. A sender-initiated heuristic algorithm. Busy nodes send out messages asking other nodes to pick up some of the work, giving up after some period. Creates extra traffic and wastes time in overloaded networks.
3. A receiver-initiated heuristic algorithm. Idle nodes send out messages asking other nodes to send over some of &*@Vl2H^t$:Pf|@P31@Q%3C(@QO3Iz@Q2ݝ@\]5?0@]k2>@]3?@^J.Hkq@^f3I@_E3ItH@_ϟ3?@`S3v@`|A2@`‹-}@a3?.@b3?''@bԓ3%@b.HG2s@c3'`0@c# 3Is@c3I+@d>C3@e3?A@e$.HW@e3q.@fK3?o@g<#-@gu.nN@g3ItFI@gA31@h2m@h_3?:ê@hxg3?tZ@h2W@iH73?%d@i#. N@jj.6@j3Ipd@k*?3&΅@kAg2M@kS]3Isr@l@2Ɠ ccђ) _   ђ) _Cu.Hd.0-AXUXA~The Happiness Formula$H = S + C + V$
Where S is your biological set point, C is the conditions of your life, and V is the voluntary activities you do.
AXUX@@rAXUXlpage and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.
What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system check;">3. Easy checkpointing and migration.
To migrate an OS, only the memory image needs to be copied.
[...]
5. Software development. A program can be tried on several operating systems.
Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.
Aө{@@f) HfAө{ YYӳ) O ӳ) O}3Ij%0-AӪLZA~Functions of device-independent I/O software

1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
[...]
Functions of dependent computers that may share a set of I/O devices and flexible memory sharing.
[...]
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.
Multiprocessor operating system types

1. Each CPU has its own OS. In effect, n independent computers that may share a set of I/O devices and flexible memory sharing.
2. Master-Slave Multiprocessors. The OS and its tables are present on one CPU, but not others. The master can easily become a bottleneck.
3. Symmetric Multiprocessors. There is one OS in memory, but any CPU can run it. Requires splitting up the OS in multiple independent criticial regions.
Aө@@2x3Aө f4) Is   'R3?0-Aө{AӰYRMMotivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
DMA steps

1. CPU programs Easy checkpointing and migration.
To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.
Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.
Aө7@@2x3Aө7 ) +    Y2ҥ-AӠozAʷ.#A kind of miniprocess running in quasi-parallel with other similar ones, sharing the same memory space.A thread (in computing).AӠoz@@%0FAӠoz*v( q'830-Aӧɱ&A~Boot blockThe first block of an active partition, which loads the operating system contained in that partition.Aӧɱ&@@U'cAӧɱ&  6`2\.X)AӪEPQ3I;AӪEPQ )3Iɻ)AӪU 3IɻAӪU Eg3Iʺ0)AӪ[rh=O3IʺAӪ[r7Y3ID)AӪjdZM3J"AӪjdZI3J`R)AӪvcϤ3IFAӪvcϽ3IY)AӪvc3IFAӪvc3IY)AӪd/x93J>wAӪd/X3J8)AӪ Ĝ7G3JAӪ Ĝ3JG)AӪZJO3JAӪZ3J)AӪE,3JXAӪEG3J3m)AӪohs(y3J3AӪohsb3JN)AӪpȃ3JAӪpȃ&|3J"C)AӪjdM3J"AӪjd3J`d)AӪ<(ս3J`AӪ<(U@3J)AӪmI3JrAӪmˊ%3J7X)AӪ ?}3J7AӪ ?}7-3JP)AӪM`B>3JQAӪM`B'l3Jd@)AӪScG3JdAӪSz3Jx%)AӪc3JxAӪc쵡3JŘ')AӪ{P$'w3JŘAӪ{P[;3J)AӪ3J AӪ 3J9)AӪ^pе3J:/AӪ^pE3JW )AӪ{Sb=%3JWjAӪ{Si3Jtn \)      3?.Ώ0-AөAӻ˛mMultiprocessor operating system types

1. Each CPU has its own OS. In effect, n in ‚(Ѳ) -0-AR.A~Interval attributeThe values are distinct, can be ordered, and the differences between units are meaningful.AR.@@fffffgAR. 7Vu/Nm'FeAӠn Vp2^IM2{AX~z J6U.HkyH.Hm?Aӏn5?01Jx&G1JzAӠobN{2Ɣ"2Ƭ9AӠoMS "o2uf2KAӠozY2+2|AӠozY2`|A2AӠon^ 2qX2AӠp&Rg0#2792טAӠr|2טd+2*AӠsU-22YAӠsuN2ZS2vYAӠsRC2wkAg2MAӠt)lI2ڛūo2 AӠt{34Y2,̑2"AӠt֧j92fބ2AӠt֨j92fT2AӠ ȴ[2gxk2ᔴAӠ [2g8'c2AӠ'Mb2`'u2vAӠ'M¹b2`p2AӠqV2z&|2摜AӠ{,wu2 vIX2$AӠ| 2%O 2@AӠmeg2@J2穥AӠ?|]2:62AӠ|8EG2ZDk2/AӠ}8EG22/#AӠ9p2/u2aAӠcp2/Km2a3 5">Functions of device-independent I/O software

1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
[...]
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.
Functions of device-independent I/O software

1. Uniform interfaci Hܥ) C   W323ҥ-AӦV`AX=-Re-mapping memory references to the address space of a process during runtime, using e.g. base and limit registers.Dynamic relocationAӦV`@@AӦV`-Χ) ?a3?%e0-AөjA~Directory-based multiprocessorA multiprocessor system with a database telling where each cache line is and what its status is. When a cache line is referenced, the database is queried to find out where it is and whether it is clean or dirty.Aөj@@f) HfAөj #򡎲s) e'    e򡎲s) e'v5.HEr90-AX: JA~What did the coin-flipping experiment tell us about moral hypocrisy?People self-reporting more caring for others were more likely to "do the right thing" by opening the bag, but equally likely as others to justify the self-interested decision when the coin didn't give the wanted result.AX: J@@rAX: J ~~ᓚ) ya   m3IpO0-AӪUAӬ쟮DMA steps

Three key characteristics of NUMA multiprocessors

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
[...]
Three key characteristics of NUMA multiprocessors

1. There is a single address space visible to all CPUs.
2. Access to remote memory is via LOAD and STORE instructions.
3. Access to remote memory is slower than access to local memory.
AӨk|@@f}U̻AӨk|ng for device drivers.
Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.
AӪ7@@c|AӪ7/span>@1s@"MAӲ5AӬAB6@@0Ik[@c|AӪeh@ @. AӲ5  .X( AӱϹ53?o@AӱϹhxg3?tZ( A_@Z .A_@uy.R6( A(rnC2wA(rnkAg2M)AP93IsAP_6)A2CI.H$A2qw.H,&( A-!3IɻA-!u$3Iʺ@A4jA2_A4jsEO2"{A<-;׹3?_wA<-;oDY3?)AIԴ3&,AIԴk*?3&΅)A _"2*9A _s<2U( A{=ΦF^2FA{=ΦFx2)AR)[-SAR)ݒ;-H~)AR#Op-HAR#O߱[;-^)AR.-AR.`‹-})AR7TZ]-}xAR7TZM-)ARBf3-ARBg<#-)ARG^E"hy-)ARG^E\-()ARM-ARM -a| 5">Functions of device-independent I/O software

1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
[...]
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.
Functions of device-independent I/O software

1. Uniform interfaci the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
[...]
DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.
AӪ2@@AӪ2 UA) [s    3?0-Aө7A5pMotivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
[...]
3. Ă*ȳ􊏆( 'q83ҥ-Aӧɱ'A~The first block of an active partition, which loads the operating system contained in that partition.Boot blockAӧɱ'@@ZAӧɱ'図ȫ) 1O3I0-AӪ7A~4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.
Motivations for virtual machines

1. Reliability. If each service is in its own virtual machine, one machine crashing doesn't affect the others.
2. Cost reduction. Fewer physical machines means lower hardware and energy costs.
3. Easy checkpointing and migration. To migrate an OS, only the memory image needs to be copied.
4. Running legacy systems.
5. Software development. A program can be tried on several operating systems.
@cA#܋@AxA AӺ`@2x3@2x3AӪrzn@*o@J"MA .( q  A30-AӧTjASHSuperblockA block on a partition, with key parameters about the partition such as the file system type, the number of blocks on the file system, and so on.AӧTj@@ZAӧTjɞ)  9 -.HT+0-AXA~What are the three things that the targets of popular villain hysterias have in common?1) They are invisible, and cannot be recognized from appearance alone. 2) Their evil spreads by infection, making it important to protect young people from the infection. 3) The villains can only be defeated if we pull together as a team.AX@@K AXeck if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.
Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.
AӪj@@0Ik[AӪj  3 z) 5   f3-0-ARBAӯǾwMeaningful operations on nominal attributes?Mode, entropy, chi squared test.ARB@@ffffffARBBⳙ) 7J_3?m[ҥ-Aө0*A~An illusion of shared memory for multicomputers, implemented by the OS instead of the hardware. When a program requests a page the machine does not have, a request is made to the machine currently holding it to unmap it and send it over.Distributed Shared MemoryAө0*@@f) HfAө0* 2蓘ڱ) Y  N3뤓ҥ-AӦFAӬ쟮The set of addresses that a process 蓘ڱ) YN3뤓ҥ-AӦFA~The set of addresses that a process can use to address memory.The address space of a process.AӦF@@[v AӦFӚI) ma3It)0-AӪ2A~DMA steps

1. CPU programs Ђ*ݿŠN( m+{.90-AU}KA~Variance${1 \over m-1} \sum_{i=1}^{m} (x_i - x)^2$AU}K@@¿AU}KMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
[...]
DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.
@CNI@(UbmAӽTuwAӰj:@@AӪ V@ @7pAӽTuwnt-weight:600; color:#0000ff;">[...]

2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.
Reasons to use threads.

1. An application may want to do many things at once.
2. Threads are faster to create and destroy than processes.
3. If the application spends time both waiting for I/O and computing, threads allow both to happen at the same time.
4. Threads share access to the same data area, unlike processes.
5. Threads are useful on systems with multiple CPUs, where real parallellism is possible.
@?1ZL9J@)AӴAӪ?AdQ%@@AӠ@P@=UAӴ <<әê) 9   R3?/.ҥ-AөGjWait for a resource that's been locked (by another CPU) to become free, or load another process? (terminology)Spinning vs. switchingAөG<@@f) HfAөG !   H\$Lr񓕯ס) k;2C0-AӠ"G\)A~Scheduling algorithm goals for interactive systems (in addition to the normal ones):

1. Response time, respond to request quickly.
[...]
Scheduling algorithm goals for interactive systems (in addition to the normal ones):

1. Response time, respond to request quickly.
2. Proportionality, meet users' expectations.
AӠ"G\)@@AӠ"G\)k҆( k/3?%10-Aө5?A~CC-NUMAA NUMA architecture with coherent cachingAө5?@@£EAө5? Z) ]1  fZ) ]153?o@0-Aө\)A~(Dis)advantages of a large page size on a DSM

[...]
2. False sharing. Two CPUs might both refer to different unrelated variables on the same page, unnecessarily sending the page back and forth.
(Dis)advantages of a large page size on a DSM

1. The startup time on a network transfer is pretty large, so sending 4096 bytes doesn't take that much longer than sending 1024 bytes. Reduces the number of needed transfers.
2. False sharing. Two CPUs might both refer to different unrelated variables on the same page, unnecessarily sending the page back and forth.
Aө\)@@2x3Aө\) 4Z( k/    3?%10-Aө5?A r(Dis)similarity metrics for nominal attributes?If the object classes are the same, similarity 1 and 0 otherwise. Reverse for dissimilarity.ATZ@@먺ATZAٲ웾) [im.40-AŬ+A~Decision tree attribute test conditions for ordinal attributes?Binary or multiway splits. Values can be grouped together if this does not violate their order.

E.g. {small,medium},{large,extra-large} is fine. {small,large},{medium,extra-large} is not.
AŬ+@@AŬ+ /Nm'FueV7FeAӪ?3AӪV S3Iڕ3IAӪ3393I{']3I,2AӪᝁ, 3I, 3IE=AӪcƨM:3IEe3I`AӪE5&[3IaU3It)AӪ.{^c3I3IAʸjhs5?1r#5?Aʸt9tE5?nT5?Aʸo'15?mi+5?zAʸei5?\]5?0Aʹ6d[5?i@[5?AʹkSc5??5? Aʸa=qjA5?|:[5?Aʹ-Gr5?K+a5?gAʺ J5?ڐ%5?UAӪc3Jx쵡3JŘ'AӪ{P$'w3JŘ[;3JAӪ3J 3J9AӪ^pе3J:/pE3JW AӪ{Sb=%3JWji3JtnAӪvy63JtY3JʓjAʸCVk5?vXھ5?|Aʸs5?|5?|Aʸ񪌔Y5?|m55?|ԁAʸcv\5?S5?Aʸl˷5? 15?AʸrIhs5?5?Aʸ5?u!!5?RAʸ w5?S5?i|Aʹ.5?5?g5?2 77Ӏd) #>d) #`3Ipq0-AӪVA~I/O communication techniques

1. Programmed IO. CPU continuously studies the control registers in a loop.
[...]
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.
I/O communication techniques

1. Programmed IO. CPU continuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.
AӪV@@c|AӪV 22\.X2\.X)AӦWj3.@AӦWj;3~#)AӦW۷{3AӦW۷i3))AӦWXAl3ɖAӦWXAu3)AӦWF+473NAӦWF+-93w)AӦWFU473NAӦWFUL3x )AӦZT|I#3xiAӦZT|I63Ch%)AӦZVmg3ChAӦZVQ%3C()AӦZ+3CAӦZf3FC)AӦZ`@3F̡AӦZ`mE3F)AӦ[Z3N;AӦ[E3N)AӦ[+2MӇ3NLAӦ[+2Mm3PP)AӦ[^aXt]3PAӦ[^aX/]3S)AӦ[Dm3SMAӦ[3Uo)AӦ[Dm3SMAӦ[U3U)AӦ[Sm3UAӦ[Se-3Y)AӦ[Sm3UAӦ[S-3Y)AӦ[0At"3YAӦ[0AE3Z)AӦ[0At"3YAӦ[0AK3Z )AӦ[SP3ZčAӦ[S 3\ M)AӦ[T"P3ZčAӦ[T"X3\ ])AӦ\m13\ AӦ\m1+3^ț)AӦ\13\ AӦ\G 3^Ȼ)AӦ\7+3^AӦ\7?3`35">I/O communication techniques

1. Programmed IO. CPU continuously studies the control registers in a loop.
[...]
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.
I/O communication techniques

1. Programmed IO. CPU continuously studies the control registers in a loop.
2. Interrupt-driven IO. Controller makes an interrupt when ready.
3. Direct Memory Access. DMA controller copies data from device to memory, interrupts only when ready.
@(v N@bpAӰtiAӬ`@c|@c|AӪ]h@"bM@2bMAӰti W󙚍΅) o   󙚍΅) o3&,ҥ-AӨZ/A~A cache in which all modified blocks are written to the disk immediately.A write-through cacheAӨZ/@@fUkAӨZ/ ppĬ󕬟M) ge   Ь󕬟M) geC2w0-AӠsRA~Advantages of implementing threads in user space:

1. Thread switches can be made without kernel calls, which can be very fast.
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
[...]
Advantages of implementing threads in user space:

1. Thread switches can be made without kernel calls, which can be very fast.
2. Each process can have its own customized scheduling algorithm. (Useful if there's e.g. a garbage collector thread.)
3. Better scaling, as threads don't need to be stored in the kernel.
AӠsR@@ffffffAӠsR5">What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
[...]
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.
What does a paging system need to do when starting a new process?

1. Determine the initial size of the program and data.
2. Create a page table, allocating it memory and initializing it.
3. Allocate space to the swap area on the disk.
4. Initialize the swap area with program text and data.
5. Record information about the page table and swap area in the process table.
AӦaݲ=q@@ib =AӦaݲ=qask.
@,;2@=?AӰRAӬM@0Ik[@c|AӪ,d@$E@4EAӰR l᳘) {O   M3 0-AӦaݲ=qAƨSkeleton of what the lowest level of the operating system does when an interrupt occurs.

1. Hardware pushes the program counter etc. of the current process to the stack.
2. Hardware loads new program counter from interrupt vector.
3. Ӛr) cag3Is0-AӪ nA~DMA steps

1. CPU pro Q intentional content of X can become globally available for the selective control of action.
Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.
Aʸo@@AʸoA controller via special registers.
2. DMA controller requests device controller to move data to memory.
[...]
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.
DMA steps

1. CPU programs the DMA controller via special registers.
2. DMA controller requests device controller to move data to memory.
3. Device controller begins transferring data to memory.
4. Disk controller sends an acknowledgement to DMA controller.
5. If there is more data to be transferred, DMA controller increments the memory address to use and repeats steps 2-5.
6. DMA controller interrupts the CPU to signal a finished task.
AӪdžȴ@@c|AӪdžȴ ᓙ) w!     3?DEҥ-Aө)rA,zAssume a group of related threads are created at once. If there are as many CPUs as there are threads, each thread is given its own, dedicated CPU. If not, the threads wait until enough CPUs are available.Space sharing (on multiprocessors)Aө)r@@\={ޙAө)rڂ(󘝡P) w3NL0-AӦ[+2MA~I-space and D-space page tablesThe page tables for the instruction address space and the data address space.AӦ[+2M@@ib =AӦ[+2M bbѲ󘝍) 9/  Ѳ󘝍) 9/@3F̡0-AӦZ`A~Advantages of a large page size

1. Allows for a smaller page table, reducing its space requirement.
[...]
Advantages of a large page size

1. Allows for a smaller page table, reducing its space requirement.
2. Allows for a smaller page table, making for faster execution if the page table needs to be copied to e.g. hardware registers.
AӦZ`@@6.֒ AӦZ`become globally available for the selective control of action.
Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.
?vXR;A@[%faq@Aʻ`B@+Ձ@+ՁA @) {a   '3Is0-AӪdžȴAӻ ) {a'3Is0-AӪdžȴA~DMA steps

1. CPU programs the DM -ڥz) #y'15?0-AʸoA~Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
[...]
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.
Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.
AӤl@@llJAӤlpage table entry

[...]
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.
The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.
AӦ4kdZ@@(CjAӦ4kdZparity disk.
RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.
AӪ @@AӪ ⓕr) !/  ⓕr) !/G=20-AӠmg+A~The memory manager (of computers).The part of the operating system that keeps track of which parts of memory are in use, allocates memory to processes that need it, and deallocates it when they are done.AӠmg+@@h[BAӠmg+Г) aS2<0-AӠOA~Functions of device-independent I/O software

1. Uniform interfacing for device drivers. Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
[...]
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.
Functions of device-independent I/O software

1. }) IL) ItE5?0-Aʸt9A~Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
Driver contains a function pointer table to the functions needed in the interface. Naming of I/O devices, protection.
2. Buffering. More efficient than calling the user process a character at a time, but too many buffers reduce performance.
3. Error reporting. Errors are device-specific, but the framework for handling errors is general.
4. Allocating and relasing dedicated devices. E.g. a CD drive can only be used by one program at a time.
5. Providing a device-independent block size. Hiding different sector sizes by providing e.g. treating several sectors as a single logical block. Hiding differences in whether a device delivers data a byte at a time or in larger units.
AӪy@@0Ik[AӪy(bAӰ;AӭPw@@AӪ"\@Bp9W@ZcSAӰ; YYⓚ舑) Q  ⓚ舑) Q{3I0-AӪ A~RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
[...]
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single resources between them.
Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.
AӠbxQ@@JOQ'AӠbxQ other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
[...]
4. Different segments can have different kinds of protection, such as execute only or read-write only.
Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.
Aӧw@@gFBBAӧw 00( c    Oы( c׹3?_wҥ-AөA~A virtual machine that analyzes the code that is being run, replacing any sensitive instructions with calls to the virtual machine.Type 2 hypervisorAө@@2x3Aө) Uc3IJ0-AӪyA~Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.
Aʸjhs@@Aʸjhs ||ì) !   qì) !g2!0-AӤlA~Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
[...]
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
[...]
4. Different segments can have different kinds of protection, such as execute only or read-write only.
Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and other procedures refer to the procedure by segment start address, the procedure may be recompiled without changing the addresses used by the other procedures.
3. Facilitates sharing procedures or data between several processes, such as in the case of a shared library.
4. Different segments can have different kinds of protection, such as execute only or read-write only.
@+`媣jAӻ"AӱV&@0D@gFBBAӧ33@.@e%%Aӻ" qֈ) ;    ,52 Mҥ-AӤkaAӰYϓZip codes, employee numbers, eye color, gender.Examples of nominal attributesAӤka@@8m9AӤka) S#/3 0-AӧwA~Benefits of segmentation

1. Different segments may grow or shrink in size independently without affecting each other.
2. If each procedure occupies a separate segment and error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
[...]
General ways to combat overfitting / generalization error

1. Use a resubstitution estimate. Presume that training error is a reliable estimate of generalization error, and choose the model with the lowest training error.
A word-processing example of thread usage.There might be one thread interacting with the user, another thread handling changes (e.g. if a line is deleted on one page, all the subsequent pages have to be reformatted), and a third to save the document at regular intervals.AӠon@@AӠonhئ) %mCI.H$0-AXH?}A~How can I change my affective style?Via meditation (breaking of attachments), cognitive behavioral therapy (catching and changing negative thoughts), and psyche medication.AXH?}@@rAXH?} :S`mz #0=JWdq~F9,vi\OB5(  qX2 WK3 W3I' Xi3I X3J8 X}2 X.H Y.3I/ Y9o.? )3 I3J`R ~2 }!3 }I2 }Y3 |.H2t2 {G2? {T32! {K3I z3- y'33'< y1Jw x2 x3 v-2^[ v03?C uy.R6 u$3Iʺ@ tA3Bv t.Hd s^I3'C sEO2" s<2U s3 gu.nN g3ItFI gA31 h2m h_3?:ê hxg3?tZ h2W iH73?%d i#. N jj.6 j3Ipd k*?3&΅ kAg2M kS]3Isr l@2Ɠ l 3( m3PP m+ 3?H mE3F mi+5?z mr3Is m2 m2r nT5? nk3I n3Ii oDY3? p52! q93 q2 ֈ qw.H,& qX2 r#5? ;S`mz #0=JWdq~F9,vi\OB5( )3 I3J`R ~2 }!3 }I2 }Y3 |.H2t2 {G2? {T32! {K3I z3- y'33'< y1Jw x2 x3 v-2^[ v03?C uy.R6 u$3Iʺ@ tA3Bv t.Hd s^I3'C sEO2" s<2U s3 r#5? fK3?o g<#- gu.nN g3ItFI gA31 h2m h_3?:ê hxg3?tZ h2W iH73?%d jj.6 j3Ipd k*?3&΅ kAg2M kS]3Isr l@2Ɠ l 3( m3PP m+ 3?H mE3F mi+5?z mr3Is m2 m2r nT5? nk3I n3Ii oDY3? p52! q93 q2 ֈ qw.H,& qX2ocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.
(Dis)advantages of linked list file allocation

1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.
Aӧhahs@@fdgAӧhahs xij) WyGij) Wy5?10-AʸjhsA~Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
[...]
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The a) !i  $) !i30-Aӧ A~Reasons to give processes some control over the virtual memory map

1. If several processes can share the same pages, high bandwidth sharing becomes possible.
[...]
Reasons to give processes some control over the virtual memory map

1. If several processes can share the same pages, high bandwidth sharing becomes possible.
2. Sharing of pages can be used to implement a message passing system, with one process unmapping a page and another mapping it in. Thus, data doesn't need to be copied.
Aӧ @@gFBBAӧ OO)    &ϒ) "2*90-AӠnkA~The three possible states of a process.

1. Running (actually using the CPU).
2. Ready (runnable; temporarily stopped to let another process run).
[...]
The three possible states of a process.

1. Running (actually using the CPU).
2. Ready (runnable; temporarily stopped to let another process run).
3. Blocked (unable to run until some external event happens).
AӠnk@@5(XdyAӠnk32deff605c6">Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.
@a0@?hA4jAӸA@JOQ'@JOQ'AӠ5 @/4fh@fH A4j 󕗖)      gѩ󕗖) A2_0-AӠbxQA~Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
[...]
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating [ɓC) q    ɓC) q 3'0-AӨl) A~Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access time in nanoseconds.
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
[...]
Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access time in milliseconds.
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
3. Distributed systems. Wide area distributed system, access time in milliseconds.
AӨl) @@3J"AӨl) 2G\q.Xm @}!3*@~Q)&Y9o.?@~Q))T. @'r3.>\]5?0@(CjP31 @(Cj)3*@0IkWQO3Iz@0Ik[G3J3m @0Ik[c# 3Is @0Ik[c3I+ @0Ik[kS]3Isr @0Ik[mr3Is @0Ik[{K3IC@2x3R`3?./ @2x3]3? @2x3a3?. @2x3e3?A @2x3fK3?o @2x3hxg3?tZ @2x3oDY3? @3J"s^I3'C@5(XdyT2 @5(Xdys<2U @6.֒ m3PP @JOQ'{G2? @ne:Ry1JwT@~>NX.H*@IM2{@Km2a3@ZDk2/ v(     23 3Rҥ-AӦAӰY`bNCombining all the holes in memory into a solid block by rearranging the contents of memory.Memory compactionAӦ@@(CjAӦȃWɖ) g ?.H^f0-AXǝA~Why does the elephant's short-sightedness make so much studying hard?Because the elephant feels pleasure when we take a step towards the goal, but may not recognize all progress as the same goal. Easy-to-measure points may help motivate us, but also subject us to living by a cliche.AXǝ@@rAXǝ ص6) ;Y     Z .0-A\nRAӯihAWhat strengthens the stimulus opponent process?Increasing the intensity of stimulus exposure, increasing the duration of the stimulus, shortening the interstimulus interval.A\nR@@̫.hA\nR~ɂ@( A3Iɻҥ-AӪU4A~Assigning each process a fixed priority in advanceStatic schedulingAӪU4@@AӪU4 PP₳) M?   %) M?3?B,nҥ-Aө׻dA~When a thread is created, it is assigned to a CPU. Each CPU then does its own scheduling on its own collection of threads. If a CPU has no thread to run, it takes one from another CPU.Two-level scheduling (for multiprocessor systems)Aө׻d@@f) HfAө׻d ssӕ[)  9   ӕ[)  92L 0-AӠn "A~Typical ways for a process to terminate.

[...]
2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary).
Typical ways for a process to terminate.

1. Normal exit (voluntary).
2. Error exit (voluntary).
3. Fatal error (involuntary).
4. Killed by another process (involuntary).
AӠn "@@AӠn "">3. The amount of data storage in a block is no longer a power of two.
The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.
(Dis)advantages of linked list file allocation

1. No external fragmentation. Every disk block can be used, so the only space lost is to internal fragmentation in the last block.
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 blocks prior to it.
3. The amount of data storage in a block is no longer a power of two. The pointer takes up a few bytes. Many programs read and write in blocks whose size is a power of two.
@U[N@?bM1-Al9AӸU@fdg@fdgAӧ@5d[@V2Al9 (( o    ^2Fҥ-AӠmxA1X A process that runs in the background to handle some task, possibly only rarely awakening.A daemon.AӠmx@@AӠmxE) ic13 0-AӧhahsA~(Dis)advantages of linked list file allocation

[...]
2. Random access is slow. To get to block n, the operating system has to start at the beginning and read the n - 1 bl single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.
Disadvantages of decision tree induction

1. Finding an optimal decision tree is an NP-complete problem.
2. Decision trees may perform poorly on some types of Boolean problems, such as the parity function, which is 0 for odd numbers and 1 for even ones.
3. Redundant attributes may end up making a decision tree larger than necessary.
4. A subtree might become replicated several times in a decision tree.
5. Data fragmentation problem - the number of records becomes smaller as we go down the tree, maybe too small to make statistically significant decisions.
6. A decision tree using only a single attribute at a time will fail to classify some types of data correctly, but more complex criteria are computationally expensive.
AӤl[t@@JӠ&}AӤl[t WWۓ) a  ) aM1I0-Aӏ9XA~Properties of metric distances

[...]
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z
Properties of metric distances

Positivity, d(x,y) => 0 for all x, y
d(x,y) = 0 iff x = y
Symmetry, d(x,y) = d(y,x)
Triangle inequality, d(x,z) <= d(x,y) + d(y,z) for all x, y, z
Aӏ9X@@Cm4Aӏ9X _泙<) w   !泙<) w K3'D0-AӨl'&A~Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access time in nanoseconds.
[...]
3. Distributed systems. Wide area distributed system, access time in milliseconds.
Three types of multiprocessor systems

1. Multiprocessors. Shared memory model, access time in milliseconds.
2. Multicomputers. Message passing multiprocessor, access time in microseconds.
3. Distributed systems. Wide area distributed system, access time in milliseconds.
AӨl'&@@3J"AӨl'& L󚦰) 9=   W3I 0-AӪ1'Aӯ`-Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geome )-) #q>q3E0-AӦW65?A~A global page replacement algorithmA page replacement algorithm that, upon process A triggering a page fault, removes the oldest page associated with any process. Causes the number of page frames assigned to each process to vary in time.AӦW65?@@ib =AӦW65?try.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
[...]
Device driver general structure

1. Check the input parameters for validity, then possibly convert from abstract to concrete terms. E.g. convert a linear block number into the head, track, sector, and cylinder numbers for the disk's geometry.
2. Check if the device is already in use. If not, possibly switch it on.
3. Control the device. Determine the command sequence and write to the device registers.
4. Possibly block, waiting for the device to finish completing the commands.
5. Check for errors, then pass on the data and some status information.
AӪ1'@@0Ik[AӪ1' 22H^t$:Pf|$:Pf|@3IY@93S@d2 @e3I`@38py@ 3\ M@92ט@3It)@s{3Ia@u.nl@3 @c3;@3&o¿@3?o@2@xk2ᔴ@93@;m.E @w3'#@3>o@%3J7X@د3&s@"3Iv@Ym3(@s. s'@w36@+A2p@Bk3NQ@3?d)@3'@E3Z@2a@82Е@m. i@3I@3} resources between them.
Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.
AӠdTj@@}ބ8ZAӠdTj 2.CXXX2@f) Hf3?mL2@f) Hf53?i12@f) Hf3?a2@f) Hfb3?_2@f) HfM3?T2@f) Hf#3?]2@f) Hf3?d2@f) Hf3? '@fdg:/3 b @fdgW 3R @fdgZ%3 @fdgx3G?@h[B&e2#G@h[B/g2 G@h[B62 @h[BIX2$ @h[BJ2w @h[BS[2?@ib =-93w@ib =.;3@ib =2x+3# @ib =G 3^Ȼ @ib =Q%3C( @ib =z3- @ib =}Y3@llJ8C2( @llJ]k2> @llJp52!m@}ބ8Z-/2 @}ބ8ZT2 @}ބ8Zm2 @K |.H2t2@'u2v@1a2P@Cm4JI1JT@BT. @BT7. *a*@BT7. S@&}.4E 66ther thread will ever run unless the first t?) KuW3|0-AӦC33A~Page tables for large memories

[...]
2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.)
Page tables for large memories

1. Multilevel page tables.
2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.)
AӦC33@@[v AӦC33 ..) -  ?Ն) -2 0-AӠ!A~Disadvantages of implementing threads in user space:

1. If a thread makes a process-blocking system call, all the threads will be frozen, which defeats the point of having threads.
2. If a thread blocks due to a page fault, the whole process will again be blocked.
3. Programmers generally want threads specifically in applications b32deff605c6">Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
5. Virtual machine. An operating system within an operating system.
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating resources between them.
@^M0@@BתAvޏAӵg>@JOQ'@}ބ8ZAӠ6J~@"\(@R9Avޏ KK󕗖)    "󕗖) 2#V0-AӠdTjA~Six operating system designs

1. Monolithic. The entire operating system runs as a single program in kernel mode.
2. Layered. The operating system is organized in a hierarchy of layers, each one constructed upon the one below it.
3. Microkernel. The operating system is split up into small modules, only one of which runs in kernel mode.
4. Client-server. A variant of 3, where processes are separated into servers (offering services) and clients (using services).
[...]
6. Exokernel. A system is partitioned between various users, with the bottom layer allocating  M˓) -]  P930-AӦW`BAӬ쟮The Page Fault Frequency (PFF) algorithmMeasure the number of page faults that a process has recently generated. Assign it more pages if it produces too many page faults, and assign it less pages if it produces very few page faults.AӦW`B@@ib =AӦW`B(2) %m.H,'F0-AX^A~How is the mafia like an ant colony?The ants in a hive work together because of kin altruism: they are all related to their queen. Humans try to extend kin altruism by using family-related words, such as the mafia calling itself family.AX^@@K AX^ :) }?  }) }?32E0-AӠ{A~Scheduling algorithm goals for batch systems (in addition to the normal ones):

[...]
2. Turnabout time, minimize time between submission and termination.
3. CPU utilization, keep the CPU busy all the time.
Scheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput, maximize jobs per hour.
2. Turnabout time, minimize time between submission and termination.
3. CPU utilization, keep the CPU busy all the time.
AӠ{@@AӠ{ Q( m  ( m|m30-AӦw8rA~A virtual addressAn address which the memory management unit maps onto a physical addressAӦw8r@@AӦw8r ,ӕᱩ) a?   oӕᱩ) a?2W0-AӠbA~Scheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput, maximize jobs per hour.
2. Turnabout time, minimize time between submission and termination.
[...]
Scheduling algorithm goals for batch systems (in addition to the normal ones):

1. Throughput, maximize jobs per hour.
2. Turnabout time, minimize time between submission and termination.
3. CPU utilization, keep the CPU busy all the time.
AӠb@@ffffffAӠb ]) Ku   W3|0-AӦC33AӬ쟮Linux clone system callCreates a new thread in the current process or in a new process. Allows the working directory, file descriptors and signal handler table to be independently either copied or shared, and the parent to be either the caller or the caller's parent.AӪjdZ@@0Ik[AӪjdZ5">Page tables for large memories

[...]
2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.)
Page tables for large memories

1. Multilevel page tables.
2. Inverted page tables. There is one entry per page frame in real memory, rather than one entry per page of virtual memory. (But when a page not in TLB is referenced, the whole page table has to be searched! E.g. hash tables help here.)
@BQ4B@%MHhAӷKq AӪZ@(Cj@[v AӦt{@0AG@L=rAӷKq 98q E9Y‚ʟ_a M latex-1683cb097213ae33c4174c758f4ed80c.pngA`;Gfa290ba8dbb4f050358a9f0056951a91<𬵿' M Minkowski.pngAӧ&ve6e962b225ce759866e3bea9f7383c37Ya M latex-200e9c41cd10bd590b2aea9cdd42d76f.pngAaE?}5f15e0f88e6f0381487acf6590a800d0ZȬaM latex-a9bdb713f7fead5e0f7de19044c0441d.pngAV5W;d2dd869f8532747348bc49e489565e4a0ZՙaM latex-5c29d3df2c73c6e16fc5674905bb10cf.png AbZ4a1f9aed97de88d5424bc0193673bb8dZؕaM latex-9a657a9dc8fcf5163d41801088f8303f.pngAW[z04765bf7a35264fc72b25a8caec7c0ccZŒaM latex-5ae2859f4d1b0a87f87850cf89441953.png A`6D_2f0a46f2a600f96abba14d26221b106dŸ4aM latex-a625949796b2f1a3d36e321946564a5a.pngA_ܬ1e81e710220fc964e2153f79e496194eZ¦aM latex-9154f09f51d48788b45360392da75669.pngAUjb5fb05fe89bbae671715e032ee6d40d3cZaM latex-75e6b1fb9336668a7718d57857279eee.pngAVbmb0c493507a2014bbf869ef8005428f7f ~8p E~YĶa M latex-7b11e03e60877d02a9f5a757e746f93d.pngAbw77954993c00a4cde70d4b83058ed540aZĩݳ׮aM latex-8d2742899f9f9cb250844efe1a2b3889.pngAөYo79cd2f5f26c03bc89474dc24b633bb3fZĕaM latex-6f9bbe5e0e679eadcafe9411b5db2d71.pngA^.DG =c9a88cfc8566393ecc144194685ca9d9Y͗a M latex-6d5864e31530b346724294e545215d91.pngAVn58a273de05de8bdf0a3b0844d0fd73a6Zè󘊆aM latex-7b34cbe6c4d1d240f089bcc1817d5f1c.png AӦad637a3246eeb2e488980e46b5c3f0315Zá0aM latex-1cfff04c2dcb62641945833a34f2e6e8.pngAӨpf6a7dca829a8b7eee5036e17569ac48fZϚĻaM latex-0a9504be81f272090fd8766fc2ebe29d.pngAUA^f9d35dec118fa240cddb7b08cfe68606ZΒԔaM latex-95c63d6f8eb1560cf4420761e09c80d7.pngAW\Ж169d401320f5d540f58a06dec62db314Z ēټaM latex-bbd62504618bc235cd278d06dbdb64a1.pngAӘƨ34dc4120b6420c64216260162368b66c ]]w BxP(^'5alate)Covariance.png . p'Minkowski.pngc. !9ParCoordinates (1).png@.+Mfeature_subset_selection (1).png. (-Qfeature_subset_selection_blank.pngKʫ. (5alatex-004baccc991f2e728537c14e952df44b.png35alatex-00ba407f8392c7f8428f73f1c82de1b5.pngcy#.i5alatex-014e29240f787ab16621a7e2a4ef0ff8.png35alatex-0285a4b13c8e46e8a58e4885c6fe9c97.png3!5alatex-02e3404f31d4cfaff745f94f11fb4a90.png.45alatex-0342dd81774eb57ff146b3817aa4a422.png.QW5alatex-04999e49e79c455adf19174449db95e7.png+ō..$5alatex-04c38d8909e54d9064b366f0bba7fd22.png2%y5alatex-05404b0255bc26d1b134fc3c75788cc5.pngG.Z 5alatex-05a5f6ff20a072e8e6ca451dab4c6dc3.pngK.wA>5alatex-05fe48aa81344393b7e104d6df2b8a4a.png/.^0]5alatex-060ff7305ce0597a439f333920b83638.pngA.5alatex-0705b67db09f3124488807a4a29b3a59.png$_.55alatex-072f88ccfaf5bf60b283e37d3082ec87.png݆)2I> 44j BxP(^5alatex-093a2464c54efcee11100044be10c59d.png0.5alatex-0a3fd0c8194f9a3fd5c50eb7cce75110.pngż.n 5alatex-0a9504be81f272090fd8766fc2ebe29d.png<.D5alatex-0b0e80622db568fafed2af6f7e6b74b0.png3_@5alatex-0b4a0845bff32da96bfd49bb14329485.png;2O?5alatex-0b93a62306e7d7ff649702974ba95548.pngO#/.2H5alatex-0b9fcbb9b557dcc513a9f390b7178a6d.pngW.M5alatex-0c62dc47839dc48072af446b39d60bac.png6;.!5alatex-0da75890768e87df94537a9cfbc94e62.pnge.<5alatex-0f80d1c3116be1551e989ef88dbe708d.pnga35alatex-10174bcf34af26d2020fead5ca92c4dd.pngف.Qܥ5alatex-1032696bd7a5bc193ad26dcb5af9a472.png&2v=5alatex-103aa677a4801eeb2955c35e98668d21.png.w5alatex-113d36fe4cd636d8c973b7e7e7a231cd.png]35alatex-114982fae7a90a580a7cd92803ec8953.png|#.35alatex-11557c1e70e4ca26c874ecec5c9fd972.pngp.4'}5alatex-11b6f03bd4b9570e976952744ad51a44.png+W3_l5alatex-122471664b267fb48ffb05d5240d321d.png .4 :sIZƞaM latex-20ef666a1cafff2fb2415cb149dfde49.pngAW\,ff62578fdce4bc730589c75a1e333b0961Yƙa M latex-2ae208f756b9f4be1c6c95afd9d100b9.pngAajeeecc2c2f7ba57d322a326f7c46af76aZƙaM latex-9c314e948969e51c4a633f7b76757e92.pngAӠlhQdc6457824c3626aef06131b69bf3a48fYƑ嵜 a M latex-05404b0255bc26d1b134fc3c75788cc5.pngAa\/fa6ce6fd31c8a87dbebf4594a478fca3Yta M latex-ed112889c6264172b3d48a4df8d97503.pngAa; x9b91a30b993c89c890ad6a1ab43285e3Z鈲ܠaM latex-b563b4eab3c7b50c54182acddbb2c653.pngAaPb34338a9efeffc2774b623b269f0259eYܣ'a M latex-306b999945418330781984150a7947a9.pngA[ udd3dd1b6c7232b63c055bbf756d413c8ZŋǐaM latex-3106c58b7ad4636b5e2348aaa5707da8.pngAV5Ww0cfdd05e282a7b26b143ff92d30211b2Yٳa M latex-eb5ea29e1f451de1be99603347ed92b8.pngAӤ 4j3d1611bc4f796b0e0180764d8ec0eba0YЫ֬a M latex-b6942f93006473e61abf9f449cf8c3af.pngAbK-392130ef0f3a15a44326923e3a857f61 88@ldHt$P|+M034d1d62157c4763ff5b3347217930e2{F.+M057fbe27601d05c118b3a768b31ae091y.vɼ+M020c63059e433f35e746e2af871ed76f+?3t.+M025ea7b0521a9fc63d16518f395f5e07.M+M026148715d02469861ee38317c75cb3f.+M03b0204195090a0ae515c56f31242e89m.4;+M0464f1b09ded7062d0f143a7d24be999 .\+M04765bf7a35264fc72b25a8caec7c0cc`.4+M05c3e9cf57c678deb22017e6023e4039b2t!+M05d4a917c880349278bd187dc3109b06.lj+M075a55b7565d2a0714f71b1bd916fd62a3+M0786702dbc7cd04238079b80559babc3C.v۬+M07f21c2b25b15d85b4043f4ab402e8c5X..+M08d9242ae23efa8bc40058ebdad79982C.+M091c7973f3389a8b28896e40fb2484b6..<+M096e57a4040da5307e227d3bc08a3ef7zO3uTX+M096f9463b68aad7c6fff28f78cb6a636.+M09b8c70cd09d5dcd4363619340399945<#.-U+M0a2774acc66aad4cc968a28deea2cf28/.4+M0a5188792c43ec4cf8c8ee7a16eda762Y.i+M0aef30f8505ae4bb24ba175a64e3bbbeW.k+M0bc7e4fdacf2b07ce111a933805ba8e4R+.٭Z @lHt$P|+M0cfdd05e282a7b26b143ff92d30211b2/..+M0cfdd05e282a7b26b143ff92d30211b2..G+M11cd2729c4097a8862d9e461ebe5b5abux5.+2+M0c9788aa383d6f5404b5ce871b2266203!<+M0c98ce31f4d13a3248c585aefc2b182a 03+M0cfdd05e282a7b26b143ff92d30211b2/..+M0cfdd05e282a7b26b143ff92d30211b2..G+M0d0027defe15a0da0c6fff24343a4481&.+M0deef320c915fc096ddaf24c3abf96bf%.{Q+M0ed9c140e028f5a2b81a92d20dc7a0f9s.x+M0efe92e2b78fe60a58a5e034d95a7555;e.5 +M0f548f4d393851ae93318c08ec267c79+W3_l+M0fe4f06a2e1c7ee7ad9acc91624a3041s]73Kg+M11cf362230ded287754695e4c5969d9d q.ٳGF+M12a06acb4f7de9c3292013ad5a4ef4dd3".vƂ+M130493b2738441cdacf13d040fdaee8djY.)~q+M133a38b9b713b1889dc206a2dacf26ab&.vd+M1386e10724c165f1eb79fbc4ed0799cbp.4'}+M1396213aa4b9704aca660e76849e7d0c.¿+M13a8fa46edac23fe310c604659b493bf[̋.x+M13fb6e0dce3c2eb15762c766f5387c29`.q+M14c3827e86c9cb80298298144f95fe08M3.M 9q FYXa M latex-131baf9ef659edf69c27ef68cf918c5f.pngAӦ]l1096e57a4040da5307e227d3bc08a3ef7ZaM latex-b89829b4e58614ab7a970f11680b53ef.pngAaTIed4a19e1537c0c548d6832b1aeec38ddZǭߡaM latex-46b65754069e7fee6953176026b40f4e.pngAaPh7bb660521faa79c9b42c19651fa469cfYǦ’a M latex-4e9f1ab30a1e83c4b7e615a0e0f88368.pngAӠlg15f2fa1ceafde432908351a3820e9d73ZNjӗaM latex-60b127f4c1c95e10d4ce9ca60d647f26.pngAӣ5?375e439cc4228c17602119cdafa95798Z󘞐aM latex-3560971ae79c2a261e4ebf552404d31d.pngAӦ^+c2ee4cec0336f041976913b1b18c3662ZסNaM latex-c1cc0725400c7d3a3a9cab062d483a8b.pngA\94057372ec62ba67d38d47df6f750e3dYa M latex-97bc05a0562e11b43817008583c37027.pngA]2M`r6c0cb1013dbec92915d892b7d929d6dcZƬԎaM latex-3a4955eb70cff78652da3440cbcc1b89.pngAW\A9ef7b2cd3cb20c5f86252229e397b2c3 jj BxP(^5alatex-11b6f03bd4b9570e976952744ad51a44.png+W3_l5alatex-131baf9ef659edf69c27ef68cf918c5f.pngzO3uTX5alatex-13b533b9a82b1296cf199ae1897d8010.pngFK.x5alatex-13cc635fdb3f3d45e4d79faf3c64e5e1.pngM;.iU5alatex-13fcbb5bb7c7991b059b14985528822d.pngwq.d5alatex-148629eb9d45314eeaef1f9910f6b4e5.pngc.Y| 5alatex-14e70cbfa8ae11331813764a567e7253.png`.v5alatex-152b13b2593fd13625bf6134cfe51c66.png!2L5alatex-15b7f31a05ba810719462e21efb87ed4.png(.D5alatex-1683cb097213ae33c4174c758f4ed80c.png ._5alatex-168b8afb8e35e363b4cf78519e438449.pnglz.k5alatex-169f4ac9c568e08047dbec7ff61f9a44.pngy.vɼ5alatex-1805828b2a025df6d30fb99341dae8da.pngOF+.vƂ5alatex-18095bb5ffc06c8a4a4e0a74b7d3e8be.pnga.W5alatex-18da8524f28ec3841783adc727121053.pngs]73Kg5alatex-1963a2a2d1bbba25bbbe56f56e940f52.png)Q3}5alatex-1a4b5ae67ca2f9d6374d5abd355fa199.png铻.i5alatex-1a599a060311362156d4d982bb04f421.png/%.vÔ ~8qF~ZʺaM latex-901047b76f295436c30e7e1ebc732514.pngAV&x40ce71920ea9c0fe3ed13af4daf5049aZʖRaM latex-d72a03d2582f7081b918dc9eddcdf011.pngA^-&bb3715e9876ff62b69f9c480486d6112ZʐĪaM latex-759d63a1a60c50106711203adde3ab5b.pngAӧ;4fa93875cbf07f569c5d753b1ab03793ZۆaM latex-4df6f6b583aad48fb18fa40b5e39ceb1.pngA]4Xr597ca026326428e95833e6a0ec603449Yӗa M latex-2ce877faedbbc327a1a6b754b698160a.pngAӤ"335f40d0807d03869fa6b56e7acd79ebZȐaM latex-1d0783cc30a895840de8dbceca60a2d8.png AӦ]fR8fff8ffb16d8ef88b7de59a0623c4338Yښa M latex-7e068019aee5de68a6037e8e88f4c3e9.pngAb|ae94c84acb649a7a524462f172331f24ZaM latex-e3115800efbdfc927a9a1186df335ede.pngAөYHdc5209cf43202e2093b0d0def572c28eZaM latex-739d599cf587d2a4c74949029f66f930.pngAa}/80f69c442f968468ecae42f967f751ec @@lHt$P|$P|+M187f364cb7d4633f3a2a2eab9f7db52f&.٭Z+M1996f00ee4cbbb2f858c63cf8ebf847d 3g=(+M19f23409e30755e63de1b5e4663baaadA.+M1a22a27d62f7e10f5e62042aab105ea53F +M1a52ffd2535600dc2ca61dd8d33a8cee.+M1a94519d6e7ac02a84dba1b75c937a5c}. M +M162f93613d8f1082eea689a58788d3cfgM.vU+M164b0ce1a4225e52f11ba62a225416e9$\.0P+M169d401320f5d540f58a06dec62db314q.5 +M17c0041b8d9390f8deb3681e290d629aZ}.+M180c49ba288d8a7fd80840a4c8e78872*' 3~+M1824e9f2a8f2a8d2f047d23aa3633492.P.N+M187f364cb7d4633f3a2a2eab9f7db52f&.٭Z+M1996f00ee4cbbb2f858c63cf8ebf847d 3g=(+M19f23409e30755e63de1b5e4663baaadA.+M1a22a27d62f7e10f5e62042aab105ea53F +M1a52ffd2535600dc2ca61dd8d33a8cee.+M1a94519d6e7ac02a84dba1b75c937a5c}. M +M1adb47c29edc2d8270c7a8d72e526ca9-..1+M1d2860fbf8b989800e6f999b22b55837y/.=+M1d3dd558ffe2ceaaff0a3dc82c8b8424M3!9p+M1e81e710220fc964e2153f79e496194e0G.4 9rGZͿۏaM latex-e5010fb1e9ac6c0552d59d87223f4d61.pngAc05d4a917c880349278bd187dc3109b06Z͖aM latex-9a587ce192c15740f1f32fdd74d935bd.pngAbvj0a5188792c43ec4cf8c8ee7a16eda762Z̓UaM latex-13cc635fdb3f3d45e4d79faf3c64e5e1.pngA]¿ed5253167872fa5a6aab5486271fa6e8ŹaM latex-b3215fc62aa5be760e5074dff3169b74.pngA^.DG\)20b1e38992e7e974da689175cb777c69YӦa M latex-3c546078550a64c459fc484e1f07714a.pngA^-14c3827e86c9cb80298298144f95fe08YΈRa M latex-78331122e25a51d5aeb91fc8dd7fb9ea.pngAӦ bc6113a38c6674d1d462dc2f154a3386Z˟픷aM latex-bb973f116b0c9c22e8aab830395ad0ee.pngAӣHuad114004bbb1eefa4067ab1ff66a6eb0YѶSa M latex-f2c7dc9c50c5358efc9d61b508b5cb12.pngA]tT811b1abdca3cb78f7813f5900f40cc57ZºaM latex-9337d7b81aa6ff35ae4928287b024025.pngAӎ&~b1ba87a198e414f7d660b26fa75d4d59 44j BxP(^5alatex-1c0a079a854c1e522fa548bf0d6eeec0.pngqG.L5alatex-1cfff04c2dcb62641945833a34f2e6e8.pngG3!:b05alatex-1d0783cc30a895840de8dbceca60a2d8.pngC3z5alatex-1d4e6263221974ae5460b0340ee6018b.png{t'.v`5alatex-1db2eec58108991bcf177152d88343f9.pngwSO.O5alatex-1dd38e88b185d772bf3ced805756a916.pnguo.W^5alatex-1e342550acf2508182564233873e67f9.png0./=5alatex-1f4f77b9aee3e6abfa8617137c78b339.pngN35alatex-1fc5d45ba8ce05512737d7fa597f26cc.pngjY.)~q5alatex-200e9c41cd10bd590b2aea9cdd42d76f.png.Xw5alatex-204b8c0f5078322a08b6ead96e44895e.png,N.6X5alatex-20ef666a1cafff2fb2415cb149dfde49.png{s.45alatex-212a6d8d88778d7906034d1ba42d3a35.pngktI.-5alatex-21549aaa2d3a2a1ee13611a6c79a0017.png`3!0l5alatex-2203d45fb993a5c9a42519ba774b55e7.png;.vw5alatex-229462718d7798e4d84a92d7121ec7e2.png35alatex-22a41f8e836da8cf4ad31c7cba126743.pngDg._/5alatex-2319a4ce099183a85bd4f80ce38c78ef.png].wiT 9qFZaM latex-f65332219c4bcb86b84b0fdcb6a250bf.pngA`6ᙚb15fe40efd2078690197b9631e1e93c3YSa M latex-fcdef3fa65d9126d21e4093146a931da.pngAab2e9b023fc19b8faabd492c7eba5aa6cY« a M latex-71fc1b9736dd17b8645e28c1d572c5bf.pngAUu2c03dd22707c59863c90dcb3b59dceb7ZaM latex-df141d37ebc2faf9c904450c4a0e4ada.pngA`2>d1052677165e240bfd9bd921609c589fZιݒaM latex-556b7a15989b62fd6f1b8b821b9cb833.pngAVbSb25982d62720c72e0b365093b911319eYΥ岹a M latex-87aced054576de3dc7eb5f400b88453d.pngAaإ/b40c21f9c159041cb4146a0177763418Z΍ӇyaM latex-3ad2ca1217226621f3852d0e71f2339e.pngAӧVnd37bff94bd3e339b8063addd99dcef08Z·ӘPaM latex-6ae1d1a508d1026b091b333fffe29364.pngAӦ[b1c73c95e71b5807dab561076b4a933aYؓӘfa M latex-46b8aa37c7ab7636b8d27df8469eb9c1.pngAӦ]p887bec686fde0e9c41029beda9befabeZԘaM latex-6e183f697f3c0cbca6c6775fe9eb63ec.pngAW\G0efe92e2b78fe60a58a5e034d95a7555 9q GZۓ˯yaM latex-04c38d8909e54d9064b366f0bba7fd22.pngAӤlj\a47a0a6e395808c3cde5792ec8391e9bYܙ}a M latex-11557c1e70e4ca26c874ecec5c9fd972.pngAWW1386e10724c165f1eb79fbc4ed0799cbZѴaM latex-82b4c0732fd3b597d9c1ce22fe2d7005.pngAam43568fe7cab5329917fb4546ff9da937Yѳoa M latex-897af8e56556f7e4f3ab4c69e692276b.pngAbvF360310fe1beb91de62234bfe1f402f8aYј!a M latex-8833c6627997939b9efc56228daf0193.pngAӣIZ-05c3e9cf57c678deb22017e6023e4039ZֳaM latex-a1445bf4d46baaddbd9de7018a86dd87.pngAӣI7Lc040ea23d53979d8230aab04d790af81Z޺aM latex-2caed8f0356e8048f9576fff936a52dc.pngA^.DGdd31a273bb9cdc7aeb17029153eaf3c3ZaM latex-f7349e8bad9b642746fd57ae453e7c7c.pngAӠlhuf6cae54e636016f64fff61b4ed0ca7f2ZϞӘaM latex-66b413232b0d5fe817aee0df4fcc76dd.png AӦa3a291cd385f7485b5c3a70cbf5fe0b5aYϚس8a M latex-297b18e86e948d96fa00997ed232aa06.pngAӤ 8e286f25e93cbc24b3cc3b460eb0e9976 @lHt$P|+M25cf37d29152d8553e9037a8c5314aa7'./Q+M260175af890f64d3ecd2b95049282a39 . p+M25cf37d29152d8553e9037a8c5314aa7'./Q+M260175af890f64d3ecd2b95049282a39 . p+M283de8e098c922684c9492e19ea5456c'./+M29a2e68316f46007517fac414baac417.Sz+M29b45661ca02f25c0bbffd5da14fd9f6;.4&+M2a706ec8c718a1e5224c3dbee475b2227\.v+M2b4addaed4d24cfc1d7d64d9552e250a].S{+M2c03bb2deb476bd631f66939a1d3bb4c.T n+M2c03dd22707c59863c90dcb3b59dceb7W. +M2c0b47d84925de54f937679bc77acc85.w+M2cab74f08f46fa751c26337e9966ba71C3Iþ+M2d81cc0aa937df3b5f1a2f0a88f676b3.s+M2d81cc0aa937df3b5f1a2f0a88f676b3ۭ.+M2db330ece4c4b51590d11b68e32bfa0ck2J~+M2dd869f8532747348bc49e489565e4a0k7..,+M2dd869f8532747348bc49e489565e4a0..%+M2e2cf98f7cddfbafdadeed58472aa282@.+M2eabaaa054fc74050f6d25b8ed1be4cdy.Y+M2f0a46f2a600f96abba14d26221b106d^).M+M2fe0ccc6a1f41dfa07e1827d29b638d3`.v 44j BxP(^5alatex-24c6674ef64788933c020bcebc192c95.png2n5alatex-24c9aec67fa764f6717bf7f29c02e14f.png3! 5alatex-2586a1a5e62118f2327fffbe1c9dbbdf.png7p.v( 5alatex-25a701967bbb6c0e68e37be226825d92.pngP .&5alatex-25ae053e11fe07514359f6af3c50385a.pngۭ.5alatex-261fdfebea2f1f58182f60c6a3ff3372.png+.1|5alatex-28206d174c8ce5b812e734abb17e8a55.png.5alatex-28d577963ceeb71dcfe10059c8812c0e.png_.45alatex-28f7a9daf1f913f71dfd4869fb560d03.pngo5alatex-306b999945418330781984150a7947a9.png.w'5alatex-3106c58b7ad4636b5e2348aaa5707da8.png/..5alatex-325ddb9ed3622396f62616073ffbaf34.pngo7a..5alatex-3334d237ea96ee9f6ae60e264bfbde51.pngYI..z5alatex-33f12124ee228a887419214259a2c75f.pngg_.ee5alatex-346cb1d5186d2d28b4bb75b1cdde7010.png3u5alatex-348dd70be80889c046c92290320fb852.pngsG15alatex-3560971ae79c2a261e4ebf552404d31d.png35alatex-35730b0e7ce868ddaec088d4f24e45a0.png|.5alatex-35935fc41d53c2a8dfaa92a57479a1f4.pngd.vQU5alatex-36b72dafc5a3b4e0fc718372a7400cfd.pngG.5alatex-3765a68297a7c93692f2835f4c003e6d.pngׇA3Ĩ5alatex-38ee566ca53c3706cf4ed7b7ff6c1949.png3h5alatex-393d15d7fce67c29894f8c7b8311cca7.pngI9.m5alatex-398c43a76c4cf573bd8fd52a60b35d9d.png{.{+W 9sGY؀a M latex-f12b7eeb8c4e39121208578201f614fa.pngAb{TZd8202ffc8a0efb756beb52b4bf2c1879ZҰ}aM latex-a571084a74205ea272f7692fd1ee0511.pngAW(401b0c4a5d6ab088f6dd4fdb08e2f16dZ׹ײڿaM latex-5817a29683634ebf007f10916a542c7f.pngAa1hs4ee48f2c15789d6eab678bf54051e2aaZӘaM latex-004baccc991f2e728537c14e952df44b.pngAӨ24e5b3ffc4153228598c9b98e65fab46Z߰&aM latex-6127b177ff411603f609a39d85214ed5.pngAӠl+g;87094429633c9d7885958fc8f909ebc3Z֛caM latex-5bc9965528f6b5aa6317ba2116ebbc4e.png A`6Ddj4998d496956bf899ec9678289c578fedY֖a M latex-d52e96bc11da97a326b861ae59fd1683.pngAV\ȴ07f21c2b25b15d85b4043f4ab402e8c5Yֆ󗍓ϖa M latex-61c73a1eba8746ddfbd74fc6ff0831bf.pngAӤ x1'dd3c3291ad536983d53ccd1c8cdfa0deZ㙲¢aM latex-47bb4693ed08d45e21eefd086086c9e9.pngAӎ{̛7f3d2780e6ed73657ba1088576278866YОba M latex-ead0d0738b599ed36263f3f6258f90e5.pngAVKj0bc90e7d07aca68eca561b2f18db992b ~9q E~ZaM latex-66dd0afa5094c9b4aef0c4449e63edf2.pngAW[?}f2f7718c170b7845538f00eb22c2f2fdYٳLa M latex-5a972ebe00dae8293be9e57e97724aed.pngAӤ#o8e0352dc27d201c96554ccfcc98b425dZٲ񺵊.aM latex-c0b2c21adb57fadca0a0281b9b5574ee.pngAӎA467b5eec54cd6c1580e8212d17b568c0Z٢ӪaM latex-471ddb1c80e4c37ce47ce11801f22e66.pngAE(o;d561936c18661c24e0e6f82980e3a7727ZaM latex-e2db586c277fcef555d00061aa656451.pngA[!&315ce82e601463a6e71e6dbaa1b19528Z2aM latex-d6fb8dfc16443f7f25cc3e648421253f.pngAӠl+h 7f4df572b29e1fed66cd9bcbf69cd840Zخ?aM latex-0b4a0845bff32da96bfd49bb14329485.pngAӤ S30310c79470dcccaa78dce77f3c9b311Y؎ža M latex-8b0e2403a290f0d87b2f2e79b0c6532f.pngA]2ro4e7b827bfbbb82e718d9085cb2a3d6beZ؉ҒڏaM latex-78e9b186b0dc9b105f608ad340c6ae69.pngAaAE187f364cb7d4633f3a2a2eab9f7db52f @lHt$P|$P|+M392130ef0f3a15a44326923e3a857f61AY.3֬+M3a291cd385f7485b5c3a70cbf5fe0b5ay-38+M3a45a8c39d3aa066c23dbbebd0848d5c-Q.٭Z+M3abe542a3546983e79d4f2baed6613881.>6+M3aec0a76b31ec6c1cfb8bcd1167269eaS.٭Z+M39e37d4c649e04294df75bdacaa074a5{t'.v`+M36ed2054ea275774a8a3efd5f1dda634+ō..$+M3705cd408297eaa9c1ec9239be557f94}.54+M375e439cc4228c17602119cdafa95798/2xs+M37f931157b9a1e563d0a09fa65f3ab29a.W+M38053f622e7527aca613cce86589b75a3.6+M382000f2464514110c2c92ae5b733220B.5+M392130ef0f3a15a44326923e3a857f61AY.3֬+M3a291cd385f7485b5c3a70cbf5fe0b5ay-38+M3a45a8c39d3aa066c23dbbebd0848d5c-Q.٭Z+M3abe542a3546983e79d4f2baed6613881.>6+M3aec0a76b31ec6c1cfb8bcd1167269eaS.٭Z+M3b37c11f5cdb506ac17c1a8bf07a0ded)Q3}+M3b410518868f6fae85cb458f826d1e3d 2S+M3b8d848023d5134bcaf566be0f3ddc3c.Ls+M3b9a2a01462a7dd306e5732e13bc589e.M$+M3bc94c8d654608f445e69a6809ed7e46DM.f 4j BxP4(^5alatex-543e934dc6ad7b6b7b3892b1b0b307cb.pngx.ۅl5alatex-4f00ce450c08d4ad9a42e5ef4e5a479c.pngM3!9p5alatex-4f6222891a5b03e0977e816dd7450caa.png`.Ny5alatex-4ffdb0aad9da1c8237a35a7355dfb2ff.pngw..v5alatex-50514afb627889bef973988df223fce4.pngU2M#5alatex-5087440712db82f3e5eaff20c2a9f591.pngB..t5alatex-524b816cde3362d9ebd8d5825a03f995.pngT.5alatex-52512feac5a8558e8436bf1e50e3112c.png.T n5alatex-52f59dd155a41382314cf9dca9532732.png\.45alatex-5361b25afa11b2f9a15fef7469381287.pngj].5alatex-53bf52dfd6ba569c001db4ed4f2a0d6e.pngP.d5alatex-53fc0c112290bc499c0d19e4c30c487b.pngI. 5alatex-54a36739940e289a19b4e13a1478d702.png%.{Q5alatex-55167d1545750ac9077cba5f077c35c5.png.r/..w5alatex-5533541683a7b4b28c2c8d2c92fea32d.png3!95alatex-556b7a15989b62fd6f1b8b821b9cb833.png..v5alatex-5595ede88dea4e5fa4c939885aaef3a4.png@,3i5alatex-55b623cb22ece94c22b18ed0d528e65a.png&3~ %9q P%ZaM latex-46e5bcf1c6f47213f1052c45de5b057b.pngAӎ{I3eed5fead11c10c5ef5c45a6546a086fYǟےea M latex-9f289df46389ee2cbe015571bc375d2d.pngA[fR9ff4427e1388936b852223effb719d7cZ~aM latex-aedf3864b5c870341a923f4072601259.pngAӤ #2db330ece4c4b51590d11b68e32bfa0cZaM latex-902238ebdd4b84dc8943121d0e6eea8f.pngA^-q]`B4805ad34d98a957e5cb4f6d8c9d31a52OёM M feature_subset_selection (1).pngAT>"8b7f816ead848b720cc6980d0f04bb01ZaM latex-f4a98cb4b897f2318495d8289167d002.pngAӤ D d059f699fdb7d0b665c0663e31bf2da0ZڸaM latex-75516b2085f4a4f38d2c80e382bda01a.pngA`2>{8d5a4a67b8c356897dd63d10e4a33537Zڨ̒@aM latex-b7c2e5fb84597356e25f51f4e25c37ae.pngA\5?229a63e8592493168d6c14655ddee186ZڙUaM latex-eca03e1d96b4394427a5245b6cc4bfdd.pngAӎm162f93613d8f1082eea689a58788d3cfY灒‰ga M latex-5e299519ee46593d377a6bb95626d55f.pngAUrD15b26ccb536ab55f50441e80f89af84a8 4 Bx4P(^j5alatex-8f20e53e2b7210dfe93e5a435e105bc1.pngd`.D5alatex-9467e056b883e337c439d6900d0ad8d9.pngbC.45alatex-8c47896b8dfc050dade35e6b39fbadb0.pngꀏ.e5alatex-8d2742899f9f9cb250844efe1a2b3889.png3+W5alatex-8d84ce1d41af2941408672adb5f78307.png8.k?5alatex-8dcc0356bbae56affb27e4661fde48fa.png".vՋ5alatex-8e13c9b943937dece2f4b95fa76f0232.png;.4&5alatex-8e5e0e9174d385cfcac2280eff35e420.png$.g5alatex-8ff4d4f507351f5d82a01bf1b00c0803.png$.ZH5alatex-901047b76f295436c30e7e1ebc732514.png..v5alatex-902238ebdd4b84dc8943121d0e6eea8f.pngQ.5alatex-9154f09f51d48788b45360392da75669.png.5alatex-915b9fcb1a355919d8d0b212f2c26bea.png(.R5alatex-91ed520cb3ebc675882af5ecbbcda7c6.png3".vƂ5alatex-91efba5c956109fe711d76817c36505d.png*' 3~5alatex-924ef4e3e4ff235217ac8478da35690d.png.w) 5alatex-9337d7b81aa6ff35ae4928287b024025.png%.١:5alatex-939c3b95b81a053ecba5c0684c7cd81b.pngTg3!;d ~8q E~Y챒a M latex-28206d174c8ce5b812e734abb17e8a55.pngA^/Km096f9463b68aad7c6fff28f78cb6a636Z빲qaM latex-e2ad13916be3de2b65374c3822677b87.pngAӠlRD8d019e31a16e99a7ee97480222cbf95cZੳټaM latex-b11e8c73ef2c703ce5f5cdda12256f39.pngAӘ9X7959580e9ad9ae8554ee10744901e843Zܽ܁aM latex-103aa677a4801eeb2955c35e98668d21.pngA[*M2c0b47d84925de54f937679bc77acc85Zܨ󗍞aM latex-7215e2b0311a9ed031dfc33ef6a47908.pngAӤ D b4294f0baeb8a3ea57910eb5ca77fcd6ZܘaM latex-14e70cbfa8ae11331813764a567e7253.pngAӠlz|2fe0ccc6a1f41dfa07e1827d29b638d3Y܌߯Ga M latex-eb5995244a34103c40305b2c90e0d2b1.pngA]>q$8b0f23e03268bf0eec6c0ed101e09ec6Z܋aM latex-3faec9566415fa5229d1fa41e9e38e1d.pngAW[4a94a49ca5f1bb2ce8c844d642f51c2bZ܀aM latex-28d577963ceeb71dcfe10059c8812c0e.pngAW\,R1eb5873e7cd117a01a63ae5f190617f4 @lHt$P|+M40540b4fb2f7813fa27a56e7027876d4e)e.vÔ+M40ce71920ea9c0fe3ed13af4daf5049a..v+M3cb4d5d7afa0e397367e3839c9138f27Mj3t+M3d1611bc4f796b0e0180764d8ec0eba02Im+M3dfc589c6b2f2d9dbfdbb10da7d45ad22}P+M3e5761f4a26f3d5d6f66a93801ccc6d5I. +M3eed5fead11c10c5ef5c45a6546a086f.+M3ef81382c4366899f82e7ff7b984cbcaժ.M+M3f0f07ee5147cf47fb2a41b21d77dd45ف.Qܥ+M3f54a53e357b3c2be8ae79a203c8ed34 W.vX+M3f91775ab5e3ec64ddd3234627dc426b@.C+M401b0c4a5d6ab088f6dd4fdb08e2f16d.4&}+M4032ca4fddb5a68ceede86bbf63410f3G;.d+M403341933ad819a981ae84b81202ae12F3~+M40540b4fb2f7813fa27a56e7027876d4e)e.vÔ+M40ce71920ea9c0fe3ed13af4daf5049a..v+M4111e04955d386b24703ea858a32e0af0./=+M411c1cae369e862b3255076dbfc1df93.S +M41f68a201387ca6698fa756baa2fb1ec/%.vÔ+M4209bb8b073e449957cd6cf2d8dacf00\7.+M428b5a21272440067f212eedba7e4b9cxS3!=d?+M42b538306dd8f7caab0d1feb34d35282O#/.2H j BxP(^j5alatex-95df2f5498c32abeb12e0e789c56a877.png}.5alatex-9c07bd159d733861e5c8cfa921fda825.pngie.v5alatex-957b7e1cf3c4e2fb756a97fc48d6b169.pngv2L5alatex-95c63d6f8eb1560cf4420761e09c80d7.pngq.5 5alatex-95df2f5498c32abeb12e0e789c56a877.png}.5alatex-95f5a67a8c7732afc8670350fc543745.png.4e5alatex-969c0edf2a52a11bd6fd8c00bf516b24.pngB].P5alatex-96b7077aa8869d65c9221b6dcde14823.png W.vX5alatex-974c762e14dd43d646526b4f6aedda56.png'3!5alatex-97bc05a0562e11b43817008583c37027.png2e.15alatex-97f96bd6adb3e9e384b8a018c4026c9c.png‡.f5alatex-9a19b91d9a6a6c5496fe1a44a0c8dbb3.pngSs.5alatex-9a587ce192c15740f1f32fdd74d935bd.pngY.i5alatex-9a657a9dc8fcf5163d41801088f8303f.png`.45alatex-9a8583443430ecacbc4af1bd580097ee.pngk3!"D5alatex-9b680fdd16b5642c9322b860a9ac53dc.pngZs.٭Ğ5alatex-9b81da8df994748f713d3990f87c0cee.png,D./LN5alatex-9c314e948969e51c4a633f7b76757e92.pnge.+ ~9q F~ZߊaM latex-5ffa04074ce5d6669e4d63da47a17144.pngAӧahs8a312d78889403ff1208792984e09938Z߅̐waM latex-a4c68ce1ef50ec5dbed3364ce7ce838a.pngA`;308c2ccd9c7f81bf827ecf5e169f8087Z׆զaM latex-e05f45c547c368030d569e999601e712.pngAk,9X4209bb8b073e449957cd6cf2d8dacf00YܣaM latex-764310a7c87d9822b00c5e429cf772ee.pngA[5ec91e1efc1844c3949ca48829f513e7Zފ|aM latex-261fdfebea2f1f58182f60c6a3ff3372.pngAӠlhd90a0dd021bc3cafd8eda8e6b97c8b86ZaM latex-36b72dafc5a3b4e0fc718372a7400cfd.pngA^-q]V97c49f9eb158615a35f0ed16373790dfZފ?aM latex-fd41fd6f69f307ec03ae2b948e783b40.pngAӨD428b5a21272440067f212eedba7e4b9cZݿ4aM latex-da7af1d5817760183a77d6ad364c5797.pngAU3o640a1aa7f71f405f57908757890aeabaYݢa M latex-398f540d9a7730499cdf60443fa02d27.pngAӦ]˜bNf1f08439528d7f89661572e77aeb83fe 9rHZؓaM latex-21549aaa2d3a2a1ee13611a6c79a0017.pngAӨ1Q4440708949ce223e0f9df12c9142129dZ󘊖aM latex-7950103b924399fa79caa59f26220081.pngAӦ =y78361172e95f68326374b23bb9e01b5dYƝMa M latex-7f51c1bed642d5cf4ab78d5392e63623.pngA]LRca1efe39900add51febfcfb0e7475422ZಠwaM latex-f88f86175e29f5a0afa5e28c4f3ffde2.pngAӎ6yf8b39bf0ad2d8a2e3af58803939cc9f0Yیa M latex-0da75890768e87df94537a9cfbc94e62.pngAc 329d7b74d1ebf9a3312e47a4029f304aYDz!a M latex-0c62dc47839dc48072af446b39d60bac.pngA\7^E87960a18f929c343d917127a0980bf09Yә a M latex-24c9aec67fa764f6717bf7f29c02e14f.pngAӨ)77915eea0d9ad8bafc3be38a4ea7b8f8Z󘞁aM latex-3fde7da2709b6af15afb852afbb40f80.pngAӦ^LVa544cb3c2b5f17e2c2aedf9ca032d0e9Y߹ՒBa M latex-95099f8afd9ebcc4561dededf031e4d5.pngA^-~-c2bc8a93c5efa7557c1bb3a1b8335f4bZߝހaM latex-1dd38e88b185d772bf3ced805756a916.pngAӠl4Zb19eba54b8b2d2fb99280a1798e9ac2e 8rFZㅭaM latex-2f403e916c5fd98375843f0015fbb7ec.pngAӪESSa288fadcbd0b46f828543d5cf8dc7e8fYヴν(a M latex-e6714a2af07581e06c7716b4c305f516.pngAӦ 1996f00ee4cbbb2f858c63cf8ebf847dYܠa M latex-0a3fd0c8194f9a3fd5c50eb7cce75110.pngAa/&y439c8e72b99b6d32988ce112246e025dZ̒aaM latex-c211988c233322790016ab699770c3a4.pngAW[Fdf78db922703049f605aaaff49337601ZߵҦaM latex-7a584c3481aafa300814e0a95cae9530.pngAWU;;480ea60efb393b9dab123a7ad336356fZޓaM latex-a71ddd2cef2b6ea5788eeca7d6192fe1.pngAӪESS875ae600bd50683cc4edffab6a970d7bYȏ`a M latex-e97692b89823f8c24d017ccf3f31fcd5.pngA^.`7f54e9372f9567dff2ced73c42122dafYfa M latex-97f96bd6adb3e9e384b8a018c4026c9c.pngA`:#33fad29c3701f0e23b035563d3ccd9c015ZֳaM latex-cb36ac5a5b4ce8744f84579db7dd4fc2.pngAӨ$5913a777cb223aaa8d3445d40d37ee9aZᓄ˚taM latex-2c3d477f393240e62ea714016599c0f6.pngAaTIa8c521172658c19226c4cce7eb636bd4 @lHt$P|8+M566831d37fc4124e5d5a047bd06f0bf6qG.L+M4ae1a5f1d30d8cba724cf9b6181918d9$_.5+M4aee02d3a2e0605a10270e9e38495bf9B..t+M439c8e72b99b6d32988ce112246e025dż.n +M4440708949ce223e0f9df12c9142129d`3!0l+M46022aa7aab5d5605b66ebcb7193dc84B3!+M4648c92ae4fabb0beee518aad6673ec9-3Ĩ+M467b5eec54cd6c1580e8212d17b568c0...+M46e40864b4b986ae81fdb6b74ed2dfefj3!2+M4805ad34d98a957e5cb4f6d8c9d31a52Q.+M480ea60efb393b9dab123a7ad336356f}.4\+M481c05cdf98ef2c2af846d3afd72f71dC%.Hk+M48239fd7387c4e557582cdb26ac046bc.+M4945dfc27d23899d827281089f6738c1U2M#+M4998d496956bf899ec9678289c578fedl.N%c+M499c9a9d5752c9a9aa65cacb60341526/.2+M4a1f9aed97de88d5424bc0193673bb8df.-U+M4a94a49ca5f1bb2ce8c844d642f51c2b-[.4<+M4ae1a5f1d30d8cba724cf9b6181918d9$_.5+M4aee02d3a2e0605a10270e9e38495bf9B..t+M4c47ff008426d8f77229f0edcddcfd05d.vQU+M4daab1877ae45c48e84a56dcc1594318bC.4 BBxP(^(^5alatex-9f289df46389ee2cbe015571bc375d2d.png.ve5alatex-9f708bc7350b385de0c09a0503c8dd70.png.45alatex-a0a8fc23b80264bf782ccdb867dc4bd1.png.O.p5alatex-a12fb94416d61035e177ec0d2907cdf4.pngm.5alatex-a13555f6eae97a2fb8e998c7ad8ce84a.png.P.N5alatex-9ca5f8e34447ce73d688aa86528c6527.pngC.v۬5alatex-9d9747df8e64eb17209006c1c7ddf41f.png.5alatex-9d9cb5e272fdf83cd3984ca5c32d792c.png!.45alatex-9ed854c405ccf7ee5193e2e0fde60e43.pngZO.+5alatex-9f26534d5636fc7ebb583b0d73245d96.png$[.vM5alatex-9f289df46389ee2cbe015571bc375d2d.png.ve5alatex-9f708bc7350b385de0c09a0503c8dd70.png.45alatex-a0a8fc23b80264bf782ccdb867dc4bd1.png.O.p5alatex-a12fb94416d61035e177ec0d2907cdf4.pngm.5alatex-a13555f6eae97a2fb8e998c7ad8ce84a.png.P.N5alatex-a1445bf4d46baaddbd9de7018a86dd87.png2}Q5alatex-a1d6fc64ffbe5ebc266326dbb276f315.png62{I5alatex-a1f7f8608fe86be79cdf44bd60f6737c.pngٹ.4T ~9qF~ZΝRaM latex-ddb332ff16245984d8ef0a6e91b2618f.pngAab913f318816defd6cf543fe31dfa76feZۓaM latex-afee8898c907048fb8b433f2020d0a07.pngA[/f5d950f555712cc86e55d817ccf24c55Z۫aM latex-5793ddb6bf63b446afeab9092408115a.pngA[ӋF7323244c03c3b69e0e10b6f1d9f51566Z³aM latex-f9be3cb1466c284b5f878baf0d9b9f1b.pngAӦ^)\)403341933ad819a981ae84b81202ae12Yәa M latex-ddc77873ddd68ac24ac266dad268735b.pngAӨv0c9788aa383d6f5404b5ce871b226620ZɳaM latex-c54272f3669879cd3c28a056e527c3dc.pngAE(nyd6211a4dcd8786e961be67d75b564256ZԐaM latex-4c47e6837646a291f7fffed6caec0947.pngAW\{f8c16f1c959cd5fdd7b1955dbc70bfecZزܠaM latex-e4c76abb412d42185ed7ec4d2ec8e6e6.pngAaP89fc23c302103abb8fc09b437c2fc62aYĒa M latex-3f2de45142af7975ef3870612b6cc226.pngA`2ea0fa46c8e448fa306507e553bdb8f716 4 Bx4Pj(^5alatex-a88e6a7742489d928e42eae29cf74b0e.png{.5alatex-ada20584a1e70804b3450ff55b992b02.pngok.p5alatex-a71ddd2cef2b6ea5788eeca7d6192fe1.png>3I5alatex-a77648762dafd8f37c40f6ca3262fac5.pngl.!5alatex-a77bea5ee34582ed8cd4cb684fa26171.png2}P5alatex-a7fcc1f96435acc39d8b3ba7e6250bad.png$.q"5alatex-a87b88e15fa26141ef2a71b5b73e4fc3.png$3~5alatex-a8ce3d373aeb260b6f7ac0da93bd28d5.pngQ.5alatex-a92088a408e3908d6d58b80918b34494.png3!5alatex-a9bdb713f7fead5e0f7de19044c0441d.pngk7..,5alatex-aa3ed87d9c57734cad8371798e2018e6.png.Ls5alatex-ab17181c5f9100658fdc0090d1539550.pngN.5alatex-ab7ffcacd9b76f4d0c7e3db8824ac6f8.pngs.x5alatex-adb5ac1c95d1de1f8ca1f7181567eee5.png 5.vP5alatex-aedf3864b5c870341a923f4072601259.pngk2J~5alatex-afa41ad35808673af920a60ea6fe9a02.pngq5HE5alatex-afee8898c907048fb8b433f2020d0a07.pngG.vɼ5alatex-b06eadbb8259d724f919f66b1c7a9106.png&bE.q 8q FZ石ŠaM latex-95df2f5498c32abeb12e0e789c56a877.pngAU}I7bcbb3e1dec7528eeb6e9b5396461619Y玊a M latex-c3d4db92231863ac8bcc80a1518df025.pngA[4we618f3f26a17d0273ba032283a6fd5e8Y󗊍na M latex-24c6674ef64788933c020bcebc192c95.pngAӤoZb2451c781deb8234490d0c5daea81941ZۏaM latex-a77648762dafd8f37c40f6ca3262fac5.pngAӦb}T313f235b6104ecd202587ceb4e7b2775ZɂHaM latex-8ff4d4f507351f5d82a01bf1b00c0803.png AӠl41ff78ea16a4010b5e9f468e31e1c6285Z摷ԓaM latex-ebbc61173c949b9704b9082163ab4666.pngAW\A62e582d2ff0762075e786fa3c36d57a6YȲ6a M latex-e9bcec56beeb70a3204b690c204de04a.pngAV5?}a457e498bf68e5f62dd5735541653ebcZaM latex-c2f556940ba470ced225b3f424c6b3bf.pngAblA&cb67e7d19cd29f2ee0c508bb67ec9b9bZaM latex-ab17181c5f9100658fdc0090d1539550.pngAӠlR97d7347e5a9282c12b7ffe9396877be2 dd@lHt$P|d+M8435cfc9750a2140ed037a6e0cb9a337Yg2O0+M811b1abdca3cb78f7813f5900f40cc57ȧ.S+M82b06e20dbf84a1cf595a58daef09aa7c.Y| +M82b87b5d3441a13a05cec474cc5a2187㚵.d+M82d31cfd8dbf0cdf3bca21988d17c02d(53Rrx+M82f513447496a52b65ebace67431624c 3_1#+M830d6ddcd432b05c16be46cbb1cee9a6./U"+M8435cfc9750a2140ed037a6e0cb9a337Yg2O0+M8453090b18647488f107f61b032ab01b!.4+M86712bdca63e5c3d715254a5fa1e3f425`c.4&s+M87094429633c9d7885958fc8f909ebc3}.0&+M87390d8738ddd09edd9c7b3b5d335cd5Ny.+M875ae600bd50683cc4edffab6a970d7b>3I+M87960a18f929c343d917127a0980bf096;.!+M887bec686fde0e9c41029beda9befabe`3sf+M89b4a546907830f9c38cd142ddc54d74#A.wib+M89fc23c302103abb8fc09b437c2fc62a.n +M8a312d78889403ff1208792984e09938(.<+M8b0f23e03268bf0eec6c0ed101e09ec62.G+M8b7f816ead848b720cc6980d0f04bb01. (+M8c0f7fda4be097bb2cef191792b2c305.k+M8c3300fb0d56a2954f107de37238a5b5}., ~8p E~ZИaM latex-b69599ff38d87cf02bc97dc29fe8d38a.pngA^-65a2baf110789876c873a676f6beb8e8eYΓa M latex-afa41ad35808673af920a60ea6fe9a02.pngAEydc91718aafe82a0249a915913fba6735ZӂaM latex-9f708bc7350b385de0c09a0503c8dd70.pngAWXY#34bf25bae16695e9c21da36b17bf9f72Z艃ƚ"aM latex-a7fcc1f96435acc39d8b3ba7e6250bad.pngA]LR{d911238e60c1fe43eec008f79114040dY胻#a M latex-67593396631a7953e8a24b3aba9cfee4.pngAӬCƨ82f513447496a52b65ebace67431624cZDaM latex-9a8583443430ecacbc4af1bd580097ee.pngAӨba63b516a58a18335cabaeff03ed49d6Z퓘 aM latex-9c46b1f2dc608c71dffaed9672cc73b4.pngAӦ^4jba4f63803f0e8fbee9906a46eb87526bZ綅aM latex-8b902d1babe9c4614c915804db028bb8.pngAW[FV0a2774acc66aad4cc968a28deea2cf28Z紥aM latex-6faf3b1449fbb70225ba3f626bf86e71.pngAӠlfȴ7eb5ecd760f290e037f1c1dd5e050587  BxP(^5alatex-b26140dc0bfdbbf8c136ec032ea8607e.png}.545alatex-b2bd526125a2dc49631b2109de9825a2.png2uٷ5alatex-b14ec06ac7b91fecde17ad52a7da23a1.pngK3gܡ5alatex-b1a02156ae949da573d080a38b8d446f.pngC.5alatex-b26140dc0bfdbbf8c136ec032ea8607e.png}.545alatex-b2bd526125a2dc49631b2109de9825a2.png2uٷ5alatex-b2e16e6d847ad2c1ffdd4bb79d46e07e.png&.vd5alatex-b3215fc62aa5be760e5074dff3169b74.png.5alatex-b35bb377986db173eb012d9013cbfe47.png.5alatex-b43c3477aa8a77a4b75ef175c875609f.pnge.5alatex-b4b346b361556d3568830adbad4a6bdd.pngic.w5alatex-b4dda6cb4befd63adca8cdd2d86d54e5.pngC.w5alatex-b50e417ec9899c1be2ae14ec1a7ca324.pngGj.Nh5alatex-b563b4eab3c7b50c54182acddbb2c653.pngC.n 5alatex-b6942f93006473e61abf9f449cf8c3af.pngAY.3֬5alatex-b69599ff38d87cf02bc97dc29fe8d38a.png@.5alatex-b7c2e5fb84597356e25f51f4e25c37ae.pnga.4@5alatex-b84b400104bb00b52bf505fa53c8938a.png $q.vA 9rHZaM latex-5fbd067ec857ec6a8562395b45cc9c10.png A`6De?}3ef81382c4366899f82e7ff7b984cbcaZ֏ۈaM latex-e730f8b934000249dfee11e102222b34.pngA[!fdbefa7e325f5c14c577f22d7ad89493eZaM latex-fdb7e47832c5638a813021fa6201c33b.pngAӪETZ34e21a9ec0d9d5a71d055f95f0d889a7YҦˆ3a M latex-822adc78a4c39341f6ca618e3a7947d0.pngAUj(cc01871e64815dc8c751f2172342bd3eYla M latex-c635e60c696eee331dddf1137b4b03d6.pngAo}ac02145286cfe886a0ebca460f92f3efZ괣ԘaM latex-d96b4a6ad98639766c951db32869747a.pngAW\99d6f8c827435b7ca4f1e5717d91892bYna M latex-feb6e08096d3154f02a864899f042270.pngA]2M25526f8f886b6f35eadfec6951708cbcZaM latex-014e29240f787ab16621a7e2a4ef0ff8.pngAӦ^S1'5294f61899bcecd93973798710ba3114Zꭲ’aM latex-e29b5fc9503186fd61895b6fcfc1c646.pngAU d9791c762fd39ff64121b7bfb1ac1351Ya M latex-348dd70be80889c046c92290320fb852.pngAӠlle8cfdf58e44d907bb47c2799f24e3744 :tIZ󙄷aM latex-a92088a408e3908d6d58b80918b34494.pngAӨ iaf7da006d3ddd4a279591b3440aa3bc5Y܎Aa M latex-cd7102dad3d467f60ff0925e85e1bbba.pngAbnR95d47c9dec73369c0c2cc15c44343f95Z蓘ĨaM latex-3765a68297a7c93692f2835f4c003e6d.png AӦa5c2ab5f32f23e8098d1b628420f9aca5ZۓǂIaM latex-f3ddc62379f456594bfab4d09c975819.pngA`;Mbf8e351460e9eea322e2efe112f55278Ya M latex-d851430a82ff2e8ce36dc651d460a4f7.pngA^-%025ea7b0521a9fc63d16518f395f5e07Z暒aM latex-a8ce3d373aeb260b6f7ac0da93bd28d5.pngA`xKb0ab5c4c5882e39ef9e321432e709e52Y뤜ێya M latex-ba363802bb5deba466d359f581a01a3c.pngAc*\594a3e8bda1195f364f624a4e7aec702Yڙva M latex-8384e7f77a659273fc7bd38bf56d292e.pngA]ѻ\)9cc7fda445ba28eacc1f19606895609bYݓa M latex-957b7e1cf3c4e2fb756a97fc48d6b169.pngAӤ S"ce8fab2d12f6782015d3b13c513b5b64Y늛Ĥa M latex-15b7f31a05ba810719462e21efb87ed4.pngA]@>d5b11368e4379779aa13c8bec611c3d0 8d@lHt$8P|+M945ba767e10aaaadf20a7a1f7252bea7.?+M8d1e2bf6ba2c1f4663693659439498f7FK.x+M8d5a4a67b8c356897dd63d10e4a33537A.+M8d8a17115e394ee59e128126c40457cbM2u+M8d8a17115e394ee59e128126c40457cb2uٷ+M8e0352dc27d201c96554ccfcc98b425dc2⊯L+M8f787f1a0e5902f762b190793ac272ae\.4+M8fde381d27c95946cd75b8aa08673444 X .ٳGM+M8fff8ffb16d8ef88b7de59a0623c4338C3z+M90228a21fddb8712cf9f422021b7123fK3gܡ+M903e8dd34bafff29e6912be307b32edef3;+M904f20230f34ce44dcb9def8c0d2c900u.+M90cda7e1fe7076388514cf8966a4fbb2 $q.vA+M91997dd0cf2b9c532af14640eaf6df714.+M9215389e1a7c360d155200874a690097Dg._/+M9281fb75b48cf591bc8f9dcc2b1177c6w2uL+M92f0d617eaa553a8b1b0c2d69129f350`.Ny+M94057372ec62ba67d38d47df6f750e3d].4N+M952092e17d32b8f9b567aafe01751542(.R+M95d47c9dec73369c0c2cc15c44343f95נ..A+M95ea38cd136b750b6cea27c722b6d339 ~3.M"+M97376a6de61b342b1d824979f6b12961 .3 ~8qF~ZaM latex-c2e6ee517ce2ef02d9fd06b3ab5b0ecf.pngAbv1563ba1d8984f7ab807aa5ccf2fe7453eZaM latex-a87b88e15fa26141ef2a71b5b73e4fc3.pngAӦ^)\)c62d3ed58eb800803dee9b8b8d1f7cc0Zœ>aM latex-072f88ccfaf5bf60b283e37d3082ec87.pngAӤ _dd3c3291ad536983d53ccd1c8cdfa0deZۺaM latex-a12fb94416d61035e177ec0d2907cdf4.pngAӠlR584131335ae300694b4bea798bc71f9cYa M latex-5dee36465adc316a947af445f0a3bea7.pngAV0cfdd05e282a7b26b143ff92d30211b2ZaM latex-c8a19ae65f99e1913f706d46fe0c33f2.pngAD-60c06182d6ee50a21a8776b382960b4cYa M latex-861cfe25fd0cc968521353e1a84ffdb9.pngA^/K1a52ffd2535600dc2ca61dd8d33a8ceeZӍTaM latex-a1f7f8608fe86be79cdf44bd60f6737c.pngAWX782a3473a3a8d57550e4da32e4f318abZ장aM latex-675de69cd352543710459ab9c5780ece.pngA[ 1d2860fbf8b989800e6f999b22b55837 88d@lHt$P|+M97c49f9eb158615a35f0ed16373790dfG.+M97cd9273b6c48d8e1c38a34f2c484dd1.]+M97d7347e5a9282c12b7ffe9396877be2N.+M97e2e7039927c93e1355c7afa4243a9603_+M98578acd0a296b1939ac817ad40950d4.Ž..+M987ee75c5a066eeee9736157bfb9228cE8A.4+M99d6f8c827435b7ca4f1e5717d91892b.5 +M9ad2204d663461b5280d6f0eb0007f90'3zu+M9b91a30b993c89c890ad6a1ab43285e3.٭Zt+M9c2d35e874f3d50d105a8bc830739dba;.vw+M9c801e513834825deb0b3a1765a74d9bn#.0+M9cc7fda445ba28eacc1f19606895609bև.v+M9d18343244c6d3c806c2cf6d3ef92e72X2+M9d307c14a9a03932a87a6da2474c4bb4{.{+W+M9ef7b2cd3cb20c5f86252229e397b2c3W.5+M9fca0f9301dbc21c0ee4b4475d2e2a2f0.+M9ff4427e1388936b852223effb719d7c.ve+Ma06044ddbab045f2cfa3e25e36db4c5c;.++Ma0fa46c8e448fa306507e553bdb8f716Ɗ!.g+Ma1b7616431579bc8521e425442fee553}u3I+Ma212a241e07670393e7fc5a927a6ed16'3!+Ma288fadcbd0b46f828543d5cf8dc7e8fi3I  BxP( ^(^5alatex-c1a785f49199821216f643b53c4b5cca.pngg.v045alatex-bc59a6df4b8794490949a4a6647e588d.png F3v5alatex-bc9724c35ccccd8de400e7f8451207aa.png&.5alatex-bd9075bf69095a585a44fd4f27a7e74c.png:'.:25alatex-c033c0e897a6c17b5fec5e0e46aada6f.pngux5.+25alatex-b8e112020e020573ba875a8ec434f498.pngd{385alatex-ba363802bb5deba466d359f581a01a3c.png֐.y5alatex-bb973f116b0c9c22e8aab830395ad0ee.png|2v5alatex-bbd62504618bc235cd278d06dbdb64a1.png!245alatex-bc57e5e2e4c32e8a0229c9e28ae0327d.png!.n5alatex-bc59a6df4b8794490949a4a6647e588d.png F3v5alatex-bc9724c35ccccd8de400e7f8451207aa.png&.5alatex-bd9075bf69095a585a44fd4f27a7e74c.png:'.:25alatex-be182d58d49b539d8ed49850fe37523a.pngw.35alatex-befb10733e4dd285e4f09db82723234e.png.w5alatex-c0b2c21adb57fadca0a0281b9b5574ee.png...5alatex-c10c1794873ca37e6cdab19f914e09ee.pngSF1245alatex-c16e499e5e1e50184f182d326a1f4cac.png.ٳ{ 8qGZ۷aM latex-d01108ed3d51cab546b6e3df94b742fb.pngAӎ? f1ae98aa5ffc178c1fac22e619604b2fYa M latex-5a923306d57517f0ccef847d344aae50.pngAbo+3077556e85b6a8693a182c6fc11a2126Y懲wa M latex-2203d45fb993a5c9a42519ba774b55e7.pngA[pb9c2d35e874f3d50d105a8bc830739dbaZٖӗaM latex-d3611d9195cca85df5e61bc77e29e952.pngAӤ K7432903db8c05b902350f00072748037Ya M latex-7f15a1340ee912b6ac713034f014fb47.pngAӦ]50c5698707909808c5576d36ee22d2acY󙄷a M latex-974c762e14dd43d646526b4f6aedda56.pngAӨEa212a241e07670393e7fc5a927a6ed16ZaM latex-40ff82ed16ce60f0a2c9fbe32a233ad1.pngAad21ae6b67049a7973493680fb84a1695Yӗ*a M latex-a3e056f54cd8ad13fb0341ed84b8b15c.pngAӤ ``ff673cd7031bd56ed75c9ab199b62712Z™aM latex-7fab02e4e41c4be1abe1e06b6f26a32d.pngAUi&026148715d02469861ee38317c75cb3fZӗaM latex-a77bea5ee34582ed8cd4cb684fa26171.pngAӣHQ3dfc589c6b2f2d9dbfdbb10da7d45ad2  BxP(^5alatex-c81cd91bd3f935198253e44676352ac0.pngi.o5alatex-c54272f3669879cd3c28a056e527c3dc.pngK5HU5alatex-c54272f3669879cd3c28a056e527c3dc.pngK5HU5alatex-c58f59da296cb195578a71d34989bfa3.png U.{5alatex-c635e60c696eee331dddf1137b4b03d6.png].65alatex-c697741cb0416d85a0e57ae35b8c13e2.png q.ٳGF5alatex-c716286b3a547149929a3422d2e8bd51.png7.C+5alatex-c81cd91bd3f935198253e44676352ac0.pngi.o5alatex-c8a19ae65f99e1913f706d46fe0c33f2.png܀.5alatex-caa03eb9004145737f11be3f805d9bf4.png.s5alatex-caeaf17a6c44cea68624f1beb5b5eb52.png6.QJ5alatex-caefcc89e9d5efbc0bf8546923d8c1b9.png$.Sz5alatex-cb36ac5a5b4ce8744f84579db7dd4fc2.pngZ3!;d5alatex-cb65bea53fc619d35fce5a601106ed52.png .X[5alatex-cb787bcd15c30814ef318a092ca43c12.png`3~D5alatex-cb96fad07ee22fb0f10e14d8c3dec40a.png;.H 5alatex-cbf43f081479a0652676b745d84458bd.png^|_3 8rGZaM latex-4dc48c32ebdaf5106254640eecaad091.pngAӎ7f1f6217308f37f5b2ae277487238f58ZaM latex-b35bb377986db173eb012d9013cbfe47.pngAb|578de052af69c5e997ae5513ede2c745Y򖩒a M latex-3334d237ea96ee9f6ae60e264bfbde51.pngAVTS53d834a21f6c4258cc9eee1046ad7b53ZaM latex-448741eb8766441bdde344a9a9fa2053.pngA^.5V82b87b5d3441a13a05cec474cc5a2187Z񾺒aM latex-7d59efe19803b8ceed4b5a154554bce6.pngAa[Ca48c30c7584a4deec911289656d94246Yna M latex-bc57e5e2e4c32e8a0229c9e28ae0327d.pngA^-~d1dbc24d04c05788a23cddd38f804323YÐa M latex-a21edebfe7460aab4dcdee9a01829586.pngAaa55d08bf1705b25b3ef7e2f82ceed269ZӗaM latex-1bd1931fd4fa58978cdb018b4852d264.pngAӣ=h8d8a17115e394ee59e128126c40457cbZ񺖥aM latex-632cb134781095c2685ac6f6ef9ac005.pngAVmTj2dd869f8532747348bc49e489565e4a0 }8p E}Z񺎱aM latex-e98252aead9b90ee619d0ce3636d184d.png AVmUT301379f78a29fd2438f47210fbcd4b25ZܒaM latex-f0a9655417643f297813ca8abe18c2e3.pngAam615fbdba5895398c378fbae5daad8cb7ZәaM latex-7649f90b82d9366c288791a18e08fcd7.pngAӬBM2108ff23699192fb05c35251da876666Z񽫊"aM latex-625bf6d5176b0c2cc83d62cd23acd0e9.pngAӠl% j830d6ddcd432b05c16be46cbb1cee9a6Ya M latex-ff80c42426a37be4b88d3c58cf31e132.pngAӦ]2~4e57a9b69e949daf2d62e6e273e9956bZ󯛒aM latex-c16e499e5e1e50184f182d326a1f4cac.pngAaLjc558b77597fb8ace26f12099685194d8Z󊪓aM latex-1963a2a2d1bbba25bbbe56f56e940f52.pngAӧVn3b37c11f5cdb506ac17c1a8bf07a0dedZ¦aM latex-caa03eb9004145737f11be3f805d9bf4.pngAUju2d81cc0aa937df3b5f1a2f0a88f676b3ZaM latex-bc9724c35ccccd8de400e7f8451207aa.pngA^-&0d0027defe15a0da0c6fff24343a4481 88d@lHt$P|+Ma47a0a6e395808c3cde5792ec8391e9b2%y+Ma48c30c7584a4deec911289656d94246.b+Ma50d5d862c0101602283b93853e480efYȭ.+Ma544cb3c2b5f17e2c2aedf9ca032d0e93+Ma55d08bf1705b25b3ef7e2f82ceed269⼽.+Ma5dd6a75a39ae81321b54d07521bac54.O.p+Ma674a3fe7d7b51ee44cb614ee5324dbd7p.v( +Ma7132288f26226b74fe03d368957e15aj/.Q+Ma8c521172658c19226c4cce7eb636bd4L%.et+Ma95e48b8e05087fbe0ad513fa1e9df93!2L+Ma988a048e011a7d4b377251c3a8bb7ffT.+Maad9e48ca86966f71025cf6fa1dcf6ac].wiT+Maba6ab8faa3969a0ef1b59d56f895d30OF+.vƂ+Mac02145286cfe886a0ebca460f92f3ef].·+0ed9c140e028f5a2b81a92d20dc7a0f9ZaM latex-55b623cb22ece94c22b18ed0d528e65a.pngAӦ^)\)7c60b844901be968d83248b5d25cf5cdYŁa M latex-eea96d14c313ab0b82248b57ba2a3608.pngA`2d38b939e2ce07ef48c3725677ec38ee5Z瞃aM latex-daeb06f22e15609782167907048f9f9b.pngAbO%97376a6de61b342b1d824979f6b12961Ya M latex-be182d58d49b539d8ed49850fe37523a.pngA]2m;db59a74cda03565358c8e3b84cf883113Ya M latex-8e5e0e9174d385cfcac2280eff35e420.pngA`2e?}240248283bf86d6a254207997edb149dZ$aM latex-e9d9f8e0cfa3e8cdce7be8e61fc988e3.pngAaT3b9a2a01462a7dd306e5732e13bc589eZ+aM latex-c716286b3a547149929a3422d2e8bd51.pngA^.|71dff202c343f9d711303936b368a180  BxP(^5alatex-e0683b040e798b362bdbf59736074b8d.pngj/.Q5alatex-e05f45c547c368030d569e999601e712.png\7.5alatex-dbf95c100820fdd4b1b490ff458c8df9.pngN4.Sz5alatex-dc800dc313865de57fa7918a561ddb07.png#e.e5alatex-dcaf5a5c30d2301ed9d82d1fbdcf5605.pngm.4;5alatex-dd6e1dce3ac67bf287315d6426787ad3.png .4t 5alatex-dd91af7b06a8190a08d6ed817a067b81.png.Ž..5alatex-ddb332ff16245984d8ef0a6e91b2618f.png8.R5alatex-ddc77873ddd68ac24ac266dad268735b.png3!<5alatex-defb2aa500052e14a94baa4d791ac0fb.pngW.k5alatex-df0d3f5c993d07d2e67fcb0b00f205cb.pngMj3t5alatex-df141d37ebc2faf9c904450c4a0e4ada.pngG.5alatex-e05f45c547c368030d569e999601e712.png\7.5alatex-e0683b040e798b362bdbf59736074b8d.pngj/.Q5alatex-e08c52c52a65506c4f033c5230c90cda.png.o$5alatex-e0b2ed2fde4eccfb7d6f443dbc5b3a91.png[.}5alatex-e0bb8639a8b6378b54ecc0e70aa8d1eb.png ..{c5alatex-e23ae6d6654514bf7c6ab109c3fd615e.png(z.O 88d@lHt$P|+Mb80485a423c265f54109259281e0c44e:'.:2+Mb80a0e186b6db975e63a64cc4c22c3f1wSO.O+Mb913f318816defd6cf543fe31dfa76fe8.R+Mba4f63803f0e8fbee9906a46eb87526bi3 +Mba63b516a58a18335cabaeff03ed49d6k3!"D+Mba69946ff9f2fc0c74cba8088d28413d.<+Mbb3715e9876ff62b69f9c480486d6112X].R+Mbbc293e91cb870ecb40d47d79624ac9ecy#.i+Mbc26be38f61cbefbe617c75e6a4ab2d90c..xa+Mbc2e576ab500697c774b974ab889acf7ꀏ.e+Mbc6113a38c6674d1d462dc2f154a33863gR+Mbd05da935b9b95d1806e1a67520c03ab`3~D+Mbd0a9eddbaa60a1531b26bf6072dccdc3u+Mbeb7be070db8dc2023bbea5d14a9aaefY43y+Mbf8e351460e9eea322e2efe112f55278l.I+Mc040ea23d53979d8230aab04d790af812}Q+Mc0dfc1ea282203a8248aaff1cacd44d95AI31+Mc15c5243599a0057531ed3eb78dfc6c3wq.d+Mc2bc8a93c5efa7557c1bb3a1b8335f4b.B+Mc2ee4cec0336f041976913b1b18c36623+Mc328ebdb1029886e054de2e76b0e505f.n +Mc558b77597fb8ace26f12099685194d8.ٳ{ 8p EY߲$a M latex-e08c52c52a65506c4f033c5230c90cda.pngA^.}-d7e2eaff082c92299beee9992865701eYןa M latex-5ec829489d74dfd5688f8a21a3175671.pngAXXX481c05cdf98ef2c2af846d3afd72f71dY a M latex-72206648ee92483bcd72574d2e0aad60.pngAb}dZ1a94519d6e7ac02a84dba1b75c937a5cZfaM latex-7e4d379162cd42bc7479c112e942a4a9.pngAӬD802bc5caa54beac7446561dfdbfb1fccZaM latex-95f5a67a8c7732afc8670350fc543745.pngAW[A7e98f47b9f3909d4262755da12340a57ZûSaM latex-59dae97c17e4e9a98db4dc956af10e1e.png AӨAI3b410518868f6fae85cb458f826d1e3dZ«aM latex-d3389aa1cf539e92e1024824dc5c3514.pngAc+I48239fd7387c4e557582cdb26ac046bcZnaM latex-52512feac5a8558e8436bf1e50e3112c.pngA`62c03bb2deb476bd631f66939a1d3bb4cZaM latex-915b9fcb1a355919d8d0b212f2c26bea.pngA`67L952092e17d32b8f9b567aafe01751542 d@ldHt$P|+Me99ace45d8152b7876a008855f6ae9ba[.}+Mdd82e1adac8d487539782a7a1451e86b{/.+Mdc5209cf43202e2093b0d0def572c28e3!${+Mdc61c591b7ecc7eab7dc7c531ef1264e.+Mdc63e8061d33261274e97b281a2eddb2ie.v+Mdc6457824c3626aef06131b69bf3a48fe.++Mdc879ac96eeb34c966ee18c368050e89?}.48+Mdc91718aafe82a0249a915913fba6735q5HE+Mdd31a273bb9cdc7aeb17029153eaf3c3y.+Mdd3c3291ad536983d53ccd1c8cdfa0de2Iϖ+Mdd3c3291ad536983d53ccd1c8cdfa0de݆)2I>+Mdd3dd1b6c7232b63c055bbf756d413c8.w'+Mdf228f6660a4da3d61e0d971b2b5ad80]3+Mdf78db922703049f605aaaff49337601 a.4.a+Mdfa25ab7f446742efca95eb08c8517de9K.{>+Me05914cd7f9f6c73e82cc411e747a073B].P+Me11a463a92d394fe6b39551bd2a7a36c!._O+Me148f53f24ef0f694c2155d2ebf60387e.+Me2714acdff05bd8069ab5e4129b9facd2w.X3+Me27a2494eb64c21c279f1202a67945d6I.4<+Me286f25e93cbc24b3cc3b460eb0e9976j2N8+Me2fd8ae21d150bf02f728f602207bf6e#e.e 8d@lHt$P8|+M6b853efcbd92acfcabc41fa37a36863d|O3x+M5f15e0f88e6f0381487acf6590a800d0.Xw+M5f3dc7dde4b186a0a6cf44c6c2133b652\3!"u+M5f6df6fdfa62c9ada60611ac9d04b266.+ +M5fb05fe89bbae671715e032ee6d40d3c.+M60c06182d6ee50a21a8776b382960b4c܀.+M615fbdba5895398c378fbae5daad8cb7.M+M62578fdce4bc730589c75a1e333b0961{s.4+M62e582d2ff0762075e786fa3c36d57a6E.5 +M6356db5f42026b72ce65f403d15917e1 /.ګ+M63ceeef1f47369fda171ff18fa852ca9$[.vM+M640a1aa7f71f405f57908757890aeaba.4+M642945c7f12f03ce9d20cdefeac9c852d{38+M65579ceee9db8fbf83e89a72b419e02f/.^0]+M658a1c59f45f1df073b44cb625ba93478.k?+M668e9aa0b4b0f457b433d1aad00d0d25SL..n+M6772573f647a4e50c9141620d5c71cc9(z.O+M691e855020a0b3bd5f6eefe41dc291fe(H.v+M6b2d84bc0230966f4093ade11791628aic.w+M6c0cb1013dbec92915d892b7d929d6dc2e.1+M6cc12c52715156f6e56465a5c1d66b36Y3!1+M6deb324d03c8e81331dc38afb5913882 {.В 9qFYa M latex-6960147845574a76bd31c4d1ac3bc643.pngAWWne27a2494eb64c21c279f1202a67945d6ZsaM latex-f3f0c51947f6e8aed77aac7d10f50b9b.pngAӨV\jfb1bf038012e8f7d4d3afdb7a6b5b2aeZaM latex-02e3404f31d4cfaff745f94f11fb4a90.pngAW\ȴ5e9b7ec7c472e03a163fbb29dce036b5Z«aM latex-7a83cd713299cd0e0ec43da98e46e2c7.pngAc+dZ21afdab748e197b7b380ea6782e4191cYa M latex-d931260cfc70395208b095e458225c63.pngA_Rca7939bee0bec38ffd5e62dbea2d7d17Z۫OaM latex-7f2c4de6751d637d49b2f42c58c07afd.pngAӤo342a0050cf0496a97267a099e48ad00dZԔaM latex-ed87e82d1c70caff9f735565a320b641.pngAW\Жy33194254105babf25476d781fbf6a965YӘxa M latex-4e4971555b00dac1fc2482cc2b6caf4b.pngAӦ _c 82d31cfd8dbf0cdf3bca21988d17c02dZә唜aM latex-46135d9c0241488587eee3c19fe7e861.pngAӨAj714687242e44702ed018806cd6ed4872 44BjxP (^5alatex-7c5a33c3890e9919a2fbc3af2f96d206.pngY43y5alatex-7d6b7ba6c50d504260ef817ce4226d3e.pngSL..n5alatex-7d6343e5f0bbe40df7ce3ab7c5c11351.pngH/235alatex-7cc08cce2e75aac5a19862b9628ff7cc.png5AI315alatex-817238c0e76064a1fb23069064ebf695.png .\5alatex-7d59efe19803b8ceed4b5a154554bce6.png.b5alatex-7e068019aee5de68a6037e8e88f4c3e9.png.ښ5alatex-7e4d379162cd42bc7479c112e942a4a9.png3_f5alatex-7eb58641d68397e077f614c2f54760b3.png#A.wib5alatex-7f15a1340ee912b6ac713034f014fb47.pngo3x5alatex-7f2c4de6751d637d49b2f42c58c07afd.pngmY.NO5alatex-7f51c1bed642d5cf4ab78d5392e63623.png.M5alatex-7fab02e4e41c4be1abe1e06b6f26a32d.png.5alatex-81a39927ea58d5ac5f7ccdbfc3769f33.png 035alatex-822adc78a4c39341f6ca618e3a7947d0.pngI7.E35alatex-826680978afc712a9d671431f4c77e9b.pngZ}.5alatex-82b4c0732fd3b597d9c1ce22fe2d7005.png.5alatex-83189e19831aebcb50b9fb70dc76c011.pnga3 mHj0R <5alatex-a3ac7c351b159591183457ee0fb6a7eb.png#I.6 O5alatex-db9dd6d23e28e629498472d6ead9d1c7.png 3I /5alatex-2d76a637ed9a315c4666beb25e3efdb9.png{/. c5alatex-5f32bd84f7da0180c727b0bc6c595f7a.png3.6 !5alatex-0834ec33b5211eb68c95a81b487b8960.png@.C 5alatex-4e9f1ab30a1e83c4b7e615a0e0f88368.png.c ^5alatex-8384e7f77a659273fc7bd38bf56d292e.pngև.v +5alatex-2319d9f095def11c46168ab9a632c297.png0c..xa '5alatex-1bd1931fd4fa58978cdb018b4852d264.pngM2u "5alatex-13097e93a25952e557451d0e6d726981.png'3zu 35alatex-398f540d9a7730499cdf60443fa02d27.png[3y 75alatex-569b78bfd2497e72d87ce03008517ca4.pngHP. +> x5alatex-46b65754069e7fee6953176026b40f4e.png9.o T5alatex-67593396631a7953e8a24b3aba9cfee4.png 3_1# 5alatex-7b34cbe6c4d1d240f089bcc1817d5f1c.png38 o5alatex-75516b2085f4a4f38d2c80e382bda01a.pngA. j0RH r5alatex-db9dd6d23e28e629498472d6ead9d1c7.png 3I M5alatex-c1a785f49199821216f643b53c4b5cca.pngg.v04 A5alatex-a1fcf62b530fae5bd755dfb51888bd61.pngy.Y X5alatex-e29b5fc9503186fd61895b6fcfc1c646.pngөk.3 5alatex-a625949796b2f1a3d36e321946564a5a.png0G.4 C5alatex-b11e8c73ef2c703ce5f5cdda12256f39.pngK24 j5alatex-e97692b89823f8c24d017ccf3f31fcd5.png {.` <5alatex-9c46b1f2dc608c71dffaed9672cc73b4.pngi3 95alatex-95099f8afd9ebcc4561dededf031e4d5.png.B 5alatex-c4e6f43d02becd5bbeea1a1a9e211ae4.png?.vk G5alatex-b89829b4e58614ab7a970f11680b53ef.pngC.e V5alatex-d6323cce743c7ed15aa016f6d5cfa781.png .o O5alatex-cc836763b1c5995ed75816b26baa3236.png;/>r z5alatex-f88f86175e29f5a0afa5e28c4f3ffde2.png.vw k5alatex-f0a9655417643f297813ca8abe18c2e3.png.M 8qIZ¦aM latex-39dac7620b488ee3116fb9e7be5658d1.pngAUj9b2fab4db7cbd5af4a04d90e49d03b9a8YNa M latex-62a2813ff43d2e7703d67a46983cc1f8.pngA[/ 7517500a748573be6b84a376ea800926Y𓗉a M latex-d31091f11da2597ebb5eedf86abec432.pngAӣPX9281fb75b48cf591bc8f9dcc2b1177c6Z氼@aM latex-fb71e125e0145ceb2dfc4969066a9715.pngAӦ^upu7a230e0732cf212cdd4134368e6a316fYӕﶜka M latex-defb2aa500052e14a94baa4d791ac0fb.pngAc)^0aef30f8505ae4bb24ba175a64e3bbbeYꏫa M latex-346cb1d5186d2d28b4bb75b1cdde7010.pngAӦ]bd0a9eddbaa60a1531b26bf6072dccdcZشaM latex-83189e19831aebcb50b9fb70dc76c011.pngAӦ^LV075a55b7565d2a0714f71b1bd916fd62YSa M latex-8996bc489dde70458950d0a467e8ff9b.pngAWWdZcd7050eaaec488c2807432de7df42173ZaM latex-e3061ed06a4292412cf5433118942ebc.pngAӎC"5526c0e5ef30829d93cc06a60581931fZ檛aM latex-b1a02156ae949da573d080a38b8d446f.pngA]8S08d9242ae23efa8bc40058ebdad79982 }8q E}Z۷aM latex-9ca5f8e34447ce73d688aa86528c6527.pngAӎ? 330786702dbc7cd04238079b80559babc3Z aM latex-85beccecbc5bdc8a3cd10561c4889ff6.pngAӦ =y1a22a27d62f7e10f5e62042aab105ea5ZWaM latex-0342dd81774eb57ff146b3817aa4a422.pngAӎCHf1c1936eb9368501d459f21e3820f5d4ZkaM latex-4ba8b7223a1e6ed763a8ed317f7fb848.pngA^-d!8c0f7fda4be097bb2cef191792b2c305Z܁aM latex-b4dda6cb4befd63adca8cdd2d86d54e5.pngA[*5ec91e1efc1844c3949ca48829f513e7YβĞa M latex-9b680fdd16b5642c9322b860a9ac53dc.pngAaA/cc1494130203b33dbb14a035f428ffdaZÀӂaM latex-122471664b267fb48ffb05d5240d321d.pngAWXf81f2d62c8b302fc14c2d9143dd861a8ZیEaM latex-e972b8a2efd443208a5125ec08c68800.pngAc(745437f5ef840527bd05a731093f8714Z񽫊2aM latex-48c125b7f713035ca52ee84cf419457d.pngAӠl% 34eb7c4eaabcbecee661a2f7aa8ac500  BxP(^5alatex-4822d1bdbfc2d1d7aaff9df94be74132.pngn#.05alatex-48a1710b824ecf99540db2adcba67a5b.png`s.]t 5alatex-578ee61fa23404dafa9120ee43691a8f.png$\.0P5alatex-5793ddb6bf63b446afeab9092408115a.pngɾ.vՋ5alatex-5817a29683634ebf007f10916a542c7f.png.bڿ5alatex-59dae97c17e4e9a98db4dc956af10e1e.png 2S5alatex-5a923306d57517f0ccef847d344aae50.png@.+^5alatex-5a972ebe00dae8293be9e57e97724aed.pngc2⊯L5alatex-5ae2859f4d1b0a87f87850cf89441953.png^).M5alatex-5b3240a4fe6bf0ab95306149ba0fe07d.png+.ٳG85alatex-5ba8876fcd4b1d59cda110a76f494009.pngHM.+5alatex-5bc9965528f6b5aa6317ba2116ebbc4e.pngl.N%c5alatex-5be0644f9a2746a607e8b1b215b4809d.pngNy.5alatex-5c29d3df2c73c6e16fc5674905bb10cf.pngf.-U5alatex-5caa12f9bc5492f9a6c978ca92933c38.png?}.485alatex-5dee36465adc316a947af445f0a3bea7.png..G5alatex-5e299519ee46593d377a6bb95626d55f.png .g5alatex-5ec829489d74dfd5688f8a21a3175671.pngC%.Hk 8qJẐ󘞐aM latex-81a39927ea58d5ac5f7ccdbfc3769f33.pngAӦ_v0c98ce31f4d13a3248c585aefc2b182aZáӗaM latex-49eb96f40b043a65e34ca33f332d33ac.pngAӤ #7386916271c14b931645ae44cf81e411ZraM latex-cc836763b1c5995ed75816b26baa3236.pngAd`Bfc45be6f3e7d8dd59f51013f75b3dd04ZՑ،aM latex-a2f64208b133554334fccdc10f4fc0ee.pngAөYcf0530e8a4d4b57b8e0d3ca1f59114acYa M latex-772a1da8a5d0776b12e8097c98629715.pngAb|904f20230f34ce44dcb9def8c0d2c900V&aM latex-4d38fe7f41444668a0b7adb38c54806e.pngMwG d0533c58e00a29ea19c26027a171bb99Y a M latex-ef35e641afb552a36b27c5336cef5afe.pngA]ѷQb06847f6cf8f9d1c76037260c5654341Z󘞃aM latex-229462718d7798e4d84a92d7121ec7e2.pngAӦ^S1'b479d566315760aa882160c734ff2bb9ZӘaM latex-113d36fe4cd636d8c973b7e7e7a231cd.pngAӬC"df228f6660a4da3d61e0d971b2b5ad80ZpaM latex-a0a8fc23b80264bf782ccdb867dc4bd1.pngA`6D_a5dd6a75a39ae81321b54d07521bac54 78*b7Y玒Fa M latex-c697741cb0416d85a0e57ae35b8c13e2.pngAa11cf362230ded287754695e4c5969d9dZ䱒caM latex-e0bb8639a8b6378b54ecc0e70aa8d1eb.pngAVb24289a3a6bc87f2a36b68366de9578fcZƲ"aM latex-fd0714fd6527b3c22999c9617ec92a6b.png A`6De-95ea38cd136b750b6cea27c722b6d339ZսaM latex-c58f59da296cb195578a71d34989bfa3.pngAӎj566f8011f9b4ab52771850b7f88dbf36ZӘ픒aM latex-bc59a6df4b8794490949a4a6647e588d.pngAӦ]03c73ce16a7f42ff882fe301ecffb884bZےPaM latex-adb5ac1c95d1de1f8ca1f7181567eee5.pngA[/jd23b13e8406e299c53585c49797cafabYԒ a M latex-dd6e1dce3ac67bf287315d6426787ad3.pngAW[Vdaa510ea5ca67f8408f42aae709da7cd=) M Covariance.pngATl260175af890f64d3ecd2b95049282a39ZВaM latex-e469f5319c11bfe36734f0da222556e7.pngAam6deb324d03c8e81331dc38afb5913882ZցMaM latex-c2cf720b08a1ccef5543981b15904862.pngAaMV8fde381d27c95946cd75b8aa08673444 88d@lHt$P|+Mb13a0e769c21fd0c9cf792ac756b8783P .&+Mb15fe40efd2078690197b9631e1e93c3ÿ.H +Mb19eba54b8b2d2fb99280a1798e9ac2euo.W^+Mb1ba87a198e414f7d660b26fa75d4d59%.١:+Mb1c73c95e71b5807dab561076b4a933ae3NWP+Mb2451c781deb8234490d0c5daea819412n+Mb25982d62720c72e0b365093b911319e..v+Mb28bfa9104d210b336fc608dc148ab89P.d+Mb2e9b023fc19b8faabd492c7eba5aa6cs.͎S+Mb2fab4db7cbd5af4a04d90e49d03b9a8=.+Mb3262db0558b5929ab53a74e145faf45,D./LN+Mb34338a9efeffc2774b623b269f0259eC.n +Mb3bbff277364a356cea7cd083a5b5301铻.i+Mb40c21f9c159041cb4146a0177763418#.Y9+Mb4294f0baeb8a3ea57910eb5ca77fcd62O+Mb479d566315760aa882160c734ff2bb93+Mb494c369fd3e2373501d228a41c6079b3i+Mb59a74cda03565358c8e3b84cf883113w.3+Mb6152c40df04b76e89a024f5de859200o ~8p E~ZԓaM latex-743a0bf07a473c5dbfdf0f0737ad43c8.pngAW\ecc6214ed5764edaedcb3731cd1b4cafYsa M latex-aa3ed87d9c57734cad8371798e2018e6.pngA\ӽ3b8d848023d5134bcaf566be0f3ddc3cZĒaM latex-9d9cb5e272fdf83cd3984ca5c32d792c.pngAWXZ8453090b18647488f107f61b032ab01bYϒa M latex-5be0644f9a2746a607e8b1b215b4809d.pngA^.RM87390d8738ddd09edd9c7b3b5d335cd5Z屒ۏaM latex-2f9eff38b1243faa9a7fcd485d91d930.pngAc5?7f4c9b7e6896912c9a81c09461132fc6Z޲ߡaM latex-d6323cce743c7ed15aa016f6d5cfa781.pngAaP6ee35c6ef1a7de7c74736bf198fece92ZګaM latex-d4a3a7fd948c8452375af80650137972.pngAb|b6356db5f42026b72ce65f403d15917e1ZШaM latex-2d449e982ddd82145e24bf9aea026564.pngA]8SdZec45236cc1072afa1714202310a73a72ZۈaM latex-b84b400104bb00b52bf505fa53c8938a.pngA[!f+90cda7e1fe7076388514cf8966a4fbb2 dd@lHt$P|+Mcd6e57dac0d4b3274034637ffea04d5cktI.-+Mc62d3ed58eb800803dee9b8b8d1f7cc0$3~+Mc74709f8016684551ca982571e13c20b2}P+Mc81ece15c9b06905e3d8ce49d13eefc1G.v+Mc89612c627d2c4ea1988750cbe82cbed#I.6+Mc8c0eaf3a5a1674b441f5d7bd5a80708`+.b+Mc9a88cfc8566393ecc144194685ca9d9U.+Mca1efe39900add51febfcfb0e7475422.M+Mca7939bee0bec38ffd5e62dbea2d7d17U.+Mcb3bb0f22ab85038c60d9d2e4800e823@..G+Mcb67e7d19cd29f2ee0c508bb67ec9b9bV.i+Mcc01871e64815dc8c751f2172342bd3eI7.E3+Mcc1494130203b33dbb14a035f428ffdaZs.٭Ğ+Mcc4d662cf6de7805d7a4406fd6f058dbI9.m+Mcd2a002db634cc1d118931b43f061a89Q}2<+Mcd6e57dac0d4b3274034637ffea04d5cktI.-+Mcd7050eaaec488c2807432de7df42173 .4S+Mcdb2df66fd6c5a87a32fe7a4852219e4x۹.6+Mce8fab2d12f6782015d3b13c513b5b64v2L+Mced613ec1a56c5b9e1c9cabac46b2598Kʫ. (+Mcf0530e8a4d4b57b8e0d3ca1f59114acT3!, +Md0472ba14147d2f10bd07e95ecd8254a`s.]t 8qFZ&aM latex-8e13c9b943937dece2f4b95fa76f0232.pngA^O7l29b45661ca02f25c0bbffd5da14fd9f6YЏ>a M latex-2fa6d2895ab0c4fa953ef7aeb0bf6f88.pngA\lb784072c185d590699d6c38b68665d01Z㼓ZaM latex-ceb3a75d082ec89eb72076efa84f0ed0.pngAӤ 8e37133ffc9a1b8ae8e3b3dc71ba00cf8ZԑaM latex-d2fd3ee6575a4287f2a47ca4ee060ffa.pngAWz79f57b5bbd9afb67745c40b35858f1c9Yŧ a M latex-a5b6ca5364324703068eff35500a6b70.pngAUZH411c1cae369e862b3255076dbfc1df93Y2a M latex-bd9075bf69095a585a44fd4f27a7e74c.pngAU 旍b80485a423c265f54109259281e0c44eZaM latex-4055e8bf63c88c1358710ef4453c2b00.png AөYdZc74709f8016684551ca982571e13c20bZŦaM latex-e4cb3affbcff9b0cc21e48e327239195.pngAU[C2b4addaed4d24cfc1d7d64d9552e250aZܠaM latex-61d1e840f74acfd4f9a8ac92d5c5c286.pngAaPc328ebdb1029886e054de2e76b0e505f j BxjP(^5alatex-eca03e1d96b4394427a5245b6cc4bfdd.pnggM.vU5alatex-e347e89fa9dd97672b7725712f297bac.png-3Ĩ5alatex-e2ad13916be3de2b65374c3822677b87.png.q5alatex-e2db586c277fcef555d00061aa656451.png.vq5alatex-e3061ed06a4292412cf5433118942ebc.pngE.Hx5alatex-e3115800efbdfc927a9a1186df335ede.png3!${5alatex-e33f486e12c71ad06f047ff662998b0c.png{F.5alatex-e42cc2ae0a23e946c3e7926197942e06.pngYȭ.5alatex-e469f5319c11bfe36734f0da222556e7.png {.В5alatex-e4c76abb412d42185ed7ec4d2ec8e6e6.png.n 5alatex-e4cb3affbcff9b0cc21e48e327239195.png].S{5alatex-e5010fb1e9ac6c0552d59d87223f4d61.png.lj5alatex-e5523e726665488667eec9b81a6c5668.png%.45alatex-e6714a2af07581e06c7716b4c305f516.png 3g=(5alatex-e730f8b934000249dfee11e102222b34.pngXy.vA5alatex-e7428a427a5ce95272e6cd37411fe5bf.png(H.v5alatex-e8d3d6d2684dc9c5b614d4474c2de00e.pngX25alatex-e972b8a2efd443208a5125ec08c68800.png.E jj BxP(^5alatex-f9d81c288487022a801fc669d36b5561.pngYg2O05alatex-e98252aead9b90ee619d0ce3636d184d.pngu..15alatex-e9bcec56beeb70a3204b690c204de04a.pngC.;065alatex-e9d9f8e0cfa3e8cdce7be8e61fc988e3.png.M$5alatex-e9fb18f9535a68d470e495d9e894e56e.png;.4j5alatex-ead0d0738b599ed36263f3f6258f90e5.png@..z:b5alatex-eb47610dfbf2b4a82ae1d0df0fae26a5.png;.+5alatex-eb5995244a34103c40305b2c90e0d2b1.png2.G5alatex-eb5ea29e1f451de1be99603347ed92b8.png2Im5alatex-ebbc61173c949b9704b9082163ab4666.pngE.5 5alatex-ebc97a2c9cc9f6f0b1c55c594663facc.png[̋.x5alatex-eca03e1d96b4394427a5245b6cc4bfdd.pnggM.vU5alatex-ed112889c6264172b3d48a4df8d97503.png.٭Zt5alatex-ed87e82d1c70caff9f735565a320b641.png.5 5alatex-ee9d652ea7566231d3917ede0186a731.pngR+.٭Z5alatex-eea96d14c313ab0b82248b57ba2a3608.png . W5alatex-eed99d06f5acae55965a7f70b904ca19.png9K.{>5alatex-ef35e641afb552a36b27c5336cef5afe.png . .8p Y.Zی5aM latex-0705b67db09f3124488807a4a29b3a59.pngAc4ae1a5f1d30d8cba724cf9b6181918d9ZⳘӇaM latex-76313f725b25fd464eb41c7c3dc6172a.pngAӧVnb494c369fd3e2373501d228a41c6079bY󘞙;a M latex-f4307017f41a1fb833a6e79d0ebd90f4.pngAӦ_9%903e8dd34bafff29e6912be307b32edeZò۫aM latex-76370c153eabe7efcc849750ac9ac067.pngA[ӌ1ec7291bfe6116847fc2e4659c7daffabEГ9 M ParCoordinates (1).pngAUAܼj2e2cf98f7cddfbafdadeed58472aa282ZߺaM latex-cf6f1931c029db653fad5ef03ac2b1e7.pngAb>^5283de8e098c922684c9492e19ea5456cZ񺮝<aM latex-fd2d484091d1e0522a37d9f5092dd24a.png Aӎ091c7973f3389a8b28896e40fb2484b6Z6aM latex-c6635740f1f21d40e0b03d6109d3213a.pngAUe9X3abe542a3546983e79d4f2baed661388ZپϤaM latex-863b61a2bebf7fd756a2fdeb60a37e6e.pngAcde11a463a92d394fe6b39551bd2a7a36cZaM latex-64f408bd1b4aa7e0027a6e909d103b0e.pngAӎ25cf37d29152d8553e9037a8c5314aa7 xxP(^5alatex-84aba8b20f7e1db18124c733b5060ccb.png:C.45alatex-8ab69b05ddc25337eabc6f5ea66e6ddd.png03_5alatex-84db5745cff9aa16f3bcd364a1123c7a.png+B.v(/5alatex-840a8cf0931a062fd492992b4bb8d9e0.png*.$5alatex-85beccecbc5bdc8a3cd10561c4889ff6.png3F 5alatex-861cfe25fd0cc968521353e1a84ffdb9.png.5alatex-863b61a2bebf7fd756a2fdeb60a37e6e.png!._O5alatex-87aced054576de3dc7eb5f400b88453d.png#.Y95alatex-8833c6627997939b9efc56228daf0193.pngb2t!5alatex-897af8e56556f7e4f3ab4c69e692276b.png3.no5alatex-8996bc489dde70458950d0a467e8ff9b.png .4S5alatex-8b0e2403a290f0d87b2f2e79b0c6532f.png;i.4B d@lHt$P|d+Mf320afc895162e612f8d6bf85337a344~!.v]C+Mebc0c1699e036d91ef38a831b6b863c7ok.p+Me533872265cb8e37f669602a4556b06e,N.6X+Me618f3f26a17d0273ba032283a6fd5e88Q.v+Me6e962b225ce759866e3bea9f7383c37c. +Me87ef5e79db15f8cfae71a8c6b02b5fam;.Hx+Me8cfdf58e44d907bb47c2799f24e3744sG1+Me99ace45d8152b7876a008855f6ae9ba[.}+Mea95c98b5c73af76c81b7e4b91f9a112j].+Meb7e5d0a9c65af8636d64cf095ba9b8bTg3!;d+Mebb9341427d0c08b64408c7f84f1d128.i+Mec45236cc1072afa1714202310a73a72 Y5.P+Mec7291bfe6116847fc2e4659c7daffab.vՋ+Mecc6214ed5764edaedcb3731cd1b4caf.5 +Med4a19e1537c0c548d6832b1aeec38ddC.e+Med5253167872fa5a6aab5486271fa6e8M;.iU+Meeecc2c2f7ba57d322a326f7c46af76ag.M+Mf1ae98aa5ffc178c1fac22e619604b2fJ.v۬+Mf1c1936eb9368501d459f21e3820f5d4.QW+Mf1f08439528d7f89661572e77aeb83fe[3y+Mf2f7718c170b7845538f00eb22c2f2fd~.4; j BxjP(^5alatex-6d1601cf418cde454447db127a3b41ed.pngm;.Hx5alatex-675de69cd352543710459ab9c5780ece.pngy/.=5alatex-6960147845574a76bd31c4d1ac3bc643.pngI.4<5alatex-6ab4d23d8d7a3db2db232af3d6058808.pngY3!15alatex-6ae1d1a508d1026b091b333fffe29364.pnge3NWP5alatex-6b93d12f2018a0f1de5ec64fbc41cb88.pngS.٭Z5alatex-6d5864e31530b346724294e545215d91.png..͗5alatex-6e183f697f3c0cbca6c6775fe9eb63ec.png;e.5 5alatex-6f9bbe5e0e679eadcafe9411b5db2d71.pngU.5alatex-6faf3b1449fbb70225ba3f626bf86e71.png/.4c5alatex-7145021d0a1ef9f76619c974ec90cc10.png}u3I5alatex-71fc1b9736dd17b8645e28c1d572c5bf.pngW. 5alatex-7215e2b0311a9ed031dfc33ef6a47908.png2O5alatex-72206648ee92483bcd72574d2e0aad60.png}. M 5alatex-73512e4af86e1ca5f668f0dae002201b.png}.,5alatex-739d599cf587d2a4c74949029f66f930.png.d5alatex-743a0bf07a473c5dbfdf0f0737ad43c8.png.5  ~9rF~ZPaM latex-578ee61fa23404dafa9120ee43691a8f.pngAӠl+hbN164b0ce1a4225e52f11ba62a225416e9ZaM latex-dc800dc313865de57fa7918a561ddb07.pngAaTIe2fd8ae21d150bf02f728f602207bf6eZ۫aM latex-8dcc0356bbae56affb27e4661fde48fa.pngA[ӌI71367f43bff7dc136646b70bd60fe1bdZ󗍙aM latex-152b13b2593fd13625bf6134cfe51c66.pngAӤ #TDa95e48b8e05087fbe0ad513fa1e9df93Z[aM latex-cb65bea53fc619d35fce5a601106ed52.pngA]4XĜ4de659b64c818e52a8cddbc5f6abb07fZ\aM latex-817238c0e76064a1fb23069064ebf695.pngA^-ԛ0464f1b09ded7062d0f143a7d24be999Y a M latex-a32fa29feae136fb7014cc2c6a3da478.pngAbʐ1'5f6df6fdfa62c9ada60611ac9d04b266ZþaM latex-66bd39b59e2a78669a967043038a13a5.pngAӪ2cab74f08f46fa751c26337e9966ba71Y̐ia M latex-4a54235c39066008061fd29b8f38bf93.pngA`;Ǵebb9341427d0c08b64408c7f84f1d128 ~8q E~ZӘaM latex-91efba5c956109fe711d76817c36505d.pngAӦ^)\)180c49ba288d8a7fd80840a4c8e78872YOa M latex-e23ae6d6654514bf7c6ab109c3fd615e.pngA`;:M6772573f647a4e50c9141620d5c71cc9ZaM latex-e7428a427a5ce95272e6cd37411fe5bf.pngAӎb691e855020a0b3bd5f6eefe41dc291feZӘuaM latex-13097e93a25952e557451d0e6d726981.pngAӦ]fR9ad2204d663461b5280d6f0eb0007f90ZdaM latex-b2e16e6d847ad2c1ffdd4bb79d46e07e.pngAӎI133a38b9b713b1889dc206a2dacf26abYa M latex-b06eadbb8259d724f919f66b1c7a9106.pngAa_:5566945f137c3447f7ca15848e11fea6Z콪aM latex-1032696bd7a5bc193ad26dcb5af9a472.pngAӣ=?}7762bdecf31f9795db6f96908d0b6688ZQaM latex-54a36739940e289a19b4e13a1478d702.pngA[P0deef320c915fc096ddaf24c3abf96bfZMaM latex-9f26534d5636fc7ebb583b0d73245d96.pngAӎ6V63ceeef1f47369fda171ff18fa852ca9  BxP (^(^5alatex-d07aad35fc774e265a1e862e80c408c7.pngu`%.v5alatex-ceb3a75d082ec89eb72076efa84f0ed0.png2NlZ5alatex-cf6f1931c029db653fad5ef03ac2b1e7.png'./5alatex-d01108ed3d51cab546b6e3df94b742fb.pngJ.v۬5alatex-d9fee3607492d3ff54976db946cd62df.png} .5alatex-d6fb8dfc16443f7f25cc3e648421253f.png.025alatex-d72a03d2582f7081b918dc9eddcdf011.pngX].R5alatex-d7e296f553a9f24d6a61b25c70452c69.png<#.-U5alatex-d851430a82ff2e8ce36dc651d460a4f7.png.M5alatex-d896719462a8e336828703b437ff3d76.png2\3!"u5alatex-d8dc439d6d9bb86038a09e2eea73fa71.png.Sz5alatex-d931260cfc70395208b095e458225c63.pngU.5alatex-d96b4a6ad98639766c951db32869747a.png.5 5alatex-d9de441b24d2b5947caa9048579d9512.pngB3!5alatex-da5a7f09b0aff4cd9eaf4f44264ba098.png6V3i5alatex-da7af1d5817760183a77d6ad364c5797.png.45alatex-daeb06f22e15609782167907048f9f9b.png .35alatex-db735924517b0d7724b2e8c8225ddacf.pngRBE.v$ dd@lHt$P|+M43568fe7cab5329917fb4546ff9da937.+M57d0871a6215dd8a0ff33cbc76d0a7e7r.o+M5c85e880a18cb19b293b34268c759576lz.k+M578de052af69c5e997ae5513ede2c745.+M584131335ae300694b4bea798bc71f9cm.+M58a273de05de8bdf0a3b0844d0fd73a6..͗+M5913a777cb223aaa8d3445d40d37ee9aZ3!;d+M594a3e8bda1195f364f624a4e7aec702֐.y+M5951049a593e166b399956727845c8953!9+M597ca026326428e95833e6a0ec603449l1.Z+M5a0810fb3ff459a594236cc183fc28e56.QJ+M5a2baf110789876c873a676f6beb8e8e@.+M5b0dd851aba0bf46d47423e7900f31a6H/23+M5b0dd851aba0bf46d47423e7900f31a6SF124+M5b26ccb536ab55f50441e80f89af84a8 .g+M5c2ab5f32f23e8098d1b628420f9aca5ׇA3Ĩ+M5c6288388c4223e83b19f45d0ed23465ZO.++M5df7b178d845edc042a29f1284c259dc6V3i+M5e9b7ec7c472e03a163fbb29dce036b5.4+M5ea30e77c88ef7cce5c225fd092ae615K.wA>+M5eb0b7a852489e823bc25360e2d8639d;.H +M5ec91e1efc1844c3949ca48829f513e7N.w }8q E}ZԢڀaM latex-a450dc508271960665dbf47fafcff6a7.pngAaA?}3a45a8c39d3aa066c23dbbebd0848d5cZaM latex-f81926872eaf9f1bd75ea31d2ce84526.pngAӦb}T34adf53a2ead217eba9046af04ddf033ZגXaM latex-204b8c0f5078322a08b6ead96e44895e.pngAӨV\ze533872265cb8e37f669602a4556b06eZaM latex-9b81da8df994748f713d3990f87c0cee.pngAӎ5?b3262db0558b5929ab53a74e145faf45Z񺐤aM latex-04999e49e79c455adf19174449db95e7.pngAVmU36ed2054ea275774a8a3efd5f1dda634Zزۦ/aM latex-84db5745cff9aa16f3bcd364a1123c7a.pngA[7L78c4620713c25675ffd7002d22e4d005YӘa M latex-d2b3cb93e55dfb6c96ff6b69b671f81f.pngAӦ]s-020c63059e433f35e746e2af871ed76fZ8aM latex-5b3240a4fe6bf0ab95306149ba0fe07d.pngAaLj5279c81fcf7561beb690695a5e92ae32ZĪlaM latex-11b6f03bd4b9570e976952744ad51a44.pngAӬo"0f548f4d393851ae93318c08ec267c79 @lHt$P|+Mf5d950f555712cc86e55d817ccf24c55G.vɼ+Mf6a7dca829a8b7eee5036e17569ac48fG3!:b0+Mf6cae54e636016f64fff61b4ed0ca7f2+.4c+Mf746e2b41c033e17c31ef9c3d2e5077c62{I+Mf7a070dbc7b963b4e2ca9c304db74066$.Sz+Mf81f2d62c8b302fc14c2d9143dd861a8 .4+Mf8b39bf0ad2d8a2e3af58803939cc9f0.vw+Mf8c16f1c959cd5fdd7b1955dbc70bfec).54+Mf9d35dec118fa240cddb7b08cfe68606<.D+Mfa290ba8dbb4f050358a9f0056951a91 ._+Mfa6ce6fd31c8a87dbebf4594a478fca3G.Z +Mfad29c3701f0e23b035563d3ccd9c015‡.f+Mfb1bf038012e8f7d4d3afdb7a6b5b2ae).6s+Mfc45be6f3e7d8dd59f51013f75b3dd04;/>r+Mfd7bca6b332b96d9ba76087192271520?.vk+Mff34af5479c79f687bb281637a4e5a59a3+Mff673cd7031bd56ed75c9ab199b62712[2JK* ~8q E~Zߞ=aM latex-1e342550acf2508182564233873e67f9.pngAb& J4111e04955d386b24703ea858a32e0afYa M latex-2319d9f095def11c46168ab9a632c297.pngAV--bc26be38f61cbefbe617c75e6a4ab2d9Z̐aM latex-093a2464c54efcee11100044be10c59d.pngA`;9fca0f9301dbc21c0ee4b4475d2e2a2fZߒ弰]aM latex-05fe48aa81344393b7e104d6df2b8a4a.png AӠl365579ceee9db8fbf83e89a72b419e02fZɷۇaM latex-1a599a060311362156d4d982bb04f421.pngA[!F+41f68a201387ca6698fa756baa2fb1ecYa M latex-dd91af7b06a8190a08d6ed817a067b81.pngAVE98578acd0a296b1939ac817ad40950d4ZaM latex-55167d1545750ac9077cba5f077c35c5.pngAVb(537343178e175261bd0d67c51431f94fZĥNaM latex-a13555f6eae97a2fb8e998c7ad8ce84a.pngA]@+1824e9f2a8f2a8d2f047d23aa3633492Z񺎱aM latex-fa26acd40506783ed2da7cd0c0b25d75.pngAVmU1adb47c29edc2d8270c7a8d72e526ca9 8d8@lHt$P|+M6ef8be4a94ebe514992620e03da0701d~3!;d+M6ee35c6ef1a7de7c74736bf198fece92 .o+M6ee7a355f082ef5d9a0727ba163e1689^|_3+M708c89ca96c45bcdcce558930c56e6d8i.o+M71367f43bff7dc136646b70bd60fe1bd".vՋ+M714687242e44702ed018806cd6ed48723!2+M71dff202c343f9d711303936b368a1807.C++M7323244c03c3b69e0e10b6f1d9f51566ɾ.vՋ+M7386916271c14b931645ae44cf81e411 2K+M7432903db8c05b902350f00072748037d2Kk+M744a2ca17707e76f8d39a55dd48b2602H./Q+M745437f5ef840527bd05a731093f8714.E+M7517500a748573be6b84a376ea800926.vN+M766745cdbacfa3e883ab0c12e0ede21b{.+M7762bdecf31f9795db6f96908d0b6688&2v=+M77915eea0d9ad8bafc3be38a4ea7b8f83! +M77954993c00a4cde70d4b83058ed540aۧ.-U+M7824a45df52e68a4e2f28edfdbea5679HM.++M782a3473a3a8d57550e4da32e4f318abٹ.4T+M78361172e95f68326374b23bb9e01b5do3E+M78c4620713c25675ffd7002d22e4d005+B.v(/+M792b930994b7e36da9b7a55076543d54Gj.Nh 44j BxP(^5alatex-39c2a0c5c7757136f38dd300d32f8880.png`.q5alatex-39dac7620b488ee3116fb9e7be5658d1.png=.5alatex-39fc35691b197ea0f4b071901444ebfc.png.<5alatex-3a4955eb70cff78652da3440cbcc1b89.pngW.55alatex-3a7864d176ec3ff577607e737df1e324.png/.25alatex-3ad2ca1217226621f3852d0e71f2339e.png73iy5alatex-3b14eb7e0995c078f114554f4cd820e7.pngi3nm5alatex-3be79e21e17fffcb6852878eb12dc65a.pnge)e.vÔ5alatex-3c546078550a64c459fc484e1f07714a.pngM3.M5alatex-3f2de45142af7975ef3870612b6cc226.pngƊ!.g5alatex-3faec9566415fa5229d1fa41e9e38e1d.png-[.4<5alatex-3fde7da2709b6af15afb852afbb40f80.png35alatex-4055e8bf63c88c1358710ef4453c2b00.png2}P5alatex-40ff82ed16ce60f0a2c9fbe32a233ad1.png~.5alatex-42333ff9006e8736e667938e123fe3aa.pngZ /.4e 5alatex-448741eb8766441bdde344a9a9fa2053.png㚵.d5alatex-453b7e070c08f3bbe3b33f7c76b12387.pngr.o5alatex-46135d9c0241488587eee3c19fe7e861.png3!2 ~8q F~Z֓ӇaM latex-da5a7f09b0aff4cd9eaf4f44264ba098.png AӧVn5df7b178d845edc042a29f1284c259dcZ،ҰsaM latex-653c414082e12bfb82389d9606be7654.pngAWƨ86712bdca63e5c3d715254a5fa1e3f42ZЩaM latex-7cc08cce2e75aac5a19862b9628ff7cc.pngAӧVn =c0dfc1ea282203a8248aaff1cacd44d9Yћa M latex-d556524245cff819bbd98ec2f092159d.pngA\^91997dd0cf2b9c532af14640eaf6df71ZaM latex-5f32bd84f7da0180c727b0bc6c595f7a.pngAӨV\38053f622e7527aca613cce86589b75aZֲۍaM latex-91ed520cb3ebc675882af5ecbbcda7c6.pngA[ɩ12a06acb4f7de9c3292013ad5a4ef4ddY尳a M latex-5fe488a838c505f151dab318d2218f20.pngAa =e2714acdff05bd8069ab5e4129b9facdZәaM latex-d896719462a8e336828703b437ff3d76.pngAөY=q5f3dc7dde4b186a0a6cf44c6c2133b65ZaM latex-8ab69b05ddc25337eabc6f5ea66e6ddd.pngAӬB97e2e7039927c93e1355c7afa4243a96  BxP(^5alatex-f12b7eeb8c4e39121208578201f614fa.png/. '5alatex-f2c7dc9c50c5358efc9d61b508b5cb12.pngȧ.S5alatex-f2d1360559f16ad159a29fb3d339653a.png_.i5alatex-f3ddc62379f456594bfab4d09c975819.pngl.I5alatex-f3f0c51947f6e8aed77aac7d10f50b9b.png).6s5alatex-f4307017f41a1fb833a6e79d0ebd90f4.pngf3;5alatex-f4a98cb4b897f2318495d8289167d002.png2O5alatex-f644deb5d0860226c871e6be784934bd.png;m.s5alatex-f65332219c4bcb86b84b0fdcb6a250bf.pngÿ.H 5alatex-f6b507bbf3d18137b9420787a7ad0666.pngQ}2<5alatex-f7349e8bad9b642746fd57ae453e7c7c.png+.4c5alatex-f73704c35621bcb9c82a62d27a7b662f.png|O3x5alatex-f76b9a34d9bce0182fe3a27043942e79.pngH./Q5alatex-f76d314cf7ad308a2ca65e99a22e7825.pngDM.f5alatex-f802449d6467373557df88520a7651bd.pngo2d:5alatex-f81926872eaf9f1bd75ea31d2ce84526.png,. |8p D|Z跒aM latex-eb47610dfbf2b4a82ae1d0df0fae26a5.pngA^.l`Ba06044ddbab045f2cfa3e25e36db4c5cZۣsaM latex-f644deb5d0860226c871e6be784934bd.pngA`:;F309cd86219bcd05098aaa5f57346c15aZaM latex-84aba8b20f7e1db18124c733b5060ccb.pngAWXZac885ec51525244a01768575a00a628aZɲ>aM latex-eed99d06f5acae55965a7f70b904ca19.pngA[dfa25ab7f446742efca95eb08c8517deZֆ?aM latex-8d84ce1d41af2941408672adb5f78307.pngAbv658a1c59f45f1df073b44cb625ba9347Zܐۦ aM latex-2586a1a5e62118f2327fffbe1c9dbbdf.pngA[a674a3fe7d7b51ee44cb614ee5324dbdZלaM latex-d233a587f3ec0bb3acb9151ff31b61b1.pngAӎ!2a706ec8c718a1e5224c3dbee475b222ZJaM latex-caeaf17a6c44cea68624f1beb5b5eb52.pngAӎC5a0810fb3ff459a594236cc183fc28e5ZIaM latex-a1d6fc64ffbe5ebc266326dbb276f315.pngAӣHuf746e2b41c033e17c31ef9c3d2e5077c :rFYa M latex-0834ec33b5211eb68c95a81b487b8960.pngA^.ؓu3f91775ab5e3ec64ddd3234627dc426bZӘӇaM latex-5595ede88dea4e5fa4c939885aaef3a4.pngOAӧVn33e5a1f25b2bc61cd4ec25ca988179f4ZaM latex-c2b34a1105a42d1f470b7e04e3fd6b8c.pngAV^5cb3bb0f22ab85038c60d9d2e4800e823ZkaM latex-c4e6f43d02becd5bbeea1a1a9e211ae4.pngAӎ䛦fd7bca6b332b96d9ba76087192271520ZΎ_aM latex-fdbfc136d5e9600b0c59f696aa85b79f.pngAӠl+hd4ca28da1052befc34f0717143c67113ZƯ8aM latex-5caa12f9bc5492f9a6c978ca92933c38.pngA^O7wdc879ac96eeb34c966ee18c368050e89ZլaM latex-d7e296f553a9f24d6a61b25c70452c69.png AӠlg+09b8c70cd09d5dcd4363619340399945Ya M latex-cb96fad07ee22fb0f10e14d8c3dec40a.pngA`5Dj5eb0b7a852489e823bc25360e2d8639dYja M latex-e9fb18f9535a68d470e495d9e894e56e.pngAWWdZ312ae157fa75028caf80eb3816acc6b8 8p FYɭa M latex-ce184e52141fe608869560af2b4367c1.pngAaVff4032ca4fddb5a68ceede86bbf63410f3ZӒhaM latex-b50e417ec9899c1be2ae14ec1a7ca324.pngA`6DcF792b930994b7e36da9b7a55076543d54Ya M latex-13b533b9a82b1296cf199ae1897d8010.pngA`24bN8d1e2bf6ba2c1f4663693659439498f7ZΈaM latex-4d7fc1964c14a5b4e5060ca64dd57a10.pngAW[Լj987ee75c5a066eeee9736157bfb9228cYfa M latex-f76d314cf7ad308a2ca65e99a22e7825.pngA\?3bc94c8d654608f445e69a6809ed7e46Yپa M latex-22a41f8e836da8cf4ad31c7cba126743.pngAc])#9215389e1a7c360d155200874a690097ZaM latex-d9de441b24d2b5947caa9048579d9512.pngAӨ-46022aa7aab5d5605b66ebcb7193dc84Z昮taM latex-5087440712db82f3e5eaff20c2a9f591.pngA]˖4aee02d3a2e0605a10270e9e38495bf9ZеaM latex-969c0edf2a52a11bd6fd8c00bf516b24.pngA\Qe05914cd7f9f6c73e82cc411e747a073Z’‘aM latex-060ff7305ce0597a439f333920b83638.pngAU019f23409e30755e63de1b5e4663baaad 8d8@lHt$P|+Md1822fcbfab5a50c787ebec745818369|.+Md059f699fdb7d0b665c0663e31bf2da02O+Md1052677165e240bfd9bd921609c589fG.+Md1c7a238bdb2f620876ffa91d4f07e64o2d:+Md1dbc24d04c05788a23cddd38f804323!.n+Md21ae6b67049a7973493680fb84a1695~.+Md23b13e8406e299c53585c49797cafab 5.vP+Md2e739585a2b469bab47e84ab6e754d1*.$+Md37bff94bd3e339b8063addd99dcef0873iy+Md38b939e2ce07ef48c3725677ec38ee5 . W+Md4ca28da1052befc34f0717143c67113?8u.0_+Md5b11368e4379779aa13c8bec611c3d0(.D+Md6211a4dcd8786e961be67d75b564256K5HU+Md637a3246eeb2e488980e46b5c3f031538+Md6763ba7bfa94743e764ac67820393f4g.v04+Md7e2eaff082c92299beee9992865701e.o$+Md8202ffc8a0efb756beb52b4bf2c1879/. '+Md86b210cb9e9eae1ca49b88b8bd375873h+Md90a0dd021bc3cafd8eda8e6b97c8b86+.1|+Md911238e60c1fe43eec008f79114040d$.q"+Md9791c762fd39ff64121b7bfb1ac1351өk.3+Mdaa510ea5ca67f8408f42aae709da7cd .4t   P p@Pp@p @+M6e63e073f286857b8c873bc23b0572da 3I [+Mf6cae54e636016f64fff61b4ed0ca7f2+.4c )+M25c7b120c4f6ca140d6046b0a91343033! L+Mc2bc8a93c5efa7557c1bb3a1b8335f4b.B E+M8d5a4a67b8c356897dd63d10e4a33537A. 2+M3a291cd385f7485b5c3a70cbf5fe0b5ay-38 .+M3077556e85b6a8693a182c6fc11a2126@.+^ )+M1eb5873e7cd117a01a63ae5f190617f4_.4 6+M3c73ce16a7f42ff882fe301ecffb884b F3v +M566f8011f9b4ab52771850b7f88dbf36 U.{ %+M15f2fa1ceafde432908351a3820e9d73.c $+M0bc90e7d07aca68eca561b2f18db992b@..z:b +M25c7b120c4f6ca140d6046b0a91343033! .+M301379f78a29fd2438f47210fbcd4b25u..1 ;+M43568fe7cab5329917fb4546ff9da937. 2+M360310fe1beb91de62234bfe1f402f8a3.no s+M5ec91e1efc1844c3949ca48829f513e7C.w @+M4de659b64c818e52a8cddbc5f6abb07f .X[ w+M7959580e9ad9ae8554ee10744901e843K24 \+M6e63e073f286857b8c873bc23b0572da 3I  uP p@ J+M97ad1d3e75651fdb63496e5c2c6bfe78.w E+M8d019e31a16e99a7ee97480222cbf95c.q R+Mb0c493507a2014bbf869ef8005428f7f..x L+Ma457e498bf68e5f62dd5735541653ebcC.;06 Y+Mc5ae88e9b04128d3541cbdf3a1561455N4.Sz f+Mb7c7a2d8c2ef60f681d03abfbcbd6d1eZ /.4e ~+Mdbefa7e325f5c14c577f22d7ad89493eXy.vA h+Md0533c58e00a29ea19c26027a171bb99.& n+Mf3a203b40edfd978e782f6e5eb9bd509HP. +> [+Me37133ffc9a1b8ae8e3b3dc71ba00cf82NlZ @lHt$P|+M79cd2f5f26c03bc89474dc24b633bb3f3+W+M79f57b5bbd9afb67745c40b35858f1c9O.5+M7a230e0732cf212cdd4134368e6a316f3@+M7bb660521faa79c9b42c19651fa469cf9.o+M7bcbb3e1dec7528eeb6e9b5396461619}.+M7c60b844901be968d83248b5d25cf5cd&3~+M7dc0ca378019506e2800d513437dbd02RBE.v$+M7e2d1e60d08d51c620692747b88e7093W.M+M7e71193a9ff7a2683c9c2818820062ae3_@+M7e98f47b9f3909d4262755da12340a57.4e+M7ea3881980db4a81077dde298426abd9w..v+M7eac1618fba400ca252cf9df723f0b52%.4+M7eb5ecd760f290e037f1c1dd5e050587/.4c+M7f1f6217308f37f5b2ae277487238f58./Q+M7f3d2780e6ed73657ba1088576278866."+M7f4c9b7e6896912c9a81c09461132fc6 .lj+M7f4df572b29e1fed66cd9bcbf69cd840.02+M7f54e9372f9567dff2ced73c42122daf {.`+M802bc5caa54beac7446561dfdbfb1fcc3_f+M80425a3cea1f9fb01991ed7b8a1d610ex.ۅl $9rF$YѲܤ>a M latex-05a5f6ff20a072e8e6ca451dab4c6dc3.pngA[!75ea30e77c88ef7cce5c225fd092ae615QղёQ M feature_subset_selection_blank.pngAT>(ced613ec1a56c5b9e1c9cabac46b2598ZܡaM latex-b14ec06ac7b91fecde17ad52a7da23a1.pngAӦ ْ90228a21fddb8712cf9f422021b7123fZaM latex-53fc0c112290bc499c0d19e4c30c487b.pngA`2>y3e5761f4a26f3d5d6f66a93801ccc6d5ZǒmaM latex-393d15d7fce67c29894f8c7b8311cca7.pngA`2>^5cc4d662cf6de7805d7a4406fd6f058dbZӒaM latex-f76b9a34d9bce0182fe3a27043942e79.pngAӎ744a2ca17707e76f8d39a55dd48b2602Ya M latex-5ba8876fcd4b1d59cda110a76f494009.pngAbʑ%7824a45df52e68a4e2f28edfdbea5679Z>aM latex-569b78bfd2497e72d87ce03008517ca4.pngA\qlatexPre\documentclass[12pt]{article} \special{papersize=3in,5in} \usepackage[utf8]{inputenc} \usepackage{amssymb,amsmath} \pagestyle{empty} \setlength{\parindent}{0in} \begin{document}  mediaURL# revInactive# newInactive  revActive  newActive perDay1!leechFails16)suspendLeeches1 X%cssCache.fma01fb32deff605c6 {font-family:"Arial";font-size:20px;white-space:pre-wrap;} .fma089332deff605c5 {font-family:"Arial";font-size:20px;white-space:pre-wrap;} .fmada32f2deb79765c {font-family:"Arial";font-size:20px;color:#000000;white-space:pre-wrap;} .fm196f6b2deb79765b {font-family:"Arial";font-size:20px;color:#000000;white-space:pre-wrap;} #cmqd038d32deb79765e {text-align:center;} #cmq1fd2a52deff605c7 {text-align:left;} #cmq30fbf52deff605c7 {text-align:left;} #cmq4d6d592deb79765d {text-align:center;} #cmad038d32deb79765e {text-align:center;} #cma1fd2a52deff605c7 {text-align:left;} #cma30fbf52deff605c7 {text-align:left;} #cma4d6d592deb79765d {text-align:center;} .cmbd038d32deb79765e {background:#FFFFFF;} .cmb1fd2a52deff605c7 {background:#ffffff;} .cmb30fbf52deff605c7 {background:#ffffff;} .cmb4d6d592deb79765d {background:#FFFFFF;}  =, sortIndex2' mediaLocationpageSize4096@uhexCache{"-1514903624990755238": "eaf9fb2deb79765a", "1832801418331387483": "196f6b2deb79765b", "-5934848009673542052": "ada32f2deb79765c", "5579213567140918877": "4d6d592deb79765d", "-3442769720947149218": "d038d32deb79765e", "-6878910683439299131": "a089332deff605c5", "-6908606293482273338": "a01fb32deff605c6", "2293076777002993095": "1fd2a52deff605c7", "-1175776855514020411": "efaecd2deff605c5", "3529684310623126983": "30fbf52deff605c7"} 7~n^N=- {jZJ:) vfVE5%7e3I`6 e3I`5e3I`4e3I`3d2 2 d2 1d2 0d2 /93S. 93S-93S,93S+3IY* 3IY)3IY(3IY'2ݯ& 2ݯ%2ݯ$e-# e-"e-!3?fj  3?fj3?fj3?fjx3?f x3?fx3?fx3?faK3W;k aK3W;kaK3W;kaK3W;k}3 }3}3}3ؓ.  ؓ. ؓ. ؓ.  ؓ.  i3Jtn  i3Jtn i3Jtn i3Jtni3JtnNs.  Ns. Ns. .?jB .?jB.?jB.?jB 7~n^N=- zjZJ9) vfVF5%n ;m.E m;m.E l;m.E k93j 93i93h93gxk2ᔴf xk2ᔴexk2ᔴdxk2ᔴc2b 2a2`2_3?o^ 3?o]3?o\3?o[3&o¿Z 3&o¿Y3&o¿X3&o¿Wc3;V c3;Uc3;Tc3;S3 R 3 Q3 P3 Ou.nlN u.nlMu.nlLu.nlKs{3IaJ s{3IaIs{3IaHs{3IaG3It)F 3It)E3It)D3It)C92טB 92טA92ט@92ט? 3\ M> 3\ M= 3\ M< 3\ M;38py: 38py938py838py :%4CRap$3BQ`p 0@P`p.?jBNs. i3Jtn ؓ. }3aK3W;kx3?f3?fj e-#2ݯ&3IY*93S.d2 2e3I`638py: 3\ M>92טB3It)Fs{3IaJu.nlN3 Rc3;V3&o¿Z3?o^2bxk2ᔴf93j;m.E nw3'#r3>ov%3J7X{د3&s"3IvYm3(s. s'w36+A2pBk3NQ3?d)3'E3Z2a82Еm. i3I3}2amC2. lCY3N. I3Rl3IdY2g|S5?3I$w%3'W2j3 1 0@P`p 0@P`p 0@P`p']3I,2L3x `-2}[2!3 d~O3I}]2']3I,2L3x `-2}[2!3 d~O3I}]2mE3?[33?:Ø 3|3?й3d3IN' 2B{3"3)'&3&s@*2C#.2$Y13I5\-(8g2"!j<3I"@+3&rrD}2AUG+2|KE3?dO2YSV9.H^Yo+3I]3Ia2@e3JGj. A@Vm23qG2u!3 @yu2a}203 jE.Hpv.HEq2!'3I_2)3JG. s6'3 ӣ-. P <(5BO\iv,9FS`mz #0=JWdq~  .?jB .?jB .?jB .?jB Ns.  Ns.  Ns.   .?jB .?jB .?jB .?jB Ns.  Ns.  Ns.  i3Jtn i3Jtn i3Jtn i3Jtn i3Jtn ؓ.  ؓ.  ؓ.  ؓ.  ؓ.  }3 }3 }3 }3 aK3W;k aK3W;k aK3W;k aK3W;k x3?f x3?f x3?f x3?f 3?fj 3?fj 3?fj 3?fj! e-" e-# e-$ 2ݯ% 2ݯ& 2ݯ' 3IY( 3IY) 3IY* 3IY+ 93S, 93S- 93S. 93S/ d2 0 d2 1 d2 2 d2 3 e3I`4 e3I`5 e3I`6 e3I`7 38py8 38py9 38py: 38py;  3\ M< <(5BO\iv,9FS`mz #0=JWdq~   3\ M>  3\ M? 92ט@ 92טA 92טB 92טC 3It)D  3\ M>  3\ M? 92ט@ 92טA 92טB 92טC 3It)D 3It)E 3It)F 3It)G s{3IaH s{3IaI s{3IaJ s{3IaK u.nlL u.nlM u.nlN u.nlO 3 P 3 Q 3 R 3 S c3;T c3;U c3;V c3;W 3&o¿X 3&o¿Y 3&o¿Z 3&o¿[ 3?o\ 3?o] 3?o^ 3?o_ 2` 2a 2b 2c xk2ᔴd xk2ᔴe xk2ᔴf xk2ᔴg 93h 93i 93j 93k ;m.E l ;m.E m ;m.E n ;m.E o w3'#p w3'#q w3'#r w3'#s 3>ot 3>ou 3>ov 3>ow %3J7Xx %3J7Xy 5~~m]M=- sbP?. p_M<+~#E3Z" E3Z!E3Z E3Z3' 3'3'3'3?d) 3?d)3?d)3?d)Bk3NQ Bk3NQBk3NQBk3NQ+A2p +A2p+A2p+A2pw36 w36 w36 w36 s. s'  s. s' s. s'Ym3( Ym3(Ym3(Ym3("3Iv "3Iv"3Iv"3Ivد3&s د3&s~د3&s}د3&s|%3J7X{ %3J7Xz%3J7Xy%3J7Xx%3J7Xw3>ov 3>ou3>ot3>osw3'#r w3'#qw3'#pw3'#o;m.E  1 0@P`p 0@P`p 0@P`p3yU3U3S@3,M-A33#3I)3yU3U3S@3,M-A33#3I)K3Z 3?o38K3 ĴS3I®l3 x27s2L-;3c3+i3)m55?|ԁc3m3ID-3Y[;-^ d.H=7C3(3?l3|X. Cp#!c3h%5?i|*E'.>4.OQ3?''22B5.H9 ;.{9? . 2=B'3?TFk.*J#2gNp2R.ZV`3;I!Z 3H^ 3?Db3f^.3$)ji3?hrnĵ2rޏ3?Cv 8)6DR`n|$2@N\jx .<JXft   %3J7X{ %3J7X| د3&s} د3&s~ د3&s د3&s "3Iv  %3J7X{ %3J7X| د3&s} د3&s~ د3&s د3&s "3Iv "3Iv "3Iv "3Iv Ym3( Ym3( Ym3( Ym3( s. s' s. s' s. s' w36 w36 w36 w36 +A2p +A2p +A2p +A2p Bk3NQ Bk3NQ Bk3NQ Bk3NQ 3?d) 3?d) 3?d) 3?d) 3' 3' 3' 3' E3Z E3Z E3Z E3Z 2a 2a 2a 82Е 82Е 82Е 82Е m. i m. i m. i 3I 3I 3I 3I 3} 4veSB1 sbP?. p_N<+ W3I$wV3I$wUS5?T S5?SS5?RS5? QS5?PY2g|O Y2g|NY2g|MY2g|L3IdK 3IdJ3IdI3IdH I3RlG I3RlF I3RlE I3RlDY3N.C Y3N.BY3N.AY3N.@. lC? . lC>. lC=. lC<C2; C2:C29C282am7 2am62am53}4 3}33}23}13I0 3I/3I.3I-m. i, m. i+m. i*82Е) 82Е(82Е'82Е&2a% 2a$2a 1 0@P`p 0@P`p 0@P`p3II~37.!2YOa3?[`g3'n.#m{3II~37.!2YOa3?[`g3'n.#m{i3'c-p?3&3;3IY39^. *2ЬS3?& 3I1^G2$Y~3IuK-6u. ϯ¤3?C #3'HÈI3 G37o23Iwi)k3Af2Kģ3V+Ŀk3I/Wj37mő3&{Ŝ3Ipūo2 3] 3W%js. گƏ%3\ 53?h` p/3IvLj.D{!3?fYy3H pE3JW %;.H] >+ʱA2B.ʾ2rl23?mL63I•: 8 (6DR`n|$2@N\jx .<JXft 3} 3} 2am 2am 2am C2 C2 3} 3} 2am 2am 2am C2 C2 C2 C2 . lC . lC . lC . lC Y3N. Y3N. Y3N. Y3N.  I3Rl  I3Rl  I3Rl  I3Rl 3Id 3Id 3Id 3Id Y2g| Y2g| Y2g| Y2g| S5? S5? S5? S5? S5? 3I$w 3I$w 3I$w 3I$w %3' %3' %3' %3' W2 W2 W2 W2 j3 j3 j3 j3 %3¡t %3¡t %3¡t %3¡t ']3I,2 ']3I,2 8 0@P`p 0@P`p 0@P`p3)''3&s@+2C#/2$Y23I6\-(9g2"!j=3I"A+3&rrE}2AUH+2|LE3?dP2YTV9.H^Zo+3I^3Ib2@f3JGk. A@Vn23rG2v!3 @zu2a~203 jE.Hpv.HEq2!'3I_2)3J'3 ӣ-. P3I%@3,M-A33#3I)3?o38K3 ĴS3I®l3 x2L-;3c3+i3)m55?|ԁc3m3ID[;-^ d.H=7C3(3?l3|X. Cp#" 4veSB1 sbQ?. p_N<+   33?:Ø 33?:Ø 33?:ØmE3?[ mE3?[mE3?[mE3?[]2 ]2]2]2O3I} O3I}~O3I}}O3I}|3 d~{ 3 d~z3 d~y3 d~x}[2!w }[2!v}[2!u`-2t `-2s`-2r`-2qL3x p L3x oL3x nL3x m']3I,2l ']3I,2k']3I,2j']3I,2i%3¡th %3¡tg%3¡tf%3¡tej3d j3cj3bj3aW2` W2_W2^W2]%3'\ %3'[%3'Z%3'Y3I$wX 3I$w 8 (6DR`n|$2@N\jx .<JXft ']3I,2 L3x L3x L3x L3x `-2 `-2 ']3I,2 L3x L3x L3x L3x `-2 `-2 `-2 `-2 }[2! }[2! }[2! 3 d~ 3 d~ 3 d~ 3 d~ O3I} O3I} O3I} O3I} ]2 ]2 ]2 ]2 mE3?[ mE3?[ mE3?[ mE3?[ 33?:Ø 33?:Ø 33?:Ø 33?:Ø 3| 3| 3| 3| 3? 3? 3? 3? й3d й3d й3d й3d 3IN 3IN 3IN 3IN ' 2B ' 2B ' 2B {3 {3! {3" {3# 3)'$ 4~vdSB1saP?. p^M<+~?3I">3I"=g2"!j< g2"!j;g2"!j:g2"!j 9\-(8 \-(7\-(63I5 3I43I33I22$Y1 2$Y02$Y/2C#. 2C#-2C#,2C#+3&s@* 3&s@)3&s@(3&s@'3)'& 3)'%3)'$3)'#{3" {3!{3 {3' 2B ' 2B' 2B3IN 3IN3IN3INй3d й3dй3dй3d3? 3?3?3?3| 3|3| 3| 33?:Ø 3 0@P`p 0@P`p 0@P`p5?i|+E'.>4/2B6.H9 <.{9@5?i|+E'.>4/2B6.H9 <.{9@ . 2=Ck.*K#2gO 3H_ 3?Dc3g^.3$)kĵ2s!2gs}{3II37.!2YOa3?[`g3'n.#m{c-p?3&3;3IY. *2ЬS3?& 3I1^~3IuK-6u. ϯ¤3?C #3'HÈI3 G37o2)k3Af2Kģ3V+Ŀk3I/Wj37mő3&{Ŝ3Ipūo2 3] 3W%Ə%3\ 53?h`Lj.D{Yy3H!pE3JW & 8 (6DR`n|$2@N\jx .<JXft 3)'& 3)'' 3&s@( 3&s@) 3&s@* 3&s@+ 2C#, 3)'& 3)'' 3&s@( 3&s@) 3&s@* 3&s@+ 2C#, 2C#- 2C#. 2C#/ 2$Y0 2$Y1 2$Y2 3I3 3I4 3I5 3I6 \-(7 \-(8 \-(9 g2"!j: g2"!j; g2"!j< g2"!j= 3I"> 3I"? 3I"@ 3I"A +3&rrB +3&rrC +3&rrD +3&rrE }2AUF }2AUG }2AUH +2|I +2|J +2|K +2|L E3?dM E3?dN E3?dO E3?dP 2YQ 2YR 2YS 2YT V9.H^U V9.H^V V9.H^W V9.H^X V9.H^Y V9.H^Z o+3I[ o+3I\ o+3I] 4vdSB1sbQ@. q_N=, sG2r23q 23p23o23n. A@Vm . A@Vl. A@Vk3JGj 3JGi3JGh3JGg3JGf2@e 2@d2@c2@b3Ia 3I`3I_3I^o+3I] o+3I\o+3I[o+3IZV9.H^Y V9.H^XV9.H^WV9.H^VV9.H^ UV9.H^ T2YS 2YR2YQ2YPE3?dO E3?dNE3?dME3?dL+2|K +2|J+2|I+2|H}2AUG }2AUF}2AUE+3&rrD +3&rrC+3&rrB+3&rrA3I"@ 3I" 5 0@P`p 0@P`p 0@P`pʱA2B/ʾ2rl33?mL7ʱA2B/ʾ2rl33?mL73I•;.ҩBtS3?%0JS2R͞3;IZ5?_2!}2.2&. 'vd+2*E;.H6%X2m٤3?0٩539^N73&pfڈ3?ڕ3Iھ5?|ݍ3Dk37W 2,/w.Z03?mݒ;-H~3\ ބ2 ފK3 m/. ,Th3YX53?i1 QK.1$d3(%3,J3Bg0➛384х368bw2< 6 0@P`p 0@P`p 0@P`pmE3?[33?:Ø mE3?[33?:Ø 3| 3?й3d3IN{3 3)'$3&s@(2C#,3I33I">+3&rrB+2|IE3?dM2YQo+3I[3I_2@c3JGg23oG2s!3 @wu2a{203 j'3I_2)3J'3 ӣ3I%3yU3U3S@3,A33#3I)K3Z 3?o38K3 ĴS3I®l3 x27s2c3+i3)c3m3ID-3YC3(3?l3|Xc3h# 8 (6DR`n|$2@N\jx .<JXft 3I_ 3I` 3Ia 3Ib 2@c 2@d 2@e 3I_ 3I` 3Ia 3Ib 2@c 2@d 2@e 2@f 3JGg 3JGh 3JGi 3JGj 3JGk . A@Vl . A@Vm . A@Vn 23o 23p 23q 23r G2s G2t G2u G2v !3 @w !3 @x !3 @y !3 @z u2a{ u2a| u2a} u2a~ 2 2 2 2 03 j 03 j 03 j 03 j E.Hp E.Hp E.Hp E.Hp E.Hp E.Hp v.HEq v.HEq v.HEq v.HEq v.HEq v.HEq v.HEq 2! 2! 2! 4veTB1 tcQ@/ raO>- 'G. s6& G. s6%G. s6$3J# 3J"3J!3J 3J_2) _2)_2)_2)'3I '3I'3I'3I2! 2!2!2! v.HEq v.HEqv.HEqv.HEqv.HEqv.HEq  v.HEq  E.Hp  E.Hp E.Hp E.HpE.Hp E.Hp 03 j 03 j03 j03 j2 222~u2a} u2a|u2a{u2az!3 @y !3 @x!3 @w!3 @vG2u G2tG2 4veTB1 sbQ@. p_N=+ [3 ĴZ3 ĴY38KX 38KW38KV38KU3?oT 3?oS3?oR3?oQK3Z P K3Z OK3Z NK3Z M#3I)L #3I)K#3I)J#3I)IA33H A33GA33FA33EM-D M-CM-B@3,A @3,@@3,?@3,>3S= 3S<3S;3S:U3U9 U3U8U3U7U3U63y5 3y43y33y23I%1 3I%03I%/3I%.-. P- -. P,-. P+'3 ӣ* '3 ӣ)'3 ӣ('3 ӣ 8 (6DR`n|$2@N\jx .<JXft '3I '3I '3I '3I _2) _2) _2) '3I '3I '3I '3I _2) _2) _2) _2) 3J 3J 3J 3J 3J G. s6 G. s6 G. s6 '3 ӣ '3 ӣ '3 ӣ '3 ӣ -. P -. P -. P 3I% 3I% 3I% 3I% 3y 3y 3y 3y U3U U3U U3U U3U 3S 3S 3S 3S @3, @3, @3, @3, M- M- M- A33 A33 A33 A33 #3I) #3I) #3I) #3I) K3Z  K3Z  1 0@P`p 0@P`p 0@P`p'3?TD#2gLp2P`3;I!X 3H\ 3?D`3d'3?TD#2gLp2P`3;I!X 3H\ 3?D`3di3?hrlޏ3?Ct!2gs}x3II|372YOa3?[`g3'i3'p?3&3;3IY39^2ЬS3?& 3I1^~3IuK¤3?C #3'HÈI3 G37o23Iwi)k3Af2Kģ3V+Ŀk3I/Wj37mő3&{Ŝ3Ipūo2  3W%Ə%3\53?h` p/3Iv!3?fYy3HpE3JW "ʾ2rl03?mL43I•8b3IuKCtS3?%0G 7 0@P`p 0@P`p 0@P`pS2OS2O͞3;IW;33It(cΝ2gX3\ ]k3Qxo2/#sPu3Iwhw/3ISJ~m3_ f3FC~=33 }3x7-3JP]2+#3ISտM2Q>.2֖I3I"ַ3&d+2*X2m٤3?0٩539^N73&pfڈ3?ڕ3Iݍ3Dk37WK%3:B> 2,03?m3]3\ބ2 ފK3 mC3`R3YX53?i1d3%%3)J3Bg-➛381х365bw293=|2摜A-2Eyi3N0'I3Q.c3&~W4UE3 m]O#3%a蹵2e 4veSB1 sbP?. p_N=+ d.H=7d.H=7  d.H=7  [;-^  [;-^ [;-^ -3Y -3Y-3Y-3Y3ID 3ID3ID3IDc3m c3mc3m~c3m}m55?|ԁ| m55?|ԁ{m55?|ԁzm55?|ԁ ym55?|ԁxi3)w i3)vi3)ui3)tc3+s c3+rc3+qc3+pL-;3o L-;3nL-;3m7s2l 7s2k7s2j7s2i2h 2g2f2e3 xd 3 xc3 xb3 xaS3I®l` S3I®l_S3I®l^S3I®l]3 Ĵ\ 3 Ĵ 8 (6DR`n|$2@N\jx .<JXft K3Z  3?o 3?o 3?o 3?o 38K 38K K3Z  3?o 3?o 3?o 3?o 38K 38K 38K 38K 3 Ĵ 3 Ĵ 3 Ĵ 3 Ĵ S3I®l S3I®l S3I®l S3I®l 3 x 3 x 3 x 3 x 2 2 2 2 7s2 7s2 7s2 7s2 L-;3 L-;3 L-;3 c3+ c3+ c3+ c3+ i3) i3) i3) i3) m55?|ԁ m55?|ԁ m55?|ԁ m55?|ԁ m55?|ԁ c3m c3m c3m c3m 3ID 3ID 3ID 3ID -3Y -3Y -3Y 4veTC1 sbQ@/ q_N=, C . 2=B . 2=A . 2=@.{9? .{9>.{9=.{9<.H9 ; .H9 :.H9 9.H9 8.H9 7.H9 62B5 2B42B3OQ3?''2 OQ3?''1OQ3?''0OQ3?''/E'.>4. E'.>4-E'.>4,E'.>4 +5?i|* 5?i|)5?i|(5?i| '5?i|&c3h% c3h$c3h#c3h". Cp#! . Cp# . Cp#3|X 3|X3|X3|X3?l 3?l3?l3?lC3( C3(C3(C3(d.H=7 d.H=7d.H=7d.H=7 8 (6DR`n|$2@N\jx .<JXft [;-^ [;-^ [;-^ d.H=7 d.H=7 d.H=7 d.H=7 [;-^ [;-^ [;-^ d.H=7 d.H=7 d.H=7 d.H=7 d.H=7 d.H=7 d.H=7 C3( C3( C3( C3( 3?l 3?l 3?l 3?l 3|X 3|X 3|X 3|X . Cp# . Cp#! . Cp#" c3h# c3h$ c3h% c3h& 5?i|' 5?i|( 5?i|) 5?i|* 5?i|+ E'.>4, E'.>4- E'.>4. E'.>4/ OQ3?''0 OQ3?''1 OQ3?''2 OQ3?''3 2B4 2B5 2B6 .H9 7 .H9 8 .H9 9 .H9 : .H9 ; .H9 < .{9= .{9> .{9? .{9@  . 2=A 2!0@P`p 0@P`p 0@P`pؓ.  e-"2ݯ%u.nlL;m.E ls. s'ؓ.  e-"2ݯ%u.nlL;m.E ls. s'2am. i2am. lC}[2!' 2B2$Y0\-(7g2"!j;}2AUF. A@Vl2!G. s6-. PM-L-;3[;-^ . Cp# E'.>4-2B4.{9= . 2=Ak.*H.ZT^.3$)iĵ2q.!n.#m{c-. *G2$Y-6u. ϯ3]js. گʱA2B-I=2%T2!}2.2֖I3I"ַ3&&. 'vd+2*E;.H6%X2m٤3?0٩539^N73&pfڈ3?ڕ3Iھ5?|ݍ3Dk37WK%3:B> 2,/w.Z03?mݒ;-H~3] 1 0@P`p 0@P`p 0@P`pp2Q`3;I!Y 3H] 3?Da3ei3?hrmޏ3?Cup2Q`3;I!Y 3H] 3?Da3ei3?hrmޏ3?Cu!2gs}y3II}372YOa3?[`g3'i3'p?3&3;3IY39^2ЬS3?& 3I1^~3IuK¤3?C #3'HÈI3 G37o23Iwi)k3Af2Kģ3V+Ŀk3I/Wj37mő3&{Ŝ3Ipūo2  3W%Ə%3\53?h` p/3Iv!3?fYy3HpE3JW $ʾ2rl13?mL53I•9b3IuKDtS3?%0H̑2"LS2P 4veTC1 sbP?. p_N<+ _ )k3A^)k3A])k3A\3Iwi[ 3IwiZ3IwiY3IwiX2W 2V2U2TG37oS G37oRG37oQG37oPÈI3 O ÈI3 NÈI3 MÈI3 L #3'HK #3'HJ #3'HI #3'HH¤3?CG ¤3?CF¤3?CE¤3?CD. ϯC . ϯB. ϯA-6u@ -6u?-6u>~3IuK= ~3IuK<~3IuK;~3IuK:G2$Y9 G2$Y8G2$Y7 3I1^6 3I1^5 3I1^4 3I1^3S3?&2 S3?&1S3?&0S3?&/2Ь. 2Ь-2Ь,2Ь 8 (6DR`n|$2@N\jx .<JXft  3I1^  3I1^  3I1^ G2$Y G2$Y G2$Y ~3IuK  3I1^  3I1^  3I1^ G2$Y G2$Y G2$Y ~3IuK ~3IuK ~3IuK ~3IuK -6u -6u -6u . ϯ . ϯ . ϯ ¤3?C ¤3?C ¤3?C ¤3?C  #3'H  #3'H  #3'H  #3'H ÈI3  ÈI3  ÈI3  ÈI3  G37o G37o G37o G37o 2 2 2 2 3Iwi 3Iwi 3Iwi 3Iwi )k3A )k3A )k3A )k3A f2K f2K f2K f2K ģ3V+ ģ3V+ ģ3V+ ģ3V+ Ŀk3I/W Ŀk3I/W Ŀk3I/W Ŀk3I/W 1 0@P`p 0@P`p 0@P`p|2摜D-2Hyi3N0'La2!P.c3&~W4X簯2D\E3 m`|2摜D-2Hyi3N0'La2!P.c3&~W4X簯2D\E3 m`O#3%d蹵2hS!.o 2se-3Yw2z3?a~Y22E1쵡3JŘ'b3?_(3'2F2&G+3I?3`32Q631%.7.H  )3IɻHi3T.G2 ^u3?HKh3?<2vYu3M3?T.3D123?fL. 9U38#u2sK932 /3&rY3Jʓjo3?t 5?|;3~#FK.HMPz3Jx%3I# 4~vdSB1sbP?. p^M<+~Lj.D{ p/3Iv p/3Ivp/3Ivp/3Iv53?h`  53?h` 53?h` 53?h` Ə%3\  Ə%3\Ə%3\Ə%3\js. گ js. گjs. گ 3W% 3W% 3W% 3W%3]~ 3]}3]|ūo2 { ūo2 zūo2 yūo2 xŜ3Ipw Ŝ3IpvŜ3IpuŜ3Iptő3&{s ő3&{rő3&{qő3&{pj37mo j37mnj37mmj37mlĿk3I/Wk Ŀk3I/WjĿk3I/WiĿk3I/Whģ3V+g ģ3V+fģ3V+eģ3V+df2Kc f2Kbf2Kaf2K`)k3A 8 (6DR`n|$2@N\jx .<JXft j37m j37m j37m ő3&{ ő3&{ ő3&{ ő3&{ j37m j37m j37m ő3&{ ő3&{ ő3&{ ő3&{ Ŝ3Ip Ŝ3Ip Ŝ3Ip Ŝ3Ip ūo2  ūo2  ūo2  ūo2  3] 3] 3]  3W%  3W%  3W%  3W% js. گ js. گ js. گ Ə%3\ Ə%3\ Ə%3\ Ə%3\ 53?h` 53?h` 53?h` 53?h` p/3Iv p/3Iv p/3Iv p/3Iv Lj.D{ Lj.D{ Lj.D{ Lj.D{ Lj.D{ Lj.D{ Lj.D{ !3?f !3?f !3?f !3?f Yy3H Yy3H Yy3H Yy3H! pE3JW " pE3JW # pE3JW $ pE3JW % 4wfTC2!udRA0 raO>- GtS3?%0Fb3IuKE b3IuKDb3IuKCb3IuKB.ҩA .ҩ@.ҩ?.ҩ>.ҩ=.ҩ<.ҩ ;3I•: 3I•93I•83I•73?mL6 3?mL53?mL43?mL3ʾ2rl2 ʾ2rl1ʾ2rl0ʾ2rl/ʱA2B. ʱA2B-ʱA2B,;.H] >+ ;.H] >*;.H] >);.H] >(;.H] > ';.H] > &pE3JW % pE3JW $pE3JW #pE3JW "pE3JW !Yy3H  Yy3HYy3HYy3H!3?f !3?f!3?f!3?fLj.D{ Lj.D{Lj.D{Lj.D{Lj.D{Lj.D{ 4 0@P`p 0@P`p 0@P`pe-3Yt3?a{쵡3JŘ'b3?_e-3Yt3?a{쵡3JŘ'b3?_Χ2v(3'2F2&G+3I?3`32Q631%3I )3IɻHi3T.G2 ^u3?HK38h3?<2vYu3M3?T.3D123?fLU38#K932 /3&r)3T.Y3Jʓjm2̓o3?t;3~#z3Jx%3I 43?d$V]3(z3l,3I0I3&s.43&`8I3L<37D{2ZH;2ʮQO 2jS3 SW#3?][mI3i?3'mJ2穥q3'u 1 0@P`p 0@P`p 0@P`p;33It(dΝ2hX3\ ]l3Qxp2/#tPu3Iwhx/3ISJ;33It(dΝ2hX3\ ]l3Qxp2/#tPu3Iwhx/3ISJm3_ f3FC~=33 }3x7-3JP]2+#3ISտM2Q>.2֖I3I"ַ3&d+2*X2m٤3?0٩539^N73&pfڈ3?ڕ3Iݍ3Dk37WK%3:B> 2,03?m3]3\ބ2 ފK3 mC3`R3YX53?i1d3&%3*J3Bg.➛382х366bw2:3>|2摜B-2Fyi3N0'J3R 8 (6DR`n|$2@N\jx .<JXft ;.H] >' ;.H] >( ;.H] >) ;.H] >* ;.H] >+ ;.H] >, ʱA2B- ;.H] >' ;.H] >( ;.H] >) ;.H] >* ;.H] >+ ;.H] >, ʱA2B- ʱA2B. ʱA2B/ ʾ2rl0 ʾ2rl1 ʾ2rl2 ʾ2rl3 3?mL4 3?mL5 3?mL6 3?mL7 3I•8 3I•9 3I•: 3I•; .ҩ< .ҩ= .ҩ> .ҩ? .ҩ@ .ҩA .ҩB b3IuKC b3IuKD b3IuKE b3IuKF tS3?%0G tS3?%0H tS3?%0I tS3?%0J ̑2"K ̑2"L ̑2"M ̑2"N S2O S2P S2Q S2R I=2%S I=2%T I=2%U I=2%V ͞3;IW ͞3;IX ͞3;IY ͞3;IZ 5?[ 5?\ 5?] 5?^ 4veTB1 tbQ@. q_N=, {К. R'zPu3Iwhy Pu3IwhxPu3IwhwPu3Iwhv2/#u 2/#t2/#s2/#r3Qxq 3Qxp3Qxo3QxnX3\ ]m X3\ ]lX3\ ]kX3\ ]jΝ2i Ν2hΝ2gΝ2f;33It(e ;33It(d;33It(c;33It(b2, տM2Q>+տM2Q>*տM2Q>)#3IS( #3IS'#3IS&#3IS%]2+$ ]2+#]2+"]2+!7-3JP  7-3JP7-3JP7-3JP7-3JP}3x }3x}3x}3x3  3 3 3 ~=3 ~=3~=3~=3f3FC f3FCf3FC f3FC c1.-  c1.- c1.- c1.- јm2Baf јm2Bafјm2Bafm3_  m3_ m3_ m3_ /3ISJ /3ISJ/3ISJ~/3ISJ}К. R'| К. R' 8 (6DR`n|$2@N\jx .<JXft }3x }3x }3x }3x 7-3JP 7-3JP 7-3JP }3x }3x }3x }3x 7-3JP 7-3JP 7-3JP 7-3JP 7-3JP ]2+ ]2+ ]2+ ]2+ #3IS #3IS #3IS #3IS տM2Q> տM2Q> տM2Q> տM2Q> !}2 !}2 !}2 .2 .2 .2 .2 ֖I3I" ֖I3I" ֖I3I" ֖I3I" ַ3& ַ3& ַ3& ַ3& &. 'v &. 'v &. 'v d+2* d+2* d+2* d+2* E;.H6% E;.H6% E;.H6% E;.H6% E;.H6% E;.H6% X2m X2m X2m X2m ٤3?0 ٤3?0 ٤3?0 5 0@P`p 0@P`p 0@P`pV]3+z3l/3I3V]3+z3l/3I3I3&s.73&`;5G2!C37G{2ZKҁ. l/MN;2ʮQR 2jV3 SZ#3?]^.HbdQs.;(hmI3l?3'pJ2穥t3'xU3|?3!3Z6=.H4V2q2]4g3ÖB. (2Ƭ93?dQ3' }2Mq3^ʹ3?H3Uo[;3J 3J9 3IE= 2b 15? ?1J"- 3IMm3?B+o-3'J- 2@22.3Ip2K3? '2k3?L. Gb3JNs2=3'l 4vdSB1sbQ?. p_N=+ cھ5?| bھ5?|aڕ3I` ڕ3I_ڕ3I^ڕ3I]ڈ3?\ ڈ3?[ڈ3?Zڈ3?YN73&pfX N73&pfWN73&pfVN73&pfU٩539^T ٩539^S٩539^R٩539^Q٤3?0P ٤3?0O٤3?0N٤3?0MX2mL X2mKX2mJX2mIE;.H6%H E;.H6%GE;.H6%FE;.H6%EE;.H6% DE;.H6% Cd+2*B d+2*Ad+2*@d+2*?&. 'v> &. 'v=&. 'v<ַ3&; ַ3&:ַ3&9ַ3&8֖I3I"7 ֖I3I"6֖I3I"5֖I3I"4.23 .22.21.20!}2 1 0@P`p 0@P`p 0@P`pA.7. 9u2s5G2!Aҁ. l/MLQs.;(f2q2]/. ,ThQK.1"a2!N簯2DZ2xY22E1.7. 9u2s5G2!Aҁ. l/MLQs.;(f2q2]B. ( 2b ?1J"22.. G22#z: -a|"%.#3Sk2"'u.S~0.L?[2(n/2&v7. f. "N27"Y.?$2%$u-%.B&}.4E'S. \'U22q)2n *&. aߧ*>M. ڐ4͓.0/55. 7B2!67. *a7. S8C2(;2n>2 I@. puAXq. I  4veTB1 sbQ@. p_N=+  /. ,Th/. ,ThC3`R C3`RC3`RC3`RފK3 m ފK3 mފK3 mފK3 m ބ2  ބ2 ބ2 ބ2 3\ 3\3\3\3] 3]3]3]ݒ;-H~ ݒ;-H~ݒ;-H~~03?m} 03?m|03?m{03?mz/w.Zy /w.Zx/w.Zw/w.Zv 2,u 2,t 2,s 2,rK%3:B>q K%3:B>pK%3:B>oK%3:B>nk37Wm k37Wlk37Wkk37Wjݍ3Di ݍ3Dhݍ3Dgݍ3Dfھ5?|e ھ5?|dھ5?| 8 (6DR`n|$2@N\jx .<JXft ٩539^ ٩539^ ٩539^ ٩539^ N73&pf N73&pf N73&pf ٩539^ ٩539^ ٩539^ ٩539^ N73&pf N73&pf N73&pf N73&pf ڈ3? ڈ3? ڈ3? ڈ3? ڕ3I ڕ3I ڕ3I ڕ3I ھ5?| ھ5?| ھ5?| ھ5?| ھ5?| ݍ3D ݍ3D ݍ3D ݍ3D k37W k37W k37W k37W K%3:B> K%3:B> K%3:B> K%3:B>  2,  2,  2,  2, /w.Z /w.Z /w.Z /w.Z 03?m 03?m 03?m 03?m ݒ;-H~ ݒ;-H~ ݒ;-H~ 3] 3] 3] 3] 3\ 3\ 3\ 3\ 1 0@P`p 0@P`p 0@P`pE3 m^O#3%b蹵2f 2qe-3Yu3?a|쵡3JŘ'E3 m^O#3%b蹵2f 2qe-3Yu3?a|쵡3JŘ'b3?_Χ2v(3'2F2&G+3I?3`32Q631%3I )3IɻHi3T.G2 ^u3?HK38h3?<2vYu3M3?T.3D123?fLU38#K932 /3&r)3T.Y3Jʓjm2̓o3?t ;3~#z3Jx%3I!43?d%V]3)z3l-3I1I3&s.53&`9I3L=37E{2ZI;2ʮQP 4vdSB1sbP?. p_N<+ K yi3N0'Jyi3N0'Iyi3N0'H-2G -2F-2E-2D|2摜C |2摜B|2摜A|2摜@3? 3>3=3<bw2; bw2:bw29bw28х367 х366х365х364➛383 ➛382➛381➛380J3Bg/ J3Bg.J3Bg-J3Bg,%3+ %3*%3)%3(d3' d3&d3%d3$QK.1# QK.1"QK.1!QK.1  53?i1 53?i153?i153?i13YX 3YX3YX3YX/. ,Th 8 (6DR`n|$2@N\jx .<JXft ބ2 ބ2 ބ2 ފK3 m ފK3 m ފK3 m ފK3 m ބ2 ބ2 ބ2 ފK3 m ފK3 m ފK3 m ފK3 m C3`R C3`R C3`R C3`R /. ,Th /. ,Th /. ,Th 3YX 3YX 3YX 3YX 53?i1 53?i1 53?i1 53?i1 QK.1! QK.1" QK.1# QK.1$ d3% d3& d3' d3( %3) %3* %3+ %3, J3Bg- J3Bg. J3Bg/ J3Bg0 ➛381 ➛382 ➛383 ➛384 х365 х366 х367 х368 bw29 bw2: bw2; bw2< 3= 3> 3? 3@ |2摜A |2摜B 2 0@P`p 0@P`p 0@P`p22#z:3  -a|"%.#3SH'.HT+!k2")22#z:3  -a|"%.#3SH'.HT+!k2")5?2.u.S~25.H=29.LBɑ2$@F=.HNL93P m3?/T 3IXH93]6\K3``@?3?LDhQ3&m@l[2(p/2&xF3&`}P|3?D2*3 P77. fp3&+I23!!5?R"=3W"N27"Y.?#Y3 )#3Idn#[3##+3I$~3I$2%$u-%+.H%.B%5?U%33\&e2#&|3J"C&}.4E'#3?l'e3?'l3Jd@'u2v 1 0@P`p 0@P`p 0@P`pM3?T.3D123?fL. 9U38#u2sM3?T.3D123?fL. 9U38#u2sK932 /3&r)3T.Y3Jʓjm2̓o3?t 5?|;3~#FK.HMPz3Jx%3I"43?d&V]3*z3l.3I2I3&s.63&`:I3L>5G2!B37F{2ZJҁ. l/MM;2ʮQQ 2jU3 SY#3?]].HbcQs.;(gmI3k?3'oJ2穥s3'wU3{?3!3Z6=.H4V2q2]4g3ÖB. (2Ƭ93?d 4vdSB1sbP?. q`N=, Y22E1~3?a} 3?a|3?a{3?az2y 2x2we-3Yv e-3Yue-3Yte-3Ys 2r 2q 2p 2oS!.n S!.mS!.lS!.kS!.jS!.iS!. h蹵2g 蹵2f蹵2e蹵2dO#3%c O#3%bO#3%aO#3%`E3 m_ E3 m^E3 m]E3 m\簯2D[ 簯2DZ簯2DY簯2D X.c3&~W4W .c3&~W4V.c3&~W4U.c3&~W4T3S 3R3Q3Pa2!O a2!Na2!Ma2! Lyi3N0' 8 (6DR`n|$2@N\jx .<JXft |2摜D -2E -2F -2G -2H yi3N0'I yi3N0'J |2摜D -2E -2F -2G -2H yi3N0'I yi3N0'J yi3N0'K yi3N0'L a2!M a2!N a2!O a2!P 3Q 3R 3S 3T .c3&~W4U .c3&~W4V .c3&~W4W .c3&~W4X 簯2DY 簯2DZ 簯2D[ 簯2D\ E3 m] E3 m^ E3 m_ E3 m` O#3%a O#3%b O#3%c O#3%d 蹵2e 蹵2f 蹵2g 蹵2h S!.i S!.j S!.k S!.l S!.m S!.n S!.o  2p  2q  2r  2s e-3Yt e-3Yu e-3Yv e-3Yw 2x 2y 2z 3?a{ 8 0@P`p 0@P`p 0@P`p?3}!3Z64g3Ö2Ƭ93?d3&oQ3' }2Mq3^ʹ3?H3Uo[;3J 3J9 3IE= r2- 3IMm3?B+o-3'J- 2@3Ip2K3? '2k3?Lb3JNs2=3'l;2  3 h3ZH"3J`d:ɑ2$@C93M m3?/Q 3IUH93]6YK3`]3|a@?3?LDeQ3&m@i3'*gqF3&`}Py3?D}2*3 P7p3&+I23" 3*"=3W#Y3 )#3Idn#[3##+3I$~3I%G2 ^=G2 ^<Hi3T.; Hi3T.:Hi3T.9Hi3T.8 )3Iɻ7 )3Iɻ6 )3Iɻ5 )3Iɻ43I 8 (6DR`n|$2@N\jx .<JXft  )3Iɻ  )3Iɻ  )3Iɻ Hi3T. Hi3T. Hi3T. Hi3T.  )3Iɻ  )3Iɻ  )3Iɻ Hi3T. Hi3T. Hi3T. Hi3T. G2 ^ G2 ^ G2 ^ G2 ^ u3?HK u3?HK u3?HK u3?HK 38 38 38 38 h3?< h3?< h3?< h3?< 2vY 2vY 2vY 2vY u3 u3 u3 u3 M3?T M3?T M3?T M3?T .3D .3D .3D .3D 12 12 12 12 3?fL 3?fL 3?fL 3?fL . 9 . 9 . 9 U38# U38# U38# U38# u2s u2s 3 0@P`p 0@P`p 0@P`p3 SX#3?]\mI3j?3'nJ2穥r3 SX#3?]\mI3j?3'nJ2穥r3'vU3z?3~!3Z64g3Ö2Ƭ93?d3&oQ3' }2Mq3^ʹ3?H3Uo[;3J 3J9 3IE= r2- 3IMm3?B+o-3'J- 2@3Ip2K3? '2k3?Lb3JNs2=3'l;2  3 h3ZH#3J`d;ɑ2$@D93N m3?/R 3IVH93]6ZK3`^3|b@?3?LDfQ3&m@j3'*grF3&`}Pz3?D~2 4veTB1 sbQ@/ q`O=, z3Jx%FK.HMP FK.HMPFK.HMPFK.HMPFK.HMP FK.HMP ;3~# ;3~#;3~#;3~#5?| 5?|5?| 5?|  5?| o3?t  o3?t o3?to3?tm2̓ m2̓m2̓m2̓Y3Jʓj Y3JʓjY3JʓjY3JʓjY3Jʓj~)3T.} )3T.|)3T.{)3T.z/3&ry /3&rx/3&rw/3&rv2 u 2 t2 s2 rK93q K93pK93oK93nu2sm u2slu2skU38#j U38#iU38#hU38# +aap$3BQ`p 0@P`p.=L[jy r2G2$Y3Iwijs. گp/3Iv!3?fb3IuKF̑2"NI=2%VX3\ ]n2/#vm3_ c1.-3e3I`438py8 3\ M<92ט@3It)Ds{3IaH3 Pc3;T3&o¿X3?o\2`xk2ᔴd93hw3'#p3>ot%3J7Xxد3&s}"3IvYm3(w36+A2pBk3NQ3?d)3'E3Z82Е3I3}C2Y3N. I3Rl3IdY2g|3I$w%3'W2j3%3¡t']3I,2L3x `-23 d~O3I} 1 0@P`p 0@P`p 0@P`pQ3' }2Mq3^ʹ3?H3Uo[;3J 3J9Q3' }2Mq3^ʹ3?H3Uo[;3J 3J9 3IE= 2b r2 15? ?1J"- 3IMm3?B+o-3'J- 2@22.3Ip2K3? '2k3?L. Gb3JNs2=3'l;2  22#z:3  -a|"%.#3SH'.HT+ h3ZH$k2"(5?2-u.S~15.H=283J`d=.LAɑ2$@E=.HNK93O m3?/S 3IWH93]6[K3`_3|c@?3?LDgQ3&m@k 8 (6DR`n|$2@N\jx .<JXft K93 K93 K93 K93 2  2  2  K93 K93 K93 K93 2  2  2  2  /3&r /3&r /3&r /3&r )3T. )3T. )3T. )3T. Y3Jʓj Y3Jʓj Y3Jʓj Y3Jʓj Y3Jʓj m2̓ m2̓ m2̓ m2̓ o3?t o3?t o3?t o3?t 5?| 5?| 5?| 5?| 5?| ;3~# ;3~# ;3~# ;3~# FK.HMP FK.HMP FK.HMP FK.HMP FK.HMP FK.HMP z3Jx% z3Jx% z3Jx% z3Jx% z3Jx% 3I 3I! 3I" 3I# 43?d$ 43?d% 43?d& 4veTC1 tbQ@/ q`N=, O;2ʮQNҁ. l/MM ҁ. l/MLҁ. l/MK{2ZJ {2ZI{2ZH{2ZG37F 37E37D37C5G2!B 5G2!A5G2!@5G2! ?I3L> I3L=I3L<I3L;3&`: 3&`93&`83&`7I3&s.6 I3&s.5I3&s.4I3&s.33I2 3I13I03I/z3l. z3l-z3l,z3l+V]3* V]3)V]3(V]3'43?d& 43?d%43?d$43?d#3I" 3I!3I 3Iz3Jx% z3Jx%z3Jx%z3Jx% 5 0@P`p 0@P`p 0@P`p&|3J"C'#3?l'e3?&|3J"C'#3?l'e3?'l3Jd@'u2v(Q3Ii)Q37F6)[2 +'3-/2%-93w)-Fu37-.]3?[1.;35.?39/]3S=/g2 A0!/2E03INPI0ʱ3?_M1#A3 X1+3^ț\12-.`1g3?Dd1a2Ph2x+3#l2'3{Pp23ôt23&3Nx3=37|3S363'*V6263Ch%7Y3ID8'c283Itq9{39;3,93:8E3I:J3&pg :/3 b;2;Я3?O<3=Q2?=2!?p3V+?2[?M3RGAo3?DC9U3 - 8 (6DR`n|$2@N\jx .<JXft V]3( V]3) V]3* V]3+ z3l, z3l- z3l. V]3( V]3) V]3* V]3+ z3l, z3l- z3l. z3l/ 3I0 3I1 3I2 3I3 I3&s.4 I3&s.5 I3&s.6 I3&s.7 3&`8 3&`9 3&`: 3&`; I3L< I3L= I3L> I3L? 5G2!@ 5G2!A 5G2!B 5G2!C 37D 37E 37F 37G {2ZH {2ZI {2ZJ {2ZK ҁ. l/ML ҁ. l/MM ҁ. l/MN ;2ʮQO ;2ʮQP ;2ʮQQ ;2ʮQR  2jS  2jT  2jU  2jV 3 SW 3 SX 3 SY 3 SZ #3?][ #3?]\ #3?]] #3?]^ .Hb_ 4veTB1 tcQ@/ q`O=,  !3Z6!3Z6!3Z6?3 ?3~?3}?3|U3{ U3zU3yU3x3'w 3'v3'u3'tJ2穥s J2穥rJ2穥qJ2穥p?3'o ?3'n?3'm?3'lmI3k mI3jmI3imI3hQs.;(g Qs.;(fQs.;(eQs.;( d.Hbc .Hbb.Hba.Hb`.Hb _.Hb ^#3?]] #3?]\#3?][#3?]Z3 SY 3 SX3 SW3 SV 2jU 2jT 2jS 2jR;2ʮQQ ;2ʮQP;2ʮQ 8 (6DR`n|$2@N\jx .<JXft .Hba .Hbb .Hbc .Hbd Qs.;(e Qs.;(f Qs.;(g .Hba .Hbb .Hbc .Hbd Qs.;(e Qs.;(f Qs.;(g Qs.;(h mI3i mI3j mI3k mI3l ?3'm ?3'n ?3'o ?3'p J2穥q J2穥r J2穥s J2穥t 3'u 3'v 3'w 3'x U3y U3z U3{ U3| ?3} ?3~ ?3 ?3 !3Z6 !3Z6 !3Z6 !3Z6 =.H4V =.H4V =.H4V =.H4V =.H4V =.H4V 2q2] 2q2] 2q2] 4g3Ö 4g3Ö 4g3Ö 4g3Ö B. ( B. ( B. ( 2Ƭ9 2Ƭ9 2Ƭ9 2Ƭ9 4veSB1 sbP?. p_N<+ 7[;3J6[;3J5[;3J43Uo3 3Uo23Uo13Uo0ʹ3?H/ ʹ3?H.ʹ3?H-ʹ3?H,Mq3^+ Mq3^*Mq3^)Mq3^(}2' }2&}2%}2$Q3' # Q3' "Q3' !Q3'  3&o 3&o3&o3&o3?d 3?d3?d3?d2Ƭ9 2Ƭ92Ƭ92Ƭ9B. ( B. (B. (4g3Ö 4g3Ö4g3Ö4g3Ö 2q2]  2q2] 2q2] =.H4V  =.H4V=.H4V=.H4V=.H4V =.H4V !3Z6 8 (6DR`n|$2@N\jx .<JXft 3?d 3?d 3?d 3&o 3&o 3&o 3&o 3?d 3?d 3?d 3&o 3&o 3&o 3&o Q3'  Q3'  Q3'  Q3'  }2 }2 }2 }2 Mq3^ Mq3^ Mq3^ Mq3^ ʹ3?H ʹ3?H ʹ3?H ʹ3?H 3Uo 3Uo 3Uo 3Uo [;3J [;3J [;3J [;3J [;3J  3J9  3J9  3J9  3J9  3J9  3IE=  3IE=  3IE=  3IE=  2b  2b  2b  2b  r2  r2  r2  r2  15?  15?  15?  15?  15?  ?1J"  ?1J" 4veTB1 tbQ@. q_N=, k2Kj2Ki3Iph 3Ipg3Ipf3Ipe22.d 22.c22.b 2@a  2@` 2@_ 2@^o-3'J-] o-3'J-\o-3'J-[o-3'J-Zm3?B+Y m3?B+Xm3?B+Wm3?B+V- 3IMU - 3IMT- 3IMS- 3IMR ?1J"Q ?1J"P ?1J"O 15?N 15?M 15?L 15? K 15?J r2I r2H r2G r2F 2bE 2bD 2bC 2b B 3IE=A 3IE=@ 3IE=? 3IE=> 3J9= 3J9< 3J9; 3J9: 3J99[;3J8 [;3J 1 0@P`p 0@P`p 0@P`pp3&+I23" 3*"=3W#Y3 )#3Idn#[3#p3&+I23" 3*"=3W#Y3 )#3Idn#[3##+3I$~3I%/g2 B0!/2F03INPJ0ʱ3?_N1#A3 Y1+3^ț]12-.a1g3?De1a2Pi2x+3#m2'3{Pq23ôu23&3Ny3=37}3S363'*V6263Ch%7Y3ID8'c283Itq 1 0@P`p 0@P`p 0@P`p3'*gs/2&wF3&`}P{3?D2*3 P77. f3'*gs/2&wF3&`}P{3?D2*3 P77. fp3&+I23. !!5?R" 3*"=3W"N27"Y.?#Y3 )#3Idn#[3##+3I$~3I$2%$u-%+.H%M. ڐ+'3+a5?g-.Hx{#-/2'-93w+-Fu37/.]3?[3 8 (6DR`n|$2@N\jx .<JXft - 3IM - 3IM - 3IM - 3IM m3?B+ m3?B+ m3?B+ - 3IM - 3IM - 3IM - 3IM m3?B+ m3?B+ m3?B+ m3?B+ o-3'J- o-3'J- o-3'J- o-3'J-  2@  2@  2@  2@ 22. 22. 22. 3Ip 3Ip 3Ip 3Ip 2K 2K 2K 2K 3? ' 3? ' 3? ' 3? ' 2 2 2 2 k3?L k3?L k3?L k3?L . G . G . G b3JN b3JN b3JN b3JN b3JN s2 s2 s2 s2 =3'l =3'l =3'l =3'l ;2  4veSB1 sbQ?. p_N=+ H'.HT+H'.HT+H'.HT+ H'.HT+ "%.#3S "%.#3S"%.#3S -a|  -a| -a|3  3 3 3 22#z: 22#z:22#z:22#z:  ;2   ;2  ;2  ;2  =3'l =3'l=3'l=3'ls2 s2s2s2b3JN b3JNb3JN~b3JN}b3JN|. G{ . Gz. Gyk3?Lx k3?Lwk3?Lvk3?Lu2t 2s2r2q3? 'p 3? 'o3? 'n3? 'm2Kl 2K 2 0@P`p 0@P`p 0@P`p'U22q(Q3Ii)Q37F6)2n )[2*&. aߧ'U22q(Q3Ii)Q37F6)2n )[2*&. aߧ*>M. ڐ+'3+a5?g-.Hx{$-/2(-93w,-Fu370.?3</]3S@/g2 D0!/2H03INPL0.HKW1#A3 [1+3^ț_12-.c1g3?Dg1a2Pk2x+3#o2'3{Ps23ôw3S34͓.0/55. 63'*V6263Ch%7B2!67Y3ID7. *a7. S83Itq9;3,93:8E3I:/3 b:[5?;2;Я3?O<3=Q2>2 I?=2!?5?  3jz ZJ:* )9HWfu )8GVet}3aK3W;kx3?f3?fj3IY)93S-dy1Jw Oq2 ֈ p52! jj.6 i#. N gu.nN g<#- `‹-} XH+. )SIu.(X8eJI1JhO. /Q2ݝRU.ؖSI2T.Y9o.? Yc. !]k2> 7ؓ. AXq. I  i3Jtn }3aK3W;kx3?f3?fj3IY)93S-d2 1e3I`538py9 3\ M=92טA3It)Es{3IaI3 Qc3;U3&o¿Y3?o]2axk2ᔴe93iw3'#q3>ou%3J7Xyد3&s~"3IvYm3(w36+A2pBk3NQ 8 (6DR`n|$2@N\jx .<JXft ;2  ;2  22#z: 22#z: 22#z: 22#z: 3  ;2  ;2  22#z: 22#z: 22#z: 22#z: 3  3  3  3   -a|  -a|  -a| "%.#3S "%.#3S "%.#3S H'.HT+ H'.HT+ H'.HT+ H'.HT+ H'.HT+ H'.HT+! h3ZH" h3ZH# h3ZH$ h3ZH% k2"& k2"' k2"( k2") 5?2* 5?2+ 5?2, 5?2- 5?2. u.S~/ u.S~0 u.S~1 u.S~2 5.H=23 5.H=24 5.H=25 5.H=26 5.H=27 5.H=28 5.H=29 3J`d: 3J`d; 3J`d< 3J`d= 3J`d> .L? .L@ .LA .LB ɑ2$@C 4veSB1 tcR@/ r`O>- S  m3?/R m3?/Q m3?/P93O 93N93M93L=.HNK =.HNJ=.HNI=.HNH=.HN G=.HN Fɑ2$@E ɑ2$@Dɑ2$@Cɑ2$@B.LA .L@.L?.L>3J`d= 3J`d<3J`d;3J`d:3J`d95.H=28 5.H=275.H=265.H=255.H=245.H=2 35.H=2 2u.S~1 u.S~0u.S~/u.S~ .5?2- 5?2,5?2+5?2 *5?2)k2"( k2"'k2"&k2" %h3ZH$ h3ZH#h3ZH"h3ZH!H'.HT+  H'.HT+ 4vdSB1sbP?. p_N<+  *3 P7*3 P7*3 P72 2223?D 3?D~3?D}3?D|F3&`}P{ F3&`}PzF3&`}PyF3&`}Px/2&w /2&v/2&u/2& t3'*gs 3'*gr3'*gq3'*gp[2(o [2(n[2(m[2( lQ3&m@k Q3&m@jQ3&m@iQ3&m@h@?3?LDg @?3?LDf@?3?LDe@?3?LDd3|c 3|b3|a3|`K3`_ K3`^K3`]K3`\H93]6[ H93]6ZH93]6YH93]6X 3IW  3IV 3IU 3IT m3?/ 8 (6DR`n|$2@N\jx .<JXft ɑ2$@E ɑ2$@F =.HNG =.HNH =.HNI =.HNJ =.HNK ɑ2$@E ɑ2$@F =.HNG =.HNH =.HNI =.HNJ =.HNK =.HNL 93M 93N 93O 93P  m3?/Q  m3?/R  m3?/S  m3?/T  3IU  3IV  3IW  3IX H93]6Y H93]6Z H93]6[ H93]6\ K3`] K3`^ K3`_ K3`` 3|a 3|b 3|c 3|d @?3?LDe @?3?LDf @?3?LDg @?3?LDh Q3&m@i Q3&m@j Q3&m@k Q3&m@l [2(m [2(n [2(o [2(p 3'*gq 3'*gr 3'*gs 3'*gt /2&u /2&v /2&w /2&x F3&`}Py F3&`}Pz F3&`}P{ F3&`}P| 8 0@P`p 0@P`p 0@P`pC 3&r%D{3?/E-_3B3Eg3Iʺ07E3N;Eڥ2?F3'CG 3^ȻGG3J3mNIM2{\IX2$`J2k1kJ2woKm2a3sL!3IpwL3'3{MB3M3IMo3&NM3?i10N2O3?P31Q%3C(QO3IzR5'2R`3?./SR/3NMS[2S3?L0Sߛ3T{3qAT2T2T 3&~<TA3:B/U@3JVş3IbV3MW 3RWK3 W3I' Xi3I X3J8 X}2 Y.3I/ ZDk2/ %Z%3 )[3&mQ -]3? :^f3I D_E3ItH H_ϟ3? L`S3v P`|A2 Ta3?. [ 4~udSB0saP?. p^M<+~;$~3I:#+3I9 #+3I8#+3I7#+3I6#[3#5 #[3#4#[3#3#[3#2#3Idn1 #3Idn0#3Idn/#3Idn.#Y3 )- #Y3 ),#Y3 )+#Y3 )*"Y.?) "Y.?("Y.?'"Y.?&"N27% "N27$"N27#"=3W" "=3W!"=3W "=3W" 3* " 3*" 3*" 3*!!5?R !!5?R!!5?R!!5?R !!5?R.  . . I23 I23I23I23p3&+ p3&+ p3&+ p3&+ 7. f  7. f 7. f*3 P7 8 (6DR`n|$2@N\jx .<JXft 3?D~ 3?D 3?D 2 2 2 2 3?D~ 3?D 3?D 2 2 2 2 *3 P7 *3 P7 *3 P7 *3 P7 7. f 7. f 7. f p3&+ p3&+ p3&+ p3&+ I23 I23 I23 I23 .  .  .  !!5?R !!5?R !!5?R !!5?R !!5?R " 3* " 3* " 3* " 3* "=3W "=3W "=3W "=3W "N27 "N27 "N27 "Y.? "Y.? "Y.? "Y.? #Y3 ) #Y3 ) #Y3 ) #Y3 ) #3Idn #3Idn #3Idn #3Idn #[3# #[3# #[3# 1 0@P`p 0@P`p 0@P`p.?3;/]3S?/g2 C0!/2G03INPK0ʱ3?_O0.HKV.?3;/]3S?/g2 C0!/2G03INPK0ʱ3?_O0.HKV1#A3 Z1+3^ț^12-.b1g3?Df1a2Pj2x+3#n2'3{Pr23ôv23&3Nz3=37~3S34͓.0/55. 63'*V6263Ch%7B2!67Y3ID7. *a7. S8'c28C2(83Itq9{39;3,93:8E3I:J3&pg :/3 b:[5?;2n;2;Я3?O<3=Q2>2 I?=2!?p3V+?5? ?2[?M3RG@. pu 1 0@P`p 0@P`p 0@P`p9;3,93:8E3I:J3&pg :/3 b;2;Я3?O9;3,93:8E3I:J3&pg :/3 b;2;Я3?O<3=Q2?=2!?p3V+?2[?M3RGAo3?DC9U3 -Cb3ͽ"C 3&r&D{3?0E-_3B4Eg3Iʺ08E3N<Eڥ2@F3'DG 3^ȻHG3J3mOIM2{]IX2$aJ2k1lJ2wpKm2a3tL!3IpxL3'3|MB3M3IMo3&NM3?i10N2O3?P31Q%3C(QO3IzR5'2R`3?./SR/3NMS[2S3?L0Sߛ3T{3qAT2 4veSB1 tbQ@/ q`O>, o'e3?n'e3?m'#3?ll '#3?lk'#3?lj'#3?li&}.4Eh &}.4Eg&}.4Ef&}.4E e&|3J"Cd &|3J"Cc&|3J"Cb&|3J"Ca&|3J"C`&e2#_ &e2#^&e2#]&e2#\%33\[ %33\Z%33\Y%33\X%5?UW %5?UV%5?UU%5?U T%5?US%.BR %.BQ%.BP%.BO%$~3I= $~3I<$~3I 1 0@P`p 0@P`p 0@P`p?M3RG@. pu@[5?ADu.H$AXq. I  A.H?YAo3?D?M3RG@. pu@[5?ADu.H$AXq. I  A.H?YAo3?DC9U3 -CHY.H Cb3ͽ$C 3&r(DWU.HQ ~.Eg3Iʺ0:E3N>Eڥ2BF3'FG1JzMG3J3mRH+. )UH.Hm?[IM2{_IX2$cIu.(X8gJI1JjJ2k1nJ2wrL!3IpzL3'3~MB3M3IN2O. /O3?P31Q%3C(QO3IzQ2ݝR5'2RU.ؖR`3?./R.H+SI2S[2S3?L0Sߛ3T.T2T 3&~<TA3:B/ 8 (6DR`n|$2@N\jx .<JXft #+3I #+3I #+3I #+3I $~3I $~3I $~3I #+3I #+3I #+3I #+3I $~3I $~3I $~3I $~3I $2% $2% $2% $2% $u- $u- $u- %+.H %+.H %+.H %+.H %+.H %+.H %M. ڐ *>M. ڐ*>M. ڐ*&. aߧ *&. aߧ*&. aߧ)[2 )[2 )[2 )[2 )2n  )2n )2n)Q37F6 )Q37F6)Q37F6)Q37F6(Q3Ii (Q3Ii(Q3Ii(Q3Ii'U22q 'U22q~'U22q}'S. \| 'S. \{'S. \z'u2vy 'u2vx'u2vw'u2vv'l3Jd@u 'l3Jd@t'l3Jd@s'l3Jd@r'l3Jd@q'e3?p 'e3? 8 (6DR`n|$2@N\jx .<JXft 'e3? 'e3? 'l3Jd@ 'l3Jd@ 'l3Jd@ 'l3Jd@ 'l3Jd@ 'e3? 'e3? 'l3Jd@ 'l3Jd@ 'l3Jd@ 'l3Jd@ 'l3Jd@ 'u2v 'u2v 'u2v 'u2v 'S. \ 'S. \ 'S. \ 'U22q 'U22q 'U22q (Q3Ii (Q3Ii (Q3Ii (Q3Ii )Q37F6 )Q37F6 )Q37F6 )Q37F6 )2n )2n )2n )[2 )[2 )[2 )[2 *&. aߧ *&. aߧ *&. aߧ *>M. ڐ *>M. ڐ *>M. ڐ +'3 +'3 +'3 +'3 +a5?g +a5?g +a5?g +a5?g +a5?g -.Hx{ -.Hx{ -.Hx{! -.Hx{" -.Hx{# -.Hx{$ -/2% -/2& -/2' 4vdSB1sbP?. p_N<+ W0.HKV 0.HKU0.HKT0.HKS0.HKR0.HK Q0.HK P0ʱ3?_O 0ʱ3?_N0ʱ3?_M0ʱ3?_L03INPK 03INPJ03INPI03INPH0!/2G 0!/2F0!/2E0!/2D/g2 C /g2 B/g2 A/g2 @/]3S? /]3S>/]3S=/]3S<.?3; .?3:.?39.?38.;37 .;36.;35.;34.]3?[3 .]3?[2.]3?[1.]3?[0-Fu37/ -Fu37.-Fu37--Fu37,-93w+ -93w*-93w)-93w(-/2' -/2&-/2%-/2$-.Hx{ 8 (6DR`n|$2@N\jx .<JXft -93w) -93w* -93w+ -93w, -Fu37- -Fu37. -Fu37/ -93w) -93w* -93w+ -93w, -Fu37- -Fu37. -Fu37/ -Fu370 .]3?[1 .]3?[2 .]3?[3 .]3?[4 .;35 .;36 .;37 .;38 .?39 .?3: .?3; .?3< /]3S= /]3S> /]3S? /]3S@ /g2 A /g2 B /g2 C /g2 D 0!/2E 0!/2F 0!/2G 0!/2H 03INPI 03INPJ 03INPK 03INPL 0ʱ3?_M 0ʱ3?_N 0ʱ3?_O 0ʱ3?_P 0.HKQ 0.HKR 0.HKS 0.HKT 0.HKU 0.HKV 0.HKW 1#A3 X 1#A3 Y 1#A3 Z 1#A3 [ 1+3^ț\ 1+3^ț] 1+3^ț^ 1+3^ț_ 12-.` 4veTC1 tbQ@/ q`N=,  63'*V 55.   55. 55. 4͓.0/ 4͓.0/4͓.0/4͓.0/ 3S3 3S33S33S33=37~ 3=37}3=37|3=37{23&3Nz 23&3Ny23&3Nx23&3Nw23ôv 23ôu23ôt23ôs2'3{Pr 2'3{Pq2'3{Pp2'3{Po2x+3#n 2x+3#m2x+3#l2x+3#k1a2Pj 1a2Pi1a2Ph1a2Pg1g3?Df 1g3?De1g3?Dd1g3?Dc12-.b 12-.a12-.`12-._1+3^ț^ 1+3^ț]1+3^ț\1+3^ț[1#A3 Z 1#A3 Y1#A3 X1#A3  1 0@P`p 0@P`p 0@P`pADu.H$AXq. I  A.H?YAo3?DC9U3 -CHY.HCb3ͽ#ADu.H$AXq. I  A.H?YAo3?DC9U3 -CHY.HCb3ͽ#C 3&r'DWU.HQ ~-D{3?1E-_3B5Eg3Iʺ09E3N=Eڥ2AF3'EG 3^ȻIG1JzLG3J3mQH+. )TH.Hm?ZIM2{^IX2$bIu.(X8fJI1JiJ2k1mJ2wqKm2a3uL!3IpyL3'3}MB3M3IMo3&NM3?i10N2OX.O. /O3?P31Q%3C(QO3IzQ2ݝR5'2RU.ؖR`3?./R.H+SI2SR/3NMS[2S3?L0 8 0@P`p 0@P`p 0@P`pbԓ3% cc3'`0 nc# 3Is rc3I+ vd>C3 ze3?A ~e3q. fK3?o g3ItFI gA31 h2m h_3?:ê hxg3?tZ h2W iH73?%d j3Ipd k*?3&΅ kAg2M kS]3Isr l@2Ɠ l 3( m3PP m+ 3?H mE3F mr3Is m2 m2r nk3I n3Ii oDY3? q93 qX2 s3 s<2U sEO2" "s^I3'C &tA3Bv 0u$3Iʺ@ 4v03?C ?v-2^[ Cx3 Gx2 Ky'33'< Rz3- V{K3I Z{T32! ^{G2? b}Y3 l}I2 p}!3 t~2 xI3J`R |)3  S5? m55?|ԁ 5?i|( 8 (6DR`n|$2@N\jx .<JXft 12-.b 12-.c 1g3?Dd 1g3?De 1g3?Df 1g3?Dg 1a2Ph 12-.b 12-.c 1g3?Dd 1g3?De 1g3?Df 1g3?Dg 1a2Ph 1a2Pi 1a2Pj 1a2Pk 2x+3#l 2x+3#m 2x+3#n 2x+3#o 2'3{Pp 2'3{Pq 2'3{Pr 2'3{Ps 23ôt 23ôu 23ôv 23ôw 23&3Nx 23&3Ny 23&3Nz 23&3N{ 3=37| 3=37} 3=37~ 3=37 3S3 3S3 3S3 3S3 4͓.0/ 4͓.0/ 4͓.0/ 4͓.0/ 55.  55.  55.  63'*V 63'*V 63'*V 63'*V 62 62 62 62 63Ch% 63Ch% 63Ch% 63Ch% 7B2!6 7B2!6 7B2!6 4veTB1 sbP?. p_N<+ ? :8E3I>:8E3I=:8E3I<93; 93:9399389;3,7 9;3,69;3,59;3,49{33 9{329{319{3083Itq/ 83Itq.83Itq-83Itq,8C2(+ 8C2(*8C2()8C2( (8'c2' 8'c2&8'c2%8'c2$7. S# 7. S"7. S!7. *a  7. *a7. *a7Y3ID 7Y3ID7Y3ID7Y3ID7B2!6 7B2!67B2!67B2!6 63Ch% 63Ch%63Ch%63Ch%62 62626263'*V  63'*V 63'*V 7 0@P`p 0@P`p 0@P`pX}Vş3IbV3MW 3RWK3 W3I' Xi3I X3J8 X}2 X.H Y.3I/ Yc. $ZDk2/ (Z%3 ,\]5?0 5]k2> 9]3? =^J.Hkq C^f3I G_E3ItH K_ϟ3? O`S3v S`‹-} Za3?. ^b3?'' bb.HG2s mc3'`0 qc# 3Is uc3I+ ye3?A e$.HW e3q. g<#- gu.nN g3ItFI h2m hxg3?tZ h2W iH73?%d i#. N jj.6 j3Ipd kAg2M kS]3Isr l@2Ɠ l 3( m3PP mE3F mi+5?z mr3Is m2 m2r nT5? nk3I n3Ii p52!  0 0@P`p 0@P`p 0@P`ps^I3'C 'W3I' Xi3I X3J8 X}2 Y.3I/ ZDk2/ &T 3&~<T 3&~<TA3:B/U@3JVş3IbV3MW 3RWK3 W3I' Xi3I X3J8 X}2 Y.3I/ ZDk2/ &Z%3 *[3&mQ .]3? ;^f3I E_E3ItH I_ϟ3? M`S3v Q`|A2 Ua3?. \b3?'' `bԓ3% dc3'`0 oc# 3Is sc3I+ wd>C3 {e3?A e3q. fK3?o g3ItFI gA31 h2m h_3?:ê hxg3?tZ h2W iH73?%d j3Ipd k*?3&΅ kAg2M kS]3Isr l@2Ɠ l 3( m3PP m+ 3?H mE3F mr3Is 8 (6DR`n|$2@N\jx .<JXft 7Y3ID 7Y3ID 7Y3ID 7Y3ID 7. *a 7. *a 7. *a 7Y3ID 7Y3ID 7Y3ID 7Y3ID 7. *a 7. *a 7. *a 7. S 7. S 7. S 8'c2 8'c2 8'c2 8'c2 8C2( 8C2( 8C2( 8C2( 83Itq 83Itq 83Itq 83Itq 9{3 9{3 9{3 9{3 9;3, 9;3, 9;3, 9;3, 93 93 93 93 :8E3I :8E3I :8E3I :8E3I :J3&pg  :J3&pg  :J3&pg  :J3&pg  :/3 b :/3 b :/3 b :/3 b :[5? :[5? :[5? :[5? :[5? ;2n ;2n ;2n ;2 ;2 4vdSB1 sbP?. p_M<+s ?2[r?2[q?2[p?5? o ?5? n?5? m?5? l?5? k?p3V+j ?p3V+i?p3V+h?p3V+g?=2!f ?=2!e?=2!d?=2!c>2 Ib >2 Ia>2 I`=Q2_ =Q2^=Q2]=Q2\<3[ <3Z<3Y<3X;Я3?OW ;Я3?OV;Я3?OU;Я3?OT;2S ;2R;2Q;2P;2nO ;2nN;2nM:[5?L :[5?K:[5?J:[5? I:[5?H:/3 bG :/3 bF:/3 bE:/3 bD:J3&pg C :J3&pg B:J3&pg A:J3&pg @:8E3I 8 (6DR`n|$2@N\jx .<JXft ;2 ;Я3?O ;Я3?O ;Я3?O ;Я3?O <3 <3 ;2 ;Я3?O ;Я3?O ;Я3?O ;Я3?O <3 <3 <3 <3 =Q2 =Q2 =Q2 =Q2 >2 I >2 I >2 I ?=2! ?=2! ?=2! ?=2! ?p3V+ ?p3V+ ?p3V+ ?p3V+ ?5?  ?5?  ?5?  ?5?  ?5?  ?2[ ?2[ ?2[ ?2[ ?M3RG ?M3RG ?M3RG ?M3RG @. pu @. pu @. pu @. pu @[5? @[5? @[5? @[5? @[5? ADu.H$ ADu.H$ ADu.H$ ADu.H$ ADu.H$ ADu.H$ AXq. I  AXq. I  AXq. I  AXq. I  4vdSB1 tbQ@/ r`O>- ' C 3&r&C 3&r%C 3&r$Cb3ͽ# Cb3ͽ"Cb3ͽ!Cb3ͽ CHY.H CHY.HCHY.HCHY.HCHY.H CHY.H C9U3 - C9U3 -C9U3 -C9U3 -Ao3?D Ao3?DAo3?DAo3?DA.H?Y A.H?YA.H?YA.H?YA.H?Y A.H?Y  A.H?Y  AXq. I   AXq. I  AXq. I AXq. I ADu.H$ ADu.H$ADu.H$ADu.H$ADu.H$ ADu.H$ @[5? @[5?@[5?~@[5? }@[5?|@. pu{ @. puz@. puy@. pux?M3RGw ?M3RGv?M3RGu?M3RGt?2[ 8 (6DR`n|$2@N\jx .<JXft A.H?Y A.H?Y A.H?Y A.H?Y A.H?Y A.H?Y Ao3?D A.H?Y A.H?Y A.H?Y A.H?Y A.H?Y A.H?Y Ao3?D Ao3?D Ao3?D Ao3?D C9U3 - C9U3 - C9U3 - C9U3 - CHY.H CHY.H CHY.H CHY.H CHY.H CHY.H Cb3ͽ! Cb3ͽ" Cb3ͽ# Cb3ͽ$ C 3&r% C 3&r& C 3&r' C 3&r( DWU.HQ ~) DWU.HQ ~* DWU.HQ ~+ DWU.HQ ~, DWU.HQ ~- DWU.HQ ~. D{3?/ D{3?0 D{3?1 D{3?2 E-_3B3 E-_3B4 E-_3B5 E-_3B6 Eg3Iʺ07 Eg3Iʺ08 Eg3Iʺ09 Eg3Iʺ0: E3N; E3N< E3N= E3N> Eڥ2? Eڥ2@ Eڥ2A Eڥ2B F3'C F3'D 4veTB1 sbQ@. p_N=, [H.Hm?Z H.Hm?YH.Hm?XH.Hm?WH.Hm? VH.Hm? UH+. )T H+. )SH+. )RG3J3mQ G3J3mPG3J3mOG3J3mNG3J3mMG1JzL G1JzKG1JzJG 3^ȻI G 3^ȻHG 3^ȻGG 3^ȻFF3'E F3'DF3'CF3'BEڥ2A Eڥ2@Eڥ2?Eڥ2>E3N= E3N<E3N;E3N:Eg3Iʺ09 Eg3Iʺ08Eg3Iʺ07Eg3Iʺ06E-_3B5 E-_3B4E-_3B3E-_3B2D{3?1 D{3?0D{3?/D{3?.DWU.HQ ~- DWU.HQ ~,DWU.HQ ~+DWU.HQ ~*DWU.HQ ~ )DWU.HQ ~ (C 3&r 6'7GWgw'6ETcr 0@P`pI3J`R ~2 {qw.H,& qX2 r#5? s3 s<2U !sEO2" %s^I3'C )t.Hd /uy.R6 >v-2^[ Fx3 Jy1Jw Qy'33'< Uz3- Y{K3I ]{T32! a{G2? e|.H2t2 k}Y3 o}I2 s}!3 w~2 {I3J`R )3 }33?fj!2ݯ'3IY+u.nlO2cw3'#sYm3(2aL3x `-2G. s63yU3U3SK3Z 7s2-3Y OQ3?''3'3?TGp2S.ZW`3;I![i3?hroޏ3?Cwi3'39^G2$Y3Iwijs. گ 7 0@P`p 0@P`p 0@P`phxgVş3IT{3qAT.T2T2T 3&~<TA3:B/U@3JVş3IbV3MW 3RWK3 W3I' Xi3I X3J8 X}2 X.H Y.3I/ Y9o.? Yc. #ZDk2/ 'Z%3 +[3&mQ /\]5?0 4]k2> 8]3? <^J.Hkq B^f3I F_E3ItH J_ϟ3? N`S3v R`|A2 V`‹-} Ya3?. ]b3?'' abԓ3% eb.HG2s lc3'`0 pc# 3Is tc3I+ xd>C3 |e3?A e$.HW e3q. fK3?o g<#- gu.nN g3ItFI gA31 h2m h_3?:ê hxg3?tZ h2W iH73?%d i#. N jj.6 8 (6DR`n|$2@N\jx .<JXft F3'F G 3^ȻG G 3^ȻH G 3^ȻI G 3^ȻJ G1JzK G1JzL F3'F G 3^ȻG G 3^ȻH G 3^ȻI G 3^ȻJ G1JzK G1JzL G1JzM G3J3mN G3J3mO G3J3mP G3J3mQ G3J3mR H+. )S H+. )T H+. )U H.Hm?V H.Hm?W H.Hm?X H.Hm?Y H.Hm?Z H.Hm?[ IM2{\ IM2{] IM2{^ IM2{_ IX2$` IX2$a IX2$b IX2$c Iu.(X8d Iu.(X8e Iu.(X8f Iu.(X8g JI1Jh JI1Ji JI1Jj J2k1k J2k1l J2k1m J2k1n J2wo J2wp J2wq J2wr Km2a3s Km2a3t Km2a3u Km2a3v L!3Ipw L!3Ipx L!3Ipy L!3Ipz L3'3{ L3'3| L3'3} 4veTC1 sbQ@. q_N=, N2NM3?i10  NM3?i10 NM3?i10 NM3?i10 Mo3&  Mo3&Mo3&Mo3&M3I M3IM3IM3IMB3 MB3MB3MB3~L3'3} L3'3|L3'3{L3'3zL!3Ipy L!3IpxL!3IpwL!3IpvKm2a3u Km2a3tKm2a3sKm2a3rJ2wq J2wpJ2woJ2wnJ2k1m J2k1lJ2k1kJ2k1jJI1Ji JI1JhJI1JgIu.(X8f Iu.(X8eIu.(X8dIu.(X8 cIX2$b IX2$aIX2$`IX2$_IM2{^ IM2{]IM2{\IM2{ 'CScs3!1AQaq#I3J`R ~ |.H2t2 g t.Hd + qw.H,&  e$.HW  b.HG2s h ^J.Hkq ? X.H X3J8 U@3J R.H+ H'.HT+ 5.H=24 =.HNH %+.H -.Hx{  0.HKR ADu.H$ A.H?Y  CHY.H DWU.HQ ~* H.Hm?Wi3Jtn %3J7Xz3JGi3JpE3JW #7-3JP쵡3JŘ'Y3Jʓjz3Jx%[;3J 3J9b3JN3J`d<&|3J"C'l3Jd@G3J3mP.?jB 3 0@P`p 0@P`p 0@P`p}I2 q}Y3 m{G2? c{T32! _{K3I [)3 I3J`R }~2 ym2r nk3I n3Ii oDY3? q93 qX2 s3 s<2U sEO2" #s^I3'C 'tA3Bv 1u$3Iʺ@ 5v03?C @v-2^[ Dx3 Hx2 Ly'33'< Sz3- W{K3I [{T32! _{G2? c}Y3 m}I2 q}!3 uLj.D{.ҩ=S!.jOX.uy.R6 9v.HEqd.H=75.H=250.HKSA.H?Yb.HG2s iLj.D{.ҩ>S!.kOX.uy.R6 :V9.H^WE.Hpv.HEqd.H=7.H9 9;.H] >)E;.H6%.H  4wfTC2 tcQ@/ q`N=, C SI2BSI2AR.H+@ R.H+?R.H+>R.H+=R.H+ <R.H+ ;R`3?./: R`3?./9R`3?./8R`3?./7RU.ؖ6 RU.ؖ5RU.ؖ4RU.ؖ3R5'22 R5'21R5'20R5'2/Q2ݝ. Q2ݝ-Q2ݝ,QO3Iz+ QO3Iz*QO3Iz)QO3Iz(Q%3C(' Q%3C(&Q%3C(%Q%3C($P31# P31"P31!P31 O3? O3?O3?O3?O. / O. /O. /OX. OX.OX.OX.OX.OX.OX. N2 N2N2 8 (6DR`n|$2@N\jx .<JXft MB3 MB3 MB3 MB3 M3I M3I M3I MB3 MB3 MB3 MB3 M3I M3I M3I M3I Mo3& Mo3& Mo3& Mo3& NM3?i10 NM3?i10 NM3?i10 NM3?i10 N2 N2 N2 N2 OX. OX. OX. OX. OX. OX. OX. O. / O. / O. / O3? O3? O3? O3? P31 P31 P31 P31 Q%3C( Q%3C( Q%3C( Q%3C( QO3Iz QO3Iz QO3Iz QO3Iz Q2ݝ Q2ݝ Q2ݝ R5'2 R5'2 R5'2 R5'2 RU.ؖ RU.ؖ RU.ؖ 4vdSB1sbP?. p_N<+ wV3MvV3MuVş3Ibt Vş3IbsVş3IbrVş3IbqU@3Jp U@3JoU@3JnU@3JmU@3JlTA3:B/k TA3:B/jTA3:B/iTA3:B/hT 3&~<g T 3&~<fT 3&~<eT 3&~<dT2c T2bT2aT2`T2_ T2^T2]T2\T.[ T.ZT.YT.XT{3qAW T{3qAVT{3qAUT{3qATSߛ3S Sߛ3RSߛ3QSߛ3PS3?L0O S3?L0NS3?L0MS3?L0LS[2K S[2JS[2IS[2HSR/3NMG SR/3NMFSR/3NMESR/3NMDSI2 8 (6DR`n|$2@N\jx .<JXft R`3?./ R`3?./ R`3?./ R`3?./ R.H+ R.H+ R.H+ R`3?./ R`3?./ R`3?./ R`3?./ R.H+ R.H+ R.H+ R.H+ R.H+ R.H+ SI2 SI2 SI2 SR/3NM SR/3NM SR/3NM SR/3NM S[2 S[2 S[2 S[2 S3?L0 S3?L0 S3?L0 S3?L0 Sߛ3 Sߛ3 Sߛ3 Sߛ3 T{3qA T{3qA T{3qA T{3qA T. T. T. T. T2 T2 T2 T2 T2 T2 T2 T2 T 3&~< T 3&~< T 3&~< T 3&~< TA3:B/ TA3:B/ TA3:B/ TA3:B/ U@3J U@3J U@3J 4veSB1 sbQ@. q`O=, + Z%3*Z%3)Z%3(ZDk2/' ZDk2/&ZDk2/%ZDk2/$Yc.# Yc."Yc.!Yc. Y9o.? Y9o.?Y9o.?Y9o.?Y.3I/ Y.3I/Y.3I/Y.3I/X.H X.HX.HX.HX.H X.H X}2 X}2X}2X}2X3J8  X3J8 X3J8 X3J8 X3J8 Xi3I Xi3IXi3IXi3IW3I'  W3I' W3I' W3I' WK3  WK3 WK3 ~WK3 }W 3R| W 3R{W 3RzW 3RyV3Mx V3M 8"2BRbp 0@P`p 0@P`p ھ5?| 5?|  15? 5?2+ !!5?R %5?U +a5?g :[5? ?5?  @[5? \]5?0 2 mi+5?z  nT5?  r#5?   .?jB g2"!j: 2! E'.>4, ^.3$)h ĵ2p I=2%S c1.- QK.1! a2!M 簯2DY .7 5G2!@ Qs.;(e 2b 22#z: k2"& u.S~/ [2(m /2&u $2% &}.4E 4͓.0/ 7B2!6 8C2( Iu.(X8d ]k2> 6 jj.6  p52!  Lj.D{ .ҩ< S!.i OX. uy.R6 8 V9.H^U E.Hp v.HEq d.H=7  .H9 7 ;.H] >' E;.H6% .H  7(8HXhx(8HXhx(8HXhx~2 z}!3)3 k*?3&΅ kAg2M kS]3Isr l@2Ɠ l 3( m3PP m+ 3?H mE3F mi+5?z mr3Is m2 m2r nT5? nk3I n3Ii oDY3? p52! q93 q2 ֈ qw.H,& qX2 r#5? s3 s<2U sEO2" $s^I3'C (t.Hd .tA3Bv 2u$3Iʺ@ 6uy.R6 =v03?C Av-2^[ Ex3 Ix2 My1Jw Py'33'< Tz3- X{K3I \{T32! `{G2? d|.H2t2 j}Y3 n}I2 r}!3 v~2 zI3J`R .?jBNs. i3Jtn ؓ. aK3W;kx3?fe-$93S/ 8 (6DR`n|$2@N\jx .<JXft U@3J Vş3Ib Vş3Ib Vş3Ib Vş3Ib V3M V3M U@3J Vş3Ib Vş3Ib Vş3Ib Vş3Ib V3M V3M V3M V3M W 3R W 3R W 3R W 3R WK3  WK3  WK3 WK3  W3I'  W3I'  W3I'  W3I'  Xi3I  Xi3I  Xi3I  Xi3I X3J8 X3J8 X3J8 X3J8 X3J8  X}2  X}2  X}2  X}2  X.H  X.H  X.H  X.H  X.H  X.H  Y.3I/  Y.3I/  Y.3I/  Y.3I/  Y9o.?  Y9o.?  Y9o.?  Y9o.? Yc. ! Yc. " Yc. # Yc. $ ZDk2/ % ZDk2/ & ZDk2/ ' ZDk2/ ( 8#3CScs#3CScs!1AQaq|.H2t2 iuy.R6 <uy.R6 ;t.Hd -r#5? qw.H,& =.H4V 15?H'.HT+5?2,5.H=27=.HNJ!!5?R%+.H%5?U+a5?g-.Hx{"0.HKU:[5??5? @[5?ADu.H$A.H?YCHY.HDWU.HQ ~,H.Hm?YOX.R.H+X.H \]5?0 3^J.Hkq Ab.HG2s ke$.HW mi+5?z nT5? Lj.D{.ҩ@S!.mOX.ؓ. u.nlM. lC.{9>k.*I.ZU/w.Z.L@"Y.?%.B@. puRU.ؖY9o.? gu.nN ;m.E mT.Yc. " 4 0@P`p 0@P`p 0@P`pu$3Iʺ@ 7tA3Bv 3r#5? q!3?fb3IuKF̑2"NI=2%VX3\ ]n2/#vm3_ c1.-3 ]2+#3IS֖I3I"ַ3&K%3:B>3]C3`R3TΧ2v3I38)3T.m2̓I3L?3&o r2h3ZH%3J`d>3|d3'*gt. " 3*%, 3@ 43?d' ;2  'S. \ ?2[ q93  U@3J p/3Iv 6J^r$"8L`t FK.HMP  FK.HMP 3?d) G1JzK ]2 OQ3?''0 ̑2"K  2p U3y &e2# b3?'' _ Cb3ͽ!  5?\ ( =.H4V Ns. Y22E1 ݒ;-H~ {3! #2gM ͞3;IX .c3&~W4V  2jT *3 P7 9{3 m2 T2 -.Hbb 4veSB1 tbQ@/ q`N=, _b3?''^a3?.] a3?.\a3?.[a3?.Z`‹-}Y `‹-}X`‹-}W`|A2V `|A2U`|A2T`|A2S`S3vR `S3vQ`S3vP`S3vO_ϟ3?N _ϟ3?M_ϟ3?L_ϟ3?K_E3ItHJ _E3ItHI_E3ItHH_E3ItHG^f3IF ^f3IE^f3ID^f3IC^J.HkqB ^J.HkqA^J.Hkq@^J.Hkq?^J.Hkq >^J.Hkq =]3?< ]3?;]3?:]3?9]k2>8 ]k2>7]k2>6]k2> 5\]5?04 \]5?03\]5?02\]5?0 1\]5?00[3&mQ/ [3&mQ.[3&mQ-[3&mQ,Z%3 PP`p 0@P`p3'E3Z82Е3I3}C2Y3N. I3Rl3IdY2g|3I$w%3'W2j3%3¡t']3I,2L3x `-23 d~O3I}]2mE3?[33?:Ø 3|3?й3d3IN 8 (6DR`n|$2@N\jx .<JXft Z%3 * Z%3 + Z%3 , [3&mQ - [3&mQ . [3&mQ / [3&mQ 0 Z%3 * Z%3 + Z%3 , [3&mQ - [3&mQ . [3&mQ / [3&mQ 0 \]5?0 1 \]5?0 2 \]5?0 3 \]5?0 4 \]5?0 5 ]k2> 6 ]k2> 7 ]k2> 8 ]k2> 9 ]3? : ]3? ; ]3? < ]3? = ^J.Hkq > ^J.Hkq ? ^J.Hkq @ ^J.Hkq A ^J.Hkq B ^J.Hkq C ^f3I D ^f3I E ^f3I F ^f3I G _E3ItH H _E3ItH I _E3ItH J _E3ItH K _ϟ3? L _ϟ3? M _ϟ3? N _ϟ3? O `S3v P `S3v Q `S3v R `S3v S `|A2 T `|A2 U `|A2 V `|A2 W `‹-} X `‹-} Y `‹-} Z a3?. [ a3?. \ a3?. ] a3?. ^ b3?'' _ b3?'' ` b3?'' a 4veTC2!tcR@/ raO>- gu.nNg<#- g<#-g<#-fK3?o fK3?o fK3?o fK3?o e3q.  e3q. e3q.e3q.e$.HW e$.HWe$.HWe$.HWe$.HW e$.HW e3?A e3?Ae3?A~e3?A}d>C3| d>C3{d>C3zd>C3yc3I+x c3I+wc3I+vc3I+uc# 3Ist c# 3Issc# 3Isrc# 3Isqc3'`0p c3'`0oc3'`0nc3'`0mb.HG2sl b.HG2skb.HG2sjb.HG2sib.HG2shb.HG2s gb.HG2s fbԓ3%e bԓ3%dbԓ3%cbԓ3%bb3?''a b3?''`b3?'' 8 (6DR`n|$2@N\jx .<JXft bԓ3% c bԓ3% d bԓ3% e bԓ3% f b.HG2s g b.HG2s h b.HG2s i bԓ3% c bԓ3% d bԓ3% e bԓ3% f b.HG2s g b.HG2s h b.HG2s i b.HG2s j b.HG2s k b.HG2s l b.HG2s m c3'`0 n c3'`0 o c3'`0 p c3'`0 q c# 3Is r c# 3Is s c# 3Is t c# 3Is u c3I+ v c3I+ w c3I+ x c3I+ y d>C3 z d>C3 { d>C3 | d>C3 } e3?A ~ e3?A  e3?A e3?A e$.HW e$.HW e$.HW e$.HW e$.HW e$.HW e3q. e3q. e3q. e3q. fK3?o fK3?o fK3?o fK3?o g<#- g<#- g<#- gu.nN gu.nN gu.nN gu.nN g3ItFI g3ItFI g3ItFI g3ItFI 4veTB1 sbQ@. p_N=+ GkS]3IsrFkS]3IsrEkAg2MD kAg2MCkAg2MBkAg2MAk*?3&΅@ k*?3&΅?k*?3&΅>k*?3&΅=j3Ipd< j3Ipd;j3Ipd:j3Ipd9jj.68 jj.67jj.66jj.6 5i#. N4 i#. N3i#. N2iH73?%d1 iH73?%d0iH73?%d/iH73?%d.h2W- h2W,h2W+h2W*hxg3?tZ) hxg3?tZ(hxg3?tZ'hxg3?tZ&h_3?:ê% h_3?:ê$h_3?:ê#h_3?:ê"h2m! h2m h2mh2mgA31 gA31gA31gA31g3ItFI g3ItFIg3ItFIg3ItFIgu.nN gu.nNgu.nN 8 (6DR`n|$2@N\jx .<JXft gA31 gA31 gA31 h2m h2m h2m h2m gA31 gA31 gA31 h2m h2m h2m h2m h_3?:ê h_3?:ê h_3?:ê h_3?:ê hxg3?tZ hxg3?tZ hxg3?tZ hxg3?tZ h2W h2W h2W h2W iH73?%d iH73?%d iH73?%d iH73?%d i#. N i#. N i#. N jj.6 jj.6 jj.6 jj.6 j3Ipd j3Ipd j3Ipd j3Ipd k*?3&΅ k*?3&΅ k*?3&΅ k*?3&΅ kAg2M kAg2M kAg2M kAg2M kS]3Isr kS]3Isr kS]3Isr kS]3Isr l@2Ɠ l@2Ɠ l@2Ɠ l@2Ɠ l 3( l 3( l 3( l 3( m3PP m3PP 4veSB1 sbQ@. q_N=, {n3Iiz n3Iiyn3Iixn3Iiwnk3Iv nk3Iunk3Itnk3IsnT5?r nT5?qnT5?pnT5? onT5?nm2rm m2rlm2rkm2rjm2i m2hm2gm2fmr3Ise mr3Isdmr3Iscmr3Isbmi+5?za mi+5?z`mi+5?z_mi+5?z ^mi+5?z]mE3F\ mE3F[mE3FZmE3FYm+ 3?HX m+ 3?HWm+ 3?HVm+ 3?HUm3PPT m3PPSm3PPRm3PPQl 3(P l 3(Ol 3(Nl 3(Ml@2ƓL l@2ƓKl@2ƓJl@2ƓIkS]3IsrH kS]3Isr 5 (7FUds 0@P`p 0@P`pe3I`738py; 3\ M?92טC3It)Gs{3IaK3 Sc3;W3&o¿[3?o_xk2ᔴg93k;m.E o3>ow%3J7X|د3&s"3Ivs. s'w36+A2pBk3NQ3?d)3'E3Z82Еm. i3I3}2amC2. lCY3N. I3Rl3IdY2g|S5?3I$w%3'W2j3%3¡t']3I,2}[2!3 d~O3I}]2mE3?[33?:Ø 3|3?й3d3IN' 2B : (6DR`n|$2@N\jx .<JXft mE3F mE3F mi+5?z mi+5?z mi+5?z m3PP m+ 3?H m+ 3?H m+ 3?H m+ 3?H mE3F mE3F mE3F mE3F mi+5?z mi+5?z mi+5?z mi+5?z mi+5?z mr3Is mr3Is mr3Is mr3Is m2 m2 m2 m2 m2r m2r m2r m2r nT5? nT5? nT5? nT5? nT5? nk3I nk3I nk3I nk3I n3Ii n3Ii n3Ii n3Ii oDY3? oDY3? oDY3? oDY3? p52! p52!  p52!  p52!  q93  q93  q93  q93  q2 ֈ  q2 ֈ q2 ֈ qw.H,& qw.H,& qw.H,& qw.H,&  @P`p 0@P0 `p |.H2t2 f t.Hd * qw.H,&  .Hb_ =.H4V H'.HT+ 5.H=23 =.HNG %+.H -.Hx{ 0.HKQ ADu.H$ A.H?Y  CHY.H DWU.HQ ~) H.Hm?V R.H+ X.H  ^J.Hkq > b.HG2s g e$.HW  V9.H^V E.Hp v.HEq d.H=7 .H9 8 ;.H] >( E;.H6% .H  FK.HMP .Hb` 4veTC1 tcQ@/ q`O>, /t.Hd. t.Hd-t.Hd,t.Hd+t.Hd *t.Hd )s^I3'C( s^I3'C's^I3'C&s^I3'C%sEO2"$ sEO2"#sEO2""sEO2"!s<2U  s<2Us<2Us<2Us3 s3s3s3r#5? r#5?r#5?r#5? r#5?qX2 qX2qX2qX2qw.H,& qw.H,&qw.H,& qw.H,& qw.H,&  qw.H,&  q2 ֈ  q2 ֈq2 ֈq93 q93q93q93p52! p52!p52!p52! oDY3?~ oDY3?}oDY3?|oDY3? )w'7GWgww'7GWgwx2 NY9o.? [3&mQ 0`|A2 Wbԓ3% fd>C3 }fK3?o gA31 h_3?:ê k*?3&΅ m+ 3?H oDY3? q2 ֈ tA3Bv 3u$3Iʺ@ 7v03?C BS5?m55?|ԁ5?i|'5?[ھ5?|5?|  15?5?2*!!5?R%5?U+a5?g:[5??5? @[5?\]5?0 1mi+5?z nT5? r#5? i3Jtn}3aK3W;kx3?f3?fj3IY(93S, 9 (6DR`n|$2@N\jx .<JXft {K3I Z s3  s3  s<2U  s<2U  s<2U qw.H,&  qX2  qX2  qX2  qX2  r#5?  r#5?  r#5?  r#5?  r#5?  s3  s3  s3  s3  s<2U  s<2U  s<2U s<2U ! sEO2" " sEO2" # sEO2" $ sEO2" % s^I3'C & s^I3'C ' s^I3'C ( s^I3'C ) t.Hd * t.Hd + t.Hd , t.Hd - t.Hd . t.Hd / tA3Bv 0 tA3Bv 1 tA3Bv 2 tA3Bv 3 u$3Iʺ@ 4 u$3Iʺ@ 5 u$3Iʺ@ 6 u$3Iʺ@ 7 uy.R6 8 uy.R6 9 uy.R6 : uy.R6 ; uy.R6 < uy.R6 = uy.R6 > v03?C ? v03?C @ v03?C A v03?C B v-2^[ C v-2^[ D v-2^[ E v-2^[ F x3 G x3 H 4veTC2!tcRA/ q`O>, c{G2?b{G2?a{T32!` {T32!_{T32!^{T32!]{K3I\ {K3I[{K3IZ{K3IYz3-X z3-Wz3-Vz3-Uy'33'<T y'33'<Sy'33'<Ry'33'<Qy1JwP y1JwOy1JwNx2M x2Lx2Kx2Jx3I x3Hx3Gx3Fv-2^[E v-2^[Dv-2^[Cv-2^[Bv03?CA v03?C@v03?C?v03?C>uy.R6= uy.R6<uy.R6;uy.R6:uy.R69uy.R68uy.R6 7u$3Iʺ@6 u$3Iʺ@5u$3Iʺ@4u$3Iʺ@3tA3Bv2 tA3Bv1tA3Bv0tA3Bv ' 0@P`p 0@P`p.Hba=.H4VH'.HT+5.H=26=.HNI%+.H-.Hx{!0.HKTADu.H$A.H?YCHY.HDWU.HQ ~+H.Hm?XR.H+X.H ^J.Hkq @b.HG2s je$.HW qw.H,& t.Hd ,|.H2t2 hS5?V9.H^XE.Hpv.HEqm55?|ԁd.H=75?i|).H9 :Lj.D{;.H] >*.ҩ?5?]E;.H6%ھ5?|S!.l.H 5?|FK.HMP ;6DR`n|$2@N\jx .<JXft( ~2 { ~2 z ~2 y ~2 x )3 )3 )3 )3 I3J`R I3J`R  I3J`R ~ I3J`R } x3 J x2 K x2 L x2 M x2 N y1Jw O y1Jw P y1Jw Q y'33'< R y'33'< S y'33'< T y'33'< U z3- V z3- W z3- X z3- Y {K3I Z {K3I [ {K3I \ {K3I ] {T32! ^ {T32! _ {T32! ` {T32! a {G2? b {G2? c {G2? d {G2? e |.H2t2 f |.H2t2 g |.H2t2 h |.H2t2 i |.H2t2 j |.H2t2 k }Y3 l }Y3 m }Y3 n }Y3 o }I2 p }I2 q }I2 r }I2 s }!3 t }!3 u }!3 v }!3 w ~2 x ~2 y ~2 z ~2 { I3J`R | !veTC1 tbQ@/ )3 )3)3)3I3J`R I3J`R~I3J`R}I3J`R|I3J`R{~2z ~2y~2x~2w}!3v }!3u}!3t}!3s}I2r }I2q}I2p}I2o}Y3n }Y3m}Y3l}Y3k|.H2t2j |.H2t2i|.H2t2h|.H2t2g|.H2t2 f|.H2t2 e{G2?d {G2?5">Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is [...]. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.
Linux dynamic priority adjustment

* Interactive or I/O bound tasks are rewarded when they 'voluntarily' give up CPU in the middle of a quantum.
* CPU-hogging tasks are punished when they are preempted or their quantum expires.

The maximum reward/penalty is -5/+5. This way, CPU-bound processes get the service that is left over by all the I/O and interactive processes.
AӪ{S@@0Ik[AӪ{S "XXl  4H\p$8L`t$8L`tA~Sߛ3A~T{3qAA~T.A~T2A~T2A~T 3&~<A~TA3:B/A~U@3JA~Vş3IbA~V3MA~W 3RA~WK3 A~b.HG2sA~c3'`0A~c# 3IsA~c3I+A~d>C3A~e3?AA~e$.HWA~e3q.A~fK3?oA~g<#-A~gu.nNA~g3ItFIA~gA31A~h2mA~h_3?:êA~hxg3?tZA~h2WA~iH73?%dA~i#. NA~jj.6A~j3IpdA~k*?3&΅A~kAg2MA~kS]3IsrA~l@2ƓA~l 3(A~m3PPA~m+ 3?HA~mE3FA~mi+5?zA~mr3IsA~m2A~m2rA~nT5?  6`2\.X:)ATZ U. IzATZi#. N)Aʸei5?Aʸei\]5?0)Aʸjhs5?1Aʸjhsr#5?)Aʸt9tE5?Aʸt9nT5?)AʸCVk5?vXAʸCھ5?|)Aʸs5?|Aʸs5?|)Aʸ񪌔Y5?|Aʸm55?|ԁ)Aʸa=qjA5?|Aʸa=q:[5?)Aʸcv\5?AʸcvɔS5?)Aʸei5?Aʸei\]5?0)Aʸl˷5?Aʸl 15?)Aʸo'15?Aʸomi+5?z)AʸrIhs5?AʸrIhs5?)Aʸ5?uAʸ!!5?R)Aʸ w5?SAʸ 5?i|)Aʹ6d[5?iAʹ6@[5?)AʹkSc5?AʹkS?5? )Aʹ-Gr5?KAʹ-G+a5?g)Aʹ.5?5?gAʹ.5?5?2)Aʺ J5?ڐAʺ J%5?U)ATZ U. IzATZi#. N)ATԓS|r. NtATԓS-. P)ATSyk. PATSК. R' 45">Page replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremen 5ted after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
[...]Page replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used for the longest time.< 6br>2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.
AӦ(yH@@AӦ(yH 8divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.Modern Operating Systems: Memory management chapter summary

1. The simplest systems do not swap or page at all. Once a program is loaded into memory, it stays there until it finishes. Some such operating systems allow only one process at a time in memory, others support multiprogramming.
2. The next step up is swapping. It allows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.
Aӧ⾗@@gFBBAӧ⾗bally available for the selective control of action.Mental Representation, Rep_M (S, X, Y).
- S is an individual information-processing system
- Y is an aspect of the current state of the world
- X represents Y for S
- X is a functionally internal system state
- The intentional content of X can become available for introspective attention. It may itself become the representandum of subsymbolic higher-order representational processes.
- The intentional content of X can become available for cognitive reference. It can in turn become the representandum of symbolic higher-order representational processes.
- The intentional content of X can become globally available for the selective control of action.
Aʸcv@@Aʸcvlows systems to handle more processes than there is room in memory. Processes for which there is no room are swapped out to disk. Free space can be kept track of with a bitmap or hole list.
3. Modern computers use virtual memory. In simplest form, each process' address space is divided up into uniform-sized blocks called pages, which can be placed into any available page frame in memory. Two of the better page replacement algorithms are aging WSClock.
4. To make paging systems work well, choosing an algorithm is not enough. Attention to issues such as determining the working set, memory allocation policy, and page size is required.
5. Segmentation helps in handling data structures that change size during execution and simplifies linking and sharing. It also facilitates providing protection for different segments. Sometimes segmentation and paging are combined to provide a two-dimensional virtual memory.Aӧg@@gFBBAӧg 8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.What happens on a page fault?

1. Hardware traps the kernel, saving the program counter on the stack.
2. Assembly code routine saves the registers and other volatile information.
3. The operating system tries to discover which virtual page is needed, either from a hardware register or re-parsing the instruction that caused the fault.
4. The operating system checks whether the virtual address is valid and the protection consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.
AӦbx@@ib =AӦbxdependence. It should be possible to write programs that can access any I/O device without having to specify the device in advance.
2. Uniform naming. The name of a file or device should be a string or an integer that doesn't depend on the device in any way.
3. Error handling. Errors should be handled as close to the hardware as possible, without the upper layers ever knowing about them.
4. Synchronous (blocking) vs. asynchronous (interrupt-driven) transfers. Most I/O is interrupt-driven, but programs are much easier to write as if I/O was blocking.
5. Buffering. The data coming off a device cannot be stored in the final destination.
6. Managing shared versus dedicated devices.AӪ=/@@0Ik[AӪ=/an n-sized hole from a list of processes and holes

1. First fit. Scan the list of segments until a large enough hole is found.
2. Next fit. Like above, but instead of starting over, on the next call continue searching memory from where you left off. Slightly worse performance than the above algorithm.
3. Best fit. Search the whole list, taking the smallest hole that is large enough. Slow and tends to fragment memory in uselessly small holes.
4. Worst fit. Search the whole list, taking the largest hole. Doesn't really work.
5. Quick fit. If e.g. 4KB-holes are commonly requested, then maintain lists of 4KB-holes. Fast for right-sized holes, but merging holes after a process is expunged is slow.AӦC~@@AӦC~le="font-weight:600;">2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.AӤnkm@@llJAӤnkm5">(Dis)advantages of contiguous file allocation

1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
[...]
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.(Dis)advantages of contiguous file allocation

1. Simple to implement. Only two numbers are needed for each file - the disk address of the first block, and the number of blocks in the file.
2. Good read performance. The entire file can be read from the disk in a single operation.
3. Fragmentation. Deleting files leaves holes, leading to fragmentation.
AӧB<9X@@fdgAӧB<9X 2\.X`.X:)AӦbV 3×BAӦbV23ô)Aʸcv\5?AʸcvɔS5?)Aʸl˷5?Aʸl 15?)AʸrIhs5?AʸrIhs5?)Aʸ5?uAʸ!!5?R)Aʸ w5?SAʸ 5?i|)Aʹ-Gr5?KAʹ-G+a5?g)AӦb$UV3ôAӦb$Cb3ͽ)AӦb{93¡AӦb{<3)ATbl. iATbҁ. l/M)AX7;Bqa.H] AX7;V9.H^)AӦbt 3)DAӦbt3\)AӦbvȴo3]4AӦbvȴ3|X)AӦbx-3|AӦbx٘%3¡t)AӦb{93¡AӦb{<3)AӦb}t@I3uAӦb}t)k3A)AӦb+3AӦb+~=3)AӦbuD3cAӦbuk37W)AӦbh37AӦbhƏ%3\)AӦbgD!3\AӦb4g3Ö)AӦbV 3×BAӦbV23ô)AӦb$UV3ôAӦb$Cb3ͽ)AӪ.{^c3IAӪ.{3Iage table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
[...]

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.The structure of a generic page table entry

1. The page frame number
2. Present/absent bit
3. Protection (read/write, execution)
4. Modified bit (unmodified pages can just be deleted, modified ones must be written back to disk)
5. Referenced bit
6. Caching disabled bit

Note: no disk address. That's for the OS to handle, the page table is for the hardware to translate virtual addressed to physical addresses.
AӦ<{@@[v AӦ<{parity disk.RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.
AӪݒ@@c|AӪݒ 6Xz$Fh4VxVx!v2 AӤkjA2a!w83'*AӨk7L3'!w83'*AӨk7vi3'!xG.>A\`AS!.!x3I/AӪE3IN! U. IzATZi#. N!}=K2&AӠn,ɑ2$@!~3bAӦaÈI3 !C3׊Aӧ\;Mq3^!C3׊Aӧ\em3_ !2xAӠI2!-3|AӦbx٘%3¡t! 3)DAӦbt3\!37AӦbhƏ%3\!93¡AӦb{<3! 3×BAӦbV23ô!3AӦb+~=3!@I3uAӦb}t)k3A!Bqa.H] AX7;V9.H^!D3cAӦbuk37W!Qx. RAT9'S. \!UV3ôAӦb$Cb3ͽ!^c3IAӪ.{3I!gD!3\AӦb4g3Ö!l. iATbҁ. l/M!o3]4AӦbvȴ3|X!yk. PATSК. R'!|r. NtATԓS-. Pparity disk.RAID levels.

0. Data is distributed over multiple disks via striping. No redundancy, works best with large request.
1. Mirroring with strips. Each primary disk has a backup disk.
2. Bits with Hamming code. Each bit is distributed over 7 disks, with bits 1, 2 and 4 as the parity bits.
3. Bits with parity bit. A single parity bit is computed for each data word and written to a parity drive.
4. Strips, with strip-for-strip parity on dedicated disk. Protects against the loss of a drive, but performs poorly for small updates, as the parity will have to be updated.
5. Strips, distributing parity strips uniformly. Avoids the bottleneck of a single parity disk.
AӪߎ@@AӪߎ G each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
[...]
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.Page replacement algorithms

1. Optimal (theoretical). Remove the page that w Hon't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.
AӦ(w33@@AӦ(w33:600;">2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.AӤnȤz@@llJAӤnȤzo Ac Qot}AӤnȤzG#2B2BAӦ( bS38p➛38AӦbt 3)D3\ATf,. *b. * .AӨl%Qf33'k?3'4AXgo;d#_.H=2d.H=7 A Aאz(m.Yc. K AF嚰M3J"I3J`R/" AydY3Mo3&  AߕS02,1a2P  Ac#-t3'3h=3'l  Aww>K2QJ2w A 3?e3?A"AӠ'M¹b2`p2HAӠozY2+2| AӧB<9XXo3 P03 jxAӠ2 2 >AӪs"P'3I,3I$w #AөR&C3?f٤3?0 !l4H\p$8L`t  l$8L`tA~g3ItFIA~gA31A~h2mA~h_3?:êA~hxg3?tZA~h2WA~iH73?%dA~i#. NA~jj.6A~j3IpdA~k*?3&΅A~kAg2MA~kS]3IsrA~)3A~I3J`RA~~2A~}!3A~}I2A~}Y3A~|.H2t2A~{G2?A~{T32!A~{K3IA~n3IiA~oDY3?A~p52!A~q93A~q2 ֈA~qw.H,&A~qX2A~r#5?A~s3A~s<2UA~sEO2"A~s^I3'CA~t.HdA~tA3BvA~u$3Iʺ@A~uy.R6A~v03?CA~v-2^[A~x3A~x2A~y1JwA~y'33'<A~z3- Mon't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.AӦ(d17L@@AӦ(d17Ltion consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.AӦb}t@@ib =AӦb}t P Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.Page replacement algorithms

1. Optimal (theoretical). Remove the page that w Qon't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.
AӦ(qx@@AӦ(qx:600;">2. Pessimistic resubstitution estimate. Compute generalization error as the sum of training error and a penalty term for model complexity. Use the model with the lowest estimated generalization error.
3. Minimum length description. Given a set of records with attribute values x, what's the shortest required message for transmitting their class labels to a person who has the records but not the labels? Seek a model that minimizes this cost function.
4. Estimate statistical bounds. E.g. assume that the number of errors committed by each leaf node follows a binomial distribution, and then estimate the overall generalization error.
5. Use a validation set. Split the training data into two subsets, one of which is used for training, the other for estimating the generalization error.AӤn/@@8m9AӤn/tion consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.AӦb+@@ib =AӦb+tion consistent with the access.
5. A free page is selected, or if one doesn't exist, the page replacement algorithm runs.
6. If the selected page is dirty, it's scheduled for transfer to the disk, and the faulting process is suspended until the disk transfer has completed.
7. When the page frame is clean, the operating system looks up the disk address of the needed page and schedules a disk operation to bring it in.
8. When the disk interrupt indicates that the page has arrived, the page tables are updated to reflect its position and it's marked as being in use.
9. The faulting instruction is bakced up to the state it had when it began and the program counter is reset to point to that instruction.
10. The operating system returns to the assembly language routine that called it.
11. The routine reloads the registers and other state information and returns to user space to continue execution.AӦbu@@ib =AӦbu Vn't be used for the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.AӦ(a?}@@AӦ(a?} Xted after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
[...]
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.Page replacement algorithms

1. Optimal (theoretical). Remove the page that won't be used fo Yr the longest time.
2. Not Recently Used. When a process starts, set its pages to RM-00. Periodically set R on all pages to 0. On a page fault, remove a random page in the following order - RM-00, RM-01, RM-10, RM-11. Easy to implement, but better ones exist.
3. First-In, First-Out. Remove the oldest page in memory. Bad choice.
4. Second Chance. As above, but put pages with the R bit at the end of the list. Great improvement over 3.
5. Clock. Keep pages in a circular list, with a hand pointing on one of the pages. If a page has R set, clear the bit and move the hand to the next page. Great improvement over 3.
6. Least Recently Used. E.g. have a counter that's incremented after each instruction. After each memory reference, store the current value in the page table entry for the page just referenced. Excellent, but requires special hardware.
7. Not Frequently Used. Software simulation of above. At each clock interrupt, add the R bit to a page's counter. Better version shifts counters to the right and adds the 1 bit to the beginning. Basic version not very good, aging version one of the two best ones.
8. Working Set. Estimate that pages used within e.g. the last 100 msec of current virtual time are in the working set of a process, and try to evict unreferenced pages that are older than that. Good performance, but expensive to implement.
9. WSClock. Go through a clock, looking for unreferenced pages that are old enough. If they're clean, claim that at once. If they're dirty, schedule them to be written back to disk and keep looking for a clean page. Good performance, efficient to implement. One of the two best ones.
AӦ(t:\@@AӦ(t:\