Saltu al enhavo

Operaciumo

El Vikipedio, la libera enciklopedio
La labortablo de Ubuntu, Linukso-operaciumo de Canonical Ltd
Pozicio de operaciumo en funkcianta komputilo.

En komputado, operaciumomastrumsistemomastrumilo (angle operating systemOS), estas speciala programaro, sen kiu ne eblas uzi plispecifajn programarojn.[1] Ĝi oficas kiel "bazo", al kiu aliaj programaroj apogiĝas, kiuj do devos esti projektataj por tiu operacio, alie ili ne estos rekonataj. Tiel operaciumo estas nemalhavebla komponanto por ĉiuj komputoraj sistemoj. Laŭ pli serioza difino, operaciumo estas aro de subrutinoj kaj strukturo de datumoj respondecaj pri la kontrolo kaj administrado de komputilaj aparataroj kaj de programaroj, kiuj estas rulataj sur la komputilo.

La dominanta ĝeneralcela operaciumo por personaj komputiloj estas Microsoft Windows kun merkatparto de ĉirkaŭ 74.99%. macOS de Apple Inc. estas duaranga (14.84%), kaj la variaĵoj de Linux estas kolektive en la tria rango (2.81%).[2] Ĉe la sektoro de porteblaj aparatoj (inklude saĝtelefonojn kaj tabulkomputilojn), la merkatparto de Android estis de 70.82% en la jaro 2020.[3] Laŭ la datumoj de la tria kvarono de 2016, la merkatparto de Android ĉe saĝtelefono estas dominanta per 87.5 procento kun kreskindico de 10.3 procento jare, sekvita de iOS de Apple kun 12.1 procento kun jara malpliiĝo en la merkatparto de 5.2 procento, dum aliaj operaciumaj sistemoj atingas nur ĝuste al 0.3 procento.[4] Linuksaj distribuaĵoj estas dominantaj en la sektoroj de serviloj kaj komputilegoj.

Difino kaj celo

[redakti | redakti fonton]

Operaciumo estas malfacile difinebla,[5] sed ĝi estas nomata "la tavolo de programaro kiu administras la resursojn de komputilo por ĝiaj uzantoj kaj iliaj aplikaĵoj".[6] Operaciumoj inkluzivas la programaron kiu ĉiam funkcias, nomatan kerno — sed povas inkluzivi ankaŭ alian programaron.[5][7] La ​​du aliaj specoj de programoj kiuj povas funkcii sur komputilo estas sistemaj programoj — kiuj estas asociitaj kun la operaciumo, sed eble ne estas parto de la kerno — kaj aplikaĵoj — ĉia alia programaro.[7]

Estas tri ĉefaj celoj kiujn operaciumo plenumas:[8]

  • Operaciumoj asignas rimedojn inter malsamaj aplikaĵoj, decidante kiam ili ricevos tempon aŭ spacon de la centra procesoro (CPU) en memorilo.[8] Ĉe modernaj personaj komputiloj, uzantoj ofte volas ruligi plurajn aplikaĵojn samtempe. Por certigi, ke unu programo ne povas monopoligi la limigitajn aparatarajn rimedojn de la komputilo, la operaciumo donas al ĉiu aplikaĵo parton de la rimedo, ĉu en tempo (CPU) ĉu en spaco (memorilo).[9][10] La operaciumo ankaŭ devas izoli aplikaĵojn unu de la alia por protekti ilin kontraŭ eraroj kaj sekurecaj vundeblecoj en la kodo de alia aplikaĵo, sed ebligi komunikadojn inter malsamaj aplikaĵoj.[11]
  • Operaciumoj provizas interfacon kiu abstraktas la detalojn de aliro al aparataro (kiel fizika memorilo) por faciligi aferojn por programistoj.[8][12] Virtualigo ankaŭ ebligas al la operaciumo maski limigitajn aparatarajn rimedojn; ekzemple, virtuala memorilo povas provizi al programo la iluzion de preskaŭ senlima memorilo kiu superas la faktan memoron de la komputilo.[13]
  • Operaciumoj provizas komunajn servojn, kiel ekzemple interfacon por aliri retajn kaj diskajn aparatojn. Tio ebligas, ke aplikaĵo funkciu en malsama aparataro sen devi esti reskribita.[14] Kiujn servojn inkluzivi en operaciumo multe varias, kaj tiu funkcio konsistigas la grandan plimulton de kodo por la plej multaj operaciumoj.[15]

Funkciado

[redakti | redakti fonton]

Krome, la operaciumo disponigas la necesan infrastrukturon por ruli la operaciajn aplikaĵojn, kiu okazas kiam la komputilo estas ŝaltita, ekde startigo.

Kutime, operaciumo antaŭaranĝas por la uzanto grafikan aŭ tekstan interfacon por atingi la aparataron (diskoj, memoro, I/O) de la sistemo. En sistemoj kun pluruzanto-reĝimo, tia atingo dependas de la rajtoj de ĉiu unuopa uzanto. Tia atingo dependas, en sistemoj kiuj funkcias en pluruzanta reĝimo, kiu estras la rajtoj de ĉiu uzanto.

La ĉefa tasko de la operaciumo estas permesi al la uzanto, homa aŭ ne, rekte interagi kun la maŝino. Por tion fari la operaciumo disponigas tri interfacojn:

  1. Uzantinterfaco
  2. Interfaco por aparataro kaj periferia aparataro per la pelilo.
  3. Aplikprograma interfaco (API).

Estas tri ĉefaj funkcioj de la operaciumo:

  1. Asigno de rimedoj de la aparataro.
  2. Tempa planado kaj koordinado de la operacioj de aparataj komponantoj kaj programaj komponantoj
  3. Establi komunan infrastrukturon kaj fakorganizitan kadron de interfaco kaj servoj por la uzanto kaj la programarpakaĵoj

Strukturo

[redakti | redakti fonton]

Ĝenerale moderna operaciumo strukturiĝas en kelkaj defaŭltaj partoj:

  • La kerno: grupo de fundamentaj funkcioj, strikte ligitaj inter ili kaj kun la aparataro, kiuj estas rulataj kun la plej grandaj rajtoj, la kerna reĝimo; la kerno havigas la bazajn funkciojn por ĉiuj aliaj partoj de la operaciumo, kiuj plenumas proprajn funkciojn per servoj oferataj de la operaciumo. La kerno, laŭ la tipo de operaciumo, povas enhavi aliajn partojn (klasika kerno, unupecamodula) aŭ plenumi nur bazajn funkciojn, delegante plejeble multe funkciojn al objektoj/eksteraj kondukantoj (mikrokerno);
  • La administrilo de dosiersistemo: ĝi plenumas petojn por akiri al amasmemoriloj. Ĝi estas uzata kiam oni akiras al dosiero en disko kaj konservas trakon de malfermitaj dosieroj kaj de permesoj por akiri al dosieroj. ;
  • Sistemo de virtuala memoro, kiu disponigas petatan memoron de programaroj kaj de operaciumo mem, konservas en amasmemorilo la zonojn de memoro momente ne uzatajn de programarojn kaj garantias, ke la permutitaj paĝoj estas reenmetitaj en memoro, se petitaj;
  • Planilo, kiu skandas la tempon de plenumo de pluraj procezoj kaj garantias, ke ĉiu procezo estas rulata dum petita tempo;
  • Bufro, kiu ricevas de programaroj la presotajn datumojn kaj ĝi presas ilin laŭ ordo, tiel ke programaroj povas daŭrigi sen atendi, ke presado terminas;
  • Grafika interfaco (Ŝelo) kiu permesas homojn interagi kun maŝino.

Virtuala memoro

[redakti | redakti fonton]
Pli detalaj informoj troveblas en artikolo Virtuala memoro.

Virtuala memoro estas la nomo de teknologio uzata en komputiloj. Komputiloj funkciigas programon. Tiu programo bezonos komputilan memoron por funkcii, kaj efektivigi kion ĝi bezonas fari. Plej multaj komputiloj uzataj hodiaŭ povas fari pli ol unu agon samtempe, ili funkciigas pli ol unu programaro. Tio estas konata kiel plurtaska sistemo.

En tiu kazo, ĉiuj programoj aŭ programaroj kiuj funkcias samtempe en la komputilo partigas ties rimedojn. Komputilo ne havas pli da procesoroj aŭ da ĉefmemoro nur tial ke pli multe da programoj funkcias en ĝi.

Virtuala memoro estas la ideo, ke la programaro vidas blokon de memoro de difinita grando. La programaro povas uzi tiun memoron kiam ĝi vidas, ke ĝi taŭgas. Tiu bloko de memoro estas virtuala en la senco, ke ĝi devenas de malsamaj lokoj. Iuj povas esti en la ĉefmemoro de la komputilo, sed iuj ankaŭ povas esti sur la disko. La procesoro havas specialan eron, nomitan Aritmetika kaj logika unuo, kiu faras kelkajn el la transiroj inter programara memoro kaj sistem-rimedoj. Ankaŭ modernaj operaciumoj faras parton de la laboro.

Programplenumado

[redakti | redakti fonton]

La operaciumo provizas interfacon inter aplikaĵoprogramo kaj la komputila aparataro, tiel ke aplikaĵoprogramo povas interagadi kun la aparataro nur obeante regulojn kaj procedurojn programitajn en la operaciumon. La operaciumo estas ankaŭ aro da servoj, kiuj simpligas la disvolvon kaj plenumon de aplikaĵprogramoj. Plenumi aplikaĵoprogramon tipe implikas la kreadon de procezo fare de la kerno de la operaciumo, kiu asignas memorspacon kaj aliajn rimedojn, establas prioritaton por la procezo en plurtaskaj sistemoj, ŝarĝas duuman kodon de la programo en la memorilon, kaj iniciatas la plenumon de la aplikaĵoprogramo, kiu poste interagas kun la uzanto kaj kun aparataraj aparatoj. Tamen, en iuj sistemoj aplikaĵo povas peti, ke la operaciumo plenumu alian aplikaĵon ene de la sama procezo, ĉu kiel subrutino ĉu en aparta fadeno, ekz., la funkcioj LINK kaj ATTACH de OS/360 kaj posteuloj.

Interrompoj

[redakti | redakti fonton]

Interrompo (ankaŭ konata kiel aborto, escepto, eraro, signalo,[16]kaptilo)[17] provizas efikan manieron por ke plej multaj operaciumoj reagu al la medio. Interrompoj kaŭzas, ke la centra proceza unuo (CPU) havas ŝanĝon de kontrolfluo for de la nuntempe kuranta programo al interrompilo, ankaŭ konata kiel interrompa serva rutino (ISR).[18][19] Interrompa serva rutino povas kaŭzi, ke la centra procezilo (CPU) havu kuntekstan ŝanĝon.[20] Modernaj procesoroj provizas instrukciojn (ekz. SYSENTER) por alvoki elektitajn kernservojn sen interrompoj.[21] La detaloj pri kiel komputilo prilaboras interrompon varias de arkitekturo al arkitekturo, kaj la detaloj pri kiel interrompaj servaj rutinoj kondutas varias de operaciumo al operaciumo.[22] Tamen, pluraj interrompaj funkcioj estas oftaj.[22] La ​​arkitekturo kaj operaciumo devas:[22]

  1. transdonu kontrolon al interrompa servorutino.
  2. konservi la staton de la nuntempe funkcianta procezo.
  3. restarigi la staton post kiam la interrompo estas servita.

Tipoj de operaciumoj

[redakti | redakti fonton]

Plurkomputilaj operaciumoj

[redakti | redakti fonton]

Kun plurprocesoroj, pluraj CPU-oj kunhavas memorilon. Plurkomputilograpolkomputilo havas plurajn CPU-ojn, ĉiu el kiuj havas sian propran memorilon. Plurkomputiloj estis evoluigitaj ĉar grandajn plurprocesorojn malfacilas realigi kaj estas tro multekostaj;[23] ili estas universalaj en nuba komputado pro la grandeco de la bezonata maŝino.[24] La ​​malsamaj CPU-oj ofte bezonas sendi kaj ricevi mesaĝojn unu al la alia;[25] por certigi bonan rezulton, la operaciumoj por ĉi tiuj maŝinoj bezonas minimumigi ĉi tiun kopiadon de pakaĵ-retoj.[26] Pli novaj sistemoj ofte estas plurvicigitaj — apartigante grupojn de uzantoj en apartajn atendovicojn — por redukti la bezonon de pakaĵetkopiado kaj subteni pli da samtempaj uzantoj.[27] Alia tekniko estas fora rekta memoraliro, kiu ebligas al ĉiu CPU aliri memorilon apartenantan al aliaj CPU-oj.[25] Plurkomputilaj operaciumoj ofte subtenas malproksimajn procedurvokojn, kie CPU povas voki proceduron sur alia CPU,[28] aŭ distribuitan kunhavatan memorilon, en kiu la operaciumo uzas virtualigon por generi kunhavatan memorilon, kiu ne fizike ekzistas.[29]

Disaj sistemoj

[redakti | redakti fonton]

Disa sistemo aŭ distribuita sistemo estas grupo de apartaj, interkonektitaj komputiloj — ĉiu el kiuj eble havas sian propran operaciumon kaj dosiersistemon. Male al plurkomputiloj, ili povas esti disigitaj ie ajn en la mondo.[30] Mezprogramaro, plia programara tavolo inter la operaciumo kaj aplikaĵoj, ofte estas uzata por plibonigi koherecon. Kvankam ĝi funkcias simile al operaciumo, ĝi ne estas vera operaciumo.[31]

Enkonstruita operaciumo

[redakti | redakti fonton]

Enkonstruitaj operaciumoj estas dezajnitaj por uzo en enkonstruitaj komputilsistemoj, ĉu ili estas objektoj de la interreto de aĵoj aŭ ne konektitaj al reto. Enkonstruitaj sistemoj inkluzivas multajn hejmajn aparatojn. La distingilo estas, ke ili ne ŝarĝas uzanto-instalitan programaron. Sekve, ili ne bezonas protekton inter malsamaj aplikaĵoj, ebligante pli simplajn dezajnojn. Tre malgrandaj operaciumoj povas funkcii en malpli ol 10 kilobajtoj,[32] kaj la plej malgrandaj estas por inteligentaj kartoj.[33] Ekzemploj estas Enkonstruita Linukso, QNX, VxWorks, kaj la ekstra-malgrandaj sistemoj RIOT kaj TinyOS.[34]

Real-tempo

[redakti | redakti fonton]

Realtempa operaciumo estas operaciumo, kiu garantias prilabori eventojn aŭ datumojn je specifa momento. Malmolaj realtempaj sistemoj postulas precizan tempigon kaj estas oftaj en fabrikado, aviadiko, militistaro kaj aliaj similaj uzoj.[34] Ĉe molaj realtempaj sistemoj, la foja dezirata evento estas akceptebla; ĉi tiu kategorio ofte inkluzivas aŭdajn aŭ multmediajn sistemojn, same kiel poŝtelefonojn.[34] Por ke malmolaj realtempaj sistemoj estu sufiĉe precizaj en sia tempigo, ili ofte estas nur biblioteko sen protekto inter aplikaĵoj, kiel ekzemple eCos.[34]

Hipervizoro

[redakti | redakti fonton]

Hipervizoro estas operaciumo, kiu funkciigas virtualan maŝinon. La virtuala maŝino ne konscias, ke ĝi estas aplikaĵo kaj funkcias kvazaŭ ĝi havus sian propran aparataron.[13][35] Virtualaj maŝinoj povas esti paŭzitaj, konservitaj kaj rekomencitaj, kio igas ilin utilaj por esplorado, disvolviĝo,[36] kaj sencimigado de operaciumoj.[37] Ili ankaŭ plibonigas porteblecon ebligante, ke aplikaĵoj funkciu sur komputilo eĉ se ili ne kongruas kun la baza operaciumo.[13]

Biblioteko

[redakti | redakti fonton]
Pli detalaj informoj troveblas en artikolo Biblioteko (programado).

Biblioteka operaciumo (libOS) estas tia, en kiu la servoj, kiujn tipa operaciumo provizas, kiel ekzemple retigado, estas provizitaj en la formo de bibliotekoj kaj kunmetitaj per ununura aplikaĵo kaj konfiguracia kodo por konstrui unikernon: [38] specialigitan (nur la absolute necesaj pecoj de kodo estas eltiritaj el bibliotekoj kaj ligitaj kune[39])), ununuran adresspacon, maŝinan bildon, kiu povas esti deplojita en nubajn aŭ enigitajn mediojn.

La kodo de la operaciumo kaj la aplikaĵa kodo ne estas plenumataj en apartaj protektaj domajnoj (ekzistas nur ununura aplikaĵo funkcianta, almenaŭ koncepte, do ne necesas malhelpi interferon inter aplikaĵoj) kaj la operaciumaj servoj estas alireblaj per simplaj bibliotekaj vokoj (eble enliniigante ilin surbaze de kompililaj sojloj), sen la kutima ŝarĝo de kuntekstaj ŝaltiloj,[40] simile al enigitaj kaj realtempaj operaciumoj. Notu, ke ĉi tiu ŝarĝo ne estas nekonsiderinda: al la rekta kosto de reĝimŝanĝo necesas aldoni la nerektan poluadon de gravaj procesoraj strukturoj (kiel CPU-kaŝmemoroj, la instrukcia dukto, ktp.), kiu influas kaj uzantreĝiman kaj kernareĝiman rezulton. [41]

IBM System/360 Modelo 50 funkciigista konzolo kaj CPU; la funkciiganta konzolo estas terminalo uzata de la operaciumo por komuniki kun la funkciigilo.

La unuaj komputiloj fine de la 1940-aj kaj 1950-aj jaroj estis rekte programitaj aŭ per ŝtopiltabuloj aŭ per maŝinkodo enigita en mediojn kiel trukartoj, sen programlingvoj aŭ operaciumoj.[42] Post la enkonduko de la transistoro meze de la 1950-aj jaroj, oni komencis konstrui ĉefkomputilojn. Ĉi tiuj ankoraŭ bezonis profesiajn funkciigilojn (operatorojn)[42] kiuj permane faris tion, kion moderna operaciumo farus, kiel ekzemple plani funkciigindajn programojn,[43] sed ĉefkomputiloj ankoraŭ havis rudimentajn operaciumojn kiel Fortran Monitor System (FMS) kaj IBSYS.[44] En la 1960-aj jaroj, IBM lanĉis la unuan serion de interkongruaj komputiloj (System/360). Ĉiuj ili funkciigis la saman operaciumon — OS/360 — kiu konsistis el milionoj da linioj de asembla lingvo kun miloj da cimoj. OS/360 ankaŭ estis la unua populara operaciumo kiu subtenis plurprogramadon, tiel ke la CPU povus esti uzata por unu tasko dum alia atendis enigon/eligon (E/E). Teni plurajn taskojn en memorilo necesigis memordividon kaj protektojn kontraŭ unu tasko aliranta la memoron asignitan al alia.[45]

Ĉirkaŭ la sama tempo, teleksiloj komencis esti uzataj kiel terminaloj, por ke pluraj uzantoj povu samtempe aliri la komputilon. La operaciumo MULTICS celis permesi al centoj da uzantoj aliri grandan komputilon. Malgraŭ sia limigita adopto, ĝi povas esti konsiderata la antaŭulo de nuba komputado. La operaciumo Unikso originis kiel disvolviĝo de MULTICS por ununura uzanto.[46] Ĉar la fontkodo de Unikso estis havebla, ĝi fariĝis la bazo de aliaj, nekongruaj operaciumoj, el kiuj la plej sukcesaj estis System V de AT&T kaj Berkeley Software Distribution (BSD) de la Universitato de Kalifornio.[47] Por pliigi kongruecon, la IEEE publikigis la normon POSIX por aplikaĵaj programaj interfacoj (API-oj) de operaciumoj, kiu estas subtenata de la plej multaj UNIX-sistemoj. Minikso estis simpligita versio de Unikso, disvolvita en 1987 por edukaj uzoj, kiu inspiris la komerce haveblan, liberan programaron Linukson. Ekde 2008, Minikso estas uzata en regiloj de la plej multaj Intel-mikroĉipoj, dum Linukso estas vaste uzata en datumcentroj kaj Android-poŝtelefonoj.[48]

Mikrokomputiloj

[redakti | redakti fonton]
Komandlinia interfaco de la operaciumo MS-DOS.
Grafika uzantinterfaco de Macintosh.

La invento de grandskala integriĝo ebligis la produktadon de personaj komputiloj (komence nomataj mikrokomputiloj) ekde ĉirkaŭ 1980.[49] Dum ĉirkaŭ kvin jaroj, la CP/M (Kontrolprogramo por Mikrokomputiloj) estis la plej populara operaciumo por mikrokomputiloj.[50] Poste, IBM aĉetis la DOS (Disk Operating System) de Microsoft. Post modifoj petitaj de IBM, la rezulta sistemo nomiĝis MS-DOS (MicroSoft Disk Operating System) kaj estis vaste uzata sur IBM-mikrokomputiloj. Pli postaj versioj pliigis sian sofistikecon, parte pruntante funkciojn de UNIX.[50]

La Makintoŝo de Apple estis la unua populara komputilo kiu uzis grafikan uzantinterfacon (GUI). La GUI pruviĝis multe pli uzanto-amika ol la nur-teksta komandlinia interfaco, kiun pli fruaj operaciumoj uzis. Post la sukceso de Makintoŝo, MS-DOS estis ĝisdatigita per GUI fako nomata Vindozo. Vindozo poste estis reskribita kiel memstara operaciumo, pruntante tiom da funkcioj de alia (VAX VMS), ke granda jura kompromiso estis pagita.[51] En la dudekunua jarcento, Vindozo daŭre estas populara sur personaj komputiloj, sed havas malpli da merkatpartopreno de serviloj. Uniks-operaciumoj, precipe Linukso, estas la plej popularaj ĉe entreprenaj sistemoj kaj serviloj, sed ankaŭ estas uzataj en porteblaj aparatoj kaj multaj aliaj komputilaj sistemoj.[52]

Ĉe porteblaj aparatoj, la operaciumo Symbian komence superregis, anstataŭita de BlackBerry OS (enkondukita en 2002) kaj iOS por iFonoj (ekde 2007). Poste, la malfermfonteca operaciumo Android (enkondukita en 2008), kun Linuksa kerno kaj C-biblioteko (Bionic) parte bazita sur BSD-kodo, fariĝis plej populara.[53]

Bontenado

[redakti | redakti fonton]

Operaciumoj foje detektas sekurecajn vundeblecojn, kiuj povas damaĝi la uzanton, lian verkon kaj datumojn. Ĉi tiuj vundeblecoj povas esti protektitaj instalante sekurecajn flikaĵojn provizitajn de la fabrikanto de la operaciumo.

Operaciumoj por labortablaj kaj porteblaj komputiloj

[redakti | redakti fonton]

Operaciumoj por porteblaj aparatoj

[redakti | redakti fonton]

Operaciumoj por saĝhorloĝoj

[redakti | redakti fonton]

Realtempaj operaciumoj

[redakti | redakti fonton]

Realtempa operaciumo estas speciala ĝenro de operaciumo, kapablaj garantii respondon en fiksita tempo (milisekundoj aŭ mikrosekundoj) al ĉiu ekstera okazo. Ĉi tiu rekvizito influas en la strukturo de la sistemo: realtempaj sistemoj uzas ofte la polling-teĥniko anstataŭ ol interrompo por administri la aparatojn keaj ne havas virtualan memoron. La realtempaj sistemoj troviĝas ofte en industria aŭ muzika kadroj aŭ kie respondo de sistemo en maksimuma tempo antaŭfiksita necesas.

  1. Inter aliaj: Tanenbaum, A. (1992) Modern Operating Systems, Englewood Cliffs: Prentice-Hall; Haldar, S. kaj Aravind, A. A. (2010) Operating Systems, Pearson Education India, pp. 12 kaj sekvaj; Turner, R. W. (1986) Operating Systems: design and implementation, MacMillan.
  2. Desktop Operating System Market Share Worldwide (angle). Arkivita el la originalo je 27a de Januaro 2020. Alirita 2022-10-12 .
  3. Mobile & Tablet Operating System Market Share Worldwide (angle). Arkivita el la originalo je 1a de Novembro 2020. Alirita 2022-10-12 .
  4. Strategy Analytics: Android Captures Record 88 Percent Share of Global Smartphone Shipments in Q3 2016 (2a de Novembro, 2016). Arkivita el la originalo je 5a de Novembro 2016.
  5. 5,0 5,1 Tanenbaum & Bos 2023, p. 4.
  6. Anderson & Dahlin 2014, p. 6.
  7. 7,0 7,1 Silberschatz et al. 2018, p. 6.
  8. 8,0 8,1 8,2 Anderson & Dahlin 2014, p. 7.
  9. Anderson & Dahlin 2014, pp. 9–10.
  10. Tanenbaum & Bos 2023, pp. 6-7.
  11. Anderson & Dahlin 2014, p. 10.
  12. Tanenbaum & Bos 2023, p. 5.
  13. 13,0 13,1 13,2 Anderson & Dahlin 2014, p. 11.
  14. Anderson & Dahlin 2014, pp. 7, 9, 13.
  15. Anderson & Dahlin 2014, pp. 12–13.
  16. Kerrisk, Michael. (2010) The Linux Programming Interface. No Starch Press. ISBN 978-1-59327-220-3. “A signal is a notification to a process that an event has occurred. Signals are sometimes described as software interrupts.”.
  17. Hyde, Randall. (1996) “Chapter Seventeen: Interrupts, Traps and Exceptions (Part 1)”, The Art Of Assembly Language Programming. No Starch Press. “The concept of an interrupt is something that has expanded in scope over the years. The 80x86 family has only added to the confusion surrounding interrupts by introducing the int (software interrupt) instruction. Indeed, different manufacturers have used terms like exceptions, faults, aborts, traps and interrupts to describe the phenomena this chapter discusses. Unfortunately there is no clear consensus as to the exact meaning of these terms. Different authors adopt different terms to their own use.”.
  18. Tanenbaum, Andrew S.. (1990) Structured Computer Organization, Third Edition. Prentice Hall. ISBN 978-0-13-854662-5. “Like the trap, the interrupt stops the running program and transfers control to an interrupt handler, which performs some appropriate action. When finished, the interrupt handler returns control to the interrupted program.”.
  19. Silberschatz, Abraham. (1994) Operating System Concepts, Fourth Edition. Addison-Wesley. ISBN 978-0-201-50480-4. “When an interrupt (or trap) occurs, the hardware transfers control to the operating system. First, the operating system preserves the state of the CPU by storing registers and the program counter. Then, it determines which type of interrupt has occurred. For each type of interrupt, separate segments of code in the operating system determine what action should be taken.”.
  20. Silberschatz, Abraham. (1994) Operating System Concepts, Fourth Edition. Addison-Wesley. ISBN 978-0-201-50480-4. “Switching the CPU to another process requires saving the state of the old process and loading the saved state for the new process. This task is known as a context switch.”.
  21. Vizitu [1] por plua informo.
  22. 22,0 22,1 22,2 Silberschatz, Abraham. (1994) Operating System Concepts, Fourth Edition. Addison-Wesley. ISBN 978-0-201-50480-4.
  23. Tanenbaum & Bos 2023, p. 557.
  24. Tanenbaum & Bos 2023, p. 558.
  25. 25,0 25,1 Tanenbaum & Bos 2023, p. 565.
  26. Tanenbaum & Bos 2023, p. 562.
  27. Tanenbaum & Bos 2023, p. 563.
  28. Tanenbaum & Bos 2023, p. 569.
  29. Tanenbaum & Bos 2023, p. 571.
  30. Tanenbaum & Bos 2023, p. 579.
  31. Tanenbaum & Bos 2023, p. 581.
  32. Tanenbaum & Bos 2023, pp. 37-38.
  33. Tanenbaum & Bos 2023, p. 39.
  34. 34,0 34,1 34,2 34,3 Tanenbaum & Bos 2023, p. 38.
  35. Silberschatz et al. 2018, pp. 701.
  36. Silberschatz et al. 2018, pp. 705.
  37. Anderson & Dahlin 2014, p. 12.
  38. Madhavapeddy, Anil; Scott, David J (November 2013). "Unikernels: Rise of the Virtual Library Operating System: What if all the software layers in a virtual appliance were compiled within the same safe, high-level language framework?". Queue. Vol. 11, no. 11. New York, NY, USA: ACM. pp. 30–44. doi:10.1145/2557963.2566628. ISSN 1542-7730. Retrieved 2024-08-07.
  39. Build Process - Unikraft. Arkivita el la originalo je 2024-04-22. Alirita 2024-08-08 .
  40. Leave your OS at home: the rise of library operating systems. ACM SIGARCH (2017-09-14). Arkivita el la originalo je 2024-03-01. Alirita 2024-08-07 .
  41. Soares, Livio Baldini; Stumm, Michael (4a de Oktobro 2010). FlexSC: Flexible System Call Scheduling with Exception-Less System Calls. OSDI '10, 9th USENIX Symposium on Operating System Design and Implementation. USENIX. Alirita la 9an de Aŭgusto 2024. p. 2: "Synchronous implementation of system calls negatively impacts the performance of system intensive workloads, both in terms of the direct costs of mode switching and, more interestingly, in terms of the indirect pollution of important processor structures which affects both user-mode and kernel-mode performance. A motivating example that quantifies the impact of system call pollution on application performance can be seen in Figure 1. It depicts the user-mode instructions per cycles (kernel cycles and instructions are ignored) of one of the SPEC CPU 2006 benchmarks (Xalan) immediately before and after a pwrite system call. There is a significant drop in instructions per cycle (IPC) due to the system call, and it takes up to 14,000 cycles of execution before the IPC of this application returns to its previous level. As we will show, this performance degradation is mainly due to interference caused by the kernel on key processor structures."
  42. 42,0 42,1 Tanenbaum & Bos 2023, p. 8.
  43. Arpaci-Dusseau, Remzi. (2015) Operating Systems: Three Easy Pieces.
  44. Tanenbaum & Bos 2023, p. 10.
  45. Tanenbaum & Bos 2023, pp. 11–12.
  46. Tanenbaum & Bos 2023, pp. 13–14.
  47. Tanenbaum & Bos 2023, pp. 14–15.
  48. Tanenbaum & Bos 2023, p. 15.
  49. Tanenbaum & Bos 2023, pp. 15–16.
  50. 50,0 50,1 Tanenbaum & Bos 2023, p. 16.
  51. Tanenbaum & Bos 2023, p. 17.
  52. Tanenbaum & Bos 2023, p. 18.
  53. Tanenbaum & Bos 2023, pp. 19–20.
  54. Actividad Pulsera. «Google cambia Android Wear por Wear OS». Arkivigite je 2021-06-15 per la retarkivo Wayback Machine

Bibliografio

[redakti | redakti fonton]
  • (September 1981) “The Evolution of the MVS Operating System”, IBM Journal of Research and Development 25 (5), p. 471–482. doi:10.1147/rd.255.0471. 
  • Bic, Lubomur F.. (2003) Operating Systems. Pearson: Prentice Hall.


En hispana

[redakti | redakti fonton]
  • Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg (2006). Fundamentos de sistemas operativos (7a eldono). McGraw-Hill. ISBN 84-481-4641-7.
  • Stallings, William (2005). Sistemas operativos: aspectos internos y principios de diseño (5a eldono). Pearson Prentice Hall. ISBN 978-84-205-4462-5.
  • Tanenbaum, Andrew S. (2009). Sistemas operativos modernos (3a eldono). Pearson Prentice Hall. ISBN 978-607-442-046-3.
  • itale Architettura dei Sistemi di Elaborazione, volume 1 - Fondamenti!, firmware, architetture parallele. F. Baiardi, A. Tomasi e Marco Vanneschi, 1988, Franco Angeli Edizioni, ISBN 88-204-2746-X.
  • itale Architettura dei Sistemi di Elaborazione, volume 2 - Sistemi operativi, multiprocessore e distribuiti. F. Baiardi, A. Tomasi, Marco Vanneschi, 1987, Franco Angeli Edizioni, ISBN 88-204-2746-X.
  • itale Sistemi operativi - Concetti ed esempi. A. Silberschatz, P. Galvin, G. Gagne, 2006, Pearson Education Italia, ISBN 88-7192-233-6.