De første systemprogrammene utførte prototypen til operativsystemet. Operativsystem konsept. Hovedstadiene i utviklingen av operativsystemer

Med tanke på utviklingen av operativsystemet, må det tas i betraktning at forskjellen på tidspunktet for implementering av noen prinsipper for organisering av individuelle operativsystemer før deres generelle aksept, så vel som den terminologiske usikkerheten, ikke tillater oss å gi en eksakt kronologi for utviklingen av operativsystemet. Imidlertid er det nå allerede mulig å nøyaktig bestemme de viktigste milepælene i utviklingen av operativsystemer.

Det er også forskjellige tilnærminger til å definere OS -generasjoner. Det er kjent å dele operativsystemet i generasjoner i samsvar med generasjoner av datamaskiner og systemer [,,]. Denne inndelingen kan ikke betraktes som helt tilfredsstillende, siden utviklingen av metoder for å organisere OS innenfor rammen av en generasjon datamaskiner, som opplevelsen av deres opprettelse har vist, ligger i et ganske bredt spekter. Et annet synspunkt knytter ikke OS -generasjonen til de tilsvarende datamaskingenerasjonene. Så, for eksempel, er definisjonen av OS -generasjoner kjent i henhold til nivåene på inndatamaskinens språk, moduser for bruk av sentrale prosessorer, former for operativsystemer, etc.

Tilsynelatende bør den mest hensiktsmessige betraktes som tildeling av stadier i utviklingen av OS innenfor rammen av individuelle generasjoner av datamaskiner og fly.

Den første fasen i utviklingen av systemprogramvare kan betraktes som bruk av bibliotekprogrammer, standard- og servicerutiner og makroer. Konseptet med subrutinebiblioteker er det tidligste, og dateres tilbake til 1949. Med bruk av biblioteker har automatiske verktøy for vedlikehold blitt utviklet - lasterprogrammer og lenkeredigerere. Disse verktøyene ble brukt i datamaskiner i den første generasjonen, da operativsystemer som sådan ennå ikke eksisterte (figur 3.2).

Ønsket om å eliminere avviket mellom ytelsen til prosessorer og driftshastigheten til elektromekaniske I / O -enheter, på den ene siden, og bruk av tilstrekkelig raske stasjoner på magnetbånd og trommer (NML og NMB), og deretter på magnetiske disker (NMP), derimot, førte til behovet for å løse oppgaver med buffering og blokkering av blokkering av data. Spesielle programmer for tilgangsmetoder dukket opp, som ble introdusert i objektene til modulene til lenkeredaktørene (senere begynte prinsippene for polybuffering å bli brukt). Til opprettholde effektiviteten og for å lette driften av maskiner ble det opprettet diagnostiske programmer. Dermed ble det grunnleggende systemet opprettet. programvare.


Ris. 3.2.

Med forbedringen av datamaskinens egenskaper og produktivitetsveksten ble mangelen på grunnleggende programvare tydelig. Operativsystemer for tidlig batchbehandling - skjermer - dukket opp. Innenfor rammen av batchbehandlingssystemer i ledetid for noe arbeid i pakken (oversettelse, montering, utførelse av et ferdig program), var ingen del av systemprogramvaren i RAM, siden alt minne ble levert til det gjeldende arbeidet. Så var det overvåkingssystemer der RAM ble delt inn i tre områder: et fast område av monitorsystemet, et brukerområde og et delt minneområde (for lagring av data som kan utveksles med objektmoduler).

Den intensive utviklingen av datahåndteringsmetoder begynte, en så viktig OS -funksjon som implementering av I / O uten deltakelse av en sentral prosess - den såkalte spooling (fra den engelske SPOOL - Simultaneous Peripheral Operation on Line) oppsto.

Fremveksten av ny maskinvareutvikling (1959-1963) - avbruddssystemer, tidtakere, kanaler - stimulerte den videre utviklingen av operativsystemet [,]. Det var utøvende systemer, som var et sett med programmer for distribusjon av datamaskinressurser, kommunikasjon med operatøren, kontroll over databehandlingsprosessen og kontroll av input-output. Slike utøvende systemer gjorde det mulig å implementere en form for datasystemoperasjon som var ganske effektiv på den tiden - enkeltprogram -batchbehandling. Disse systemene ga brukerverktøyene som brytpunkter, logiske tidtakere, muligheten til å bygge programmer. overleggsstruktur, påvisning av brudd programmer for restriksjoner vedtatt i system, filbehandling, innsamling av regnskapsinformasjon, etc.

Batchbehandling med ett program med en økning i datamaskinproduktivitet kan imidlertid ikke gi et økonomisk akseptabelt maskinbruk. Løsningen ble multiprogrammering- en metode for å organisere en beregningsprosess, der flere programmer er plassert i datamaskinens minne, alternativt utført av en prosessor, dessuten for å starte eller fortsette å telle i henhold til ett program, det var ikke nødvendig å fullføre andre. I et flerprogrammeringsmiljø har ressursallokering og sikkerhet blitt mer akutte og vanskeligere.

Teorien om å bygge operativsystemer i denne perioden ble beriket med en rekke fruktbare ideer. Ulike former for multiprogrammerende driftsmåter har dukket opp, inkludert tidsdeling- modus som sikrer drift multi-terminal system... Konseptet med virtuelt minne og deretter virtuelle maskiner ble opprettet og utviklet. Modus for tidsdeling tillot brukeren å samhandle interaktivt med programmene sine, slik det var før advent av batchbehandlingssystemer.

Et av de første operativsystemene som brukte disse siste løsningene var operativsystem MCP (Master Control Program) opprettet av Burroughs for sine B5000 -datamaskiner i 1963. I dette operativsystemet ble mange konsepter og ideer implementert som senere ble standard for mange operativsystemer (figur 3.3):

  • multiprogrammering;
  • multiprosessbehandling;
  • virtuell hukommelse;
  • evnen til å feilsøke programmer på kildespråket;
  • skrive et operativsystem på et språk på høyt nivå.

Det berømte tidsdelingssystemet for den perioden var CTSS (Compatible Time Sharing System), et kompatibelt tidsdelingssystem utviklet ved Massachusetts Institute of Technology (1963) for IBM-7094-datamaskinen. Dette systemet ble brukt til å utvikle neste generasjon MULTICS (Multiplexed Information And Computing Service) tidsdelingssystem ved samme institutt med Bell Labs og General Electric. Det er bemerkelsesverdig at dette operativsystemet hovedsakelig ble skrevet på EPL-språket på høyt nivå (den første versjonen av PL / 1-språket fra IBM).

En av de viktigste hendelsene i operativsystemets historie regnes som utseendet i 1964 av en familie datamaskiner kalt System / 360 fra IBM, og senere System / 370. Det var verdens første implementering av konseptet om en familie av programvare og informasjonskompatible datamaskiner, som senere ble standard for alle selskaper i datamaskinindustrien.


Ris. 3.3.

Det skal bemerkes at hovedformen for bruk av datamaskiner både i tidsdelingssystemer og i batchbehandlingssystemer, ble en multi-terminal-modus. Samtidig var ikke bare operatøren, men også alle brukerne i stand til å formulere sine oppgaver og kontrollere utførelsen fra terminalen. Siden terminalkomplekser snart ble mulig å plassere på betydelige avstander fra datamaskinen (takket være modemtelefontilkoblinger), eksterne jobboppføringssystemer og teleprosessering av data. Moduler som implementerer kommunikasjonsprotokoller er lagt til i operativsystemet.

På dette tidspunktet hadde det vært en betydelig endring i fordelingen av funksjoner mellom maskinvare og programvare og programvare på datamaskinen. Operativsystem blir en "integrert del av datamaskinen", som en fortsettelse av utstyret. Prosessorene har nå privilegerte ("Supervisor" i OS / 360) og bruker ("Task" i OS / 360) driftsmåter, et kraftig avbruddssystem, minnebeskyttelse, spesielle registre for rask programbytte, virtuell minnestøtte, etc.

På begynnelsen av 70 -tallet dukket de første nettverksoperativsystemene opp, noe som gjorde det ikke bare mulig å spre brukere, som i teleprosesseringssystemer, men også å organisere distribuert lagring og behandling av data mellom datamaskiner som er koblet sammen med elektriske tilkoblinger. ARPANET MO USA -prosjektet er kjent. I 1974 kunngjorde IBM sin egen SNA-nettverksarkitektur for sine hovedrammer, og tilbyr terminal-til-terminal, terminal-til-datamaskin og datamaskin-til-datamaskin-interaksjoner. I Europa ble teknologien for å bygge pakkeswitchede nettverk basert på X.25-protokollene aktivt utviklet.

På midten av 70-tallet, sammen med hovedrammer, ble minidatamaskiner (PDP-11, Nova, HP) utbredt. Arkitekturen til minidatamaskinene var mye enklere, og mange av funksjonene i hovedrammens multiprogrammeringssystemer ble avkortet. Operativsystemene til minidatamaskiner begynte å bli spesialisert (RSX -11M - tidsdeling, RT -11 - sanntid OC) og ikke alltid flerspiller.

En viktig milepæl i mini-datamaskiners historie og i historien til operativsystemer generelt var opprettelsen av UNIX OS. Systemet ble skrevet av Ken Thompson, en av dataspesialistene på BELL Labs som jobbet med MULTICS -prosjektet. Faktisk er UNIX hans en avkortet enbrukerversjon av MULTICS-systemet. Det originale navnet på dette systemet - UNICS (UNiplexed Information and Computing Service) - "primitiv informasjon og datatjeneste". Dette er navnet på systemet på spøk, siden MULTICS (MULTiplexed Information and Computing Service) er en multiplekset informasjon og datatjeneste. Siden midten av 70-tallet begynte den massive bruken av UNIX, skrevet 90% i C. Den utbredte bruken av C-kompilatorer gjorde UNIX til et unikt bærbart operativsystem, og siden det ble sendt med kildekoder, ble det det første åpne operativsystemet. Fleksibilitet, eleganse, kraftig funksjonalitet og åpenhet har gjort det mulig å innta en sterk posisjon i alle klasser av datamaskiner - fra personlige til superdatamaskiner.

Tilgjengeligheten av minidatamaskiner har ansporet etableringen av lokalnett. I de enkleste LAN -ene ble datamaskiner koblet til via serielle porter. Den første nettverksapplikasjonen for UNIX OS, UUCP (Unix to Unix Copy Program) -programmet, dukket opp i 1976.

Videreutvikling av nettverkssystemer gikk med TCP / IP -protokollbunken. I 1983 ble det vedtatt av den amerikanske MO som standard og brukt på ARPANET. Samme år delte ARPANET seg i MILNET (for det amerikanske militæret) og den nye ARPANET, som ble kjent som Internett.

Alle åttitallet ble preget av fremveksten av flere og mer avanserte versjoner av UNIX: Sun OS, HP-UX, Irix, AIX, etc. For å løse problemet med kompatibilitet ble POSIX- og XPG-standardene vedtatt, som definerte grensesnittene til disse systemene for applikasjoner.

En annen viktig hendelse i historien til operativsystemer var utseendet på personlige datamaskiner på begynnelsen av 1980 -tallet. Det tjente som en kraftig drivkraft for distribusjon av lokale nettverk, og derfor har støtte for nettverksfunksjoner blitt en forutsetning for PC -operativsystemet. Det brukervennlige grensesnittet og nettverksfunksjonene dukket imidlertid ikke opp umiddelbart i PC-operativsystemet.

Den mest populære versjonen av det tidlige operativsystemet for personlige datamaskiner var Microsofts MS-DOS, et enkeltprogram, enkeltbrukeroperativsystem med et kommandolinjegrensesnitt. Mange funksjoner som sikrer brukeropplevelsen i dette operativsystemet ble levert av flere programmer - Norton Commander -skallet, PC -verktøy, etc. Den største innflytelsen på utviklingen av PC -programvare var driftsmiljø Windows, den første versjonen som dukket opp i 1985. Nettverksfunksjoner ble også implementert ved hjelp av nettverksskall og dukket opp i MS-DOS versjon 3.1. Samtidig ble Microsofts nettverksprodukter - MS -NET og senere - LAN Manager, Windows for Workgroup og deretter Windows NT - utgitt.

Novell gikk den andre veien, produktet NetWare er et operativsystem med innebygde nettverksfunksjoner. NetWare OS ble distribuert som

Beskrivelse av essensen, formålet, funksjonene til operativsystemene. Særtrekk ved deres utvikling. Funksjoner i algoritmer for ressursstyring. Moderne konsepter og teknologier for utforming av operativsystemer, krav til operativsystemet i det XXI århundre.

INTRODUKSJON

1. OS -evolusjon

1.1 Den første perioden (1945 -1955)

1.2 Andre periode (1955 - 1965)

1.3 Tredje periode (1965 - 1980)

1.4 Fjerde periode (1980 - i dag)

2. OS -klassifisering

2.1 Funksjoner i ressursstyringsalgoritmer

2.2 Funksjoner på maskinvareplattformer

2.3 Funksjoner i bruksområder

2.4 Funksjoner i konstruksjonsmetoder

3. Moderne konsepter og teknologier for utforming av operativsystemer, krav til operativsystemet i det XXI århundre

Konklusjon

Liste over brukt litteratur

INTRODUKSJON

Historien til enhver gren av vitenskap eller teknologi gjør det mulig ikke bare å tilfredsstille naturlig nysgjerrighet, men også å bedre forstå essensen av de viktigste prestasjonene i denne grenen, å forstå de eksisterende trendene og korrekt vurdere utsiktene til visse utviklingsretninger. I nesten et halvt århundre av sin eksistens har operativsystemer passert en vanskelig vei fylt med mange viktige hendelser. Utviklingen av operativsystemer ble sterkt påvirket av suksessene med å forbedre elementbasen og datautstyret, derfor er mange stadier av utviklingen av operativsystemet nært knyttet til fremveksten av nye typer maskinvareplattformer, for eksempel minidatamaskiner eller personlige datamaskiner. Operativsystemer har gjennomgått en alvorlig utvikling i forbindelse med datamaskiners nye rolle i lokale og globale nettverk. Den viktigste faktoren i utviklingen av operativsystemet har blitt Internett. Ettersom dette nettverket får funksjonene til et universelt massekommunikasjonsmiddel, blir operativsystemene mer og mer enkle og praktiske å bruke, inkluderer avanserte midler for å støtte multimediainformasjon og er utstyrt med pålitelige beskyttelsesmidler.

Hensikten med dette kursarbeidet er - å beskrive og analysere utviklingen av operativsystemer.

Dette målet oppnås gjennom følgende oppgaver:

Tenk på det historiske aspektet ved fremveksten av operativsystemer;

Fremhev og vurder stadiene i utviklingen av operativsystemer.

Det skal bemerkes at faktumet ikke var tilstrekkelig dekket i litteraturen, noe som gjorde det vanskelig å studere det.

I løpet av undersøkelsen ble det utført en kort analyse av slike kilder som materialer fra nettstedet http://www.microsoft.com/rus, materialer fra Windows NT Magazine og andre.

Arbeidet består av tre kapitler med introduksjon, avslutning og bibliografi.

1 ... OS evolusjon

1.1 Første periode (1945 -1955)

Det er kjent at datamaskinen ble oppfunnet av den engelske matematikeren Charles Babidge på slutten av det attende århundre. Hans "analysemaskin" kunne egentlig ikke fungere, fordi datidens teknologier ikke oppfylte kravene til produksjon av deler av presisjonsmekanikk, som var nødvendige for databehandling. Det er også kjent at denne datamaskinen ikke hadde et operativsystem.

Noen fremskritt i etableringen av digitale datamaskiner skjedde etter andre verdenskrig. På midten av 40-tallet ble de første rørdataenhetene opprettet. På den tiden deltok en og samme gruppe mennesker i designet, og i operasjonen, og i programmeringen av datamaskinen. Det var mer et vitenskapelig forskningsarbeid innen databehandling, i stedet for bruk av datamaskiner som et verktøy for å løse praktiske problemer fra andre anvendte områder. Programmeringen ble utført utelukkende på maskinspråk. Det var ikke snakk om operativsystemer, alle oppgavene med å organisere databehandlingsprosessen ble løst manuelt av hver programmerer fra kontrollpanelet. Det var ingen annen systemprogramvare enn matte- og verktøybiblioteker.

1.2 Andre periode (1955 - 1965)

Fra midten av 50 -tallet begynte en ny periode i utviklingen av datateknologi, knyttet til fremveksten av en ny teknisk base - halvlederelementer. Andregenerasjons datamaskiner ble mer pålitelige, nå kunne de kontinuerlig arbeide lenge nok til å bli betrodd å utføre oppgaver som virkelig er viktige i praksis. Det var i denne perioden personellet ble delt inn i programmerere og operatører, operatører og utviklere av datamaskiner.

I løpet av disse årene dukket de første algoritmiske språkene opp, og derfor de første systemprogrammene - kompilatorer. Kostnaden for prosessortid har økt, noe som krever mindre overhead mellom programlanseringer. De første batchbehandlingssystemene dukket opp som ganske enkelt automatiserte lanseringen av det ene programmet etter det andre og derved økte prosessorbelastningsfaktoren. Batchbehandlingssystemer var prototypen til moderne operativsystemer, de var de første systemprogrammene designet for å kontrollere databehandlingen. Under implementeringen av batchbehandlingssystemer ble det utviklet et formalisert oppgavekontrollspråk, ved hjelp av hvilken programmereren fortalte systemet og operatøren hvilket arbeid han vil gjøre på datamaskinen. En samling av flere oppgaver, vanligvis i form av en kortstokk med hullkort, kalles en oppgavepakke.

1.3 Tredje periode (1965 - 1980)

Den neste viktige perioden i utviklingen av datamaskiner går tilbake til 1965-1980. På dette tidspunktet, i den tekniske basen var det en overgang fra individuelle halvlederelementer som transistorer til integrerte mikrokretser, noe som ga den nye, tredje generasjonen datamaskiner mye større muligheter.

Denne perioden ble også preget av etableringen av familier til programvarekompatible maskiner. Den første familien av programvarekompatible maskiner bygget på integrerte kretser var IBM / 360-serien av maskiner. Denne familien ble bygget på begynnelsen av 1960 -tallet, og utkonkurrerte den andre generasjons maskinene betydelig når det gjelder pris / ytelse. Snart ble ideen om programvarekompatible maskiner allment akseptert.

Programvarekompatibilitet krever også operativsystemkompatibilitet. Slike operativsystemer må fungere på både store og små datasystemer, med et stort og lite utvalg av eksterne enheter, i det kommersielle feltet og innen vitenskapelig forskning. Operativsystemer bygget med den hensikt å oppfylle alle disse motstridende kravene har vist seg å være ekstremt komplekse "monstre". De besto av mange millioner monteringslinjer, skrevet av tusenvis av programmerere, og inneholdt tusenvis av feil, noe som forårsaket en endeløs strøm av reparasjoner. I hver ny versjon av operativsystemet ble noen feil rettet og andre ble introdusert.

På samme tid, til tross for den enorme størrelsen og mange problemer, tilfredsstilte OS / 360 og andre lignende operativsystemer i tredje generasjons maskiner de fleste forbrukerkravene. Den viktigste prestasjonen for denne generasjonen av operativsystemer var implementering av multiprogrammering. Multiprogrammering er en metode for å organisere en beregningsprosess der flere programmer vekselvis utføres på en prosessor. Mens ett program utfører en I / O-operasjon, går ikke prosessoren på tomgang, slik den gjorde i sekvensiell programkjøring (enkeltprogrammodus), men kjører et annet program (flerprogrammodus). I dette tilfellet lastes hvert program inn i sitt eget stykke RAM, kalt en seksjon.

En annen innovasjon er spooling. Spoling på den tiden ble definert som en måte å organisere beregningsprosessen, i samsvar med hvilke oppgaver som ble lest fra stansede kort til disk i den hastigheten de ble vist i datasenteret, og deretter, når den neste oppgaven var fullført, en ny oppgave fra disk ble lastet inn i den frigjorte partisjonen ...

Sammen med multiprogramimplementeringen av batchbehandlingssystemer har det dukket opp en ny type operativsystem - tidsdelingssystemer. En variant av multiprogrammering som brukes i tidsdelingssystemer er rettet mot å skape en illusjon for hver enkelt bruker av den eneste bruken av en datamaskin.

1.4 Fjerde periode (1980 - i dag)

Den neste perioden i utviklingen av operativsystemer er forbundet med fremveksten av store integrerte kretser (LSI). I løpet av disse årene var det en kraftig økning i integrasjonsgraden og en reduksjon i kostnaden for mikrokretser. Datamaskinen ble tilgjengelig for den enkelte, og epoken med personlige datamaskiner begynte. Med hensyn til arkitektur skilte ikke personlige datamaskiner seg på noen måte fra klassen av minidatamaskiner som PDP-11, men prisen var vesentlig forskjellig. Hvis en minidatamaskin gjorde det mulig for en avdeling i et foretak eller et universitet å ha sin egen datamaskin, så gjorde en personlig datamaskin det mulig for en person.

Datamaskiner ble mye brukt av ikke-spesialister, noe som krevde utvikling av "vennlig" programvare, dette satte en stopper for kasteprogrammererne.

Operativsystemmarkedet ble dominert av to systemer: MS-DOS og UNIX. Enkeltprogrammet, enkeltbruker-MS-DOS-operativsystemet ble mye brukt for datamaskiner basert på Intel 8088-mikroprosessoren, etterfulgt av 80286, 80386 og 80486. UNIX-operativsystemet med flere programmer dominerte ikke-Intel-operativsystemet datamaskinmiljø, spesielt de som er basert på RISC-prosessorer med høy ytelse.

På midten av 80-tallet begynte personlige datanettverk å utvikle seg raskt, og kjørte under nettverk eller distribuerte operativsystemer.

I et nettverksoperativsystem må brukerne være klar over tilstedeværelsen av andre datamaskiner og må logge på en annen datamaskin for å bruke ressursene, hovedsakelig filer. Hver maskin på nettverket kjører sitt eget lokale operativsystem, som skiller seg fra operativsystemet til en frittstående datamaskin i nærvær av tilleggsverktøy som gjør at datamaskinen kan operere på nettverket. Nettverksoperativsystemet er ikke grunnleggende forskjellig fra operativsystemet til en enprosessor -datamaskin. Den inneholder nødvendigvis programvarestøtte for nettverksgrensesnittenheter (nettverksadapterdriver), samt verktøy for ekstern tilgang til andre datamaskiner i nettverket og verktøy for tilgang til eksterne filer, men disse tilleggene endrer ikke strukturen i selve operativsystemet vesentlig.

2. OS -klassifisering

Operativsystemer kan variere i funksjonene ved implementering av interne algoritmer for å administrere de viktigste datamaskinressursene (prosessorer, minne, enheter), funksjonene i designmetodene som brukes, typer maskinvareplattformer, bruksområder og mange andre egenskaper.

Nedenfor er klassifiseringen av OS i henhold til flere av de mest grunnleggende egenskapene.

2.1 Funksjoner i algoritmer for ressursstyring

Effektiviteten til nettverksoperativsystemet som helhet avhenger i stor grad av effektiviteten til algoritmene for å administrere de lokale ressursene til en datamaskin. Derfor, når du karakteriserer et nettverksoperativsystem, blir de viktigste funksjonene ved implementeringen av operativsystemfunksjoner for behandling av prosessorer, minne og eksterne enheter på en autonom datamaskin ofte sitert. Så for eksempel, avhengig av funksjonene i prosessorkontrollalgoritmen som brukes, er operativsystemene delt inn i multitasking og single-tasking, multi-user og single-user systemer, systemer som støtter multi-thread behandling og ikke støtter den, i flerprosessor og enprosessorsystem.

Støtte for flere oppgaver. Operativsystemer kan deles inn i to klasser basert på antall samtidig utførte oppgaver:

single-tasking (f.eks. MS-DOS, MSX) og

multitasking (OC EC, OS / 2, UNIX, Windows 95).

Operativsystemer med én oppgave utfører hovedsakelig funksjonen til å gi brukeren en virtuell maskin, noe som gjør det enklere og mer praktisk for brukeren å samhandle med datamaskinen. Operativsystemer med én oppgave inkluderer verktøy for styring av eksterne enheter, verktøy for håndtering av filer, verktøy for kommunikasjon med brukeren.

Et multitasking -operativsystem, i tillegg til funksjonene ovenfor, administrerer deling av delte ressurser som prosessor, RAM, filer og eksterne enheter.

Støtte for flerspillermodus. Etter antall samtidige brukere er operativsystemet delt inn i:

enkeltbruker (MS-DOS, Windows 3.x, tidligere versjoner av OS / 2);

flerbruker (UNIX, Windows NT).

Hovedforskjellen mellom flerbrukersystemer og enkeltbrukersystemer er tilgjengeligheten av midler for å beskytte informasjonen til hver bruker mot uautorisert tilgang fra andre brukere. Det skal bemerkes at ikke alle fleroppgavekjøringssystemer er flerbruker, og ikke alle enkeltbrukeroperativsystemer er enkeltoppgaver.

Preemptive og non-preemptive multitasking. Den viktigste delte ressursen er CPU -tid. Måten CPU -tiden fordeles på flere prosesser (eller tråder) som samtidig eksisterer i systemet, bestemmer i stor grad detaljene i operativsystemet. Blant de mange eksisterende alternativene for å implementere multitasking kan to grupper algoritmer skilles:

ikke-forebyggende multitasking (NetWare, Windows 3.x);

forebyggende multitasking (Windows NT, OS / 2, UNIX).

Hovedforskjellen mellom preemptive og non-preemptive multitasking er graden av sentralisering av prosessplanleggingsmotoren. I det første tilfellet er prosessplanleggingsmekanismen helt konsentrert i operativsystemet, og i det andre er den fordelt mellom systemet og applikasjonsprogrammene. I ikke-forebyggende multitasking kjører den aktive prosessen til den på eget initiativ overgir kontrollen til operativsystemet for at den skal kunne velge en annen prosess som er klar til å kjøre fra køen. Ved forebyggende multitasking tas beslutningen om å bytte prosessor fra en prosess til en annen av operativsystemet, ikke av selve den aktive prosessen.

Multi-thread støtte. Et viktig trekk ved operativsystemer er muligheten til å parallellisere beregninger innenfor en enkelt oppgave. Et multi-threaded OS deler ikke prosessortid mellom oppgavene, men mellom sine separate grener (tråder).

Multiprosessering. Et annet viktig trekk ved operativsystemet er fraværet eller tilstedeværelsen av støtte for flerprosessering - multiprosessering. Multiprosessering fører til komplikasjon av alle ressursstyringsalgoritmer.

I dag blir det allment akseptert å introdusere flerprosesserende støttefunksjoner i operativsystemet. Disse funksjonene er tilgjengelige på Sun's Solaris 2.x, Santa Crus Operations 'Open Server 3.x, IBMs OS / 2, Microsofts Windows NT og Novell's NetWare 4.1.

Multiprosessor -operativsystemer kan klassifiseres i henhold til måten databehandlingsprosessen er organisert i et system med en flerprosessorarkitektur: asymmetriske operativsystemer og symmetriske operativsystemer. Et asymmetrisk operativsystem utføres fullstendig på bare en av prosessorene i systemet, og fordeler applikasjonsoppgaver blant resten av prosessorene. Et symmetrisk operativsystem er fullstendig desentralisert og bruker hele bassenget av prosessorer og deler dem mellom system- og applikasjonsoppgaver.

Ovenfor vurderte vi egenskapene til operativsystemet knyttet til administrasjon av bare én type ressurs - prosessoren. En viktig innflytelse på utseendet til operativsystemet som helhet, på muligheten for bruk i et eller annet område, utøves også av funksjonene i andre delsystemer for å administrere lokale ressurser - delsystemer for styring av minne, filer og input- utgangsenheter.

Spesifisiteten til operativsystemet manifesteres også i måten det implementerer nettverksfunksjoner på: gjenkjenning og omdirigering av forespørsler til eksterne ressurser til nettverket, overføring av meldinger over nettverket og utførelse av eksterne forespørsler. Ved implementering av nettverksfunksjoner oppstår det et sett med oppgaver knyttet til den distribuerte typen lagring og behandling av data i nettverket: opprettholde referanseinformasjon om alle ressurser og servere som er tilgjengelige på nettverket, adressere samhandlende prosesser, sikre tilgangsåpenhet, replikere data, forene kopier , opprettholde datasikkerhet.

2. 2 Funksjoner på maskinvareplattformer

Egenskapene til operativsystemet påvirkes direkte av maskinvaren det er orientert på. Etter maskinvaretype skiller operativsystemene til personlige datamaskiner, minidatamaskiner, hovedrammer, klynger og datanettverk seg ut. Blant de listede datamaskinene finner du både enprosessorversjoner og flerprosessorversjoner. I alle fall gjenspeiles spesifikasjonene til maskinvare vanligvis i detaljene i operativsystemene.

Det er åpenbart at operativsystemet til en stor maskin er mer komplekst og funksjonelt enn en datamaskin. Så i operativsystemet til store maskiner implementeres åpenbart funksjonene for å planlegge arbeidsflyten som utføres ved å bruke komplekse prioriterte disipliner og krever mer datakraft enn i operativsystemet til personlige datamaskiner. Situasjonen er lik med andre funksjoner.

Nettverksoperativsystemet inkluderer midler til å overføre meldinger mellom datamaskiner over kommunikasjonslinjer, som er helt unødvendige i et frittstående operativsystem. Basert på disse meldingene opprettholder nettverksoperativsystemet delingen av datamaskinressurser mellom eksterne brukere som er koblet til nettverket. For å støtte meldingsfunksjoner, inneholder nettverksoperativsystemer spesielle programvarekomponenter som implementerer populære kommunikasjonsprotokoller som IP, IPX, Ethernet og andre.

Multiprosessorsystemer krever en spesiell organisasjon fra operativsystemet, ved hjelp av hvilket operativsystemet selv, så vel som applikasjonene det støtter, kan utføres parallelt av de individuelle prosessorene i systemet. Parallell drift av separate deler av operativsystemet skaper ytterligere problemer for OS -utviklere, siden det i dette tilfellet er mye vanskeligere å sikre konsekvent tilgang til individuelle prosesser til vanlige systembord, for å eliminere effekten av løp og andre uønskede konsekvenser av asynkron utførelse av arbeid.

Andre krav gjelder for klyngeoperativsystemer. En klynge er en løst koblet samling av flere datasystemer som jobber sammen for å kjøre vanlige applikasjoner og vises for brukeren som et enkelt system. Sammen med spesiell maskinvare for bruk av klyngesystemer, er det også nødvendig med programvarestøtte fra operativsystemet, som i utgangspunktet går ut på å synkronisere tilgang til delte ressurser, oppdage feil og dynamisk omkonfigurere systemet. En av de første utviklingene innen clusterteknologier var løsningene til Digital Equipment -selskapet basert på VAX -datamaskiner. Selskapet inngikk nylig en avtale med Microsoft om å utvikle klyngeteknologi ved hjelp av Windows NT. Flere selskaper tilbyr klynger basert på UNIX -maskiner.

Sammen med operativsystemer som er rettet mot en veldig spesifikk type maskinvareplattform, finnes det operativsystemer som er spesielt designet for at de enkelt kan overføres fra en type datamaskin til en annen type datamaskin, det såkalte mobile OS. Det mest fremtredende eksemplet på et slikt operativsystem er det populære UNIX -systemet. I disse systemene er maskinvareavhengige steder nøye lokalisert, slik at bare når systemet overføres til en ny plattform, blir de bare overskrevet. Verktøyet som gjør det lettere å portere resten av operativsystemet er å skrive det på et maskinuavhengig språk, for eksempel C, som ble utviklet for programmering av operativsystemer.

2. 3 Funksjoner i bruksområder

Multitasking -operativsystemer er delt inn i tre typer i henhold til ytelseskriteriene som ble brukt i utviklingen:

batchbehandlingssystemer (f.eks. OC EC),

tidsdelingssystemer (UNIX, VMS),

sanntidssystemer (QNX, RT / 11).

Batchbehandlingssystemer ble designet for å løse hovedsakelig beregningsproblemer som ikke krever raske resultater. Hovedmålet og kriteriet for effektiviteten til batchbehandlingssystemer er maksimal gjennomstrømning, det vil si å løse maksimalt antall oppgaver per tidsenhet. For å oppnå dette målet brukes følgende operasjonsopplegg i batchbehandlingssystemer: ved begynnelsen av arbeidet dannes en mengde oppgaver, hver oppgave inneholder et krav til systemressurser; fra denne pakken med oppgaver dannes en blanding av flere programmer, det vil si et mangfold av samtidig utførte oppgaver. For samtidig utførelse velges oppgaver som presenterer forskjellige ressurskrav, slik at en balansert belastning av alle enhetene på datamaskinen er sikret; for eksempel i en blanding med flere programmer er det ønskelig å ha både beregnings- og I / O -intensive oppgaver samtidig. Valget av en ny oppgave fra en mengde oppgaver avhenger derfor av den interne situasjonen i systemet, det vil si at en "lønnsom" oppgave velges. Følgelig er det i slike operativsystemer umulig å garantere utførelsen av en bestemt oppgave innen en viss tidsperiode. I batchbehandlingssystemer bytter prosessoren fra en oppgave til en annen bare hvis den aktive oppgaven selv gir fra seg prosessoren, for eksempel på grunn av behovet for å utføre en I / O -operasjon. Derfor kan en oppgave oppta prosessoren i lang tid, noe som gjør det umulig å utføre interaktive oppgaver. Dermed reduseres brukerens interaksjon med datamaskinen som batchbehandlingssystemet er installert på til at han bringer oppgaven, gir den til sender-operatøren og på slutten av dagen etter å ha fullført hele oppgaven , får han resultatet. Denne bestillingen reduserer åpenbart brukerens effektivitet.

Tidsdelingssystemer er designet for å korrigere den største ulempen ved batchbehandlingssystemer - isolering av brukerprogrammereren fra prosessen med å utføre oppgavene. Hver bruker av tidsdelingssystemet får en terminal hvorfra han kan føre en dialog med programmet sitt. Siden i tidsdelingssystemer tildeles hver oppgave bare en mengde prosessortid, tar ingen oppgave prosessoren for lang tid, og responstiden er akseptabel. Hvis kvanten er valgt liten nok, har alle brukere som jobber på samme maskin inntrykk av at hver av dem bruker maskinen alene. Det er klart at tidsdelingssystemer har mindre båndbredde enn batchbehandlingssystemer, siden hver oppgave som brukeren lanserer godtas for utførelse, og ikke den som er "gunstig" for systemet, og i tillegg er det en overhead på datakraft for hyppigere bytte av prosessor fra oppgave til oppgave. Kriteriet for effektivitet av tidsdelingssystemer er ikke maksimal gjennomstrømning, men brukerens bekvemmelighet og effektivitet.

Sanntidssystemer brukes til å kontrollere forskjellige tekniske objekter, for eksempel et maskinverktøy, en satellitt, en vitenskapelig eksperimentell installasjon eller teknologiske prosesser, for eksempel en galvanisk linje, en masovnprosess, etc. I alle disse tilfellene er det en maksimal tillatt tid hvor et eller annet program som styrer objektet må utføres, ellers kan det oppstå en ulykke: satellitten forlater synlighetssonen, de eksperimentelle dataene mottatt fra sensorene vil gå tapt, tykkelsen på det galvaniske belegget vil ikke være riktig. Dermed er kriteriet for effektivitet for sanntidssystemer deres evne til å opprettholde forhåndsbestemte tidsintervaller mellom lanseringen av programmet og mottak av resultatet (kontrollhandling). Denne tiden kalles systemets reaksjonstid, og den tilhørende egenskapen til systemet kalles reaktivitet. For disse systemene er en flerprogrammeblanding et fast sett med forhåndsutviklede programmer, og valget av et program for utførelse er basert på objektets nåværende tilstand eller i henhold til planen for planlagte arbeider.

Noen operativsystemer kan kombinere egenskapene til systemer av forskjellige typer, for eksempel kan noen oppgaver utføres i batchmodus, og noen i sanntids- eller tidsdelingsmodus. I slike tilfeller blir batchbehandling ofte referert til som bakgrunnsbehandling.

2. 4 Funksjoner i konstruksjonsmetoder

Når du beskriver et operativsystem, blir funksjonene i dets strukturelle organisasjon og de grunnleggende konseptene som ligger til grunn ofte indikert.

Disse grunnleggende konseptene inkluderer:

Måten å bygge systemkjernen på er en monolitisk kjerne eller en mikrokernel -tilnærming. De fleste operativsystemer bruker en monolitisk kjerne, som er koblet til ett program som kjører i privilegert modus og bruker raske overganger fra en prosedyre til en annen, og krever ikke bytte fra privilegert modus til brukermodus og omvendt. Et alternativ er å bygge et operativsystem basert på en mikrokjerne, som også opererer i en privilegert modus og utfører bare et minimum av maskinvarestyringsfunksjoner, mens funksjonene til et høyere operativsystem utføres av spesialiserte operativsystemkomponenter - servere som kjører i brukermodus. Med denne designen fungerer operativsystemet saktere, siden overganger mellom privilegert modus og brukermodus ofte utføres, men systemet viser seg å være mer fleksibelt - funksjonene kan økes, endres eller begrenses ved å legge til, endre eller ekskludere brukermodus servere. I tillegg er servere godt beskyttet mot hverandre, akkurat som alle brukerprosesser.

Å bygge et operativsystem basert på en objektorientert tilnærming gjør det mulig å bruke alle fordelene, som har vist seg godt på applikasjonsnivå, i operativsystemet, nemlig: akkumulering av vellykkede løsninger i form av standardobjekter, evnen å lage nye objekter basert på eksisterende som bruker arvsmekanismen, god databeskyttelse på grunn av deres innkapsling i objektets interne strukturer, noe som gjør dataene utilgjengelige for uautorisert bruk fra utsiden, strukturert system, bestående av et sett med brønn- definerte objekter.

Tilstedeværelsen av flere applikasjonsmiljøer gjør det mulig å kjøre applikasjoner utviklet for flere operativsystemer samtidig i ett operativsystem. Mange moderne operativsystemer støtter samtidig applikasjonsmiljøene MS-DOS, Windows, UNIX (POSIX), OS / 2, eller i det minste en delmengde av dette populære settet. Konseptet med flere applikasjonsmiljøer er lettest implementert i et operativsystem basert på en mikrokernel, som forskjellige servere jobber på, hvorav noen implementerer applikasjonsmiljøet til et bestemt operativsystem.

Den distribuerte organisasjonen av operativsystemet forenkler arbeidet til brukere og programmerere i nettverksmiljøer. Det distribuerte operativsystemet implementerer mekanismer som gjør at brukeren kan forestille seg og oppfatte nettverket som en tradisjonell enprosessor -datamaskin. De karakteristiske trekkene ved den distribuerte organisasjonen av operativsystemet er: tilstedeværelsen av en enkelt hjelpetjeneste for delte ressurser, en engangstjeneste, bruk av en fjernprosedyreanropsmekanisme (RPC) for åpen distribusjon av programprosedyrer blant maskiner, multi- gjenget behandling, som tillater parallellisering av beregninger innenfor en enkelt oppgave og utfører denne oppgaven umiddelbart på flere datamaskiner i nettverket, samt tilstedeværelsen av andre distribuerte tjenester.

3. Moderne konsepter og teknologier for design av operativsystemer, krav til operativsystemetXXIårhundre

Operativsystemet er hjertet i nettverksprogramvare, det skaper miljøet for applikasjoner å kjøre og bestemmer i stor grad hvilke egenskaper disse programmene vil ha nyttig for brukeren. I denne forbindelse vil vi vurdere kravene som et moderne operativsystem må tilfredsstille.

Det er åpenbart at hovedkravet for et operativsystem er evnen til å utføre grunnleggende funksjoner: effektiv ressursstyring og et brukervennlig grensesnitt for bruker- og applikasjonsprogrammene. Et moderne operativsystem må som regel implementere multiprogrammering, virtuelt minne, bytte, støtte et flervinduers grensesnitt og også utføre mange andre absolutt nødvendige funksjoner. I tillegg til disse funksjonelle kravene, er det like viktige markedskrav for operativsystemer. Disse kravene inkluderer:

· Utvidbarhet. Koden skal skrives på en slik måte at det er lett å gjøre tillegg og endringer, om nødvendig, og ikke krenke systemets integritet.

· Bærbarhet. Koden bør lett kunne bæres fra en prosessortype til en annen prosessortype, og fra en maskinvareplattform (som inkluderer prosessortypen og måten all maskinvare er organisert på) av en type til en annen type maskinvareplattform.

· Pålitelighet og spenst. Systemet må beskyttes mot både interne og eksterne feil, feil og feil. Handlingene skal alltid være forutsigbare, og applikasjoner skal ikke kunne skade operativsystemet.

· Kompatibilitet. Operativsystemet må ha midler til å kjøre programmer skrevet for andre operativsystemer. I tillegg må brukergrensesnittet være kompatibelt med eksisterende systemer og standarder.

· Sikkerhet. Operativsystemet må ha midler til å beskytte ressursene til noen brukere fra andre.

· Opptreden. Systemet skal være så raskt og responsivt som maskinvareplattformen tillater det.

La oss se nærmere på noen av disse kravene.

Utvidbarhet Mens maskinvaren til en datamaskin blir foreldet om noen år, kan levetiden til et operativsystem måles på flere tiår. Et eksempel er UNIX OS. Derfor endres operativsystemer alltid evolusjonært over tid, og disse endringene er mer betydningsfulle enn maskinvareendringer. Endringer i operativsystemet representerer vanligvis anskaffelse av nye eiendommer. For eksempel støtte for nye enheter som CD-ROM, muligheten til å kommunisere med nye typer nettverk, støtte for lovende teknologier som et grafisk brukergrensesnitt eller objektorientert programvaremiljø, bruk av mer enn én prosessor. Å opprettholde kodenes integritet, uansett hvilke endringer som gjøres i operativsystemet, er hovedmålet med utviklingen.

Utvidbarhet kan oppnås på grunn av den modulære strukturen til operativsystemet, der programmer er bygget fra et sett med separate moduler som bare samhandler gjennom et funksjonelt grensesnitt. Nye komponenter kan legges til operativsystemet på en modulær måte, de gjør jobben sin ved hjelp av grensesnittene som støttes av de eksisterende komponentene.

Å bruke objekter til å representere systemressurser forbedrer også systemets utvidbarhet. Objekter er abstrakte datatyper som bare kan manipuleres av et spesielt sett med objektfunksjoner. Objekter lar deg konsekvent administrere systemressurser. Å legge til nye objekter ødelegger ikke eksisterende objekter og krever ikke endringer i eksisterende kode.

Klient-server-tilnærmingen til å strukturere operativsystemet ved hjelp av mikrokjerneteknologi gir gode muligheter for utvidbarhet. I samsvar med denne tilnærmingen er operativsystemet bygget som en kombinasjon av et privilegert kontrollprogram og et sett med uprivilegerte servertjenester. Hoveddelen av operativsystemet kan forbli uendret mens nye servere kan legges til eller gamle forbedres.

Remote Procedure Call (RPC) -fasiliteter gir også muligheten til å utvide funksjonaliteten til operativsystemet. Nye programvarerutiner kan legges til hvilken som helst maskin på nettverket og er umiddelbart tilgjengelige for applikasjonsprogrammer på andre maskiner på nettverket.

Noen operativsystemer støtter nedlastbare drivere for å forbedre utvidbarheten, som kan legges til systemet mens det kjører. Nye filsystemer, enheter og nettverk kan støttes ved å skrive en enhetsdriver, filsystemdriver eller transportdriver og laste den inn i systemet.

Bærbarhet Kravet til kodeportabilitet er nært knyttet til utvidbarhet. Med utvidbarhet kan du forbedre operativsystemet, mens portabilitet lar deg flytte hele systemet til en maskin basert på en annen prosessor eller maskinvareplattform, mens du gjør så få kodeendringer som mulig. Selv om operativsystemer ofte beskrives som enten bærbare eller ikke-bærbare, er portabilitet ikke en binær tilstand. Spørsmålet er ikke om systemet kan migreres, men hvor enkelt det kan gjøres. Å skrive et bærbart operativsystem er som å skrive hvilken som helst bærbar kode - det er noen regler å følge.

Først må det meste av koden skrives på et språk som er tilgjengelig på alle maskinene der du vil portere systemet. Dette betyr vanligvis at koden må skrives på et språk på høyt nivå, fortrinnsvis et standardisert språk, for eksempel C. Et program skrevet sammen er ikke bærbart, med mindre du har tenkt å overføre det til en maskin som har kommandokompatibilitet med ditt.

For det andre bør man vurdere i hvilket fysisk miljø programmet skal overføres. Ulike maskinvare krever forskjellige løsninger når du bygger et operativsystem. For eksempel kan et operativsystem bygget på 32-biters adresser ikke portes til en maskin med 16-biters adresser (med mindre det er vanskelig).

For det tredje er det viktig å minimere eller om mulig ekskludere de delene av koden som direkte samhandler med maskinvaren. Maskinvareavhengighet kan ha mange former. Noen åpenbare former for avhengighet inkluderer direkte manipulering av registre og annen maskinvare.

For det fjerde, hvis den maskinvareavhengige koden ikke kan utelukkes helt, bør den isoleres i flere godt lokaliserte moduler. Maskinvareavhengig kode trenger ikke å distribueres i hele systemet. For eksempel kan du skjule en maskinvareavhengig struktur i en programvaredefinert data av en abstrakt type. Andre moduler i systemet vil fungere med disse dataene, og ikke med maskinvare, ved hjelp av et sett med noen funksjoner. Når operativsystemet er migrert, er det bare disse dataene og funksjonene som manipulerer det som endres.

For enkel overføring av operativsystemet må følgende krav oppfylles under utviklingen:

· Bærbart språk på høyt nivå. De fleste bærbare operativsystemene er skrevet i C (ANSI X3.159-1989 standard). Utviklere velger C fordi den er standardisert og fordi C -kompilatorer er allment tilgjengelige. Assembler brukes bare for de delene av systemet som trenger å samhandle direkte med maskinvaren (for eksempel en avbruddshåndterer) eller for deler som krever maksimal hastighet (for eksempel heltallsregnet aritmetikk). Imidlertid må ikke-bærbar kode isoleres nøye i komponentene der den brukes.

· Prosessorisolasjon. Noen deler på operativsystemet på lavt nivå må ha tilgang til prosessoravhengige datastrukturer og registre. Koden som gjør dette må dessuten inneholde små moduler som kan erstattes med lignende moduler for andre prosessorer.

· Isolering av plattformen. Plattformavhengighet er forskjellen mellom arbeidsstasjoner fra forskjellige produsenter, bygget på samme prosessor (for eksempel MIPS R4000). Det bør introduseres et programvarelag som abstraherer maskinvare (hurtigbuffere, I / O-avbryterkontrollere, etc.) sammen med et lag med programmer på lavt nivå, slik at koden på høyt nivå ikke trenger å endres når den overføres fra en plattform til en annen.

Kompatibilitet Et aspekt av kompatibilitet er et operativsystems evne til å kjøre programmer skrevet for et annet operativsystem eller tidligere versjoner av et gitt operativsystem, samt for en annen maskinvareplattform.

Det er nødvendig å skille problemene mellom binær kompatibilitet og kompatibilitet på applikasjonskildenivå. Binær kompatibilitet oppnås når du kan ta et kjørbart program og kjøre det på et annet operativsystem. Dette krever: kompatibilitet på nivå med prosessorinstruksjoner, kompatibilitet på nivå med systemanrop og til og med på nivå med bibliotekanrop, hvis de er dynamisk koblet.

Kildekompatibilitet krever en passende kompilator i programvaren, samt bibliotek- og systemanropskompatibilitet. I dette tilfellet er det nødvendig å kompilere de eksisterende kildene til en ny kjørbar modul.

Kildekompatibilitet er først og fremst viktig for applikasjonsutviklere som alltid har kildekoden til rådighet. Men for sluttbrukere er bare binær kompatibilitet av praktisk betydning, siden de bare i dette tilfellet kan bruke det samme kommersielle produktet, levert i form av binær kjørbar kode, i forskjellige driftsmiljøer og på forskjellige maskiner.

Om et nytt operativsystem er binært eller kildekompatibelt med eksisterende systemer, avhenger av mange faktorer. Den viktigste av disse er arkitekturen til prosessoren som det nye operativsystemet kjører på. Hvis prosessoren som operativsystemet er portet til bruker samme instruksjonssett (muligens med noen tillegg) og det samme adresseområdet, kan binær kompatibilitet oppnås ganske enkelt.

Det er mye vanskeligere å oppnå binær kompatibilitet mellom prosessorer basert på forskjellige arkitekturer. For at en datamaskin skal kjøre programmene til en annen (for eksempel et DOS -program på en Mac), må denne datamaskinen operere med maskininstruksjoner som den ikke først forstår. For eksempel må en 680x0 -prosessor på en Mac utføre binære filer designet for en 80x86 -prosessor på en PC. 80x86 -prosessoren har sin egen instruksjonsdekoder, registre og intern arkitektur. 680x0 -prosessoren forstår ikke 80x86 -binæren, så den må velge hver instruksjon, dekode den for å finne ut hva den er til for deretter å utføre den tilsvarende underrutinen skrevet for 680x0. Siden i tillegg 680x0 ikke har nøyaktig de samme registre, flagg og interne aritmetiske logiske enheter som i 80x86, må den simulere alle disse elementene ved hjelp av sine registre eller minne. Og den må nøye gjengi resultatene av hver kommando, som krever spesialskrevne rutiner for 680x0 for å sikre at tilstanden til de emulerte registre og flagg etter at hver kommando er utført er nøyaktig den samme som på en ekte 80x86.

Dette er en enkel, men veldig treg operasjon, ettersom mikrokoden inne i 80x86 -prosessoren kjører med en betydelig raskere hastighet enn de eksterne 680x0 -instruksjonene som etterligner den. Under utførelsen av en 80x86 -kommando på 680x0 kan en ekte 80x86 utføre dusinvis av kommandoer. Derfor, hvis prosessoren som utfører emuleringen ikke er rask nok til å kompensere for alle emuleringstapene, vil programmene som kjøres under emuleringen være veldig treg.

Veien ut i slike tilfeller er å bruke de såkalte applikasjonsmiljøene. Med tanke på at hoveddelen av programmet som regel består av samtaler av biblioteksfunksjoner, simulerer applikasjonsmiljøet hele bibliotekfunksjonene ved hjelp av et tidligere skrevet bibliotek med funksjoner av lignende formål, og emulerer resten av kommandoene hver for seg.

POSIX -samsvar er også et middel for å sikre kompatibilitet mellom programmering og brukergrensesnitt. I andre halvdel av 1980 -årene begynte amerikanske myndigheter å utvikle POSIX som en standard for maskinvare levert for offentlige kontrakter på datafeltet. POSIX er et "UNIX-basert bærbart OS-grensesnitt". POSIX er en samling internasjonale UNIX-stil OS-grensesnittstandarder. Bruken av POSIX -standarden (IEEE -standarden 1003.1 - 1988) tillater opprettelse av programmer i UNIX -stil som enkelt kan overføres fra ett system til et annet.

Sikkerhet I tillegg til POSIX -standarden har den amerikanske regjeringen også definert datasikkerhetskrav for offentlige applikasjoner. Mange av disse kravene er ønskelige egenskaper for ethvert flerbrukersystem. Sikkerhetsregler definerer egenskaper som å beskytte en brukers ressurser fra andre og håndheve ressurskvoter for å forhindre at en bruker griper alle systemressurser (for eksempel minne).

Å sikre beskyttelse av informasjon mot uautorisert tilgang er en obligatorisk funksjon av nettverksoperativsystemer. De fleste populære systemene garanterer et datasikkerhetsnivå på C2 i det amerikanske standardsystemet.

Grunnlaget for sikkerhetsstandarder ble fastsatt av Criteria for Evaluating Trusted Computer Systems. Publisert i USA i 1983 av National Computer Security Center (NCSC), blir dette dokumentet ofte referert til som Orange Book.

I samsvar med kravene i Orange Book anses et system som trygt hvis det "gjennom spesielle sikkerhetsmekanismer styrer tilgangen til informasjon på en slik måte at bare autoriserte personer eller prosesser som kjører på deres vegne kan få tilgang til å lese, skrive, opprette eller slette informasjon. ".

Sikkerhetsnivåhierarkiet vist i Orange Book markerer det laveste sikkerhetsnivået som D og det høyeste som A.

· Klasse D inkluderer systemer, hvis vurdering har vist at de ikke overholder kravene til alle andre klasser.

· De viktigste egenskapene som er karakteristiske for C-systemer er: tilstedeværelsen av et delsystem for registrering av hendelser knyttet til sikkerhet, og selektiv tilgangskontroll. Nivå C er delt inn i 2 undernivåer: nivå C1, som beskytter data mot brukerfeil, men ikke mot inntrengeres handlinger, og et strengere nivå C2. På C2 -nivå må det være et middel til hemmelig pålogging, som sikrer identifikasjon av brukere ved å skrive inn et unikt navn og passord før de får tilgang til systemet. Den selektive tilgangskontrollen som kreves på dette nivået, lar ressurseieren bestemme hvem som har tilgang til ressursen og hva han kan gjøre med den. Eieren gjør dette ved å gi tilgangsrettigheter til en bruker eller gruppe av brukere. Revisjon - Gir muligheten til å oppdage og registrere viktige sikkerhetshendelser eller ethvert forsøk på å opprette, få tilgang til eller slette systemressurser. Minnebeskyttelse - er at minnet initialiseres før det brukes på nytt. På dette nivået er systemet ikke beskyttet mot brukerfeil, men oppførselen kan overvåkes av loggoppføringer igjen av overvåkings- og revisjonsverktøy.

BEGREP AV Driftssystemet

Operativsystem (OS) er et sett med system- og kontrollprogrammer designet for den mest effektive bruken av alle ressurser i et datasystem (CS) (Computing system er et sammenkoblet sett med datamaskinvare og programvare designet for informasjonsbehandling) og bekvemmeligheten til jobber med det.

Hensikten med operativsystemet er organisering av databehandlingsprosessen i datasystemet, rasjonell fordeling av databehandlingsressurser mellom de enkelte oppgavene som skal løses; gi brukerne mange serviceverktøy som letter prosessen med programmering og feilsøkingsoppgaver. Operativsystemet spiller rollen som et slags grensesnitt (grensesnitt er et sett med maskinvare og programvare som er nødvendig for å koble eksterne enheter til en PC) mellom brukeren og flyet, dvs. Operativsystemet gir brukeren et virtuelt fly. Dette betyr at operativsystemet i stor grad danner brukerens forståelse av flyets evner, bekvemmeligheten ved å jobbe med det og båndbredden. Ulike operativsystemer på samme maskinvare kan gi brukeren forskjellige muligheter for å organisere en databehandling eller automatisert databehandling.

I programvaren til flyet inntar operativsystemet hovedposisjonen, siden det utfører planlegging og kontroll av hele databehandlingsprosessen. Enhver av programvarekomponentene må kjøres under operativsystemet.

I følge applikasjonen skilles det ut tre operativsystemer: batchbehandling, tidsdeling og sanntid. I batchbehandlingsmodus utfører operativsystemet sekvensielt oppgavene som er samlet i en batch. I denne modusen har brukeren ikke kontakt med datamaskinen, og mottar bare resultatene av beregninger. I tidsdelingsmodus utfører operativsystemet flere oppgaver samtidig, slik at hver bruker får tilgang til datamaskinen. I sanntid gir operativsystemet kontroll over objekter i samsvar med de mottatte inngangssignalene. Svartiden til en datamaskin med et sanntidsoperativsystem for en forstyrrende effekt bør være minimal.



Stadier av utvikling av operativsystemer

Første periode (1945 -1955)

Det er kjent at datamaskinen ble oppfunnet av den engelske matematikeren Charles Babidge på slutten av det attende århundre. Hans "analytiske motor" kunne aldri virkelig fungere, fordi datidens teknologier ikke oppfylte kravene til produksjon av deler av presisjonsmekanikk, som var nødvendige for databehandling. Det er også kjent at denne datamaskinen ikke hadde et operativsystem.

Noen fremskritt i etableringen av digitale datamaskiner skjedde etter andre verdenskrig. På midten av 40-tallet ble de første rørdataenhetene opprettet. På den tiden deltok en og samme gruppe mennesker i designet, og i operasjonen, og i programmeringen av datamaskinen. Det var mer et vitenskapelig forskningsarbeid innen databehandling, i stedet for bruk av datamaskiner som et verktøy for å løse praktiske problemer fra andre anvendte områder. Programmeringen ble utført utelukkende på maskinspråk. Det var ikke snakk om operativsystemer, alle oppgavene med å organisere databehandlingsprosessen ble løst manuelt av hver programmerer fra kontrollpanelet. Det var ingen annen systemprogramvare enn matte- og verktøybiblioteker.

Andre periode (1955 - 1965)

Fra midten av 50 -tallet begynte en ny periode i utviklingen av datateknologi, knyttet til fremveksten av en ny teknisk base - halvlederelementer. Andregenerasjons datamaskiner ble mer pålitelige, nå kunne de kontinuerlig arbeide lenge nok til å bli betrodd å utføre oppgaver som virkelig er viktige i praksis. Det var i denne perioden personellet ble delt inn i programmerere og operatører, operatører og utviklere av datamaskiner.

I løpet av disse årene dukket de første algoritmiske språkene opp, og derfor de første systemprogrammene - kompilatorer. Kostnaden for prosessortid har økt, noe som krever mindre overhead mellom programlanseringer. De første batchbehandlingssystemene dukket opp som ganske enkelt automatiserte lanseringen av det ene programmet etter det andre og derved økte prosessorbelastningsfaktoren. Batchbehandlingssystemer var prototypen til moderne operativsystemer, de var de første systemprogrammene designet for å kontrollere databehandlingen. Under implementeringen av batchbehandlingssystemer ble det utviklet et formalisert oppgavekontrollspråk, ved hjelp av hvilken programmereren fortalte systemet og operatøren hvilket arbeid han vil gjøre på datamaskinen. En samling av flere oppgaver, vanligvis i form av en kortstokk med hullkort, kalles en oppgavepakke.

Tredje periode (1965 - 1980)

Den neste viktige perioden i utviklingen av datamaskiner går tilbake til 1965-1980. På dette tidspunktet, i den tekniske basen var det en overgang fra individuelle halvlederelementer som transistorer til integrerte mikrokretser, noe som ga den nye, tredje generasjonen datamaskiner mye større muligheter.

Denne perioden ble også preget av etableringen av familier til programvarekompatible maskiner. Den første familien av programvarekompatible maskiner bygget på integrerte kretser var IBM / 360-serien av maskiner. Denne familien ble bygget på begynnelsen av 1960 -tallet, og utkonkurrerte den andre generasjons maskinene betydelig når det gjelder pris / ytelse. Snart ble ideen om programvarekompatible maskiner allment akseptert.

Programvarekompatibilitet krever også operativsystemkompatibilitet. Slike operativsystemer må fungere på både store og små datasystemer, med et stort og lite utvalg av eksterne enheter, i det kommersielle feltet og innen vitenskapelig forskning. Operativsystemer bygget med den hensikt å oppfylle alle disse motstridende kravene har vist seg å være ekstremt komplekse "monstre". De besto av mange millioner monteringslinjer, skrevet av tusenvis av programmerere, og inneholdt tusenvis av feil, noe som forårsaket en endeløs strøm av reparasjoner. I hver ny versjon av operativsystemet ble noen feil rettet og andre ble introdusert.

Til tross for sin enorme størrelse og mange problemer, tilfredsstilte imidlertid OS / 360 og andre lignende operativsystemer til tredje generasjons maskiner de fleste forbrukerbehov. Den viktigste prestasjonen for denne generasjonen av operativsystemer var implementering av multiprogrammering. Multiprogrammering er en metode for å organisere en beregningsprosess der flere programmer vekselvis utføres på en prosessor. Mens ett program utfører en I / O-operasjon, går ikke prosessoren på tomgang, slik den gjorde i sekvensiell programkjøring (enkeltprogrammodus), men kjører et annet program (flerprogrammodus). I dette tilfellet lastes hvert program inn i sitt eget stykke RAM, kalt en seksjon.

En annen innovasjon er spooling. Spoling på den tiden ble definert som en måte å organisere beregningsprosessen, i samsvar med hvilke oppgaver som ble lest fra stansede kort til disk i den hastigheten de ble vist i datasenteret, og deretter, når den neste oppgaven var fullført, en ny oppgave fra disk ble lastet inn i den frigjorte partisjonen ...

Sammen med multiprogramimplementeringen av batchbehandlingssystemer har det dukket opp en ny type operativsystem - tidsdelingssystemer. En variant av multiprogrammering som brukes i tidsdelingssystemer er rettet mot å skape en illusjon for hver enkelt bruker av den eneste bruken av en datamaskin.

Grunnleggende nettverksverktøy.

Linux er et nettverksoperativsystem. Dette betyr at brukeren kan overføre filer og arbeide ikke bare på sin lokale maskin, men ved hjelp av ekstern tilgang, motta og sende filer, og utføre noen handlinger på den eksterne maskinen. Et omfattende sett med nettverksverktøy gjør prosessen med å jobbe på en ekstern datamaskin like praktisk som på en lokal datamaskin

Av sikkerhetshensyn er det verdt å bruke ssh (sikkert skall) -verktøyet når du arbeider på en ekstern datamaskin. Selvfølgelig må brukeren være registrert i systemet der han skal jobbe. I et terminalemulatorvindu må brukeren angi en kommando.

ssh [e -postbeskyttet]

hvor pålogging er brukernavn på brukeren på vertsmaskinen. Et annet alternativ er som følger:

ssh host -l user_login

Funksjoner i Excel er forhåndsdefinerte formler som utfører beregninger i en spesifisert rekkefølge basert på angitte verdier. I dette tilfellet kan beregningene være både enkle og komplekse.

For eksempel kan bestemmelsen av gjennomsnittsverdien til fem celler beskrives med formelen: = (A1 + A2 + A3 + A4 + A5) / 5, eller du kan bruke den spesielle gjennomsnittsfunksjonen, som vil forkorte uttrykket til følgende skjema: GJENNOMSNITT (A1: A5). Som du kan se, i stedet for å skrive inn alle celleadresser i formelen, kan du bruke en bestemt funksjon ved å spesifisere området som et argument.

For å arbeide med funksjoner i Excel, er det en egen Formel -fane på båndet, som alle hovedverktøyene for å jobbe med dem er plassert på

Du kan velge den nødvendige kategorien på båndet i gruppen Funksjonsbibliotek i kategorien Formler. Etter å ha klikket på pilen ved siden av hver av kategoriene, åpnes en liste over funksjoner, og når du holder markøren over noen av dem, vises et vindu med beskrivelsen.

Funksjoner, som formler, starter med et likhetstegn. Etter det kommer navnet på funksjonen, i form av en forkortelse av store bokstaver, som angir verdien. Så er argumentene til funksjonen spesifisert i parentes - dataene som brukes for å få resultatet.

Argumentet kan være et spesifikt tall, en uavhengig referanse til en celle, en hel serie referanser til verdier eller celler, samt et utvalg av celler. Samtidig, for noen funksjoner, er argumentene tekst eller tall, for andre - tider og datoer.

Mange funksjoner kan ha flere argumenter samtidig. I dette tilfellet er hver av dem atskilt fra den neste med et semikolon. For eksempel teller funksjonen = PRODUKT (7; A1; 6; B2) produktet av fire forskjellige tall angitt i parentes og inneholder følgelig fire argumenter. I vårt tilfelle er noen argumenter spesifisert eksplisitt, mens andre er verdiene til visse celler.

Du kan også bruke en annen funksjon som et argument, som i dette tilfellet kalles nestet. For eksempel summerer funksjonen = SUMME (A1: A5; GJENNOMSNITT (B5: B10)) verdiene til celler i området fra A1 til A5, samt gjennomsnittsverdien av tallene i cellene B5, B6, B7, B8, B9 og B10.

Noen enkle funksjoner har kanskje ikke noen argumenter i det hele tatt. Så ved å bruke = TDATA () -funksjonen kan du få gjeldende klokkeslett og dato uten å bruke noen argumenter.

Ikke alle funksjoner i Ecxel har en enkel definisjon, som SUM -funksjonen som summerer utvalgte verdier. Noen av dem har kompleks syntaktisk stavemåte, og krever også mange argumenter, som dessuten må være av de riktige typene. Jo mer kompleks funksjonen er, desto vanskeligere er det å komponere den riktig. Og utviklerne har tatt hensyn til dette ved å inkludere en assistent for å komponere funksjoner for brukerne i regnearkene - funksjonsveiviseren.

For å begynne å skrive inn en funksjon ved hjelp av funksjonsveiviseren, klikk på ikonet Sett inn funksjon (fx) til venstre for formellinjen.

Du finner også knappen Sett inn funksjon på båndet øverst i Funksjonsbibliotek -gruppen i kategorien Formler. En annen måte å påberope funksjonsveiviseren på er å bruke hurtigtasten Shift + F3.

Etter at du har åpnet hjelpervinduet, er det første du må gjøre, å velge funksjonskategorien. For å gjøre dette kan du bruke søkeboksen eller rullegardinlisten.

I midten av vinduet vises en liste over funksjoner for den valgte kategorien, og nedenfor er en kort beskrivelse av funksjonen markert av markøren og hjelp til dens argumenter. Forresten, formålet med en funksjon kan ofte bestemmes av navnet.

Etter å ha gjort det nødvendige valget, klikker du på OK -knappen, hvoretter vinduet Funksjonsargumenter vises.

Diagrammer

Ganske ofte lar tallene i tabellen, selv om de er sortert riktig, ikke få et komplett bilde av resultatene av beregningene. For å få en visuell fremstilling av resultatene, er det i MS Excel mulighet for å bygge diagrammer av forskjellige typer. Det kan være et vanlig histogram eller en graf, samt et radar-, kake- eller eksotisk boblediagram. Videre har programmet muligheten til å lage kombinasjonskart fra forskjellige typer, og lagre dem som en mal for fremtidig bruk.

Et diagram i Excel kan plasseres enten på det samme arket som tabellen, i så fall kalles det "innebygd", eller på et eget ark, som vil bli kalt et "diagramark".

For å lage et diagram basert på tabelldata, velg først cellene, informasjon som skal presenteres i grafisk form. I dette tilfellet avhenger diagrammets utseende av typen valgte data, som skal være i kolonner eller rader. Kolonneoverskrifter skal være over verdiene, og radoverskrifter skal være til venstre for dem. \

Velg deretter typen og typen diagram du vil bruke på båndet, i kategorien Sett inn, i gruppen Diagrammer. For å se en kort beskrivelse av en bestemt type og type diagrammer, må du holde musepekeren på den

I nedre høyre hjørne av diagramblokken er det en liten Opprett diagram -knapp, som du kan åpne vinduet Sett inn diagram med, som viser alle typer, typer og maler for diagrammer.

Vær også oppmerksom på utseendet til en ekstra fane på Diagrams -båndet, som inneholder tre faner til: Design, Layout og Format.

I kategorien Design kan du endre diagramtypen, bytte rad og kolonne, legge til eller fjerne data, velge layout og stil og flytte diagrammet til et annet ark eller en annen fane i boken.

Layout -fanen inneholder kommandoer som lar deg legge til eller fjerne forskjellige diagramelementer som enkelt kan formateres ved hjelp av kategorien Format.

Fanen Kartverktøy vises automatisk når du velger et diagram og forsvinner når du jobber med andre elementer i dokumentet.

Operativsystem konsept. Hovedstadiene i utviklingen av operativsystemer.

Med tanke på utviklingen av OS, må det tas i betraktning at forskjellen i tidspunktet for implementering av noen prinsipper for organisering av individuelle operativsystemer før deres generelle aksept, samt terminologisk usikkerhet, ikke tillater å gi en nøyaktig kronologi for OS -utvikling . Imidlertid er det nå allerede mulig å nøyaktig bestemme de viktigste milepælene i utviklingen av operativsystemer.

Det er også forskjellige tilnærminger til å definere OS -generasjoner. Det er kjent å dele operativsystemet i generasjoner i samsvar med generasjonene av datamaskiner og systemer [ 5 , 9 , 10 , 13 ]. En slik inndeling kan ikke betraktes som helt tilfredsstillende, siden utviklingen av metoder for å organisere OS innenfor rammen av en generasjon datamaskiner, slik erfaringen med opprettelsen deres har vist, skjer i et ganske bredt spekter. Et annet synspunkt knytter ikke OS -generasjonen til de tilsvarende datamaskingenerasjonene. Så, for eksempel, er det kjent definisjonen av OS -generasjoner etter nivåene på inndatamaskinens språk, bruksmåter for sentrale prosessorer, former for systemdrift, etc. [ 5 , 13 ].

Tilsynelatende bør den mest hensiktsmessige betraktes som tildeling av stadier i utviklingen av OS innenfor rammen av individuelle generasjoner av datamaskiner og fly.

Den første fasen i utviklingen av systemprogramvare kan betraktes som bruk av bibliotekprogrammer, standard- og servicerutiner og makroer. Konseptet med subrutinebiblioteker er det tidligste og dateres tilbake til 1949 [ 4 , 17 ]. Med bruk av biblioteker har automatiske verktøy for vedlikehold blitt utviklet - lasterprogrammer og lenkeredigerere. Disse verktøyene ble brukt på datamaskiner i den første generasjonen, da operativsystemer som sådan ennå ikke eksisterte.

Ønsket om å eliminere avviket mellom ytelsen til prosessorer og driftshastigheten til elektromekaniske inngangs- og utgangsenheter, på den ene siden, og bruk av tilstrekkelig raske stasjoner på magnetbånd og trommer (NML og NMB), og deretter på magnetiske disker (NMP), derimot, førte til behovet for å løse problemene med buffering og blokkering av blokkering av data. Spesielle programmer for tilgangsmetoder dukket opp, som ble introdusert i objektene til modulene til lenkeredaktørene (senere begynte prinsippene for polybuffering å bli brukt). For å opprettholde ytelsen og lette driften av maskiner ble diagnoseprogrammer opprettet. Dermed ble den grunnleggende systemprogramvaren opprettet.

Med forbedringen av egenskapene til datamaskiner og økningen i produktiviteten ble det klart at den eksisterende grunnleggende programvaren (programvaren) ikke er nok. Operativsystemer for tidlig batchbehandling - skjermer - dukket opp. Innenfor rammen av batchbehandlingssystemet, under utførelsen av ethvert arbeid i pakken (oversettelse, montering, utførelse av et ferdig program), var ingen del av systemprogramvaren i RAM, siden alt minne ble levert til den nåværende jobben. Deretter dukket det opp overvåkingssystemer, der RAM ble delt inn i tre områder: et fast område av monitorsystemet, et brukerområde og et delt minneområde (for lagring av data som objektmoduler kan utveksle).

En intensiv utvikling av datahåndteringsmetoder begynte, en så viktig OS -funksjon som implementering av I / O uten deltakelse av en sentral prosess - den såkalte spooling (fra den engelske SPOOL - Simultaneous Peripheral Operation on Line) oppsto.

Fremveksten av ny maskinvareutvikling (1959-1963) - avbruddssystemer, tidtakere, kanaler - stimulerte den videre utviklingen av operativsystemet [ 4 , 5 , 9 ]. Det var utøvende systemer, som var et sett med programmer for distribusjon av datamaskinressurser, kommunikasjon med operatøren, kontroll over databehandlingsprosessen og kontroll av input-output. Slike utøvende systemer gjorde det mulig å implementere en form for datasystemoperasjon som var ganske effektiv på den tiden - enkeltprogram -batchbehandling. Disse systemene ga brukeren verktøy som sjekkpunkter, logiske tidtakere, evnen til å bygge programmer med en overleggsstruktur, deteksjon av brudd på programmer av begrensninger vedtatt i systemet, filbehandling, innsamling av regnskapsinformasjon, etc.

Batchbehandling med ett program med en økning i datamaskinproduktivitet kan imidlertid ikke gi et økonomisk akseptabelt maskinbruk. Løsningen var multiprogrammering - en metode for å organisere en beregningsprosess der flere programmer er plassert i datamaskinens minne, alternativt utført av en prosessor, dessuten for å starte eller fortsette å telle i ett program, det var ikke nødvendig å fullføre andre. I et flerprogrammeringsmiljø har ressursallokering og sikkerhet blitt mer akutte og vanskeligere.

Teorien om å bygge operativsystemer i denne perioden ble beriket med en rekke fruktbare ideer. Ulike former for multiprogrammeringsmoduser har dukket opp, inkludert tidsdeling, en modus som sikrer driften av et multi-terminal system. Konseptet med virtuelt minne og deretter virtuelle maskiner ble opprettet og utviklet. Tidsdelingsmodusen tillot brukeren å samhandle interaktivt med programmene sine, slik det var før advent av batchbehandlingssystemer.

Et av de første operativsystemene som brukte disse nyere løsningene var operativsystemet MCP (Master Control Program), opprettet av Burroughs for sine B5000 -datamaskiner i 1963. I dette operativsystemet ble mange konsepter og ideer implementert som senere ble standard for mange operativsystemer:

    multiprogrammering;

    multiprosessbehandling;

    virtuell hukommelse;

    evnen til å feilsøke programmer på kildespråket;

    skrive et operativsystem på et språk på høyt nivå.

Et velkjent tidsdelingssystem for den perioden var CTSS (Compatible Time Sharing System)-et kompatibelt tidsdelingssystem utviklet ved Massachusetts Institute of Technology (1963) for IBM-7094 datamaskinen [ 37 ]. Dette systemet ble brukt til å utvikle neste generasjon MULTICS (Multiplexed Information And Computing Service) tidsdelingssystem ved samme institutt med Bell Labs og General Electric. Det er bemerkelsesverdig at dette operativsystemet hovedsakelig ble skrevet på EPL-språket på høyt nivå (den første versjonen av PL / 1-språket fra IBM).

En av de viktigste hendelsene i operativsystemets historie regnes som utseendet i 1964 av en datamaskinfamilie kalt System / 360 av IBM, og senere - System / 370 [ 11 ]. Det var verdens første implementering av konseptet om en familie av programvare og informasjonskompatible datamaskiner, som senere ble standard for alle selskaper i datamaskinindustrien.

Det skal bemerkes at hovedformen for datamaskinbruk, både i tidsdelingssystemer og i batchbehandlingssystemer, har blitt en multi-terminal-modus. Samtidig var ikke bare operatøren, men også alle brukerne i stand til å formulere sine oppgaver og kontrollere utførelsen fra terminalen. Siden det snart ble mulig å lokalisere terminalkomplekser på betydelige avstander fra en datamaskin (takket være modemtelefontilkoblinger), dukket det opp systemer for fjerntliggende oppgaver og teleprosessering av data. Operativsystemet har lagt til moduler som implementerer kommunikasjonsprotokoller [ 10 , 13 ].

På dette tidspunktet hadde det vært en betydelig endring i fordelingen av funksjoner mellom maskinvaren og programvaren til datamaskinen. Operativsystemet blir en "integrert del av datamaskinen", som en fortsettelse av maskinvaren. Prosessorene har nå privilegerte (Supervisor in OS / 360) og bruker (Task in OS / 360) driftsmåter, et kraftig avbruddssystem, minnebeskyttelse, spesielle registre for rask programbytte, midler til å støtte virtuelt minne, etc.

På begynnelsen av 70 -tallet dukket de første nettverksoperativsystemene opp, noe som gjorde det ikke bare mulig å spre brukere, som i teleprosesseringssystemer, men også å organisere distribuert lagring og behandling av data mellom datamaskiner som er koblet sammen med elektriske tilkoblinger. ARPANET MO USA -prosjektet er kjent. I 1974 kunngjorde IBM sin egen SNA-nettverksarkitektur for sine hovedrammer, og tilbyr terminal-til-terminal, terminal-til-datamaskin og datamaskin-til-datamaskin-interaksjoner. I Europa ble teknologien for å bygge pakkeswitchede nettverk basert på X.25-protokollene aktivt utviklet.

På midten av 70-tallet, sammen med hovedrammer, ble minidatamaskiner (PDP-11, Nova, HP) utbredt. Arkitekturen til minidatamaskinene var mye enklere, og mange av funksjonene i hovedrammens multiprogrammeringssystemer ble avkortet. Minidatamaskinoperasjoner begynte å bli spesialisert (RSX-11M-tidsdeling, RT-11-OC i sanntid) og ikke alltid flerbruker.

En viktig milepæl i mini-datamaskiners historie og i historien til operativsystemer generelt var opprettelsen av UNIX OS. Systemet ble skrevet av Ken Thompson, en av dataspesialistene på BELL Labs som jobbet med MULTICS -prosjektet. Faktisk er UNIX hans en avkortet enbrukerversjon av MULTICS-systemet. Det originale navnet på dette systemet er UNICS (UNiplexed Information and Computing Service). Dette er navnet på systemet på spøk, siden MULTICS (MULTiplexed Information and Computing Service) er en multiplekset informasjon og datatjeneste. Siden midten av 70-tallet begynte den massive bruken av UNIX, skrevet på 90% på C-språket. Den utbredte bruken av C-kompilatorer gjorde UNIX til et unikt bærbart operativsystem, og siden det ble sendt med kildekoder, ble det den første åpne operativsystem. Fleksibilitet, eleganse, kraftig funksjonalitet og åpenhet har gjort det mulig å innta en sterk posisjon i alle klasser av datamaskiner - fra personlige til superdatamaskiner.

Tilgjengeligheten av minidatamaskiner har ansporet etableringen av lokalnett. I de enkleste LAN -ene ble datamaskiner koblet til via serielle porter. Den første nettverksapplikasjonen for UNIX OS, UUCP (Unix to Unix Copy Program) -programmet, dukket opp i 1976.

Videreutvikling av nettverkssystemer med TCP / IP -protokollstakken: i 1983 ble den vedtatt av den amerikanske MO som standard og brukt i ARPANET -nettverket. Samme år delte ARPANET seg i MILNET (for det amerikanske militæret) og den nye ARPANET, som ble kjent som Internett.

Alle åttitallet ble preget av fremveksten av flere og mer avanserte versjoner av UNIX: Sun OS, HP-UX, Irix, AIX, etc. For å løse problemet med kompatibilitet ble POSIX- og XPG-standardene vedtatt, som definerte grensesnittene til disse systemene for applikasjoner.

En annen viktig hendelse i historien til operativsystemer var utseendet på personlige datamaskiner på begynnelsen av 1980 -tallet. De tjente som en kraftig drivkraft for distribusjon av lokale nettverk. Som et resultat har støtte for nettverksfunksjoner blitt en forutsetning for PC -operativsystemet. Både et vennlig grensesnitt og nettverksfunksjoner dukket imidlertid ikke opp umiddelbart på PC -operativsystemet [ 13 ].

Den mest populære versjonen av det tidlige operativsystemet for personlige datamaskiner var Microsofts MS-DOS, et enkeltprogram, enkeltbrukeroperativsystem med et kommandolinjegrensesnitt. Mange funksjoner som gir brukeren bekvemmelighet i dette operativsystemet ble levert av flere programmer - Norton Commander -skallet, PC -verktøy osv. Windows -operativmiljøet, den første versjonen som dukket opp i 1985, hadde størst innflytelse på utviklingen av PC programvare. Nettverksfunksjoner ble også implementert ved hjelp av nettverksskall og dukket opp i MS-DOS versjon 3.1. På samme tid dukket Microsofts nettverksprodukter opp - MS -NET, og senere - LAN Manager, Windows for Workgroup, og deretter Windows NT.

Novell gikk den andre veien: produktet NetWare, et operativsystem med innebygde nettverksfunksjoner. NetWare ble distribuert som et operativsystem for en sentral server i et lokalt nettverk, og gjennom spesialisering av filserverfunksjoner ga den høyhastighets ekstern tilgang til filer og økt datasikkerhet. Imidlertid hadde dette operativsystemet et spesifikt programmeringsgrensesnitt (API), noe som gjorde det vanskelig å utvikle applikasjoner.

I 1987 dukket det første multitasking -operativsystemet for PC -er opp - OS / 2, utviklet av Microsoft i samarbeid med IBM. Det var et godt designet system med virtuelt minne, et grafisk grensesnitt og muligheten til å kjøre DOS-applikasjoner. For det ble LAN Manager (Microsoft) og LAN Server (IBM) nettverksskall opprettet og distribuert. Disse skallene hadde dårligere ytelse enn NetWare -filserveren og brukte flere maskinvareressurser, men hadde viktige fordeler. De gjorde det mulig å kjøre alle programmer som er utviklet for OS / 2, MS-DOS og Windows på serveren, i tillegg var det mulig å bruke datamaskinen de jobbet på som en arbeidsstasjon. Den uheldige skjebnen til OS / 2 tillot ikke LAN-Manager og LAN-Server-systemer å fange en betydelig markedsandel, men driftsprinsippene til disse nettverkssystemene ble stort sett nedfelt i operativsystemet på 90-tallet-MS Windows NT.

På 80 -tallet ble hovedstandardene for kommunikasjonsteknologi for lokale nettverk vedtatt: i 1980 - Ethernet, i 1985 - Token Ring, på slutten av 80 -tallet - FDDI (Fiber Distributed Data Interface), et distribuert dataoverføringsgrensesnitt fiberoptiske koblinger, doble ring med markør. Dette gjorde det mulig å sikre kompatibilitet for nettverksoperativsystemer på lavere nivåer, samt å standardisere operativsystemer med nettverkskortdrivere.

For PCer ble ikke bare operativsystemer spesielt utviklet for dem brukt (MS-Dos, NetWare, OS / 2), men allerede eksisterende operativsystemer, spesielt UNIX, ble tilpasset. Det mest kjente systemet av denne typen var versjonen av Santa Cruz Operation (SCO UNIX) av UNIX.

På 90 -tallet ble nesten alle operativsystemer som inntar en fremtredende plass i markedet, nettverkstilkoblet. Nettverksfunksjoner er innebygd i kjernen til operativsystemet og er en integrert del av det. Operativsystemet bruker multipleksingsmidler for flere protokollstabler, på grunn av hvilke datamaskiner kan støtte samtidig arbeid med heterogene servere og klienter. Spesialiserte operativsystemer dukket opp, for eksempel Cisco System IOS, som kjører i rutere. I andre halvdel av 90 -tallet økte alle OS -leverandører støtten til grensesnittverktøy. I tillegg til TCP / IP -protokollstakken begynte leveringspakken å inkludere verktøy som implementerer populære internettjenester: telnet, ftp, DNS, web, etc.

Spesiell oppmerksomhet har blitt viet det siste tiåret, og blir nå betalt til bedriftsnettverkssystemer for bedrifter. Dette er en av de viktigste utfordringene i overskuelig fremtid. Bedriftsoperativsystemer bør fungere godt og jevnt i store nettverk, som er typiske for store organisasjoner (bedrifter, banker osv.) Med filialer i mange byer og muligens i forskjellige land. Et bedrifts -operativsystem bør fungere sømløst med forskjellige typer operativsystemer og kjøre på forskjellige maskinvareplattformer. Nå er lederne i klassen bedrifts -OS definert - dette er MS Windows 2000/2003, UNIX og Linux -systemer, samt Novell NetWare 6.5.

Vi vil vurdere historien til utviklingen av databehandling, ikke operativsystemer, fordi maskinvare og programvare har utviklet seg sammen og påvirket hverandre. Fremveksten av nye tekniske evner førte til et gjennombrudd i etableringen av praktiske, effektive og sikre programmer, og friske ideer innen programvareområdet stimulerte søket etter nye tekniske løsninger. Det er disse kriteriene - bekvemmelighet, effektivitet og sikkerhet - som har spilt rollen som naturlige seleksjonsfaktorer i utviklingen av datasystemer.

I den første utviklingsperioden (1945-1955) Datamaskiner var vakuumrørsmaskiner uten operativsystemer. De første trinnene i utviklingen av elektroniske datamaskiner ble tatt på slutten av andre verdenskrig. På midten av 40-tallet ble de første rørdataenhetene opprettet og prinsippet om et program lagret i minnet til en maskin dukket opp (John Von Neumann, juni 1945). På den tiden deltok en og samme gruppe mennesker i designet, og i operasjonen, og i programmeringen av datamaskinen. Det var mer et vitenskapelig forskningsarbeid innen databehandling, i stedet for vanlig bruk av datamaskiner som et verktøy for å løse praktiske problemer fra andre anvendte områder. Programmeringen ble utført utelukkende på maskinspråk. Det var ikke snakk om operativsystemer, alle oppgavene med å organisere databehandlingsprosessen ble løst manuelt av hver programmerer fra kontrollpanelet. Bare én bruker kunne være på konsollen. Programmet ble i beste fall lastet inn i minnet på maskinen fra en kortstokk, og vanligvis ved hjelp av et panel med brytere.

Datasystemet utførte bare én operasjon om gangen (input-output eller faktiske beregninger). Feilsøking av programmer ble utført fra kontrollpanelet ved å studere tilstanden til minne og registre på maskinen. På slutten av denne perioden dukker den første systemprogramvaren opp: i 1951–1952. det er prototyper av de første kompilatorene fra symbolspråk (Fortran, etc.), og i 1954 utvikler Nat Rochester en Assembler for IBM-701.

En betydelig del av tiden ble brukt på å forberede lanseringen av programmet, og selve programmene ble utført strengt sekvensielt. Denne modusen kalles sekvensiell databehandling... Generelt er den første perioden preget av ekstremt høye kostnader for datasystemer, deres lille antall og lave effektivitet.

Den andre perioden begynte på midten av 50-tallet. i utviklingen av databehandling, assosiert med fremveksten av en ny teknisk base - halvlederelementer. Bruken av transistorer i stedet for ofte utbrente vakuumrør har økt datamaskinens pålitelighet. Maskinene kan nå kjøre kontinuerlig lenge nok til å få i oppgave å utføre oppgaver av praktisk betydning. Forbruket av elektrisitet fra datamaskiner reduseres, og kjølesystemene forbedres. Størrelsen på datamaskiner har gått ned. Kostnadene for drift og vedlikehold av datautstyr har gått ned. Bruken av datamaskiner fra kommersielle firmaer begynte. Samtidig er det en rask utvikling av algoritmiske språk (LISP, COBOL, ALGOL-60, PL-1, etc.). De første virkelige kompilatorene, koblingsredaktørene, biblioteker med matematiske og nytterutiner vises. Programmeringsprosessen er forenklet. Det er ikke nødvendig å belaste de samme personene for hele utviklingen og bruk av datamaskiner. Det var i denne perioden at personellet ble delt inn i programmerere og operatører, driftsspesialister og datautviklere.

Selve prosessen med å kjøre programmer endres. Nå bringer brukeren programmet med inndataene i form av en kortstokk med hullkort og angir de nødvendige ressursene. Denne kortstokken får navnet oppgaver... Operatøren laster oppgaven inn i maskinminnet og starter den for utførelse. Den resulterende utskriften skrives ut på skriveren, og brukeren mottar den tilbake etter (ganske lang) tid.

Endring av de forespurte ressursene forårsaker en pause i utførelsen av programmer, som et resultat av at prosessoren ofte er inaktiv. For å forbedre effektiviteten ved bruk av datamaskiner, begynner jobber med lignende ressurser å samles sammen og skape oppgavepakke.

De første dukker opp batchbehandlingssystemer, som ganske enkelt automatiserer lanseringen av det ene programmet fra en pakke etter den andre og derved øker prosessorbelastningsfaktoren. Ved implementering av batchbehandlingssystemer ble det utviklet et formalisert oppgavekontrollspråk, ved hjelp av hvilken programmereren fortalte systemet og operatøren hvilket arbeid han vil gjøre på datamaskinen. Batchbehandlingssystemer ble prototypen på moderne operativsystemer, de var de første systemprogrammene designet for å kontrollere databehandlingsprosessen.

Den neste viktige utviklingsperioden datamaskiner dateres tilbake til begynnelsen av 60 -årene - 1980. På dette tidspunktet, i den tekniske basen var det en overgang fra individuelle halvlederelementer som transistorer til integrerte kretser. Datateknologi blir mer pålitelig og billigere. Kompleksiteten og antallet oppgaver som løses av datamaskiner vokser. Prosessorytelsen er forbedret.

Den lave hastigheten på mekaniske input-output-enheter (en rask kortleser kan behandle 1200 kort per minutt, skrivere som skrives ut opptil 600 linjer per minutt) hindrer økningen i effektiviteten ved bruk av prosessortid. I stedet for å lese en mengde oppgaver direkte fra hullkort i minnet, begynner de å bruke den foreløpige innspillingen, først til magnetbånd og deretter til disk. Når data kreves under utførelsen av en jobb, leses de fra disken. På samme måte kopieres utgangen først til systembufferen og skrives til bånd eller disk, og skrives ut først etter at jobben er fullført. I begynnelsen ble faktiske I / O-operasjoner utført offline, det vil si ved bruk av andre, enklere, frittstående datamaskiner. Deretter begynner de å bli utført på samme datamaskin som utfører beregningene, det vil si i online-modus. Denne teknikken kalles spoling(forkortelse for Simultan perifer drift online) eller bytte-bytte data... Innføringen av swap-swap-teknikken i batchsystemer gjorde det mulig å kombinere ekte I / O-operasjoner for en oppgave med utførelsen av en annen oppgave, men krevde utvikling av en avbruddsenhet for å varsle prosessoren om slutten av disse operasjonene.

Magnetbånd var sekvensielle tilgangsenheter, det vil si at informasjon ble lest fra dem i den rekkefølgen det ble skrevet. Utseendet til en magnetisk disk, som rekkefølgen for å lese informasjon ikke er viktig for, det vil si enheter med direkte tilgang, førte til videre utvikling av datasystemer. Ved behandling av en mengde jobber på magnetbånd, ble rekkefølgen der jobbene ble startet bestemt av rekkefølgen de ble lagt inn i. Ved behandling av en mengde oppgaver på en magnetisk disk ble det mulig å velge den neste oppgaven som skal utføres. Batchsystemer begynner å takle planlegge oppgaver: avhengig av tilgjengeligheten av de forespurte ressursene, hastigheten på beregningene, etc. denne eller den oppgaven er valgt til kontoen.

Ytterligere forbedringer i prosessoreffektivitet er oppnådd med multiprogrammering... Ideen om multiprogrammering er som følger: mens ett program utfører en I / O-operasjon, står ikke prosessoren inaktiv, som den gjorde i enkeltprogrammodus, men kjører et annet program. Når I / O -operasjonen avsluttes, går prosessoren tilbake til å utføre det første programmet. Denne ideen ligner oppførselen til læreren og studentene ved en eksamen. Mens en elev (program) tenker på svaret på et spørsmål (I / O -operasjon), lytter læreren (prosessoren) til en annen elevs svar (beregninger). Naturligvis krever denne situasjonen flere studenter i rommet. På samme måte krever multiprogrammering flere programmer i minnet samtidig. I dette tilfellet lastes hvert program inn i sin egen del av RAM, kalt seksjon, og bør ikke påvirke implementeringen av et annet program (studentene sitter ved separate bord og ber ikke hverandre).

Fremkomsten av multiprogrammering krever en reell revolusjon i utformingen av datasystemet. Maskinvarestøtte spiller en spesiell rolle her (mange maskinvareinnovasjoner dukket opp på forrige evolusjonstrinn), hvis viktigste funksjoner er listet opp nedenfor.

- Implementering av forsvarsmekanismer ... Programmer bør ikke ha uavhengig tilgang til ressursallokering, noe som fører til fremveksten av privilegerte og underprivilegerte lag. Privilegerte kommandoer, for eksempel I / O -kommandoer, kan bare utføres av operativsystemet. Det sies at hun opererer i privilegert modus. Overføring av kontroll fra applikasjonsprogrammet til operativsystemet ledsages av en kontrollert endring av modus. Det er også en minnebeskyttelse som isolerer konkurrerende brukerprogrammer fra hverandre og operativsystemet fra brukerprogrammer.

- Avbryter ... Eksterne avbrudd varsler operativsystemet om at det har oppstått en asynkron hendelse, for eksempel at en I / O -operasjon er fullført. Interne avbrudd (nå kalt unntak) oppstår når utførelsen av et program har ført til en situasjon som krever OS -intervensjon, for eksempel en divisjon med null eller et forsøk på å bryte sikkerheten.

- Utvikling av parallellisme i arkitektur ... Direkte minnetilgang og organisering av I / O -kanaler har frigjort den sentrale prosessoren fra rutinemessige operasjoner.

Operativsystemets rolle i organisering av flerprogrammering er ikke mindre viktig. Hun er ansvarlig for følgende operasjoner:

Organisering av grensesnittet mellom applikasjonsprogrammet og operativsystemet ved hjelp av systemanrop;

Køer jobber i minnet og tildeler en prosessor til en av jobbene som kreves for å planlegge prosessorbruk;

Å bytte fra en jobb til en annen krever lagring av innholdet i registre og datastrukturer som kreves for å fullføre jobben, med andre ord konteksten for å sikre korrekt fortsettelse av beregninger;

Siden minne er en begrenset ressurs, er det nødvendig med minnestyringsstrategier, det vil si at det er nødvendig å effektivisere prosessene for å tildele, erstatte og hente informasjon fra minnet;

Organisering av lagring av informasjon på eksterne medier i form av filer og sikring av tilgang til en bestemt fil bare for bestemte kategorier av brukere;

Siden programmer kan trenge en autorisert utveksling av data, er det nødvendig å gi dem kommunikasjonsmidler;

For korrekt datautveksling er det nødvendig å løse konfliktsituasjoner som oppstår når du arbeider med forskjellige ressurser og sørge for koordinering av programmer for handlingene deres, dvs. gi systemet synkroniseringsfasiliteter.

Systemer med flere programmer gjorde det mulig å utnytte systemressursene mer effektivt (f.eks. Prosessor, minne, periferiutstyr), men de forble pakket lenge. Brukeren kunne ikke direkte samhandle med oppgaven og måtte forutse alle mulige situasjoner ved hjelp av kontrollkort. Feilsøkingsprogrammer var fremdeles tidkrevende og krevde undersøkelse av flersidige utskrifter av minne og registre, eller bruk av feilsøkingsutskrift.

Fremkomsten av katodestråledisplayer og nytanken om bruk av tastaturer har fremhevet en løsning på dette problemet. Tidsdelingssystemer ble en logisk forlengelse av flerprogrammeringssystemer, eller tidsdelingssystemer... I dem bytter prosessoren mellom oppgaver, ikke bare under I / O -operasjoner, men også ganske enkelt etter en viss tid. Disse byttene skjer så ofte at brukerne kan samhandle med programmene sine mens de kjører, det vil si interaktivt. Som et resultat blir det mulig for flere brukere å arbeide samtidig på ett datasystem. Hver bruker må ha minst ett program i minnet for dette. For å redusere begrensningene på antall arbeidsbrukere, ble ideen om ufullstendig funn av det kjørbare programmet i RAM introdusert. Hoveddelen av programmet er på disken, og fragmentet som må kjøres for øyeblikket kan lastes inn i RAM, og det unødvendige kan lastes ned til disken. Dette implementeres med virtuell minnemekanisme... Den største fordelen med en slik mekanisme er opprettelsen av en illusjon av ubegrenset datamaskin med tilfeldig tilgangsminne.

I tidsdelingssystemer kunne brukeren effektivt feilsøke programmet i en interaktiv modus og skrive informasjon til disken uten å bruke hullede kort, men direkte fra tastaturet. Fremveksten av onlinefiler førte til behovet for å utvikle avanserte filsystemer.

Parallelt med den interne utviklingen av datasystemer fant også deres eksterne utvikling sted. Fram til begynnelsen av denne perioden var datasystemer som regel inkompatible. Hver hadde sitt eget operativsystem, sitt eget instruksjonssett og så videre. Som et resultat av dette måtte et program som kjørte på en maskintype fullstendig omskrives og feilsøkes på nytt for å kjøre på en annen type maskin. I begynnelsen av den tredje perioden dukket ideen om å opprette familier med programvarekompatible maskiner som opererte under kontroll av det samme operativsystemet ut. Den første familien av programvarekompatible datamaskiner, bygget på integrerte kretser, ble IBM / 360 -serien av maskiner. Denne familien ble utviklet på begynnelsen av 1960 -tallet og utkonkurrerte andre generasjons maskiner betydelig når det gjelder pris / ytelse. Det ble fulgt av en serie PDP-datamaskiner som var inkompatible med IBM-linjen, og PDP-11 ble den beste modellen i den.

Styrken til "den ene familien" var samtidig dens svakhet. De brede mulighetene for dette konseptet (tilstedeværelsen av alle modeller: fra minidatamaskiner til gigantiske maskiner; en overflod av forskjellige eksterne enheter; forskjellige miljøer; forskjellige brukere) ga opphav til et komplekst og tungvint operativsystem. Millioner av linjer med Assembler, skrevet av tusenvis av programmerere, inneholdt mange feil, noe som forårsaket en kontinuerlig strøm av publikasjoner om dem og forsøk på å fikse dem. Det var over 1000 kjente feil i OS / 360 alene. Men, ideen om å standardisere operativsystemer ble mye introdusert i brukernes sinn og ble deretter aktivt utviklet.

Den neste perioden i evolusjonen datasystemer knyttet til fremveksten av store integrerte kretser (LSI). Disse årene (fra 1980 til i dag) det var en kraftig økning i integrasjonsgraden og en reduksjon i kostnaden for mikrokretser. Datamaskinen, som ikke skiller seg fra arkitektur fra PDP-11, ble tilgjengelig for en person, og ikke for en avdeling i et foretak eller universitet, når det gjelder pris og brukervennlighet. Tiden med personlige datamaskiner har kommet. I utgangspunktet var personlige datamaskiner beregnet på bruk av en bruker i en enkeltprogrammodus, noe som førte til forringelse av arkitekturen til disse datamaskinene og deres operativsystemer (spesielt behovet for å beskytte filer og minne, planleggingsoppgaver, etc. ) forsvant.

Datamaskiner begynte å bli brukt ikke bare av spesialister, noe som krevde utvikling av "vennlig" programvare.

Imidlertid økte kompleksiteten og mangfoldet av oppgaver som ble løst på personlige datamaskiner, behovet for å forbedre påliteligheten til arbeidet deres til gjenoppliving av nesten alle funksjoner som er karakteristiske for arkitekturen til store datasystemer.

På midten av 80-tallet begynte de å utvikle seg raskt datanettverk, inkludert personlig, løping nettverksbasert eller distribuert operativsystem.

På nettverksoperativsystemer brukere kan få tilgang til ressursene til en annen datamaskin i nettverk, bare de må være klar over tilgjengeligheten og kunne gjøre det. Hver maskin på nettverket kjører sitt eget lokale operativsystem, som skiller seg fra operativsystemet på en frittstående datamaskin ved tilstedeværelse av tilleggsverktøy (programvarestøtte for nettverksgrensesnittenheter og tilgang til eksterne ressurser), men disse tilleggene endres ikke strukturen til operativsystemet.

Distribuert system tvert imot, det ser ut som et vanlig autonomt system. Brukeren vet ikke og bør ikke vite hvor filene hans er lagret - på en lokal eller ekstern maskin - og hvor programmene hans kjøres. Det er ikke sikkert han vet om datamaskinen hans er koblet til nettverket. Den interne strukturen til et distribuert operativsystem skiller seg vesentlig fra frittstående systemer.

I det følgende vil frittstående operativsystemer bli referert til som klassiske operativsystemer.

Etter å ha gjennomgått stadiene i utviklingen av datasystemer, kan vi skille seks hovedfunksjoner som har utført klassiske operativsystemer i utviklingsprosessen:

Planlegge jobber og CPU -bruk;

Tilveiebringelse av programmer med kommunikasjonsmidler og synkronisering;

Minnehåndtering;

Filsystembehandling;

I / O -kontroll;

Sikkerhet

Hver av de ovennevnte funksjonene er vanligvis implementert som et delsystem, som er en strukturell komponent i operativsystemet. I hvert operativsystem ble disse funksjonene selvfølgelig implementert på sin egen måte, i forskjellige mengder. De ble ikke opprinnelig oppfunnet som en del av operativsystemer, men dukket opp under utviklingen, ettersom datasystemene ble mer praktiske, effektive og sikre. Utviklingen av menneskelige datasystemer har fulgt denne veien, men ingen har ennå bevist at dette er den eneste mulige måten å utvikle dem på. Operativsystemer eksisterer fordi deres eksistens på dette tidspunktet er en fornuftig måte å bruke datasystemer på.