Processer og koordinering
|
|
- Sven Nøhr
- 6 år siden
- Visninger:
Transkript
1 Processer og koordinering.. fortsat dopsys 1
2 Betingelsesvariabler (Condition variables).. hukommelsesløs variant af semaphorer: Atomare operationer: Signal bruges til at sende et signal. Wait bruges til at vente på et signal. signal(c): if anyblocked(c) then unblockone(c) wait(c): block(c).. designet til synkronisering af processer ifm. monitors. condition variable c; cobegin p1:... wait(c);... // p2:... signal(c); coend; dopsys 4
3 Betingelsesvariabler (Condition variables).. hukommelsesløs variant af semaphorer: Atomare operationer: Signal bruges til at sende et signal. Wait bruges til at vente på et signal. signal(c): if anyblocked(c) then unblockone(c) wait(c): block(c).. designet til synkronisering af processer ifm. monitors. condition variable c; cobegin p1:... wait(c);... // p2:... signal(c); coend; Farligt hvorfor? dopsys 5
4 Monitors (Hoare, 1974).. abstraktionsmekanisme, beskytter tilgang til delte resurser: Monitor komponenter: Data - resursens tilstand Procedurer - tilgang til resursens data. Egenskaber: Tilgang til data kan kun ske via monitor-procedurer. Monitor-procedurer udføres med gensidig udelukkelse. Bagvedliggende begreb: Abstrakte datatyper. Central intuition: at være inde i monitoren eller ej. dopsys 6
5 Brug af monitor Forløb: Monitor bruges af p 1 og p 2, hvor p 1 kræver betingelse som p 2 skaber dopsys 7
6 Brug af monitor x_is_positive Forløb: Monitor bruges af p 1, som udfører et eller andet arbejde og på et tidspunkt kræver at x er ikkenegativ. Men kun g kan sikre dette: wait dopsys 8
7 Brug af monitor Forløb: p 1 er i waittilstand, dvs. p 1 er blokeret på betingelsesvariablen x_is_positive dopsys 9
8 Brug af monitor x_is_positive Forløb: på et eller andet tidspunkt agerer p 2, og kalder g som sender det ønskede signal dopsys 10
9 Brug af monitor Forløb: p 1 modtager signalet og kan fortsætte dopsys 11
10 [Click] A. Kun p 1 kan køre B. Kun p 2 kan køre C. Både p 1 og p 2 kan køre, og det er et problem D. Både p 1 og p 2 kan køre, og det er OK E. Det er en fejl at vi overhovedet er kommet i denne situation (hvad har vi glemt?) Forløb: men hvad er situationen nu? dopsys 12
11 Eksempel: Producer-Consumer.. behov for synkronisering omkring fyldt og tom buffer. monitor BoundedBuffer char buffer[n]; int nextin=0, nextout=0, count=0; condition notempty, notfull;.. // insert,remove,.. Hvilken proces fortsætter lige efter signal? Kunne man vælge anderledes? insert(char data) if (count==n) notfull.wait; buffer[nextin] = data; nextin = (nextin+1) % n; count = count + 1; notempty.signal; remove(char data) if (count==0) notempty.wait; data = buffer[nextout]; nextout = (nextout+1) % n; count = count - 1; notfull.signal; dopsys 13
12 [Q/A] Er et Javaobjekt en monitor? = dopsys 14
13 spørgsmål om synkronisering? dopsys 15
14 Implementation af Processer dopsys 16
15 Re: Processer Software der afvikles på maskinen = samling af samtidige sekventielle processer Proces = et program under afvikling data data proces-struktur SP A PC A stack program SP B PC B stack program Billedet af processer skal nu udbygges Proces A Proces B dopsys 17
16 Processer.. implementeres af operativsystemskernen: OS-kernens funktioner: Proces- og tråd-håndtering. Interrupt- og trap-håndtering. Resurse-håndtering. Input/output. dopsys 18
17 Process Control Block (Descriptor).. anvendes til repræsentation af processer i OS kernen: State vector: Tilstrækkelig information til at genoptage afvikling af processen. Proces status: Running: afvikles på CPU. Ready: venter på CPU. Blocked: venter på anden resurse... Process control block (PCB) typisk forbundet via et antal lister og køer. dopsys 19
18 Proces-tilstand.. skelnen mellem active eller suspended:.. understøtter håndtering af processen (fx opstart og debugging). dopsys 20
19 Eksempel: Linux /* sched.h */ struct task_struct long state; /* -1 unrunnable, 0 runnable, >0 stopped */... pid_t pid;... struct task_struct *p_opptr, *p_pptr,... /* tss for this task */ struct thread_struct tss; ; /* filesystem information */ struct fs_struct *fs; /* open file information */ struct files_struct *files; /* memory management info */ struct mm_struct *mm; /* processor.h */ struct thread_struct unsigned short back_link, blh; unsigned long esp0; unsigned short ss0, ss0h; unsigned long esp1; unsigned short ss1, ss1h; unsigned long esp2; unsigned short ss2, ss2h; unsigned long cr3; unsigned long eip; unsigned long eflags; unsigned long eax,ecx,edx,ebx; unsigned long esp; unsigned long ebp; unsigned long esi; ; unsigned long edi; dopsys 21
20 Proces-operationer.. ændrer på processers status. Typiske operationer: Create etablerer en ny proces. Destroy fjerner processer. Suspend ændrer status til suspenderet. Activate ændrer status til aktiv. Operationer modificerer også proceslister / køer: Ready List processer med ready status. Status Lister lister af processer som er blokerede på resurser. dopsys 22
21 Create Create(s0, m0, pi) p = Get_New_PCB(); pid = Get_New_PID(); p->id = pid; p->cpu_state = s0; p->memory = m0; p->priority = pi; p->status.type = ready_s; p->status.list = RL; p->creation_tree.parent = self; p->creation_tree.child = NULL; insert(self->creation_tree.child, p); insert(rl, p); Schedule dopsys 23
22 Suspend Suspend(pid) p = Get_PCB(pid); s = p->status.type; if ((s==blocked_a) (s==blocked_s)) p->status.type = blocked_s; else p->status.type = ready_s; if (s==running) cpu = p->processor_id; p->cpu_state = Interrupt(cpu); Scheduler(); dopsys 24
23 Activate Activate(pid) p = Get_PCB(pid); if (p->status.type == ready_s) else p->status.type = ready_a; Scheduler(); p->status.type = blocked_a; dopsys 25
24 Destroy(pid) Destroy p = Get_PCB(pid); Kill_Tree(p); Scheduler(); Kill_Tree(p) for (each q in p->creation_tree.child) Kill_Tree(q); if (p->status.type == running) cpu = p->processor_id; Interrupt(cpu); Remove(p->Status.List, p); Release_all(p->Memory); Release_all(p->Other_Resources); Close_all(p->Open_Files); Delete_PCB(p); dopsys 26
25 spørgsmål om implementation af processer? dopsys 27
26 Tråde.. skelnen mellem udførelsesdelen (control flow) og resursedelen af en proces: Fordele: Tråd-elementer: Registre Programtæller Stack Proces-elementer: Skift mellem tråde kræver ikke fuldt context-switch. Kommunikation er nemt da resurser (lager) deles. Simpel programmeringsmodel. Lager (adresserum) Åbne filer dopsys 28
27 POSIX Tråde: Unix OS dopsys 29
28 Eksempel: Enkelt-trådet program int A(void) int i; B(NULL); for (i=0; i<10; i++) printf("a\n"); sleep(1); return 0; int main(int argc,char *argv[]) A(); return 0; #include <stdio.h> void B(void *arg) int i; for (i=0; i<10; i++) printf("b\n"); sleep(2); dopsys 30
29 Eksempel: Enkelt-trådet program int A(void) int i; B(NULL); for (i=0; i<10; i++) printf("a\n"); sleep(1); return 0; int main(int argc,char *argv[]) A(); return 0; #include <stdio.h> void B(void *arg) int i; for (i=0; i<10; i++) printf("b\n"); sleep(2); Hvad udskriver programmet? dopsys 31
30 Eksempel: Flertrådet program int threada(void) pthread_t threadb; int i; pthread_create(&threadb,null, threadb,null); for (i=0; i<10; i++) printf("\n"); sleep(1); pthread_join(threadb,null); return 0; int main(int argc,char *argv[]) threada(); return 0; void* threadb (void *arg) int i; for (i=0; i<10; i++) printf("\n"); sleep(2); return NULL; %>./threadab %> dopsys 32
31 [Click] int threada(void) pthread_t threadb; int i; pthread_create(&threadb,null, threadb,null); for (i=0; i<10; i++) printf("\n"); sleep(1); pthread_join(threadb,null); return 0; int main(int argc,char *argv[]) threada(); return 0; void* threadb (void *arg) int i; for (i=0; i<10; i++) printf("\n"); sleep(2); return NULL; %>./threadab %> dopsys 33
32 int threada(void) pthread_t threadb; int i; pthread_create(&threadb,null, threadb,null); for (i=0; i<10; i++) printf("\n"); sleep(1); pthread_join(threadb,null); return 0; int main(int argc,char *argv[]) threada(); return 0; [Click] void* threadb (void *arg) int i; for (i=0; i<10; i++) printf("\n"); sleep(2); return NULL; Vil det ikke gå galt, fordi stdout er en delt resurse? %>./threadab %> dopsys 33
33 int threada(void) pthread_t threadb; int i; pthread_create(&threadb,null, threadb,null); for (i=0; i<10; i++) printf("\n"); sleep(1); pthread_join(threadb,null); return 0; int main(int argc,char *argv[]) threada(); return 0; [Click] void* threadb (void *arg) int i; for (i=0; i<10; i++) printf("\n"); sleep(2); return NULL; Vil det ikke gå galt, fordi stdout er en delt resurse? %>./threadab %> A. Jo, det går galt (tænk over hvordan) B. Nej, det går godt: Operativsystemet beskytter stdout C. Nej, det går godt: Der er ikke tale om samtidighed D. stdout er slet ikke en delt resurse, fordi hver proces har sin egen kopi dopsys 33
34 Implementation af tråde.. kan implementeres i user space eller kernel space: User space implementation: Implementeres af runtime system i programmet. Transparent for operativsystemet. Blokerende systemkald skal håndteres. Kernel space implementation: Operativsystemet implementerer trådbegreb via systemkald. Schedulering af tråde sker i operativsystemet. Blokerende systemkald ikke noget problem. dopsys 34
35 spørgsmål om tråde? dopsys 35
36 Opsummering Koordinering: Monitor Condition variable Proces-implementation: Process Control Block Proces-tilstande Proces-operationer (Create, Suspend, Activate, Destroy) Tråde: Begreb, justering af PCB, implementation, eksempel dopsys 36
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 mereProcesser 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 mereProcesser og koordinering. dopsys 1
Processer og koordinering dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne): Multiprogrammering og time-sharing (60 erne): dopsys 2 Motivation.. parallelle
Læs mereImplementation 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 mereSchedulering. 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 mereSchedulering. 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 mereOperativsystemer - 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 mereSider 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 mereSider 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 mereInput/Output: Brugergrænseflader. dopsys
Input/Output: Brugergrænseflader dopsys Interaktion med bruger Visse devices lægger et fundamentalt sæt af spilleregler for vores brug af computere Generisk tilbagemelding, hvad laver den : Billedskærm
Læs mereDeadlocks dopsys 1 onsdag den 8. december 2010
Deadlocks dopsys 1 En deadlock! When two trains approach each other at a crossing, both shall come to a full stop and neither shall start up again until the other has gone. Lov - the Kansas Legislature
Læs mereSystemkald i Unix/Linux
Systemkald i Unix/Linux 1 Operativsystemet Fra proces: OS som værktøjskasse: tilgængelig via systemkald... OS som resurseadministrator, abstrakt/virtuel maskine: CPU: processer, tråde, schedulering I/O:
Læs mereOperativsystemer - dopsys. Erik Ernst
Operativsystemer - dopsys Erik Ernst eernst@cs.au.dk [Q/A] Mange deltagere er nu på 2. år af datalogistudiet eller cand.it., med dcomnet Er din baggrund anderledes? dopsys 2 Praktiske oplysninger http://cs.au.dk/dopsys
Læs mereDesign 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 mereLageradministration 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 mereInput/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 merePrincipper for Samtidighed og Styresystemer
Principper for Samtidighed og Styresystemer Synkronisering og Deadlocks René Rydhof Hansen Februar 2008 PSS 08 (Forelæsning 03) Synkronisering og Deadlocks Februar 2008 1 / 33 Skemaændringer Forelæsning
Læs mereESP30076 임베디드시스템프로그래밍 (Embedded System Programming)
Module 14: Kernel Timer ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 리눅스에서커널타이머사용법알아보기 HZ, jiffies_64, struct timer_list 커널타이머를활용한하드웨어제어용디바이스드라이버작성 2 Timer 관련변수 HZ 리눅스커널에서주기적으로발생하는시스템타이머
Læs mereStyresystemer 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 mereOperativsystemer - dopsys. Erik Ernst
Operativsystemer - dopsys Erik Ernst eernst@cs.au.dk [Q/A] Mange deltagere er nu på 2. år af datalogistudiet eller cand.it., med dcomnet En del har IT-erhvervserfaring Hvad med dig? dopsys 2 Praktiske
Læs mereProgrammering i C. Lektion september 2009
Programmering i C Lektion 1 8. september 2009 Målgruppe Motivation Indhold Form Materiale 2 / 47 Kursusintroduktion 1 Målgruppe 2 Motivation 3 Indhold 4 Form 5 Materiale Målgruppe Motivation Indhold Form
Læs mereReal-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 mereDM14-1. Obligatorisk opgave F.06. System Call. Jacob Aae Mikkelsen Ingen andre gruppe medlemmer. 6. marts 2005
- 1. Obligatorisk opgave F.06 System Call Jacob Aae Mikkelsen - 191076 Ingen andre gruppe medlemmer 6. marts 2005 1 Indhold 1 Opgave beskrivelse 2 2 Analyse 2 2.1 Hukommelses allokering.....................
Læs merePlanen 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 mereSystemkald 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 merePentium IA-32 Maskinarkitekturen
Pentium IA-32 Maskinarkitekturen 1 Historie (1) Starter i 1970 med udviklingen af Intel 4004: 2 Historie (2) Baglæns kompatibilitet tilbage til 8086. 3 Intel 4004 and Pentium 4 http://www.intel.com/museum/archives/index.htm
Læs mere1 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 mereINGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester
INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen Side 1 af 7 Eksamenstermin: DECEMBER 2003 / JANUAR 2004 Varighed: 4 timer - fra kl. 9.00 til kl. 13.00 Ingeniørhøjskolen udleverer: 3 omslag samt papir
Læs mereScheduling. 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 merePrincipper 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 mereLageradministration 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 mereAnalyse og design af Indlejrede Systemer. v/ Jens Dalsgaard Nielsen Henrik Schiøler alle Afdeling for Proceskontrol
Analyse og design af Indlejrede Systemer v/ Jens Dalsgaard Nielsen Henrik Schiøler alle Afdeling for Proceskontrol 1 kursusindhold... Introduktion til parallellitet og multiprogrammering Analyse, modellering,
Læs merePrincipper 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 mereInterconnect. 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 mereIntroduktion til Operativsystemer
Introduktion til Operativsystemer 1 Niels Olof Bouvin Institut for Datalogi Aarhus Universitet Oversigt Formål Hvad er en computer? Operativsystemets rolle Multitasking 2 Formål Introduktion af de basale
Læs mereFilsystemer: 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 mereOperativsystemer 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 mereSpecifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api
Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...
Læs mereSchedulering. 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 mereProgrammering i C. Lektion november 2008
Programmering i C Lektion 3 18. november 2008 Kontrolstrukturer Udvælgelse Gentagelse Eksempler Fra sidst 1 Kontrolstrukturer 2 Udvælgelse 3 Gentagelse 4 Eksempler Kontrolstrukturer Udvælgelse Gentagelse
Læs mereVidar Jon Bauge. Notater til Teknik. Datamatikeruddannelsen efterår 2005 Side 1 af 54
Notater til Teknik 2005 Datamatikeruddannelsen efterår 2005 Side 1 af 54 Indholdsfortegnelse Operativsystemer......4 Batch systemer......4 Time-sharing systemer......4 Computer Systemer......6 I/O struktur......6
Læs mereProcesser. DS kursusgang nr. 2: Procestræer. ps: Vis processer
DS kursusgang nr. 2: Processer 1. Definition af processer/tråde? eksemplificeret med fork() og exec() (procesdannelse i C under unix) 2. C vs. Java (overordnet + funktioner) 3. Processer vs. tråde: Server:
Læs mereProgrammering i C. Lektion september 2009
Programmering i C Lektion 2 14. september 2009 Kontrolstrukturer Udvælgelse Gentagelse Eksempler Kommentarer Format - scanf og printf 2 / 27 Fra sidst 1 Kontrolstrukturer 2 Udvælgelse 3 Gentagelse 4 Eksempler
Læs mereStyresystemer 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 merePlanen 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 mereStyresystemer 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 mereProgrammering i C Videre med C (2 af 4) 19. marts 2007
Programmering i C Videre med C (2 af 4) 19. marts 2007 Mads Pedersen, OZ6HR mads@oz6hr.dk Plan i dag Brush-up fra sidst Videre med C Kontrolløkker (while, for, ) Conditional Execution (if, if/else) Funktioner
Læs mereFilsystemer: 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 mereProgrammering i C. Lektion 4. 5. december 2008
Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )
Læs mereAnalyse og design af Indlejrede Systemer. v/ Jens Dalsgaard Nielsen Henrik Schiøler Mads Dore alle Afdeling for Proceskontrol
Analyse og design af Indlejrede Systemer v/ Jens Dalsgaard Nielsen Henrik Schiøler Mads Dore alle Afdeling for Proceskontrol 1 kursusindhold... Del 1: 5 mm Parallelitet, multiprogrammering, OS services
Læs mereThreads 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 merePlanen for idag. Opdatering af delt lager
Planen for idag Synkronisering: Tidsafhængighed i multiprogrammer Semaforer: Binære semaforer Tælle semaforer Grænseflader: Hvordan implementeres systemkald Tidsafhængighed i multiprogrammer proces læser
Læs mereStyresystemer 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 mereDag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Læs mereOperativsystemer. Tobias Brixen Q2-2012
Operativsystemer Tobias Brixen Q2-2012 1 Contents 1 Operativsystermer - oversigt 4 1.1 OS som abstrakt og virtualiseret maskine, og som resurseadministrator................................ 4 1.2 Systemkald..............................
Læs mereFilsystemer. 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 mereLageret er hierarkisk fokus nu: disk
Filsystemer Lageret er hierarkisk fokus nu: disk Sekundært lager er nødvendigt: Data i RAM forsvinder når processer terminerer o.lign. Og der er også brug for pladsen Top-down: Hvad er en fi l? Er en fi
Læs mereIntroduktion til C programmering
Introduktion til C programmering Rasmus Erik Voel Jensen Uge 17 voel@math.ku.dk Dagens forelæsning Formalia Indledende programmering, main, include, printf, variable, scanf, if-else, statements, eksempler
Læs mereVMware og dopsys-linux
VMware og dopsys-linux 1 Virtuel maskine: OS Hardware Virtualisering: Resurser deles mellem processer: En virtuel maskine er til rådighed for hver proces. Virtualisering nu dybere: hver proces hvert OS.
Læs mereCommon Language Runtime. Multithreading
Common Language Runtime Multithreading Multithreading i.net Dedicated threads Programmøren kontrollerer starttidspunkt, levetid m.m. for den enkelte thread. Pooled threads Threads lånes fra en pulje af
Læs mereRouting 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//--------------------------------- Definition af porte og funktioner -------------------------
Temeraturmåler (C-program).txt // Initialiserings-sekvens #include #pragma model=medium #pragma code=0x0000 #pragma xdata=0x4000 #pragma asm=on #pragma parameters=register //#define display P4
Læs mereProgrammering i C Programmering af microcontroller i C (4 af 4) 12. april 2007
Programmering i C Programmering af microcontroller i C (4 af 4) 12. april 2007 Mads Pedersen, OZ6HR mads@oz6hr.dk Plan i dag Afrunding af OZ3VB's program Fra "almindelig C" til "microcontroller C" Lighederne
Læs mereKaraktergivende rapportopgave i Styresystemer og multiprogrammering
Karaktergivende rapportopgave i Styresystemer og multiprogrammering 1. marts 2005 Den karaktergivende rapportopgave i Styresystemer og multiprogrammering stilles tirsdag den 1. marts 2004 og skal afleveres
Læs mereEksamen dcomnet Q2/2010. Navn
2582 Eksamen dcomnet Q2/2010 ID Navn Example I A32-prg1 Betragt følgende program skrevet i IA-32 symbolsk maskinsprog:.section.data x:.long 2 r:.long 27.section.text.globl _start _start: pushl x movl $0,%ebx
Læs mereSynkronisering af sekventielle processer
Synkronisering af sekventielle processer Klaus Hansen, Niels Elgaard Larsen, Maz Spork, Jørgen Sværke Hansen 15. februar 2005 1 Introduktion Ved en multiprogram forstår vi et program, hvori vi kan specificere,
Læs mereProgrammering i C. Kursusintroduktion. Lektion september Målgruppe 2 Indhold 3 Form 4 Materiale. Målgruppe Indhold Form Materiale
Programmering i C Lektion 1 16. september 2008 Målgruppe Indhold Form Materiale Kursusintroduktion 1 Målgruppe 2 Indhold 3 Form 4 Materiale 2 / 21 Målgruppe Indhold Form Materiale Folk der har styr på
Læs mereProgrammering i C. Lektion oktober 2008
Programmering i C Lektion 2 20 oktober 2008 Historie Processen At kompilere 2 / 23 Fra sidst 1 Historie 2 Processen 3 At kompilere Historie Processen At kompilere 3 / 23 ALGOL 60 1963 CPL 1966 BCPL 1969
Læs mereonsdag den 1. december 2010 Input/Output
Input/Output Ydre enheder & De Tre Synsvinkler OS skal administrere adgangen til ydre enheder således at:... der fås en abstraktion, der giver en fleksibel og uniform adgang til ydre enheder, men samtidig
Læs mereLRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) int wmid, wmevent; PAINTSTRUCT Introduktion ps; til HDC hdc; programmering med switch (message) case WM_COMMAND: wmid = LOWORD(wParam);
Læs meredcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)
dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal
Læs mereYdre enheder & De Tre Synsvinkler
Input/Output Ydre enheder & De Tre Synsvinkler OS skal administrere adgangen til ydre enheder således at:... der fås en abstraktion, der giver en fl eksibel og uniform adgang til ydre enheder, men samtidig
Læs mereModerne numerische Methoden der Festkörperphysik Lanczos-ED für die AF Heisenberg-Kette
Moderne numerische Methoden der Festkörperphysik Lanczos-ED für die AF Heisenberg-Kette Programmcode gen matrix Lanczos Bedienung des Programms Konvergenz des Lanczos-Verfahrens Grundzustandsenergien der
Læs mereErklæring af variabler. Void indstil (Indstiller starttidspunkt og måleinterval).
Indholdsfortegnelse til Bilag 1.: Side 1: Include filer. Side 1: Erklæring af variabler. Side 2: Void indstil (Indstiller starttidspunkt og måleinterval). Side 3: Void indstil (Indstiller starttidspunkt
Læs mereDATALOGI 1F. Skriftlig eksamen tirsdag den 10. juni 2003 1 25 % 2 10 % 3 25 % 4 10 % 5 30 %
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1F Skriftlig eksamen tirsdag den 10. juni 2003 Opgave Vægtning 1 25 % 2 10 % 3 25 % 4 10 % 5 30 % Alle de sædvanlige hjælpemidler må benyttes,
Læs mereKerner med afbrydelser. Planen for i dag. Kerne med afbrydelser. Tætkoblede drivprogrammer. Uheldig rækkefølge. Synkronisering med ydre enheder
Planen for i dag Repetition af kerner med r Kerner med tvungent processkift Præsentation af K1 Kerner med r Vi erstattede aktiv venten med: ventende processer placeres i ventekøer r aktiverer ventede processer
Læs mereMaskinarkitektur. Lars Kristensen kris@daimi.au.dk. Christian Storm cstorm@daimi.au.dk. dmasark 1
Maskinarkitektur Lars Kristensen kris@daimi.au.dk Christian Storm cstorm@daimi.au.dk dmasark 1 Praktiske oplysninger http://www.daimi.au.dk/dmasark dmasark 2 Forelæsninger Tirsdag 12.15-14.00, Store Aud,
Læs mereLæ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 mereet enkelt kontrol flow sætningerne i programmet afvikles en ad gangen flowet følger dels den tekstlige rækkefølge
Tråd-definition 2. XP-program: Dissektion af boldapplet (fortsat) En tråd er en separat programudførelse = separat "flow of control" = rækkefølge af programinstruktioner, der udføres En tråd kan mere konkret
Læs mereExceptions i Delphi. Try except
Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,
Læs mereKernealphaerne Indhold af G1
Kernealphaerne Indhold af G1 3 små opgaver: 1. Oversæt en kerne og afvikl den på en kernealpha 2. Håndoversæt en C/C++ funktion til alpha assembler 3. Implementer procedurer til dynamisk lagerallokering
Læs mereSchedulering af SAS job i MS Task Scheduler, som sender e-mail med log og statuskode ved fejl
Schedulering af SAS job i MS Task Scheduler, som sender e-mail med log og statuskode ved fejl Eksemplet består af 2 dele, et SAS program der fejler, samt et Powershell script til at eksekvere SASprogrammet
Læs mereOOP e uge kursusgang: Samtidighed (II) Safety = sikkerhed. Safety
= sikkerhed I denne sammenhæng: = "trådsikkerhed" " conditions.. stipulate that nothing bad will ever happen" (XP s. 377) Trådsikkerhed betyder sikkerhed mod inkonsistens pga. flertrådning ikke f.eks.
Læs mereDesign by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design
Læs merePUT og INPUT funktionerne
PUT og INPUT funktionerne Af: Peter Kellberg Danmarks Statistik Sejrøgade 11 DK-2100 København Ø pke@dst.dk PUT og INPUT-funktionerne Denne artikel er foranlediget af en henvendelse til vores interne SAS
Læs mere3 Algebraisk Specifikation af Abstrakte Datatyper.
3 Algebraisk Specifikation af Abstrakte Datatyper. Specifikation kontra program. Bestanddele af en algebraisk specifikation. Klassificering af funktioner i en ADT. Systematisk definition af ligninger.
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereComputere og Netværk (dcomnet)
Computere og Netværk (dcomnet) http://www.cs.au.dk/dcomnet Jens Kargaard Madsen (jkm@iha.dk) Jens Bennedsen (jbb@iha.dk) dcomnet 1 Computere og netværk Beskrivelse At give den studerende kendskab til computere
Læs mereNintex Workflow UK/DK
Nintex Workflow UK/DK Når Nintex Workflows anvendes i et Dansk sproget SharePoint miljø, er der lidt forskel på hvad de forskellige elementer kaldes, såvel som rækkefølgen på disse. Noget er oversat, noget
Læs mereAlgorithms & 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 mereArkitekturdokument for Cruise Control
Arkitekturdokument for Cruise Control Cruise International Revisions historie Dato Version Forfatter Beskrivelse 2.10.2001 0.91 FOH Første version 17/03/09 1.0 KG Afs. 1 og 2 indsat (- 2.1) 15/05/09 1.1
Læs mereuprocessorens hardware
uprocessorens hardware 8080 Architecture Kernen i en processor er ALUen. Det er den som kan udfører simple regne operationer. De tal den arbejdermed gemmes i en række registre. Når et tal skal hentes eller
Læs mereAlternative Scheduling in Linux Alina Beygelzimer November 30, 1999
Alternative Scheduling in Linux Alina Beygelzimer November 30, 1999 Normal Scheduling under Linux ffl schedule() function (kernel/sched.c) ffl Linux supports three scheduling classes: SCHED_OTHER SCHED_FIFO
Læs mereTypisk modul-opbygget PLC system (Allan Bradley)
1 Typisk modul-opbygget PLC system (Allan Bradley) 5 6 Prrammøren nødt til at define hvilke modul systemet består af i hvilke slots de placet. Et typisk system vil have såvel anale som digitale ind- udgange
Læs mereSystem Arkitektur og Integration
Mikael Svenstrup System Arkitektur og Integration 1/24 System Arkitektur og Integration MM11: Seriel kommunikation 2 (SW) Indhold Mikael Svenstrup System Arkitektur og Integration 2/24 Tidligere har i
Læs mereDatamaters arkitektur og programmering
Mikael Svenstrup Datamaters arkitektur og programmering 1/24 Datamaters arkitektur og programmering MM11: Seriel kommunikation 2 (SW) Indhold Mikael Svenstrup Datamaters arkitektur og programmering 2/24
Læs mereNiveauer af abstrakte maskiner
Mikroarkitektur Niveauer af abstrakte maskiner Spørgsmål... Hvordan realiseres IJVM maskinen (lev. 2), eller hvordan ser en IJVM-CPU ud? Opbygning (mikroarkitekturen Mic-1) Anvendelse (mikroprogrammet
Læs mereQUICK START Updated:
QUICK START Updated: 24.08.2018 For at komme hurtigt og godt igang med dine nye Webstech produkter, anbefales at du downloader den senest opdaterede QuickStart fra vores hjemmeside: In order to get started
Læs merePMDK PC-Side Basic Function Reference (Version 1.0)
PMDK PC-Side Basic Function Reference (Version 1.0) http://www.icpdas.com PMDK PC-Side Basic Function Reference V 1.0 1 Warranty All products manufactured by ICPDAS Inc. are warranted against defective
Læs mere