241 Åtkomstkontroll. Följande metoder/tekniker är/var vanliga för skydd av primärminne, filer, mm.

Storlek: px
Starta visningen från sidan:

Download "241 Åtkomstkontroll. Följande metoder/tekniker är/var vanliga för skydd av primärminne, filer, mm."

Transkript

1 S. Sontag. Tolkningen är intellektets hämnd på konsten. är som bekant tekniken att reglera subjekts (användares, processers, funktioners,...) möjligheter att operera (skriva, läsa, exekvera) på objekt (filer, noder, processer, yttre enheter,...). står också, enligt OSI, för en tjänst. Metoderna används som komplement till kryptografi bland annat därför att de är mycket mindre resurskrävande i termer av tid och minne Ambitionsnivåer Avgörande för val av mekanism är ambitionsnivån avseende åtkomstskyddet. Nivåerna kan formuleras som 'policies' på många olika sätt. Här är ett förslag. - Oskyddade system. - 'All-or-nothing systems'. - Operativsystemkontrollerad delning. - Användarstyrd delning. Den första nivån avser operativsystem byggda på maskiner som saknar minnesskydd i maskinvara. Programvarumässigt interpreterad åtkomstkontroll är i allmänhet för kostsam för objekt i primärminnet, varför man väljer att avstå från skydd. Den andra typen av system har sin grund i kombinationen av 'supervisor/user state' och privilegierade instruktioner. Namnet kommer därav att operativsystemet tillåts utföra alla instruktioner; användarna är mer begränsade. Ett system med endast dessa faciliteter måste betraktas som fullständigt oskyddat. Bättre skydd erhålls om operativsystemet därutöver sätter läs- skriv- och exekveringsskydd på minnesdelar, sidor eller segment med maskinvarustöd och för filer, terminaler och noder implementerat i programvara. I de mer avancerade systemen sker styrningen av åtkomst efter användarnas intentioner: Inte helt fritt, då skulle kaos uppstå, men efter ramar fastställda av operativsystemet då systemets 'policy' formuleras. Observera att benämningen vanligen är delning och inte skydd. Anledningen är att det just är delningen som gör skyddsaspekterna svårhanterliga och kanske intressanta Tekniker Följande metoder/tekniker är/var vanliga för skydd av primärminne, filer, mm. i. Gränsregister och supervisor state'. Åtkomstskyddat område där operativsystemet har allokerats sätts via ett register med hjälp av privilegierad instruktion. En användares försök till referens till skyddat område ger 'trap'. Ett anrop till en förutbestämd adress kan tolkas som ett systemanrop (i system där en 'trap'- instruktion saknas). I övrigt är operativsystemarean oåtkomlig för användarprocesser. Figur 10.1 illustrerar tekniken.

2 242 Primärminnet OS i 'supervisor state' Användare (en åt gången) i 'user state') Ett gränsregister som definieras av OS med privilegierad instruktion Figur Gränsregister ii. Lås och nycklar. Minnesblock av fix storlek åsätts mha en privilegierad instruktion ett låsvärde (tex 0-15). Endast processer som har motsvarande nyckel i 'process status word', psw, kan referera detta block. Detta är grundmodellen i OS/370. iii. Bas- och gränsregister. En modifikation av tekniken med gränsregister som möjliggör inkapsling av en process' namnrum inom visst område. Denna teknik har alltid vad jag vet kombinerats med dynamisk relokering via detta basregister. Bas- och gränsregistertekniken illustreras av figur Primärminnet OS Åtkomligt område En annan uppehållen process Dessa sätts av OS B L Adresser relokeras via B Kontroll av adress L görs Figur Bas- och gränsregister Observera att dessa tre tekniker verkar i det fysiska adressrummmet. Nu till skydd i den logiska adressrymden. iv. Sid- eller segmentskydd. Läs- skriv- och exekveringsrättigheter (rwe) sätts av operativsystemet på basis av allokeringsenhet i respektive tabell. En otillåten operation ger ett 'trap'. Den helt dominerande tekniken idag går via sidsystem och sidskydd. v. Ringskydd. Detta kan sägas vara en generalisering av 'user/supervisor state' så att dels fler processortillstånd (ringnummer, pr.rn) kan lagras i processtatusordet, dels att varje objekt (segment) kan tilldelas ett ringnummer s.rn i segmenttabellelementet. De olika processtillstånden kan också låtas definiera olika klasser av privilegierade instruktioner. Vid varje referens kontrolleras att pr.rn s.rn. Om så inte är fallet fås en 'trap'. Detta skydd, där objekt och subjekt ordnas hierarkiskt (linjärt), verkar oberoende av rwebitarna. Eftersom en naiv tillämpning av denna regel skulle omöjliggöra anrop "inåt" från användare till systemrutiner måste regeln kompletteras. Ett sätt är att tillåta anrop, men bara anrop, inåt och då till förutsatt certifierade anropsställen [s, w] (sk 'protected calls').

3 243 Maskinvarumodellen är funktionellt identisk med 'scope'- reglerna för många blockorienterade språk. vi. 'Capability-' (CL, cap-listor) och/eller åtkomstlistor (ACL). Dessa tekniker eller dess ekvivalenser är mig veterligen de enda som gör användarstyrd åtkomstkontroll möjlig. Listorna (registren, segmenten) med 'capabilities' laddas ju av processerna från certifierade platser i operativsystemet. De objekt som innehåller 'capabilities' kan läsas/skrivas om användaren har rättighet i en "primär" 'capability' rc/wc till detta (rc/wc = 'read/write capability'). Figur 10.3 illustrerar CL. Processlista CL Process x Process y (Subjekt) En annan CL Figur CL Segment Rättigheter Ett segment (objekt) eller en underordnad CL Byten mellan olika listor (domän) blir också möjliga, så att tex beroende på i vilken funktion en process befinner sig i så kan rättigheterna vara olika. Rätt använd ger tekniken ett bra skydd mot trojanska hästar, den möjliggör små skyddsdomäner ('least priviledge') och kan integreras med namnhanteringen (av segment). Åtkomstlistorna associerar rättigheter för subjekt per objekt och är funktionellt ekvivalent med cap-listor. Cap-listor har fördelen att de är effektivare att utnyttja vid exekveringen av program (processens domän finns ju samlad där), de förra att de är lättare att administrera. Det är dessa aspekter som gör att åtkomstlistor är vanliga i filsystem, medan domänlistorna är nödvändiga vid skydd av primärminnet. I 'capability'-orienterade system är återkallande ('revocation') av rättigheter till ett objekt omständligt. Detta beror på att flera subjekt kan ha 'capabilities' till samma objekt. Om en rättighet ska tas bort för samtliga subjekt till ett objekt måste systemet söka genom alla 'capability lists'. Ett sätt att förenkla detta återkallande är att använda 'capabilities' indirekt. Dessa pekar ut EN deskriptor som i sin tur pekar ut objektet. Fullständigt återkallande kan då ske genom att ta bort denna deskriptor (O' i figuren). Figur 10.4 visar caps som används indirekt. C' CL(användare) Global segmenttabell Objektet O O' CL(ägare) O C' C Ägaren av O (dvs C) delar ut en begränsad kopia C' till användaren som utnyttjar den indirekt. Figur 'Capabilities' för återkallande av rättigheter

4 244 Selektivt återkallande är fortfarande omständligt. Här har 'access control lists' en definitiv fördel. CL-metoden har ibland kallats biljettorienterad eftersom blotta ägandet av en 'capability' visar rättigheten till ett objekt (tex en plats i en teatersalong). ACL-metoden kallas analogt för listorienterad: Användaren anger sin identitet för en kontrollant som avgör om tjänsten kan utföras genom att konsultera en lista (kan liknas vid passkontrollen i vissa länder). vii. 'Capabilities' med kryptochecksumma. I distribuerade system kan 'capabilities' användas för att definiera och adressera objekt i de ingående delsystemen. En 'capability' kan bestå av följande fyra delar (från det distribuerade operativsystemet Amoeba). Maskin, 48 bits Objekt, 24 bits Rättighet, 8 bits 48 'checkbits' Eftersom dessa skickas via datanät är de utsatta för risker för manipulation. I en 'capability' ingår därför det fjärde fältet, som inte brukar finnas i centraliserade system. Detta kan framställas via kryptering som en MAC beräknad utgående från de första tre fälten. viii. med chiffer. Om X är ett objekt som är krypterat med nyckeln K så innebär det att X är skyddat så länge som K är det. För att få tillgång till K är följande "öppnare" ('openers') R tänkbara. -- 'Or-access'. K öppnas med en av flera tänkbara dechiffreringstransformationer d i. R-or = <e 1 (K),..., e n (K)> -- 'And-access'. I detta fall krävs n stycken d i transformationer för att öppna K. R-and = <e n (... e 1 (K)...)> --- 'Quorum-access'. Ett tredje alternativ är att låta delar K i av K läsas med olika d i. R-quorum = <e 1 (K 1 ),..., e n (K n )> K kan därefter återskapas via t, t < n, stycken K i (ett tröskelsystem). ix. Databasskydd med chiffer. Antag en databas B består av filer F 1,..., F n. Dessa betraktas som heltal. Tanken är att chiffrera databasen så att enstaka filer kan läsas utan att de övriga yppas. Välj n olika primtal m 1,..., m n sådana att m i > F i. Som chiffer väljs ett heltal C sådant att C F i (mod m i ). Ett sådant C existerar enligt CRT. Specifikt: Sätt M = Π m i och M i = M / m i. Vidare låt e i = M i y i, där y i = M i -1 (mod m i ). Chiffret definieras nu av C Σ i [1,n] e i F i (mod M). Heltalen e i kallas skriv-delnycklar ('write subkeys'). För att återfå en fil F k, observera att F k C (mod m k ). Man kallar m k för läs-delnycklar; en (1) sådan behövs för varje fil man vill dechiffrera.

5 245 x. Skydd och minneshantering i i80486 mfl Arkitekturen understödjer sidindelad segmenterad minneshantering och sk ringskydd. Totala antalet segment är 16 K (2 14 ) varav sex är adresserbara samtidigt, maximal segmentstorlek är 1 M (2 20 ) bytes eller 1 M sidor a 4 Kbytes, dvs 4 Gbytes. Virtuella adressrummet är alltså (maximalt) bytes (64 terabytes). Ringnumren ligger i [0, 3]. Det fysika minnet kan vara högst 2 32 bytes. Figur 10.5 visar arkitekturens implementering. Observera att man talar om tre olika adressrum: i. Aktuell omgivning/kontext ('current environment/context'): 6*4 Gbytes. ii. Totalt virtuellt adressrum: 64 Tbytes. ii. Fysiskt adressrum: (maximalt) 4 Gbytes; 32 bitars adressbuss till minnet. Det totala virtuella adressrummet nås genom att aktuell omgivning kan varieras genom att omdefiniera innehållet i 6 sk segmentregister; CS (code), SS (stack), DS (data), ES (extra), FS och GS. Klocka 'Reset' Avbrott mm Exekveringsenhet Instruktionsenhet 4 5 'Memory management unit' Bussanpassning = Styrenhet med mikroprogramminne 2 = Register 3 = ALU och 'shifter' 4 = Instruktionskö 5 = Instruktionsavkodare 6 = Segmentdeskriptor'cache' 7 = Segmentering 8 = Sidtabell'cache' 9 = Sidindelning 10 = 'Prefetcher' 11 = Buss'control' Adress- och databuss (till minnet) mm Figur Layout för processorn Namnrum. För segmentering utnyttjas processorns register CS, SS, DS, ES, FS och GS, som vardera är 16 bitar. CS laddas av operativsystemet med segmentnumret för aktuellt kodsegment, SS med segmentnumret för aktuellt stacksegment; DS ger ett datasegment, de övriga tre definierar extra segment. Alla instruktion[ssekvens]er kan förses med ett s k prefix som anger vilket register och därmed segment som avses. Registerinnehållet tolkas som en s k selektor: - En index (segmentidentifierare) om 13 bitar. - Ett ringnummer om 2 bitar. - En bit som anger om en global (GDT) eller en lokal (LDT) segmenttabell ska användas. GDT beskriver systemsegment, som är gemensamma för alla processer. Varje LDT anger processens egna segment. Totalt har varje process alltså K segment. Dessutom finns en IDT ('interrupt descriptor table'), som används av avbrottsrutinerna.

6 Segmentdeskriptorer. Index-värdet i selektorn pekar ut ett element, en s k deskriptor, i en LDT eller i GDT. En deskriptor omfattar 64 bitar: - 32 bitar som 'basadress' för segmentet bitars längdangivelse för segmentet kontrollbitar: (2 bitar "reserverade"), varav 1 bit anger om segmenten omfattar 16- eller 32-bitars ord. 1 bit anger om längdangivelsen avser sidor eller bytes. 1 närvarobit. 2 bitars ringnummer. 5 skydds- och typ-bitar. Aktuellt selektorregister väljer ut en deskriptor vilken ger en basadress till vilken adderas instruktionens adressdel, som kan specificeras på en mångfald sätt, för att forma en 32 bitars sk linjär adress. De maximalt sex segmentdeskriptorer som anges av CS, DS etc laddas maskinvarumässigt till mikroprogramkontrollerade register ('caching') i cpu-n så att de kan nås snabbt. I övrigt återfinns segmenttabellerna i primärminnet på plats som anges av processorregister; GDTR, LDTR, IDTR. Systemet kan användas med enbart segmenterat virtuellt minne; alternativt kan segmenten också sidindelas. Om alla deskriptorers basadressfält sätts till 0 eller om bara ett register utnyttjas blir systemet rent sidindelat. Om sidindelningen dessutom deaktiveras erhålls adressering direkt i fysiskt minne. 3. Sidindelning uppnås genom att uppfatta denna 32 bitars linjära adress som bestående av tre fält (sidtabellen sidindelas eftersom den är så stor; 2 20 element): - 'page directory index' (pdi); 10 bitar. - 'page table index' (pti); 10 bitar. - 'offset'; 12 bitar, sidstorlek 4 K. Varje process tilldelas ett fixt 'page directory' vars adress anges av ett processorregister CR3. Elementen i denna katalog pekar ut en sidtabell var i vilka sidoramsnummer återfinns. Indexkomponenterna indexerar i dessa tabeller. 'Offset'-värdet konkateneras till sidoramsnumret för att forma den fysiska adressen. Elementen i de 1 K (10 bitars indices) stora tabellerna består av 32 bitar. Tabellerna är alltså 4 Kbytes och ryms precis i en sida. Vilken tillfällighet! Av dessa anger 20 bitar sidoramsnumret (pfn) och de resterande 12 består av en närvarobit, referensbit, en bit som anger om sidan är ändrad samt skyddsbitar. Vid 'page [table] fault' anges den felande instruktionens adress i CR2. CR1 används inte och CR0 innehåller maskinstatusord och en bit som anger om 'paging' är aktiverad eller ej. Totalt kan alltså det fysiska minnet vara högst bytes (2 20 sidoramar med storlek 4 K) i samklang med vald vidd av adressbussen. Figur 10.6 sammanfattar. De mest aktuella tripletterna <pdi, pti, pfn> lagras i ett associativt cachemine (i cpu-n) för att snabba upp adressöversättningen. Både detta och de aktuella segmentdeskriptorerna finns i 80386:s cpu-'chip'. 4. Ringskydd. I varje ögonblick innehåller varje selektor ett s k ringnummer för den exekverande processen, medan varje refererat segments ringnummer återfinns i deskriptorn. Dessa par av ringnummer definierar ett hierarkiskt skyddsystem. Läs- och skrivreferenser till eget nummer eller högre är alltid tillåtna, medan referenser "inåt" ger ett fel-'trap'.

7 247 För att uföra anrop mellan nivåer specificerar call-instruktionen en selektor i stället för en vanlig anropsadress. Selektorn anger en deskriptor som kallas 'call gate'. En skyddsbit i denna anger om anropet är tillåtet. Denna 'call gate'/'gate descriptor' anger kodsegmentets vanliga deskriptor (indirekt adressering). Vidare tillåts endast anrop till platser i som antas representera certifierade anropspunkter. Ringnumren föreslås allokerade så att operativsystemkärnan har nummer 0, systemanrop exekveras på nummer 1, bibliotek på nummer 2 och användarprocesser på nummer 3. Ringskyddet kan ses som en generaliserad form av 'user/supervisor state' och definierar också olika klasser av privilegierade instruktioner. Figur 10.7 visar skyddade proceduranrop via 'call gates'. i call 0 Proceduranrop/instruktion Primärminnet i Register Segmenttabell gate descriptor 16 bitars offset + Aktuell procedur Aktuellt kodsegment Sidindelningen visas inte code descriptor 24 bitars basadress Figur 10.7.Proceduranrop i i Sammanfattningsvis innefattar Adresseringsvägen: - Ett prefix till instruktionen som anger ett selektorregister (sex möjligheter). - En selektor med deskriptorindex och ringnummer (16 K möjligheter). - En deskriptor med basadress (32 bitar), åtkomsträttigheter och typmarkering. - En linjär adress som bildas mha basadressen och instruktionens adressdel (32 bitar). - Ett sidoramsnummer (20 bitar) som framställs av två nivåers sidtabeller. - En sidorelativ adress (12 bitar). Åtkomstskyddet: - Ringnummer i selektorerna och i deskriptorerna. - Accessbitar i deskriptorerna. - Längdangivelser i deskriptorerna. - 'Call gate'- typmarkering i deskriptorerna. - Processlokala LDT. - Segmenttyper; kod, data, stack och "extra". Figur Adressering och skydd i i80486

8 248 Segmenteringsdelen Från processorn prefix adress INSTRUKTION/IR IDTR GDTR LDTR CS DS ES FS GS SS CR0 CR2 CR3 i i' ppl ppl' paging on/off page fault addr REGISTERFIL I PROCESSORN i i' diverse base length Aktuella (6) tabellelement ligger i ett 'segmentation cache' SEGMENT- TABELL diverse = typ- och skyddsbitar, närvarobit, dpl, mm. pdi base + adress pti pdi 0 offset Aktuella tabellelement ligger i ett 'paging cache' control = närvarobit, rättigheter, rw, refererad, ändrad, user/supervisor state... LINJÄR ADRESS SIDTABELLER 0 control pfn1 pfn1 pti Tabellerna ligger på jämna sidskarvar Max. PM är 4G, 32 bitar Sidindelningen SIDTABELL-KATALOG 1023 pfn2 20 bitar offset 12 bitar Till primärminnet control pfn2 pfn FYSISK ADRESS 1023 Ringskydd 'Access sector' för process x process y 63 Segmenttabellelement dpl base length... SUBJEKT/PROCESS G/ i ppl Segmentregister; cs, ds, etc L OBJEKT/SEGMENT Vid varje referens kontrolleras att ppl dpl. Om inte så sker 'trap'; 'access violation'. Anrop specialhanteras 0

9 Accessmatrismodellen Modellen har utvecklats för att systematisera den myriad av tekniker som förekommer och för att kunna syntetisera och analysera konkreta skyddssystem. Modellen består av tillstånd (matriser) och tillståndsövergångar (kommandon). Matrisen definierar ett skyddsystems momentana tillstånd och ges av följande tre delar. - En mängd subjekt ( S = {s}). -- kolumnindex - En mängd objekt ( O = {o}). -- radindex - Sekvenser av rättigheter A[s, o]. -- matriselement Subjekten är systemets aktiva agenter. Beroende på om studieobjektet är maskinvara, operativsystem, programspråk, kommunikationssystem eller databashanterare så ser vi olika subjekt. I operativsystem tänker vi oss vanligen subjekten som instruktioner, funktioner, processer eller användare. Objekten är de element som man avser åtkomstskydda. Exempel på objekt är segment, filer, terminaler och portar. Alla subjekt betraktas som objekt eftersom processer eller funktioner kan referera andra processer eller funktioner eller dessas rättigheter. Elementen A[s, o] anger de operationer som s tillåts utföra på o. En matrisrad brukar kallas ett domän ('protection domain') och definierar samtidigt ett kontext kompletterat med rättigheter. De rättigheter som kan ingå i elementen (sekvenserna) A[s, o] är av tre typer: - För verkställighet av skyddet; read, write, execute, osv - För att flytta rättigheter; own, control, +, * - För att byta matrisrad (domän); enter Modellens attribut i. Skyddets verkställighet ('enforcement') Rättigheter som beskriver de vanliga operationer som ett subjekt kan utföra på ett objekt: läsa, skriva, lägga till (på filer), starta (processer) osv. Förutsättningar för att skyddet ska kunna upprätthållas är att skyddskontrollen alltid genomförs korrekt. För att detta ska vara möjligt måste subjekt och objekt identifieras korrekt, dvs - entydigt - oförfalskat - alltid. För 'enforcement' brukar det i praktiken finnas en 'protection monitor' för varje typ av objekt: filsystemet för filer, drivrutiner för i/o-enheter, adresseringslogiken för segment, schemaläggaren för processer, sk brandväggar för subnät osv, som kontrollerar om referensen är tillåten eller inte. Den del som påverkar skyddsystemet i sig ('rights movement') kontrolleras av 'kärnan' i skyddsystemet. En operation a som s önskar utförd på o handhas som följer a1. s startar operationen a genom att skicka <s, o, a> till aktuell 'protection monitor'. a2. Denna kontrollerar med skyddsystemet om a A[s, o]. a3. Om så är fallet utförs a, annars sker 'trap' ('access violation'). ii. Förändringar i matrisen ('rights movement'); tillståndsövergångar. De speciella rättigheterna own, control, + och * anger huruvida ett subjekt får ändra ett objekts (subjekts) rättigheter. En ägare kan lägga till rättigheter för subjekt till ett objekt vilket han äger.

10 250 Control kan användas för att definiera möjligheter att återkalla rättigheter,* för att ange att kopiering av rättigheter är möjlig och + för att ange att rättigheter kan flyttas. Det är denna klass som gör ett skyddsystem dynamiskt. Exempel på regler (kommandon, se nedan) för 'rights movement' är b1. Om own A[s, o] kan s lägga till en godtycklig rättighet till A[s', o] för alla s'. b2. Om control A[s, s'] kan s ta bort en godtycklig rättighet från A[s', o] för alla o. b3. Om *a A[s, o] så kan s lägga till a eller *a i A[s', o] för alla s'. b4. Om +a A[s, o] så kan s flytta a eller +a från A[s, o] till A[s', o] för alla s'. Om objekten är subjekt kan man också införa rättigheter som 'read/write capability'. iii. Domänbyte. Rättigheten som används är enter. Den kan ses som en rättighet att göra ett funktionsanrop som samtidigt ger ett domänbyte. Vi skiftar sas rad i matrisen och erhåller 'domain switching'. c. Om enter A[s, s'] så kan subjektet/processen s anropa subjektet/processen s'. Rättigheten används för att implementera en något generaliserad 'call gate' och betyder i praktiken att en aktiv process/användare omfattar fler subjekt (s, s',...) och att operationen enter s' utförd av s resulterar i ett byte av aktuell rad ('protection domain') från s till s' i matrisen Kommandon Matrisen beskriver i varje ögonblick ett specifikt tillstånd hos skyddsystemet. Tillståndsövergångar modelleras av kommandon som sammansätts av primitiva operationer. Följande är ett exempel på en uppsättning primitiva operationer. PRIMITIVA Tilläggande Borttagande OPERATIONER Subjekt create subject s destroy subject s Objekt create object o destroy object o Rättighet enter r into A[s, o] delete r from A[s, o] Tabell Primitiva operationer Semantiken kan formuleras i termer av matrisens utseende före och efter de primitiva operationerna. Observera att create subject skapar såväl en ny rad som en ny kolumn i matrisen A. Kommandon består av parametriserade och villkorade sekvenser av primitiva operationer. Som exempel kan följande tre tjäna: command create-file (p, f): command confer-read(x, y, f): create object f if own A[x, f] enter own into A[p, f] then enter read into A[y, f] enter read into A[p, f] enter write into A[p, f] command take-subordinate-read (p,q,m): if control A[p,q] and read A[q,m] then enter read into A[p,m] Figur 10.8 visar matriser före och efter några kommandon.

11 251 P1 P2 Starttillstånd M1 M2 F1 F2 P1 P2 rwe rwe own rw own re Subjekten är processerna P1 och P2 Objekten är filer (F) och minnessegment (M) och processerna (P) Transitioner Motsvarande sk accessgraf är Antag att följande sekvens utförs create.subordinate (P2, P3, M3) take.subordinate.read (P2, P3, M3) take.subordinate.write (P2, P3,M3) confer.read (P2, P3, F2) own, rw P1 rwe M1 P2 own, re F1 rwe F2 M2 Då erhålls med lämpliga (vilka?) definitioner av dessa kommandon Nytt tillstånd P1 P2 M1 M2 M3 F1 F2 P1 P2 P3 rwe rwe rw own rw own rw control P3 rwe r Figur Accessmatrismodellen Oavgörbarhet i. Läckage och 'safeness'. Ett givet system sägs orsaka läckage med avseende på en rättighet om denna via de givna kommandona kan införas på en plats i matrisen där denna rättighet inte tidigare fanns. Det är dessa läckage som ger systemet dynamik. Om ett läckage uppstår på en plats som strider mot systemets 'policy' så är alltså systemet felaktigt, men om systemet är fritt från oavsiktliga läckage på otillåtna platser kallas det säkert ('safe'). Tyvärr är mängden av möjliga tillstånd så mäktig att frågan om 'safeness' är oavgörbar. Beviset för denna sats kan genomföras genom att påvisa att ett skyddsystem kan simulera en Turingmaskin och att identifiera oavsiktliga läckage(tillstånd) med stopptillstånd i Turingmaskinen. Eftersom stopproblemet för en Turingmaskin är oavgörbart så är alltså läckagefrågan det också. Mängden av system som är 'safe' är alltså inte rekursiv. Resultatet är för en praktiker inte så nedslående som det kan låta: Ett enskilt system (begynnelsetillstånd och mängd kommandosekvenser) kan mycket väl bevisas vara 'safe'. ii. 'Computable functions'. En funktion kallas primitivt rekursiv om den kan framställas från begynnelsefunktioner och ändligt många kompositioner (sammansättningar) och rekursion.

12 252 Begynnelsefunktionerna är - nollfunktionen Z(x) = 0, för alla x. - alternativt null - successorfunktionen S(x) = x + 1, för alla x - alternativt cons - projektionen P x (x, y) = x. - alternativt car Rekursion har formen (x är en vektor så f är en flervariabelfunktion) f (x, 0) = g (x) f (x, y+1) = h (x, y, f (x, y)), där g och h är givna funktioner. En relation eller en mängd (t ex ett språk) är primitivt rekursiv om dess karakteristiska funktion är primitivt rekursiv. Givet en mängd M definieras dess karakteristiska funktion χ via χ M (x) = 1 om x M. χ M (x) = 0 om x M. Primitivt rekursiva funktioner kan generaliseras till sk rekursiva funktioner med hjälp av en sk minimeringsoperator (if-sats). De kan i sin tur vara totala (definierade överallt) eller partiella (vara odefinierade för vissa argument). De är de partiellt rekursiva funktionerna som är "Turing computable", d v s som kan beräknas m h a en Turingmaskin. En Turingmaskin är, lite slarvigt uttryckt, en finit automat med ett oändligt minne i form av ett/en band/remsa. Automatens tillståndsövergångar består av att läsa denna remsa, skriva ett nytt värde och höger- eller vänsterskifta bandpositionen. De flesta tror att en Turingmaskin är den mest kraftfulla maskin som kan uppfinnas. Stopp-problemet för en Turingmaskin TM och godtyckligt indata w är frågan: "Givet en godtycklig TM, kommer TM att stanna då dess indata är w?" Frågan är oavgörbar i den meningen att det inte finns någon Turingmaskin T' som kan avgöra detta inom ändlig tid, dvs beräkna problemets karakteristiska funktion [Tur36]. En mängd [ett språk] är rekursiv[t] om dess karakteristiska funktion kan beräknas av någon Turingmaskin. En Turingmaskin kan beskrivas som en 6-tupel TM = <K, Γ, δ, q 0, F, R>, där K är en tillståndsmängd, Γ ett symbolalfabet (vanligen representerat av {0, 1}), δ en tillståndsövergångsfunktion, q 0 ett start- tillstånd, F en mängd av sluttillstånd och en remsa (minne, implicit given av Γ) utan begränsning åt höger; exvis Tillståndsövergångsfunktionen är av typen δ (q, x) = <p, y, *> δ: K Γ K Γ {H, V} Funktionen läser x, ändrar tillståndet från p till q, skriver y på x:s plats och skiftar "minnesadressregistret" ett steg * = H(öger) eller V(änster). iii. TM och AMM är ekvivalenta. För att visa att ett accessmatrissystem kan simulera en TM behöver vi representera tillstånd och tillståndsövergångar med hjälp av accessmatriser respektive kommandon. TM-tillståndet q kan representeras av en matris med bara subjekt som rad- och kolumnindex enligt följande regler.

13 253 - Antag att vi kommit till plats k på remsan och att platser k+1,... är tomma. - Om cell s på remsan innehåller X så låt A[s, s] innehålla X. - Ordna matriselementen genom att sätta tex own i A[s, s+1], för s = 1, 2,..., k Sätt end i elementet A[k, k]. - Om remsadressen är s så sätt q i A[s, s] Tillstånd q 1, q own 0, end Figur Ett tillstånd En tillståndsövergångsfunktion kan simuleras med kommandon. Exempelvis kan den funktion som ger nytt tillstånd enligt nedan och som motsvaras av följande access matris skrivas som command C qx (s, s'). Turingmaskin Accessmatris Remsa own Adress 1 own Turingmaskin Accessmatris Remsa 0 1 Y 0 0 own Adress 1, p own Tillstånd p Y own 0, end Figur Ett annat tillstånd command CqX (s, s'): if own in A[s, s'] and q, X in A[s', s'] then delete q, X from A[s', s']; enter Y into A[s', s'] enter p into A[s, s] För att göra simuleringen fullständig måste också högerskift implementeras. I detta fall uppstår två delfall för kommandot; ett fall då vi håller oss inom redan definierad remsa, ett fall då remsan och därmed också matrisen (create subject) utökas. iv. 'Safeness' är oavgörbart. Följer av ovanstående. v. Kommentarer 1. För sk mono-operationella system, d v s system i vilka alla kommandon innehåller endast en primitiv operation, är 'safeness' avgörbart (men NP-fullständigt). För att modellera endast 'transfer of authority' har utvecklats de s k 'take-grant'-systemen. I dessa inkluderas inte subjekten bland objekten och man kan visa att 'safeness' är avgörbart för dessa system. 2. Intresset för åtkomstkontroll var stort i samband med både operativsystem och databassystem och accessmatrismodellen utvecklades för bådadera. För moderna distribuerade system behöver teknikerna baserade härpå kompletteras med kryptotekniker. 3. Ett CL-system uppstår om matrisen representeras radvis. Ett ACL-system erhålls via kolumnvis representation.

14 'Policy/mechanism' Säkerhetssystemets mekanismer specificeras av begynnelsetillståndet och möjliga sekvenser av kommandon. Systemets policy kan specificeras som en mängd A av auktoriserade tillstånd. Om mekanismerna kan skapa exakt den mängden så sägs systemet vara precist. Om de möjliga tillstånden är en delmängd av A kallas systemet säkert ('secure'). I övrigt finns problem (fel) i specifikationen eller i implementeringen Generiska versus typspecifika rättigheter Rättigheter (operationer, funktioner) som är tillämpbara på objekt av olika typer brukar kallas generiska. Exempel är 'read' som kan avse tex filer, terminaler och brevlådor. Observera att 'extended type objects' tex brevlådor bör ha såväl generiska som typspecifika rättigheter. Rättigheten 'read' kan avse att utnyttjande subjekt har rättighet att läsa representationen av brevlådan, dvs godtyckliga element i brevlådestrukturen: pekare, låsfält och andra attribut. Detta blir då en rättighet som operativsystemet bör besitta. Användarprocesser ska inte tillåtas ha denna rättighet. En användare kan däremot behöva rättigheten 'receive', som innebär att processen tillåts utföra motsvarande brevlådeoperation. Samma resonemang kan föras för alla abstrakta datatyper. Observera att det finns rättigheter som inte går att kontrollera redan vid kompileringen. Speciellt gäller detta dynamiska strukturer eller processer. Typdeskriptorer måste då finnas med under exekveringen. De kan användas endera av ett 'run time system' associerat till språket eller administreras av operativsystemet. Figur visar operativsystemdelar som är inblandade vid åtkomstkontroll Brandväggar Begreppet brandvägg ('firewall') står för en åtkomstteknik avpassad för datornät. De verkar genom att filtrera nättrafiken. Olika typer av filter finns; det som karakteriserar just brandväggar är att de opererar på de övre skikten i OSI-stacken. Huvudmålet med brandväggar är att isolera nät från varandra och bilda sk 'security domains'. I TCP/IP-nät sker detta genom att brandväggarna undersöker IP- och TCP-'headers' för ut- och ingående paket. En brandvägg är en speciell form av 'protection monitor' ('reference monitor') och ska alltså som en sådan alltid användas, vara oinkräktbar och tillräckligt liten för att kunna "verifieras". Man brukar räkna med tre typer av brandväggar: - 'screening routers', - 'proxy gateways' - 'guards'. Screening routers filtrerar packet grundat på ip-adresser. Proxy gateways ('bastion hosts') tar även hänsyn till data så att t ex html-filer kan läsas men inte skrivas utifrån. Guards utgör en generalisering av proxies och kan t ex också kontrollera mängden av data som tillåts transporteras, den kan skicka ftp-hämtade filer via en "virus scanner", m m.

15 255 Subjekt 'Protection monitor' Objekt Attribut (exempel på operation) (predikat) (kan vara subjekt) (predikativt?) S: (f) Filsystemet S: read-file (f) Filer 'Enforcement' S: move d1, [s,w] Adresseringslogik Segment ibid S: send (to process) Schemaläggare Processer ibid S: doio(...) Drivrutin Enhet ibid S: enter (S') Avkodning Instr. 'Domain switching' S:change access right Skyddsystemet 'Rights movement' Kan skriva s r o Accessmatrisen Läser här (som ACL eller CL) Figur Allmän översikt av direkt åtkomstkontroll Noter Detta material brukar återfinnas i böcker om operativsystem; t ex [SP97] och [Sta98]. Satsen om skyddsystems oavgörbarhet är från [HRU76]. En klassiker. Bra böcker om brandväggar är [CB94] och [Sta99]. Övningar I texten visas hur ett accessmatrissystem kan simulera en Turingmaskin bara "till hälften" genom att endast vänsterskift beaktas. Visa den resterande delen Accesskontroll kan ske med 'authorization lists' ('access control lists', ACL) eller 'capability lists'. Gör en jämförelse mellan metoderna med avseende på att a. förändra (lägga till och ta bort) rättigheter ('rights movement') b. utföra domänbyte ('domain switching'). c. kontrollera rättigheter ('enforcement') Genomför en marknadsundersökning av sk brandväggar ('firewalls').

16 Den teknik som refereras i avsnitt 10.2.vii är från David Giffords artikel "Cryptographic Sealing for Information Secrecy and Authentication" presenterad vid ACM/SIGOPS 8:e symposium om Operativsystemprinciper, december, 1981, i Pacific Grove, CA, USA. Visa hur denna teknik kan användas för att implementera ACL- och CL-metoderna och även informationsflödesskydd, som beskrivs i nästa kapitel. Anmärkning. I en av de första kursinstanserna ingick implementering av denna teknik som "laboration/projekt" Varför skydda segment via 'capability lists' med filer via 'access control lists'? I SunOS-4.0-dokumentationen rekommenderas att lösenordsfilen ersätts med en publikt läsbar fil /etc/publickey, som för varje användare A innehåller identiteten id(a), As publika nyckel a och As privata nyckel a -1 krypterad med DES och en nyckel k som härleds från As lösenord. När A gör log-in så dekrypterar systemet fram As privata nyckel och kontrollerar att lösenordet var det korrekta. a. Hur går detta till? b. Är det möjligt för en 'hacker' att komma åt As lösenord?

Några gamla tentamensuppgifter: Minneshantering

Några gamla tentamensuppgifter: Minneshantering 1 Tentamen 1992-08-26 5. I ett virtuellt minne med skiva är primärminnets accesstid 1 mikrosekund, sidstorleken 1 K, skivans rotationstid 10 millisekunder, inställningstiden för skivans arm 5 millisekunder

Läs mer

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne. Fö 8: Operativsystem II Minneshantering och Virtuelltminne. Virtuella I/O enheter och Filsystemet. Flerprocessorsystem. Minneshantering Uniprogrammering: Minnet delas mellan operativsystem och användarprogrammet.

Läs mer

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det Behörighetssystem Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det Systemet måste kunna registrera vilka resurser, d v s data och databärande

Läs mer

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Rahim Rahmani (rahim@dsv.su.se) Division of ACT Department of Computer and Systems Sciences Stockholm University SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Tentamensdatum: 2013-03-21 Tentamen består av totalt

Läs mer

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt

Läs mer

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00 Operativsystem ID2200 Tentamen TEN1 3.8 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa

Läs mer

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00 Operativsystem ID2206 Tentamen TEN1 4.5 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa

Läs mer

Minneshantering segmentering och virtuellminne. Föreläsning 3

Minneshantering segmentering och virtuellminne. Föreläsning 3 Minneshantering segmentering och virtuellminne Föreläsning 3 Minneshantering forts. Hur kan man köra processer som är större än primärminnet? Hur kan man undvika att stack och heap växer ihop? Virtuellminne

Läs mer

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen 68000 Arkitektur F2: Motorola 68000 I/O signaler Processor arkitektur Programmeringsmodell Assembler vs. Maskinkod Exekvering av instruktioner i 68000 Instruktionsformat MOVE instruktionen Adresseringsmoder

Läs mer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON Datorteknik ERIK LARSSON Inledning Ken Thompson och Dennis M. Ritchie utvecklade C Turingpriset( Nobelpris i datavetenskap ), 1983 Alan Turing (1912-1954) För deras utveckling av generell OS teori och

Läs mer

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet Datorarkitektur - en inledning Organisation av datorsystem: olika abstraktionsnivåer System S den mest abstrakta synen på systemet A B C Ett högnivåperspektiv på systemet a1 b1 c1 a2 b3 b2 c2 c3 En mera

Läs mer

F5: Högnivåprogrammering

F5: Högnivåprogrammering 1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data

Läs mer

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel Uppgift 3 Till en process som kräver 8 sidor allokeras 4 sidoramar. Antag följande referenssträng: 1,2,8,3,4,3,8,2,1,4 Hur många sidofel kommer att genereras (demand paging) med en a) FIFO-algoritm (2

Läs mer

HF0010. Introduktionskurs i datateknik 1,5 hp

HF0010. Introduktionskurs i datateknik 1,5 hp HF0010 Introduktionskurs i datateknik 1,5 hp Välkommna - till KTH, Haninge, Datateknik, kursen och till första steget mot att bli programmerare! Er lärare och kursansvarig: Nicklas Brandefelt, bfelt@kth.se

Läs mer

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4 Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa

Läs mer

Minnet från processorns sida Datorteknik

Minnet från processorns sida Datorteknik Minnet från processorns sida Datorteknik ERIK LARSSON Processorn ger kommandon/instruktioner med en adress och förväntar sig data. Exempel: READ(ADR) -> DATA Fysisk adress Logisk adress READ 00001000 READ

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

F5: Högnivåprogrammering

F5: Högnivåprogrammering F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data via

Läs mer

Operativsystem - input/output, skydd, virtualisering

Operativsystem - input/output, skydd, virtualisering Operativsystem - input/output, skydd, virtualisering Mats Björkman 2015-03-12 Lärandemål, I/O n Typer av I/O-enheter n Character, Block & Special n Minnesmappad I/O n Typer av I/O-programmering n Programmerad,

Läs mer

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00 Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen 2019-04-16 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Anteckningarna lämnas

Läs mer

Grundläggande datavetenskap, 4p

Grundläggande datavetenskap, 4p Grundläggande datavetenskap, 4p Kapitel 2 Datamanipulation, Processorns arbete Utgående från boken Computer Science av: J. Glenn Brookshear 2004-11-09 IT och Medier 1 Innehåll CPU ALU Kontrollenhet Register

Läs mer

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Lunds Universitet LTH Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Skrivtid: 8.00-13.00 Inga tillåtna hjälpmedel Uppgifterna i tentamen ger maximalt 60 poäng. Uppgifterna är

Läs mer

155 Datasäkerhet. Här är ett antal konkreta hot problem vad avser säkerheten i datorsystem.

155 Datasäkerhet. Här är ett antal konkreta hot problem vad avser säkerheten i datorsystem. 155 10. 10.1. Mål, medel och tekniker Skydds- och datasäkerhetsfunktioner används av minst två skäl. Dels vet vi att alla program är behäftade med felaktigheter, som kan innebära driftstörningar mot vilka

Läs mer

Vektorgeometri för gymnasister

Vektorgeometri för gymnasister Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Linjära avbildningar II Innehåll Repetition:

Läs mer

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Föreläsning 9: Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står

Läs mer

Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen den 18 mars svar Datorteknik, EIT070 Lunds Universitet LTH Tentamen den 18 mars 2015 - svar Datorteknik, EIT070 Skrivtid: 14.00-19.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30

Läs mer

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står skrivna: Oändligt

Läs mer

Närliggande allokering Datorteknik

Närliggande allokering Datorteknik Närliggande allokering Datorteknik ERIK LARSSON TID Problem: Minnet blir fragmenterat Paging Demand paging Sida (S) Dela upp primärminnet i ramar (frames) och program i sidor (pages) Program 0 RD.0 1 RD.1

Läs mer

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum:

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum: Datorsystem Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3 Student: Lärare: Underskrift: Underskrift: Datum: Datorsystem Laboration 3 1 Innehåll 1 Inledning 2 1.1 Introduktion...........................................

Läs mer

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Lösningsförslag för 725G45-tentan 3/11-10 1. Vad menas med Von Neumann-arkitektur? (2p) En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär: Data och instruktioner lagras i samma

Läs mer

Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler

Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler 21-1-2 1 Dagens föreläsning Hur fungerar ett Lisp system intern struktur av symbolen, tal, listan pekare - delade strukturer - eq minneshantering fri lista - sophämtning/garbage collection stack Diverse

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #23 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Översikt När flera minnesmoduler placeras i processorns

Läs mer

Datorarkitekturer med Operativsystem

Datorarkitekturer med Operativsystem Lunds Tekniska Högskola Campus Helsingborg Datorarkitekturer med Operativsystem EDT621 Rapport Cacheminneshantering för ARM3-processorer 7 december 2015 Pierre Aupeix dat11pau@student.lu.se 1 Abstract

Läs mer

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning 1 Dagens föreläsning Programmering i Lisp - Block, räckvidd - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch

Läs mer

Informationssäkerhet - en översikt. Louise Yngström, DSV

Informationssäkerhet - en översikt. Louise Yngström, DSV Informationssäkerhet - en översikt Louise Yngström, DSV Närmaste 50 minuterna... Informationssäkerhet? Definition Mål Krav Medel Datasäkerhet säkerhet beträffande skydd av datorsystem och dess data syftande

Läs mer

Operativsystem (ID2200/06) XX XX:00-XX:00

Operativsystem (ID2200/06) XX XX:00-XX:00 Operativsystem (ID2200/06) 2017-01-XX XX:00-XX:00 Namn: Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4-sida med anteckningar. Mobiler etc skall lämnas till

Läs mer

Tentamen PC-teknik 5 p Lösningar och kommentarer

Tentamen PC-teknik 5 p Lösningar och kommentarer Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3, Et3 Datum: 04-08-10 Tid: 13:30-18:30 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Dator Primärminne Instruktioner och data Data/instruktioner Kontroll Central processing unit (CPU) Fetch instruction Execute instruction Programexekvering

Läs mer

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt Flera processer Minneshantering Operativsystem lektion 6 Potentiellt problem: Den sida som plockas bort behöver inte vara den sida som används minst!! Det kan finnas andra processer som inte körs eller

Läs mer

Föreläsning 5: Introduktion av pekare

Föreläsning 5: Introduktion av pekare Föreläsning 5: Introduktion av pekare Det bör påpekas att det som tas upp i introduktionen inte är reella exempel på kod. Man anväder inte pekare till att peka på enstaka heltal som i exemplen nedan, men

Läs mer

TDDC74 Lab 04 Muterbara strukturer, omgivningar

TDDC74 Lab 04 Muterbara strukturer, omgivningar TDDC74 Lab 04 Muterbara strukturer, omgivningar 1 Översikt I den här laborationen kommer ni att lära er mer om: Tillstånd, och skillnader mellan ren funktionell programmering och imperativ. Skillnaden

Läs mer

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf

DAT 015 Maskinorienterad programmering 2010/2011. Uppbyggnad_och_funktion.pdf DAT 015 Maskinorienterad programmering 2010/2011 Uppbyggnad_och_funktion.pdf Ur innehållet: Bussystem, intern kommunikation i datorsystemet Adressavkodning, hur primärminne och I/O-enheter kan anslutas

Läs mer

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00 Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen 2019-04-16 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Anteckningarna lämnas

Läs mer

Operativsystem (IS1350) :00-12:00

Operativsystem (IS1350) :00-12:00 Operativsystem (IS1350) 2017-03-15 08:00-12:00 Namn: Instruktioner Betyg Du får endast ha med dig skrivmateriel. Mobiler etc skall lämnas till tentamensvakterna. Svaren skall lämnas på dessa sidor, använd

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Idag: Par och listor. Scheme. DA2001 (Föreläsning 6) Datalogi 1 Hösten / 29

Idag: Par och listor. Scheme. DA2001 (Föreläsning 6) Datalogi 1 Hösten / 29 Idag: Par och listor DA2001 (Föreläsning 6) Datalogi 1 Hösten 2010 1 / 29 Idag: Par och listor Hur hanterar man icke-numeriska problem? DA2001 (Föreläsning 6) Datalogi 1 Hösten 2010 1 / 29 Idag: Par och

Läs mer

F8: Undantagshantering

F8: Undantagshantering F8: Undantagshantering Undantagshantering i 68 Vad är ett undantag? Typer av undantag Att skriva undantagsrutiner Undantagshantering, vad och varför? Exempel: Ett system ska mäta temperatur var :e sekund

Läs mer

Idag: Par och listor. Symboler. Symboler används för att uttrycka icke-numeriska data såsom namn, adress, bilregisternummer, boktitel, osv.

Idag: Par och listor. Symboler. Symboler används för att uttrycka icke-numeriska data såsom namn, adress, bilregisternummer, boktitel, osv. Idag: Par och listor Symboler Hur hanterar man icke-numeriska problem? Hur hanterar man en samling av data? Hur konstruerar man sammansatta datastrukturer? Bra om du har läst följande avsnitt i AS: Pair

Läs mer

1 De fyra fundamentala underrummen till en matris

1 De fyra fundamentala underrummen till en matris Krister Svanberg, mars 2012 1 De fyra fundamentala underrummen till en matris 1.1 Definition av underrum En given delmängd M av IR n säges vara ett underrum i IR n om följande gäller: För varje v 1 M,

Läs mer

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn? Fö 7: Operativsystem Introduktion. Klassificering. Vad är ett operativsystem? Program som kontrollerar andra andra program. Gränssnitt mellan användare och hårdvaran. Kärnan. Historisk översikt. Typeset

Läs mer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Introduktion till formella metoder Programmeringsmetodik 1. Inledning Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur

Läs mer

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör.

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör. Tentamen Inst. för Informationsteknologi Avdelningen för Datorteknik Herbert P Sander Tel: 070 376 06 87 Ämne: Operativsystem Lokal: Post Scriptum, sal 2 Datum: Måndagen den 13 maj 2002 Tid: Kl 09.00-14.00

Läs mer

Filsäkerhet i Windows NT (NTFS)

Filsäkerhet i Windows NT (NTFS) Filsäkerhet i Windows NT (NTFS) Jens Granlund 19.10.2000 Introduktion Detta dokument försöker att beskriva säkerhetsmekanismerna i Windows NTs filsystem NTFS på ett lättbegripligt sätt. Access Control

Läs mer

Databasdesign. E-R-modellen

Databasdesign. E-R-modellen Databasdesign Kapitel 6 Databasdesign E-R-modellen sid Modellering och design av databaser 1 E-R-modellen 3 Grundläggande begrepp 4 Begränsningar 10 E-R-diagram 14 E-R-design 16 Svaga entitetsmängder 19

Läs mer

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013 Rahim Rahmani (rahim@dsv.su.se) Division of SAS Department of Computer and Systems Sciences Stockholm University SVAR TILL TENTAMEN I DATORSYSTEM, HT2013 Tentamensdatum: 2013-10-30 Tentamen består av totalt

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Försättsblad till skriftlig tentamen vid Linköpings Universitet Försättsblad till skriftlig tentamen vid Linköpings Universitet Datum för tentamen 2010-10-08 Sal Tid 8-12 Kurskod Provkod Kursnamn/benämning TDDD36 TEN2 Projekttermin: Säkra Mobila System Institution

Läs mer

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647 Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel

Läs mer

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till

Läs mer

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Institutionen för elektro- och informationsteknik Campus Helsingborg, LTH 2018-01-09 8.00-13.00 (förlängd 14.00) Uppgifterna i tentamen

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #23 Översikt När flera smoduler placeras i processorns adressrum ansluts modulernas adressingångar till motsvarande ledningar i en. Övriga adressledningar i bussen

Läs mer

Säkerhet. Vad är det vi pratar om??

Säkerhet. Vad är det vi pratar om?? Vad är det vi pratar om?? Hindra personer att komma in i ett system? Hindra personer att läsa data? Hindra personer att ändra data? Hindra personer att modifiera systemet? Hindra personer att läsa information

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Innehåll Datastrukturer och algoritmer Föreläsning 2 Fält Specifikation, Konstruktion och Specifikation, Konstruktion Dynamiska resurser Länk Länkade celler 25 26 Fält Modell Schackbräde Organisation n-dimensionellt

Läs mer

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018 . Vad är en dator? Introduktion till datorer och nätverk Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018 Översikt 2/23 Datorns historia von Neumann-arkitekturen Operativsystem Datornät

Läs mer

TDDC74 Programmering, abstraktion och modellering. Tentamen

TDDC74 Programmering, abstraktion och modellering. Tentamen AID-nummer: Datum: 2011-01-11 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Tisdag 11 januari

Läs mer

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf

Digital och Datorteknik EDA /2011. EDA 451 Digital och datorteknik 2010/2011. Uppbyggnad_och_funktion.pdf EDA 451 Digital och datorteknik 2010/2011 Uppbyggnad_och_funktion.pdf Ur innehållet: Bussystem, intern kommunikation i datorsystemet Adressavkodning, hur primärminne och I/O-enheter kan anslutas Olika

Läs mer

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel

Läs mer

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1) 2 n stycken tal från 0 till 2 n 1 F1.2) 9 bitar (512 kombinationer) Talsystem - 2-

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 1 2 - Block, räckvidd Dagens föreläsning Programmering i Lisp - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 13 mars 2013, klockan 14:00 19:00 i Vic 2 A-D, 3 A-C. Tillåtna hjälpmedel: på tentan utdelad

Läs mer

Kompletteringsmaterial. K2 Något om modeller, kompakthetssatsen

Kompletteringsmaterial. K2 Något om modeller, kompakthetssatsen KTH Matematik Bengt Ek Maj 2008 Kompletteringsmaterial till kursen SF1642, Logik för D1 och IT3: K2 Något om modeller, kompakthetssatsen Vi skall presentera ett enkelt (om man känner till sundhets- och

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary 1 1.1 Definitioner... 1 1.2 Implementation... 2

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary 1 1.1 Definitioner... 1 1.2 Implementation... 2 Föreläsning 4 ADT Map/Dictionary, hashtabeller, skip-listor TDDC91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 9 september 2015 Tommy Färnqvist, IDA, Linköpings universitet 4.1

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Innehåll Datastrukturer och algoritmer Föreläsning 2 Fält Specifikation, Konstruktion och Specifikation, Konstruktion Dynamiska resurser Länk Länkade celler 23 24 Konstruktion av Fält Fysisk datatyp i

Läs mer

Rekursiva algoritmer sortering sökning mönstermatchning

Rekursiva algoritmer sortering sökning mönstermatchning Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 6-7 Rekursiva strukturer rekursiva definitioner rekursiva funktioner rekursiva bevis: induktion - rekursion strukturell

Läs mer

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Torsdagen den 13 mars 2014, klockan 14:00 19:00 i MA:10. Tillåtna hjälpmedel: på tentan utdelad formelsamling,

Läs mer

K2 Något om modeller, kompakthetssatsen

K2 Något om modeller, kompakthetssatsen KTH Matematik Bengt Ek Maj 2005 Kompletteringsmaterial till kursen 5B1928 Logik för D1: K2 Något om modeller, kompakthetssatsen Vi skall presentera ett enkelt (om man känner till sundhets- och fullständighetssatsen

Läs mer

Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem.

Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem. Omgivningar Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem. (define (sqrroot c) (define (fixpoint guess c eps) (define

Läs mer

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman Operativsystem Lektion 1 1 Lärare jem@cs.umu.se, B449 Lektioner etc Set Norman set@cs.umu.se, NAdv105 Labbar, labhandledning 2 Schema Notera att det finns ändringar i schemat!! Under perioden 1-8 mars

Läs mer

4 grundregler. Minneshantering. Problemet. Windows minkrav

4 grundregler. Minneshantering. Problemet. Windows minkrav 4 grundregler 1. Man kan aldrig få för mycket minne 2. Minnet kan aldrig bli för snabbt Minneshantering 3. Minne kan aldrig bli för billigt 4. Programmens storlek ökar fortare än minnet i datorerna (känns

Läs mer

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder Introduktion TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder OO är den mest använda programmeringsparadigmen idag, viktigt steg att lära sig och använda OO. Klasser är byggstenen i

Läs mer

DIG IN TO Dator och nätverksteknik

DIG IN TO Dator och nätverksteknik DIG IN TO Dator och nätverksteknik CCNA 1 Operativsystem Agenda Datorsystemets struktur Vad är ett operativsystem? Minneshantering Threads och processer Threads eller exekveringstrådar Processhantering

Läs mer

Classes och Interfaces, Objects och References, Initialization

Classes och Interfaces, Objects och References, Initialization Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class

Läs mer

Assemblerprogrammering del 3

Assemblerprogrammering del 3 Assemblerprogrammering del 3 Dagens föreläsning behandlar: Kompendiet kapitel 9 och 10.4 Arbetsboken kapitel 16 Ur innehållet: Modularisering, subrutiner och strukturerad programutveckling (flödesdiagram)

Läs mer

Tildatenta Lösningsskiss

Tildatenta Lösningsskiss Tildatenta 2017-10-20 Lösningsskiss E-delen 1. KMP PAPPAPARTY next[i] = 0 1 0 2 1 0 4 3 1 1 2. Parent-pekare Utskriftfunktionen fungerar så här: 1. Om noden inte är None a. gör vi först ett rekursivt anrop

Läs mer

Magnus Nielsen, IDA, Linköpings universitet

Magnus Nielsen, IDA, Linköpings universitet Föreläsning ADT Map/Dictionary, hashtabeller TDDC9,TDDE22,725G97: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 7 september 208 Magnus Nielsen, IDA, Linköpings universitet. ADT Map/Dictionary.

Läs mer

PROV. 12 Egenskaper (provavsnitt)

PROV. 12 Egenskaper (provavsnitt) 12 Egenskaper (provavsnitt) 12.1 Egenskaper 12.2 Deklaration av egenskaper 12.3 Åtkomsttjänster för egenskaper 12.4 Åtkomsttjänster med genererade instansvariabler 12.5 Åtkomsttjänster med egna instansvariabelnamn

Läs mer

Övningshäfte 2: Induktion och rekursion

Övningshäfte 2: Induktion och rekursion GÖTEBORGS UNIVERSITET MATEMATIK 1, MMG200, HT2017 INLEDANDE ALGEBRA Övningshäfte 2: Induktion och rekursion Övning D Syftet är att öva förmågan att utgående från enkla samband, aritmetiska och geometriska,

Läs mer

CE_O3. Nios II. Inför lab nios2time

CE_O3. Nios II. Inför lab nios2time IS1200 Exempelsamling till övning CE_O3, 2015 CE_O3. Nios II. Inför lab nios2time 3.1. Logiska operationer (se uppgift 1.2 c) Repetera (eller lär dig) innebörden av de logiska operationerna "bitvis AND",

Läs mer

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1. Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning

Läs mer

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn.

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn. 1 2 En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn. Instruk=onerna =ll programmet som exekveras finns

Läs mer

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad 1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen

Läs mer

Vektorgeometri för gymnasister

Vektorgeometri för gymnasister Vektorgeometri för gymnasister Per-Anders Svensson http://w3.msi.vxu.se/users/pa/vektorgeometri/gymnasiet.html Institutionen för datavetenskap, fysik och matematik Linnéuniversitetet Vektorer i planet

Läs mer

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Datalogi, grundkurs 1. Lösningsförslag till tentamen Datalogi, grundkurs 1 Lösningsförslag till tentamen 6 maj 2000 1. För att proceduren sortera ska fungera som tänkt kan den se ut på följande sätt: const min = 1; max = 3; type tal = integer; index = min..max;

Läs mer

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud. Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra

Läs mer

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade) Datorsystem 2 CPU Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur CPU Visning av Akka (för de som är intresserade) En dators arkitektur På en lägre nivå kan vi ha lite olika

Läs mer

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private Inkapsling tumregler Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler Tobias Wrigstad (baserat på material från Tom Smedsaas) 5 november 2010 1. Man skall

Läs mer

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem Tentamen för DD1370 Databasteknik och informationssystem Exempeltenta för kursen ht2013 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan

Läs mer

Pipelining i Intel Pentium II

Pipelining i Intel Pentium II Pipelining i Intel Pentium II John Abdulnoor Lund Universitet 04/12/2017 Abstract För att en processor ska fungera måste alla komponenter inuti den samarbeta för att nå en acceptabel nivå av prestanda.

Läs mer

Kontinuitet och gränsvärden

Kontinuitet och gränsvärden Kapitel Kontinuitet och gränsvärden.1 Introduktion till kontinuerliga funktioner Kapitlet börjar med allmänna definitioner. Därefter utvidgar vi successivt familjen av kontinuerliga funktioner, genom specifika

Läs mer