Redigerer
Linuxkjernen
(avsnitt)
Hopp til navigering
Hopp til søk
Advarsel:
Du er ikke innlogget. IP-adressen din vil bli vist offentlig om du redigerer. Hvis du
logger inn
eller
oppretter en konto
vil redigeringene dine tilskrives brukernavnet ditt, og du vil få flere andre fordeler.
Antispamsjekk.
Ikke
fyll inn dette feltet!
=== Fleroppgavekjøring med «forkjøpsrett» === {{utdypende|Kooperativ fleroppgavekjøring|forkjøpsrett (informatikk){{!}}fleroppgavekjøring med «forkjøpsrett»|forkjøpsrett i operativsystemkjernen}} [[Fil:Kde 3.5.5 - 003.png|thumb|[[Fleroppgavekjøring]] i en [[Frankrike|fransk]] versjon av [[Debian]] med [[skrivebordsmiljø]]et [[KDE]] 3.3.5. Nettleseren [[Konqueror]] kjører samtidig med [[Liste over KDE-programmer|Amarok]] og KwikDisk. Det vises tre instanser av nettleseren, en av dem brukes som [[filbehandler]] og den andre til bildefremvisning.{{byline|Foto: William Scot|9. april 2007}}]] I likhet med tradisjonell Unix (og de fleste av dagens operativsystemer) har Linuxkjernen støtte for [[fleroppgavekjøring]]: Flere programmer kan utføres tilsynelatende samtidig på en og samme datamaskin. Frem til versjon 2.4, som ble lansert 4. januar 2001, benyttet Linuxkjernen [[kooperativ fleroppgavekjøring]]. Dette betyr at programmer samarbeider om å dele mikroprosessor-tid mellom seg. En prosess fortsetter å utføre instruksjoner alene på mikroprosessoren helt til den overlater kontrollen til en annen prosess. Det er opp til programmererne å sørge for at programmene gir fra seg tilgangen til mikroprosessoren når de ikke lenger foretar seg noe nyttig. Dersom et program henger seg opp eller utfører langvarige operasjoner uten å slippe kontrollen til andre prosesser, kan hele datasystemet gå i stå. Som kontrast har Unix støttet den mer sofistikerte [[forkjøpsrett (informatikk)|fleroppgavekjøringen med «forkjøpsrett»]]. Det har «forkjøpsrett», makt til å avbryte prosessen, og senere gi det andre oppgaver. Slik at den i mellomtiden ikke sperrer andre programmer. Linux støttet dette fra starten, men bare overfor programmer i brukermodus.<ref>{{cite book |last1=Bovet |first1=Daniel P. |last2=Cesati |first2=Marco |date=oktober 2000 |title=Understanding the Linux Kernel |url=http://oreilly.com/catalog/linuxkernel/chapter/ch10.html |publisher=[[O'Reilly Media|O'Reilly]] |chapter=Chapter 10: Process Scheduling |isbn=0-596-00002-2 |accessdate=15. oktober 2011 |archiveurl=https://web.archive.org/web/20140921000832/http://oreilly.com/catalog/linuxkernel/chapter/ch10.html |archivedate=2014-09-21 |url-status=dead |tittel=Arkivert kopi |besøksdato=2006-06-13 |arkivurl=https://web.archive.org/web/20060613130106/http://oreilly.com/catalog/linuxkernel/chapter/ch10.html |arkivdato=2006-06-13 |url-status=død }} {{Kilde www |url=http://oreilly.com/catalog/linuxkernel/chapter/ch10.html |tittel=Arkivert kopi |besøksdato=2017-03-09 |arkiv-dato=2006-06-13 |arkiv-url=https://web.archive.org/web/20060613130106/http://oreilly.com/catalog/linuxkernel/chapter/ch10.html |url-status=unfit }}</ref> Når en prosess kjøres, settes den [[Boolsk algebra|boolske]] variabelen <code>TASK_RUNNING</code>, som er knyttet til prosessen, lik sann. Prosessen kan avbrytes av andre prosesser, som har en høyere prioritet, og som dermed setter <code>TASK_RUNNING</code> lik falsk. I versjon 2.4 begynte arbeidet med å innføre fleroppgavekjøringen med «forkjøpsrett» også i Linuxkjernen. Arbeidet var fullført med lanseringen av versjon 2.6 den 17. desember 2003. Fleroppgavekjøringen med «forkjøpsrett» er imidlertid ikke gjennomført i alle seksjoner av kjernen.<ref>{{cite web|url=http://www.ibm.com/developerworks/linux/library/l-inside/index.html |title=Towards Linux 2.6, A look into the workings of the next new kernel |last=Santhanam |first=Anand |date=23. september 2003 |publisher=[[IBM Global Services]] |accessdate=15. oktober 2011 |archiveurl=https://web.archive.org/web/20130927200239/http://www.ibm.com/developerworks/linux/library/l-inside/index.html |archivedate=2013-09-27 |url-status=dead }}</ref> Linuxkjernen inneholder forskjellige klasser for [[Skedulering (informatikk)|skedulering]].<ref name="moshe">{{cite web |url=http://www.linuxjournal.com/article/3910 |title=The Linux Scheduler |last=Bar |first=Moshe |date=1. april 2000 |work=[[Linux Journal]] |publisher=Belltown Media, Inc. |accessdate=14. april 2012}}</ref> Standard skeduleringsmekanisme er [[Completely Fair Scheduler]], som ble introdusert i versjon 2.6.23 av kjernen den 9. oktober 2007.<ref>{{cite web |title=[patch] Modular Scheduler Core and Completely Fair Scheduler [CFS] |url=https://lwn.net/Articles/230501/ |last=Molnár |first=Ingo |authorlink=Ingo Molnár |date=13. april 2007 |mailinglist=[[LKML]] |accessdate=14. april 2012}}</ref> Internt er denne skeduleringsklassen kjent som <code>SCHED_OTHER</code>. Linuxkjernen inneholder også to [[POSIX]]-kompatible<ref name="posix1b">[http://www.opengroup.org/onlinepubs/009695399 The Open Group Base Specifications Issue 6], The IEEE and The Open Group, IEEE Std 1003.1, 2004 Edition, IEEE Standard for Information Technology – Portable Operating System Interface, POSIX.1b, Real-time extensions (IEEE Std 1003.1b-1993)</ref> [[sanntid]]sklasser som kalles <code>SCHED_FIFO</code> (basert på en [[Kø (datastruktur)|køstruktur]]) og <code>SCHED_RR</code> ([[round robin skedulering]]).<ref name="moshe" /> Ved å benytte [[patch (program)|programvareendringen]] <code>PREEMPT_RT</code>, kan full støtte for «forkjøpsrett» bli innført for [[kritisk seksjon|kritiske seksjoner]], [[avbruddshåndterer]]e og kodesekvenser hvor avbrudd er deaktivert.<ref>{{cite web |url=https://lwn.net/Articles/146861/ |title=A realtime preemption overview |last=McKenney |first=Paul |date=10. august 2005 |publisher=[[LWN.net]] |accessdate=5. februar 2012}}</ref> Denne programvareendringen og dens funksjonalitet er blitt delvis integrert i Linuxkjernen.<ref>{{cite web |url=https://www.osadl.org/Realtime-Linux.projects-realtime-linux.0.html |title=OSADL Project: Realtime Linux |publisher=[[OSADL]] |accessdate=5. februar 2012}}</ref> Bruk av «forkjøpsrett» innebærer mindre [[latens]], gjør responsen raskere, og gjør Linux mer egnet for sanntidsapplikasjoner. Eldre versjoner av Linuxkjernen hadde en [[stor kjernelås]] for synkronisering over hele kjernen, men denne ble fjernet av Arnd Bergmann den 25. januar 2011.<ref>{{cite web |url=https://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4ba8216cd90560bc402f52076f64d8546e8aefcb |title=BKL: That's all, folks |last=Bergmann |first=Arnd |date=5. mars 2011 |publisher=Linux Kernel Organization, Inc. |accessdate=20. februar 2012 |url-status=dead |archiveurl=https://archive.today/20120720043351/http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4ba8216cd90560bc402f52076f64d8546e8aefcb |archivedate=2012-07-20 |tittel=Arkivert kopi |besøksdato=2012-02-20 |arkivurl=https://archive.today/20120720043351/http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4ba8216cd90560bc402f52076f64d8546e8aefcb |arkivdato=2012-07-20 |url-status=død }}</ref> En tilleggspolitikk for skedulering kjent som <code>[[SCHED_DEADLINE]]</code>, er en implementasjon av algoritmen [[earliest deadline first skedulering]] (EDF) og ble tilføyd versjon 3.14 av Linuxkjernen den 30. mars 2014.<ref>{{cite web |url=https://www.phoronix.com/scan.php?page=news_item&px=MTU4Mjg |title=The Linux 3.14 Kernel Already Has Many Exciting Features |last=Larabel |first=Michael |authorlink=Michael Larabel |date=24. januar 2014 |publisher=[[Phoronix]] |accessdate=3. februar 2014}}</ref><ref>{{cite web |url=http://kernelnewbies.org/Linux_3.14#head-651929cdcf19cc2e2cfc7feb16b78ef963d195fe |title=Linux kernel 3.14, Section 1.1. Deadline scheduling class for better real-time scheduling |date=30. mars 2014 |website=kernelnewbies.org |accessdate=2. april 2014}}</ref> Kooperativ fleroppgavekjøring ble benyttet i [[Windows 3.0]] og [[Windows 3.1]], så vel som i [[klassisk MacOS|det klassiske MacOS]], [[RISC OS]] og i de fleste versjoner av [[nettverksoperativsystem]]et [[NetWare]] (før versjon 6.5). Windows 95 og Windows 98 benyttet kooperativ fleroppgavekjøring under kjøring av [[16-biter]] programmer, og fleroppgavekjøring med «forkjøpsrett» under kjøring av [[32-biter]] programmer. Fleroppgavekjøringen med «forkjøpsrett» var standard på OS/2 og [[NeXTSTEP]], og har alltid vært det på Windows NT og [[OS X]].
Redigeringsforklaring:
Merk at alle bidrag til Wikisida.no anses som frigitt under Creative Commons Navngivelse-DelPåSammeVilkår (se
Wikisida.no:Opphavsrett
for detaljer). Om du ikke vil at ditt materiale skal kunne redigeres og distribueres fritt må du ikke lagre det her.
Du lover oss også at du har skrevet teksten selv, eller kopiert den fra en kilde i offentlig eie eller en annen fri ressurs.
Ikke lagre opphavsrettsbeskyttet materiale uten tillatelse!
Avbryt
Redigeringshjelp
(åpnes i et nytt vindu)
Denne siden er medlem av 5 skjulte kategorier:
Kategori:Artikkelnavn som lett kan forveksles med andre artikkelnavn
Kategori:Artikler med offisielle lenker og uten kobling til Wikidata
Kategori:Artikler med seksjoner som behøver utvidelse
Kategori:Artikler uten offisielle lenker fra Wikidata
Kategori:CS1-vedlikehold: Uheldig URL
Navigasjonsmeny
Personlige verktøy
Ikke logget inn
Brukerdiskusjon
Bidrag
Opprett konto
Logg inn
Navnerom
Side
Diskusjon
norsk bokmål
Visninger
Les
Rediger
Rediger kilde
Vis historikk
Mer
Navigasjon
Forside
Siste endringer
Tilfeldig side
Hjelp til MediaWiki
Verktøy
Lenker hit
Relaterte endringer
Spesialsider
Sideinformasjon