Utviklingen av operativsystemer. Utvikling av operativsystemer til ulike typer datamaskiner


All-Russian Correspondence Financial and Economic Institute

Fakultet: finans - kreditt

Spesialitet: økonomi og kredittkveldsgruppe

Kursarbeid

I faget "Informatikk"

Om temaet «Formål, klassifisering og evolusjon operativsystemer»

Moskva - 2008

Introduksjon
1 Formål med operativsystemer 5

2 La oss liste opp hovedfunksjonene til operativsystemer 9

2.2 Service på alle I/O-operasjoner 9

3 Evolusjon og klassifisering av OS
Konklusjon 2
Referanser 22

Introduksjon

Operativsystemet (OS) er grunnlaget for systemprogramvaren, som kontrollerer den første oppstarten av datamaskinen, styrer driften av alle enhetene og kontrollerer funksjonaliteten deres, administrerer datamaskinens filsystem, laster brukerapplikasjoner og fordeler datamaskinressurser mellom dem , støtter brukergrensesnittet osv. Velkjente familier av operativsystemer inkluderer DOS, WINDOWS, UNIX, NETWARE, etc.

Et operativsystem (OS) er 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 dens rasjonelle administrasjon av ressursene.

Dataprosessoren utfører instruksjoner gitt på maskinspråk. Direkte forberedelse av slike kommandoer krever at brukeren har kunnskap om språket og spesifikasjonene for konstruksjon og samhandling av maskinvare. Så, for eksempel, for å få tilgang til informasjon som er lagret på et magnetisk medium, er det nødvendig å indikere blokknumrene på disken og sektornumrene på sporet, bestemme tilstanden til motoren til mekanismen for å flytte utlesningsopptakshodene , oppdage tilstedeværelse og typer feil, utføre sine analyser, etc. Krev denne kunnskapen fra alle brukere er nesten umulig. Derfor oppsto behovet for å lage et OS - et sett med programmer som skjuler funksjonene til den fysiske plasseringen av informasjon for brukeren og utfører avbruddsbehandling, timerstyring og RAM. Som et resultat får brukeren en virtuell maskin som implementerer arbeid på det logiske nivået.

1 Formål med operativsystemer

Operativsystemer refererer til systemprogramvare. All programvare er delt inn i system og applikasjon. Systemprogramvare inkluderer vanligvis slike programmer og programkomplekser som er vanlige, uten hvilke det er umulig å kjøre eller lage andre programmer. Historien om fremveksten og utviklingen av systemprogramvare begynte fra det øyeblikket folk innså at et hvilket som helst program krever datainn-/utdataoperasjoner. Dette skjedde i det fjerne 50-tallet av forrige århundre. Selve operativsystemene dukket opp litt senere.

På samme måte kan resultatet av resultatene organiseres, for eksempel på passende enheter og i en form som er praktisk for menneskelig oppfatning. Eller beregningsresultatene vil bli sendt av programmet til noen aktuatorer som styres av en datamaskin. Til slutt kan vi organisere registreringen av de oppnådde verdiene på noen datalagringsenheter (for videre behandling av dem).

I/O-programmering er et av de mest tidkrevende områdene innen programvareutvikling. Dette handler ikke om å bruke utsagn som READ eller WRITE på høynivåspråk. Vi snakker om behovet for å lage et underprogram i maskinform, klart for kjøring på en datamaskin, og ikke skrevet ved hjelp av et programmeringssystem (det fantes ingen programmeringssystemer på den tiden), et underprogram som, i stedet for konvensjonelle beregninger, kontrollerer enhet som skal delta i input operasjonsdata eller konklusjoner av resultater. Hvis det er en slik subrutine, kan programmereren få tilgang til den så mange ganger som antall I/O-operasjoner med denne enheten han trenger. For å utføre dette arbeidet er det ikke nok for en programmerer å ha god kjennskap til arkitekturen til datakomplekset og kunne lage programmer i assemblerspråk. Han må perfekt kjenne både grensesnittet som enheten er koblet til den sentrale delen av datamaskinen med, og algoritmen for driften av I/O-enhetskontrollenheten.

Åpenbart var det fornuftig å lage et sett med rutiner for å administrere I/O-operasjoner og bruke dem i programmene dine, for ikke å tvinge programmerere til å omprogrammere alle disse operasjonene hver gang. Det var her historien til systemprogramvaren begynte. Deretter begynte et sett med input-output-rutiner å bli organisert i form av et spesielt input-output-bibliotek, og så dukket selve operativsystemene opp. Hovedårsaken til deres utseende var ønsket om å automatisere prosessen med å forberede et datakompleks for programkjøring.

På 50-tallet var brukerinteraksjonen med datasystemet en helt annen enn den er nå. En programmerer-koder (fra engelsk coder - encoder) - en spesialutdannet spesialist som kjenner arkitekturen til datamaskinen og programmeringsspråket - kompilerte teksten til programmet på forespørsel, ofte ved hjelp av en ferdig algoritme utviklet av en programmerer-algoritmist. Teksten til dette programmet ble deretter gitt til operatøren, som skrev den på spesielle enheter og overførte den til det aktuelle mediet. Oftest ble hullkort eller hullbånd brukt som media. Deretter ble kortstokken med hullkort overført til datarommet, hvor det var nødvendig for beregninger med dette programmet følgende handlinger:

1. Operatøren av datamaskinkomplekset fra fjernkontrollen la inn i arbeidsregistrene til sentralprosessoren og i datamaskinens RAM det første programmet som gjorde det mulig å lese inn i minnet et program for å oversette kildekoder og skaffe en maskin (binær) program (med andre ord en oversetter, som også ble lagret på hullkort eller hullbånd).

2. Oversetteren leste kildeprogrammet, utførte leksikalsk analyse av kildeteksten, og mellomresultatene av oversettelsesprosessen ble ofte også utskrevet til hullkort (hullbånd). Oversettelse er en kompleks prosess som ofte krever flere bestått. Noen ganger, for å utføre neste pass, var det nødvendig å laste både neste del av oversetteren og mellomresultatene av oversettelsen fra hullkort inn i datamaskinens minne. Tross alt ble resultatet av sendingen også vist på lagringsmedier, siden mengden RAM var liten, og oppgaven med å kringkaste var veldig vanskelig oppgave.

3. Operatøren lastet de mottatte binære kodene til det oversatte programmet inn i datamaskinens RAM og lastet inn de binære kodene til de systemunderrutinene som kontrollerte input-output operasjoner. Etter dette kunne det ferdige programmet, som ligger i minnet, selv lese kildedataene og utføre de nødvendige beregningene. Hvis det ble oppdaget feil på et av disse stadiene eller etter å ha analysert de oppnådde resultatene, måtte hele syklusen gjentas.

For å automatisere arbeidet til en programmerer (koder), begynte det å utvikles spesielle algoritmiske språk på høyt nivå, og for å automatisere arbeidet til en datamaskinkompleksoperatør ble det utviklet et spesielt kontrollprogram ved å laste det inn i minnet én gang, operatøren kunne deretter bruke den gjentatte ganger og ikke lenger trenger å referere til dataprogrammeringsprosedyren via fjernkontrollen. Det var dette kontrollprogrammet som kom til å hete operativsystemet. Over tid begynte flere og flere oppgaver å bli tildelt den, og den begynte å vokse i volum. Først og fremst forsøkte utviklerne å sikre at operativsystemet distribuerte datamaskinens dataressurser så effektivt som mulig, fordi operativsystemene allerede på 60-tallet gjorde det mulig å organisere parallell kjøring av flere programmer. I tillegg til problemene med ressursfordeling, har det dukket opp problemer med å sikre påliteligheten til beregninger. På begynnelsen av 70-tallet ble den interaktive modusen for å jobbe med en datamaskin dominerende, og operativsystemene begynte raskt å utvikle grensesnittfunksjoner. Begrepet grensesnitt betyr hele komplekset spesifikasjoner som definerer en spesifikk måte en bruker kan samhandle med en datamaskin.

I dag kan det slås fast at operativsystemet (OS) er et sett med systemkontroll- og prosesseringsprogrammer, som på den ene siden fungerer som et grensesnitt mellom maskinvaren og brukeren med sine oppgaver, og på den andre siden. er designet for den mest effektive bruken av ressurser databehandlingssystem og organisering av pålitelig databehandling.

2 Vi lister opp hovedfunksjonene til operativsystemer

Mottak av brukeren (eller systemoperatøren) av oppgaver, eller kommandoer formulert på riktig språk, og behandlingen av dem. Oppgaver kan overføres i form av tekstdirektiver (kommandoer) fra operatøren eller i form av instruksjoner utført ved hjelp av en manipulator (for eksempel ved hjelp av en mus). Disse kommandoene er assosiert med å starte (pause, stoppe) programmer, med operasjoner på filer (få en liste over filer i gjeldende katalog, opprette, gi nytt navn, kopiere, flytte en bestemt fil, etc.), selv om det også finnes andre kommandoer.

Minnetildeling, og i de fleste tilfeller moderne systemer og organisering av virtuelt minne.

Kjøre et program (overføre kontroll til det, få prosessoren til å kjøre programmet).

Motta og bruk ulike forespørsler fra kjørende applikasjoner. Operativsystemet kan yte veldig et stort nummer av systemfunksjoner (tjenester) som kan bestilles fra et kjørende program. Disse tjenestene får tilgang i henhold til de aktuelle reglene som definerer Application Program Interface (API) til dette operativsystemet.

2.2 Vedlikehold av alle I/O-operasjoner

Sikre driften av filhåndteringssystemer (FMS) og/eller databasestyringssystemer (DBMS), som kan øke effektiviteten til all programvare dramatisk.

Tilby multiprogrammeringsmodus, det vil si å organisere den parallelle kjøringen av to eller flere programmer på en prosessor, og skape inntrykk av deres samtidige kjøring.

Planlegging og utsendelse av oppgaver i samsvar med de som er spesifisert mellom kjørende programmer.

Nettverksoperativsystemer er preget av funksjonen til å sikre samspillet mellom sammenkoblede datamaskiner.

Organisering av mekanismer for utveksling av meldinger og data mellom kjørende programmer.

Beskytte ett program fra påvirkning fra et annet, sikre datasikkerhet, beskytte selve operativsystemet fra applikasjoner som kjører på datamaskinen.

Brukerautentisering og autorisasjon (for de fleste interaktive operativsystemer). Autentisering refererer til prosedyren for å sjekke en brukers navn og passord mot verdiene som er lagret på kontoen hans. Selvfølgelig, hvis en brukers påloggingsnavn og passord er det samme, vil det mest sannsynlig være den samme brukeren. Begrepet autorisasjon betyr at det iht regnskap En autentisert bruker blir tildelt visse rettigheter (privilegier) som bestemmer hva han kan gjøre på datamaskinen (og alle forespørsler som vil bli sendt til operativsystemet på hans vegne).

Oppfyller strenge begrensninger for responstid i sanntid (typisk for et sanntids OS).

Sikre driften av programmeringssystemer som brukerne forbereder sine programmer med.

Tilbyr tjenester i tilfelle delvis systemfeil.

Operativsystemet isolerer maskinvaren fra brukerens applikasjonsprogrammer. Både brukeren og hans programmer samhandler med datamaskinen gjennom operativsystemgrensesnitt.

3 Evolusjon og klassifisering av OS

Utviklingen av operativsystemet skyldes i stor grad forbedringen av maskinvare.

Programmering av rørdataenheter rettet mot å løse spesialiserte applikasjonsproblemer ble utført på maskinspråk (et programmeringsspråk som representerer et program i en form som gjør at det kan utføres direkte ved hjelp av tekniske databehandlingsmidler). Organisasjon databehandlingsprosess i dette tilfellet ble det utført manuelt av vedlikeholdspersonell fra kontrollpanelet. Det var praktisk talt ingen operativsystemer for disse datamaskinene.

Datamaskiner bygget på halvlederelementer ble mer kompakte, pålitelige og ble brukt til å løse en bredere klasse av anvendte problemer. De første algoritmiske språkene, kompilatorene (kompilatorer er programmer som brukes til kompilering - oversettelse av et program skrevet på et algoritmisk språk til et språk nær maskinspråk) og batchbehandlingssystemer dukket opp. Disse systemene var prototypen til moderne operativsystemer. Hovedformålet deres er å øke prosessorbelastningen.

Overgang fra individ halvlederelementer type transistorer for integrerte kretser ble ledsaget av opprettelsen av familier av programvarekompatible maskiner, for eksempel IBM/360-familien, EC-datamaskiner. Operativsystemene til disse datamaskinene var orientert mot å betjene datasystemer med en rekke eksterne enheter og i ulike aktivitetsfelt. En funksjon ved slike operativsystemer er multiprogrammering - en metode for å organisere en databehandlingsprosess der flere applikasjoner vekselvis kjøres på en prosessor. For eksempel, mens en applikasjon utfører I/O-operasjoner, utfører prosessoren beregningsoperasjoner på en annen. Dannet ny type OS er et tidsdelingssystem som lar hver bruker skape en illusjon av å jobbe alene med datamaskinen. Fremkomsten av integrerte kretser i stor skala (LSI) og integrerte kretser i meget stor skala (VLSI) sørget for utbredt bruk av datamaskiner og deres bruk av ikke-programmeringsspesialister. Dette krevde utvikling av et vennlig, intuitivt programvaregrensesnitt. Utviklingen av kommunikasjonsmidler har ført til utviklingen av nettverksoperativsystemer.

Følgende krav gjelder for moderne operativsystemer:

Kompatibilitet - OS må inkludere verktøy for å kjøre applikasjoner forberedt for andre operativsystemer;

Portabilitet – sikrer muligheten til å overføre operativsystemet fra en maskinvareplattform til en annen;

Pålitelighet og feiltoleranse – innebærer å beskytte operativsystemet mot interne og eksterne feil, feil og feil;

Sikkerhet – OS må inneholde midler for å beskytte ressursene til noen brukere fra andre;

Utvidbarhet – OS skal gjøre det enkelt å gjøre påfølgende endringer og tillegg;

Ytelse – systemet må ha tilstrekkelig hastighet.

OS-klassifisering. Vanligvis skjer kommunikasjon mellom en bruker og en maskin interaktivt. I dette tilfellet bestemmes tempoet for problemløsning av brukerens reaksjon. Hvis vi tar brukerens reaksjonstid som konstant, kan vi anta at kompleksiteten til oppgaven er begrenset av hastigheten på tekniske midler (om nødvendig økes den med omfattende metoder: bruk av raskere maskinvarekomponenter, bruk av multiprosessor eller flermaskinsystemer). Men dette er en ensidig tilnærming. Store muligheter ligger i organisatoriske tiltak, som inkluderer valg av optimale driftsformer og tjenestedisipliner; begge er implementert av operativsystemer.

PC-driftsmoduser bestemmes først og fremst av antall oppgaver som løses parallelt på maskinen (programmer som implementeres). Basert på dette kriteriet er operativsystemer delt inn i multi-tasking og single-tasking, støtter og støtter ikke multi-threaded prosessering, multi-user og single-user, multi-prosessor og single-prosessor.

Basert på antall samtidig utførte oppgaver, skilles operativsystemene ut:

Operativsystemer med én oppgave (MS-DOS, tidlige versjoner av PS DOS);

Multitasking (OS/2, UNIX, Windows).

Operativsystemer med én oppgave gir brukeren en virtuell maskin og inkluderer filbehandlingsverktøy, perifere enheter og kommunikasjonsmidler med brukeren. Multitasking OSer administrerer i tillegg delingen av delte ressurser mellom oppgaver. Blant alternativene for å implementere multitasking, er det to grupper av algoritmer for å distribuere prosessortid:

Ikke-forebyggende multitasking (NetWare, Windows 3. x og 9. x);

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

I det første tilfellet, etter fullføring, overfører den aktive prosessen selv kontroll til OS for å velge en annen prosess fra køen. I den andre tas beslutningen om å bytte en prosess fra en prosess til en annen ikke av den aktive prosessen, men av OS.

Multi-threading-støtte innebærer muligheten til å utføre noen programkommandoer på nesten samme øyeblikk. Et multi-threaded OS deler prosessortid ikke mellom oppgaver, men mellom separate grener (tråder) av algoritmer for å løse dem (multitasking innenfor en oppgave).

Basert på antall samtidige brukere, skilles operativsystemene ut:

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

Flerbruker (UNIX, Windows NT).

Forskjellen mellom flerbrukersystemer er tilgjengeligheten av midler for å beskytte brukerinformasjon mot uautorisert tilgang.

Multiprosessering innebærer støtte for drift av flere prosessorer og er velkommen i Solaris 2. x OS fra Sun, OS/2 fra IBM, Windows NT fra Microsoft, NetWare 4.1. Novell osv.

Multiprosessoroperativsystemer er delt inn i asymmetriske og symmetriske. Et asymmetrisk OS kjører på en av systemprosessorene, og fordeler applikasjonsoppgaver på tvers av de gjenværende prosessorene. Et symmetrisk OS er desentralisert og bruker alle prosessorer, deler system- og applikasjonsoppgaver mellom seg.

Det er åpenbart at operativsystemet til en personlig datamaskin er mindre komplekst enn operativsystemet til stormaskiner og superdatamaskiner. Forskjellen mellom et nettverks-OS og et lokalt OS er måten å overføre data mellom datamaskiner over kommunikasjonslinjer og implementere dataoverføringsprotokoller, for eksempel IP, IPX, etc.

I tillegg til operativsystemer som er fokusert på en spesifikk type maskinvareplattform, finnes det mobile operativsystemer som enkelt kan overføres til forskjellige typer datamaskiner. I slike OS (for eksempel UNIX) er maskinvareavhengige steder lokalisert og når systemet overføres til ny plattform sender tekstmeldinger. Den maskinvareuavhengige delen er implementert i et programmeringsspråk på høyt nivå i C, og rekompileres ved flytting til en annen plattform.

Dynamisk omfordeling av PC-ressurser mellom flere oppgaver (kollektiv bruksmetode) sikrer enten en reduksjon i den totale tiden for å løse flere oppgaver, eller en reduksjon i starttidspunktet for oppgavebehandlingen. Begge med én "serviceenhet", for eksempel en prosessor eller skriver, oppnås ved å øke tiden det tar å løse én (hver) oppgave. Rekkefølgen på oppgavene i maskinen bestemmer implementeringsmodusene til metoden for kollektiv bruk: batchbehandling og tidsdeling. Batchbehandling innebærer å løse flere problemer i omtrent samme modus som en lærer jobber i under en muntlig eksamen - oppmerksomheten hans er opptatt av en av studentene. Etter fullføring av undersøkelsen går oppmerksomheten over til den neste (vi antar at det å betjene studenter er løsningen på problemet).

I tidsdelingsmodus er programkjøringsprosessen delt inn i sykluser. Inne i hver syklus vises nødvendigvis den grunnleggende oppgaven som denne syklusen er tildelt (hvis den ennå ikke er løst). De resterende problemene kan løses i samme syklus, hvis løsningen deres ikke forstyrrer løsningen til den grunnleggende. Naboløkker er tildelt for å løse forskjellige problemer, så tiden som kreves for å løse hver av dem øker betydelig. Samtidig brukes ikke mer enn N-1 sykluser på å vente på at neste del av oppgaven skal fullføres (N er antall forskjellige sykluser som er tildelt for å løse N forskjellige oppgaver). Med et passende valg av syklusvarighet, skaper brukeren (på grunn av sin treghet) en illusjon av å jobbe i sanntid. Sanntidsarbeid er en driftsmodus der det er maksimale begrensninger på tiden for å løse et problem pålagt av det ytre miljøet. For et kontrollsystem betyr dette at informasjonsbehandlingen må foregå med en hastighet som overstiger hastigheten til den faktiske kontrollerte prosessen, slik at det er en viss tid til å ta beslutninger og foreta passende kontrollhandlinger.

Det er typisk for reelle arbeidsforhold at øyeblikkene når oppgaver mottas for behandling, ikke bestemmes av driftshastigheten til serviceenheten (PC, skriver, etc.), men av prosesser som skjer utenfor den. I samsvar med dette må serviceenheten løse et visst sett med oppgaver (reaksjon på utstyrsfeil, søknad om kommunikasjon i nettverket, tvungen opprettelse sikkerhetskopi etc.).

Med den begrensede hastigheten til serviceenheten kan ikke innkommende forespørsler utføres umiddelbart, men settes i kø. Prosessen med å velge en forespørsel fra settet med de som venter på tjeneste kalles utsendelse, og utsendelsesregelen kalles tjenestedisiplin. Det er mange tjenestedisipliner, for eksempel «i rekkefølge av ankomst» (FIFO – First Input First Output), «i omvendt rekkefølge» (LIFO – Last Input First Output), etc. For å redusere ventetiden (tid brukt i kø) , individuelle forespørsler gis prioritetsrettigheter for tjeneste, kalt prioritet, som er preget av et positivt heltall. Den høyeste prioritet er tildelt OS.

Så når du lager binære maskinprogrammer, kan applikasjonsprogrammerere kanskje ikke engang vite mange av detaljene for å administrere spesifikke ressurser i et datasystem, men trenger bare å få tilgang til et bestemt programvareundersystem med de riktige samtalene og motta de nødvendige funksjonene og tjenestene fra det. Dette programvareundersystemet er operativsystemet, og settet med dets funksjoner og tjenester, samt reglene for tilgang til dem, utgjør det grunnleggende konseptet som vi kaller driftsmiljøet. Vi kan si at begrepet "operativmiljø" betyr de tilsvarende grensesnittene som er nødvendige for at programmer og brukere skal få tilgang til administrasjonsdelen (tilsyns-) av operativsystemet for å få visse tjenester.

Det er mange systemfunksjoner; de bestemmer mulighetene som operativsystemet gir til applikasjoner som kjører under dets kontroll. Disse typer systemforespørsler (oppkalling av systemoperasjoner eller funksjoner) er enten eksplisitt skrevet i programteksten av programmerere, eller settes inn automatisk av selve programmeringssystemet på stadiet for å oversette kildeteksten til programmet som utvikles. Hvert operativsystem har sitt eget utvalg av systemfunksjoner; de kalles tilsvarende, i henhold til reglene som er akseptert i systemet. Settet med systemanrop og reglene som de skal brukes etter, definerer applika(API). Det er klart at et program designet for å kjøre på ett operativsystem mest sannsynlig ikke vil fungere på et annet operativsystem, siden API-ene til disse operativsystemene er forskjellige. For å prøve å overvinne denne begrensningen begynte operativsystemutviklere å lage såkalte programvaremiljøer. Programvaremiljøet (system) skal forstås som et bestemt systemprogramvaremiljø som lar deg oppfylle alle systemforespørsler fra applikasjonsprogrammet. Systemprogramvaremiljøet som er direkte dannet av operativsystemkoden kalles hovedmiljøet, det naturlige eller det opprinnelige miljøet. I tillegg til hovedoperativmiljøet, kan ytterligere programvaremiljøer organiseres i operativsystemet (ved å emulere et annet operativsystem). Hvis operativsystemet organiserer arbeid med forskjellige operativsystemer, er det i et slikt system mulig å kjøre programmer som er opprettet ikke bare for dette, men også for andre operativsystemer. Vi kan si at programmer er laget for å fungere i et gitt driftsmiljø. Du kan for eksempel lage et program som skal kjøres i DOS-miljøet. Hvis et slikt program utfører alle funksjoner relatert til operasjoner med I/O-operasjoner og minneforespørsler ikke av seg selv, men ved å få tilgang til DOS-systemfunksjoner, vil det (i de aller fleste tilfeller) bli vellykket utført både i MS DOS og i PS DOS, og i Windows 9x, og i Windows 2000, og i OS/2, og til og med i Linux.

Så den parallelle eksistensen av begrepene "operativsystem" og "operativmiljø" skyldes det faktum at et operativsystem kan støtte flere operativsystemer. Nesten alle moderne 32-biters operativsystemer laget for personlige datamaskiner støtter flere driftsmiljøer. Dermed kan OS/2 Warp-operativsystemet, som en gang var et av de beste i denne forbindelse, kjøre følgende programmer:

Grunnleggende programmer opprettet under hensyntagen til det tilsvarende "native" 32-biters programmeringsgrensesnittet til dette operativsystemet;

16-biters programmer laget for førstegenerasjons OS/2-systemer;

16-bits applikasjoner designet for å kjøre på MS DOS eller PS DOS operativsystem;

16-bits applikasjoner laget for Windows 3. x-operativmiljøet;

Selve operasjonsskallet er Windows 3. x og allerede i det er det laget programmer for det.

Og operativsystemet Windows XP lar deg kjøre, i tillegg til hovedapplikasjonene som er opprettet med Win32API, 16-bits applikasjoner for Windows 3. x, 16-bits DOS-applikasjoner, 16-biters applikasjoner for den første versjonen av OS/2.

Operativmiljøet kan omfatte flere grensesnitt: bruker og programvare. Hvis vi snakker om brukere, for eksempel, har Linux-systemet begge grensesnittene for brukeren kommandolinje(du kan bruke forskjellige "shell" - skall), som Norton Commander, for eksempel X-Window med forskjellige vindusbehandlere - KDE, Gnome, etc. Hvis vi snakker om programvaregrensesnitt, deretter i de samme operativsystemene med en felles kalt Linux programmer kan få tilgang til både operativsystemet for passende tjenester og funksjoner, og grafikkundersystemet (hvis brukt). Fra prosessorarkitekturens synspunkt (og den personlige datamaskinen generelt), bruker et binært program laget for å kjøre i et Linux-miljø de samme kommandoene og dataformatene som et program laget for å kjøre i et Windows NT-miljø. Imidlertid har vi i det første tilfellet tilgang til ett driftsmiljø, og i det andre - til et annet. Og et program skrevet direkte for Windows vil ikke kjøre på Linux; Hvis et fullverdig Windows-operativmiljø er organisert i Linux OS, kan vårt Windows-program kjøres. Generelt er driftsmiljøet systemprogramvaremiljøet der programmer som er opprettet i henhold til driftsreglene for dette miljøet, kan kjøres.

Konklusjon

Så, operativsystemet utfører funksjonene til å administrere beregninger i en datamaskin, distribuerer datasystemressurser mellom ulike databehandlingsprosesser og danner programvaremiljøet der brukerapplikasjoner kjøres. Dette miljøet kalles et driftsmiljø. Sistnevnte skal forstås på den måten at når programmet startes, vil det kontakte operativsystemet med passende forespørsler om å utføre visse handlinger eller funksjoner. Operativsystemet utfører disse funksjonene ved å starte et spesielt system programvaremoduler, inkludert i sammensetningen.

I for tiden ca. 90 % av personlige datamaskiner bruker Windows OS, som har en rekke fordeler og har tvunget konkurrenter ut av dette markedssegmentet. En bredere klasse OS er målrettet for bruk på servere. Denne klassen av operativsystemer inkluderer: Unix-familien, utviklinger fra Microsoft, nettverksprodukter fra Novell og IBM Corporation.

Dataressurser inkluderer: prosessorer, minne, diskstasjoner, nettverkskommunikasjon, skrivere og andre enheter. Operativsystemets funksjon er å fordele disse ressursene rasjonelt mellom prosesser for å sikre maksimal effektivitet av datamaskinen.

Liste over brukt litteratur

Gordeev A.V. Operativsystemer: Lærebok for universiteter 2. utg. – St. Petersburg: Peter, 2005.

Grunnleggende om datavitenskap: Lærebok. godtgjørelse / A.N. Morozevich, N.N. Govyadinova, V.G. Levashenko og andre; Redigert av A.N. Morozevich. – 2. utgave, rev. – Mn.: Ny kunnskap, 2003.

Evsyukov V.V. Økonomisk informatikk: Proc. manual - Tula: Publishing House "Graf and K", 2003.

Informatikk i økonomi: Proc. manual / utg. prof. VÆRE. Odintsova, prof. A.N. Romanova. – M.: Universitetets lærebok, 2008.

Kjennetegn på essensen, formålet, funksjonene til operativsystemer. Karakteristiske trekk ved deres utvikling. Funksjoner av ressursstyringsalgoritmer. Moderne konsepter og teknologier for utforming av operativsystemer, krav til OS av det 21. århundre.

INTRODUKSJON

1. Evolusjon av OS

1.1 Første periode (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 ved ressursstyringsalgoritmer

2.2 Funksjoner til maskinvareplattformer

2.3 Funksjoner ved bruksområder

2.4 Funksjoner ved byggemetoder

3. Moderne konsepter og teknologier for utforming av operativsystemer, krav til OS av det 21. århundre

Konklusjon

Liste over brukt litteratur

INTRODUKSJON

Historien til enhver gren av vitenskap eller teknologi lar oss ikke bare tilfredsstille naturlig nysgjerrighet, men også bedre forstå essensen av hovedprestasjonene til denne industrien, forstå eksisterende trender og riktig vurdere utsiktene til visse utviklingsområder. I løpet av det nesten halve århundret de har eksistert, har operativsystemene gått gjennom en vanskelig vei, full av mange viktige hendelser. Utviklingen av operativsystemer ble sterkt påvirket av suksesser med å forbedre elementbasen og datautstyret, så mange stadier av OS-utvikling er nært knyttet til fremveksten av nye typer maskinvareplattformer, for eksempel minidatamaskiner eller personlige datamaskiner. Operativsystemer har gjennomgått en stor utvikling på grunn av den nye rollen til datamaskiner i lokale og globale nettverk. Den viktigste faktoren OS-utvikling ble Internett. Ettersom dette nettverket får funksjonene til et universelt middel for massekommunikasjon, blir operativsystemene mer enkle og praktiske å bruke, de inkluderer utviklet midler for å støtte multimedieinformasjon og er utstyrt med pålitelige sikkerhetstiltak.

Hensikten med dette kursarbeid er en beskrivelse og analyse av utviklingen av operativsystemer.

Målet nås gjennom følgende oppgaver:

Vurder det historiske aspektet ved fremveksten av operativsystemer;

Identifiser og vurdere stadiene i utviklingen av operativsystemer.

Det er nødvendig å merke seg at det ikke er tilstrekkelig dekket i litteraturen, noe som har gjort studien vanskelig.

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

Arbeidet består av tre kapitler: innledning, konklusjon og referanseliste.

1 . OS evolusjon

1.1 Første periode (1945 -1955)

Det er kjent at datamaskinen ble oppfunnet av den engelske matematikeren Charles Babage på slutten av det attende århundre. Hans "analytiske motor" var aldri i stand til å virkelig fungere, fordi teknologiene på den tiden ikke oppfylte kravene til produksjon av presisjonsmekaniske deler som var nødvendige for datateknologi. Det er også kjent at denne datamaskinen ikke hadde et operativsystem.

Noe fremskritt i å skape digitalt datamaskiner skjedde etter andre verdenskrig. 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 evt. praktiske problemer fra andre bruksområder. Programmeringen ble utført utelukkende på maskinspråk. Det var ikke snakk om 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.

1.2 Andre periode (1955–1965)

Siden 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 på moderne operativsystemer; de ble de første systemprogrammer, designet for å kontrollere 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.

1.3 Tredje periode (1965–1980)

Den neste viktige perioden i utviklingen av datamaskiner går tilbake til 1965-1980. På denne tiden skjedde det en overgang i det tekniske grunnlaget fra individuelle halvlederelementer som transistorer til integrerte kretser, noe som ga mye større 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 IBM/360-serien med maskiner. 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 krevde også operativsystemkompatibilitet. Slike operativsystemer vil måtte kjøre på både store og små datasystemer, med stort og lite antall forskjellige perifere enheter, i kommersielle og kommersielle domener. Vitenskapelig forskning. 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. Med hver nye versjon av operativsystemet ble noen feil rettet og andre ble introdusert.

Samtidig, til tross for sin enorme størrelse og mange problemer, tilfredsstilte OS/360 og andre lignende operativsystemer på tredjegenerasjonsmaskiner faktisk de fleste forbrukerkrav. Den viktigste prestasjonen til OS av denne generasjonen var implementeringen av multiprogrammering. Multiprogrammering er en måte å organisere en databehandlingsprosess på hvor 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 er spooling. 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 flerprogramimplementeringen av batchbehandlingssystemer har en ny type OS dukket opp - tidsdelingssystemer. Multiprogrammeringsalternativet som brukes i tidsdelingssystemer er rettet mot å skape for hver enkelt bruker en illusjon av enestående bruk av datamaskinen.

1.4 Fjerde periode (1980–i dag)

Den neste perioden i utviklingen av operativsystemer er assosiert med fremveksten av storskala integrerte kretser (LSI). 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 forskjellig fra klassen av minidatamaskiner som PDP-11, men prisene deres var betydelig forskjellige. 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 "vennlig" programvare, som satte en stopper for kasten av programmerere.

Operativsystemmarkedet ble dominert av to systemer: MS-DOS og UNIX. MS-DOS OS med ett program for én bruker ble mye brukt for datamaskiner bygget på mikroprosessorene Intel 8088 og senere 80286, 80386 og 80486. UNIX-operativsystemet med flere programmer dominerte blant "ikke-Intel"-datamaskiner , spesielt de som er bygget på RISC-prosessorer med høy ytelse.

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 en frittstående datamaskin ved at det inneholder tilleggsverktøy som lar datamaskinen jobbe på nettverket. Nettverksoperativsystemet har ingen grunnleggende forskjeller fra operativsystemet til en datamaskin med én prosessor. Den inneholder nødvendigvis programvarestøtte for nettverksgrensesnittenheter (driver nettverksadapter), 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 nevneverdig.

2. OS-klassifisering

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

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

2.1 Funksjoner av ressursstyringsalgoritmer

Effektiviteten til hele nettverksoperativsystemet som helhet avhenger i stor grad av effektiviteten til algoritmer for å administrere lokale datamaskinressurser. Derfor, når de karakteriserer et nettverks-OS, siterer de ofte de viktigste funksjonene ved implementeringen av OS-funksjoner for å administrere prosessorer, minne og eksterne enheter til en autonom datamaskin. For eksempel, avhengig av egenskapene til prosessorkontrollalgoritmen som brukes, er operativsystemer delt inn i multi-tasking og single-tasking, multi-user og single-user, systemer som støtter multi-threaded prosessering og de som ikke gjør det, multi- prosessor og enkeltprosessorsystemer.

Multitasking-støtte. Basert på antall samtidig utførte oppgaver, kan operativsystemer deles inn i to klasser:

enkeltoppgave (for eksempel MS-DOS, MSX) og

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

Operativsystemer med enkeltoppgaver utfører hovedsakelig funksjonen å gi brukeren en virtuell maskin, noe som gjør prosessen med interaksjon mellom brukeren og datamaskinen enklere og mer praktisk. Enkeltoppgaveoperativsystemer inkluderer administrasjonsverktøy for eksterne enheter, filbehandlingsverktøy og brukerkommunikasjonsverktøy.

Multitasking OS, i tillegg til funksjonene ovenfor, administrerer delingen av delte ressurser som CPU, RAM, filer og eksterne enheter.

Støtte for flerbrukermodus. Basert på antall samtidige brukere er operativsystemene delt inn i:

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

flerbruker (UNIX, Windows NT).

Hovedforskjellen mellom flerbrukersystemer og enkeltbrukersystemer er tilgjengeligheten av midler for å beskytte hver brukers informasjon mot uautorisert tilgang fra andre brukere. Det skal bemerkes at ikke alle multitasking-systemer er multi-user, og ikke alle single-user OS er single-tasking.

Forebyggende og ikke-forebyggende multitasking. Den viktigste delte ressursen er prosessortid. Metoden for å fordele prosessortid mellom flere samtidig eksisterende prosesser (eller tråder) i systemet bestemmer i stor grad spesifikasjonene til operativsystemet. Blant de mange eksisterende alternativene for implementering av multitasking, kan to grupper av algoritmer skilles:

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

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

Hovedforskjellen mellom forebyggende og ikke-forebyggende multitasking er graden av sentralisering av prosessplanleggingsmekanismen. I det første tilfellet er prosessplanleggingsmekanismen helt konsentrert i operativsystemet, og i det andre er den fordelt mellom systemet og applikasjonsprogrammene. Med ikke-forebyggende multitasking kjører den aktive prosessen til den på eget initiativ gir kontroll til operativsystemet slik at det velger en annen prosess klar til å kjøre fra køen. Med forebyggende multitasking blir beslutningen om å bytte prosessor fra én prosess til en annen tatt av operativsystemet, og ikke av selve den aktive prosessen.

Støtte for flertråding. En viktig egenskap ved operativsystemer er evnen til å parallellisere beregninger innenfor en enkelt oppgave. Et flertråds OS deler prosessortid ikke mellom oppgaver, men mellom deres individuelle grener (tråder).

Multiprosessering. En annen viktig egenskap ved operativsystemet er fraværet eller tilstedeværelsen i det av støtte for multiprosessering - multiprosessering. Multiprosessering fører til komplikasjonen av alle ressursstyringsalgoritmer.

I dag begynner det å bli vanlig praksis å introdusere støttefunksjoner for multiprosessering i operativsystemet. Slike funksjoner er tilgjengelige i Suns Solaris 2.x, Santa Crus Operations' Open Server 3.x, IBMs OS/2, Microsofts Windows NT og Novells NetWare 4.1.

Multiprosessoroperativsystemer kan klassifiseres i henhold til måten databehandlingsprosessen er organisert i et system med en multiprosessorarkitektur: asymmetriske operativsystemer og symmetriske operativsystemer. Et asymmetrisk OS kjører utelukkende på bare én av systemprosessorene, og fordeler applikasjonsoppgaver på tvers av de gjenværende prosessorene. Et symmetrisk OS er fullstendig desentralisert og bruker hele utvalget av prosessorer, og deler dem mellom system- og applikasjonsoppgaver.

Ovenfor diskuterte vi egenskapene til operativsystemet knyttet til administrasjonen av bare én type ressurs - prosessoren. Funksjonene til andre lokale ressursstyringsundersystemer - minne-, fil- og inn-/utdataen- har en viktig innflytelse på utseendet til operativsystemet som helhet og på mulighetene for bruk i et bestemt område.

Spesifisiteten til operativsystemet kommer også til uttrykk i måten det implementerer nettverksfunksjoner på: gjenkjennelse og omdirigering av forespørsler til nettverket eksterne ressurser, sende meldinger over nettverket, utføre eksterne forespørsler. Ved implementering av nettverksfunksjoner oppstår et sett med oppgaver knyttet til den distribuerte karakteren av datalagring og -behandling på nettverket: vedlikehold av referanseinformasjon om alle ressurser og servere som er tilgjengelige på nettverket, adressering av samspillende prosesser, sikring av tilgangstransparens, datareplikering, avstemming av kopier, opprettholde datasikkerhet.

2. 2 Funksjoner av maskinvareplattformer

Egenskapene til operativsystemet påvirkes direkte av maskinvaren det er designet på. Basert på type maskinvare skilles operativsystemer til personlige datamaskiner, minidatamaskiner, stormaskiner, klynger og datanettverk. Blant de listede typene datamaskiner kan det være alternativer for både enkeltprosessor og multiprosessor. I alle fall gjenspeiles som regel spesifikasjonene til maskinvaren i spesifikasjonene til operativsystemene.

Det er klart at operativsystemet til en stor maskin er mer komplekst og funksjonelt enn operativsystemet til en personlig datamaskin. Således, i operativsystemet til store maskiner, implementeres funksjoner for planlegging av flyten av oppgaver som utføres åpenbart ved bruk av komplekse prioriterte disipliner og krever mer datakraft enn i operativsystemet til personlige datamaskiner. Situasjonen er lik med andre funksjoner.

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

Multiprosessorsystemer krever en spesiell organisasjon fra operativsystemet, ved hjelp av hvilken selve operativsystemet, så vel som applikasjonene det støtter, kan kjøres parallelt av individuelle prosessorer i systemet. Parallell drift av individuelle deler av operativsystemet skaper ytterligere problemer for OS-utviklere, siden det i dette tilfellet er mye vanskeligere å sikre konsistent tilgang til individuelle prosesser til vanlige systemtabeller, 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 presenteres for brukeren enhetlig system. Sammen med spesiell maskinvare krever funksjonen til klyngesystemer også programvarestøtte fra operativsystemet, som hovedsakelig handler om synkronisering av tilgang til delte ressurser, feildeteksjon og dynamisk systemrekonfigurasjon. En av de første utviklingene innen klyngeteknologi var løsninger fra Digital Equipment basert på VAX-datamaskiner. Selskapet inngikk nylig en avtale med Microsoft Corporation om å utvikle klyngeteknologi ved bruk av Windows NT. Flere selskaper tilbyr klynger basert på UNIX-maskiner.

Sammen med OSer som er fokusert på en helt spesifikk type maskinvareplattform, finnes det operativsystemer som er spesialdesignet slik at de enkelt kan overføres fra en type datamaskin til en annen type datamaskin, det såkalte mobile OS. Det mest slående eksemplet på et slikt operativsystem er det populære UNIX-systemet. I disse systemene er maskinvareavhengige steder nøye lokalisert, slik at når systemet overføres til en ny plattform, er det kun de som skrives om. Et middel for å gjøre 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 ved bruksområder

Multitasking-operativsystemer er delt inn i tre typer i samsvar med effektivitetskriteriene som brukes i utviklingen:

batchbehandlingssystemer (for eksempel OC EC),

tidsdelingssystemer (UNIX, VMS),

sanntidssystemer (QNX, RT/11).

Batchbehandlingssystemer var ment å løse problemer primært av beregningsmessig karakter som ikke krevde raske resultater. Hovedmålet og kriteriet for effektiviteten til batchbehandlingssystemer er maksimalt gjennomstrømning, det vil si å løse maksimalt antall problemer per tidsenhet. For å oppnå dette målet bruker batchbehandlingssystemer følgende driftsskjema: i begynnelsen av arbeidet dannes en gruppe oppgaver, hver oppgave inneholder et krav til systemressurser; fra denne oppgavepakken dannes en multiprogramblanding, det vil si mange samtidig utførte oppgaver. For samtidig utførelse velges oppgaver som har ulike ressurskrav, for å sikre en balansert belastning på alle enhetene på datamaskinen; for eksempel, i en multiprogramblanding, er samtidig tilstedeværelse av beregningsoppgaver og I/O-intensive oppgaver ønskelig. Dermed avhenger valget av en ny oppgave fra en pakke med oppgaver av den interne situasjonen i systemet, det vil si at en "lønnsom" oppgave velges. Følgelig er det i et slikt OS umulig å garantere fullføring av en bestemt oppgave innenfor viss periode tid. I batchbehandlingssystemer skjer det å bytte prosessor fra å kjøre en oppgave til å kjøre en annen bare hvis den aktive oppgaven selv forlater prosessoren, for eksempel på grunn av behovet for å utføre en I/O-operasjon. Derfor kan en enkelt oppgave oppta prosessoren i lang tid, noe som gjør det umulig å fullføre interaktive oppgaver. Dermed koker brukerens interaksjon med datamaskinen som batchbehandlingssystemet er installert på det faktum at han tar med en oppgave, gir den til dispatcher-operatøren, og på slutten av dagen, etter å ha fullført hele batchen med oppgaver , får han resultatet. Dette arrangementet reduserer åpenbart brukerens effektivitet.

Tidsdelingssystemer er designet for å korrigere hovedulempen med batchbehandlingssystemer - isolasjonen av brukerprogrammereren fra prosessen med å utføre oppgavene sine. Hver bruker av tidsdelingssystemet er utstyrt med en terminal hvorfra han kan føre en dialog med programmet sitt. Siden tidsdelingssystemer tildeler bare en del av CPU-tiden til hver oppgave, tar ingen enkelt oppgave prosessoren veldig lenge, og responstidene er akseptable. Hvis kvantumet er valgt lite nok, har alle brukere som samtidig jobber på samme maskin inntrykk av at hver av dem utelukkende bruker maskinen. Det er klart at tidsdelingssystemer har lavere gjennomstrømning enn batchbehandlingssystemer, siden hver oppgave som startes av brukeren er akseptert for utførelse, og ikke den som er "gunstig" for systemet, og i tillegg er det overhead av datakraft for hyppigere bytting av prosessor fra oppgave til oppgave. Kriteriet for effektiviteten til tidsdelingssystemer er ikke maksimal gjennomstrømning, men brukervennligheten og effektiviteten til brukeren.

Sanntidssystemer brukes til å kontrollere ulike tekniske objekter, for eksempel et maskinverktøy, en satellitt, en vitenskapelig eksperimentell installasjon, eller teknologiske prosesser, som en galvanisk linje, en masovnsprosess, etc. I alle disse tilfellene er det en maksimal tillatt tid hvor et eller annet program som kontrollerer objektet må utføres, ellers kan det oppstå en ulykke: satellitten vil forlate synlighetssonen, eksperimentelle data som kommer fra sensorene vil gå tapt, tykkelsen på det galvaniske belegget vil ikke samsvare med normen. Effektivitetskriteriet for sanntidssystemer er således deres evne til å tåle forhåndsbestemte tidsintervaller mellom lansering av et program og oppnåelse av et resultat (kontrollhandling). Denne tiden kalles reaksjonstiden til systemet, og den tilsvarende egenskapen til systemet kalles reaktivitet. For disse systemene er flerprogramblandingen fast urskive forhåndsutviklede programmer, og valget av program som skal kjøres er basert på nåværende situasjon objekt eller i samsvar med tidsplanen for planlagt arbeid.

Noen operativsystemer kan kombinere egenskapene til ulike typer systemer, for eksempel kan noen oppgaver utføres i batchbehandlingsmodus, og noen i sanntid eller i tidsdelingsmodus. I slike tilfeller kalles batchbehandlingsmodus ofte bakgrunnsmodus.

2. 4 Funksjoner av byggemetoder

Når man beskriver et operativsystem, indikeres ofte egenskapene til dets strukturelle organisasjon og de grunnleggende konseptene som ligger til grunn.

Disse grunnleggende konseptene inkluderer:

Måter å bygge en systemkjerne - monolitisk kjerne- eller mikrokjernetilnærming. De fleste operativsystemer bruker en monolitisk kjerne, som er kompilert som et enkelt program som kjører i privilegert modus og bruker raske overganger fra en prosedyre til en annen uten å kreve bytte fra privilegert til brukermodus og omvendt. Et alternativ er å bygge et OS basert på en mikrokjerne, som også opererer i privilegert modus og kun utfører et minimum avner, mens OS-funksjoner på høyere nivå utføres av spesialiserte OS-komponenter - 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 utvides, modifiseres eller begrenses ved å legge til, endre eller ekskludere brukermodusservere . I tillegg er serverne godt beskyttet mot hverandre, det samme er alle brukerprosesser.

Å bygge et OS basert på en objektorientert tilnærming gjør det mulig å bruke alle fordelene, som har vist seg på applikasjonsnivå, i operativsystemet, nemlig: akkumulering av vellykkede løsninger i form av standardobjekter, muligheten til å lage nye objekter basert på eksisterende ved å bruke arvemekanismen, god beskyttelse data på grunn av deres innkapsling i indre strukturer objekt, som gjør dataene utilgjengelige for uautorisert bruk fra utsiden, strukturen til systemet, bestående av et sett med veldefinerte objekter.

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

Den distribuerte organiseringen av operativsystemet gjør det mulig å forenkle arbeidet til brukere og programmerere i nettverksmiljøer. Et distribuert OS implementerer mekanismer som lar brukeren forestille seg og oppfatte nettverket i form av en tradisjonell datamaskin med én prosessor. De karakteristiske egenskapene til en distribuert OS-organisasjon er: tilstedeværelsen av en enkelt helpdesk delte ressurser, en enkelttidstjeneste, bruk av en ekstern prosedyrekall (RPC)-mekanisme for transparent distribusjon av programvareprosedyrer på tvers av maskiner, flertrådsbehandling, som lar deg parallellisere beregninger innenfor en enkelt oppgave og utføre denne oppgaven på flere nettverk datamaskiner samtidig, samt tilstedeværelsen av andre distribuerte tjenester.

3. Moderne konsepter og teknologier for utforming av operativsystemer, krav til OSXXIårhundre

Operativsystemet er kjernen i nettverksprogramvare; det skaper miljøet for å kjøre applikasjoner og bestemmer i stor grad hvilke fordeler disse applikasjonene vil ha for brukeren. I denne forbindelse vil vi vurdere kravene som et moderne OS må tilfredsstille.

Åpenbart er hovedkravet for et operativsystem evnen til å utføre grunnleggende funksjoner: effektiv ressursadministrasjon og å tilby et praktisk grensesnitt for brukeren og applikasjonsprogrammene. Et moderne OS må som regel implementere multiprogrambehandling, virtuelt minne, bytte, støtte et multi-vindusgrensesnitt og også utføre mange andre absolutt nødvendige funksjoner. I tillegg til disse funksjonelle kravene, møter operativsystemer like viktige markedskrav. Disse kravene inkluderer:

· Utvidbarhet. Koden bør skrives på en slik måte at det er enkelt å gjøre tillegg og endringer om nødvendig, uten at det går på bekostning av systemets integritet.

· Bærbarhet. Koden skal være lett å flytte fra én type prosessor til en annen type prosessor, og fra en maskinvareplattform (som sammen med prosessortypen inkluderer måten all maskinvare er organisert på) av én type til en annen type maskinvareplattform.

· Pålitelighet og feiltoleranse. Systemet skal være beskyttet mot både interne og eksterne feil, feil og feil. Handlingene skal alltid være forutsigbare, og applikasjoner skal ikke kunne skade OS.

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

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

· Produktivitet. Systemet må være så raskt og responsivt som maskinvareplattformen tillater.

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

Utvidbarhet Mens maskinvare blir foreldet i løpet av få år, kan levetiden til operativsystemer måles i flere tiår. Et eksempel er UNIX OS. Derfor utvikler operativsystemer seg alltid 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 grafiske brukergrensesnitt eller objektorienterte programvaremiljøer, og bruk av mer enn én prosessor. Å opprettholde integriteten til koden, uansett hvilke endringer som gjøres i operativsystemet, er hovedmålet med utviklingen.

Utvidbarhet kan 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. Nye komponenter kan legges til operativsystemet på en modulær måte, og de utfører arbeidet sitt ved å bruke grensesnitt støttet av eksisterende komponenter.

Å bruke objekter til å representere systemressurser forbedrer også systemutvidbarheten. Objekter er abstrakte datatyper som du bare kan utføre de handlingene på som leveres av et spesielt sett med objektfunksjoner. Objekter lar deg administrere systemressurser på en konsistent måte. Å legge til nye objekter ødelegger ikke eksisterende objekter og krever ikke endringer i eksisterende kode.

Utmerkede muligheter for utvidelse er gitt av klient-server-tilnærmingen til å strukturere operativsystemet ved hjelp av mikrokjerneteknologi. 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 legges til eller gamle forbedres.

Remote procedure calls (RPC) gir også muligheten til å forlenge funksjonalitet OS. Nye programvarerutiner kan legges til enhver maskin på nettverket og umiddelbart gjøres tilgjengelig for applikasjonsprogrammer på andre maskiner på nettverket.

For å forbedre utvidbarheten støtter noen operativsystemer nedlastbare drivere 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 om kodeportabilitet er nært knyttet til utvidbarhet. Utvidbarhet lar deg forbedre operativsystemet, mens portabilitet lar deg flytte hele systemet til en maskin basert på en annen prosessor eller maskinvareplattform, alt mens du gjør så små endringer i koden som mulig. Selv om operativsystemer ofte beskrives som enten bærbare eller ikke-bærbare, er ikke portabilitet 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 ligner på å skrive hvilken som helst bærbar kode - du må følge noen regler.

For det første bør det meste av koden skrives på et språk som er tilgjengelig på alle maskinene du ønsker å portere systemet til. Dette betyr vanligvis at koden må skrives på et høynivåspråk, fortrinnsvis et standardisert språk som C. Et program skrevet på assemblerspråk er ikke portabelt med mindre du har tenkt å portere det til en maskin som har kommandokompatibilitet med din.

For det andre bør du vurdere hvilke fysiske omgivelser programmet skal overføres til. Ulikt utstyr krever ulike løsninger når du oppretter OS. For eksempel kan et OS bygget på 32-bits adresser ikke porteres til en maskin med 16-biters adresser (bortsett fra med store vanskeligheter).

For det tredje er det viktig å minimere eller, om mulig, eliminere 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 maskinvareavhengig kode ikke kan elimineres fullstendig, bør den isoleres i flere godt lokaliserte moduler. Maskinvareavhengig kode skal ikke distribueres over hele systemet. For eksempel kan du skjule en maskinvarespesifikk struktur i programvaredefinerte data av en abstrakt type. Andre moduler i systemet vil fungere med disse dataene, og ikke med utstyret, ved å bruke et sett med visse funksjoner. Når et operativsystem migreres, endres bare disse dataene og funksjonene som manipulerer dem.

For å enkelt portere operativsystemet under utviklingen, må følgende krav oppfylles:

· Bærbart språk på høyt nivå. De fleste bærbare operativsystemer er skrevet i C (ANSI X3.159-1989 standard). Utviklere velger C fordi det er standardisert og fordi C-kompilatorer er allment tilgjengelige. Monteringsspråk brukes bare for de delene av systemet som må samhandle direkte med maskinvaren (for eksempel avbruddsbehandleren) eller for deler som krever topphastighet(for eksempel høypresisjon heltallsaritmetikk). Samtidig må ikke-bærbar kode være nøye isolert i komponentene der den brukes.

· Prosessorisolasjon. Noen lavnivådeler av OS må ha tilgang til prosessorsensitive datastrukturer og registre. Koden som gjør dette må imidlertid finnes i små moduler som kan erstattes av lignende moduler for andre prosessorer.

· Plattformisolasjon. Plattformavhengighet refererer til forskjellene mellom arbeidsstasjoner fra forskjellige produsenter som er bygget på samme prosessor (for eksempel MIPS R4000). Må legges inn programnivå, som abstraherer maskinvaren (cacher, I/O-avbruddskontrollere osv.) sammen med et lag med lavnivåprogrammer slik at høynivåkoden ikke trenger å endres når den porteres fra en plattform til en annen.

Kompatibilitet Et aspekt ved kompatibilitet er et operativsystems evne til å kjøre programmer skrevet for andre operativsystemer eller for tidligere versjoner av et gitt operativsystem, så vel som for en annen maskinvareplattform.

Det er nødvendig å skille problemer med binær kompatibilitet og kompatibilitet på applikasjonens kildekodenivå. Binær kompatibilitet oppnås når du kan ta et kjørbart program og kjøre det på et annet OS. 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.

Kompatibilitet på kildenivå krever tilstedeværelse av en passende kompilator som en del av programvaren, samt kompatibilitet på nivå med biblioteker og systemanrop. I dette tilfellet er det nødvendig å rekompilere de eksisterende kildetekstene til en ny kjørbar modul.

Kompatibilitet på kildenivå er viktig hovedsakelig for applikasjonsutviklere, som alltid har kildekoden til rådighet. Men for sluttbrukere Bare binær kompatibilitet er av praktisk betydning, siden først da kan de bruke det samme kommersielle produktet, levert som binær kjørbar kode, i forskjellige driftsmiljøer og på forskjellige maskiner.

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

Det er mye vanskeligere å oppnå binær kompatibilitet mellom prosessorer basert på ulike arkitekturer. For at en datamaskin skal kjøre programmene til en annen (for eksempel et DOS-program på en Mac), må datamaskinen fungere med maskininstruksjoner som den ikke forstår i utgangspunktet. For eksempel må en 680x0-prosessor på en Mac kjøre binær kode 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ær kode, så den må hente hver instruksjon, dekode den for å finne ut hva den gjør, og deretter utføre den tilsvarende rutinen skrevet for 680x0. Siden 680x0 heller ikke har nøyaktig de samme registrene, flaggene og den interne aritmetiske logiske enheten som 80x86, må den simulere alle disse elementene ved å bruke registrene eller minnet. Og den må nøye reprodusere resultatene av hver instruksjon, noe som krever spesialskrevne rutiner for 680x0 for å sikre at tilstanden til de emulerte registrene og flaggene etter at hver instruksjon er utført er nøyaktig den samme som på den virkelige 80x86.

Dette er enkelt, men veldig tregt arbeid, siden mikrokoden inne i 80x86-prosessoren kjører på et mye raskere nivå enn de eksterne 680x0-instruksjonene som emulerer den. I løpet av tiden det tar å utføre en 80x86-kommando på en 680x0, kan en ekte 80x86 utføre dusinvis av kommandoer. Derfor, hvis emuleringsprosessoren ikke er rask nok til å kompensere for alle emuleringstapene, vil programmene som kjører under emuleringen være veldig trege.

Løsningen i slike tilfeller er å bruke såkalte applikasjonsmiljøer. Tatt i betraktning at hoveddelen av programmet som regel består av kall til bibliotekfunksjoner, simulerer applikasjonsmiljøet hele bibliotekfunksjonene ved å bruke et forhåndsskrevet bibliotek med funksjoner med lignende formål, og de resterende kommandoene emulerer hver enkelt separat .

Overholdelse av POSIX-standarder er også et middel for å sikre kompatibilitet mellom programvare og brukergrensesnitt. I andre halvdel av 1980-tallet begynte amerikanske offentlige etater å utvikle POSIX som maskinvarestandarder for offentlige datamaskinkontrakter. POSIX er et "bærbart operativsystemgrensesnitt basert på UNIX". POSIX - møte internasjonale standarder OS-grensesnitt i UNIX-stil. Ved å bruke POSIX-standarden (IEEE-standard 1003.1 - 1988) kan du lage 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 applikasjoner som brukes av myndighetene. Mange av disse kravene er ønskelige egenskaper for ethvert flerbrukersystem. Sikkerhetsregler definerer egenskaper som å beskytte én brukers ressurser fra andre og sette ressurskvoter for å forhindre at én bruker tar over alle systemressurser (som minne).

Å sikre beskyttelse av informasjon mot uautorisert tilgang er en obligatorisk funksjon av nettverksoperativsystemer. De fleste populære systemene garanterer en grad av datasikkerhet tilsvarende nivå C2 i det amerikanske standardsystemet.

Grunnlaget for sikkerhetsstandarder ble lagt av Criteria for Evaluating Trusted Computer Systems. Dette dokumentet, utgitt i USA i 1983 av National Computer Security Center (NCSC), kalles ofte Orange Book.

I samsvar med kravene i Orange Book, anses et sikkert system for å være et som "gjennom spesielle sikkerhetsmekanismer kontrollerer 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".

Hierarkiet av sikkerhetsnivåer gitt i Orange Book-merkene laveste nivå sikkerhet som D, og ​​den høyeste - som A.

· Klasse D inkluderer systemer hvis vurdering har avslørt at de ikke er i samsvar med kravene til alle andre klasser.

· Hovedegenskapene for C-systemer er: tilstedeværelsen av et delsystem for registrering av sikkerhetshendelser og selektiv tilgangskontroll. Nivå C er delt inn i 2 undernivåer: nivå C1, som gir databeskyttelse mot brukerfeil, men ikke fra angripernes handlinger, og det mer strenge nivået C2. På C2-nivå må det være en sikker påloggingsfunksjon som gjør at brukere kan identifiseres ved å taste inn et unikt brukernavn 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 de kan gjøre med den. Eieren gjør dette ved å gi tilgangsrettigheter til en bruker eller gruppe brukere. Revisjon – Gir muligheten til å oppdage og registrere viktige sikkerhetshendelser eller forsøk på å opprette, få tilgang til eller slette systemressurser. Minnebeskyttelse er der minnet initialiseres før det gjenbrukes. På dette nivået er ikke systemet beskyttet mot brukerfeil, men brukeradferd kan overvåkes ved å bruke loggoppføringer som er igjen av overvåkings- og revisjonsverktøy.


  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å forskjellige enheter, men det forblir fortsatt et pakket OS. 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 mulighetene nettverksteknologier, inkludert klient-server-teknologier, blir grensesnittet 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 et oppsett av operativsystemet der alle komponentene er komponenter i 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 laveste nivået i slike systemer er vanligvis maskinvare, toppnivå- brukergrensesnitt. 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 driften til en ekte datamaskin. Eksempler er VMWareWorkstation og VirtualBox.

Mikrokjernearkitektur. Dette er en arkitektur hvor 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 kontroller hukommelse.

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.), en høy grad av sikkerhet, brukervennlighet, og også utføre 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 operativsystemer):

  • 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 kjøre på prosesser neste par operasjoner:

  • prosessoppretting - prosessavslutning,

  • suspendere en prosess - starte en prosess,

  • blokkere en prosess - fjerne 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 bare 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

Enklere implementering enn Dekkers 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.

I ulike operativsystemer er hendelsesapparatet implementert forskjellig, men i alle fall brukes de systemfunksjoner, som konvensjonelt kalles WAIT(x) og POST(x), der x er identifikatoren for 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 et enkelt tilfelle, 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

Utdannings- og vitenskapsdepartementet i Den russiske føderasjonen

Statens utdanningsinstitusjon

høyere profesjonsutdanning

"Magnitogorsk State Technical University

dem. G.I. Nosov"

Institutt for informatikk og informasjonssikkerhet

Test

i faget "Informatikk"

Sammendrag om emnet "Utviklingen av datamaskinoperativsystemer forskjellige typer»

Fullført av: elev av gruppe 1304006-11-1

Alternativ nr. 13

Sagdetdinov D.F.

Sjekket av: overlærer

Korinchenko G.M.

Magnitogorsk 2014

  • 1. Utvikling av operativsystemer til ulike typer datamaskiner
    • 1.2 Fremveksten av multiprogramoperativsystemer for stormaskiner
  • 2. MathCAD-oppgave nr. 1 "Konstruksjon av todimensjonale grafer i MathCAD"
    • 2.1 Oppgaveformulering
    • 2.2 Resultat - den resulterende grafen
  • 3. MathCAD-oppgave nr. 2 «Løse SLAE»
    • 3.1 Oppgaveformulering
  • 4. MathCAD-oppgave nr. 3 "Løse systemer for ikke-lineære ligninger"
    • 4.1 Oppgaveformulering
  • 5. MathCAD-oppgave nr. 4 "Løse ikke-lineære ligninger"
    • 5.1 Oppgaveformulering

1. Utvikling av operativsystemer til ulike typer datamaskiner

I løpet av det nesten halve århundret de har eksistert, har operativsystemer (OS) gått gjennom en vanskelig vei, full av mange viktige hendelser. Utviklingen av operativsystemer ble sterkt påvirket av suksesser med å forbedre elementbasen og datautstyret, så mange stadier av utviklingen deres er nært knyttet til fremveksten av nye typer maskinvareplattformer, for eksempel minidatamaskiner eller personlige datamaskiner.

Operativsystemer har gjennomgått en stor utvikling på grunn av den nye rollen til datamaskiner i lokale og globale nettverk. Den viktigste faktoren i deres utvikling var Internett.

1.1 Fremveksten av de første operativsystemene

Fødselen av digital databehandling skjedde kort tid etter slutten av andre verdenskrig. På midten av 40-tallet ble de første rørdatabehandlingsenhetene laget.

Programmering på den tiden ble utført utelukkende på maskinspråk. Det var ingen systemprogramvare, bortsett fra biblioteker med matematiske rutiner og verktøyrutiner som programmereren kunne bruke for ikke å skrive koder hver gang han beregner verdien av en matematisk funksjon eller kontroll standard enhet I/O

Operativsystemer hadde ennå ikke dukket opp; alle oppgaver med å organisere dataprosessen ble løst manuelt av hver programmerer fra kontrollpanelet, som var en primitiv inngangs-utgangsenhet bestående av knapper, brytere og indikatorer.

Siden midten av 50-tallet begynte en ny periode i utviklingen av datateknologi, assosiert med fremveksten av en ny teknisk base - halvlederelementer. Hastigheten på prosessorer har økt, volumene av operasjonelle og eksternt minne. Datamaskiner ble mer pålitelige, de kunne nå jobbe kontinuerlig så lenge at de kunne bli betrodd å utføre virkelig praktisk viktige oppgaver.

Samtidig ble de første batchbehandlingssystemene utviklet, som automatiserte hele sekvensen av operatørhandlinger for å organisere databehandlingsprosessen. Tidlige batchbehandlingssystemer var prototypen til moderne operativsystemer; de ble de første systemprogrammene designet ikke for databehandling, men for å administrere dataprosessen.

Batch-behandlingssystemer har betydelig redusert tiden brukt på hjelpehandlinger for å organisere databehandlingsprosessen, noe som betyr at enda et skritt er tatt for å forbedre effektiviteten til datamaskinbruk.

Men samtidig mistet programmeringsbrukere direkte tilgang til datamaskinen, noe som reduserte effektiviteten av arbeidet deres - noe som gjorde at enhver korrigering krevde mye mer tid enn når de arbeidet interaktivt på maskinens konsoll.

1.2 Fremveksten av multiprogramoperativsystemer for stormaskiner

Den neste viktige perioden i utviklingen av operativsystemer går tilbake til 1965-1975.

På dette tidspunktet, i den tekniske basen til datamaskiner, var det en overgang fra individuelle halvlederelementer som transistorer til integrerte kretser, noe som åpnet veien for fremveksten av neste generasjon datamaskiner.

I løpet av denne perioden ble nesten alle de grunnleggende mekanismene som er iboende i moderne operativsystemer implementert:

Multiprogrammering,

Multiprosessering,

Støtte for multi-terminal multi-user mode,

virtuell hukommelse,

filsystemer,

Adgangskontroll,

Nettverksarbeid.

Den revolusjonerende begivenheten på dette stadiet var den industrielle implementeringen av multiprogrammering. Gitt de dramatisk økte egenskapene til en datamaskin for å behandle og lagre data, viste det seg å være ekstremt ineffektivt å kjøre bare ett program om gangen. Løsningen var multiprogrammering – en metode for å organisere en dataprosess der flere programmer samtidig ble lagret i datamaskinens minne og vekselvis utført på én prosessor.

Disse forbedringene forbedret datasystemets effektivitet betydelig: datamaskinen kunne nå brukes nesten konstant, i stedet for mindre enn halvparten av tiden datamaskinen kjørte, som tidligere var tilfellet.

Multiprogrammering ble implementert i to versjoner - i batchbehandling og tidsdelingssystemer.

1.3 Operativsystemer og globale nettverk

På begynnelsen av 70-tallet av forrige århundre dukket de første nettverksoperativsystemene opp, som, i motsetning til multiterminale, gjorde det mulig ikke bare å spre brukere, men også å organisere distribuert lagring og behandling av data mellom flere datamaskiner koblet sammen med elektriske tilkoblinger .

Ethvert nettverksoperativsystem, på den ene siden, utfører alle funksjonene til et lokalt operativsystem, og har på den annen side noen ekstra verktøy som lar det samhandle over nettverket med operativsystemene til andre datamaskiner.

Programvaremoduler som implementerer nettverksfunksjoner dukket opp i operativsystemer gradvis, ettersom nettverksteknologier, maskinvare utviklet seg og nye oppgaver som krever nettverksbehandling dukket opp.

I 1969 satte det amerikanske forsvarsdepartementet i gang arbeidet med å forene superdatamaskiner fra forsvars- og forskningssentre til ett enkelt nettverk. Dette nettverket ble kalt ARPANET og var utgangspunktet for opprettelsen av det mest kjente globale nettverket i dag - Internett. ARPANET-nettverket forente forskjellige typer datamaskiner som kjørte forskjellige operativsystemer med tilleggsmoduler som implementerte kommunikasjonsprotokoller felles for alle datamaskiner på nettverket .

I 1974 kunngjorde IBM etableringen av sin egen nettverksarkitektur for sine stormaskiner, kalt SNA (System Network Architecture).

Denne lagdelte arkitekturen, omtrent som standard OSI-modellen som kom senere, ga terminal-til-terminal, terminal-til-datamaskin og datamaskin-til-datamaskin interaksjoner over global kommunikasjon.

1.4 Operativsystemer for minidatamaskiner. De første lokale nettverkene

På midten av 70-tallet, sammen med stormaskiner, ble minidatamaskiner utbredt. De var de første som utnyttet storskala integrerte kretser, som gjorde det mulig å implementere ganske kraftige funksjoner til en relativt lav kostnad for en datamaskin.

Arkitekturen til minidatamaskiner ble betydelig forenklet sammenlignet med stormaskiner, noe som gjenspeiles i deres operativsystemer. Mange av funksjonene til multi-program, multi-user mainframe operativsystemer ble avkortet gitt de begrensede ressursene til minidatamaskiner.

Operativsystemer for minidatamaskiner ble ofte spesialiserte, for eksempel bare for sanntidskontroll eller bare for å støtte tidsdelingsmodus.

En viktig milepæl i historien til minidatamaskiner og i historien til operativsystemer generelt var etableringen av UNIX OS. Massebruken begynte på midten av 70-tallet. Innen dette tidspunkt programkode for UNIX var 90 % skrevet på høynivåspråket C.

Tilgjengeligheten av minidatamaskiner og, som et resultat, deres utbredelse i bedrifter, fungerte som et kraftig insentiv for å opprette lokale nettverk. En bedrift kan ha råd til å ha flere minidatamaskiner plassert i samme bygning eller til og med i samme rom. Naturligvis var det behov for å utveksle informasjon mellom dem og dele dyrt perifert utstyr.

De første lokale nettverkene ble bygget ved hjelp av ikke-standard kommunikasjonsutstyr, i det enkleste tilfellet - ved å koble direkte til serielle porter på datamaskiner. Programvaren var også ikke-standard og ble implementert i form av brukerapplikasjoner.

1.5 Utvikling av operativsystemer på 80-tallet

De viktigste begivenhetene i dette tiåret inkluderer:

Utvikling av en TCP/IP stack,

Fremveksten av Internett

Standardisering av lokale nettverksteknologier,

Fremkomsten av personlige datamaskiner

Og operativsystemer for dem.

En fungerende versjon av TCP/IP-protokollstabelen ble opprettet på slutten av 70-tallet.

I 1983 ble TCP/IP-protokollstabelen tatt i bruk av det amerikanske forsvarsdepartementet som en militær standard.

Innføringen av TCP/IP-protokoller i ARPANET ga dette nettverket alle hovedfunksjonene som skiller det moderne Internett.

Hele tiåret var preget av den konstante fremveksten av nye, stadig mer avanserte versjoner av UNIX OS. Blant dem var proprietære versjoner av UNIX: SunOS, HP-UX, Irix, AIX og mange andre, der datamaskinprodusenter tilpasset kjernekoden og systemverktøyene for utstyret deres.

Begynnelsen av 80-tallet er assosiert med en annen viktig begivenhet for operativsystemets historie - fremveksten av personlige datamaskiner.

De fungerte som en kraftig katalysator for den raske veksten av lokale nettverk, og skapte et utmerket materiell grunnlag for dette i form av titalls og hundrevis av datamaskiner som tilhører en bedrift og plassert i en bygning. Som et resultat har støtte for nettverksfunksjoner blitt en forutsetning for personlige datamaskiners operativsystemer.

Nettverksfunksjoner ble implementert hovedsakelig av nettverksskall som kjørte på toppen av operativsystemet. Når du arbeider på et nettverk, er det alltid nødvendig å støtte flerbrukermodus, der én bruker er interaktiv, og resten får tilgang til dataressurser over nettverket. I dette tilfellet krever operativsystemet minst et minimum av funksjonell støtte for flerbrukermodus.

I 1987, som et resultat av felles innsats fra Microsoft og IBM, dukket det første multitasking-operativsystemet for personlige datamaskiner med Intel 80286-prosessoren opp, og utnyttet mulighetene til beskyttet modus - OS/2 fullt ut. Dette systemet var godt gjennomtenkt. Den støttet forebyggende multitasking, virtuelt minne, et grafisk brukergrensesnitt og en virtuell maskin for å kjøre DOS-applikasjoner.

På 1980-tallet ble grunnleggende standarder for kommunikasjonsteknologier for lokale nettverk: i 1980 - Ethernet, i 1985 - Token Ring, på slutten av 80-tallet - FDDI. Dette gjorde det mulig å sikre kompatibilitet av nettverksoperativsystemer på lavere nivåer, samt standardisere OS-grensesnittet med nettverksadapterdrivere.

1.6 Funksjoner i det nåværende utviklingsstadiet av operativsystemer

På 90-tallet ble nesten alle operativsystemer som inntok en fremtredende plass på markedet nettverksbaserte. Nettverksfunksjoner i dag er innebygd i OS-kjernen, og er dens integrerte del. Operativsystemer mottok verktøy for å jobbe med alle store lokale nettverksteknologier, samt verktøy for å lage sammensatte nettverk.

Operativsystemer bruker en måte å multiplekse flere protokollstabler slik at datamaskiner kan støtte samtidig nettverksarbeid med heterogene klienter og servere.

I andre halvdel av 90-tallet økte alle operativsystemprodusenter dramatisk støtten for Internett-verktøy. I tillegg til selve TCP/IP-stakken begynte pakken å inkludere verktøy som implementerer slike populære tjenester Internett som telnet, ftp, DNS og web.

Påvirkningen fra Internett ble også manifestert i det faktum at datamaskinen har forvandlet seg fra en ren dataenhet til et kommunikasjonsmiddel med avanserte datafunksjoner.

Spesiell oppmerksomhet har blitt viet til bdet siste tiåret. Deres videre utvikling representerer en av de viktigste oppgavene i overskuelig fremtid.

Bedriftsoperativsystemet utmerker seg ved dets evne til å fungere godt og stabilt i store nettverk, som er typiske for store bedrifter med filialer i dusinvis av byer og, evt. forskjellige land. Slike nettverk er iboende iboende i en høy grad av heterogenitet av programvare og maskinvare, så bedriftens OS må sømløst samhandle med operativsystemer av forskjellige typer og fungere på forskjellige maskinvareplattformer.

Å lage en multifunksjonell, skalerbar helpdesk er en strategisk retning i utviklingen av operativsystemet. En slik tjeneste er nødvendig for å gjøre Internett til et forutsigbart og håndterbart system, for eksempel for å sikre den nødvendige kvaliteten på tjenesten for brukertrafikk, støtte store distribuerte applikasjoner og bygge et effektivt postsystem.

På det nåværende stadiet av utviklingen av operativsystemer har sikkerhetsverktøy kommet i forkant. Dette skyldes den økte verdien av informasjon som behandles av datamaskiner, samt det økte nivået av trusler som eksisterer ved overføring av data over nettverk, spesielt offentlige slike som Internett. Mange operativsystemer har i dag utviklet informasjonssikkerhetsverktøy basert på datakryptering, autentisering og autorisasjon.

Moderne operativsystemer er multiplattformer, det vil si muligheten til å jobbe på helt forskjellige typer datamaskiner. Mange operativsystemer har spesialversjoner for å støtte klyngearkitekturer som gir høy ytelse og feiltoleranse.

De siste årene har den langsiktige trenden med å øke bekvemmeligheten av menneskelig interaksjon med en datamaskin blitt videreutviklet. Menneskelig ytelse blir hovedfaktoren som bestemmer effektiviteten til datasystemet som helhet.

Bekvemmeligheten med interaktivt arbeid med en datamaskin blir stadig bedre ved å inkludere i operativsystemet utviklede grafiske grensesnitt som bruker lyd og video sammen med grafikk. Brukergrensesnitt Operativsystemet blir mer og mer intelligent, styrer menneskelige handlinger i typiske situasjoner og tar rutinemessige beslutninger for ham.

2. MathCAD-oppgave nr. 1 "Konstruksjon av todimensjonale grafer i MathCAD"

2.1 Oppgaveformulering

Tegn to grafer. Vis en tabell med verdier for en funksjon spesifisert i parametrisk form.

Tabell 1

Innledende data

2.2 Resultat - den resulterende grafen

Figur 1 - Oppgave 1

3. MathCAD-oppgave nr. 2 «Løse SLAE»

3.1 Oppgaveformulering

Finn en løsning på SLAE:

1. bruk av en invers matrise;

2. bruke den innebygde lsolve-funksjonen;

3. ved å bruke Given-Find beregningsblokken.

3.2 Resultat - gjennomført løsning

Figur 2 - Oppgave 2

4. MathCAD-oppgave nr. 3 "Løse systemer for ikke-lineære ligninger"

4.1 Oppgaveformulering

Løs et system med ikke-lineære ligninger.

Konstruer grafer av funksjoner som definerer likningene til systemet.

Kontroller grafisk riktigheten av løsningen.

operativsystem nettverk mathcad

4.2 Resultat - gjennomført løsning

Figur 3 - Oppgave 3

5. MathCAD-oppgave nr. 4 "Løse ikke-lineære ligninger"

5.1 Oppgaveformulering

Finn løsningen på den ikke-lineære ligningen:

1. bruke den innebygde rotfunksjonen;

2. bruke den innebygde polyroots-funksjonen;

5.2 Resultat - gjennomført løsning

Figur 4 - Oppgave 4

Lignende dokumenter

    Funksjoner i det moderne utviklingsstadiet av operativsystemer. Formål med operativsystemer, deres hovedtyper. Operativsystemer for minidatamaskiner. Driftsprinsippet for en matriseskriver, design og reproduksjon av vilkårlige tegn for dem.

    kursarbeid, lagt til 23.06.2011

    Grunnleggende konsepter om operativsystemer. Typer moderne operativsystemer. Historie om utviklingen av operativsystemer Windows-familien. Kjennetegn på operativsystemene til Windows-familien. Ny funksjonalitet til Windows 7-operativsystemet.

    kursarbeid, lagt til 18.02.2012

    Evolusjon og klassifisering av OS. Nettverksoperativsystemer. Minnehåndtering. Moderne konsepter og teknologier for utforming av operativsystemer. Operasjonsromfamilie UNIX-systemer. Novell nettverksprodukter. Microsofts nettverksoperativsystemer.

    kreativt arbeid, lagt til 11.07.2007

    Kjennetegn på essensen, formålet, funksjonene til operativsystemer. Karakteristiske trekk ved deres utvikling. Funksjoner av ressursstyringsalgoritmer. Moderne konsepter og teknologier for utforming av operativsystemer, krav til OS av det 21. århundre.

    kursarbeid, lagt til 01.08.2011

    Historien om utvikling og forbedring av Microsoft-operativsystemer, deres egenskaper og særtrekk fra systemer av andre merker, fordeler og ulemper. Nåværende situasjon og Microsofts operativsystemfunksjoner og -prospekter.

    abstrakt, lagt til 22.11.2009

    Formål og hovedfunksjoner til operativsystemer. Laster programmer som skal kjøres inn i RAM. Håndtere alle I/O-operasjoner. Evolusjon, klassifisering av operativsystemer. Utforming av lønnsoppgaver, sortering på avdelinger.

    kursarbeid, lagt til 17.03.2009

    Formål, klassifisering, sammensetning og formål med operativsystemkomponenter. Utvikling av komplekse informasjonssystemer, programvarepakker og individuelle applikasjoner. Kjennetegn på operasjonsstuer Windows-systemer, Linux, Android, Solaris, Symbian OS og Mac OS.

    kursarbeid, lagt til 19.11.2014

    Konseptet og grunnleggende funksjoner til operativsystemer, deres typiske struktur og operasjonsprinsipp. En kort historie om dannelsen og utviklingen av Windows-operativsystemer, deres varianter og generelle egenskaper, grunnleggende maskinvarekrav.

    presentasjon, lagt til 07.12.2011

    Grunnleggende konsepter for operativsystemer. Synkronisering og kritiske områder. Signaler og interaksjon mellom prosesser. Minnehåndtering. Enhetsdrivere. Funksjoner av moderne operativsystemer. Sentral prosessor, klokke og tidtakerbrikker.

    opplæring, lagt til 24.01.2014

    Konseptet med operativsystemer, deres klassifisering og varianter, særtrekk og grunnleggende egenskaper. Innhold i operativsystemer, rekkefølge for interaksjon og formål med komponentene. Organisasjon diskplass. Beskrivelse av moderne operativsystemer.

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 til datamaskinens inndataspråk, bruksmåter sentrale behandlingsenheter, driftsformer av systemer mv.

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 bibliotekprogrammer, standard- og tjenesteunderrutiner 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. reiste seg spesielle programmer tilgangsmetoder 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 f.eks kontrollpunkter, logiske tidtakere, evne 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. Dukket opp ulike former driftsmoduser for flere programmer, 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 MCP (hovedkontrollprogram) 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) - kompatibelt system tidsdeling, 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 de viktigste hendelsene i operativsystemets historie er utseendet i 1964 av 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 multiterminalmodus. 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 vært en betydelig endring i fordelingen av funksjoner mellom maskinvare og programvare. 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 raskt bytte programmer, støtteverktøy 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. Siden midten av 70-tallet begynte den utbredte bruken av UNIX OS, skrevet 90 % på språket C. Den utbredte bruken av C-kompilatorer gjorde UNIX til et unikt bærbart OS, og siden det ble levert med kildekode, ble det det første åpne operativsystem. 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.

Videre utvikling 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 en forutsetning for PC-operativsystemer. Både et brukervennlig grensesnitt og nettverksfunksjoner dukket imidlertid ikke opp på PC OS med en gang.

Den mest populære OS-versjonen av den tidlige utviklingen av personlige datamaskiner var Microsofts MS-DOS, et enkelt-program, 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 ble Microsofts nettverksprodukter utgitt - MS-NET, og senere - LAN Manager, Windows for Workgroup og deretter Windows NT.

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