Konseptet med et operativsystem. Hovedstadier i utviklingen av operativsystemer


Kort utviklingshistorie operativsystemer

Fremveksten og hovedstadiene i utviklingen av operativsystemer

De første datamaskinene ble bygget og fant praktisk anvendelse på 40-tallet av det 20. århundre. Opprinnelig ble de brukt til å løse et enkelt spesielt problem - å beregne banen til artillerigranater i luftvernsystemer. På grunn av spesifikasjonene til applikasjonen (løser et enkelt problem), brukte ikke de første datamaskinene noe operativsystem. På den tiden ble løsning av dataproblemer hovedsakelig gjort av datautviklerne selv, og prosessen med å bruke en datamaskin var ikke så mye en løsning på et anvendt problem, men snarere forskningsarbeid i informatikk.

BIOS er det første trinnet for å lage operativsystemer

Snart begynte datamaskiner å bli brukt til å løse andre problemer: tekstanalyse og løsning av komplekse anvendte problemer innen fysikk. Kretsen av forbrukere av datatjenester har utvidet seg noe. Men for å løse hver spesifikk oppgave På den tiden var det nødvendig å omskrive ikke bare koden som implementerte løsningsalgoritmen, men også input-output-prosedyrer og andre prosedyrer for å kontrollere beregningsprosessen. De betydelige kostnadene ved denne tilnærmingen ble snart tydelige:
- koden for I/O-prosedyrer er vanligvis ganske omfangsrike og vanskelige å feilsøke (ofte viste det seg å være det største fragmentet av programmet), og i tilfelle feil i I/O-prosedyren, resultatene av langvarige og dyre beregninger kan lett gå tapt;
- behovet for å omskrive en ganske stor hjelpekode hver gang forsinker tiden og øker kompleksiteten i utviklingen applikasjonsprogrammer.
Derfor, for å løse disse problemene, ble det opprettet spesielle biblioteker med input-output-prosedyrer (BIOS - Base Input-Output System). Nøye innstilte og effektive rutiner fra BIOS kan enkelt brukes med alle nye programmer uten å bruke tid og krefter på å utvikle og feilsøke standardrutiner for datainngang og utdata.
Med bruken av BIOS ble programvaren delt inn i system- og applikasjonsprogramvare. Dessuten er applikasjonsprogramvare direkte fokusert på å løse nyttige problemer, mens systemprogramvare er fokusert utelukkende på å støtte arbeid og forenkle utviklingen av applikasjonsprogramvare.
Imidlertid er BIOS ennå ikke et operativsystem, fordi... utfører ikke den viktigste funksjonen for noe operativsystem - administrere beregningsprosessen til applikasjonsprogrammet. I tillegg gir ikke BIOS andre viktige funksjoner i operativsystemet - lagring og start av applikasjonsprogrammer. BIOS og biblioteker med matematiske prosedyrer, som dukket opp omtrent samtidig, lettet ganske enkelt prosessen med å utvikle og feilsøke applikasjonsprogrammer, noe som gjorde dem enklere og mer pålitelige. Likevel, lage BIOS ble det første skrittet mot å lage et fullverdig operativsystem.

System batchbehandling– prototype av et moderne operativsystem

Med videreutvikling av elektronisk datamaskiner, med utvidelsen av omfanget av deres applikasjon, kom problemet med utilstrekkelig effektivitet ved bruk av en dyr datamaskin raskt i forgrunnen.
På 50-tallet personlige datamaskiner eksisterte ikke ennå, og enhver datamaskin var en veldig dyr, klumpete og relativt sjelden maskin. En spesiell tidsplan ble utarbeidet for tilgang til den av forskjellige vitenskapelige institusjoner. På det angitte tidspunktet måtte programmereren komme til datarommet, laste oppgaven fra en kortstokk med hullkort, vente på at beregningene ble fullført og skrive ut resultatene.
Når du bruker en stiv tidsplan, hvis programmereren ikke hadde tid til å fullføre beregningene i den tildelte tiden, måtte han fortsatt frigjøre maskinen, siden en ny oppgave var planlagt for den. Men dette betyr at datatiden var bortkastet - ingen resultater ble oppnådd! Hvis beregningene av en eller annen grunn ble fullført tidligere enn forventet, sto maskinen ganske enkelt stille.
For å unngå tap av prosessortid som er uunngåelig når du arbeider i henhold til en tidsplan, ble konseptet med batchbehandling av jobber utviklet, hvis essens er forklart i følgende figur (figur 1).

Figur 1 Struktur av et datasystem med batchbehandling

Batchsystemet ble først utviklet på midten av 50-tallet av General Motors for IBM 701-maskiner. Tilsynelatende var dette det første operativsystemet. Hovedideen med batchbehandling er å overlate administrasjonen av lasteprogrammer og utskrift av resultatene til laveffekts og relativt billige satellittmaskiner som er koblet til en stor (hoved)maskin via høyhastighets elektroniske kanaler. I dette tilfellet vil hoveddatamaskinen bare løse problemet mottatt fra satellittmaskinen, og etter å ha fullført oppgaven, overføre resultatene via en høyhastighetskanal til en annen satellittmaskin for utskrift.
Satellittmaskiner opererer uavhengig, og frigjør sentralprosessoren fra behovet for å kontrollere trege eksterne enheter. I dette tilfellet kan det oppstå en utskrift av resultatene fra forrige oppgave under løsningen av gjeldende oppgave, og samtidig kan neste oppgave leses inn i satellittmaskinens elektroniske minne. Dette arrangementet av et batchjobbbehandlingssystem er kjent som et enkelt batchsystem.
Batch-jobbbehandlingssystemer implementert på 50-tallet ble prototypen på moderne operativsystemer. De var de første som implementerte programvare som ble brukt til å kontrollere kjøringen av applikasjonsprogrammer.
Vi bemerker også her at den beskrevne tilnærmingen til konstruksjon av H/W er fullstendig bevart til i dag. Moderne perifere enheter, og fremfor alt, harddisker, er i stand til å overføre store mengder data uten deltakelse fra en sentral prosessor. Når vi ser fremover, påpeker vi at det kun er takket være denne egenskapen til maskinvare at moderne multitasking-operativsystemer eksisterer og fungerer effektivt.

Multitasking operativsystemer

De første multitasking-operativsystemene dukket opp på 60-tallet som et resultat av videreutviklingen av batch-oppgavebehandlingssystemer. Hovedincentivet for utseendet deres var de nye maskinvarefunksjonene til datamaskiner.
For det første dukket det opp nye effektive lagringsmedier der søket etter de nødvendige dataene enkelt kunne automatiseres: magnetbånd, magnetsylindere og magnetiske disker. Dette endret igjen strukturen til applikasjonsprogrammer - nå kunne de laste inn tilleggsdata for beregninger eller prosedyrer fra standardbiblioteker under drift.
Merk nå at et enkelt batchsystem, etter å ha akseptert en oppgave, betjener den til den er fullført, noe som betyr at mens du laster inn ekstra data eller kode, er prosessoren inaktiv, og kostnadene for prosessorens inaktive tid øker med ytelsen, siden en mer produktiv prosessor kunne ville gjøre mer nyttig arbeid under nedetid.
For det andre har prosessorytelsen økt betydelig, og tapet av prosessortid i enkle batchsystemer har blitt uakseptabelt stort.
I denne forbindelse var fremveksten av multitasking batch-systemer et logisk skritt. En nødvendig betingelse for å lage multitasking-systemer er tilstrekkelig dataminne. For multitasking må minnemengden være tilstrekkelig til å romme, iht i det minste, to programmer samtidig.
Den grunnleggende ideen om multitasking er ganske åpenbar - hvis det nåværende programmet er suspendert og venter på at I/O skal fullføres, fortsetter prosessoren å jobbe med et annet program som er dette øyeblikket klar til å utføre.
Overgangen til en annen oppgave må imidlertid gjøres på en slik måte at det er mulig å gå tilbake til den forlatte oppgaven etter noe tid og fortsette arbeidet fra bruddpunktet. For å implementere denne funksjonen var det nødvendig å introdusere en spesiell datastruktur i operativsystemet som definerer Nåværende situasjon hver oppgave - konteksten til prosessen. Prosesskonteksten er definert i ethvert moderne operativsystem på en slik måte at dataene fra den vil være tilstrekkelig til å fullstendig gjenopprette den avbrutte oppgaven.
Fremveksten av multitasking krevde implementering av flere grunnleggende undersystemer i operativsystemet, som også er til stede i ethvert moderne operativsystem. La oss liste dem opp:
1) undersystem for prosessorstyring - bestemmer hvilken oppgave og på hvilket tidspunkt som skal overføres til prosessoren for vedlikehold;
2) undersystem for minneadministrasjon – sikrer konfliktfri bruk av minne for flere programmer samtidig;
3) undersystem for prosesskontroll - sikrer konfliktfri deling av dataressurser (for eksempel magnetiske disker eller generelle rutiner) av flere programmer samtidig.
Dette kurset vil undersøke i detalj implementeringen av disse delsystemene i moderne operativsystemer.
Nesten umiddelbart etter bruken av multitasking-operativsystemer, ble det lagt merke til at multitasking er nyttig for mer enn bare å øke CPU-utnyttelsen. For eksempel, basert på multitasking, kan du implementere en flerbrukermodus for datamaskindrift, dvs. koble flere terminaler til den samtidig, og for brukeren ved hver terminal vil det skapes en fullstendig illusjon om at han jobber med maskinen alene. Før epoken med massebruk av personlige datamaskiner, var flerbrukermodus hoveddriftsmodusen for nesten alle datamaskiner. Utbredt støtte for flerbrukermodus utvidet kretsen av databrukere dramatisk, noe som gjorde den tilgjengelig for folk fra forskjellige yrker, noe som til slutt førte til den moderne datarevolusjonen og fremveksten av PC-en.
Dessuten, avhengig av algoritmene som ligger til grunn for driften av prosessorkontrollundersystemet, får operativsystemet, og med det hele datamaskinen, forskjellige egenskaper. For eksempel kan et multitasking-batchsystem som bytter til en annen oppgave bare når det er umulig å fortsette den gjeldende gi maksimal datamaskingjennomstrømning, dvs. maksimere det gjennomsnittlige antallet oppgaver som løses per tidsenhet, men på grunn av uforutsigbarheten til responstider, er et multi-tasking batchsystem fullstendig uegnet for et interaktivt system som reagerer umiddelbart på brukerinnspill.
Et multitasking-system med tvangsforstyrrelse av en oppgave etter en tidsdel er ideell for et interaktivt system, men gir ikke maksimal ytelse for databehandlingsoppgaver.
Når du studerer emnet "prosessorstyring" i dette kurset, funksjonene til mange spesifikke algoritmer, viser kompromissløsninger egnet for universelle operativsystemer rettet mot å løse et bredt spekter av oppgaver.
Som en konklusjon bemerker vi at fremveksten av multitasking ble forårsaket av ønsket om å utnytte prosessoren maksimalt, eliminere nedetiden hvis mulig, og for tiden er multitasking en integrert kvalitet i nesten alle moderne operativsystemer.

Operativsystemer støttes virtuell hukommelse

Innkomsten av det virtuelle minnesystemet på slutten av 60-tallet var det siste steget mot moderne operativsystemer. Det påfølgende utseendet til grafiske brukergrensesnitt og til og med støtte for nettverksinteraksjon var ikke lenger slike revolusjonerende løsninger, selv om de i betydelig grad påvirket utviklingen av maskinvare og utviklingen av operativsystemene selv.
Drivkraften til fremveksten av virtuelt minne var kompleksiteten til minnehåndtering i multitasking-operativsystemer. Hovedproblemene her er:
- Programmer krever som regel et sammenhengende minneområde for plassering. Under drift, når programmet avsluttes, frigjør det minne, men denne minneregionen er ikke alltid egnet for et nytt program. Det er enten for lite, og da må du se etter en seksjon i et annet minneområde for å plassere programmet, eller det er for stort, og etter at du har plassert det nye programmet vil det være et ubrukt fragment. Når operativsystemet kjører, dannes det snart mange slike fragmenter - den totale mengden ledig minne er stor, men det er ikke mulig å plassere et nytt program fordi det ikke er et eneste langt nok kontinuerlig ledig område. Dette fenomenet kalles minnefragmentering.
- I tilfellet der flere programmer er samtidig i delt minne, kan feilaktige eller tilsiktede handlinger fra et programs side forstyrre kjøringen av andre programmer, i tillegg kan data eller resultater fra enkelte programmer leses av andre programmer uten autorisasjon.
Som det vil bli vist senere i dette kurset, løser virtuelt minne ikke bare ideelt sett slike problemer, men gir også nye muligheter for ytterligere optimalisering av hele datasystemet.
Den avgjørende forutsetningen for fremveksten av et virtuelt minnesystem var swap-mekanismen (fra engelsk til swap - change, exchange).
Ideen med å bytte er å laste ned programmer som midlertidig er fjernet fra kjøring fra RAM til sekundærminne (på en magnetisk disk), og laste dem tilbake til RAM når de blir klare for videre kjøring. Dermed er det en konstant utveksling av programmer mellom RAM og sekundærminne.
Bytting lar deg frigjøre plass i RAM for å laste nye programmer ved å skyve programmer som for øyeblikket ikke kan kjøres inn i sekundært minne. Bytting løser ganske effektivt problemet med mangel på RAM og fragmentering, men løser ikke sikkerhetsproblemet.
Virtuelt minne er også basert på å skyve noen programmer og data fra RAM inn i sekundært minne, men det er mye mer komplisert å implementere og krever obligatorisk støtte fra prosessormaskinvaren. Spesifikke mekanismer for virtuelt minnedrift vil bli diskutert videre.
Til syvende og sist organiserer det virtuelle minnesystemet sitt eget adresseområde for hvert kjørende program, som kalles et virtuelt adresseområde. I dette tilfellet kan deler av det virtuelle adresserommet, etter operativsystemets skjønn, tilordnes enten til deler av RAM eller til deler av sekundært minne (se figur 2).


Figur 2 Kartlegging av virtuell adresserom

Når du bruker virtuelt minne, vil ikke programmer feilaktig eller med vilje kunne få tilgang til data fra andre programmer eller selve operativsystemet - det virtuelle minneundersystemet garanterer databeskyttelse. I tillegg tilordnes for tiden ubrukte områder av det virtuelle adresserommet til sekundærminne, dvs. data fra disse områdene lagres ikke i RAM, men i sekundærminne, noe som løser problemet med utilstrekkelig RAM. Til slutt kan områder av det virtuelle adresserommet kartlegges til vilkårlige deler av RAM uten at tilstøtende områder av det virtuelle adresserommet må være tilstøtende i RAM, noe som løser problemet med fragmentering.
Som allerede nevnt ble virtuelt minne først brukt i ekte operativsystemer på slutten av 60-tallet, men virtuelt minne ble utbredt først på 80-tallet (UNIX, VAX/VMS), og begynte å bli mye brukt i personlige datamaskiner først på midten av 90-tallet 's (OS/2, Linux, Windows NT). For øyeblikket er virtuelt minne, sammen med multitasking, en integrert del av nesten alle moderne operativsystemer.

Grafiske brukergrensesnitt

Siden slutten av 1980-tallet har personlige datamaskiner blitt allestedsnærværende, og mange mennesker med ulike bakgrunner har blitt involvert i PC-brukermiljøet. Mange av dem hadde ikke spesiell dataopplæring, men ønsket å bruke datamaskin i arbeidet, fordi... å bruke en datamaskin ga konkrete fordeler for virksomheten deres.
På den annen side har den økende kompleksiteten til operativsystemer og applikasjonsprogrammer gjort det ganske vanskelig å administrere dem selv for spesialister, og grensesnittet kommandolinje, som på dette tidspunktet hadde blitt en standard for operativsystemer, sluttet å tilfredsstille praktiske behov.
Endelig har nye maskinvarefunksjoner dukket opp: fargegrafikkskjermer, høyytelses grafikkkontrollere og manipulatorer av musetypen.
Dermed var det på slutten av 80-tallet alle forutsetninger for en utbredt overgang til GUI bruker: på den ene siden var det behov for en enklere og mer praktisk datakontrollmekanisme, på den andre siden gjorde utviklingen av maskinvare det mulig å bygge en slik mekanisme.
Den grunnleggende ideen til GUI er som følger:
- brukeren, avhengig av den nåværende situasjonen, blir bedt om å velge ett av flere alternative alternativer for videre handlinger;
- mulige alternativer for brukerhandlinger presenteres på dataskjermen i skjemaet tekststrenger(meny) eller skjematiske tegninger (piktogrammer);
- for å velge ett av alternativene for ytterligere handlinger, juster ganske enkelt pekeren (markøren) på LCD-skjermen med et menyelement eller ikon og trykk på en forhåndsdefinert tast (vanligvis<пробел>, <ввод>eller museknapp) for å informere systemet om valget som er gjort.
Det første grafiske grensesnittet ble utviklet i 1981 hos Xerox. Det sies at Microsoft-sjef Bill Gates besøk til Xerox og dets utvikling innen grafiske brukergrensesnitt oppmuntret Microsoft til å lage sine egne grafiske brukergrensesnitt.
Foreløpig ser operativsystemene ut til å ha de mest avanserte grafiske grensesnittene Windows-familien, disse grafiske grensesnittene er som de facto standarder for grafiske brukergrensesnitt.
Å bruke et grafisk grensesnitt har vist seg å være så enkelt og intuitivt at datamaskiner nå effektivt brukes i arbeidet sitt av folk som ikke engang har noen formening om arkitekturen til selve datamaskinen, operativsystemet eller applikasjonsprogrammet.
Til syvende og sist har fremveksten av grafiske brukergrensesnitt som en del av operativsystemer og applikasjonsprogrammer hatt en enorm innvirkning på databehandlingen av det moderne samfunnet.

Innebygd nettverksstøtte

Innebygd nettverksstøtte i generelle operativsystemer dukket først opp på midten av 90-tallet, og ga først tilgang til eksterne filer som ligger på diskene til en annen datamaskin. Opprinnelig var nettverksstøtte bare nødvendig i små kontorer for samarbeid flere datamaskiner på ett dokument.
Utviklingen av Internett førte imidlertid raskt til behovet for å bygge nettverksstøtte selv inn i operativsystemer for hjemmedatamaskiner. I tillegg er det interessant å merke seg at den konstante nedgangen i kostnadene for hjemmedatamaskiner de siste årene har brakt hjem datanettverk når én familie bruker flere datamaskiner med mulighet for deling delt skriver, skanner eller annet utstyr.
Høydepunktet for integrasjon i nettverksinteraksjon er nettverksoperativsystemer som kombinerer ressursene til alle datamaskiner på nettverket til en felles nettverksressurs som er tilgjengelig for enhver datamaskin på nettverket. Rimelig bruk av et nettverksoperativsystem lar deg løse komplekse søke- eller optimaliseringsproblemer når det er et tilstrekkelig stort antall datamaskiner på nettverket, som hver for seg ikke er i stand til å løse problemet på en akseptabel tid.

Historie om de vanligste operativsystemene

UNIX operativsystem

UNIX-operativsystemet er det første moderne operativsystemet. De tekniske løsningene som ble inkludert selv i de aller første versjonene av UNIX ble senere standardløsninger for mange senere operativsystemer, og ikke bare for UNIX-familien. Mange algoritmer innebygd i UNIX-ressursstyringsundersystemet er fortsatt de beste og replikeres i forskjellige operativsystemer.
La oss se på historien om fremveksten og utviklingen av UNIX mer detaljert.

Multics operativsystemprosjekt

I Multics-prosjektet fra 1965 til 1969. Bell Labs og General Electric. Målet med Multics-prosjektet var å lage et nytt multi-bruker, multi-tasking interaktivt operativsystem som kombinerer brukervennlighet med kraftig og effektivt system ressursforvaltning. Multics var basert på følgende tekniske løsninger:
- virtuelt minne med en segmentsideorganisasjon som kontrollerer tilgangsrettigheter til å skrive, lese eller kjøre for hvert segment;
- et sentralisert filsystem som sikrer organisering av data, til og med lokalisert på forskjellige fysiske enheter, i form av en enkelt trestruktur av kataloger/filer;
- kartlegge innholdet i en fil til prosessens virtuelle adresserom ved hjelp av virtuelle minneadministrasjonsmekanismer.
Alle disse løsningene er typiske for moderne operativsystemer. Multics-prosjektet ble imidlertid ikke fullført. Ledelsen i Bell Labs bestemte seg for å forlate prosjektet, ettersom ytterligere finansiering av prosjektet var upassende, siden de store midlene som allerede var investert i prosjektet ikke ga noen avkastning.
Til tross for den tidlige avslutningen, definerte Multics-prosjektet de grunnleggende prinsippene for ressursstyring og operativsystemarkitektur som er vellykket brukt til i dag, og spesialistene som deltok i prosjektet fikk uvurderlig erfaring. Blant bidragsyterne til Multics-prosjektet var Ken Thompson og Dennis Ritchie, de fremtidige forfatterne av den første versjonen av UNIX.

Fremveksten av UNIX-operativsystemet

Etter at Multics-prosjektet ble forlatt, fortsatte Ken Thompson, Dennis Ritchie og flere andre Bell Labs-ansatte sitt forskningsarbeid innen operativsystemer, og kom snart opp med ideen om et forbedret filsystem. Som flaks hadde Bell Labs et stort behov for praktiske og effektive dokumentasjonsverktøy på den tiden, og det nye filsystemet kunne komme godt med.
I 1969 implementerte Ken Thompson et operativsystem på PDP-7-maskinen som inkluderte et nytt filsystem, samt spesielle prosess- og minneadministrasjonsverktøy som tillot to brukere å jobbe på én PDP-7-maskin samtidig i tidsdelingsmodus . De første brukerne av det nye operativsystemet var ansatte i patentavdelingen til Bell Labs.
Brian Kernighan foreslo å kalle det nye systemet UNICS - Uniplexed Information and Computing System. Utviklerne likte navnet, blant annet fordi det minnet om Multics. Snart begynte navnet å bli skrevet som UNIX - det uttales det samme, men oppføringen er kortere med én bokstav. Dette navnet har overlevd til i dag.
I 1971, etter at UNIX ble portert til PDP-11, ble den første utgaven av dokumentasjonen utgitt, og det nye operativsystemet dukket offisielt opp.
Den første utgaven av UNIX ble skrevet på assemblerspråk, noe som medførte visse vanskeligheter ved portering av operativsystemet til andre plattformer, så for å jobbe med den andre utgaven av UNIX utviklet Ken Thompson sitt eget programmeringsspråk B. Den andre utgaven ble utgitt i 1972 og inneholdt programvarekanaler som tillot interaksjon mellom programmer som kjører samtidig på en datamaskin.
Utseendet til et operativsystem som ikke er skrevet på assemblerspråk, var et revolusjonerende skritt innen systemprogrammering, men B-språket inneholdt en rekke begrensninger som begrenset bruken. Så i 1973 utviklet Dennis Ritchie C-språket og operativsystemet ble skrevet om til det nye språket.
I 1975 dukket den første kommersielle versjonen av UNIX, kjent som UNIX v.6, opp og UNIX begynte sin triumferende marsj rundt om i verden.

De viktigste stadiene i UNIX-utvikling

1976. En gruppe studenter og professorer dannet seg ved University of Berkeley og ble seriøst interessert i UNIX-systemet. Deretter grunnla en gruppe ved Berkeley University sin egen gren av utviklingen av UNIX OS - BSD UNIX (Berkeley Software Distribution). I BSD-grenen dukket det opp for første gang kjente UNIX-komponenter som vi-tekstredigereren, TCP/IP-protokollstakken og sidemekanismen i det virtuelle minnestyringssystemet.
1977. Første erfaring med å portere UNIX til en annen maskinvareplattform (annet enn PDP-11). Ved University of Wollongong i Australia porterte professor Juris Reindfelds UNIX delvis til en 32-bits maskin.
1978. Thompson og Ritchie ved Bell Labs implementert full overføring UNIX på en 32-bits maskin. Overføringen ble ledsaget av betydelige endringer i organiseringen av systemet, noe som gjorde det mulig å forenkle påfølgende porter av UNIX til andre plattformer. Samtidig ble C-språket utvidet nesten til sin moderne tilstand.
1978. Divisjonen USG (UNIX Support Group) ble opprettet spesielt for å støtte UNIX ved Bell Labs.
1982. USG ga ut UNIX System III, som samlet de beste løsningene presentert i de forskjellige versjonene av UNIX kjent på den tiden. Navngitte programkanaler introduseres for første gang.
1983: Unix System V lanseres. Det introduserer semaforer, minnedeling og meldingskøer for første gang, og bruker databufring for å forbedre ytelsen.
1984. USG ble omgjort til et UNIX utviklingslaboratorium - USDL (UNIX System Development Laboratories). UNIX System V Release 2 (SVR2) har blitt utgitt. Systemet har muligheten til å låse filer og kopiere delte minnesider når du skriver.
1986. Fremveksten av et grafisk grensesnitt for UNIX-lignende operativsystemer - grafikksystem X Windows.
1987 USDL utgitt UNIX System V Release 3 (SVR3). Først presentert moderne evner kommunikasjon mellom prosesser, ekstern fildeling, signalbehandling.
1989. UNIX System V Release 4 (SVR4) utgitt. UNIX ble først implementert basert på mikrokjernekonseptet. Støtte for sanntidsprosesser og lette prosesser er introdusert.

Linux operativsystem

For tiden er Linux-operativsystemet gjennom en periode med rask utvikling. Og selv om dette er et ungt operativsystem, litt over 10 år gammelt, har det allerede fått anerkjennelse fra mange tusen brukere.
Opprinnelsen til Linux-operativsystemet var Linus Torvalds, den gang førsteårsstudent, som på slutten av 1991 la ut Linux-mikrooperativsystemet han hadde utviklet på Internett og inviterte alle til å ta del i utviklingen av dette systemet. Som et resultat ble mange dyktige programmerere med på prosjektet, og med felles innsats stort nummer mennesker som samhandler via Internett, har et svært avansert operativsystem blitt utviklet.
I Linux-grunnlaget Noen løsninger var basert på UNIX BSD 4.2, og derfor anses Linux vanligvis som en uavhengig gren av UNIX-lignende operativsystemer.
For tiden Linux-tid utvikler seg innenfor rammen av Open Source-teknologi – åpen kildekodetekster tilgjengelig for alle. Alle kan utvikle og sende inn endringer eller tillegg til Linux, og Linux-installasjoner kan fås gratis over Internett.
Foreløpig har Linux også delt seg i flere uavhengige grener, som det fortsatt er mye til felles mellom, men det er forskjeller i implementeringen av enkelte komponenter, både i systemkjernen og i ulike verktøy.
Linux-operativsystemet anses nå av mange mennesker som et seriøst alternativ til Windows-familien av operativsystemer. Linux-systemet er stabilt og gir høy ytelse. Det eneste som fortsatt holder tilbake spredningen av Linux er mangelen på kontorapplikasjoner som tekstbehandlere og regneark. Men i I det siste antallet slike programmer vokser jevnt og trutt, og kvaliteten på brukergrensesnittene deres nærmer seg det som er kjent for Windows-brukere.
Et annet problem med Linux-systemet er at det har en tendens til å henge etter når det gjelder å støtte den nyeste maskinvaren, men det er også en forklaring på det. Utviklerne av denne maskinvaren gir alltid informasjon om dem til ledende operativsystemprodusenter selv før utgivelsen av denne maskinvaren. maskinvare på markedet, derfor gir for eksempel Windows vanligvis støtte for ny maskinvare så snart den kommer på markedet. Linux sitt rykte blant maskinvareutviklere vokser jevnt og trutt, så vi kan håpe at problemet med maskinvarestøtte snart er løst.

Operasjonssal Windows-system

For øyeblikket er Windows-familien av operativsystemer det mest populære operativsystemet for personlige datamaskiner. Alle disse operativsystemene har et veldig likt (og veldig avansert!) grafisk brukergrensesnitt, men skiller seg betydelig ut i intern struktur.
I Windows-familien representerer Windows 95/98/Me-operativsystemene en gren av forbrukeroperativsystemer rettet primært mot hjemmebruk, mens Windows XP-systemet primært er fokusert på 64-bits plattformen, og skiller seg i 32-bits implementering fra Windows 2000 hovedsakelig i grensesnittet.
Det moderne Windows 2000-operativsystemet er et typisk multitasking-operativsystem som støtter virtuelt minne, filsystem, nettverk, grafisk brukergrensesnitt og multimedia. Det stammer direkte fra Windows NT og har praktisk talt ingenting til felles med MS-DOS-operativsystemet som var utbredt for rundt ti år siden. Men utviklingen av drift Microsoft-systemer skjedde sekvensielt, og det er mest logisk å starte historien deres fra DOS.
1983. Operasjonsstuen kommer ut MS-DOS system 2.0, som inkluderer støtte for en harddisk, et filsystem med en hierarkisk filnavnstruktur og lastbare enhetsdrivere. Deretter fungerte alle versjoner av Windows, opp til Windows NT, som et tillegg til DOS-versjoner ikke lavere enn 2.0, ved å bruke filsystemet og systemfunksjonene for å jobbe med maskinvare.
1985. Den første versjonen av Windows lanseres – Windows 1.01. På den tiden var Windows ennå ikke et fullverdig operativsystem og krevde at DOS 2.0-operativsystemet skulle fungere. Windows 1.01 støtter bare ikke-overlappende vinduer og lar brukere bytte mellom programmer uten å starte dem på nytt. Da Windows 1.01 dukket opp, var flere grafiske skall for DOS allerede på markedet, men alle, som Windows, var ikke spesielt populære på grunn av mangelen på programmer. I tillegg er det upraktisk å jobbe i vinduer som ikke overlapper.
1987: Windows 2.0 er utgitt, og støtter overlappende vinduer. Samtidig med utgivelsen av Windows 2.0 dukket Microsoft Excel-regnearket på markedet og tekstbehandler Word 1.0 er virkelig brukervennlig programvare for Windows. Takket være det praktiske grafiske grensesnittet og tilgjengeligheten av nyttige applikasjonsprogrammer, blir Windows 2.0-versjonen populær, og selger en million eksemplarer på et halvt år.
1988. Windows versjon 2.1 er utgitt, og støtter utvidet minne på 80286-prosessoren og multitasking på 80386-prosessoren. For denne versjonen blir det obligatorisk for datamaskinen å ha en harddisk (tidligere var det tilstrekkelig med disketter).
1990: Windows 3.0 er utgitt. Den kjører i beskyttet prosessormodus og støtter bytte av programmer og data basert på minneblokkbeskrivelser. Samtidig, mens data fra en bestemt minneblokk ikke er nødvendig, kan systemet, etter eget skjønn, flytte denne blokken i minnet og til og med skylle dataene til disken. Men når et program trenger disse dataene, må det indikere dette til systemet og gi det en minneblokkbeskrivelse for å identifisere den nødvendige blokken (når en minneblokk er tildelt, returnerer systemet sin beskrivelse). Ved mottak av en forespørsel om tilgang til minne, blokkerer systemet denne blokken i minnet og sender applikasjonen en peker til begynnelsen av blokken. Systemet kan ikke lenger flytte den minneblokken før applikasjonen informerer den om at tilgang til data fra den minneblokken ikke lenger er nødvendig. Fra og med Windows 3.0 kan MS-DOS-programmer kjøres i et vindu.
1992: Windows 3.1 slippes, som ganske enkelt er en ytterligere forbedring av Windows 3.0, men det er den første versjonen av Windows som har blitt mye brukt i Russland. Snart ble Windows 3.1 det mest populære systemet når det gjelder antall installasjoner i USA og beholdt ledelsen til 1997.
1993: Windows 3.11 er utgitt, og legger til nettverksstøtte (e-post, fildeling, arbeidsgrupper).
1993. Windows NT-operativsystemet (NT - New Technology) slippes - det første fullverdige operativsystemet i Windows-familien som ikke krever en base i form av MS-DOS for driften. Til Windows-drift NT krever en prosessor på minst 80386, den har fullt virtuelt minne, forebyggende multitasking og et nytt filsystem. Fra og med Windows NT ble forbruker- og profesjonelle grener skilt.
1995. Windows 95-operativsystemet er utgitt, og er en ytterligere utvikling av Windows 3.11, blir det den første forbrukeren Windows-versjon, som ikke krever for sin DOS-operasjon. Windows 95 introduserer for første gang et nytt grafisk brukergrensesnitt som er veldig praktisk, intuitivt og setter Windows i forkant i verden når det gjelder brukervennlighet og kvalitet på brukergrensesnittet.
1996. Operativsystemet Windows NT4 er utgitt. Det er en videreutvikling av Windows NT og mottar en tilpasset Windows-grensesnitt 95. Snart vil operativsystemet Windows NT4 bli et av de mest populære for profesjonelt arbeid.
2000. Operativsystemet Windows 2000 lanseres. Det arvet i stor grad den interne arkitekturen til Windows NT, men en rekke tilleggstjenester ble introdusert, for eksempel støtte for distribuert databehandling.
2000. Operativsystemet Windows Me lanseres, som er en videreutvikling av Windows 95/98. Det er imidlertid annonsert at det blir den siste forbrukerversjonen av Windows. Forbrukergrenen, som ble separert i 1993, fusjonerer igjen med den profesjonelle grenen, og en enkelt gren av Windows XP vil fortsette å utvikle seg.
etc. og så videre.
2006. Vista

Stadier av utvikling av operativsystemer

Kapittel 1 Sammendrag

1. Hoveddel programvarekomponent datasystemer er et operativsystem. Gjennomfører utøvende funksjon, bestemmer det utseendet til datasystemet.

2. Operativsystemet er hovedsystemprogrammet til en datamaskin. Utformingen av et operativsystem utføres på samme måte som andre (applikasjons- og instrumentelle) programmer.

3. Det store utvalget av operativsystemer har nødvendiggjort deres klassifisering. OS er klassifisert i henhold til følgende kriterier: etter antall samtidig utførte oppgaver, etter antall samtidig arbeidende brukere, etter antall samtidig kontrollerte prosessorer, etter driftsmodus.

4. Konstruksjonen av moderne operativsystemer er basert på ni prinsipper, som hver kan ekstrapoleres til utvikling av applikasjonsprogrammer.

Testspørsmål for kapittel 1

1. Hva er forskjellen mellom operativsystemer og andre programmer? 2. Hva er hovedfunksjonene til operativsystemet? 3. Hvilke typer programvare kjenner du til? 4. Hva er hoveddelen av operativsystemet? 5. Hvilke kategorier av operativsystemer kjenner du til? 6. Er det mulig å ekstrapolere (utvide) prinsippene for konstruksjon av operativsystemer til utvikling av applikasjonsprogrammer?


KAPITTEL 2. HISTORIE OM UTVIKLING AV OPERATIVSYSTEMER

Første periode (1945 -1955): førtiårene av 1900-tallet var preget av bruken av datateknologi, men det fantes ingen operativsystemer, tilgang til dataressurser var maskinkoding. Den første generasjonen OS (50s) – batchbehandlingssystemer. I slike systemer behandles en jobb som en sekvens av batcher, og det er ingen interaksjon mellom brukeren og jobben hans under behandlingen.

På midten av 40-tallet ble de første rørdatabehandlingsenhetene laget. På den tiden deltok den samme gruppen mennesker i design, drift og programmering av datamaskinen. Det var mer et forskningsarbeid innen datateknologi, snarere enn bruk av datamaskiner som et verktøy for å løse eventuelle praktiske problemer fra andre anvendte områder. Programmeringen ble utført utelukkende på maskinspråk. Det var ingen operativsystemer; alle oppgaver med å organisere dataprosessen ble løst manuelt av hver programmerer fra kontrollpanelet. Det fantes ingen annen systemprogramvare enn biblioteker med matematiske og verktøyrutiner.

Andre periode (1955 - 1965): fra midten av 50-tallet begynte en ny periode i utviklingen av datateknologi, assosiert med fremveksten av en ny teknisk base - halvlederelementer. Andregenerasjons datamaskiner ble mer pålitelige, nå var de i stand til å jobbe kontinuerlig så lenge at de kunne bli betrodd å utføre virkelig praktisk viktige oppgaver. Det var i denne perioden at personellet ble delt inn i programmerere og operatører, operatører og datautviklere.



I løpet av disse årene dukket de første algoritmiske språkene opp, og følgelig de første systemprogrammene - kompilatorer. Kostnaden for CPU-tid har økt, noe som krever en reduksjon i tidsoverhead mellom programkjøringer. De første batchbehandlingssystemene dukket opp, som ganske enkelt automatiserte lanseringen av det ene programmet etter det andre og dermed økte prosessorens belastningsfaktor. Batchbehandlingssystemer var prototypen til moderne operativsystemer; de ble de første systemprogrammene designet for å administrere databehandlingsprosessen. Under implementeringen av batchbehandlingssystemer ble det utviklet et formalisert oppgavekontrollspråk, ved hjelp av hvilket programmereren informerte systemet og operatøren om hvilket arbeid han ønsket å utføre på datamaskinen. En samling av flere oppgaver, vanligvis i form av en kortstokk med hullkort, kalles en oppgavepakke.

Den andre generasjonen av OS (60-tallet) - systemer med multiprogrammering og de første systemene av multiprosessortypen. Tidsdelingsoperativsystemer (systemer som gir tjenester til mange brukere som kan samhandle med jobbene deres) og de første sanntidsoperativsystemene (systemer som gir umiddelbar respons på ytre påvirkninger, utvikles avbruddssystemer i slike miljøer).

Tredje periode (1965 - 1980): den neste viktige perioden i utviklingen av datamaskiner går tilbake til 1965-1980 (henholdsvis tredje og fjerde generasjon OS). På denne tiden skjedde det en overgang i det tekniske grunnlaget fra individuelle halvlederelementer som transistorer til integrerte kretser, noe som ga store muligheter til den nye, tredje generasjonen datamaskiner.

Denne perioden var også preget av opprettelsen av familier av programvarekompatible maskiner. Den første familien av programvarekompatible maskiner bygget på integrerte kretser var en serie maskiner IBM/360. Denne familien ble bygget på begynnelsen av 60-tallet og var betydelig overlegen andre generasjons maskiner når det gjelder pris/ytelse. Snart ble ideen om programvarekompatible maskiner generelt akseptert.

Programvarekompatibilitet krever også operativsystemkompatibilitet. Disse operativsystemene må kjøres på både store og små datasystemer, med stort og lite antall periferiutstyr, i kommersielle og forskningsapplikasjoner. Operativsystemer bygget med den hensikt å tilfredsstille alle disse motstridende kravene viste seg å være ekstremt komplekse monstre. De besto av mange millioner linjer med monteringskode, skrevet av tusenvis av programmerere, og inneholdt tusenvis av feil, noe som førte til en endeløs strøm av rettelser. I hver ny verson operativsystem, noen feil ble rettet og andre ble introdusert.

Så, tredje generasjon OS (siden midten av 60-tallet) er et multi-mode OS som samtidig kan operere i batch-behandlingsmodus, tidsdelingsmodus, sanntidsmodus og multiprosessorbehandlingsmodus.

Fjerde generasjon (siden midten av 70-tallet) - operativsystemer som gir tilgang til geografisk distribuerte datamaskiner - nettverksoperativsystemer.

Til tross for den enorme størrelsen og mange problemer, tilfredsstilte operativsystemene til tredjegenerasjonsmaskiner de fleste forbrukerkrav. Den viktigste prestasjonen til operativsystemet til denne generasjonen var implementeringen av multiprogrammering. Multiprogrammering er en måte å organisere en dataprosess der flere programmer vekselvis kjøres på én prosessor. Mens ett program utfører en I/O-operasjon, er ikke prosessoren inaktiv, slik tilfellet var ved kjøring av programmer sekvensielt (enkeltprogrammodus), men kjører et annet program (flerprogrammodus). I dette tilfellet blir hvert program lastet inn i sin egen del av RAM, kalt en partisjon.

En annen innovasjon - spole (spole). Spooling på den tiden ble definert som en måte å organisere databehandlingsprosessen på, i henhold til hvilken oppgaver ble lest fra hullkort til disk i det tempoet de dukket opp i datasenteret, og deretter, når neste oppgave var fullført, en ny oppgaven ble lastet fra disken til den ledige partisjonen.

Sammen med multiprogramimplementering av batchbehandlingssystemer, ny type OS – tidsdelingssystemer. Multiprogrammeringsalternativet som brukes i tidsdelingssystemer er rettet mot å skape for hver enkelt bruker en illusjon av enestående bruk av datamaskinen.

Fjerde periode (1980 – nåtid): denne perioden i utviklingen av operativsystemer er assosiert med fremveksten av store integrerte kretser(BIS). I løpet av disse årene var det en kraftig økning i graden av integrasjon og en reduksjon i kostnadene for mikrokretser. Datamaskinen ble tilgjengelig for den enkelte, og epoken med personlige datamaskiner begynte. Fra et arkitektonisk synspunkt var personlige datamaskiner ikke annerledes enn klassen av minidatamaskiner PDP-11, men prisene deres skilte seg betydelig. Hvis minidatamaskinen gjorde det mulig for en avdeling i en bedrift eller et universitet å ha sin egen datamaskin, så gjorde den personlige datamaskinen dette mulig for en enkeltperson.

Datamaskiner ble mye brukt av ikke-spesialister, noe som krevde utvikling av "brukervennlig" programvare.

To systemer dominerte operativsystemmarkedet: MS-DOS Og UNIX. Ett-program enkeltbruker OS MS-DOS mye brukt for datamaskiner bygget på mikroprosessorer Intel 8088 og deretter 80286, 80386 og 80486. Multi-program multi-user OS UNIX dominert blant «ikke-Intel»-datamaskiner, spesielt de som er bygget på grunnlag av høy ytelse RISC-prosessorer.

På midten av 80-tallet begynte nettverk av personlige datamaskiner som kjører under nettverk eller distribuerte operativsystemer å utvikle seg raskt.

I nettverkstilkoblede operativsystemer må brukere 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 den frittstående datamaskinen ved å ha ekstra midler, slik at datamaskinen kan jobbe på nettverket. Nettverksoperativsystemet har ingen grunnleggende forskjeller fra operativsystemet til en datamaskin med én prosessor. Den inneholder nødvendigvis programvarestøtte for nettverksgrensesnittenheter (nettverksadapterdriver), samt verktøy for ekstern pålogging til andre datamaskiner på nettverket og verktøy for tilgang til eksterne filer, men disse tilleggene endrer ikke strukturen til selve operativsystemet vesentlig.

ALLRUSSISK KORRESPONDENSINSTITUTT FOR FINANSIELL OG ØKONOMISK

AVDELING FOR AUTOMATISK BEHANDLING AV ØKONOMISK INFORMATikk

KURSARBEID

ved disiplin « Datavitenskap »

"Formål, utvikling og klassifisering av operativsystemer"

Utfører:

Smertin Nikolay Olegovich

Spesialitet organisasjonsledelse

Gruppe 2 (TNF)

Karakterbok nr. 10MMD46177 Veileder:

Khokhlova Olga Alexandrovna

Arkhangelsk – 2011

Introduksjon……………………………………………………………………………………………… 3

1. Formål, utvikling og klassifisering av operativsystemer…………… 4

Introduksjon……………………………………………………………………………………… 4

1.1. Formål med operativsystemer……………………………………….. 5

1.2. Klassifisering av operativsystemer……………………………………… 11

1.3. Evolusjon av operativsystemer…………………………………………. 1. 3

Konklusjon……………………………………………………………………………………… 15

2. Praktisk del………………………………………………………………………………...16

2.1. Generelle kjennetegn ved oppgaven………………………………………………………….. 16

2.2. Beskrivelse av løsningsalgoritmen………………………………………………………………….. 18

Referanser………………………………………………………………………………………………21

Applikasjoner…………………………………………………………………………………. 22

Introduksjon

Velge et tema prøvearbeid"Formålet, utviklingen og klassifiseringen av operativsystemer" skyldes det faktum at operativsystemer er en av de viktigste komponentene i moderne datamaskiner, og i mangel av denne komponenten blir den personlige datamaskinen slik vi kjenner den i dag til en vanlig skrivemaskin. Takket være de nyeste operativsystemene blir arbeid på en personlig datamaskin enkelt og tilgjengelig for alle.

Under testen, spørsmål om formålet med operativsystemer som et kompleks av sammenkoblede systemprogrammer; de grunnleggende kravene til operativsystemer bestemmes; fremhever de funksjonene som er iboende i alle operativsystemer; Hovedklassifiseringen ble utført og spørsmålet om historien om opprettelsen av systemer ble avslørt.

I den praktiske delen av testen, basert på de første dataene, vil organisasjonens lønnsskjema bli generert. I løpet av den praktiske delen vil MS Excel-regnearkprosessoren, masteren i pivottabeller og diagrammer bli brukt, og mulighetene til VIEW()-funksjonen vil bli studert.

Arbeid utført på PCIntelPentiumIV – 2,4 GHz / 1024 MbRAM / 80 GbHDD / RW / DVD 52x32x52x / FDD 1,44

Følgende programmer ble brukt for å fullføre arbeidet:

1. Operativsystem – Microsoft Windows XP Professional

2. Tekstredigerer"MSWord - 2007"

3. Regnearkprosessor "MSExcel–2007"

1. Formål, utvikling og klassifisering av operasjonsstuer

systemer

Plan

Introduksjon

1.1. Formål med operativsystemer

1.2. Klassifisering av operativsystemer

1.3. Utvikling av operativsystemer

Konklusjon

Introduksjon

De første PC-ene hadde ikke operativsystem og lignet på spillkonsoller: når datamaskinen var koblet til nettverket, fikk prosessoren tilgang til ROM-en, som inneholdt et program for å støtte et enkelt programmeringsspråk. Ved å koble en båndopptaker til datamaskinen var det mulig å laste et tredjepartsprogram. Det nedlastede programmet slo av ROM-en og deretter opererte datamaskinen under kontroll av det nedlastede programmet.

Et alvorlig behov for operativsystemer oppsto da diskstasjoner begynte å bli koblet til personlige datamaskiner. En diskstasjon skiller seg fra en båndopptaker ved at den er en enhet fri tilgang, og båndopptakeren er en seriell tilgangsenhet. Du kan laste et hvilket som helst program fra en magnetisk disk. Derfor har oppstartskommandoene blitt veldig komplekse. Det var nødvendig å angi spornummer og nummer på sektoren der det som skulle lastes befant seg. En løsning ble funnet. Det ble skrevet et program som oversetter navnene på programmer og filer til spor- og sektornummer. En person kunne laste ned det han trengte kun ved å bruke navnene. Dette programmet ble diskoperativsystemet.

Deretter utviklet operativsystemer seg parallelt med maskinvare og begynte å representere et sett med programmer som utfører to funksjoner: å gi brukeren bekvemmeligheten til en virtuell maskin og øke effektiviteten ved å bruke en datamaskin samtidig som den administrerer ressursene rasjonelt. I ulike modeller Datamaskiner bruker operativsystemer med forskjellige arkitekturer og muligheter. De krever forskjellige ressurser for å operere. De yter varierende grad av service for programmering og arbeid med ferdige programmer.

1.1 Formål med operativsystemer

operativsystem er et sett med sammenkoblede systemprogrammer, hvis formål er å organisere brukerinteraksjon med datamaskinen, administrere ressursene til datasystemet for å bruke dem mest effektivt. Operativsystemet fungerer som et bindeledd mellom maskinvaren på den ene siden og programmene som kjøres, samt brukeren på den andre siden. Operativsystemet kan kalles en programvareutvidelse av datamaskinens kontrollenhet. Operativsystemet skjuler komplekse unødvendige detaljer om maskinvarekontroll fra brukeren, og danner et lag mellom dem, som et resultat av at folk blir frigjort fra det svært arbeidskrevende arbeidet med å organisere interaksjon med maskinvare.

Hovedkravet til operativsystemet er den komplekse oppgaven med å organisere effektiv deling av ressurser mellom flere prosesser, og denne kompleksiteten genereres hovedsakelig av den tilfeldige karakteren av forekomsten av forespørsler om ressursforbruk. I et flerprogramsystem dannes køer av forespørsler fra programmer som kjører samtidig til delte datamaskinressurser: prosessor, minneside, skriver, disk. Operativsystemet organiserer service av disse køene ved hjelp av forskjellige algoritmer: først til mølla, førstemann til mølla, prioritetsbasert, round-robin, etc.

Et moderne OS må vanligvis støtte multiprogrambehandling, virtuelt minne, et grafisk brukergrensesnitt med flere vinduer og mange andre nødvendige funksjoner og tjenester. I tillegg til disse kravene til funksjonell fullstendighet, er operativsystemer underlagt like viktige driftskrav:

· Utvidbarhet. Mens maskinvare blir foreldet i løpet av få år, nyttig liv operativsystemer kan måles i flere tiår. Derfor endres operativsystemer alltid evolusjonært over tid, og disse endringene er mer betydningsfulle enn maskinvareendringer. Endringer i operativsystemet innebærer vanligvis anskaffelse av nye egenskaper, for eksempel støtte for nye typer eksterne enheter eller nye nettverksteknologier. Hvis OS-koden er skrevet på en slik måte at tillegg og endringer kan gjøres uten å krenke systemets integritet, kalles et slikt OS utvidbart. Utvidbarhet oppnås gjennom den modulære strukturen til operativsystemet, der programmer bygges fra et sett med individuelle moduler som kun samhandler gjennom et funksjonelt grensesnitt;

· Bærbarhet. Ideelt sett bør OS-koden være lett portabel fra én type prosessor til en annen type prosessor, og fra én type maskinvareplattform (som ikke bare er forskjellig i prosessortypen, men også i måten hele datamaskinens maskinvare er organisert) til en annen type maskinvareplattform. Bærbare operativsystemer har flere implementeringsalternativer for forskjellige plattformer, denne egenskapen til operativsystemet kalles også multiplattform;

· Kompatibilitet. Det er flere "langlivede" populære operativsystemer som det er utviklet et bredt spekter av applikasjoner for. Noen av dem er svært populære. Derfor, for en bruker som bytter fra ett OS til et annet av en eller annen grunn, er muligheten til å kjøre en kjent applikasjon på det nye operativsystemet veldig attraktiv. Hvis et OS har midler til å kjøre applikasjonsprogrammer skrevet for andre operativsystemer, sies det å være kompatibelt med disse operativsystemene. Det må skilles mellom binær kompatibilitet og kildekompatibilitet. Konseptet med kompatibilitet inkluderer også støtte for brukergrensesnitt til andre operativsystemer;

· Pålitelighet og feiltoleranse. Systemet skal beskyttes mot både intern og eksterne feil, feil og feil. Handlingene skal alltid være forutsigbare, og applikasjoner skal ikke kunne skade OS. Påliteligheten og feiltoleransen til et operativsystem bestemmes først og fremst av de arkitektoniske løsningene som ligger til grunn for det, samt kvaliteten på implementeringen (feilsøking av koden). I tillegg er det viktig om operativsystemet inkluderer programvarestøtte for maskinvarefeiltoleranse, for eksempel diskmatriser eller kilder avbruddsfri strømforsyning;

· Sikkerhet. Et moderne OS må beskytte data og andre datasystemressurser mot uautorisert tilgang. For at et OS skal ha sikkerhetsegenskaper, må det i det minste ha et middel til å fastslå lovligheten til brukere, gi lovlige brukere differensierte tilgangsrettigheter til ressurser, og også være i stand til å registrere alle hendelser "mistenkelige" for sikkerheten til system. Sikkerhetsegenskapen er spesielt viktig for nettverksoperativsystemer. I slike operativsystemer legges oppgaven med å beskytte data som overføres over nettverket til oppgaven med tilgangskontroll;

· Produktivitet. Operativsystemet må ha slike god ytelse og responstid, så langt maskinvareplattformen tillater det. Ytelsen til operativsystemet påvirkes av mange faktorer, blant dem de viktigste er OS-arkitekturen, forskjellige funksjoner, kvaliteten på kodeprogrammering, muligheten til å kjøre OS på en høyytelses (multiprosessor) plattform;


  1. Konseptet med et operativsystem; utvikling av operativsystemer; funksjoner til operativsystemer og tilnærminger til å bygge operativsystemer.
OS - grunnleggende kompleks dataprogrammer, gir kontroll over maskinvare, arbeid med filer, input og output av data, samt kjøring av applikasjonsprogrammer og verktøy.

I utgangspunktet er utviklingen av OS-utvikling delt inn i 5 generasjoner:

Første generasjon (1940 – 50). Rørdatabehandlingsenheter hadde nettopp dukket opp. Prinsippet for programmet er utviklet. Det er ingen operativsystemer; alt administrasjonsarbeid utføres av utviklerne.

Andre generasjon (1950 – 60). Databehandlingsenheter opererer på halvlederelementer. En prototype av OS-systemet vises batchbehandling, som ganske enkelt automatiserer lanseringen av det ene programmet fra en pakke etter den andre og dermed øker prosessorutnyttelsesfaktoren.

Tredje generasjon (1960–70). Halvlederelementer er kombinert til integrerte kretser. OSer vises med støtte for avbruddsenheter, oppgaveplanlegging og multiprogrammering. Det samme operativsystemet begynner å kjøre på ulike enheter, men det forblir fortsatt batch. Dukker også opp sanntids operativsystem(RTOS), der en datamaskin brukes til å administrere tekniske objekter. En karakteristisk egenskap til en RTOS er reaktivitet – systemets beredskap til å generere kontrollhandlinger umiddelbart.

Fjerde generasjon (1970-80) . OS-er var multimodussystemer, som ga batchbehandling, tidsdeling, sanntid og multiprosessering. Forebyggende multitasking og prioriteringsplanlegging vises, samt tildeling av kvoter for bruk av begrensede dataressurser. Mekanismen til virtuelt minne og avanserte filsystemer er implementert.

Femte generasjon (fra midten av 1980-tallet til i dag). OS bruker egenskapene til nettverksteknologier, inkludert klient-server-teknologier, grensesnittet blir grafisk og brukervennlig.

Det er også 5 hovedtilnærminger for å bygge et OS


  • Monolitisk kjerne

  • Mikrokjernearkitektur

  • Flernivåsystem

  • Virtuell maskin

  • Blandet system

  1. Operativsystemarkitektur. Klassifisering av operativsystemer. Effektivitet og krav til OS.
La oss se på eksisterende OS-arkitekturer.

Monolittisk kjerne - Dette er en design av et operativsystem der alle komponentene er komponenter ett program, bruk generelle strukturer data og samhandle med hverandre ved å ringe prosedyrer direkte. For et monolitisk operativsystem er kjernen den samme som hele systemet Et eksempel på systemer med en monolitisk kjerne er de fleste Unix-systemer.

Flernivåsystemer. Hele datasystemet kan brytes ned i en rekke mindre nivåer med veldefinerte forbindelser mellom dem, slik at objekter på nivå N kun kan kalle objekter på nivå N-1. Det nedre nivået i slike systemer er vanligvis maskinvare, det øvre nivået er brukergrensesnittet. Jo lavere nivå, desto mer privilegerte kommandoer og handlinger kan en modul på dette nivået utføre.

Virtuelle maskiner kalt et programvare- eller maskinvaremiljø som kjører noe kode. Ofte emulerer en virtuell maskin arbeidet ekte datamaskin. Eksempler er VMWareWorkstation og VirtualBox.

Mikrokjernearkitektur. Dette er en arkitektur der de fleste av OS-komponentene er uavhengige programmer. Interaksjon mellom dem er sikret av en mikrokjerne som opererer i privilegert modus. Den utfører også CPU-planlegging, avbruddshåndtering, I/O-operasjoner og grunnleggende minneadministrasjon.

Blandede systemer. I de fleste tilfeller bruker moderne operativsystemer ulike kombinasjoner av de ovennevnte tilnærmingene.

OS har sin egen klassifisering:


  • i henhold til formål (generelt, spesielt),

  • etter oppgavebehandlingsmodus (enkeltoppgave, multiprogram),

  • ved metoden for interaksjon med systemet (samtale, med batchbehandling)

  • etter konstruksjonsmetoder (diskutert ovenfor)
Det er en rekke krav til operativsystemene til moderne datamaskiner. Hovedkravet er å utføre de grunnleggende funksjonene for effektiv ressursstyring og gi et praktisk grensesnitt for brukeren og applikasjonsprogrammene. Et moderne OS må støtte multi-program prosessering, virtuelt minne, bytte, et utviklet brukergrensesnitt (multi-window grafisk, lyd, meny-orientert, etc.), høy grad beskyttelse, brukervennlighet, og utfører også mange andre nødvendige funksjoner og tjenester. I tillegg til disse kravene til funksjonell fullstendighet, er operativsystemet underlagt en rekke viktige driftskrav.

  • Effektivitet.

  • Pålitelighet og feiltoleranse.

  • Sikkerhet (sikkerhet).

  • Forutsigbarhet.

  • Utvidbarhet.

  • Bærbarhet.

  • Kompatibilitet.

  • Bekvemmelighet.

  • Skalerbarhet.

  1. Konseptet med en prosess, dens tilstand, en prosessrepresentasjonsmodell i operativsystemet og operasjoner som kan utføres på prosesser av operativsystemet.
Konseptet med en prosess karakteriserer et visst sett med utførelseskommandoer, tilhørende ressurser og det nåværende tidspunktet for utføringen, som er under kontroll av operativsystemet. Til enhver tid er prosessen fullstendig beskrevet av sin kontekst, bestående av register-, system- og brukerdeler.

Prosesser kan være i fem hovedtilstander:


  • fødsel,

  • beredskap,

  • henrettelse,

  • forventning,

  • ferdig forestilling
I et operativsystem er prosesser representert av en bestemt datastruktur som inneholder følgende informasjon(varierer for forskjellige OS):

  • tilstanden prosessen er i;

  • adressen til kommandoen som skal utføres neste gang for den;

  • innholdet i prosessorregistrene;

  • data som trengs for CPU-planlegging og minneadministrasjon;

  • legitimasjon;

  • informasjon om I/O-enhetene knyttet til prosessen.
En prosess overføres fra stat til stat av operativsystemet som et resultat av operasjoner utført på den. Operativsystemet kan utføre følgende operasjonspar på prosesser:

  • prosessoppretting - prosessavslutning,

  • suspendere en prosess - starte en prosess,

  • blokkering av en prosess - oppheve blokkering av en prosess,

  • endre prioritet til en prosess.


  1. Nivåer av prosessplanlegging i operativsystemer. Hovedmålene og kriteriene for planlegging og parametrene den er basert på. Planleggingsalgoritmer.
Planlegging er arbeidet med å bestemme på hvilket tidspunkt å avbryte utførelsen av én prosess og hvilken prosess som skal tillates å kjøre.

Når du konstruerer planleggingsalgoritmer, skilles det mellom tre forskjellige nivåer:


  • langsiktig;

  • kortsiktig;

  • mellomlang sikt.
Målene inkluderer følgende:

  • Rettferdighet.

  • Effektivitet.

  • Reduser den totale utførelsestiden.

  • Redusert ventetid.

  • Redusert responstid.
Planleggingskriterier:

  • Forutsigbarhet.

  • Minimale overheadkostnader.

  • Ensartet lasting av datasystemressurser

  • Skalerbarhet
Planleggingsalternativer:

  • Statisk – grenseverdier for systemressurser: RAM-størrelse, maksimalt beløp diskminne for bytte, antall tilkoblede I/O-enheter osv.

  • Dynamisk – verdier av systemressurser for øyeblikket.
Planleggingsalgoritmer

FCFS. Den opererer etter førstemann til mølla-prinsippet. Fordelen med FCFS-algoritmen er den enkle implementeringen; ulempene er at gjennomsnittlig ventetid og gjennomsnittlig total utførelsestid for denne algoritmen avhenger betydelig av rekkefølgen på prosessene i køen.

RoundRobin. I hovedsak er dette en algoritme FCFS, bare implementert i den forebyggende planleggingsmodusen (den neste prosessen overføres til utførelse i henhold til en tidtaker etter at en viss tidsdel er utløpt).

ShortestJobFirst. Hvis du velger en prosess ute av drift (som i FCFS Og R.R.), og basert på minimumstiden kontinuerlig bruk prosessor, vil dette forbedre ytelsen til prosessorplanleggingsalgoritmen. Den beskrevne algoritmen kalles "korteste jobb først." ShortestJobFirst, S.J.F.).

Den største vanskeligheten med å implementere algoritmen S.J.F. representerer umuligheten av å vite nøyaktig i hvert tilfelle utførelsestiden for neste prosess.


  1. Prosesssamarbeid og hovedaspektene ved dets logiske organisering (autorisert samhandling av prosesser)
For normal funksjon av prosesser prøver operativsystemet å isolere dem fra hverandre så mye som mulig. Imidlertid er det grunner til deres samhandling:

  • Økt arbeidshastighet.

  • Datadeling.

  • Modulær design av ethvert system.

  • Brukererfaring
Kategorier av informasjonsutvekslingsmedier

  • Signal.

  • Kanal.

  • Delt minne.
Logisk organisering av informasjonsoverføringsmekanismen

Etablere en forbindelse. Ved bruk av direkte adressering etableres kommunikasjon mellom prosesser i et klassisk operativsystem automatisk, uten ekstra initialiseringstrinn. Ved bruk av indirekte adressering kan det hende at initialisering av kommunikasjonsmediet ikke er nødvendig. Informasjonen som en prosess må ha for å samhandle med andre prosesser er en viss identifikator for et mellomobjekt for lagring av data, med mindre det selvfølgelig er den eneste i datasystemet for alle.

Informasjonsvalens av prosesser og miljøerdstv svide. Med direkte adressering kan kun ett fast kommunikasjonsmedium brukes til å kommunisere mellom to prosesser, og kun de to prosessene kan assosieres med det. Med indirekte adressering kan det være mer enn to prosesser som bruker samme objekt for data, og mer enn ett objekt kan brukes av to prosesser.

Funksjoner ved informasjonsoverføring ved hjelp av kommunikasjonslinjer

Bufring


  • Bufferen har null kapasitet eller mangler.

  • Buffer med begrenset kapasitet.

  • Buffer med ubegrenset kapasitet.
I/O-tråd og meldinger

  • I/O-strøm. Sende-/mottaksoperasjoner er ikke interessert i datainnhold

  • Meldinger. Prosesser legger en viss struktur på dataene de overfører. De deler opp hele informasjonsstrømmen i separate meldinger.
Pålitelighetdstv svide. Overføring av data gjennom delt minne er en pålitelig metode for kommunikasjon. I andre tilfeller må påliteligheten forbedres.

Avslutter forbindelsen. For kommunikasjonsmetoder som ikke innebar noen initialiseringshandlinger, trenger du vanligvis ikke gjøre noe spesielt for å avslutte interaksjonen. Hvis etableringen av St. krever litt initialisering, må ressursfrigjøringsoperasjoner utføres.


  1. Synkroniseringsalgoritmer (algoritmer for riktig organisering av prosessinteraksjon).
Kritisk seksjon

En kritisk seksjon er en del av et program hvis kjøringsresultat kan endres uforutsigbart hvis variabler relatert til det endres av andre tråder mens kjøringen av denne delen ennå ikke er fullført. I eksemplet er den kritiske delen "ordre"-filen, som er en delt ressurs for prosessene R og S.

Dekkers algoritme- den første kjente riktige løsningen på problemet med gjensidig eksklusjon.

Hvis to prosesser prøver å gå inn i den kritiske delen samtidig, vil algoritmen bare tillate en av dem å gjøre det, basert på hvem sin kø den er i det øyeblikket. Hvis en prosess allerede har gått inn i den kritiske delen, vil den andre vente til den første forlater den. Dette implementeres ved å bruke to flagg (indikatorer for "hensikten" for å gå inn i den kritiske delen) og svingvariabelen (som indikerer hvilken prosess tur har kommet).

Prosesser kunngjør sin intensjon om å gå inn i den kritiske delen; dette sjekkes av den ytre "mens"-løkken. Hvis en annen prosess ikke har erklært en slik intensjon, kan den kritiske delen trygt gå inn (uavhengig av hvem sin tur det er). Gjensidig ekskludering vil fortsatt være garantert, siden ingen prosess kan gå inn i den kritiske delen før dette flagget er satt (som antyder at minst én prosess vil gå inn i "mens"-sløyfen). Dette garanterer også fremgang siden det ikke vil være noen venting på at prosessen forlater "intensjonen" om å gå inn i den kritiske delen. Ellers, hvis en annen prosess variabel har blitt satt, skriv inn en "while"-løkke og turn-variabelen vil indikere hvem som har lov til å gå inn i den kritiske delen. En prosess hvis tur ikke har kommet, etterlater intensjonen om å gå inn i den kritiske delen til dens tur kommer (indre "mens"-løkke). Prosessen hvis tur har kommet vil gå ut av "mens"-sløyfen og gå inn i den kritiske delen.

Krever ikke spesielle test-og-sett-instruksjoner, så det er enkelt å overføre til forskjellige programmeringsspråk og datamaskinarkitekturer

Kun gyldig for to prosesser

Petersons algoritme- programvarealgoritme for gjensidig ekskludering av kodeutførelsestråder.

Før du utfører en kritisk del av koden (det vil si kode som får tilgang til beskyttede delte ressurser), må en tråd kalle en spesiell prosedyre (la oss kalle det EnterRegion) med nummeret som parameter. Den må sørge for at en tråd venter på at køen skal gå inn i den kritiske delen. Etter å ha utført den kritiske delen og forlatt den, kaller tråden en annen prosedyre (la oss kalle den LeaveRegion), hvoretter andre tråder vil kunne gå inn i den kritiske regionen. Hvis begge prosessene nærmer seg prologen nesten samtidig, vil de begge kunngjøre at de er klare og tilby å henrette hverandre. Dessuten kommer alltid en av setningene etter den andre. Arbeidet på det kritiske området vil derfor fortsatt bli utført av prosessen som det siste forslaget ble fremmet til.

I likhet med Dekkers algoritme fungerer den bare for 2 prosesser

Mer enkel implementering enn Deckers algoritme

Bakeri algoritme. Petersons algoritme gir oss en løsning på problemet med å organisere samspillet mellom to prosesser riktig. La oss nå vurdere den tilsvarende algoritmen for n kommunikasjonsprosesser.

Hver nyankomne prosess mottar en etikett med et nummer. Prosessen med det laveste etikettnummeret serveres deretter. Dessverre, på grunn av den ikke-atomiske karakteren av operasjonen med å beregne neste tall, garanterer ikke bakerialgoritmen at alle prosesser vil ha etiketter med forskjellige tall. Hvis to eller flere prosesser har like etikettnummer, serveres klienten med den laveste navneverdien først (navn kan sammenlignes i leksikografisk rekkefølge). De delte datastrukturene for algoritmen er to matriser


  1. Spesielle synkroniseringsmekanismer - Dijkstra semaforer, Chorus-monitorer, meldingskøer.
Semaforer

For å eliminere denne ulempen tilbyr mange operativsystemer spesielle systemanrop (en enhet for å jobbe med kritiske seksjoner.

Ulike operativsystemer implementerer hendelsesapparatet forskjellig, men i alle fall brukes systemfunksjoner, som konvensjonelt kalles WAIT(x) og POST(x), der x er identifikatoren til en hendelse (for eksempel ressursfrigjøring).

En generell måte å synkronisere prosesser på ble foreslått av Dijkstra, som introduserte nye primitiver, betegnet V («åpning») og P («lukking»), som opererer på heltalls ikke-negative variabler kalt semaforer.

Enhver prosess kan få tilgang til semaforen, bortsett fra på tidspunktet for initialiseringen, bare gjennom disse to atomoperasjonene.

Meningen med P(S) er å sjekke gjeldende verdi av semaforen S, og hvis S>0, så er overgangen til neste operasjon etter primitivet utført, ellers går prosessen inn i en ventetilstand.

Prosessen er blokkert; S=S-1;

Operasjonen V(S) er assosiert med å øke verdien av S med 1 og å plassere en eller flere prosesser i en tilstand klar for utførelse av prosessoren.

I enkel sak, når semaforen opererer i 2-tilstandsmodus (S>0 og S=0), faller driftsalgoritmen fullstendig sammen med mutex-operasjonsalgoritmen, og S fungerer som en blokkeringsvariabel.

"+": passiv venting (kø og automatisk distribusjon av ressurser)


  • evne til å forvalte en gruppe homogene ressurser
"-": ikke pek direkte på en kritisk ressurs

  • feil bruk av operasjoner kan føre til funksjonsfeil (for eksempel ved å bytte ut operasjoner P(e) og P(b) i Writer()-funksjonen).
Skjermer

For å lette arbeidet til programmerere når de lager parallelle programmer uten anstrengelser for å bevise riktigheten av algoritmer og spore sammenkoblede objekter (som er typisk ved bruk av semaforer), foreslås et synkroniseringsverktøy på høyt nivå kalt monitorer.

Monitorer er en datatype som har sine egne variabler, hvis verdier bare kan endres ved å kalle monitorfunksjonsmetoder.

Metodefunksjoner kan bare bruke data som ligger inne i monitoren og deres parametere.

Bare én prosess har tilgang til monitorer om gangen.

For å organisere ikke bare gjensidig ekskludering, men også rekkefølgen av prosesser, som semaforene f(full) og e(tom), ble begrepet betingede variabler introdusert som to operasjoner, vente og signal, kan utføres på, noe som ligner på operasjonene P og V på semaforer.

Monitorfunksjonen utfører en venteoperasjon på en tilstandsvariabel. I dette tilfellet blir prosessen som utførte venteoperasjonen blokkert, blir inaktiv, og en annen prosess kan gå inn på skjermen.

Når den forventede hendelsen inntreffer, utfører en annen prosess inne i funksjonen en signaloperasjon på samme tilstandsvariabel. Dette fører til at den tidligere blokkerte prosessen våkner og blir aktiv.

Å ekskludere flere prosesser fra å gå inn i monitoren implementeres av kompilatoren i stedet for programmereren, noe som gjør feil mindre sannsynlig.

Spesielle programmeringsspråk og kompilatorer kreves (finnes i språk som "parallell Euclid", "parallel Pascal", Java).

Det skal bemerkes at monitortilstandsvariabler ikke husker historikk, så signaloperasjonen må alltid utføres etter venteoperasjonen (ellers vil venteoperasjonen alltid føre til blokkering av prosessen).

Meldingskøer

Meldingskømekanismen lar prosesser og tråder utveksle strukturerte meldinger. En eller flere prosesser kan uavhengig sende meldinger til en mottakerprosess.

Meldingskøen gir mulighet til å bruke flere meldingsbehandlingsdisipliner (FIFO, LIFO, prioritert tilgang, tilfeldig tilgang).

Når du leser en melding fra en kø, fjernes ikke meldingen fra køen, og meldingen kan leses flere ganger.

Køen inneholder ikke selve meldingene, men deres adresser i minne og størrelse. Denne informasjonen plasseres av systemet i et minnesegment som er tilgjengelig for alle oppgaver som kommuniserer ved hjelp av denne køen.

Hovedfunksjoner for køhåndtering:


  • Opprette en ny kø

  • Åpne en eksisterende kø

  • Lese og slette meldinger fra en kø

  • Leser uten ytterligere sletting

  • Legger til en melding i en kø

  • Avslutter købruk

  • Fjern alle meldinger fra køen

  • Bestemme antall elementer i en kø

  1. Vreklås, vranglås, system fryser

Side 1

Når vi vurderer utviklingen av operativsystemet, bør det tas i betraktning at forskjellen i tidspunktet for implementering av noen prinsipper for organisering av individuelle operativsystemer før deres generelle anerkjennelse, så vel som terminologisk usikkerhet, ikke tillater oss å gi en eksakt kronologi av utviklingen av OS. Imidlertid er det nå mulig å bestemme de viktigste milepælene i utviklingen av operativsystemer ganske nøyaktig.

Det er også forskjellige tilnærminger til å bestemme OS-generasjoner. Det er kjent å dele operativsystemet inn i generasjoner i samsvar med generasjonene av datamaskiner og systemer [, ,]. Denne inndelingen kan ikke betraktes som helt tilfredsstillende, siden utviklingen av metoder for å organisere et OS innen en generasjon datamaskiner, som erfaringen med opprettelsen deres har vist, ligger i et ganske bredt spekter. Et annet synspunkt forbinder ikke OS-generasjonen med de tilsvarende datamaskingenerasjonene. For eksempel er det kjent å definere OS-generasjoner i henhold til nivåene på datamaskinens inndataspråk, bruksmåter for sentrale prosessorer, former for systemdrift, etc.

Tilsynelatende bør det anses som det mest hensiktsmessige å skille stadier av OS-utvikling innenfor individuelle generasjoner av datamaskiner og datamaskiner.

Den første fasen i utviklingen av systemprogramvare kan betraktes som bruk av bibliotekprogrammer, standard- og verktøysubrutiner og makrokommandoer. Konseptet med rutinebibliotek er det tidligste, og dateres tilbake til 1949. Med bruken av biblioteker ble det utviklet automatiske midler for å vedlikeholde dem - loader-programmer og lenkeredigerere. Disse verktøyene ble brukt i førstegenerasjons datamaskiner, da operativsystemer som sådan ennå ikke eksisterte (fig. 3.2).

Ønsket om å eliminere avviket mellom ytelsen til prosessorer og driftshastigheten til elektromekaniske inngangs-/utgangsenheter, på den ene siden, og bruken av ganske høyhastighetsstasjoner på magnetbånd og trommer (NMR og NMB), og deretter på magnetiske disker (NMD), derimot, førte til behov for en løsning oppgaver med bufring og blokkering/oppheving av data. Spesielle tilgangsmetodeprogrammer oppsto som ble lagt til objektene til lenkeredigeringsmoduler (senere begynte prinsippene for polybuffering å bli brukt). Til opprettholde ytelsen Diagnoseprogrammer ble laget for å lette driften av maskiner. Dermed ble et grunnleggende system skapt programvare.


Ris. 3.2.

Med forbedringen av datamaskinens egenskaper og veksten av produktiviteten deres, ble mangelen på grunnleggende programvare (programvare) tydelig. Operativsystemer for tidlig batchbehandling – monitorer – dukket opp. Innenfor batchbehandlingssystemer i ledetid av noe arbeid i pakken (oversettelse, montering, kjøring av et ferdig program), var ingen del av systemprogramvaren i RAM, siden alt minne ble levert nåværende arbeid. Så dukket det opp monitorsystemer, 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 mellom objektmoduler).

Intensiv utvikling av datahåndteringsmetoder startet, og en så viktig OS-funksjon oppsto som implementering av I/O uten deltagelse av en sentral prosess – den såkalte spooling (fra engelske SPOOL – Simultaneous Peripheral Operation on Line).

Fremveksten av nye maskinvareutviklinger (1959-1963) - avbruddssystemer, tidtakere, kanaler - stimulerte videreutviklingen av OS [,]. Executive-systemer dukket opp, som var et sett med programmer for å distribuere dataressurser, kommunisere med operatøren, administrere dataprosessen og administrere input/output. Slike utøvende systemer gjorde det mulig å implementere en ganske effektiv form for drift av et datasystem for den tiden - enkeltprogram batchbehandling. Disse systemene ga brukeren verktøy som sjekkpunkter, logiske tidtakere og muligheten til å bygge programmer overleggsstruktur, oppdagelse av brudd restriksjonsprogrammer vedtatt i system, filbehandling, innsamling av regnskapsinformasjon mv.

Imidlertid kunne enkeltprogram batch-behandling med økende datamaskinproduktivitet ikke gi et økonomisk akseptabelt nivå av maskindrift. Løsningen ble multiprogrammering- en metode for å organisere en dataprosess der datamaskinminnet inneholder flere programmer som vekselvis kjøres av én prosessor, og for å starte eller fortsette å telle ett program krever ikke fullføring av andre. I et multiprogrammiljø har ressursallokering og sikkerhetsproblemer blitt mer akutte og vanskelige å løse.

Teorien om å bygge operativsystemer i denne perioden ble beriket med en rekke fruktbare ideer. Ulike former for flerprogramdriftsmoduser har dukket opp, inkludert tidsdeling– modus som sikrer drift flerterminalsystem. Konseptet med virtuelt minne og deretter virtuelle maskiner ble skapt og utviklet. Tidsdelingsmodus tillot brukeren å interagere interaktivt med programmene sine, slik tilfellet var før bruken av batchbehandlingssystemer.

Et av de første operativsystemene som brukte disse siste løsningene var operativsystem MSR (hoved kontrollprogram), opprettet av Burroughs for sine B5000-datamaskiner i 1963. Dette operativsystemet implementerte mange konsepter og ideer som senere ble standard for mange operativsystemer (fig. 3.3):

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

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

En av store hendelser I operativsystemets historie vurderes utseendet i 1964 til en familie av datamaskiner kalt System / 360 fra IBM, og senere System / 370. Dette var verdens første implementering av konseptet med en familie av programvare- og informasjonskompatible datamaskiner, som senere ble standard for alle selskaper i dataindustrien.


Ris. 3.3.

Det skal bemerkes at hovedformen for datamaskinbruk er både i tidsdelingssystemer og i batchbehandlingssystemer, ble en multi-terminal modus. Samtidig var ikke bare operatøren, men også alle brukere i stand til å formulere sine oppgaver og administrere utførelsen fra sin terminal. Siden terminalkomplekser snart ble mulig å plassere i betydelige avstander fra datamaskinen (takket være modemtelefonforbindelser), eksterne jobbinnføringssystemer og telebehandling. Moduler som implementerer kommunikasjonsprotokoller er lagt til OS.

På dette tidspunktet hadde det skjedd en betydelig endring i funksjonsfordelingen mellom maskinvare og programvare og programvare datamaskin. operativsystem blir "en integrert del av datamaskinen", som om en fortsettelse av utstyret. Prosessorene har nå privilegert (“Supervisor” i OS/360) og bruker (“Task” i OS/360) driftsmodus, kraftig system avbrudd, minnebeskyttelse, spesialregistre for rask programbytte, støtte for virtuelt minne, etc.

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

På midten av 70-tallet, sammen med stormaskiner, ble minidatamaskiner (PDP-11, Nova, HP) utbredt. Arkitekturen til minidatamaskiner var mye enklere; mange funksjoner til stormaskinens multiprogram-OS ble avkortet. Minidatamaskinoperativsystemer begynte å bli spesialisert ( RSX -11M - tidsdeling, RT-11 – sanntids OC) og ikke alltid flerbruker.

En viktig milepæl i historien til minidatamaskiner og generelt i operativsystemets historie var etableringen av UNIX OS. Dette systemet ble skrevet av Ken Thompson, en av dataspesialistene ved BELL Labs som jobbet med MULTICS-prosjektet. Faktisk er UNIX-en hans en avkortet enkeltbrukerversjon av MULTICS-systemet. Det opprinnelige navnet på dette systemet er UNICS (UNiplexed Information and Computing Service) - "primitiv informasjon og datatjeneste." Dette systemet ble navngitt så spøkefullt, siden MULTICS (MULTiplexed Information and Computing Service) er en multipleks informasjons- og datatjeneste. Det startet på midten av 70-tallet massebruk UNIX OS, skrevet 90% i C. Den utbredte bruken av C-kompilatorer gjorde UNIX til et unikt bærbart OS, og siden det kom med kildekode ble det det første åpne operativsystemet. Fleksibilitet, eleganse, kraftig funksjonalitet og åpenhet har tillatt den å ta en sterk posisjon i alle klasser av datamaskiner - fra personlige datamaskiner til superdatamaskiner.

Tilgjengeligheten av minidatamaskiner stimulerte etableringen av lokale nettverk. 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 kom med TCP/IP-protokollstabelen. I 1983 ble den tatt i bruk av US DoD som en standard og brukt på ARPANET. Samme år delte ARPANET seg i MILNET (for den amerikanske militæravdelingen) og det nye ARPANET, som ble kjent som Internett.

Hele åttitallet var preget av fremveksten av stadig mer avanserte versjoner av UNIX: Sun OS, HP-UX, Irix, AIX, etc. For å løse problemet med deres kompatibilitet ble POSIX- og XPG-standarder tatt i bruk, som definerer grensesnittene til disse systemene for applikasjoner.

En annen viktig hendelse i operativsystemets historie var fremveksten av personlige datamaskiner på begynnelsen av 80-tallet. Det fungerte som en kraftig drivkraft for distribusjon av lokale nettverk, som et resultat ble støtte for nettverksfunksjoner tilgjengelig for PC OS en nødvendig betingelse. Både et brukervennlig grensesnitt og nettverksfunksjoner dukket imidlertid ikke opp på PC OS med en gang.

Mest populære OS-versjon tidlig stadie utvikling av personlige datamaskiner var Microsofts MS-DOS - et enkeltprogram, enkeltbruker OS med et kommandolinjegrensesnitt. Mange funksjoner som sikrer brukervennlighet i dette operativsystemet ble levert av tilleggsprogrammer - Norton Commander-skallet, PC-verktøy osv. Den største innflytelsen på utviklingen av PC-programvare ble utøvd av driftsmiljø Windows, den første versjonen av dem dukket opp i 1985. Nettverksfunksjoner ble også implementert ved hjelp av nettverksskall og dukket opp i MS-DOS versjon 3.1. Samtidig på nett Microsoft-produkter– MS-NET og senere – LAN Manager, Windows for Workgroup og deretter Windows NT.

Novell tok en annen vei; NetWare-produktet er et operativsystem med innebygde nettverksfunksjoner. NetWare OS ble distribuert som