Vidar Jon Bauge. Notater til Teknik. Datamatikeruddannelsen efterår 2005 Side 1 af 54

Størrelse: px
Starte visningen fra side:

Download "Vidar Jon Bauge. Notater til Teknik. Datamatikeruddannelsen efterår 2005 Side 1 af 54"

Transkript

1 Notater til Teknik 2005 Datamatikeruddannelsen efterår 2005 Side 1 af 54

2 Indholdsfortegnelse Operativsystemer Batch systemer Time-sharing systemer Computer Systemer I/O struktur I/O interrupts DMA struktur Storage struktur Main memory....8 Operativsystemers struktur System komponenter Proces styring Main memory management File management I/O system management Secondary storage management Netværk Protection system Command interpreter system Operativsystem services System kald System programmer System struktur Simple structure Layered approach Microkernel Virtual machines Implementering Fordele Java Processer Proces status Proces Control Block (PCB)...18 Process scheduling Scheduling queues Schedulers Context switch Process creation Process termination Cooperating processes Tråde Fordele User og kernel tråde Tråde i Java Tråd behandling En tråds tilstande Datamatikeruddannelsen efterår 2005 Side 2 af 54

3 Tråde i JVM JVM og værtens operativsystem CPU Scheduling - Basic concepts CPU-I/O burst cycle CPU scheduler Preemptive scheduling Dispatcher Schedulerings alogritmer First come, First-served Shortest job first scheduling Priority Scheduling Round-Robin scheduling Proces synkronisering Samarbejdende(Cooperating) processer Producer - consumer...28 Kritisk område (Critical section) Semaforer Brug Deadlocks and starvation Dining philosopher Fejl brug af semaforer Monitorer Java synkronisation Bounded Buffer Deadlocks System model Deadlock characterization Betingelser der skal opfyldes Ressource allokerings graf Metoder til at håndtere deadlocks Undgåelse af deadlocks Forebyggelse af deadlocks Memory Logisk/Fysisk adresse rum Paging Virtual memory Demand paging Begreber Nødvendig hardware support Page replacement Implementering Filsystemer Filer Fil attributter Fil operationer Filtyper Filstruktur Intern filstruktur Allokeringsmetoder Fortløbende (Contiguous) allokering Datamatikeruddannelsen efterår 2005 Side 3 af 54

4 Lenket allokering Indekseret allokering Performance I/O systemer I/O operationer Polling Interrupts Direct memory access Programmed IO (PIO)...56 DMA Datamatikeruddannelsen efterår 2005 Side 4 af 54

5 Operativsystemer Operativsystemet er et program der optræder som mellemled mellem hardware og brugeren. Operativsystemet sætter brugeren i stand til at køre programmer og derved udnytte computeren, eller hardwaren. Det primære mål for operativsystemet er at gøre computeren nem at bruge, og sørge for effektiv udnyttelse af hardwaren. Et computersystem kan groft indeles i 4: Hardware Operativsystemet Applikationsprogrammer Brugere Operativsystemet kontrollerer og koordinerer brugere og applikationers brug af hardwareressourcer. Operativsystemer og arkiktektur har haft stor indflydelse på hinanden, og design af begge dele har påvirket hinanden. En vigtig faktor for design af operativsystemer er forventet brug af systemet. Batch systemer De første computere hadde en stor fysisk størrelse, der blev kørt fra en konsol. Almindelige input enheder var kortlæsere og båndstationer. Almindelige output enheder var linieskrivere, båndstationer og kort. Brugeren afleverede en job med program, data og kontroldata, i form af hulkort, til operatøren der kørte den og sendte resultatet tilbage til brugeren. Operatørens opgave var at overføre kontrollen fra den ene job til den næste. For at øge udnyttelsen af maskinen, blev jobbene sorteret i batches efter hvilke behov de havde. På denne måden var CPU'en ofte ledig, da hastigheden på de mekaniske input enheder ikke står i forhold til CPU'ens regnehastighed. Med indførelsen af diske, kunde man samle flere jobber på en disk. Med direkte access til flere jobs var det mulig at indføre job scheduling der gav bedre udnyttelse af hardware. Det vigtigste apekt ved job scheduling er multiprogramming, så CPU'en kan køre en anden job mens den første f.eks venter på en I/O operation. Time-sharing systemer Time-sharing eller multitasking er en naturlig forlængelse af job-scheduling. Med time-sharing menes det at CPU'en skifter mellem flere samtidige jobs så hurtig at brugeren kan interagere med de forskellige programmer samtidig mens de kører. Et time-sharing system tillader mange samtidige brugere på en computer. Siden en kommando eller action ofte er hurtig, behøves der ikke meget CPU tid for hver bruger. Eftersom CPU'en skifter hurtig fra den ene bruger til den næste, fremstår systemet som værende helt til disposition for den enkelte bruger. Et time-sharing system bruger CPU scheduling og multiprogramming for at tildele hver bruger ressourcer. Hver bruger har mindst et program i RAM. Time-sharing systemer er som regel mere komplicerede end multiprogramming systemer. Begge må have flere jobber i RAM samtidig. Derfor må de have memory management og protection. For at holde en acceptabel response tid, må processer kunde flytes ind og ud fra main memory, så Datamatikeruddannelsen efterår 2005 Side 5 af 54

6 disken bliver er sekundær opbevaringsplads virtual memory. En oplagt fordel ved dette er at programmer kan være større end tilgængelig memory. En anden måde at løse dette på, er ved at starte en process uden at overføre hele programmet til memory. Time-sharing systemer må også have et filsystem, og derved adgang til diske. Dessuden kræver time-sharing systemer at processer kan køre samtidig, hvilket stiller krav om et system for CPU scheduling. Datamatikeruddannelsen efterår 2005 Side 6 af 54

7 Computer Systemer Et computersystem består af en CPU og en række device controllere der er koblet sammen med en bus der giver adgang til delt minde (RAM). Hver device controller styrer en speciel enhed på systemet, f.eks diske, grafikkort, lydenheder osv CPU'en og device controllerne kan køre samtidig, og dermed konkurrere om memory. For at sikre delt adgang, er systemet udstyrt med en memory controller der kontrollerer adgang til memory. Ved opstart overlades kontrollen af systemet til et lille initialiseringsprogram, bootstrap. Dette programmet må vide hvordan systemets kerne loades og startes. Operativsystemet starter den første proces, og venter på at en hændelse skal optræde. Optrædelsen af en hændelse viser sig som regel som en interrupt, udløst enten af en input enhed (hardware interrupt) eller af et kørende program (software interrupt). Mange typer hændelser kan udløse en interrupt, som f.eks en I/O operation er f'ærdig, division med nul, ugyldig minne acces eller anmodning om en operation fra operativsystemet. For hver interrupt er der en rutine der håndterer den. Når CPU'en modtager en interrupt, standser den udførelsen af den proces der kører, og overlader kontrollen til en service rutine for den indkomne interrupt. Når denne er udført fortsætter kørselen af den proces der blev afbrudt. Interrupts er en central del i moderne operativsystemer. De rutiner der køres når systemet modtager en interrupt, ligger som regel på en lav memory adresse. Systemet har en interrupt vector der er en tabel med pegere til de forskellige rutinerne. Moderne systemer er interrupt driven hvilket vil sige at når systemet er færdig med de opgaver det har, vil det begynde at vente på at noget skal ske der udløser en interrupt. F.eks at brugeren flytter musen eller trykker på tastaturet. I/O struktur En device controller for en diskenhed har en buffer der er afhængig af det device den kontrollerer, og er vanligvis på størrelse med diskens mindste adresserbare størrelse en sektor. I/O interrupts For at starte en I/O operation, loader CPU'en de nødvendige registre i device controlleren. Device controlleren undersøger så indholdet i disse registrene for at finde ud hvad den skal om den skal læse eller skrive. Hvis der skal læses, begynder controlleren at fylde sin buffer. Når dette er færdig, sender den en interrupt, der informerer CPU'en om at den er klar. Når systemet modtager er I/O interrupt, er det som regel efter anmodning fra en bruger process. Behandlingen af denne interrupt kan ske på 2 måder: Synchronous I/O I/O operationen startes, når den er færdig tilbageføres kontrollen til brugerprocessen Asynchronous I/O Kontrollen returneres til brugerprocessen før I/O operationen er færdig og I/O operationen Datamatikeruddannelsen efterår 2005 Side 7 af 54

8 fortsætter mens systemet arbejder med andre ting. Synchronous I/O forhindrer at flere I/O operationer kan køre samtidig på flere devices, og udelukker kørsel af andre processer mens systemet venter på en I/O operation. Derfor er det bedre at I/O operationen starter, og så køre bruger- eller operativsystem kode. Hvis ingen bruger- eller system processer venter på at blive kørt, kan systemet gå over i en wait tilstand. Dette betyder at systemet må kunne håndtere mange samtidige interrupts. Til dette formålet har operativsystemet en device-status table. Hver opføring i tabellen indikerer en devices type, adresse og status. Eftersom det er mulig for flere processer at anmode om en bestemt device, er der også en wait queue for hver I/O device. En I/O enhed sender et interrupt når det trenger service. Operativsystemet bestemmer så hvilken enhe der har sendt en interrupt og slår opp i device-status table for at bestemme dens status og oppdaterer tabellen i forhold til det indkomne interrupt. Hvis andre processer ligger i kø til den samme enhed, gives en af disse adgang til enheden. Hvis en process ventede på at I/O operationen skulle blive færdig, kan denne processen nu fortsætte, hvis ikke fortsætter en af de andre processerne der er i kø. Den største fordelen ved asynchronous I/O er øget effeltivitet. Mens en I/O operation udføres, kan systemet udføre andre processer eller starte andre I/O operationer. DMA struktur Devices controllere der håndterer langsomme medier, kan ikke levere data hurtig nok til at holde CPU'en aktiv med en datastrøm. Dette hånderes ved hjælp af asynchronous I/O der tillader andre processer at køre parallelt med en I/O operation. Hurtige enheder, som båndstationer eller netværksenheder, kan levere datastrømme op imod memorys hastighed. Dermed ville interrupts komme så ofte at der ikke bliver CPU tid til andre processer. For at løse dette problemet bruges direct memory access for hurtige I/O enheder. Efter at have sat pegere, buffere og tællere for enheden kan device controlleren overføre blokke med data direkte til memory uden CPU tid. Der generes kun en interrupt pr blok i stedet for en interrupt pr byte som ved langsomme enheder. CPU'ens opgaver er grundlæggende de samme. En proces anmoder om en enhed. En device driver setter DMA controllerens registre så den bruger den rigtige kilde- og destinationsadresse. DMA controlleren starter så I/O operationen, og CPU'en er ledig til andre opgaver. Eftersom der bare kan skrives en byte om gangen til RAM, stjæler DMA kontrolleren RAM cycler fra CPU'en. DMA controlleren sender et interrupt når operationen er fuldført. Storage struktur Programmer må være i RAM for at blive udført. Memory er det eneste store medie CPU'en har direkte adgang til. RAM implementeres som Dynamic Random Access Memory (DRAM) som en række memory words eller bytes. Hver byte har sin egen adresse. Skrivning og læsning gennemføres ved hjælp af load og store instruktioner til bestemte adresser. Load henter en speciell adresse til en af CPU'ens registre, mens store flytter indholdet i et register til en angivet memory adresse. En typisk instruktion-eksekution cyclus på et system med Von Neuman arkitektur indebærere en fetch-decode-execute. Instruktionen hentes ind i CPU'ens instruktionsregister, instruktionen decodes og kan forårsage at parametre hentes ind fra RAM til andre registre i CPU'en. Efter udførelse af instruktionen kan data blive skrevet tilbage til RAM. Ideelt set, var programmer permanent opbevaret i RAM. Dette er imidlertid ikke muligt, da RAM er Datamatikeruddannelsen efterår 2005 Side 8 af 54

9 et volatilt medie der tømmes når der slukkes for systemet og fordi at RAM som regel ikke er stor nok til at opbevare alle programmerne. Derfor har alle systemer et sekundært medie i form af magnetiske diske hvor programmer og data opbevares og læses ind i RAM når de skal bruges. Andre medier til opbevaring af programmer og data er cdrom, cache memory, bånd etc. Hvert medie holder program og data, der kan hentes ind i RAM når de skal bruges. Den vigtigste forskellen er hastighed, pris, størrelse og mulighed for sletning/endring af de gemte data. Main memory CPU'ens egne registre og main memory er de eneste medier CPU'en har direkte adgang til. Der findes instrukser der tager memory adresser som parametre, men ingen instrukser der tager disk adresser. Dette betyder at data skal læses fra disken til memory for CPU'en kan få adgang til dem. For at tillade lettere adgang til I/O enheder anvender mange computersystemer memory-mapped I/O. I dette tilfælde knyttes områder i memory til device registre. Skrivning og læsning fra enheder forårsager flytning af data til og fra disse registrene. Memory mapping egner sig for bl.a. hurtige enheder, serie og parallelporten. CPU'en overfører data til og fra enheder ved at skrive til nogle få registre, der kaldes I/O porte. For at sende en datastrøm til en enhed, kan CPU'en bare overføre en byte til det aktuelle register. Enheden tømmer så registeret, og sætter et flag i device controlleren der informerer om at enheden er klar til at modtage mer. Denne processen gentages så til datastrømmen er slut. Hvis CPU'en continuerlig checker kontrol bit'en for at se om enheden er ledig, taler man om programmed IO. Hvis enheden derimod sender en interrupt når den er klar, er data overføringen interrupt driven. Registrene er som regel tilgængelige på en CPU cyklus og de fleste CPU'er kan udføre en eller flere simple instruktioner på en cyklus. Dette gælder imidlertid ikke RAM. For at hindre at CPU'en står inaktiv mens den venter på læsning fra RAM bruges en cache af hurtigere RAM mellem CPU'en og main memory. Datamatikeruddannelsen efterår 2005 Side 9 af 54

10 Operativsystemers struktur Operativsystemet fremskaffer et miljø hvordan man kan køre sine programmer. Designet av de forskellige operativsystemer er imidlertid forskellig. Det at designe et operativsystem er en stor opgave der må tage udgangspunkt i hvilke opgaver operativsystemet skal løse. System komponenter Byggingen af et operativsystem kan kun ske ved at dele det op i mindre, velafgrænsede opgaver eller dele med nøje definerede funktioner, input og output. Proces styring Et program er i sig selv en passiv størrelse, og kan ikke gøre noget med mindre det læses over i memory og udføres af CPU'en. En process kan defineres bl.a. som et kørende program med en program counter udførelsen af en proces sker sekventielt en instruktion ad gangen. Systemopgaver, som f.eks at sende et dokument til printeren eller håndtere I/O, er også processer. En proces kan betragtes som en arbejdsenhed i systemet. Systemet består af mange processer, hvoraf nogen er systemprocesser mens andre er brugerprocesser. En proces trenger visse ressourcer, memory, CPU tid, filer, I/O enheder etc. Disse ressourcerne gives enten ved opstart eller bliver allokeret under kørsel med parametre, f.eks. filnavn ved en filoperation. Ressourcerne tilbageføres til systemet når processen afsluttes. Operativsystem har følgende ansvar for afviklingen af processer: Skabe og slette processer Suspendere og genstarte processer Metode for proces synkronisering Metode for proces kommunikation Metode for håndtering af deadlocks Main memory management Memoryens struktur består af en lang række adresser der kan skives og læses fra. Memory er den eneste lagringsplads CPU'en har direkte adgang til. CPU'en henter instruktioner herfra og udfører dem (fetch-decode-execute). Hvis CPU'en skal behandle data der ligger på disken, må de først læses over i memory. For at bedre udnyttelsen af CPU'en og reducere responstid, må der ligge flere programmer i memory samtidig. Der findes mange algoritmer for memory behandling, de alle har sine stærke og svage sider. Valget af memory management er bl.a. harware bestemt da de forskellige algoritmerne kræver sin egen hardware understøttelse. Operativsystemet er ansvarlig for følgende i forbindelse med memory behandling: Kontrol over hvilke dele av memory der er i brug og af hvem Bestemme hvilke processer der skal læses ind i memory når der bliver ledig plads. Allokere og Deallokere memory efter behov. Datamatikeruddannelsen efterår 2005 Side 10 af 54

11 File management Filer kan gemmes på mange forskellige typer medier med hver sine egne karakteristika. Operativsystemet fremskaffer et ens grænsesnit til disse forskellige enheder ved at abstrahere fra disse karakteristika og skabe logiske lagringsenheder. Disse kan så tilgås ved hjælp af system kald. En fil er en samling af data defineret af den der har oprettet filen. Filer kan representere både programmer og data. De kan være formatteret til at opfylde et specielt formål elle ikke formateret i det hele taget, som f.eks. en tekstfil. Filbegrebet er et meget abstrakt begreb. Operativsystemet implementerer dette abstrakte begrebet ved at implementere de enheder der gemmer filerne. I tillæg har operativsystemet kontrol med hvem der ejer og har adgang til den enkelte fil. Operativsystemet har følgende ansvar for filbehandling: Oprette og slette filer Oprette og slette mapper Understøtte metoder for at manipulere filer og mapper. Flytte filer til sekundære lagringsenheder Backups af filer til non-volatile medier I/O system management Et af formålene ved et operativsystem er at skjule de enkelt hardware enheder for brugeren. I Unix er der et I/O subsystem der håndterer alle I/O enhder og som består af memory behandling der inkluderer buffering, caching og spooling, en generell device driver interface og drivere for en enkelte hardware enhed. Secondary storage management Programmer og data må befinde sig i memory for at CPU'en skal kunde eksekvere dem. Der er imidlertid ikke plads nok i memory til at opbevare alle programmer og data. Dessuden slettes indholdet i memory når der slukkes for systemet. Derfor opbevares programmer og data permanent på secondary storage i form af en harddisk eller andet media. Da sekundær lagringsplads bruges ofte er det vigtig at behandlingen af disse er så effektiv som mulig. Der findes forskellige algoritmer der kan håndtere dette. Operativsystemet sørger for følgende i forbindelse med sekundære medier:' Behandling af ledig plads Allokering af plads Disk schedulering Datamatikeruddannelsen efterår 2005 Side 11 af 54

12 Netværk Et distribueret system er et system med mange processorer der ikke deler memory, devices eller klokke. Hver processor har sin egen memory og systemklokke og de kommunikerer over netværk eller hurtige busser. Processorene i et distribueret system kan variere fra små mikrocomputere til store computere. Et distribueret system kan få fysiske separerte og forskellige systemer til at fremst samlet for brugeren der kan udnytte de ressourcer der findes i netværket. Operativsystemer behandler vanligvis netværksadgang som en slags fil adgang hvor detaljerne omkring netværket er gemt i enheder. Protokoller for distribuerede systemer er ftp, www, http etc Protection system Hvis et system understøtter flere brugere og flere samtidige processer er det nødvendig at beskytte disse for hverandre. Til dette formaålet har operativsystemet mekanismer der sørger for at filer, memory områder, CPU og andre ressourcer bare kan benyttes af en om gangen. Memory adresseringshardware sørger for at hver process får tildelt sit område i memory, timeren sørger for at hvis en proces får tildelt CPU tid, bliver den nødt til at afgive kontrol. Protection er enhver mekanisme der kontrollerer adgangen for processer og brugere til de ressourcer der er sat af til dem. Et system med fokus på sikkerhed, kan skelne mellem autoriseret og ikke autoriseret brug af systemet. Command interpreter system Et vigtig systemprogram for mange operativsystemer er kommandofortolkeren eller shell. Dette modtager og udfører systemkommandoer. Nogle operativsystemer har shelled indebyget i kernen, mens andre har det som et eget program UNIX og MS-Dos. Nogle operativsystemer starter op i shellet ved opstart, mens andre, som Windows og MacOs starter op i et grafisk miljø. Operativsystem services Akmindelige typer services som operativsystemet yder: Kørsel af programmer I/O operationer Manipulation af filsystem Kommunikation Fejl håndtering Funktioner til et operativsystem som sikrer effektiv drift af systemet Ressource allokering Logning, overvågning af ressource forbrug Sikkerhed Datamatikeruddannelsen efterår 2005 Side 12 af 54

13 System kald System kald giver en interface mellem processer og operativsystemet. Systemkald er som regel tilgængelige i form af assembler instruktioner, og findes i manualer for assembler programmering. Nogle systemer tillader system kald direkte fra høj niveau sprog, hvor de fremstår som funktions eller subrutine kald. Nogle pogrammeringssprog, som C, C++ og Perl, er designet for at erstatte assembler for system programmering. På Unix systemer kan systemkald udføres direkte fra et C eller C++ program. Under Windows er systemkald en del af Win32 API der er tilgængelig for alle acompilere der er skrevet for MS Windows. Java tillader ikke direkte systemkald fordi det kører ovenpå en Java Virtual Machine. Hvis et Java program har behov for et systemkald gøres dette via JVM, derer designet for de forskellige systemer og udfører system kald i henhold til disse. Systemkald er under java er implementeret i rutiner skrevet i C, og kaldes derfor for native methods. Systemkald kan groft deles op i 5 kategorier: 1. Proces kontrol end, abort Programmer må kunde afsluttes, enten normal(end) eller som resultat af en fejl(abort), og i så tilfælde sende en fejlmeddelse eller memory dump load, execute En kørende proces kan have behov for at hente (load) og eksekvere (execute) en anden proces. create, terminate proces Disse processerne kan så fortsætte parallelt, mange systemer har et specielt kald for dette (create process). Eller man har behov for at afslutte en proces der f.eks er blevet unødvendig (terminate proces) get/set proces attributter Man skal kunde ændre på en proces' egenskaber under kørsel, f.eks. ændre dens prioritet eller maksimalt tilladte kørselstid wait Sætte en process i venteposition wait event, signal event Sætte en process i venteposition mens den venter på at noget skal indtræffe, f.eks. en I/O operation, eller vente på et signal om at det den venter på er indtruffet alloker og frigiv memory 2. Fil manipulation create/delete fil open, close read, write, reposition Datamatikeruddannelsen efterår 2005 Side 13 af 54

14 get/set fil attributter 3. Enhedsbehandling anmod om/frigiv enhed Hvis en proces har behov for en I/O enhed, må den først anmode om den (request), og når den er ferdig skal den så frgigives igen så andre kan bruge den (release) read, write, reposition Når enheden så er allokeret, kan processen skrive (write), læse (read) og muligvis også repositionere enheden get/set enheds attributter monter/afmonter enhed 4. Vedligeholdelse af information Mange systemkald findes udelukkende for at overføre information mellem bruger programmer og operativsystemet. De fleste operativsystemer har kald for at få tid og dato. Ellers kan dette dreje sig om kald der returnerer ledig diskplads, antal brugere, operativsystemets version. get/set tid og dato get/set system data 5. Kommunikation Der findes to modeller for kommunikation mellem processer. Message-passing model og sharedmemory model. Ved meesage passing foregår kommunikation mellem processer ved at den ene proces sender en melding via kernen til den anden proces. Shared memory model går ud på at to eller flere processer har et fælles område i memory de begge kan skrive og læse til. Message passing er egnet til få og korte bekeder. Shared memory er sværere at implementere fordi det kræver en synchronisering af det mindeområdet der er fælles. Dessuden skal man sikre sig at processerne virkelig deler det samme område Begge metoderne er almindeligt brugt, og nogle operativsystemer bruger begge metoder. opret, slet kommunikationsforbindelse send, modtag meldinger overfør status information koble fra/til enheder System programmer Til de fleste operativsystemer kommer der en række systemprogrammer Filbehandling Programmer til at oprette, slette, kopiere, omdøbe, printe, liste, og manipulere filer og mapper. Datamatikeruddannelsen efterår 2005 Side 14 af 54

15 Status information Programmer til at hente data om systemet, som ledig dato, tid, diskplads, antal brugere, kørende processer etc og formattere dem og vise dem i en læsbar form. Ændring af filer Tekst editorer til ændring af filer Understøttelse af programmeringssprog' Compilere og assemblere for en række programmeingsprog. For nogle systemer skal dette købes separat. Load og eksekver programmer Absolute loaders, relocatable loaders, linkage editors, og overlay loaders samt debbugging software. Kommunikation Programmer som sørger for virtuelle forbindelser mellem processer, brugere, og andre computer systemer. De tillader brugere at sende meldinger til hinanden, til at gå på internettet, sende s, logge ind på en fjern computer eller overføre filer fra en maskine til en anden. I tillæg til disse kommer bruger applikationer. En vigtig del av et operativsystem er kommando fortolkeren der modtager en kommando fra brugeren og udfører den. Nogle kommandofortolkere, som MS Dos comman.com har alle kommandoerne indebygget, mens andre, som UNIX, bare tager en kommando med parametre og kører et selvstændigt program. Dette gør den nem at udvide, man lægger bare et program i en folde hvor fortolkeren kan finde den. Ulempen kan være at syntax er op til den enkelte programmør, noget der kan gøre systemet inkonsistent. Fordelen ved at implementere kommandoerne inde i kommandofortolkeren er så at man sikrer en enhetlig syntaks for hver kommando og at det går hutigere. Ulempen er så at det er sværere at udvide den. Operativsystemet, er fra brugerens synspunkt heller definert udfra system programmer og interface end systemkald. Et system med MS Windows og MS-Dos har et vidt forskellig bruger interface men benytter det samme sæt systemkald. Systemkaldene ser imidlertid anderledes ud, og brugeren føres væk fra de oprindelige systemkald. System struktur Et avanceret system som et moderne operativsystem må designes med omtanke for at fungere godt og kunde modificeres på en simpel måde. En almindelig måde at gøre dette på er ved at dele opgaven op i mindre deler heller end at have et stort monolitisk system. Simple structure Nogle systemer har ikke en vel afgrænset lagdeling i sin struktur. Dette gælder ofte systemer der startede som små systemer til begrænset hardware, og blev udvidet efterhånden som harwaren blev kraftigere. I MS-Dos er interfaces og de forskellige lag ikke godt afgrænset. Applikationsprogrammer har direkte adgang til grundlæggende I/O rutiner for skrivning til display og disk drev. Dette gør MS-Dos sårbar overfor dårlig skrevne programmer, men var et nødvendig kompromis for at give maksimal funktionalitet på begrænset hardware (Intel 8088) Datamatikeruddannelsen efterår 2005 Side 15 af 54

16 Det oprindelige UNIX har også lignende problemer. Det består af to separate dele, kernen og system programmerne. Kernen er yderligere opdelt i en række interfaces og enhedsdrivere der er blevet lagt til i årenes løb for at understøtte ny hardware. Dette har ført til at en stor mængde funktionalitet er blevet lagt i et lag kernen. Layered approach Indelingen af et system kan gøres på mange måder, og en af dem er lagdeling. Systemkomponenterne implementeres som lag der lægges ovenpå hinanden. Debugging sker fra bunden, hvor man kan gå ud fra at hardware er i orden. Dette indebærer at man altid kan lokalisere fejl, fordi laget under er debugget og fejlfrit. Den største vanskelighed ved lagdeling er en rigtig in deling i lag. Eftersom et lag kun har adgang til laget under er nøje planlægning vigtig. F. eks. driveren for diske må ligge lavere end memory management, da memory management bruger diskene som virtuel memory. Et andet problem med lagdeling er effektivivitet. Meldinger skal sendes mellem lagene og for hvert lag skal måske parametre ændres, noget der kan føre til et mindre effektivt system Microkernel Efterhånden som UNIX kernen voksede sig stor i løbet af 80-årene, blev der udviklet en modulariseret mikro kerne (Mach kernel). Alle mindre vigtige komponenter separeret fra kernen og blev implementeret som system og bruger programmer. Mikro kernens vigtigste funktion er at skabe kommunikation mellem klient programmerne og de andre services der kører i user space. Communication sker ved message passing. Hvis f.eks et klient program vil have adgang til en fil, må det henvende sig til filserveren. Dette sker aldrig direkte, men via kernen. Fordelen med dette er at det er nemt at udbygge systemet, og ændringer i kernen bliver ændringerne mindre fordi at kernen er lille. Mikro kernen giver også en højere sikkerhed da de fleste services kører som bruger- istedenfor som kerne processer. Hvis en service svigter, kan resten af systemet køre videre Virtual machines Begrebsmæssig er en computer bygget op lag, hvor hardware er det nederste lag. Derover ligger kernen der bruger hardware instruktioner til at lave et sæt med systemkald. Programmer kan enten henvende sig til hardware i form af systemkald eller harwareinstruktioner. På nogen systemer er denne lagdeling ført ril det næste logiske skridt, nemlig virtual machines. Ved at bruge CPU scheduling og virtuelt minde kan man det til at se ud som om hver proces har sin egen processor med sin egen (virtuelle) memory (IBM VM operativsystem). Den fysiske computer deler ressourcer ud på hver VM, CPU tid deles, og filsystmet skaber adgang til virtuelle printere etc. En vanskelighed ved design af et sådant system er fordeling af diskplads. Dette løses ved at operere med en minidisk for hver bruger ved at allokere diskplads til hver minidisk efter behov. Implementering Når VM skal implementeres, må der lægges meget arbejde i at sikre at der laves en nøjaktig kopi af den underliggende maskine. VM kan køre i to modus, user mode og monitor mode. Programmer kan kun udføres i user mode. En vsenetlig faktor er tid. En I/O operation kan tage længre eller kortere tid. Hvis informationen der skal flyttes er spool'et bruges der meget kort tid på I/O operationer. Hvis dette ikke er tilfælde tager I/O operationer længre tid, fordi VM skal kommunikere med hardware gennem Datamatikeruddannelsen efterår 2005 Side 16 af 54

17 mange led. Hvis CPU'en skal servicere mange samtidige VM, kan systemet blive meget langsommere hvis alle instruktionerne skal simuleres for at skabe ægte virtual machines. Fordele Et system med Wm har flere fordele. Hver virtuel maskine kører fuldstendig separat, noget der eliminerer sikkerhedsproblemer. På den anden side er der heller ingen kommunikation. Dette løses ved at flere VM kan deles om en minidisk. Dessuden er det mulig at sætte op et virtuelt netværk mellem de virtuelle maskinerne. Vedligehold på systemet kan udøres på en virtuel maskine, noget der giver meget lidt afbrud i driften pga vedligehold. Virtual machines bruges i dag for at løse problemer med kompabilitet. Man kan f.eks lave en MS-Dos virtual machine så man kan køre dos programmer under helt andre operativsystemer på en heæt anden arkiktektur end dos er skrevet til (i386). Java Java består af tre grundlæggende komponenter 1. Programming language specifikation Java kan bedst beskrives som et objektorienteret, ikke afhængig af arkitektur, distribueret og multi trådet programmeringsprog. Java kode kompileres til class filer der består af byte code. Endvidere kan man i java lave applets der kan køres fra en webbrowser. 2. Applikationer programming interface (API) Javas API består af en base API og en standard extension API. Base består af understøttelse for grundlæggende grafik, netværk, I/O og utilities. Standard extension indeholder udover dette støtte for kommercielle produkt, sikkerhed oh media. 3. Virtual machine specifikation JVM er specifikationer for en abstrakt computer. JVM består af en class loader og en java interpreter der udfører byte code. Java platformen består af JVM og og Java API og kan køre ovenpå mange forskellige operativsystemer, som en del af en web browser eller i hardware En instans af JVM skabes for hver java program eller applet der startes, eller for hver gang en main() metode startes. Implementationen af selve platformen er speciel for det enkelte system, men selve java programmet kan køre på en hvilken som helst JVM. Javas udviklings milieu består af et compile time enviroment og et run time enviroment Datamatikeruddannelsen efterår 2005 Side 17 af 54

18 Processer En proces er et kørende program, enten det er et bruger program eller en tjeneste der kører på systemet. Hvis der kører flere instanser af et program regnes alle instanserne for en selvstændig proces. Proces status En proces ændrer status under kørselen. En proces' status defineres ud fra aktiviteten til processen New processen oprettes Running Processen køres Waiting Processen venter, f.eks. på fuldførelsen af I/O eller en underproces. Ready Processen er klar til at fortsætte, f.eks efter fuldførelse af I/O, og venter på CPU tid Terminated Processen er færdig og afsluttes Diagram over proces status Datamatikeruddannelsen efterår 2005 Side 18 af 54

19 Proces Control Block (PCB) Hver proces er repræsenteret i operativsystemet med en proces control block PCB, eller task control block. PCB'en indeholder alle informationer om en proces, så de kan bruges når processen en gang bliver læst ind for videre eksekvering Pointer Process state Pointer Peger på næste PCB i ready køen Process state Status kan være new, ready, running, waiting etc Process number Processen unikke nummer (PID) Program counter Peger på den næste instruktion der skal udføres CPU Registre Indholdet af CPU'ens indhold, dvs registre, akkumulatorer, stack pointer etc CPU scheduling information Oplysninger som processens prioritet, pegere til scheduler køer og andre parametre for schedulering Memory management information Oplysninger om tilladt forbrug af memory, page tables etc Accounting information Hvor mange ressourcer processen har brugt, CPU tid, real time, time limits, account numbers, underprocesser etc. I/O status information En liste over I/O enheder, åbne filer etc der er tilknyttet processen. Process scheduling Process number Program counter Registre Memory limits List of open files Formålet med multi programmering er at der altid kører en proces for at maksimere udnyttelsen af CPU'en. Målet med time sharing er at bytte mellem processer så ofte at brugere kan interagere med programmer mens de kører. For et system med en CPU, vil kun en proces køre ad gangen, de andre må vente til CPU'en bliver ledig så de kan rescheduleres. : : Datamatikeruddannelsen efterår 2005 Side 19 af 54

20 Scheduling queues Eftersom processer oprettes, bliver de placeret i en job kø. Processer der befinder sig i main memory og er klare til at blive kørt placeres i ready køen. Køen er som regel implementeret som en linked list. En ready queue header indeholder en pointer til den første og sidste PCB. PCB'en indeholder en pointer til næste PCB i ready køen. Processer der venter på en I/O enhed, bliver placeret i en device queue. Hver enhed i systemet har sin egen device queue. En ny proces placeres i ready queue, hvor den venter på at blive dispatched, dvs blive kørt. Når processen kører kan en af flere ting indtræffe Processen anmoder om en enhed og bliver placeret i device queue Processen opretter en underproces og venter på at den skal blive færdig. Systemet modtager en interrupt, og processen bliver afbrudt og sendes tilbage til ready queue. I de to første tilfælderne bliver processerne sendt tilbage til ready køen når se events de venter på er færdige. Schedulers En proces flyttes mellem de forskellige scheduling køerne i løbet af sin livs cyklus. Operativsystemet må vælge fra disse køerne. Denne udvælgelsen foretages af en scheduler. Man taler om tre typer schedulers 1. Short term scheduler Tager processer fra ready køen og dispatcher dem. Denne scheduleren må arbejde så hurtig som mulig, da den skal dispatche mange processer pr sekund kører mindst en gang pr 100 millisekund. Jo længere tid et context switch tager, jo mere CPU tid bruges på context switch i stedet for de opgaver CPU'en skal løse 2. Long term scheduler Vælger processer fra alle åbne processer, loader dem i memory og sætter dem i ready køen. Denne scheduleren behøver ikke at være så hurtig, da den ikke skal køre så ofte. Udvælgelsen af processer er imidlertid meget vigtig her. Der skal altid være en blanding af processor tunge og I/O tunge processer i ready køen. Hvis der bliver ubalance her, får man en ophobning enten i ready køen eller device køerne. 3. Intermediate scheduler Nogle operativsystemer har en intermediate scheduler. Dennes opgave er at flytte processer fra memory til til sekundært memory for at mindske graden af multi programmering (swappe). Når aktivitet på systemet bliver lavere, flyttes processerne tilbage til memory så de kan køre færdig. Swapping kan være nødvendig for at balancere processerne i køen, eller frigive memory hvis dette er nødvendig Datamatikeruddannelsen efterår 2005 Side 20 af 54

21 Context switch Det at skifte den kørende proces indebærer at alle data omkring den kørende proces skal gemmes, og den nye processen loades. Dette gælder alle data, indhold i registre, pointere, status etc. Disse data gemmes i processens PCB blok. Dette er en context switch. Tiden en context switch tager er afhængig af hardware understøttelse. SPARC processoren har flere sæt registre, og context switch sker ved at ændre en pointer. Hvis der er flere processer end register sæt, kan context switch selvfølgelig ske på den konventionelle måde. Process creation En proces kan, ved hjælp af systemkaldet create proces starte flere nye processer. Processen der skaber en ny proces kaldes parent og den nye processen kaldes child. Hver proces behøver ressourcer i form af CPU tid, memory, filer, I/O enheder etc. For nogle systemers vegne tildeles child processer ressourcer fra parents egne ressourcer. På denne måden kan man begrænse antal child processer pr proces og på den måden forhindre overbelastning af systemet. Der er også forskel i måden systemer opretter nye processer på. Nogen systemer laver en kopi af parent processen der så kan overskrives med et andet program, mens andre starter en ny proces med program navn. Process termination En proces afsluttes normalt efter udførelsen af sidste instruktion ved at processen beder om at blive slettet ved hjælp af systemkaldet exit. Hvis processen skal returnere data til parent proces sker dette ved systemkaldet wait. En proces kan stoppe en anden proces med systemkaldet terminate, men dette er som regel begrænset til at parent processer kan standse en child proces. Mange systemer tillader ikke child processer at køre videre hvis parent processen bliver afsluttet cascading termination. Cooperating processes Parallelt kørende processer kan være samarbejdende eller uafhængige. En proces er uafhængig hvis den ikke kan påvirke eller blive påvirket af andre processer. Uafhængige processer kan heller ikke udveksle informationer. Samarbejdende processer kan både påvirke hinanden og udveksle informationer. Dette kan være nødvendig af bl.a. følgende årsager: Udveksling af information Eftersom brugere kan ønske at dele en ressource, f.eks. en fil må man sørge for samtidig adgang Hastighed Hvis nogle opgave skal kunde afvikles hurtigere, må kan dele den ud på flere processer. Dette kan dog kun gøres hvis systemet har flere CPU'er eller I/O kanaler Modularitet Man kan ønske at dele systemet op i moduler hvor man deler system funktioner ud til flere processer. Praktisk En enkel bruger er interesseret i at udføre flere opgaver samtidig, f.eks editere, printe og kompilere samtidig. En måde processer kan samarbejde på er ved producer-consumer modellen. En proces producerer data som bruges af en anden, f.eks et print program der producerer tegn der sendes videre til printer Datamatikeruddannelsen efterår 2005 Side 21 af 54

22 driveren. For at gøre dette muligt, må man have en buffer, som produceren fylder og consumeren henter data fra. Producer og consumer må være synkroniseret så consumer ikke kan hente data før de er produceret Unbounded producer-consumer lægger ingen begrænsninger på bufferens størrelse, noget der er tilfælde ved bounded producer-consumer. I dette tilfælde må produceren vente hvis bufferen er fuld og consumeren må vente hvis bufferen er tom. Datamatikeruddannelsen efterår 2005 Side 22 af 54

23 Tråde En tråd kaldes også en lætvegts-proces og er en enhed der udnytter CPU'en. En tråd har sin egen thread ID, program counter, et register sæt og en stack. Den deler, sammen med andre tråde, sin kode sektion, data sektion og ressourcer, som åbne filer og signaler, der tilhører den processen dr har oprettet dem. Mange applikationer benytter tråde til forskellige formål. En net læser kan have en tråd til at vise indholdet på skærmen, en til at hente data fra netværket osv. Applikationer der skal køre mange instancer af en opgave samtidig kan benytte tråde til dette. F.eks. en web server der servicerer mange samtidige brugere. Da Java ikke understøtter asynkron behandling, bruger man tråde i Java for at få samtidig udførsel af opgaver. Fordele 1. Responsiveness Multithreading af interaktive applikationer tillader programmet at køre videre selvom det pålægges tunge eller tidkrævende operationer. Dette giver en hurtigere responstid. 2. Deling af ressourcer Tråde deler de ressourcer der er allokeret til den proces der har oprettet dem. Deling af kode tillader en applikation at have flere tråde i samme adresse rum. 3. Økonomisk forbrug af ressourcer Allokeringaf memory og ressourcer er kostbart. Eftersom tråde deler ressourcer er de mere økonmiske og hurtigere i context switch. I Solaris tager en context switch ca 30 gange så lang tid som at oprette en tråd. 4. Udnyttelse af multi processor arkiktektur Hver tråd kører på en parallelt på hver sin processor. På en single processor arkitektur byttes det så hurtig mellem tråde at det ser ud som om de kører parallelt, selvom bare en kører ad gangen. User og kernel tråde User threads User threads understøttes udenom kernen i form af biblioteker.drmed er du hurtige at oprette, men hvis kernen er single threaded vil en låst tråd betyde at systemet bliver låst. Kernel threads Kernel threads er direkte understøttet af kernen, både oprettelse, schedulering og kontrol. Dette gør kerne tråde langsommere at oprette og køre. Hvis en tråd bliver blokkeret, kan kernen schedulere en anden. Datamatikeruddannelsen efterår 2005 Side 23 af 54

24 Multi threading models Der findes 3 modeller for multi threading: Many to one model, One to one model og many to many model. Datamatikeruddannelsen efterår 2005 Side 24 af 54

25 Tråde i Java Alle Java programmer består af mindst en tråd, der startes med main() metoden. Der er to måder at oprette tråde i Java 1. Oprette en klasse der er en underklasse til Thread klassen i Java. For at oprette selve tråden oprettes et objekt af klassen. Kald af metoden start() sætter tråden i ready køen, hvor den vil blive kørt. 2. Oprette en klasse der implementeret Runnable interfacet. For at oprette selve tråden oprettes et objekt af klassen. Derefter oprettes en tråd (Objekt af klassen Thread) der tager vore nye objekt der implemementerer Runnable som parameter. Kald af metoden start() sætter tråden i ready køen, hvor den vil blive kørt. Tråd behandling Java tilbyder bl.a. følgende API for behandling af tråde: suspend() - Deprecated. Standser den kørende tråd. sleep(int tidsperiode) Standser den kørende tråd i en given tidsperiode resume() - Deprecated Genstarter en suspenderet tråd. stop() - Deprecated Standser kørselen af en tråd. En tråd der er blevet standset med stop(), kan ikke genstartes med resume() eller start(). En tråds tilstande 1. New Dette er den tilstand en tråd er i når den er oprette ved hjælp af new(). 2. Runnable Når start() kaldes, bliver der allokeret memory i JVM for den nye tråden og tråden run() metode bliver kaldt. JVM skelner ikke mellem en tråd der skal til at kør og en tråd der kører. En kørende tråd er stadigvæk i status runnable. 3. Blocked En tråd blokkeres hvis der kaldes en kommando for dette, dvs. suspend() eller sleep(). En I/O operation der afbryder tråden gør også tråden blocked. 4. Dead En tråd går over til status dead enten ved kald af stop() metoden eller fordi trådens run() metode er Datamatikeruddannelsen efterår 2005 Side 25 af 54

26 færdig. Tråde i JVM I tillæg til Java programmer med forskellige tråde, kører JVM flere asynkrone tråde der står for JVM's systemopgaver. Dette er tråde til f.eks Garbage collection Timeren, der f.eks. tæller cyckler til sleep() metoden En der tager sig af grafiske hændelser, som klik på en knap i et vindue etc. Nogle tråde oprettes eksplicit af Java programmet andre af JVM. JVM og værtens operativsystem JVM implementeres vanligvis ovenpå operativsystemet. Dette gør det mulig for JVM at skjule detaljerne omkring implementeringen på det specifikke operativsystem og skabe et konsistent og abstrakt miljø der tillader Java programmer at køre på enhver platform der understøtter Java. Specifikationerne til JVM siger ikke noget om hvordan tråde implementeres i det underliggende system. Dette bestemmes for hver platform JVM implementeres på. En Java tråd er typisk en user level tråd, hvor JVM er ansvarlig for kontrol af den. Wndows NT bruges one-to-one modellen, hvorfor JVM på Windows NT knyttes til en kerne tråd. På Solaris implementeres JVM som many to many Datamatikeruddannelsen efterår 2005 Side 26 af 54

27 CPU Scheduling - Basic concepts Formålet med multiprogramming er at holde en af processerne kørende hele tiden for at sikre maksimal udnyttelse af CPU'en. I et system med en CPU, kan kun en proces køre om gangen, mens de andre er i kø. En proces kører indtil den er nødt til at vente på noget, f.eks. at en I/O operation skal blive færdig. I et simpelt system ville CPU'en vente dvs at CPU til vil gå til spilde. Med multi programmering vil en anden proces blive startet i ventetiden. Flere processer gemmes i memory og er klare til at blive kørt hver gang en proces må vente, står en anden klar til at blive kørt CPU-I/O burst cycle En proces kører normalt i cykler, der veksler mellem CPU tid, CPU burst, og IO, IO burst. En kørende proces veksler mellem mange korte CPU bursts og færre, men længere IO bursts. load vent store increment vent load store store på IO index på IO add store... read from file write to file read from file CPU burst I/O burst CPU burst I/O burst CPU burst... CPU scheduler Når CPU'en bliver ledig, henter operativsystemet en proces fra ready køen. Der findes mange alhoritmer for udvelgelse af processer, men der er CPU schedulerens opgave at vælge en proces. Preemptive scheduling CPU scheduling finder sted under følgende omstændigheder: 1. Den aktive proces går til wait status, f.eks. for at vente på I/O eller at en child proces skal blive færdig. 2. Når en proces går fra running til ready, f.eks. fordi der kommer et interrupt. 3. Når en proces går fra wait til ready, f.eks. fordi at en I/O operation er færdig. 4. Når en proces afsluttes. For punkt 1 og 4 er der ikke tale om preemptive scheduling, men nonpreemptive eller cooperative scheduling, en ny proces må scheduleres. For punkt 2 og 3, er der imidlertid flere muligheder. Under nonpreemptive scheduling vil en kørende proces køre indtil den bliver afslutte eller går over i wait tilstand. Under preemptive scheduling bliver an proces afbrudt for at give plads til andre ventende processer. Dette er en vanskeligere opgave, da den kræver at en proces bliver afbrudt i det rigtige øjeblik. En proces må f.eks. ikke kunde afbrydes mens den opdaterer vigtige systemdata som f.eks en I/O kø. Dispatcher En anden vigtig komponent ved CPU scheduling er dispatcheren. Dette er den modul som overgiver Datamatikeruddannelsen efterår 2005 Side 27 af 54

28 kontrollen til den proces der valgt til at blive kørt. Dette indebærer følgende operationer: Switching context Skift til user mode Gå til det rigtige sted i programmet og start det på nyt. Dispatcheren må være så hurtig som mulig eftersom det køres for hver gang der skiftes proces. Tiden det tager dispatcheren at stoppe en proces og starte den nye kaldes dispatch latency. Schedulerings alogritmer First come, First-served Dette er den enkleste af alle algoritmer. Den processen der beder om CPU'en først, får den allokeret først. F.eks. hvis man har en CPU tung proces og mange I/O tunge, vil den ene holde processoren for de andre. Shortest job first scheduling Denne algoritmen beregner længden på processernes næste CPU burst, og den processen med den mindste allokeres CPU tid. Denne algoritmen giver mindst ventetid, da den gennemsnitlige ventetid går ned. Det største problemet med denne algoritmen er at beregne længden på næste CPU burst. Priority Scheduling SJFS-algoritmen er en variant af denne. En prioritet tilknyttes hver proces, den proces med højest prioritet allokeres CPU tid. En SJFS-algoritme er bare en prioritet algoritme hvor næste CPU burst er en omvendt prioritet. Prioritets scheduling kan både være preemptive eller non-preemprive. Når en proces kommer i køen sammenlignes dennes prioritet med de øvrige. Hvis den nye processen har højere prioritet end den der kører, kan den kørende blive afbrudt til fordel for den nye. Et problem med prioritet scheduling er indefinite blocking eller starvation. Dette kan løses ved aging. Dette er en teknik hvor man gradvis øger processers prioritet, så de ikke bliver liggende i kø i det uendelige. Round-Robin scheduling Denne algoritmen er udviklet specielt til time-share systemer. Den ligner FCFS, men der er lagt til preemption, så der kan skiftes mellem processerne. RR scheduling må ha en proces kø der er en FIFO kø. Scheduleren vælger den første på listen. Hvis denne kun varer en tidsenhed bliver den kørt, men hvis den varer længre, bliver den afbrudt med et interrupt og den næste i køen bliver scheduleret. Den afbrudte proces placeres så bagerst i køen. Datamatikeruddannelsen efterår 2005 Side 28 af 54

1 Operativsystemer oversigt

1 Operativsystemer oversigt 1 Operativsystemer oversigt Hvorfor OS virtualisering Abstraktion (processer, virtual hukommelse, filer) Kernel mode og user mode Systemkald (slide 31) Interrupts At levere en simplere model af computeren

Læs mere

Design Systemkald. User-mode Linux, The Linux kernel/325-2004

Design Systemkald. User-mode Linux, The Linux kernel/325-2004 Tracing tråden afbryder systemkaldet via ptrace Systemkaldet til værten ændres til getpid Processens stak manipuleres til at kalde kernen Kernen returnerer til processen Design Systemkald Design Startup/shutdown

Læs mere

Processer og tråde. dopsys 1

Processer og tråde. dopsys 1 Processer og tråde dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne) hhv. små systemer: Multiprogrammering og time-sharing (fra 60 erne og frem): dopsys

Læs mere

Sider og segmenter. dopsys 1

Sider og segmenter. dopsys 1 Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den

Læs mere

Principper for Samtidighed og Styresystemer

Principper for Samtidighed og Styresystemer Principper for Samtidighed og Styresystemer kursusintroduktion og Introduktion til Styresystemer René Rydhof Hansen Februar 2008 PSS 08 (Forelsning 00) Kursus intro./intro. styresystemer Februar 2008 1

Læs mere

Planen for idag. Datalogi 1F Forår 2003. Hvad er en proces? Livscyklus for en proces. Hvad består en proces af?

Planen for idag. Datalogi 1F Forår 2003. Hvad er en proces? Livscyklus for en proces. Hvad består en proces af? Datalogi 1F Forår 2003 OS[2]: Processor, tråde og skedulering Jørgen Sværke Hansen Planen for idag Processer: Procesbegrebet Processkift Processers familieliv Kommunikerende processer Tråde En lettere

Læs mere

Sider og segmenter. dopsys 1

Sider og segmenter. dopsys 1 Sider og segmenter dopsys 1 Lokal vs global sideallokering (1) Med (a) som udgangspunkt giver (b) lokal hhv. (c) global allokering forskellige resultater dopsys 2 Lokal vs global sideallokering (2) Den

Læs mere

Operativsystemer of C Efterår 2013 Virtuel hukommelse (kap. 9)

Operativsystemer of C Efterår 2013 Virtuel hukommelse (kap. 9) Operativsystemer of C Efterår Virtuel hukommelse (kap. 9) 8// Planen for idag q Virtuel hukommelse. q Demand paging / page faults. q Sideudskiftningsalgoritmer. q Rammeallokering til processer. Ø Øvelser:

Læs mere

Algorithms & Architectures II

Algorithms & Architectures II Algorithms & Architectures II Algorithms & Architectures II Jens Myrup Pedersen Hans Peter Schwefel Kursusholdere Dagens lektion Overordnet mål: At etablere en forståelse for hvordan hardware og hardwarearkitekturer

Læs mere

Styresystemer og tjenester

Styresystemer og tjenester Styresystemer og tjenester Indhold: 1. Introduktion til styresystemer. 2. Processer og tråde. 3. Synkroniseringsmetoder og InterProcesCommunikation. 4. Memory management. 5. I/O og devicedrivere. 6. Filsystemer.

Læs mere

Implementation af Koordinering. dopsys 1

Implementation af Koordinering. dopsys 1 Implementation af Koordinering dopsys 1 Oversigt: Impl. af koordinering Begreber: Kritiske regioner Gensidig udelukkelse Synkroniseringsprimitiver: Binære semaforer / mutexes Tællesemaforer Betingelsesvariabler

Læs mere

Scheduling. Niels Olof Bouvin. Institut for Datalogi Aarhus Universitet

Scheduling. Niels Olof Bouvin. Institut for Datalogi Aarhus Universitet Scheduling 1 Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Tråde og deres indbyrdes forhold Sidste gang så vi på, hvorledes tråde kan skabes, og hvordan man kan skifte imellem dem I dag ser

Læs mere

Lærebog. Datalogi 1F Forår 2003. Hvad sker hvornår? Kursusbøger. Planen for idag. Hvad er et operativsystem

Lærebog. Datalogi 1F Forår 2003. Hvad sker hvornår? Kursusbøger. Planen for idag. Hvad er et operativsystem Lærebog Datalogi 1F Forår 2003 Operativsystemer og multiprogrammering Jørgen Sværke Hansen Silberschatz, Galvin, Gagne: Operating System Concepts, 6. udgave (med Windows XP opdatering) Har I 6. udgave

Læs mere

Schedulering. dopsys 1

Schedulering. dopsys 1 Schedulering dopsys 1 Re: Schedulering af processer.. administration af CPU-resursen. Ready List (RL) list af processer i ready_a tilstand. dopsys 2 Re: Schedulering af processer.. administration af CPU-resursen.

Læs mere

Schedulering. dopsys 1

Schedulering. dopsys 1 Schedulering dopsys 1 Re: Schedulering af processer.. administration af CPU-resursen. Ready List (RL) processer i ready_a, ready_s, eller running tilstand. dopsys 2 Re: Schedulering af processer.. administration

Læs mere

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner Virtuel PC Fordele/ulemper Fordele: Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner Ulemper: Reserverer RAM (Windows 7) Problemer med at ureglementeret lukke ned Mister

Læs mere

Multiprogrammering og operativsystemer i Danmark 1967-75

Multiprogrammering og operativsystemer i Danmark 1967-75 Multiprogrammering og operativsystemer i Danmark 1967-75 Søren Lauesen IT-University of Copenhagen E-mail: slauesen@itu.dk http://www.itu.dk/people/slauesen/ Marts 2010 2. Interrupt - multiprogrammering

Læs mere

Styresystemer og tjenester

Styresystemer og tjenester Styresystemer og tjenester Indhold: 1. Introduktion til styresystemer. 2. Processer og tråde. 3. Synkroniseringsmetoder og InterProcesCommunikation. 4. Memory management. 5. I/O og devicedrivere. 6. Filsystemer.

Læs mere

Database "opbygning"

Database opbygning Database "opbygning" Dette områder falder mest under en DBA's ansvarsområde. Det kan sagtens tænkes at en database udvikler i nogle situationer vil blive nød til at oprette produktions og test) databaser,

Læs mere

Typisk PC arkitektur. Synkronisering ved aktiv venten

Typisk PC arkitektur. Synkronisering ved aktiv venten Oversigt I/O arkitektur Kommunikation mellem processor og ydre enhed Brugerprocessers adgang til I/O Strukturen af kernens I/O del Ydelse Typisk C arkitektur Kontrol af ydre enheder De ydre enheder styres

Læs mere

Input/Output: Disk & Clock. dopsys

Input/Output: Disk & Clock. dopsys Input/Output: Disk & Clock dopsys Magnetiske diske Spiller en vigtig rolle for mange typer computere Persistens, lagringstæthed, pris, hastighed, holdbarhed, fejltyper,...: OK! Afgørende for opstart (tungt

Læs mere

\ \ Computerens Anatomi / /

\ \ Computerens Anatomi / / HTX Roskilde - mat-it-prog, 1.4 \ \ Computerens Anatomi / / Introduktion En PC ( personlige computer ) eller computer er bygget op af forskellige komponenter. Vi vil hermed gennemgå størstedelen af computerens

Læs mere

Routing tables Processer Tråde Hukommelse. Operativsystemer og netværk Lektion 5. I/O Linux Debian Webserver

Routing tables Processer Tråde Hukommelse. Operativsystemer og netværk Lektion 5. I/O Linux Debian Webserver Routing tables Processer Tråde Hukommelse Operativsystemer og netværk Lektion 5 I/O Linux Debian Webserver Routing tables Den vej noget tager gennem netværket Routing tables Som en netværksadministrator,

Læs mere

Arduino Programmering

Arduino Programmering Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået

Læs mere

Styresystemer og tjenester

Styresystemer og tjenester Styresystemer og tjenester Indhold: 1. Introduktion til styresystemer 2. Processer og tråde 3. Synkroniseringsmetoder og IPC 4. Memory management 5. IO og devicedrivere 6. Analyse og design af embedded

Læs mere

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt

Læs mere

Koordinering. dopsys

Koordinering. dopsys Koordinering At indføre flertrådethed (1) når tråde tages i brug opstår typisk konflikter (et velkendt eksempel er errno ) 2 At indføre flertrådethed (2) en del konflikter kan afhjælpes med thread-local

Læs mere

Interconnect. Front end interface

Interconnect. Front end interface Direct Remote Access to Devices (DREAD) Introduktion These Metode Baggrund Prototypen Resultater Konklusioner Kritik og fremtidigt arbejde 5. december 2000 Direct Remote Access to Devices slide 1 Klynger

Læs mere

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations

Læs mere

Principper for Samtidighed og Styresystemer

Principper for Samtidighed og Styresystemer Principper for Samtidighed og Styresystemer Kursusgang 12: Device drivere mt@cs.aau.dk Ph.D.-studerende Distribuerede og Indlejrede Systemer Institut for Datalogi Aalborg Universitet 17. maj 2010 Intro

Læs mere

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm. Computer Literacy Computer Literacy handler om at forstå hvad computer (hardware) og software kan gøre. Denne præsentation fokuserer kun på hardware februar 2002 Computerliteracy -hardware (15 dias) 1

Læs mere

Jobliste overblik

Jobliste overblik Kompakt Jobliste. Du kan starte Jobliste på mange måder. Du kan højreklikke på start knappen eller på proceslinjen, og vælge Jobliste i menuen, der kommer til syne. Du kan også åbne Jobliste med genvejstaster

Læs mere

Lageret i maskinarkitekturen. Beregningsenhed, lagre (registre, RAM, disk), ydre enheder

Lageret i maskinarkitekturen. Beregningsenhed, lagre (registre, RAM, disk), ydre enheder Lageradministration Lageret i maskinarkitekturen Beregningsenhed, lagre (registre, RAM, disk), ydre enheder Abstraktion over typerne: et hierarki En maskine har fl ere forskellige lagre Operativsystemet

Læs mere

Filsystemer: Implementation. dopsys

Filsystemer: Implementation. dopsys Filsystemer: Implementation 1 Hvor lagres filer?... filer lagres typisk på en harddisk...... head, track, sector, cylinder... Rotationshastighed fx 10000 RPM, Læse/skrivehast. 50 MB/s 2 Adgang til harddisken

Læs mere

Lageradministration Paging og segmentering

Lageradministration Paging og segmentering Lageradministration Paging og segmentering 1 Re: Logiske/fysiske adresser... Proces-struktur = kode og data for en proces 4G En proces tilgår sin proces-struktur via et logisk/virtuelt adresserum, fx 0,

Læs mere

3. Computerens opbygning.

3. Computerens opbygning. 3. Computerens opbygning. Computere er konstrueret med henblik på at skulle kunne behandle og opbevare data og det er de som nævnt i noterne om Bits og Bytes vældig gode til. Som overordnet model for computere

Læs mere

Lageradministration. dopsys

Lageradministration. dopsys Lageradministration 1 Lageret i maskinarkitekturen Beregningsenhed, lagre (registre, RAM, disk), ydre enheder 2 Abstraktion over typerne: et hierarki En maskine har flere forskellige lagre Operativsystemet

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen

Læs mere

Gem dine dokumenter i BON s Content Management System (CMS)

Gem dine dokumenter i BON s Content Management System (CMS) 24. august 2007 Gem dine dokumenter i BON s Content Management System (CMS) INDHOLDSFORTEGNELSE 1. Indledning... 2 2. Se indholdet i dit Content Management System... 3 3. Tilgå dokumenterne i My Content

Læs mere

Operativsystemer - dopsys

Operativsystemer - dopsys Operativsystemer - dopsys Erik Ernst eernst@cs.au.dk dopsys 1 Q/A Mange deltagere er nu på 2. år af datalogistudiet, med dcomnet 1 for år siden Er din baggrund anderledes? dopsys 2 Praktiske oplysninger

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0 Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS

Læs mere

Instruktioner i installation og afinstallation af Windows PostScript- og PCLprinterdrivere

Instruktioner i installation og afinstallation af Windows PostScript- og PCLprinterdrivere Instruktioner i installation og afinstallation af Windows PostScript- og PCLprinterdrivere version 8 Denne fil med vigtige oplysninger indeholder en vejledning til installation af Custom PostScript- og

Læs mere

Opgradere fra Windows Vista til Windows 7 (brugerdefineret installation)

Opgradere fra Windows Vista til Windows 7 (brugerdefineret installation) Opgradere fra Windows Vista til Windows 7 (brugerdefineret installation) Hvis du ikke kan opgradere computeren, som kører Windows Vista, til Windows 7, så skal du foretage en brugerdefineret installation.

Læs mere

COMPUTER ANATOMI. 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE

COMPUTER ANATOMI. 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE COMPUTER ANATOMI 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE 1 Indholdsfortegnelse Kapitel 1: Opbygning s.2 Kapitel 2: CPU s.3 Kapitel 3: Motherboard s.4 Kapitel 4: Ram s.6 Kapitel 5: Grafikkort s.7 Kapitel

Læs mere

Sådan logger du ind... 2 Hvilke mapper kan du tilgå... 3 Visning af eksempel af en fil... 5 Sådan deler du en fil... 7 Se hvad du deler med andre...

Sådan logger du ind... 2 Hvilke mapper kan du tilgå... 3 Visning af eksempel af en fil... 5 Sådan deler du en fil... 7 Se hvad du deler med andre... Sådan logger du ind... 2 Hvilke mapper kan du tilgå... 3 Visning af eksempel af en fil... 5 Sådan deler du en fil... 7 Se hvad du deler med andre... 9 Offline synkronisering... 11 Klienter til mobile enheder...

Læs mere

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java

Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter

Læs mere

PBX Online Brugervejledning www.pbxonline.dk

PBX Online Brugervejledning www.pbxonline.dk PBX Online Brugervejledning www.pbxonline.dk Indledning PBX Online er dit personlige omstillingsanlæg som ikke kræver noget fysisk udstyr installeret i dit firma. Du styrer det hele via din web browser.

Læs mere

Systemkald DM14. 1. Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111

Systemkald DM14. 1. Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111 DM14 1. Obligatoriske opgave Systemkald Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/3-2004 Afleveret af: Jacob Christiansen, 130282-2111 Side 1 af 5 Intro: Formålet med opgaven at et lave en system kald

Læs mere

Uniprocessor Scheduling

Uniprocessor Scheduling Uniprocessor Scheduling Chapter 9 E&CE 354: Processes 0 Processor Scheduling Main OS concern: allocation of resources to processes CPU is a key resource; processor scheduling is concerned with its allocation

Læs mere

1. Forklar sammenhængen mellem sektor, spor (track) og cylinder.

1. Forklar sammenhængen mellem sektor, spor (track) og cylinder. Harddisken Baggrundslageret 1. Diskstruktur* 2. Skemalægning* 3. Diskforvaltning 4. Swap forvaltning 5. Diskpålidelighed (RAID) 6. Vedholdenhed % 7. Arkiveringslager En kø pr. fysisk disk, fordi der kan

Læs mere

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet. MOX og APOS2 Forord Dette dokument er en del af APOS version 2 manualerne. APOS version 2 (APOS2 herefter) er et organisation, klassifikation og personale system baseret på Sag & Dokument standarderne.

Læs mere

Virtuel Hukommelse. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Virtuel Hukommelse. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Virtuel Hukommelse 1 Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Oversigt Formålet med virtuel hukommelse Organisering af virtuel hukommelse Håndtering af virtuel hukommelse 2 Minimal computerarkitektur

Læs mere

Processer og koordinering

Processer og koordinering Processer og koordinering.. fortsat dopsys 1 Betingelsesvariabler (Condition variables).. hukommelsesløs variant af semaphorer: Atomare operationer: Signal bruges til at sende et signal. Wait bruges til

Læs mere

Installationsguide IBM Tivoli Storage Manager for Databases Data Protection for Microsoft SQL Server

Installationsguide IBM Tivoli Storage Manager for Databases Data Protection for Microsoft SQL Server Installationsguide IBM Tivoli Storage Manager for Databases Data Protection for Microsoft SQL Server Side 1 af 20 INSTALLATIONSGUIDE 1 1 FORORD 3 2 OPRET NODEN I NETGROUP PORTAL. 4 3 KLIENTSOFTWARE 5 3.1

Læs mere

UPLOAD. Af Database og Website til Skolens Server

UPLOAD. Af Database og Website til Skolens Server UPLOAD Af Database og Website til Skolens Server INDHOLDSFORTEGNELSE Fra projekt til server... 3 Overførsel af SQL Database... 3 Eksekvering af T SQL Script... 8 Modificering af Visual Studio Projekt...

Læs mere

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Lærevejledning - en introduktion til maskinarkitektur faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig Basisuddannelse

Læs mere

Lageradministration Intel Pentium og Unix/Linux

Lageradministration Intel Pentium og Unix/Linux Lageradministration Intel Pentium og Unix/Linux 1 Lageradministration Multiprogrammering Håndtering af flere procesbilleder i lageret Virtuelt lager og swapping Gennemsigtig udnyttelse af disk som udvidelse

Læs mere

Oversigt. Operativsystemer [6]: Virtuelt lager. Virtuel lager. Virtuelt lager. Virkemåde. Virtuelt lager eksempel virtuelt lager

Oversigt. Operativsystemer [6]: Virtuelt lager. Virtuel lager. Virtuelt lager. Virkemåde. Virtuelt lager eksempel virtuelt lager Operativsystemer [6]: Virtuelt lager Datalogi 1F Forår 2003 Jørgen Sværke Hansen cyller@diku.dk Oversigt Hvad er virtuelt lager Mekanismen bag tvungent sideskift Politikker (strategier) for tvungent sideskift:

Læs mere

Anime Kita Selvbetjening Documentation

Anime Kita Selvbetjening Documentation Anime Kita Selvbetjening Documentation Release 1.0.0 Casper S. Jensen February 16, 2015 Contents 1 System Definition 3 2 Arkitektur 5 2.1 Oversigt................................................. 5 2.2

Læs mere

Filsystemer. dopsys. fredag den 26. november 2010

Filsystemer. dopsys. fredag den 26. november 2010 Filsystemer 1 Lageret er hierarkisk - Fokus: disk Sekundært lager er nødvendigt: Data i RAM forsvinder når processer terminerer o.lign. Og der er også brug for pladsen 2 Lageret er hierarkisk - Fokus:

Læs mere

Modern Concurrency Abstractions for C#

Modern Concurrency Abstractions for C# Modern Concurrency Abstractions for C# Nick Benton Luca Cardelli Cédric Fournet Presenter: Henrik Kragh-Hansen September 27, 2007 Motivation for concurrency Forbedring af concurrency Baggrundsinformation

Læs mere

Optimering af Pervasive v 9 databasen

Optimering af Pervasive v 9 databasen Optimering af Pervasive v 9 databasen I forhold til IT Revisor Alle funktioner i IT Revisor benytter PSQL databasen, nogle mere intensivt end andre. Mange steder i IT Revisor kan den rigtige indstilling

Læs mere

Indholdsfortegnelse. Side 2 af 20

Indholdsfortegnelse. Side 2 af 20 WinSvin Via netværk Indholdsfortegnelse WinSvin via Netværk.... 3 Installation på server. Program og data deles herfra... 3 Installation på arbejdsstation. Program og data ligger på server.... 11 Installation

Læs mere

Schedulering. dopsys

Schedulering. dopsys Schedulering Schedulering Ide: tag beslutning om fordeling af resurser på parter Resurse kan tildeles, fratages Bestemte situationer muliggør beslutninger 2 Designvalg i schedulering Beslutningsform: hvornår

Læs mere

Viditronic NDVR Quick Guide. Ver. 2.0

Viditronic NDVR Quick Guide. Ver. 2.0 Viditronic NDVR Quick Guide Ver. 2.0 1 Indholdsfortegnelse 1. HOVEDMENU 3 1.1 START 5 1.2 AKTIVITETSINDIKATOR: 7 1.3 INFORMATIONS VINDUE: 7 1.4 PTZ KAMERA KONTROL: 7 1.5 SKÆRMMENU 8 1.5.1 AKTIVER BEVÆGELSE:

Læs mere

Dual boot. af Windows 7 og Linux Mint. Af Thomas Bødtcher-Hansen

Dual boot. af Windows 7 og Linux Mint. Af Thomas Bødtcher-Hansen Dual boot af Windows 7 og Linux Mint Af Thomas Bødtcher-Hansen Dual boot af Windows 7 og Linux Mint "Dual boot af Windows 7 og Linux Mint" er en udvidelse af min IT guide "Linux Mint med fokus på privatliv

Læs mere

Filsystemer: Anvendelse. dopsys

Filsystemer: Anvendelse. dopsys Filsystemer: Anvendelse 1 Lageret er hierarkisk - Fokus: disk Sekundært lager er nødvendigt: Data i RAM forsvinder når processer terminerer o.lign. Og der er også brug for pladsen 2 Lageret er hierarkisk

Læs mere

Hvad er SkyDrive Pro og hvordan bruges det?

Hvad er SkyDrive Pro og hvordan bruges det? Hvad er SkyDrive Pro og hvordan bruges det? Et SkyDrive Pro bibliotek kan anses som en brugers personlige drev i organisationens SharePoint Online (SPO) løsning. Når dokumenter gemmes på SkyDrive Pro er

Læs mere

Hyper-V på Windows 8 64 Bit. Indhold. Vejledning i brug af Hyper-V på en Windows 8 maskine

Hyper-V på Windows 8 64 Bit. Indhold. Vejledning i brug af Hyper-V på en Windows 8 maskine Hyper-V på Windows 8 64 Bit Vejledning i brug af Hyper-V på en Windows 8 maskine Indhold Hyper-V på Windows 8 64 Bit... 1 Installation... 2 Vejledning trin for trin... 2 Etablering af Netværk... 5 Opret

Læs mere

Sådan virker og opretter du en TIO

Sådan virker og opretter du en TIO Sådan virker og opretter du en TIO NOX TIO er en virtuel enhed og skal derfor ikke installeres på en NOX-bus. Funktions overblik: 1. Videresendelse af statusmeddelelser (indgange, udgange og områder) via

Læs mere

Planen for idag. Synkroniseringsmekanismer. Krav til løsning. Kritiske regioner. Bagerens algoritme. Kritisk region via delt lager.

Planen for idag. Synkroniseringsmekanismer. Krav til løsning. Kritiske regioner. Bagerens algoritme. Kritisk region via delt lager. Planen for idag Synkroniseringsmekanismer Kritiske regioner Semaforer: Binære semaforer Tællesemaforer Beskedsemaforer Prioritetsinvertering Låse (spinlocks) sikrer udelelig adgang Barrierer synkroniseringspunkt

Læs mere

Indholdsfortegnelse. Installation

Indholdsfortegnelse. Installation Indholdsfortegnelse Generelt om installationen... 2 Installation af Sybase Sybase SQL Anywhere... 3 Installation af Sybase SQL Anywhere... 4 Licensbetingelser... 6 Registreringsnøgle... 7 Bruger information...

Læs mere

I Windows fil struktur er der følgende ting Drev, Mapper, Filer og Genveje.

I Windows fil struktur er der følgende ting Drev, Mapper, Filer og Genveje. Windows Fil Struktur I Windows fil struktur er der følgende ting Drev, Mapper, Filer og Genveje. Hvad er et drev Et drev, er en afgrænsning af fil strukturen. Når du går ind på et drev vil du stå i roden

Læs mere

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Computerarkitektur. - en introduktion til computerarkitektur med LINDA Computerarkitektur - en introduktion til computerarkitektur med LINDA faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig

Læs mere

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125 Tietgenskolen - Nørrehus Data warehouse Database for udviklere Thor Harloff Lynggaard DM08125 Juni 2010 Indhold Beskrivelse... 3 Data warehouse... 3 Generelt... 3 Sammenligning... 3 Gode sider ved DW...

Læs mere

Real-time programming safety in Java and Ada

Real-time programming safety in Java and Ada Real-time programming safety in Java and Ada Bo Sandén Presenter: Thomas Bøgholm 25. oktober 2007 Forfatteren Artiklen Synkroniserings Begreber Bo Sandén Professor på Colorado Technical University Beskæftiger

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Microsoft IIS 6 Certifikat administration Følgende vejledning beskriver hvordan man installere et certifikat på en IIS 6 For support og hjælp til anvendelsen af denne vejledning kan du kontakte FairSSL

Læs mere

KOMPONENT BESKRIVELSE

KOMPONENT BESKRIVELSE Beskrivelse : PC-program 714014 Program som kommunikerer med trykprøve stationer via. T-net/E-net. Fra programmet er det muligt at indstille parametre i de tilkoblede stationer. Programmet gemmer data

Læs mere

Opdatering af ISOWARE til version 6.1.0

Opdatering af ISOWARE til version 6.1.0 Opdatering af ISOWARE til version 6.1.0 September 2015 Indhold Kontaktoplysninger... 1 VIGTIGT... 2 Opdatering af trejdepartssoftware... 2 Opdatering til version 6.1.0.... 2 1. Backup af databasen... 3

Læs mere

VUC IT Niveau G. Drev Mapper Filer

VUC IT Niveau G. Drev Mapper Filer VUC IT Niveau G Drev Mapper Filer Harddiske og andre lagringsmedier ( drev ) Det mest enkle er at tænke på disk-drev som et arkivskab. Drev navngives med et bogstav. Normalt navngives med C:, D:, E: osv.

Læs mere

Opsætning af Backup. Hvis programmet registreres korrekt vises nedenstående skærmbillede. Genstart herefter programmet.

Opsætning af Backup. Hvis programmet registreres korrekt vises nedenstående skærmbillede. Genstart herefter programmet. Opsætning af Backup Dette er en guide til opsætning af backup med Octopus File Synchronizer. Det første der skal ske er, at programmet skal registreres (programmet kan dog bruges i 30 dage, hvis det ikke

Læs mere

Computerens - Anatomi

Computerens - Anatomi 2014 Computerens - Anatomi Rapporten er udarbejdet af Andreas og Ali Vejleder Karl G Bjarnason Indholdsfortegnelse Formål... 2 Indledning... 2 Case... 3 Design... 3 Skitser... 4 Planlægning... 5 Kravsspecifikation...

Læs mere

Lonbox PCM2001 betjeningsenhed

Lonbox PCM2001 betjeningsenhed PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 Lonbox PCM2001 betjeningsenhed Bruger vejledning Oktober 2002 Denne manual beskriver installation

Læs mere

Guide til Umbraco CMS

Guide til Umbraco CMS web Guide til Umbraco CMS Indhold Indledning 3 Kompatible browsere 3 Log ind i Umbraco 4 Content-delen 5 Indholdstræet 5 Tilføjelse af en side/sektion 7 Sortering af indhold 12 Galleri 14 Mediebibliotek

Læs mere

Velkommen på kursus hos Microworld

Velkommen på kursus hos Microworld Velkommen på kursus hos Microworld Du ønskes velkommen på kurset Windows 8 Workshop. Dette kursusmateriale er udarbejdet for at kunne fungere som arbejdsmateriale under selve kurset, men det er også meningen,

Læs mere

Start af nyt schematic projekt i Quartus II

Start af nyt schematic projekt i Quartus II Start af nyt schematic projekt i Quartus II Det følgende er ikke fremstillet som en brugsanvisning der gennemgår alle de muligheder der er omkring oprettelse af et Schematic projekt i Quartus II men kun

Læs mere

Vejledning til Autodesk Account - Autodesk Collection

Vejledning til Autodesk Account - Autodesk Collection Vejledning til Autodesk Account - Autodesk Collection Denne vejledning beskriver, hvordan du logger på Autodesk Account samt de vigtigste funktioner, bl.a. download af software, hvor du finder serienumre,

Læs mere

Vejledning. Opsætning af Trio Web Vers 2.0 feb. 2010

Vejledning. Opsætning af Trio Web Vers 2.0 feb. 2010 Opsætning af Trio Web Vers 2.0 feb. 2010 Indholdsfortegnelse Opsætning af Trio Web... 3 Generel opsætning af Trio Web... 3 Databaseopsætning... 3 DB... 3 Aar... 4 Login... 4 Internet... 4 Port... 4 Registreringsnøgle...

Læs mere

XProtect-klienter Tilgå din overvågning

XProtect-klienter Tilgå din overvågning XProtect-klienter Tilgå din overvågning Tre måder at se videoovervågning på For at skabe nem adgang til videoovervågning tilbyder Milestone tre fleksible brugergrænseflader: XProtect Smart Client, XProtect

Læs mere

PHP Quick Teknisk Ordbog

PHP Quick Teknisk Ordbog PHP Quick Teknisk Ordbog Af Daniel Pedersen PHP Quick Teknisk Ordbog 1 Indhold De mest brugte tekniske udtryk benyttet inden for web udvikling. Du vil kunne slå de enkelte ord op og læse om hvad de betyder,

Læs mere

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål

Læs mere

Computerens Anatomi KOM/IT

Computerens Anatomi KOM/IT j Computerens Anatomi KOM/IT Rapporten er skrevet af: Frederik, Jesper og Peter Gruppemedlemmer: Simon, Jesper, Frederik, Mathias og Peter Klasse: 1.3 Periode/øvelsesdato:14-02-2014 til 14-03-2014 Afleveringsdato:

Læs mere

Filr: Næste generation af Fildeling. Flemming Steensgaard fsteensgaard@novell.com

Filr: Næste generation af Fildeling. Flemming Steensgaard fsteensgaard@novell.com Filr: Næste generation af Fildeling Flemming Steensgaard fsteensgaard@novell.com Filr Infrastruktur CIFS, NCP Eksterne, uden for Firewall HTTPS Filr Appliance: Validering edir og/eller AD NCP, CIFS, HTTPS

Læs mere

Vejledning til Teknisk opsætning

Vejledning til Teknisk opsætning Vejledning til Teknisk opsætning v. 1.0 Adm4you, 2010. Indhold Kort om denne vejledning... 3 Generelt om easyourtime... 3 Installation af databasen... 3 Sikkerhed og rettigheder... 4 SQL Login... 4 Rettigheder

Læs mere

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning 1. Lokalt installeret afleveringsprogram til stedprøver... 2 2. Systemkrav... 3 3. Netværksopsætning... 4 4. Installation

Læs mere

Computerens Anatomi. Af Martin Arnetoft

Computerens Anatomi. Af Martin Arnetoft Computerens Anatomi Af Martin Arnetoft Moores lov Moores lov siger, at antallet af transistorer på et stykke hardware over 18 eller 24 måneder fordobles. Denne lov bruges til at beskrive udviklingen indenfor

Læs mere

ViKoSys. Virksomheds Kontakt System

ViKoSys. Virksomheds Kontakt System ViKoSys Virksomheds Kontakt System 1 Hvad er det? Virksomheds Kontakt System er udviklet som et hjælpeværkstøj til iværksættere og andre virksomheder som gerne vil have et værktøj hvor de kan finde og

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Small Business Server 2003 Certifikat administration Følgende vejledning beskriver hvordan man vælger hvilke adresser der skal være i ens SBS 2003 SSL certifikat. For support og hjælp til anvendelsen af

Læs mere

Installationsguide IBM Tivoli Storage Manager for Mail Data Protection for Microsoft Exchange Server

Installationsguide IBM Tivoli Storage Manager for Mail Data Protection for Microsoft Exchange Server Installationsguide IBM Tivoli Storage Manager for Mail Data Protection for Microsoft Exchange Server Side 1 af 18 INSTALLATIONSGUIDE 1 1 FORORD 3 2 OPRET NODEN I NETGROUP PORTAL. 4 3 KLIENTSOFTWARE 5 3.1

Læs mere

Ruko SmartAir. Updater installation

Ruko SmartAir. Updater installation Ruko SmartAir Updater installation Introduktion. Updateren er en speciel enhed som giver os mulighed for at tilføje, læse og skrive funktioner i en offline installation. Med læse og skrive funktionen kan

Læs mere