Operativsystem och miljöer. Operativsystem, miljöer och skal


Operativsystem (OS) i sin moderna mening (deras syfte och essens) dök upp mycket senare än de första datorerna (även om de tydligen kommer att försvinna i detta väsen i framtidens datorer). Varför och när dök OS upp? Räknar 1) att den första digitala datorn ENIAC (Electronic Numerical Integrator and Computer) skapades 1946 under Project PX av det amerikanska försvarsdepartementet. 500 000 dollar spenderades på genomförandet av projektet. Datorn innehöll 18 000 elektronrör, en massa av all slags elektronik, inkluderade 12 tiobitars adderare, och för att påskynda vissa aritmetiska operationer hade den en multiplikator och en "delar-extraktor" av en kvadratrot. Programmeringen reducerades till att länka olika block med ledningar. Naturligtvis fanns ingen programvara, än mindre operativsystem, då.

Intensivt skapande av olika modeller av datorer går tillbaka till början av 50-talet av förra seklet. Under dessa år deltog samma grupper av människor i designen, och i skapandet, och i programmeringen och i driften av datorer. Programmering utfördes uteslutande på maskinspråk(och senare i assembler) fanns det ingen systemmjukvara förutom bibliotek med matematik och verktygsrutiner. Operativsystem hade ännu inte dykt upp, och alla uppgifter för att organisera beräkningsprocessen löstes manuellt av varje programmerare från en primitiv datorkontrollpanel.

Med tillkomsten av halvledarelement har datorernas beräkningskapacitet vuxit avsevärt. Tillsammans med detta har prestationer inom området för automatisering av programmering och organisering av beräkningsarbete framskridit märkbart. Algoritmiska språk (Algol, Fortran, Cobol) och system programvara(översättare, länkredigerare, laddare, etc.). Genomförandet av programmen blev mer komplicerat och omfattade följande huvudåtgärder:

starta översättaren och hämta programmet i maskinkoder;

länka programmet med biblioteksrutiner;

Startar programmet

utmatning av programmets resultat till en utskrift eller annan kringutrustning.

För att organisera den effektiva laddningen av alla datoranläggningar introducerade personalen på datorcenter positionerna för specialutbildade operatörer som professionellt utförde arbetet med att organisera beräkningsprocessen för alla användare av detta center. Men oavsett hur förberedd operatören är, är det svårt för honom att konkurrera i prestanda med driften av datorenheter. Och så för det mesta var den dyra processorn inaktiv, och därför var användningen av datorer inte effektiv.


För att eliminera driftstopp gjordes försök att utveckla speciella program - monitorer, prototyper av de första operativsystemen som automatiskt växlade från uppgift till uppgift. Man tror att forskningslaboratoriet för företaget General Motors skapade det första operativsystemet 1952 för sina IBM-701-datorer. 1955 utvecklade detta företag och North American Aviation tillsammans ett operativsystem för IBM-704-datorn.

I slutet av 50-talet av förra seklet levererade ledande tillverkare Operativsystem med följande egenskaper:

Batchbearbetning av en uppgiftsström;

Tillgänglighet av standardprogram för input/output;

Möjlighet till automatisk övergång från program till program;

· felåterställningsverktyg som ger automatisk "rensning" av datorn i händelse av en nödsituation slutförande av nästa uppgift och låter dig köra nästa uppgift med minimal operatörsingripande;

· Jobbkontrollspråk som tillåter användare att beskriva sina jobb och de resurser som krävs för att slutföra dem.

Ett paket är en uppsättning (lek) med hålkort organiserade på ett speciellt sätt (uppgift, program, data). För att påskynda arbetet kunde det överföras till ett magnetband eller en skiva. Detta gjorde det möjligt att minska stilleståndstiden för dyr utrustning. Jag måste säga att för närvarande, på grund av framstegen inom mikroelektronisk teknik och programmeringsmetoder, har kostnaden för hårdvara och mjukvara minskat avsevärt. datateknik. Därför ligger fokus nu på att effektivisera användarnas och programmerarnas arbete, eftersom arbetskostnaderna för skickliga specialister nu utgör en mycket större del av den totala kostnaden för datorsystem än hårdvara och programvara datorer.

Placeringen av operativsystemet i den hierarkiska strukturen av datorprogramvara och hårdvara kan representeras som visas i fig. 1.1.

Ris. 1.1. Hierarkisk struktur av mjukvara och hårdvara

Den lägsta nivån innehåller olika enheter dator, bestående av mikrokretsar, ledare, strömförsörjning, katodstrålerör etc. Detta lager kan delas in i underlager, såsom enhetskontroller och sedan själva enheterna. Det går att dela upp i fler nivåer. Ovan är den mikroarkitektoniska nivån, där fysiska enheter behandlas som separata funktionella enheter.

På mikroarkitektonisk nivå finns det interna register för den centrala processorn (det kan finnas flera av dem) och aritmetiska logiska enheter med medel för att styra dem. På denna nivå implementeras exekveringen av maskininstruktioner. I processen för att utföra instruktioner används registren för processorn och enheterna, såväl som andra hårdvarufunktioner. Kommandon som är synliga för programmeraren som arbetar i assembler bildar ISA-skiktet (Instruction Set Architecture), ofta kallat maskinspråk.

Operativsystemet är utformat för att dölja alla dessa komplexiteter. Slutanvändaren är vanligtvis inte intresserad av detaljerna i datorns hårdvarudesign. Han ser datorn som en uppsättning applikationer. En applikation kan skrivas av en programmerare på vilket programmeringsspråk som helst. För att förenkla detta arbete använder programmeraren en uppsättning systemprogram, av vilka några kallas verktyg. Med deras hjälp implementeras ofta använda funktioner som hjälper till att arbeta med filer, styra I/O-enheter etc. Programmeraren använder dessa verktyg när han utvecklar program, och applikationer under körning kräver verktyg för att utföra vissa funktioner. Det viktigaste av systemprogrammen är operativsystemet, som befriar programmeraren från behovet av djup kunskap om datorn och ger honom ett bekvämt gränssnitt för dess användning. Operativsystemet fungerar som en mellanhand, vilket gör det lättare för programmeraren, användarna och mjukvaruapplikationer tillgång till olika tjänster och funktioner på datorn.

På det här sättet, operativ systemär en uppsättning program som styr driften av applikationsprogram och systemapplikationer och fungerar som ett gränssnitt mellan användare, programmerare, applikationsprogram, systemapplikationer och datorhårdvara.

Bildligt kan vi säga att datorhårdvaran ger "rå" datorkraft, och operativsystemets uppgift är att göra användningen av denna datorkraft tillgänglig och så bekväm som möjligt för användaren. Programmeraren kanske inte känner till detaljerna för att hantera specifika resurser (till exempel en disk) på en dator och måste göra lämpliga anrop till operativsystemet för att få från det nödvändiga tjänster och funktioner. Denna uppsättning tjänster och funktioner är den operativa miljön där applikationsprogram körs.

På det här sättet, driftsmiljöär en mjukvarumiljö bildad av operativsystemet som definierar ett applikationsprogrammeringsgränssnitt (API) som en uppsättning systemfunktioner och tjänster ( systemsamtal), som tillhandahålls applikationsprogram. Operativmiljön kan inkludera flera applikationsprogrammeringsgränssnitt. Utöver den huvudsakliga operativa miljön, kallad naturlig (native), kan ytterligare programvarumiljöer organiseras genom emulering (simulering), vilket gör att du kan köra applikationer som är designade för andra operativsystem och till och med andra datorer.

Ett annat viktigt koncept relaterat till operativsystemet avser implementeringen av användargränssnitt. Som regel ger vilket operativsystem som helst en bekväm användarupplevelse genom användargränssnittsverktyg. Dessa verktyg kan vara en integrerad del av operativmiljön (till exempel grafik Windows-gränssnitt eller ett textbaserat MS DOS kommandoradsgränssnitt), eller kan implementeras av ett separat systemprogram - ett operativsystemskal (till exempel Norton Commander för MS DOS). I allmänhet under operativsystems skal avser en del av operativmiljön som definierar användargränssnittet, dess implementering (text, grafik, etc.), användarens kommando- och tjänstemöjligheter för hantering av applikationsprogram och en dator.

Låt oss gå vidare för att överväga utvecklingen av operativsystem.

Operativsystem (OS) är nu en obligatorisk komponent i datorsystemprogramvara. Utan ett operativsystem är det omöjligt att fungera på en dator och att utföra användaruppgifter.

Ett operativsystem är ett komplex av sammankopplade program som tillhandahåller ett gränssnitt mellan applikationer och användare å ena sidan och datorhårdvara å andra sidan och implementerar rationell hantering av datorresurser (i enlighet med vissa kriterier).

Från en vanlig användares synvinkel (som inte är en professionell inom informationsteknologi) utför operativsystemet två huvudfunktioner:

Ger ett användarvänligt gränssnitt;

Säkerställer effektiv användning hårdvara och mjukvara datorresurser.

Gränssnittet som tillhandahålls för användaren fungerar som ett gränssnitt mellan applikationer och användaren å ena sidan och datorhårdvaran å andra sidan.

Typiska objekt som en normal användare manipulerar när han arbetar i ett visst operativsystems miljö är diskar, mappar och filer, fönster och olika grafiska (om ett grafiskt användargränssnitt används) fönsterelement (knappar, etc.). OS tillhandahåller ett användargränssnitt (UI) för att manipulera dessa objekt. OS:s uppgift är att tillhandahålla det mest vänliga, det vill säga kräver ett minimum av specialkunskaper, intuitivt användargränssnitt. För närvarande används grafik i stor utsträckning för att lösa detta problem i användargränssnittet. Detta gränssnitt kallas GUI användare - GUI (grafiskt användargränssnitt).

OS förser programmeraren med ett programmeringsgränssnitt (applikationsprogrammeringsgränssnitt) - API (applikationsprogrammeringsgränssnitt). Det är en standardiserad uppsättning funktioner, procedurer och andra programvarukomponenter som befriar programmeraren från att utföra rutinoperationer. Med den angivna uppsättningen funktioner begär applikationen funktioner på lägre nivå (vanligtvis operativsystemfunktioner). Ju rikare denna uppsättning är, desto bredare är möjligheterna för en eller annan funktion från denna uppsättning, desto lättare är det för programmeraren att implementera rutinmässiga, typiska applikationsfunktioner när han interagerar med operativsystemet. På fig. 3.4 är ett diagram över OS-gränssnitt.

Det följer av detta schema att användaren och applikationer (program) interagerar med varandra inte direkt, utan genom OS. Applikationerna själva interagerar också med varandra endast genom "mellanhanden" - OS.

Lösningen av alla problem på en dator kräver viss information, mjukvara och hårdvara, som

Ris. 3.4. Operativsystems gränssnitt

agera i förhållande till att problemet löses som resurser. I det allmänna fallet kan varje process (procedur) för programmet som löses eller ett annat program (när flera program körs på datorn samtidigt) kräva tillgång till en resurs som redan är upptagen av en annan procedur (program). Det finns ett problem med optimal, baserat på vissa kriterier, distribution begränsade resurser mellan processer (program). Detta är problemet som OS måste lösa.

Tillsammans med ovanstående två huvudfunktioner utför operativsystemet ett antal andra, inklusive tjänste, varav de viktigaste är:

Bearbetning av nödsituationer (nödsituationer) som uppstår vid problemlösning;

Diagnostik och serviceunderhåll av diskar - korrigering av fel i adresseringsdata som finns på diskar, optimering av dataplacering på en disk;

Konfiguration av datorhårdvara efter användarens behov.

För närvarande bestäms detaljerna för ett visst operativsystem till stor del av typen av hårdvara (hårdvaruplattform) som det är orienterat på. Därför, beroende på vilken typ av hårdvara som OS är avsett för, skiljer de mellan stordator OS (stora datorer) och persondator OS.

OS för persondatorer kan delas in i:

Single-tasking och multi-tasking (beroende på det tillåtna antalet samtidigt lösta uppgifter);

Enanvändare och flera användare (beroende på det tillåtna antalet samtidigt betjänade användare);

Enkel och multiprocessor (beroende på det tillåtna antalet processorer i datorns hårdvara);

Lokalt och nätverk (baserat på förmågan att arbeta i lokala nätverk; lokala operativsystem är designade för en fristående dator; nätverksoperativsystem är fokuserade på att säkerställa driften av datorer i ett lokalt nätverk).

Det bör noteras att moderna operativsystem som regel är nätverksbaserade i en eller annan grad. Om en speciell dator (kallad server) är tilldelad i det lokala nätverket för att betjäna nätverksinteraktion, kallas operativsystemet som fokuserar på sådan service av hela nätverket server. I det här fallet kallas operativsystemet som är installerat på andra datorer (klienter) klient (eller arbetsstations OS). Till exempel stöder Windows 98 OS inte bara offline-drift av datorn, utan kan också fungera som ett klientoperativsystem.

För mer information om nätverksoperativsystem, se kap. fem.

Tänk på utvecklingen av operativsystem. De första datorerna hade inget OS. Samma specialister designade, programmerade och skötte datorer. Programmering gjordes på maskinspråk. Det fanns ingen systemprogramvara. Gradvis, med förbättringen av utrustningen, dök de första algoritmiska språken upp, vars användning gjorde det möjligt att utöka kretsen av datoranvändare.

Detta krävde både effektivare organisering av deras arbete på en dator och effektivare användning av datorhårdvaruresurser, i första hand processorn (det var nödvändigt att minimera processoravbrott när man förberedde en uppgift för exekvering på en dator av en operatör). För att lösa detta problem utvecklades batchdatabehandlingssystem som automatiserade operatörens arbete med att förbereda beräkningsprocessen och gjorde det möjligt att starta inte en utan flera uppgifter (en batch) för exekvering. Dessa system blev de första systemprogrammen, prototypen av OS, d.v.s. uppdelningen av programvara i system och applikation dök upp. För 1965-1975 det finns en "guldålder" i utvecklingen av operativsystemet. Det var under dessa år som alla huvudmetoder och mekanismer som kännetecknar moderna operativsystem utvecklades och implementerades. Den viktigaste händelsen var den industriella implementeringen av multiprogrammering - en metod för att organisera en datorprocess där flera program som använder samma processor placeras i datorns minne samtidigt. Detta gjorde det möjligt att avsevärt öka effektiviteten i användningen av dyra datorer. Nästa prestation, som redan direkt påverkar användargränssnittets möjligheter, var utvecklingen av tidsdelningssystem som gav användaren möjlighet att arbeta på sin egen monitor (terminal) och i en multianvändare (multiterminal) driftläge skapade illusionen av att användaren exklusivt ägde datorresurser (baserat på multiprogramdriftsläget). Detta ökade avsevärt bekvämligheten för datoranvändare. I början av 70-talet. de första nätverksoperativsystemen dök upp, vilket krävde betydande ansträngningar för att standardisera protokollen (reglerna) för utbyte i nätverk. Tidigt 80-tal präglat av tillkomsten av persondatorer. En av huvuduppgifterna, i samband med orienteringen av dessa datorer till den stora, vanliga användaren, var uppgiften att utveckla ett användarvänligt användargränssnitt. Övrig viktig uppgift- utveckling av nätverkskomponenter i operativsystemet för att föra persondatorers förmåga att lösa komplexa problem till förmågan hos kraftfulla stora datorer - stordatorer (genom att "kombinera" sina datorresurser i ett nätverk). Det är lösningen av dessa problem som bestämmer riktningen för utvecklingen av moderna operativsystem.

Som nämnts ovan ger moderna operativsystem möjligheten att driva en dator i ett nätverk. De vanligaste OS-familjerna är Unix, Windows, Netware. MS DOS OS - tills nyligen ett av de mest populära operativsystemen för persondatorer - används praktiskt taget inte som ett OS för en modern dator. Ändå finns det en hel del program fokuserade på att arbeta under kontroll av just detta operativsystem. Både fördelarna och nackdelarna med detta operativsystem har haft stor inverkan på utvecklingen av bättre operativsystem. När man utvecklar moderna operativsystem ägnas mycket uppmärksamhet åt frågorna om deras portabilitet (dvs möjligheten att fungera) på olika hårdvaruplattformar, förbättra användargränssnittet med operativsystemet, utveckla metoder för att organisera parallell datoranvändning som avsevärt kan snabba upp lösningen av problem på en dator.

Ett typiskt exempel på systemprogramvara, tillsammans med OS, är operativa miljöer och skal, vars främsta skäl till utvecklingen var önskan att mer fullt ut tillgodose användarkraven för ett gränssnitt med en dator. En vanlig användare är ofta inte helt nöjd med kapaciteten hos ett visst operativsystem. Först och främst är denna situation typisk för de operativsystem som kräver att användaren strikt följer reglerna för dialog med datorn. En typisk representant för sådana operativsystem är MS DOS. Men även avancerade (i jämförelse med MS DOS) användargränssnittsverktyg i Windows OS-familjen kan av en eller annan anledning inte passa användaren.

En liknande situation uppstår när användaren är en programmerare. Förutom ett användarvänligt gränssnitt, samt vanlig användare, behöver programmeraren avancerade API-verktyg (Application Programming Interface) som är nödvändiga för att applikationer ska kunna interagera med operativsystemet genom systemproceduranrop.

API-kapaciteten bestäms i första hand av de verktyg som tillhandahålls programmeraren av operativsystemet. En programmerare är dock ofta missnöjd med de möjligheter som ges honom, särskilt i operativsystem som MS DOS.

Operativmiljön är en uppsättning systemprogram, vars huvudsakliga syfte är att förse användaren med både ett användargränssnitt (UI) och ett applikationsprogrammeringsgränssnitt (API), som är avsevärt överlägsna i sina möjligheter jämfört med liknande gränssnitt som tillhandahålls av operativ system. En utmärkande egenskap hos operativmiljön är att den är byggd ovanpå det befintliga operativsystemet, det vill säga dess drift är omöjlig utan detta operativsystem. Det mest typiska exemplet på en framgångsrik operativmiljö är Windows-3.1, som implementeras som ett tillägg till MS DOS.

Operativskalet är ett komplex av systemprogram som ger ett vänligt användargränssnitt (UI) med operativsystemet, vilket är överlägset på ett eller annat sätt (som regel när det gäller icke-proceduralitet och närhet till användarens språk professionell aktivitet) till liknande användargränssnittsverktyg som tillhandahålls av själva operativsystemet.

Vad består ett datorsystem av? Från vad det i engelsktalande länder är brukligt att kalla ordet hårdvara, eller teknisk support: processor, minne, bildskärm, diskenheter, etc., förenade av en stamnätsanslutning, som kallas en buss.


Dela arbete på sociala nätverk

Om detta verk inte passar dig finns en lista med liknande verk längst ner på sidan. Du kan också använda sökknappen


Avsnitt 1 Operativsystem, miljöer och skal sid. 18 av 18

Föreläsning 1

Föreläsning 1 - Introduktion till operativsystem - definition, syfte och utvecklingshistoria.

Vad är ett operativsystem

Strukturera datorsystem

Vad är OS

Operativsystem som en virtuell maskin

Operativsystem som resursansvarig

Operativsystemet som beskyddare av användare och program

Operativsystemet som en ständigt fungerande kärna

En kort historia av utvecklingen av datorsystem

Första perioden (1945–1955). Lampa bilar. Inga operativsystem

Andra perioden (1955–början av 60-talet). Datorer baserade på transistorer. Batch operativsystem

Tredje perioden (tidigt 60-tal - 1980). Datorbaserat integrerade kretsar. Första multitasking OS

Fjärde perioden (från 1980 till idag). Personliga datorer. Klassisk, nätverk och distribuerade system

Grundläggande begrepp, OS-koncept

Systemsamtal

Avbryter

Undantag

Filer

Processer, trådar

Arkitektoniska egenskaper hos operativsystemet

Monolitisk kärna

System i lager

Virtuella maskiner

Mikronukleär arkitektur

blandade system

OS-klassificering

Multitasking-implementering

Stöd för flera spelare

Multibearbetning

Realtidssystem

Slutsats

Bilaga 1.

Lite information om datorarkitektur

Interaktion med kringutrustning

  1. Föreläsning 1 - Introduktion till operativsystem - definition, syfte och utvecklingshistoria.
  2. Vad är ett operativsystem
    1. Datorsystemstruktur

Vad består ett datorsystem av? För det första, från vad det i engelsktalande länder är vanligt att kalla ordet hårdvara, eller teknisk support: CPU , minne, bildskärm, diskenheter etc., förenade av en stamnätsanslutning, som kallas en buss.

För det andra består datorsystemet av mjukvara. All mjukvara är vanligtvis uppdelad i två delar: applikation och system. Tillämpningsmjukvara inkluderar vanligtvis en mängd olika bank- och andra affärsprogram, spel, ordbehandlare, etc. Systemprogramvara förstås vanligtvis som program som underlättar drift och utveckling av applikationsprogram. Jag måste säga att uppdelningen i applikations- och systemprogramvara är delvis villkorad och beror på vem som gör en sådan uppdelning. Så en vanlig användare, oerfaren i programmering, kan betrakta Microsoft Word som ett systemprogram, men från en programmerares synvinkel är detta en applikation. C-kompilator för den genomsnittliga programmeraren − systemprogram, och för systemet - tillämpas. Trots denna otydliga linje kan denna situation visas som en sekvens av lager (se fig. 1.1), och markerar separat den vanligaste delen av systemprogramvaran - operativsystemet:

Ris. 1.1. Lager av programvara för datorsystem

  1. Vad är OS

De flesta av användarna har erfarenhet av driftoperativsystem, men ändå har de svårt att ge detta begrepp en exakt definition. Låt oss ta en snabb titt på de viktigaste synpunkterna.

  1. Operativsystem som en virtuell maskin

OS utveckling abstraktion används i stor utsträckning, vilket är en viktig metod för förenkling och låter dig koncentrera dig på interaktionen mellan komponenter på hög nivå i systemet och ignorera detaljerna i deras genomförande. I det här sammanhanget OS är gränssnittet mellan användaren och datorn.

Arkitekturen för de flesta datorer på nivån för maskininstruktioner är mycket obekväm för användning av applikationsprogram. Att arbeta med en disk kräver till exempel kunskap om dess interna struktur. elektronisk komponent- en kontroller för att mata in kommandon för att rotera disken, söka och formatera spår, läsa och skriva sektorer, etc.

Det är tydligt att den genomsnittliga programmeraren inte kan ta hänsyn till alla funktioner i hårdvaran (i modern terminologi, för att utveckla drivrutiner), utan måste ha en enkel abstraktion på hög nivå, till exempel som representerar diskinformationsutrymmet som en uppsättning filer. Filen kan öppnas för läsning eller skrivning, användas för att hämta eller återställa information och sedan stängas. Detta är konceptuellt enklare än att oroa sig för detaljerna i att flytta skivhuvuden eller organisera en motor. På samma sätt, med hjälp av enkla och tydliga abstraktioner, döljs alla onödiga organisatoriska detaljer för programmeraren. avbryter , timerdrift, minneshantering etc. På moderna datorsystem kan du dessutom skapa illusionen av en obegränsad storlek driftminne och siffror processorer . Den gör allt dettaoperativ system. På det här sättet, operativ systempresenteras för användarenvirtuell maskin, vilket är lättare att hantera än direkt med datorhårdvaran.

  1. Operativsystem som resursansvarig

Operativ systemdesignad för att hantera alla delar av en mycket komplex datorarkitektur. Föreställ dig till exempel vad som händer om flera program som körs på samma dator försöker skriva ut till en skrivare samtidigt. Vi skulle sluta med en mängd rader och sidor som produceras av olika program.Operativ systemförhindrar denna typ av kaos genom att buffra information avsedd för utskrift på disk och organisera en utskriftskö. För fleranvändardatorer är behovet av resurshantering och skydd ännu mer uppenbart. Följaktligen, operativ system, hur resursansvarig, genomför en ordnad och kontrollerad distribution processorer , minne och andra resurser mellan olika program.

  1. Operativsystemet som beskyddare av användare och program

Om datorsystemet tillåter flera användares gemensamma arbete, uppstår problemet med att organisera deras säkra aktivitet. Det är nödvändigt att säkerställa säkerheten för information på disken så att ingen kan radera eller skada andras filer. Du kan inte tillåta att vissa användares program godtyckligt stör andra användares program. Det är nödvändigt att stoppa försök till obehörig användning av datorsystemet. Alla dessa aktiviteter genomförsoperativ systemsom arrangör av användarnas och deras programs säkra arbete.Ur denna synvinkeloperativ systemtycks vara statens säkerhetssystem, som har anförtrotts polis- och kontraspionagefunktioner.

  1. Operativsystemet som en ständigt fungerande kärna

Slutligen kan följande definition ges:operativ system – är ett program som ständigt körs på en dator och interagerar med allaapplikationsprogram. Det verkar som att detta är en helt korrekt definition, men, som vi kommer att se senare, i många modernaoperativsystembara en del av datorn fungerar ständigtoperativ system, som brukar kallas kärna .

Som vi kan se finns det många synpunkter på vad som äroperativ system. Det är omöjligt att ge det en tillräckligt strikt definition. Det är lättare att säga att det inte finns någotoperativ system vad är det till för och vad gör det . För att klargöra denna fråga, överväg historien om utvecklingen av datorsystem.

  1. En kort historia av utvecklingen av datorsystem

Vi kommer att överväga historien om utvecklingen av datorer, och inteoperativsystemeftersom hårdvara och mjukvara har utvecklats tillsammans och ömsesidigt påverkat varandra. Uppkomsten av nya tekniska förmågor ledde till ett genombrott i skapandet av bekväma, effektiva och säkra program, och nya idéer inom mjukvaruområdet stimulerade sökandet efter nya tekniska lösningar. Det är dessa kriterier - bekvämlighet, effektivitet och säkerhet - som spelade rollen som naturliga urvalsfaktorer i utvecklingen av datorsystem.

  1. Första perioden (1945–1955). Lampa bilar. Inga operativsystem

Vi kommer att börja studiet av utvecklingen av datorsystem med tillkomsten av elektroniska datorsystem (om man utelämnar historien om mekaniska och elektriska mekaniska anordningar).

De första stegen i utvecklingen av elektroniska datorer togs i slutet av andra världskriget. I mitten av 1940-talet skapades de första rördatorenheterna, och principen om ett program lagrat i en maskins minne uppstod (John Von Neumann, juni 1945). På den tiden deltog samma grupp människor i design, drift och programmering dator. Det var mer ett forskningsarbete inom datorområdet, snarare än regelbunden användning av datorer som ett verktyg för att lösa eventuella praktiska problem från andra tillämpade områden. Programmering utfördes uteslutande på maskinspråk. Handla omoperativsystemdet var ingen fråga, alla uppgifter för att organisera beräkningsprocessen löstes manuellt av varje programmerare från kontrollpanelen. Endast en användare kunde vara vid konsolen. Programmet laddades i bästa fall in i maskinens minne från en kortlek med hålkort, och oftast med hjälp av en switchpanel.

Datorsystemet utförde endast en operation åt gången (ingång-utdata eller faktisk beräkning). Programmen felsöktes från kontrollpanelen genom att studera tillståndet för maskinens minne och register. I slutet av denna period dyker den första systemmjukvaran upp: 1951-1952. det finns prototyper av de första kompilatorerna från symboliska språk (Fortran, etc.), och 1954 utvecklade Nat Rochester en assembler för IBM-701.

En betydande del av tiden ägnades åt att förbereda lanseringen av programmet, och själva programmen kördes strikt sekventiellt. Detta driftsätt kallassekventiell bearbetningdata. I allmänhet kännetecknas den första perioden av de extremt höga kostnaderna för datorsystem, deras lilla antal och låga användningseffektivitet.

  1. Andra perioden (1955–början av 60-talet). Datorer baserade på transistorer. Batch operativsystem

Sedan mitten av 50-talet började nästa period i utvecklingen av datorteknik, i samband med uppkomsten av en ny teknisk bas - halvledarelement. Ansökan transistorer istället för ofta utbränd elektronisk lampor ledde till att datorernas tillförlitlighet ökade. Maskiner kan nu köras kontinuerligt tillräckligt länge för att kunna utföra praktiska uppgifter. Datorernas elförbrukning minskar, kylsystemen förbättras. Datorerna har blivit mindre. Kostnaderna för drift och underhåll av datorutrustning har minskat. Användningen av datorer av kommersiella företag började. Samtidigt sker en snabb utveckling av algoritmiska språk (LISP, COBOL, ALGOL-60, PL-1, etc.). De första riktiga kompilatorerna, länkredigerarna, biblioteken med matematiska och tjänstesubrutiner dyker upp. Förenklar programmeringsprocessen. Det finns ingen anledning att debitera samma personer för hela processen att utveckla och använda datorer. Det var under denna period som uppdelningen av personal i programmerare och operatörer, underhållsspecialister och utvecklare av datorer skedde.

Processen att köra program förändras. Nu tar användaren med sig programmet med indata i form av en kortlek med hålkort och anger de nödvändiga resurserna. En sådan kortlek får namnet på uppgiften. Operatören laddar uppgiften i maskinens minne och startar den för exekvering. Resultatet skrivs ut på skrivaren och användaren får tillbaka det efter en (ganska lång) tid.

Ändring av de begärda resurserna gör att exekveringen av program avbryts, som ett resultat CPU ofta ledig. För att öka effektiviteten i att använda datorn börjar jobb med liknande resurser samlas ihop, vilket skapar ett jobbpaket.

Den förstabatchbearbetningssystem, som helt enkelt automatiserar lanseringen av ett program från ett paket efter det andra och därmed ökar belastningsfaktorn processor. Vid implementering batchbearbetningssystemEtt formaliserat jobbkontrollspråk utvecklades, med hjälp av vilket programmeraren berättade för systemet och operatören vilket arbete han ville göra på datorn.batchbearbetningssystemblev prototypen för modernoperativsystem, de var de första systemprogrammen utformade för att styra beräkningsprocessen.

  1. Tredje perioden (tidigt 60-tal - 1980). Datorer baserade på integrerade kretsar. Första multitasking OS

Nästa viktiga period i utvecklingen av datorer går tillbaka till början av 1960-talet - 1980. Vid den här tiden i teknisk bas det skedde en övergång från individuella halvledarelement av typen transistorer till integrerade kretsar. Datortekniken blir mer tillförlitlig och billigare. Komplexiteten och antalet uppgifter som löses av datorer växer. Ökad produktivitet processorer.

Att öka effektiviteten av att använda processortiden hämmas av den låga hastigheten hos mekaniska in- och utmatningsenheter (en snabb hålkortsläsare kan behandla 1200 hålkort per minut, skrivare skriver ut upp till 600 rader per minut). Istället för att direkt läsa in en grupp uppgifter från hålkort i minnet börjar de använda det föranmälan först till band och sedan till disk. När inmatning krävs under ett jobb läses den från disk. På samma sätt kopieras utdata först till systembufferten och skrivs till band eller disk, och skrivs först ut när jobbet är klart. I början utfördes faktiska I/O-operationer off-line, det vill säga med andra, enklare, separata stående datorer. I framtiden börjar de exekveras på samma dator som utför beräkningar, det vill säga i on-line-läge. Detta tillvägagångssätt kallas spooling (förkortning av Samtidig perifer drift på nätet) eller personsökningspumpningsdata. Introduktionen av pump-pump-tekniken ibatchsystemgjorde det möjligt att kombinera de verkliga I/O-operationerna för en uppgift med utförandet av en annan uppgift, men krävde utvecklingen av en apparat avbryter för att meddela processorn slutförandet av dessa operationer.

Magnetband var sekventiell åtkomstanordningar, det vill säga information lästes från dem i den ordning som den spelades in. Utseendet på en magnetisk skiva, för vilken ordningen för att läsa information inte är viktig, det vill säga en direktåtkomstenhet, har lett till ytterligare utveckling datorsystem. Vid bearbetning av ett parti uppgifter på magnetband bestämdes ordningen i vilken uppgifterna startade av i vilken ordning de matades in. Vid bearbetning av ett parti uppgifter på en magnetisk skiva blev det möjligt att välja nästa uppgift som skulle utföras.Batchsystemde börjar schemalägga uppgifter: beroende på tillgängligheten av de begärda resurserna, hur brådskande beräkningarna är, etc. en eller annan uppgift väljs på kontot.

Ytterligare ökad effektivitet vid användning processor uppnåddes genom multiprogrammering. Idén med multiprogrammering är denna: medan ett program gör en I/O-operation, CPU går inte på viloläge, eftersom det hände i enkelprogramsläge, utan kör ett annat program. När en I/O-operation avslutas, CPU återgår till körningen av det första programmet. Denna idé påminner om beteendet hos en lärare och elever på ett prov. Medan en elev (programmet) funderar på svaret på frågan (I/O-operationen), kommer läraren ( CPU ) lyssnar på en annan elevs svar (beräkningar). Naturligtvis kräver denna situation närvaro av flera elever i rummet. På samma sätt kräver multiprogrammering att flera program finns i minnet samtidigt. I det här fallet laddas varje program in i sin egen sektion. random access minne, kallas en sektion, och bör inte påverka körningen av ett annat program.

Tillkomsten av multiprogrammering krävde en verklig revolution i datorsystemets struktur.Hårdvarusupport spelar här en speciell roll.(många hårdvaruinnovationer dök upp i det föregående utvecklingsstadiet), vars viktigaste funktioner listas nedan:

  • Implementering av skyddsmekanismer. Program bör inte ha oberoende tillgång till resursallokering, vilket resulterar i privilegierade och oprivilegierade kommandon. Privilegerade kommandon, såsom I/O-kommandon, kan endast utförasoperativ system. Hon sägs köra i privilegierat läge. Överföring av kontroll från applikationsprogram till OS åtföljd av ett kontrollerat regimskifte. Dessutom är det ett minnesskydd som gör att man kan isolera konkurrerande användarprogram från varandra, och OS - från användarprogram.
  • Förekomst av avbrott. Externa avbrott meddelar OS om vad som hände asynkron händelse, såsom en slutförd I/O-operation. Interna avbrott (nu ofta kalladexceptionella situationer) inträffar när exekveringen av ett program har lett till en situation som kräver ingripande OS , till exempel en division med noll eller ett försök till säkerhetsintrång.
  • Utveckling av parallellism i arkitektur . Direkt minnesåtkomst och organisationen av I/O-kanaler gjorde det möjligt att frigöra centralen CPU från rutinverksamheten.

Inte mindre viktigt i multiprogrammeringsorganisationer roll operativ system. Hon ansvarar för följande operationer:

  • Organisering av gränssnittet mellan applikationsprogrammet och OS använder systemsamtal.
  • In-memory kö och allokering processor ett av jobben krävde användningsplanering processor.
  • Att byta från ett jobb till ett annat kräver att man sparar innehållet i de register och datastrukturer som behövs för att slutföra jobbet, med andra ord sammanhanget för att säkerställa att beräkningarna fortsätter korrekt.
  • Eftersom minne är en begränsad resurs behövs minneshanteringsstrategier, det vill säga det krävs för att effektivisera processerna för att placera, ersätta och hämta information från minnet.
  • Organisering av informationslagring på externa medier i form av filer och tillgång till specifik fil endast vissa kategorier av användare.
  • Eftersom program kan behöva göra auktoriserade datautbyten är det nödvändigt att förse dem med kommunikationsmedel.
  • För korrekt datautbyte är det nödvändigt att tillåta konfliktsituationer som uppstår när man arbetar med olika resurser och sörjer för samordning av program för sina åtgärder, dvs. förse systemet med synkroniseringsverktyg.

Flerprogramsystem har gjort det möjligt att använda systemresurser(till exempel, processor , minne, kringutrustning), men de fanns kvar omgång . Användaren kunde inte direkt interagera med uppgiften och var tvungen att förutse alla möjliga situationer med hjälp av kontrollkort. Felsökningsprogram var fortfarande tidskrävande och krävde att man undersökte flersidiga utskrifter av minne och register, eller använde felsökningsutskrift.

Tillkomsten av katodstråleskärmar och omprövningen av möjligheterna att använda tangentbord satte i sin tur en lösning på detta problem. Den logiska förlängningen av multiprogrammeringssystem blev tidsdelningssystem, eller tidsdelningssystem. De har en processor växlar mellan uppgifter inte bara under I/O-operationer, utan helt enkelt efter att en viss tid har gått. Dessa växlar sker så ofta att användare kan interagera med sina program medan de körs, dvs interaktivt. Som ett resultat blir det möjligt för flera användare att arbeta samtidigt på samma datorsystem. Varje användare måste ha minst ett program i minnet för detta. För att minska begränsningarna för antalet arbetande användare introducerades idén om att ofullständigt hitta ett körbart program i RAM. Huvuddelen av programmet finns på disk, och fragmentet som behöver köras för tillfället kan laddas in i RAM, och det onödiga kan laddas ner till disken. Detta implementeras med hjälp av den virtuella minnesmekanismen. Den största fördelen med denna mekanism är skapandet av illusionen av obegränsat dator-RAM.

I separationssystem tid användaren kunde effektivt felsöka programmet i interaktivt läge och skriva information till disk utan att använda hålkort, utan direkt från tangentbordet. Tillkomsten av onlinefiler ledde till behovet av att utveckla avancerade filsystem.

Parallellt med den interna utvecklingen av datorsystem skedde även deras externa utveckling. Före denna period var datorsystem som regel inkompatibla. Alla hade sina egna operativ system, dess kommandosystem, etc. Som ett resultat måste ett program som framgångsrikt kördes på en typ av maskin skrivas om helt och felsöka för att köras på en annan typ av maskin. I början av den tredje perioden, idén om att skapa familjer av mjukvarukompatibla maskiner som körs under kontroll av sammaoperativ system. Den första familjen av mjukvarukompatibla datorer byggd påintegrerade kretsar, blev IBM/360-serien av maskiner. Denna familj utvecklades i början av 60-talet och var betydligt överlägsen andra generationens maskiner när det gäller pris/prestanda. Den följdes av en rad PDP-datorer som var inkompatibla med IBM-linjen och bästa modellen det blev PDP-11.

Styrkan hos "en familj" var samtidigt dess svaghet. De breda möjligheterna med detta koncept (närvaron av alla modeller: från minidatorer till jättemaskiner; ett överflöd av olika kringutrustning; olika miljöer; olika användare) gav upphov till en komplex och krångligoperativ system. Miljontals rader av sammansättningsspråk, skrivna av tusentals programmerare, innehöll många fel, vilket orsakade en kontinuerlig ström av publikationer om dem och försök att rätta till dem. Bara ioperativ systemOS/360 innehöll över 1000 kända buggar. Men tanken på standardiseringoperativsystemintroducerades allmänt i användarnas medvetande och fick sedan aktiv utveckling.

  1. Fjärde perioden (från 1980 till idag). Personliga datorer. Klassiska, nätverksanslutna och distribuerade system

Nästa period i utvecklingen av datorsystem är förknippad med tillkomsten av storaintegrerade kretsar(BIS). Under dessa år skedde en kraftig ökning av graden av integration och en minskning av kostnaden för mikrokretsar. Datorn, som inte skiljer sig i arkitektur från PDP-11, har blivit tillgänglig för en individ när det gäller pris och användarvänlighet, och inte för en avdelning på ett företag eller universitet. Persondatorernas era har kommit. Från början var persondatorer avsedda att användas av en användare i ett enda programläge, vilket ledde till försämring av arkitekturen hos dessa datorer och derasoperativsystem(Särskilt behovet av att skydda filer och minne, schemalägga jobb etc. har försvunnit).

Datorer började användas inte bara av specialister, vilket krävde utvecklingen av "vänlig" programvara.

Men den växande komplexiteten och mångfalden av uppgifter som löses på persondatorer, behovet av att förbättra tillförlitligheten i deras arbete ledde till en återupplivningnästan alla egenskaper som är karakteristiska för arkitekturen hos stora datorsystem.

I mitten av 1980-talet började nätverk av datorer, inklusive persondatorer, utvecklas snabbt. nätverk eller distribuerade operativsystem.

I nätverksoperativsystemanvändare kan komma åt andras resurser nätverksdator, bara de borde veta om sin närvaro och kunna göra det. Varje maskin i nätverket kör sin egen lokaloperativ system, till skillnad frånoperativ systemfristående dator genom närvaron av ytterligare verktyg (programvarustöd för nätverksgränssnittsenheter och tillgång till fjärrresurser), men dessa tillägg ändrar inte strukturenoperativ system.

distribuerat system, tvärtom, det ser ut som en normal autonoma systemet. Användaren vet inte och bör inte veta var hans filer är lagrade - på den lokala eller fjärranslutna maskinen - och var hans program körs. Han kanske inte alls vet om hans dator är ansluten till nätverket. Intern strukturdistribuerat operativsystemhar betydande skillnader från autonoma system.

I framtiden självständigOperativsystemvi kommer att kalla klassiskoperativsystem.

Efter att ha granskat utvecklingsstadierna för datorsystem kan vi identifiera sex huvudfunktioner som utfördes av klassiskaOperativsystemi evolutionsprocessen:

  • Jobbschemaläggning och användning processor.
  • Tillhandahålla program med kommunikationsmedel och synkronisering.
  • Minneshantering.
  • Filsystemhantering.
  • I/O-hantering.
  • säkerhet

Var och en av ovanstående funktioner implementeras vanligtvis som ett delsystem, vilket är en strukturell komponent OS . I varje operativ systemdessa funktioner implementerades naturligtvis på sitt eget sätt, i olika volymer. De var inte ursprungligen tänkt som komponenteroperativsystem, men dök upp i utvecklingsprocessen, eftersom datorsystem blev bekvämare, effektivare och säkrare. Utvecklingen av mänskligt skapade datorsystem har tagit denna väg, men ingen har ännu bevisat att detta är det enda sättet. möjlig väg deras utveckling.Operativsystemexisterar eftersom deras existens för närvarande är ett rimligt sätt att använda datorsystem. Hänsyn generella principer och algoritmer för implementering av deras funktioner och utgör innehållet i större delen av vår kurs, som sekventiellt kommer att beskriva de listade delsystemen.

  1. Grundläggande begrepp, OS-koncept

Under evolutionens gång,flera viktiga begreppsom har blivit en integrerad del av teori och praktik OS . Betraktas i detta avsnitt begrepp kommer att mötas och förklaras under hela kursen. Nedan följer en kort beskrivning av dem.

  1. Systemsamtal

Vid någon operativ systemen mekanism stöds som tillåter användarprogram att komma åt kärntjänster OS . I operativsystemden mest kända sovjetiska datorn BESM-6, motsvarande medel för "kommunikation" med kärnan kallades extrakoder, ioperativsystemIBM kallade dem systemmakron och så vidare. I OS Unix, kallas dessa verktygsystemsamtal.

Systemsamtal(systemsamtal ) är gränssnittet mellanoperativ systemoch användarprogram. De skapar, tar bort och använder olika objekt, de huvudsakliga är processer och filer.

Användarprogrammet begär en tjänst frånoperativ system genom att ringa ett systemanrop. Det finns bibliotek med procedurer som laddar maskinregister med vissa parametrar och utför processoravbrott , varefter kontrollen övergår till hanteraren av detta ring upp ingår i kärnanoperativ system. Syftet med sådana bibliotek är att göra systemanrop liknar normalt subrutinsamtal.

Den största skillnaden är att närsystemanropuppgiften går in i privilegierat eller kärnläge. Det är därförsystemsamtalibland också kallas mjukvaruavbrott i motsats till hårdvaruavbrott , som ofta hänvisas till helt enkelt avbryter.

Kärnkoden fungerar i detta lägeoperativ system, och det körs i adressutrymmet och isammanhanget för uppgiften som kallade det. Kärnan alltsåoperativ systemhar full tillgång till användarprogrammets minne, och närsystemanropdet räcker med att skicka adresserna till ett eller flera minnesområden med parametrar ring upp och adresser till ett eller flera minnesområden för resultat ring upp .

Mest operativsystems systemanroputförs av mjukvaruteamet avbryter (INT). Programavbrott är en synkron händelse som kan upprepas medan samma programkod körs.

  1. Avbryter

Avbryta (maskinvaruavbrott ) är en händelse som genereras extern (i förhållande till processorn ) enhet. Genom hårdvara avbryter utrustning antingen informerar centralen CPU att en händelse har inträffat som kräver ett omedelbart svar (till exempel att användaren tryckte på en tangent), eller rapporterar slutförandet av en asynkron I/O-operation (exempelvis läsning av data från disk till huvudminne är klar). En viktig typ av hårdvara avbryter - avbryter timer, som genereras periodiskt efter en bestämd tidsperiod. Avbryter timers användsoperativ systemvid planering av processer. Varje typ av hårdvara avbryter har ett eget nummer som unikt identifierar källan avbryter. Hårdvaruavbrott - detta är en asynkron händelse, det vill säga den inträffar oavsett vilken kod som exekveras processor För närvarande. Hårdvarubearbetning avbryter bör inte ta hänsyn till vilken process som är aktuell.

  1. Undantag

Undantag(undantag) - en händelse som inträffar som ett resultat av ett försök från programmet att utföra ett kommando som av någon anledning inte kan slutföras till slutet. Exempel på sådana kommandon kan vara att försöka komma åt en resurs utan tillräckliga privilegier eller komma åt en saknad minnessida.

Undantag, tycka om systemsamtal, är synkrona händelsersom visas i samband med den aktuella uppgiften.Undantagkan delas in i korrigerbara och oförbätterliga. Fixables inkluderarexceptionella situationer, som bristen på nödvändig information i RAM-minnet. Efter att ha eliminerat orsaken till det korrigerbaraexceptionell situationprogrammet kan fortsätta att köras. Förekomst under arbetets gångoperativ system korrigeras exceptionella situationeranses normalt. Oförbätterligexceptionella situationeruppstår oftast som ett resultat av fel i program (till exempel division med noll). Oftast i sådana falloperativ systemsvarar genom att avsluta programmet som anropadeexceptionell situation.

  1. Filer

Filer är utformade för att lagra information på externa medier, det vill säga det är accepterat att information som är inspelad, till exempel på en disk, ska finnas inuti filen. Vanligtvis förstås en fil som en namngiven del av utrymmet på lagringsmediet.

huvuduppgiften filsystem ( filsystem ) för att dölja I/O-funktioner och ge programmeraren en enkel abstrakt modell av enhetsoberoende filer.

Det finns också en omfattande kategori för att läsa, skapa, ta bort, skriva, öppna och stänga filersystemsamtal(skapa, ta bort, öppna, stäng, läs, etc.). Användare är bekanta med sådana begrepp relaterade till organisationen av filsystemet som katalog, aktuell katalog, rotkatalog, sökväg.För att manipulera dessa objekt ioperativ system det finns systemsamtal.

  1. Processer, trådar

Processkoncept i OS en av de mestgrundläggande. De gränsar till begreppen trådar eller lätta processer.

  1. Arkitektoniska egenskaper hos operativsystemet

Hittills har det sagts så gör t Operativsystem. Det är nödvändigt att föreställa sig hur de gör det, och vad de är från insidan, vilka tillvägagångssätt som finns för deras konstruktion.

  1. Monolitisk kärna

I själva verket, operativ systemär ordinarie program, så det vore logiskt att organisera det på samma sätt som de flesta program är ordnade, det vill säga att komponera det från procedurer och funktioner. I detta fall komponenternaoperativ systemär inte oberoende moduler, utan integrerade delar av en stort program. En sådan strukturoperativ system kallad monolitisk kärna(monolitisk kärna). Monolitisk kärna är en uppsättning procedurer, som var och en kan anropa var och en. Alla procedurer körs i privilegierat läge.

Alltså en monolitisk kärna - det här är uppläggetoperativ system, där alla dess komponenter är komponenter i ett program, använder vanliga datastrukturer och interagerar med varandra genom att direkt anropa procedurer. För monolitisk operativ systemkärnan är densamma som hela systemet.

I många operativsystem från monolitisk kärna kernel assembly, dvs kompilera den , utförs separat för varje dator som den är installerad påoperativ system. I det här fallet kan du välja en lista över hårdvaru- och mjukvaruprotokoll, vars stöd kommer att inkluderas i kärnan. Eftersom kärnan är ett enda program är omkompilering det enda sättet att lägga till nya komponenter till den eller ta bort oanvända. Det bör noteras att närvaron i kärnan extra komponenter mycket oönskat, som kärnan alltid ligger helt i RAM. Dessutom förbättrar elimineringen av onödiga komponenter tillförlitligheten.operativ system generellt sett.

Monolitisk kärna – det äldsta sättet organisationeroperativsystem. Ett exempel på system medmonolitisk kärnaär de flesta Unix-system.

Även i monolitiska system kan viss struktur urskiljas. Som i ett betongblock är det möjligt att urskilja inneslutningar av krossad sten, och i monolitisk kärna införanden av tjänsteförfaranden motsvarandesystemsamtal. Serviceprocedurer körs i privilegierat läge, medan användarprogram körs i icke privilegierat läge. För att flytta från en nivå av privilegier till en annan kan ett huvudverktyg ibland användas för att avgöra vilken systemanrop gjordes, korrektheten av inmatningen för detta ring upp och överföring av kontroll till motsvarande tjänsteprocedur med övergången till det privilegierade driftsättet. Ibland finns det också en uppsättning programvaruverktyg som hjälper till att utföra serviceprocedurer.

  1. System i lager

För att fortsätta struktureringen är det möjligt att dela upp hela beräkningssystemet i ett antal mindre nivåer med väldefinierade länkar mellan dem, så att objekt på nivå N endast kan anropa objekt på nivå N-1. Den undre nivån i sådana system är vanligtvis hårdvaran, den översta nivån är användargränssnittet. Ju lägre nivå, desto mer privilegierade kommandon och åtgärder kan en modul på den nivån utföra. Detta tillvägagångssätt användes första gången när THE (Technishe Hogeschool Eindhoven)-systemet skapades av Dijkstra och hans elever 1968. Detta system hade följande nivåer:

Ris. 1.2. Puffsystemet

System med skikt är väl implementerade. När du använder bottenlageroperationer behöver du inte veta hur de implementeras, du behöver bara förstå vad de gör. Puffsystem är väl testade. Felsökning startar från det nedre lagret och utförs i lager. När ett fel uppstår kan vi vara säkra på att det finns i lagret som testas. Puffsystem är väl modifierade. Om det behövs kan du bara byta ut ett lager utan att röra resten. Men skiktade system är svåra att utveckla: det är svårt att korrekt bestämma ordningen på skikten och vad som hör till vilket skikt. System med skikt är mindre effektiva än monolitiska. Så, till exempel, för att utföra I/O-operationer måste användarprogrammet sekventiellt gå igenom alla lager från toppen till botten.

  1. Virtuella maskiner

I början av föreläsningen pratade vi om att titta påoperativ system Hur på virtuell maskinnär användaren inte behöver känna till detaljerna i datorns interna struktur. Det fungerar med filer, inte med magnethuvuden och en motor; det fungerar med stort virtuellt snarare än begränsat verkligt RAM; han bryr sig lite om han är den enda användaren på maskinen eller inte. Låt oss ta ett lite annorlunda tillvägagångssätt. Låt vara operativ system redskap virtuell maskinför varje användare, men inte förenkla hans liv, utan tvärtom, komplicera det. Varje sådanvirtuell maskinframstår för användaren som ren metall - en kopia av all hårdvara i datorsystemet, inklusive CPU , privilegierade och oprivilegierade kommandon, I/O-enheter, avbryter etc. Och han sitter kvar med detta järn en mot en. När du försöker komma åt en sådan virtuell hårdvara på nivån av privilegierade kommandon, faktiskt, verkligt systemanrop operativ system, som utför alla nödvändiga åtgärder. Detta tillvägagångssätt låter varje användare ladda upp sina egnaoperativ systemvirtuell maskinoch gör med det vad ditt hjärta vill

Ris. 1.3. Alternativ virtuell maskin

Det första riktiga systemet i sitt slag var CP/CMS, eller VM/370 som det nu kallas, för IBM/370-familjen av maskiner.

Nackdelen med sådanaoperativsystemär en minskning av effektivitetenvirtuella maskinerjämfört med en riktig dator, och de tenderar att vara väldigt skrymmande. Fördelen ligger i användningen på ett datorsystem av program skrivna för olikaoperativsystem.

  1. Mikronukleär arkitektur

Den nuvarande trenden i utvecklingenoperativsystembestår i att flytta en betydande del av systemkoden till användarnivå och samtidigt minimera kärnan.Detta är ett sätt att bygga en kärna som kallasmikronukleär arkitektur(mikrokärnarkitektur) operativ systemnär de flesta av dess komponenter är oberoende program. I det här fallet tillhandahålls interaktionen mellan dem av en speciell kärnmodul som kallas mikrokärna . Mikrokärnan körs i ett privilegierat läge och ger interaktion mellan program, användningsplanering processor , primär bearbetning avbryter , I/O-operationer och grundläggande minneshantering.

Ris. 1.4. Microkernel operativsystems arkitektur

De återstående komponenterna i systemet kommunicerar med varandra genom att skicka meddelanden genom mikrokärnan.

Främsta fördelenmikronukleär arkitektur – hög grad kärnans modularitetoperativ system. Detta förenklar avsevärt tillägget av nya komponenter till den. I mikronukleäroperativ systemdu kan, utan att avbryta dess arbete, ladda och ladda ur nya drivrutiner, filsystem etc. Processen att felsöka kärnkomponenter är avsevärt förenklad, eftersom en ny version drivrutiner kan laddas utan att starta om helaoperativ system. Kärnkomponenteroperativ systemskiljer sig inte i grunden från användarprogram, så du kan använda konventionella verktyg för att felsöka dem.Mikronukleär arkitekturförbättrar systemets tillförlitlighet eftersom ett fel på icke-privilegierad programnivå är mindre farligt än ett fel på kärnlägesnivå.

På samma gång mikrokärnoperativsystemsarkitekturintroducerar ytterligare overhead i samband med meddelandeöverföring, vilket avsevärt påverkar prestandan. För mikronukleäroperativ systemtappade inte i fartoperativsystem på basen monolitisk kärna, krävs det att noggrant utforma uppdelningen av systemet i komponenter, försöka minimera interaktionen mellan dem. Således är den största svårigheten att skapa mikronukleäroperativsystem– behovet av mycket noggrann design.

  1. blandade system

Alla övervägda tillvägagångssätt för konstruktionenoperativsystemhar sina egna för- och nackdelar. I de flesta fall modernOperativsystemmed olika kombinationer av dessa metoder. Så till exempel kärnanoperativ systemLinux är ett monolitiskt system med elementmikronukleär arkitektur. Vid kompilering av kärnan är det möjligt att möjliggöra dynamisk laddning och avlastning av väldigt många kärnkomponenter - så kallade moduler. När en modul laddas laddas dess kod på systemnivå och länkas till resten av kärnan. Alla funktioner som exporteras av kärnan kan användas i en modul.

Ett annat exempel på ett blandat tillvägagångssätt är förmågan att springaoperativ system från monolitisk kärnakontrolleras av mikrokärnan. Så här är 4.4BSD och MkLinux baserade på Mach-mikrokärnan. Mikrokärnan tillhandahåller virtuell minneshantering och lågnivådrivrutiner. Alla andra funktioner, inklusive interaktion med applikationsprogram, utförsmonolitisk kärna. Detta tillvägagångssätt bildades som ett resultat av försök att dra fördel avmikronukleär arkitektur, hålla koden så väl avlusad som möjligtmonolitisk kärna.

Närmast elementmikronukleär arkitektur och element monolitisk kärnasammanflätade i Windows NT-kärnan. Även om Windows NT ofta kallas mikrokärnaoperativ system, detta är inte helt sant. NT-mikrokärnan är för stor (mer än 1 MB) för att bära "mikro"-prefixet. Komponenter i Windows NT-kärnan finns i förhandsminnet och kommunicerar med varandra genom att skicka meddelanden, som förväntat i mikrokärnor.operativsystem. Samtidigt arbetar alla kärnkomponenter i samma adressutrymme och använder aktivt gemensamma datastrukturer, vilket är typisktoperativsystem från monolitisk kärna. Enligt Microsofts experter är anledningen enkel: en ren mikrokärndesign är inte kommersiellt gångbar eftersom den är ineffektiv.

Därmed kan Windows NT med rätta kallas hybrid.operativ system

  1. OS-klassificering

Det finns flera klassificeringssystemoperativsystem. Nedan följer en klassificering enligt några funktioner från användarens synvinkel.

  1. Multitasking-implementering

Med antalet samtidiga uppgifterOperativsystemkan delas in i två klasser:

  • multitasking (Unix, OS/2, Windows);
  • single-tasking (till exempel MS-DOS).

Multitasking OS, löser problemen med resursallokering och konkurrens, implementerar multiprogramläget fullt ut i enlighet med kraven i avsnittet "Grundläggande koncept, koncept OS".

Multitasking, som förkroppsligar idén om tidsdelning, kallas förebyggande. Varje program tilldelas ett kvantum processor tid efter vilken kontrollen överförs till ett annat program. De säger att det första programmet kommer att strykas. Det förebyggande läget används av användarprogrammen för de flesta kommersiella OS .

På vissa OS (Windows 3.11 till exempel) ett användarprogram kan monopolisera CPU , det vill säga att arbeta i icke-förebyggande läge. Som regel är själva koden i de flesta system inte föremål för preemption. OS . Ansvarsfulla program, i synnerhet realtidsuppgifter, tvingas inte heller bort. Detta diskuteras närmare i föreläsningen om arbetsplanering. processor.

Utifrån de givna exemplen kan man bedöma tillnärmningen av klassificeringen. Ja, in OS MS-DOS kan organisera lanseringen av en underordnad uppgift och närvaron av två eller flera uppgifter i minnet samtidigt. Dock detta OS traditionellt sett betraktas som single-tasking, främst på grund av bristen på försvarsmekanismer och kommunikationsförmåga.

  1. Stöd för flera spelare

Efter antal samtidiga användare OS kan delas in i:

  • enskild användare (MS-DOS, Windows 3.x);
  • multiplayer(Windows NT, Unix).

Den viktigaste skillnaden mellan dessa OS är i närvaro avfleranvändarsystemmekanismer för att skydda varje användares personuppgifter.

  1. Multibearbetning

Tills nyligen hade datorsystem en central processor. Som ett resultat av krav på ökad produktivitet,multiprocessorsystembestående av två eller flera processorer allmänt syfte, att utföra parallell exekvering av kommandon. Multiprocessing-stöd är en viktig funktion OS och leder till komplikationen av alla resurshanteringsalgoritmer. Multiprocessing implementeras i sådana OS som Linux, Solaris, Windows NT och flera andra.

Multiprocessor OSuppdelad i symmetriska och asymmetriska. I symmetrisk OS på varje processor samma kärnfunktioner, och uppgiften kan utföras på vilken som helst processor , det vill säga behandlingen är helt decentraliserad. Samtidigt, var och en av processorer allt minne är tillgängligt.

I asymmetriska OS-processorer olika. Det finns vanligtvis en huvud CPU (mästare) och slavar (slav), vars lastning och art av arbetet bestäms av befälhavaren processor.

  1. Realtidssystem

I utskrivning multitasking OS, såväl som batchsystem Och tidsdelningssystem, ingår ocksårealtidssysteminte nämnt än så länge.

De används för att hantera olika tekniska objekt eller tekniska processer. Sådana system kännetecknas av den maximalt tillåtna svarstiden på en extern händelse, under vilken programmet som styr objektet måste exekveras. Systemet måste behandla inkommande data snabbare än det kan komma, och från flera källor samtidigt.

Sådana svåra restriktioner påverkar arkitekturenrealtidssystem, till exempel kan de sakna virtuellt minne, vars stöd ger oförutsägbara förseningar i exekveringen av program. (Se även ämnen relaterade till processschemaläggning och implementering av virtuellt minne.)

Minskad klassificering OS är inte uttömmande. Mer detaljerat, funktionerna i användningen av moderna OS granskas i Olifer, 2001].

Operativmiljön är en uppsättning systemprogram, vars huvudsakliga syfte är att förse användaren med ett användargränssnitt ( UI ) och mjukvarugränssnitt ( API ), som är betydligt överlägsna i sina möjligheter jämfört med liknande gränssnitt som tillhandahålls av operativsystemet. En utmärkande egenskap hos operativmiljön är att den är byggd ovanpå det befintliga operativsystemet, d.v.s. dess arbete är omöjligt utan detta OS.

Operativskalet är en uppsättning systemprogram som ger ett vänligt användargränssnitt ( UI ) med ett operativsystem som på ett eller annat sätt överträffar (som regel när det gäller icke-proceduralitet och närhet till språket för användarens yrkesaktivitet) liknande användargränssnittsverktyg som tillhandahålls av själva operativsystemet.

  1. Slutsats

Vi har funderat på olika syn på vad som äroperativ system; studerat utvecklingshistorienoperativsystem; ta reda på vilka funktioner som vanligtvis utförsOperativsystem; Slutligen kom vi på vilka sätt att byggaoperativsystem. Vi kommer att ägna nästa föreläsning åt att förtydliga begreppet "process" och frågor kring planeringsprocesser.

  1. Bilaga 1.
    1. Lite information om datorarkitektur

De viktigaste hårdvarukomponenterna i en dator är: huvudminne, central CPU och kringutrustning. För att kommunicera med varandra är dessa komponenter anslutna med en grupp ledningar som kallas en ryggrad (se fig. fig. 1.5).

Ris. 1.5. Vissa datorkomponenter

Huvudminnet används för att lagra program och data i binär form och är organiserat som en ordnad array av celler, var och en med en unik numerisk adress. Vanligtvis är cellstorleken en byte. Typiska operationer på huvudminnet är att läsa och skriva innehållet i en cell med en specifik adress.

Att utföra olika operationer med data utförs av en isolerad del av datorn, kallad centralen processor (CPU). CPU:n har också informationslagringsceller som kallas register. De är indelade i allmänna register och specialiserade register. I moderna datorer är registerkapaciteten vanligtvis 4–8 byte. Allmänna register används för tillfällig lagring av data och resultat av verksamheten. För att bearbeta information överförs data vanligtvis från minnesceller till allmänna register, operationen utförs av en central processor och överföring av resultatet av operationen till huvudminnet.

Specialiserade register används för att styra operationen processor . De viktigaste är: programräknaren, instruktionsregistret och registret som innehåller information om programmets tillstånd.

Program lagras som en sekvens av maskininstruktioner som ska exekveras av en central CPU . Varje kommando består av ett operationsfält och operandfält, det vill säga de data som denna operation utförs på. Hela uppsättningen av maskininstruktioner kallas maskinspråk.

Programmet exekveras enligt följande. Maskininstruktionen som pekas på av programräknaren läses från minnet och kopieras till instruktionsregistret. Här avkodas den och exekveras sedan. Efter att instruktionen har utförts pekar programräknaren på nästa instruktion. Dessa åtgärder, som kallas maskincykeln, upprepas sedan.

  1. Interaktion med kringutrustning

Kringutrustning är utformad för att mata in och mata ut information. Varje enhet innehåller vanligtvis specialiserad dator, kallad styrenhet eller adapter. När styrenheten sätts in i kontakten på moderkort, den ansluter till bussen och får ett unikt nummer (adress). Styrenheten övervakar sedan signalerna på bussen och reagerar på signaler som adresseras till den.

Varje I/O-operation involverar en dialog mellan CPU:n och enhetsstyrenheten. När processor stöter på en I/O-relaterad instruktion som är en del av ett program, exekverar den den genom att skicka signaler till enhetsstyrenheten. Detta är den så kallade programmerbara I/O.

I sin tur eventuella förändringar externa enheter resultera i signalöverföring från enheten till CPU:n. Ur CPU:ns synvinkel är detta en asynkron händelse och kräver dess reaktion. För att upptäcka en sådan händelse, mellan maskincykler CPU frågar ett särskilt registerA som innehåller information om vilken typ av enhet som genererade signalen. Om en signal uppstår, så kör CPU:n ett enhetsspecifikt program, vars uppgift är att svara på denna händelse på ett lämpligt sätt (till exempel att mata in ett tecken som matas in från tangentbordet i en speciell buffert). Ett sådant program kallas ett bearbetningsprogram. avbryter, och själva händelsen är ett avbrott eftersom det stör det planerade arbetet processor . Efter att bearbetningen är klaravbryta processoråtergår till programkörning. Dessa datoråtgärder kallas I/O-användning avbryter.

Moderna datorer har också förmågan att kommunicera direkt mellan styrenheten och huvudminnet, förbi processorn, den så kallade direktminnesåtkomstmekanismen.

Frågor

  1. Utnämning av OS i datorer;
  2. En kort historik över utvecklingen av datorsystem och operativsystem;
  3. Definitioner av begrepp inom OS teori och praktik: systemanrop, avbrott, undantag, filer;
  4. OS-klassificering

Andra relaterade verk som kan intressera dig.vshm>

13757. Skapande av ett nätverkssystem för att testa elektroniskt kursstöd Operativsystem (i exemplet med Joomla verktygsskal) 1,83 MB
Programmet för att skriva prov låter dig arbeta med frågor i i elektroniskt format använda all slags digital information för att visa innehållet i frågan. Syftet med kursarbetet är att skapa en modern modell av en webbtjänst för att testa kunskap med hjälp av webbutvecklingsverktyg och mjukvaruimplementering för effektiv drift av testsystemet - skydd mot kopiering av information och fusk vid kunskapskontroll etc. De två sista innebära att skapa lika förutsättningar för att klara kunskapskontroll, omöjligheten av fusk och ... .
6179. OPERATIVSYSTEM 13,01KB
För att överväga operativsystemets funktioner kan människor villkorligt delas in i två grupper: användare och programmerare här är begreppet användare mer begränsat än förståelsen av en användare som vilken person som helst som kommunicerar med en dator. Från operativsystemet behöver programmeraren en uppsättning sådana verktyg som skulle hjälpa honom i utvecklingen och felsökningen av slutprodukten av program. Kommandorad En skärmrad som börjar med operativsystemets prompt.
9146. Introduktion till operativsystem 11,94 KB
Operativ system. Definition och syfte. Operativsystems funktioner. De viktigaste egenskaperna hos OS. Generationer av operativsystem. En kort översikt över moderna operativsystem. Klassificering av operativsystem enligt funktionerna i resurshanteringsalgoritmer, funktioner i hårdvaruplattformar, funktioner i användningsområden.
10804. Allergiska lesioner i munslemhinnan hos barn 47,16KB
Motiverande egenskaper hos lektionens ämne: som ett resultat av den praktiska lektionen bör praktikanterna förvärva följande praktiska och teoretiska färdigheter: att studera de grundläggande och ytterligare metoder studier av barn med allergiska lesioner i munslemhinnan; utifrån erhållna data och insamling av anamnes, kunna ställa en preliminär diagnos; upprätta en behandlingsplan med hänsyn till barnets ålder; känna till indikationerna och kontraindikationerna för användning av läkemedel i denna patologi. Det verkar vara relaterat till föroreningar...
2622. Ekologi av mikroorganismer, deras ekologiska miljöer. Effekten av fysikaliska och kemiska miljöfaktorer på mikroorganismer 41,12 kB
Inverkan av fysikaliska och kemiska miljöfaktorer på mikroorganismer Inverkan av fysikaliska faktorer på mikroorganismer Inverkan av kemiska faktorer på mikroorganismer. Distribution av mikroorganismer i naturen I naturen lever mikroorganismer i nästan alla medelstora markluftvatten och är mycket mer utbredda än andra levande varelser.
8621. Programmeringsspråk. Programmeringssystem. Visuella designmiljöer 21,13 KB
Bsic är ett språk som har både kompilatorer och tolkar vad gäller popularitet, det rankas först i världen. Detta språk är andra i popularitet efter Bsic. Följande visuella programmeringsmiljöer för språk är för närvarande de mest populära...
16438. Analys av verksamhetsmiljön 39,84 KB
Alla dessa indikatorer kallas privata endimensionella prestationsindikatorer. Mer objektiv teknik för att bedöma effektiviteten hos komplexa system dök upp först under andra hälften av 1900-talet. Det används nu i stor utsträckning över hela världen som ett verktyg för att analysera effektiviteten av komplexa socioekonomiska system hos stora oljebolag, banker, tillverkningsföretag, bostäder och kommunala tjänster, universitet, sjukhus och andra kommersiella och icke-kommersiella institutioner. Samtidigt pekade Farrell ut följande typer ...
342. Programmeringsmiljöer 14,75 kB
Programmeringsverktygsmiljöer innehåller först och främst en textredigerare som låter dig designa program i ett givet programmeringsspråk; verktyg som låter dig kompilera eller tolka program på detta språk, samt testa och felsöka de resulterande programmen. Det finns följande klasser av programmeringsmiljöer, se. Allmänna programmeringsmiljöer innehåller en uppsättning mjukvaruverktyg som stödjer utvecklingen av program på olika programmeringsspråk, till exempel ...
561. Habitatkvalitet 5,35 kB
Habitatkvalitet Habitatkvalitet är i vilken grad miljöparametrar uppfyller behoven hos människor och andra levande organismer. Deras krav på livsmiljöns kvalitet är ganska konservativa, så kvaliteten på teknosfären bör inte skilja sig nämnvärt från den naturliga miljön. Som ett resultat av betydande antropogena belastningar i de flesta städer uppstår vegetationsförsämring, vilket förvärrar stadsmiljöns tillstånd. Förorening av miljön med skadliga ämnen minskar stadigt kvaliteten på vattenförbrukad mat...
522. Uppfattning om miljön. Analysatorer 5,11 kB
Uppfattning om miljön. Analysatorer En person behöver ständig information om tillstånd och förändringar i den yttre miljön och behandlingen av denna information. Förmågan att få information om miljön, förmågan att navigera i rymden och utvärdera miljöns egenskaper tillhandahålls av analysatorer. Information som kommer från den yttre miljön analyseras i hjärnbarken, den högsta nivån i det centrala nervsystemet.



Läroboken skapades i enlighet med Federal State Education Standard of Secondary Vocational Education i följande specialiteter: 230111 "Datornätverk", OP.04 "Operativsystem", 230113 "Datorsystem och komplex", OP.07 "Operativsystem och Miljöer", 230115 "Programmering i datorsystem", OP.01 "Operativsystem", 230401 " Informationssystem(efter bransch)”, OP.02 ”Operativsystem”, 230701 ”Tillämpad informatik (efter bransch)”, OP.07 ”Operativsystem och miljöer”.
Den grundläggande informationen om de grundläggande objekten som är under kontroll av OS - filer, användare och uppgifter. Operativsystemets uppgifter som avgör logisk sekvens utföra användaruppgifter. Särskild uppmärksamhet ges för att säkerställa arbetet för flera användare i UNIX och WINDOWS - frågorna om användaridentifiering, placering av deras personliga data, hantering av användaråtkomst till filer och kataloger beaktas, BASH-språkverktyg för att arbeta med åtkomsträttigheter definieras. Metoder för att hantera användarkonton beskrivs, liksom en metod för att personifiera användarsessioner med hjälp av sessionsinitieringsfiler i UNIX-system. Dan kort recension metoder för att bygga applikationsprogram i C-språket i UNIX-liknande operativsystem och WINDOWS-operativsystem.
För studenter vid institutioner för gymnasieutbildning.

Ett operativsystem (OS) är ett mjukvarupaket som förser användaren med en miljö för att exekvera och hantera applikationsprogram, samt förse applikationsprogram med medel för att komma åt och hantera hårdvaruresurser och bearbetad data.

Varje användare av operativsystemet använder i sina aktiviteter verktygen som tillhandahålls antingen direkt av operativsystemets kärna eller under kontroll av OS-applikationsprogrammen. För att lösa sina problem formaliserar användaren beskrivningen av problemet i något inmatningsspråk som tillhandahålls av operativsystemet, eller använder program skrivna av andra användare - programmerare.

Syntaxen och semantiken för sådana språk är olika beroende på de uppgifter som löses med deras hjälp. Själva uppgifterna kan villkorligt delas in i följande grupper...

Samma språk kan tjäna till att lösa olika uppgifter. Om vi ​​klassificerar användare mer i detalj efter språket de använder och de uppgifter de löser, så kommer varje par av "kommunikationsspråk" - "uppgift att lösa" att avgöra användarens roll när de arbetar med operativsystemet.

Denna lärobok vänder sig i första hand till elever från gymnasieskolor, applikationsprogrammerare och användare av operativsystemet, men i viss mån berör den också frågor om systemprogrammering och administration i OS-miljön.

Det mesta av materialet som presenteras i handledningen ges på exemplet på vanliga mekanismer som finns i operativsystem i UNIX-familjen och Windows. En del av materialet är också tillämpligt på operativsystem i DOS-familjen (särskilt avsnittet om uppgifter i Windows).

Som det huvudsakliga pedagogiska operativsystemet anses det fritt distribuerade Linux OS och Windows 7 operativsystem, men det mesta av materialet i boken är tillämpligt på alla större versioner av UNIX-system och Windows i NT-familjen.

Handledningen består av tre delar och bilagor:

  • den terminologiska inledningen innehåller definitioner av de grundläggande begreppen och principerna för drift av operativsystem, på vilka den fortsatta presentationen bygger;
  • kapitel 1-6 ger läsaren en uppfattning om huvudstadierna i utvecklingshistorien, de objekt som stöds av operativsystemet: minne, filer, användare, jobb och metoder för att arbeta med dem;
  • kapitel 7-10 fördjupar läsarens kunskap om filer och användare, berör frågor om OS-administration. Dessa kapitel introducerar också processhantering och kommunikationsmekanismer mellan processer som stöds av UNIX och Windows operativsystem;
  • Bilagorna innehåller referensinformation om katalogstrukturen för "Knowledge Control"-systemet och om huvudkommandona i UNIX-operativsystemet.

TERMINOLOGISK INTRODUKTION

GRUNDLÄGGANDE KONCEPT

När användaren löser sina uppgifter i operativsystemmiljön måste användaren bestämma data och verktyg (mjukvara) för att bearbeta dem. I de flesta fall reduceras lösningen på användarens problem till konsekvent tillämpning flera verktyg (t.ex. datainmatning, sortering, sammanslagning, utmatning).

Operativsystemet förser användaren med en grundläggande uppsättning verktyg och en miljö för att lagra data, samt kontroller för sekvensen av användning av verktyg. Tidsintervallet under vilket användaren utför en eller flera sekventiella uppgifter, medan han använder verktygen som tillhandahålls av operativsystemet, kallas en session.

I början av en session identifierar användaren sig själv, i slutet indikerar att sessionen är över. En beskrivning av sekvensen av att använda mjukvaruverktyg, skriven på något formellt språk, kallas en uppgift, och själva språket kallas ett uppgiftskontrollspråk.

Utförandet av uppgifter i de flesta operativsystem utförs av en kommandotolk, en mer detaljerad definition av vilken kommer att ges senare.

Vanligtvis förses användaren med något gränssnitt för att kommunicera med kommandotolken, när man använder vilka kommandon som skrivs in från tangentbordet, och resultatet av deras exekvering visas på skärmen. Ett sådant gränssnitt är associerat med det logiska konceptet med en terminal - en kombination av en inmatningsenhet (vanligtvis ett tangentbord) och en utenhet (en display som visar textinformation). För närvarande är det vanligaste det grafiska användargränssnittet (GUI), som ligger utanför den här handledningens omfattning.

Program (i det allmänna fallet) är en uppsättning processorinstruktioner lagrade på en disk (eller annan informationslagringsenhet). För att programmet ska kunna startas för exekvering måste operativsystemet skapa en runtime-miljö - informationsmiljön för uppgiften som löses. Operativsystemet flyttar sig sedan körbar kod och programmera data till RAM och initierar programexekvering.

Operativsystemet utför funktionerna att hantera hårdvaruresurser, distribuera dem mellan körbara användarprogram och bildar en exekveringsmiljö som innehåller all data som behövs för programmet. En sådan miljö kommer i framtiden att kallas informationsmiljön. Informationsmiljön inkluderar data och objekt som bearbetas av operativsystemet och som påverkar exekveringen av programmet, det vill säga lösningen av användarens uppgift. Under den fortsatta presentationen kommer exempel på informationsmiljö av annan karaktär att ges.

Med hjälp av begreppen program, data och informationsmiljö kan man definiera begreppet en uppgift i OS-miljön som en uppsättning program och data som är en del av informationsmiljön.

Programmet som körs bildar en process. En process är en samling av informationsmiljö och ett minnesområde som innehåller körbar kod och programdata. Vanligtvis i minne som styrs av operativsystemet, kan samtidigt fungera stort antal processer.

Det är ganska naturligt att det på datorer med en processor är möjligt att samtidigt exekvera programkoden för endast en process, så en del av processerna är i standbyläge och en av processerna är i exekveringsläge. Processerna bildar sedan en kö, operativsystemet överför kontrollen till den första processen i kön, sedan till nästa, och så vidare.

En process som har potential att ta emot input från användaren på tangentbordet och visa resultatet av sitt arbete på skärmen kallas en förgrundsprocess; en process som körs utan direkt användarinteraktion är en bakgrundsprocess.

Under arbetets gång använder processer processorkraften, RAM, åtkomst externa filer, intern data för operativsystemets kärna. Alla dessa objekt ingår i processens informationsmiljö och kallas resurser.

En resurs kan antingen vara ett fysiskt objekt som operativsystemet ger åtkomst till - en processor, RAM, diskenheter eller ett logiskt objekt som bara finns inom själva operativsystemet, till exempel en tabell över pågående processer eller nätverksanslutningar. Behovet av resurshantering av operativsystemet orsakas främst av att resurserna är begränsade (i termer av volym, användningstid, antal användare som betjänas, etc.). Operativsystemet i den här situationen hanterar antingen resursbegränsningar för att förhindra resursutmattning eller tillhandahåller ett sätt att hantera resursutmattning. Standard OS-gränserna för många resurser kan sedan ändras av systemadministratören. Ett exempel på en sådan resurs är högsta belopp filer som öppnas av användaren samtidigt.

Om operativsystemet tillåter samtidig användning av resurser av flera processer, kan dess resurser delas in i typer.

Icke-delade resurser kan användas under en given tidsperiod av endast en process, medan andra processer inte har tillgång till en sådan resurs förrän resursen är helt frigjord av den process som ockuperade den. Ett exempel på en sådan resurs är en fil som öppnas för skrivning i exklusivt läge. Alla försök att använda den här filen av andra processer (även för läsning) misslyckas.

Delade resurser kan användas av flera processer. Samtidigt kan sådana resurser nås samtidigt av processer (till exempel till klockan, som används för att bestämma den aktuella systemtiden).

Vissa delade resurser kan inte ge samtidig åtkomst, men tillåter flera processer att använda dem utan att vänta på att resursen ska frigöras helt.

Typisk struktur för operativsystemet

Vanligtvis särskiljs två nivåer i operativsystemet: systemkärnan och extra systemprogramvara, ibland kallad systemverktyg. Kärnan utför alla funktioner för att hantera systemresurser - både fysiska och logiska - och delar åtkomsten för användare (användarprogram) till dessa resurser. Genom systemmjukvaran kontrollerar användaren de faciliteter som tillhandahålls av kärnan.

Kärnan i ett typiskt operativsystem inkluderar följande komponenter: användarsessionshanteringssystem, filsystem, uppgifts(process)hanteringssystem, input/output-system. OS-kärngränssnittet med applikationsprogram utförs med hjälp av systemanropsprogramgränssnittet, gränssnittet med hårdvaran - med hjälp av drivrutiner.

Användarsessionshanteringssystemet registrerar användarsessionen i början av sitt arbete med operativsystemet, lagrar den operativa informationen som ingår i sessionens informationsmiljö, med hjälp av inmatnings-/utgångssystemet upprätthåller användarterminalens överensstämmelse till verklig eller virtuella enheter, avslutar sessionen korrekt när användaren slutar arbeta med systemet.

Filsystemet utför transformationer av data lagrade på externa lagringsenheter (till exempel på hårddiskar eller på flash-enheter), till logiska objekt - filer och kataloger. Filsystemet utför också funktionerna att avgränsa åtkomst till filer och kataloger när de kommer åt från sessionshanteringssystemet eller när filsystemet används via systemanropsgränssnittet.

Processkontrollsystemet allokerar resurser mellan de uppgifter (processer) som utförs, skyddar processminnet från att modifieras av andra processer och implementerar kommunikationsmekanismer mellan processer.

I/O-systemet behandlar förfrågningar från alla kärnkomponenter som diskuterats ovan och omvandlar dem till anrop till logiska enheter som stöds av operativsystemet. Varje sådan enhet är ett logiskt objekt som nås med standard OS-medel (till exempel som en adress i RAM eller som en speciell fil). En logisk enhet kan vara rent virtuell (den kan fungera helt inuti OS-kärnan) eller representera ett logiskt objekt som är anslutet via drivrutiner till riktiga hårdvaruenheter.

Ett exempel på ren virtuell enhet kan fungera som ett "svart hål" /dev/null på UNIX-system. All information som skrivs till den här enheten försvinner, d.v.s. den kan användas för att absorbera data som inte är väsentlig för uppgiften som ska lösas.

Maj i den här enheten försvinner, det vill säga den kan användas för att absorbera data som inte är nödvändig för uppgiften som ska lösas.

Enhetsdrivrutiner är systemprogram som översätter systeminmatnings-/utmatningsförfrågningar till sekvenser av kontrollkommandon för hårdvaruenheter. Varje enhetsdrivrutin döljer detaljerna i sin hårdvaruimplementering och förser I/O-systemet med ett standardiserat gränssnitt för åtkomst till systemhårdvaran.

Från en applikationsprogrammerares synvinkel utförs åtkomst till komponenterna i OS-kärnan med hjälp av systemanropsgränssnittet - en uppsättning bibliotek som inkluderar standardiserade uppsättningar funktioner. Varje sådan uppsättning är utformad för att lösa en eller annan klass av tillämpade uppgifter: tillgång till nätverksresurser, grafikläge, implementering av interprocesskommunikation m.m.

Klassificering av operativsystem

Komplexiteten hos komponenterna i kärnan och funktionerna som implementeras av dem beror främst på antalet användare som samtidigt betjänas av operativsystemet och på antalet samtidigt exekverande processer. I detta avseende är det rimligt att klassificera operativsystemet enligt dessa två parametrar och överväga egenskaperna hos kärnkomponenterna i varje typ av operativsystem.

Efter antalet samtidigt betjänade användare delas operativsystem in i enanvändare (inte mer än en användarsession stöds samtidigt) och flera användare (många användarsessioner stöds samtidigt). Fleranvändarsystem tillhandahåller, förutom att skydda användardata från obehörig åtkomst av andra användare, ett sätt att dela gemensamma data mellan många användare.

Överväg funktionerna i dessa typer av operativsystem mer detaljerat.

Utifrån antalet samtidigt körande processer delas operativsystem in i single-tasking (inte mer än en körande process) och multitasking (många körande processer). En av huvudskillnaderna mellan multitasking-system och single-tasking-system är tillgängligheten av åtkomstkontrollverktyg för resurser - resursdelning och blockering av använda resurser.

UNIVERSELLA OCH SPECIALISERADE OPERATIVSYSTEM. OPERATIVSYSTEM i REALTIDS

Förutom klassificeringar baserade på antalet användare i systemet och på basis av antalet samtidigt pågående processer, kan ytterligare en typ av klassificering av operativsystem införas: generella operativsystem och speciella operativsystem.

Operativsystem för allmänna ändamål inkluderar operativsystem som kan vara både enprocesser och multiprocesser, både fleranvändare och enanvändare. Dessa är operativsystem som körs som en del av konventionella skrivbordssystem. Deras huvudsakliga syfte är att förse användaren av systemet med en bekväm och begriplig mekanism för att hantera datorsystemets hårdvara, att behandla användarförfrågningar, isolera honom så mycket som möjligt från lågnivåoperationer och gränssnitt. Sådana operativsystem är främst inriktade på användarvänlighet, eftersom deras huvudanvändare vanligtvis inte är programmerare, utan medelstora eller lågutbildade användare. Ofta kan sådana användare inte ens föreställa sig att bakom en vacker bild av animerade bakgrundsbilder och en mängd olika skönheter i grafiska gränssnitt finns ett kraftfullt programpaket som styr hela hårdvarukomplexet på en dator. Sådana operativsystem inkluderar skrivbordsversioner av operativsystem i Windows-familjen, Linux, Apple iOS etc. Detta är med andra ord de operativsystem som användaren kan hantera både på jobbet för att utföra vissa nödvändiga uppgifter och hemma för underhållning.

Till skillnad från generella operativsystem används speciella operativsystem relativt sällan i Vardagsliv. De huvudsakliga användarna av sådana operativsystem är skickliga utvecklare. Sådana operativsystem är utformade för att hantera resurserna i speciella datorsystem. Ofta är sådana system inbäddade, d.v.s. system som måste fungera genom att vara inbyggda direkt i enheten de styr. Dessa inkluderar operativsystem som Android, iOS, Windows CE, etc.

En delmängd av operativsystem för speciella ändamål är realtidsoperativsystem. Många inbyggda system kräver att operativsystemet som körs som en del av ett sådant hård- och mjukvarusystem reagerar på externa händelser och indata under en viss, ofta mycket kort, tidsperiod. Med andra ord är realtidsoperativsystem system som kan tillhandahålla den servicenivå som krävs under en viss tidsperiod.

Realtidsoperativsystem kan delas in i två klasser: hårda realtidssystem och mjuka realtidssystem. Operativsystem som kan utföra åtgärder utan att överskrida den erforderliga exekveringstiden kallas operativsystem. hård realtid. Om operativsystemet endast kan tillhandahålla den erforderliga exekveringstiden i genomsnitt, utan strikt överensstämmelse med den övre tidsgränsen, så klassificeras ett sådant system som mjuka realtidsoperativsystem. Men samtidigt, för båda klasserna av realtidsoperativsystem, är determinismen hos ett sådant system, d.v.s. förutsägbarheten av dess beteende, ett kritiskt krav.

UNIX OCH WINDOWS OPERATIVSYSTEM

De mest kända och populära generella operativsystemen för närvarande är operativsystemen i Windows- och UNIX-familjerna, såväl som deras utlöpare. Operativsystem i UNIX-familjen är en av de äldsta grenarna av operativsystem, medan UNIX-liknande operativsystem fortfarande används i stor utsträckning och inte förlorar sin relevans.

Anledningen till att vi talar om en familj av verksamhet UNIX-system, och inte om ett enda operativsystem, är att UNIX-familjen har utvecklats under en avsevärd tid i olika, ofta orelaterade, utvecklingsteam.

FILSYSTEM

ORGANISERING AV DATALAGRING PÅ DISKEN

Under en session med systemet skapar och ändrar användaren sin egen data, såsom dokument, bilder, programtexter. I vissa fall kan användaren skriva text, skriva ut den, få en papperskopia av dokumentet och avsluta sin session. I det här fallet får användaren resultatet av sitt arbete - en utskrift, och den inskrivna texten är mellanliggande data som inte behöver lagras. I mer allmänna fall kan texten vara stor och användaren kan inte skriva in den i en session. Sedan måste det sparas mellan användaranrop till systemet. Texten omvandlas till lagrad data.

För långtidslagring av användardata används datalagringsenheter - disk ( hårddiskar, CD-skivor, DVD-skivor, diskettenheter), band (streamers) eller solid-state (flash-enheter). Interaktionen med enheten hanteras av operativsystemet, och enheten för användardata i detta fall är filen.

En fil (ibland även kallad en datamängd) kan ses som data lagrad på disk som har ett unikt namn som är synligt för användaren. Fildata är i ett format som är avsett att användas av användarapplikationer. Till exempel kan en bok lagras på disk som en fil som heter book.txt i textformatet txt.

FILSYSTEM

Vad är en fil ur operativsystemets synvinkel, eller snarare, ur filsystemets synvinkel som en del av OS-kärnan?

Operativsystemet tillhandahåller ett gränssnitt till applikationsprogram för åtkomst till filer, men behandlar data som utgör filer på olika sätt. Föreställ dig en leksakskonstruktör som du kan sätta ihop en modellbil av. På samma sätt sätter operativsystemet ihop filer från individuella "detaljer" - block.

I det här fallet, precis som i konstruktören, till vilken monteringsschemat är kopplat, styrs operativsystemet av reglerna för montering av enskilda block. Sådana konstruerade uppsättningar av block kallas datamängder. En datamängd är en representation på lägre nivå av data än en fil. Dess organisation bestäms till stor del av databärarens egenskaper.

MINNESHANTERING I OPERATIVSYSTEM

Minne, oftare kallat RAM, är en av de viktigaste resurserna i alla datorsystem. Därför är undersystemet minneshantering operativsystemets viktigaste funktion. För att program ska kunna köras av processorn i ett datorsystem krävs att programmets körbara kod laddas in i huvudminnet.

Historiskt sett är bearbetningshastigheten för data i huvudminnet betydligt snabbare än bearbetningshastigheten för data på externa media, på vilka program vanligtvis lagras. Därför försöker de, när de utvecklar ett operativsystem, optimera processen för att ladda och köra program på ett sådant sätt att en tillräcklig mängd huvudminne allokeras till varje pågående process. Detta gör det för det första möjligt att påskynda exekveringen av den aktuella processen och för det andra att inte sakta ner arbetet med andra processer och undersystem i operativsystemet.

Problem uppstår när operativsystemet måste fördela en begränsad mängd RAM-minne mellan flera uppgifter (processer). I det här fallet får alla bara en sådan del som är tillräcklig för att utföra de aktuella beräkningarna, men mindre än hela minnet som krävs för att programmet ska fungera. Då är den inaktiva delen av uppgiften inne externt minne och pumpade därifrån efter behov.

Härifrån följer huvudmålen som måste uppnås när man utvecklar ett undersystem för minneshantering i operativsystemet:

  1. minska åtkomsttiden till huvudminnet;
  2. öka storleken på huvudminnet som är tillgängligt för processer;
  3. öka effektiviteten för processåtkomst till huvudminnet.

PROCESSER

I allmänhet är ett program en uppsättning processorinstruktioner som presenteras som en fil. För att ett program ska kunna köras måste operativsystemet först skapa en miljö eller miljö för uppgiftsexekvering, inklusive minnesresurser, möjligheten att komma åt I/O-systemet, etc. Uppsättningen av miljö och minnesområde som innehåller koden och data för det körbara programmet kallas en process. En process under dess drift kan vara inne olika stater, i var och en av dem använder den särskilt de resurser som tillhandahålls av operativsystemet.

Två huvudtillstånd: köra en process i uppgiftsläge samtidigt som den kör sin egen programmeringskod, och körning i kärnläge, när processen kör systemprogram som finns i adressutrymmet för operativsystemets kärna.

För att hantera processer använder operativsystemet systemdata som finns under hela processen. Helheten av dessa data utgör sammanhanget för processen. Kontexten definierar processens tillstånd vid en given tidpunkt.

Ur synvinkeln av strukturerna som stöds av OS-kärnan inkluderar processkontexten följande komponenter:

  • användarkontext - innehåll i processkodminne, data, stack, delat minne, I/O-buffertar;
  • registerkontext - innehållet i hårdvaruregister (programräknareregister, processorstatusregister, stackpekarregister och allmänna register);
  • sammanhang systemnivå- kärndatastrukturer som kännetecknar processen. Kontexten på systemnivå består av statiska och dynamiska delar.

SYSTEMANVÄNDARE

LOGGA IN

Föregående kapitel visade de viktigaste sätten att interagera med operativsystemet som är tillgängligt för användaren. Tänk dock på att UNIX-operativsystemet, som är huvudfokus i denna handledning, är ett operativsystem för flera användare. I det här kapitlet kommer vi att fokusera på exakt hur stöd för flera användare tillhandahålls, d.v.s. mest om sessionshantering och dataskydd.

För att starta en session med ett UNIX-system måste du ange dina referenser - användarnamn och lösenord som svar på inloggningsuppmaningen. Inloggningsprompten visas vanligtvis på terminalen efter att systemet har avslutat uppstarten. En anslutning till en server som kör UNIX kan också göras via nätverksprotokollet för telnet-terminalemulering. Med en sådan nätverksanslutning data från skärmen på en av de logiska terminalerna som betjänas av servern sänds till användarens datorskärm och data som matas in av användaren från tangentbordet sänds till servern.

I båda fallen ser inloggningsprompten ut ungefär så här:

Som svar på denna uppmaning måste du ange ditt kontonamn, varefter en lösenordsbegäran kommer att visas på skärmen:

Om användarnamnet (inloggningen) och lösenordet som användaren angett är korrekta kommer systemet att loggas in och huvudkommandotolken startas, det vill säga kommandotolken som är aktiv under hela användarsessionen i systemet. Att avsluta detta skal avslutar användarens session. De flesta system använder BASH-skalet som standard för användare.

Allt ovanstående är sant om användaren av systemet är en person. Detta är dock långt ifrån alltid sant - vilket objekt som helst som har rättigheter att använda objekt som tillhandahålls av operativsystemet kan fungera som systemanvändare. Ett exempel på sådana rättigheter är rätten att få åtkomst till vissa filer, starta program, åtkomst till en utskriftsenhet.

Användare kan startas program med en viss uppsättning rättigheter. Sådana program körs på uppdrag av en specifik användare, som i det här fallet kallas en pseudo-användare. En typisk pseudo-användare på UNIX-system är till exempel användaren med kontonamnet mail. På uppdrag av denna användare hanteras köerna av e-postmeddelanden, meddelanden levereras och vidarebefordras till sina mottagare. En normal användare kan i allmänhet inte logga in som en pseudoanvändare eftersom pseudoanvändare blockeras från att komma åt systemet med en inloggningsprompt.

Förutom vanliga användare och pseudo-användare finns det minst en superanvändare i systemet som utför funktionen som en systemadministratör. Denna användare har exklusiv tillgång till alla resurser som tillhandahålls av operativsystemet. På UNIX-system har denna användare vanligtvis användarnamnet root.

ANVÄNDARHANTERING

SKAPA ANVÄNDARE OCH GRUPPER

UNIX-system är operativsystem för flera användare. Även om en person använder en dator med ett UNIX-system installerat, krävs minst ett användarkonto för att fungera med systemet - root-administratörskontot.

Det rekommenderas inte att utföra normalt arbete med administratörskontot av säkerhetsskäl - i händelse av ogenomtänkta åtgärder kan systemet orsaka betydande skada. För att undvika detta kan du arbeta under ett konto som har mindre omfattande rättigheter än administratören.

För att skapa ett nytt användarkonto, använd kommandot useradd, som endast kan köras som rotanvändare. I den enklaste formen av lansering

användaradd<логин>

det skapar ett nytt konto i filen /etc/passwd med det första oanvända UID och GID, en hemkatalog av formen /lute/<логин>och standardskalet (vanligtvis /bin/bash).

För att uttryckligen ställa in UID, GID, hemkatalog och skal, kan du använda den utökade formen av kommandot:

useradd -u -g -d<каталог>-s<интерпретатор> <логин>

Till exempel, för att skapa ett användarkonto vasya med UID = 10001, GID = 200, hemkatalog /home2/vasya och standardskal /bin/zsh, måste du köra kommandot...

INITIALISERINGSFILER FÖR ANVÄNDARSESSION

På UNIX och Linux, i början av en användares session (efter att användaren har loggat in men innan kommandotolken visas), exekveras jobb som skapar användarens initiala informationsmiljö. Dessa uppgifter kan till exempel ställa in värden för miljövariabler, bestämma driftläget för användarens terminal och montera diskar.

Namnet på sessionsinitieringsfilen beror på skalet som används, så vi antar att BASH-skalet används.

Det finns två sessionsinitieringsfiler - en systemomfattande initieringsfil, som innehåller en uppgift som exekveras i början av en session för alla användare av systemet, och en användarinitieringsfil, som innehåller uppgifter som är specifika för varje enskild fil.

Den systemomfattande sessionsinitieringsfilen är /etc/profile. Den är läsbar för alla användare. Endast systemadministratören kan ändra innehållet i denna fil. Vanligtvis definierar den här filen terminalens initiala inställningar, liksom Miljövariabler, som definierar sökvägar till körbara filer och dynamiskt laddade bibliotek. Ett exempel på ett fragment av en sådan fil ges nedan:

TILLÄMPAD PROGRAMMERING FÖR UNIX OCH WINDOWS

HUVUDFILER

Att skriva uppgifter på kommandotolkningsspråket utökar listan över kommandon som är tillgängliga för användaren - varje uppgift, designad som en körbar fil, kan köras som ett kommando. Möjligheterna för sådana kommandon begränsas av det faktum att jobbkontrollspråk vanligtvis bara tillåter dig att kombinera andra färdiga kommandon (både interna kommandon från tolken och externa som finns i form av körbara filer), men inte ge all åtkomst till funktionerna i operativsystemets kärna-till-systemanrop. Om det är nödvändigt att använda systemanrop används program skrivna på ett av språken. hög nivå(mindre ofta - på assemblerspråk).

Standardspråket för de allra flesta UNIX-system är C, som kommer att användas som huvudspråk i det följande. Detta kommer att använda standardsystemanrop som är desamma i nästan alla UNIX-varianter. Det antas att läsaren är bekant med programmering på C-språket, därför presenteras i det här avsnittet endast de viktigaste funktionerna som är specifika för UNIX - endast rubrikfiler som bestämmer formatet för systemanrop och kompilatorns kommandoradsalternativ beaktas.

På UNIX och Linux finns standardhuvudfilerna som innehåller systemanropsdefinitioner i katalogen /usr/include. Varje fil innehåller definitioner av funktioner och datatyper. Samtidigt kännetecknas systemanropsdefinitioner av vägran att använda standardfiltyper. Till exempel ett systemsamtal...

På Windows-operativsystem, till skillnad från UNIX- eller Linux-operativsystem, är C-utvecklingssystemet inte tillgängligt som standard och kräver en extra installation. Det finns ett antal utvecklingssystem för Windows OS-familjen, i synnerhet finns det en familj av Microsoft Visual Studio-utvecklingssystem som inkluderar en språkkompilator i C. Det finns även flera varianter av DSS-kompileringssystemet, vanligt i Linux, anpassat för Windows ingår till exempel i MinGW eller cygwin.

3.2.1. Operativsystem, miljöer och skal

Operativsystem (OS) är nu en obligatorisk komponent i datorsystemprogramvara. Utan ett operativsystem är det omöjligt att fungera på en dator och att utföra användaruppgifter.
Ett operativsystem är ett komplex av sammankopplade program som tillhandahåller ett gränssnitt mellan applikationer och användare å ena sidan och datorhårdvara å andra sidan och implementerar rationell hantering av datorresurser (i enlighet med vissa kriterier).
Från en vanlig användares synvinkel (som inte är en professionell inom informationsteknologi) utför operativsystemet två huvudfunktioner:
- ger ett användarvänligt gränssnitt;
— säkerställer en effektiv användning av hårdvara och mjukvaruresurser.
Gränssnittet som tillhandahålls för användaren fungerar som ett gränssnitt mellan applikationer och användaren å ena sidan och datorhårdvara å andra sidan olika grafiska (om ett grafiskt användargränssnitt används) fönsterelement (knappar etc.). OS tillhandahåller ett användargränssnitt (UI) för att manipulera dessa objekt. OS:s uppgift är att tillhandahålla det mest vänliga, det vill säga kräver ett minimum av specialkunskaper, intuitivt användargränssnitt. För närvarande används grafik i stor utsträckning för att lösa detta problem i användargränssnittet. Detta gränssnitt kallas ett grafiskt användargränssnitt (GUI).
OS förser programmeraren med ett programmeringsgränssnitt (applikationsprogrammeringsgränssnitt) - API (applikationsprogrammeringsgränssnitt). Det är en standardiserad uppsättning funktioner, procedurer och andra programvarukomponenter som befriar programmeraren från att utföra rutinoperationer. Med den angivna uppsättningen funktioner begär applikationen funktioner på lägre nivå (vanligtvis operativsystemfunktioner). Ju rikare denna uppsättning är, desto bredare är möjligheterna för en eller annan funktion från denna uppsättning, desto lättare är det för programmeraren att implementera rutinmässiga, typiska applikationsfunktioner när han interagerar med operativsystemet. På fig. 3.4 är ett diagram över OS-gränssnitt.
Det följer av detta schema att användaren och applikationer (program) interagerar med varandra inte direkt, utan genom OS. Applikationerna själva interagerar också med varandra endast genom "mellanhanden" - OS.
Lösningen av alla problem på en dator kräver viss information, mjukvara och hårdvara, som

agera i förhållande till att problemet löses som resurser. I det allmänna fallet kan varje process (procedur) för programmet som löses eller ett annat program (när flera program körs på datorn samtidigt) kräva tillgång till en resurs som redan är upptagen av en annan procedur (program). Det finns ett problem med optimal, utifrån vissa kriterier, fördelning av begränsade resurser mellan processer (program). Detta är problemet som OS måste lösa.
Tillsammans med ovanstående två huvudfunktioner utför operativsystemet ett antal andra, inklusive tjänste, varav de viktigaste är:
— Behandling av nödsituationer (nödsituationer) som uppstår vid lösning av problem.
— Diagnostik och serviceunderhåll av diskar — Korrigering av fel i adresseringsdata som finns på diskar, optimering av dataplacering på en disk.
- konfigurera datorns hårdvara efter användarens behov.
För närvarande bestäms detaljerna för ett visst operativsystem till stor del av typen av hårdvara (hårdvaruplattform) som det är orienterat på. Därför, beroende på vilken typ av hårdvara som OS är avsett för, skiljer de mellan stordator OS (stora datorer) och persondator OS.
OS för persondatorer kan delas in i:
- single-tasking och multi-tasking (beroende på det tillåtna antalet samtidigt lösta uppgifter);
- enanvändare och flera användare (beroende på det tillåtna antalet samtidigt betjänade användare);
- enkel och multiprocessor (beroende på det tillåtna antalet processorer i datorns hårdvara);
- lokalt och nätverk (baserat på förmågan att arbeta i lokala nätverk; lokala operativsystem är designade för en fristående dator; nätverksoperativsystem är inriktade på att säkerställa driften av datorer i ett lokalt nätverk).
Det bör noteras att moderna operativsystem som regel är nätverksbaserade i en eller annan grad. Om en speciell dator (kallad server) är tilldelad i det lokala nätverket för att betjäna nätverksinteraktion, kallas operativsystemet som fokuserar på sådan service av hela nätverket server. I det här fallet kallas operativsystemet som är installerat på andra datorer (klienter) klient (eller arbetsstations OS). Till exempel stöder Windows 98 inte bara datorn i offlineläge, utan kan också fungera som ett klientoperativsystem.
För mer information om nätverksoperativsystem, se kap. fem.
Tänk på utvecklingen av operativsystem. De första datorerna hade inget OS. Samma specialister designade, programmerade och skötte datorer. Programmering gjordes på maskinspråk. Det fanns ingen systemprogramvara. Gradvis, med förbättringen av utrustningen, dök de första algoritmiska språken upp, vars användning gjorde det möjligt att utöka kretsen av datoranvändare. Detta krävde både effektivare organisering av deras arbete på en dator och effektivare användning av datorhårdvaruresurser, i första hand processorn (det var nödvändigt att minimera processoravbrott när man förberedde en uppgift för exekvering på en dator av en operatör). För att lösa detta problem utvecklades batchdatabehandlingssystem som automatiserade operatörens arbete med att förbereda beräkningsprocessen och gjorde det möjligt att starta inte en utan flera uppgifter (en batch) för exekvering. Dessa system blev de första systemprogrammen, prototypen av OS, d.v.s. uppdelningen av programvara i system och applikation dök upp. För 1965-1975 det finns en "guldålder" i utvecklingen av operativsystemet. Det var under dessa år som alla huvudmetoder och mekanismer som kännetecknar moderna operativsystem utvecklades och implementerades. Den viktigaste händelsen var den industriella implementeringen av multiprogrammering - en metod för att organisera en beräkningsprocess där flera program som använder samma processor placeras i datorns minne samtidigt. Detta gjorde det möjligt att avsevärt öka effektiviteten i användningen av dyra datorer. Nästa prestation, som redan direkt påverkar användargränssnittets möjligheter, var utvecklingen av tidsdelningssystem som gav användaren möjlighet att arbeta på sin egen monitor (terminal) och i en multianvändare (multiterminal) driftläge skapade illusionen av att användaren exklusivt ägde datorresurser (baserat på multiprogramdriftsläget). Detta ökade avsevärt bekvämligheten för datoranvändare. I början av 70-talet. de första nätverksoperativsystemen dök upp, vilket krävde betydande ansträngningar för att standardisera protokollen (reglerna) för utbyte i nätverk. Tidigt 80-tal präglat av tillkomsten av persondatorer. En av huvuduppgifterna, i samband med orienteringen av dessa datorer till den stora, vanliga användaren, var uppgiften att utveckla ett användarvänligt användargränssnitt. En annan viktig uppgift är utvecklingen av nätverkskomponenter i operativsystemet för att föra persondatorers förmåga att lösa komplexa problem till förmågan hos kraftfulla stora datorer - stordatorer (genom att "kombinera" sina datorresurser i ett nätverk). Det är lösningen av dessa problem som bestämmer riktningen för utvecklingen av moderna operativsystem.
Som nämnts ovan ger moderna operativsystem möjligheten att driva en dator i ett nätverk. De vanligaste OS-familjerna är Unix, Windows, Netware. MS DOS, tills nyligen ett av de mest populära operativsystemen för persondatorer, används praktiskt taget inte längre som operativsystem för en modern dator. Ändå finns det en hel del program fokuserade på att arbeta under kontroll av just detta operativsystem. Både fördelarna och nackdelarna med detta operativsystem har haft stor inverkan på utvecklingen av bättre operativsystem. När man utvecklar moderna operativsystem ägnas mycket uppmärksamhet åt frågorna om deras portabilitet (dvs möjligheten att fungera) på olika hårdvaruplattformar, förbättra användargränssnittet med operativsystemet, utveckla metoder för att organisera parallell datoranvändning som avsevärt kan snabba upp lösningen av problem på en dator.
Ett typiskt exempel på systemprogramvara, tillsammans med operativsystemet, är operativa miljöer och skal, vars främsta skäl till utvecklingen var önskan att mer fullständigt tillgodose användarens krav på ett gränssnitt med en dator. En vanlig användare är ofta inte helt nöjd med kapaciteten hos ett visst operativsystem. Först och främst är denna situation typisk för de operativsystem som kräver att användaren strikt följer reglerna för dialog med datorn. En typisk representant för sådana operativsystem är MS DOS. Men även avancerade (i jämförelse med MS DOS) användargränssnittsverktyg i Windows OS-familjen kan av en eller annan anledning inte passa användaren.
En liknande situation uppstår när användaren är en programmerare. Förutom ett bekvämt gränssnitt, som en vanlig användare, behöver en programmerare avancerade API-verktyg (Application Programming Interface) som är nödvändiga för att applikationer ska kunna interagera med operativsystemet genom att anropa systemprocedurer.
API-kapaciteten bestäms i första hand av de verktyg som tillhandahålls programmeraren av operativsystemet. En programmerare är dock ofta missnöjd med de möjligheter som ges honom, särskilt i operativsystem som MS DOS.
Operativmiljön är en uppsättning systemprogram, vars huvudsakliga syfte är att förse användaren med både ett användargränssnitt (UI) och ett applikationsprogrammeringsgränssnitt (API), som är avsevärt överlägsna i sina möjligheter jämfört med liknande gränssnitt som tillhandahålls av operativ system. En utmärkande egenskap hos operativmiljön är att den är byggd ovanpå det befintliga operativsystemet, det vill säga dess drift är omöjlig utan detta operativsystem. Det mest typiska exemplet på en framgångsrik operativmiljö är Windows-3.1, som implementeras som ett tillägg till MS DOS.
Operativskalet är en uppsättning systemprogram som ger ett vänligt användargränssnitt (UI) med operativsystemet, som överträffar vissa parametrar (som regel när det gäller icke-proceduralitet och närhet till språket för användarens yrkesaktivitet) liknande användargränssnittsverktyg som tillhandahålls av själva operativsystemet.
Ett exempel operationsskalär ett populärt system Norton programvara befälhavare.







2022 gtavrl.ru.