< + viga Mälu jagamine mitmele protsessile mälu eraldamine (getmain, allocate) mälu vabastamine (freemain, free) 3 2 4 2 Põhiprobleem: mälu fragmenteerumine 50% reegel Mälublokid: iseloom kinni, vaba, vabastatud maht baitides, sõnades tunnused kuuluvus mingisse klassi Hoidmine seotakse viitadega listiks list järjestatakse aadresside, suuruse järgi vabad kõrvuti asuvad blokid ühendatakse vabastamisel mälublokk märgistatakse ja alles siis, kui vaba mälu enam ei ole, kustutakse (prahii koristamine) Mälueraldamise strateegiad First-fit eraldada esimene vaba blokk, mis piisavalt suur Best-fit eraldada kõige väiksem blokk, mis on piisavalt suur Worst-fit eraldada võimalikult suur blokk
asendada samanimelised muutujad. 7.1. Listid Esitavad järjestatud elementide korteeže List unifitseerub • ühe muutujaga List = [a, d, f, [s, f, [],d]] • Listi erinevaid osi adresseerivate muutujatega, kui on mitte-tühi list [Head|Tail] Head (listi pea) - listi ilmutatult viidatavad esimesed elemendid Tail (listi saba) – ülejäänud listi elemendid | - eraldussümbol. 1. Termi konverteerimine listiks ja vastupidi ”= ..”. Tulemuseks list, mille peaks on predikaadi nimi ja sabaks predikaadi argumendid. Sorteerimispredikaadi defineerimine: - Ordering := < , kui aritmeetiline järjestamine - Ordering := aless , kui alfabeetiline järjestamine, kus 7.2 Semantilised võrgud Semantiline võrk (SV) on diagramm, mis esitab objekte, nende omadusi ja objektide vahelisi seoseid. SV annab mõistete konteksti ja aitab selgitada valdkonna mõistete tähendust. SV graafiline esitus:
(read "1.2300") annab tulemuseks reaalarvu 1.23 (read "87 3.2") annab tulemuseks täisarvu 87 51 (setq failr (open "minufail" "r") ;faili avamine lugemiseks rida (read-line failr) ;failist rea lugemine sõnena loetelu (read (strcat "(" rida ")")) ;loetud rea muutmine listiks ) ;lugemaks failist kõik read, võib kahe eelneva lause täitmise panna tsüklisse (close failr) ;faili sulgemine Märgime siinkohal, et ka funktsioon princ (vt. lk. 45) võimaldab lisaks ekraanile väljasta- da faili (funktsioon prompt seda võimalust ei paku!). Selleks tuleb funktsiooni open abil (vt. lk. 51) fail eelnevalt muidugi avada. Faili kirjutamiseks tuleb nüüd funktsioonile princ lisada