Udviklingen af ​​operativsystemer. Udvikling af operativsystemer på forskellige typer computere


All-Russian Correspondence Financial and Economic Institute

Fakultet: finans - kredit

Speciale: økonomi- og kreditaftengruppe

Kursusarbejde

I faget "Informatik"

Om emnet "Formål, klassificering og evolution operativsystemer»

Moskva - 2008

Introduktion
1 Formål med operativsystemer 5

2 Lad os liste hovedfunktionerne af operativsystemer 9

2.2 Service af alle I/O-operationer 9

3 Evolution og klassificering af OS
Konklusion 2
Referencer 22

Introduktion

Operativsystemet (OS) er grundlaget for systemsoftwaren, som styrer den første opstart af computeren, styrer driften af ​​alle dens enheder og kontrollerer deres funktionalitet, styrer computerens filsystem, indlæser brugerapplikationer og fordeler computerressourcer mellem dem , understøtter brugergrænsefladen osv. Kendte familier af operativsystemer omfatter DOS, WINDOWS, UNIX, NETWARE osv.

Et operativsystem (OS) er et sæt programmer, der udfører to funktioner: at give brugeren bekvemmeligheden ved en virtuel maskine og øge effektiviteten ved at bruge en computer, mens dens ressourcer styres rationelt.

Computerprocessoren udfører instruktioner givet på maskinsprog. Direkte forberedelse af sådanne kommandoer kræver, at brugeren har kendskab til sproget og detaljerne i konstruktionen og interaktionen af ​​hardware. Så for eksempel for at få adgang til information, der er lagret på et magnetisk medium, er det nødvendigt at angive bloknumrene på disken og sektornumrene på sporet, bestemme tilstanden af ​​motoren af ​​mekanismen til at flytte udlæsningsoptagehovederne , opdage tilstedeværelsen og typer af fejl, udføre deres analyse osv. Kræv denne viden fra alle brugere er næsten umuligt. Derfor opstod behovet for at oprette et OS - et sæt programmer, der skjuler funktionerne i den fysiske placering af information for brugeren og udfører afbrydelsesbehandling, timerstyring og RAM. Som et resultat er brugeren forsynet med en virtuel maskine, der implementerer arbejde på det logiske niveau.

1 Formål med operativsystemer

Operativsystemer henviser til systemsoftware. Al software er opdelt i system og applikation. Systemsoftware inkluderer normalt sådanne programmer og programkomplekser, der er almindelige, uden hvilke det er umuligt at udføre eller oprette andre programmer. Historien om fremkomsten og udviklingen af ​​systemsoftware begyndte fra det øjeblik, hvor folk indså, at ethvert program kræver datainput/outputoperationer. Dette skete i de fjerne 50'ere af forrige århundrede. Selve operativsystemerne dukkede op lidt senere.

På samme måde kan outputtet af resultaterne organiseres, for eksempel på passende enheder og i en form, der er passende for menneskelig opfattelse. Eller beregningsresultaterne sendes af programmet til nogle aktuatorer, der styres af en computer. Endelig kan vi organisere registreringen af ​​de opnåede værdier på nogle datalagringsenheder (med henblik på deres videre behandling).

I/O-programmering er et af de mest tidskrævende områder inden for softwareudvikling. Dette handler ikke om at bruge udsagn som LÆS eller SKRIV på højt niveau sprog. Vi taler om behovet for at oprette et underprogram i maskinform, klar til udførelse på en computer, og ikke skrevet ved hjælp af et eller andet programmeringssystem (der var ingen programmeringssystemer på det tidspunkt), et underprogram, der i stedet for konventionelle beregninger styrer enhed, der skal deltage i input operationsdata eller konklusioner af resultater. Hvis der er en sådan underrutine, kan programmøren få adgang til den lige så mange gange som det antal I/O-operationer, han har brug for med denne enhed. For at udføre dette arbejde er det ikke nok for en programmør at have et godt kendskab til computerkompleksets arkitektur og være i stand til at lave programmer i assemblersprog. Han skal kende både grænsefladen, som enheden er forbundet med den centrale del af computeren, og algoritmen for driften af ​​I/O-enhedens kontrolenhed.

Det gav naturligvis mening at lave et sæt rutiner til styring af I/O-operationer og bruge dem i dine programmer, for ikke at tvinge programmører til at omprogrammere alle disse operationer hver gang. Det var her, systemsoftwarens historie begyndte. Efterfølgende begyndte et sæt input-output-rutiner at blive organiseret i form af et særligt input-output-bibliotek, og så dukkede selve operativsystemerne op. Hovedårsagen til deres udseende var ønsket om at automatisere processen med at forberede et computerkompleks til programudførelse.

I 50'erne var brugerinteraktionen med computersystemet helt anderledes, end den er nu. En programmør-koder (fra det engelske coder - encoder) - en specialuddannet specialist, der kender computerens arkitektur og programmeringssprog - kompilerede efter anmodning programmets tekst, ofte ved hjælp af en færdiglavet algoritme udviklet af en programmør-algoritmist. Teksten til dette program blev derefter givet til operatøren, som skrev den på specielle enheder og overførte den til det relevante medie. Oftest blev hulkort eller hulbånd brugt som medie. Derefter blev bunken med hulkort overført til computerrummet, hvor det var påkrævet til beregninger ved hjælp af dette program følgende handlinger:

1. Operatøren af ​​computerkomplekset fra fjernbetjeningen indlæste i centralprocessorens arbejdsregistre og i computerens RAM det indledende program, der gjorde det muligt at læse et program til at oversætte kildekoder og opnå en maskine (binær) i hukommelsen. program (med andre ord en oversætter, som også var gemt på hulkort eller hulbånd).

2. Oversætteren læste kildeprogrammet, udførte en leksikalsk analyse af kildeteksten, og de mellemliggende resultater af oversættelsesprocessen blev ofte også udskrevet til hulkort (hullet bånd). Oversættelse er en kompleks proces, der ofte kræver flere beståelser. Nogle gange, for at udføre det næste gennemløb, var det nødvendigt at indlæse både den næste del af oversætteren og de mellemliggende resultater af oversættelsen fra hulkort i computerens hukommelse. Resultatet af udsendelsen blev trods alt også vist på lagringsmedier, da mængden af ​​RAM var lille, og opgaven med at sende var meget vanskelig opgave.

3. Operatøren indlæste de modtagne binære koder for det oversatte program i computerens RAM og indlæste de binære koder for de systemunderrutiner, der styrede input-output operationer. Herefter kunne det færdige program, placeret i hukommelsen, selv læse kildedataene og udføre de nødvendige beregninger. Hvis der blev opdaget fejl på et af disse stadier eller efter at have analyseret de opnåede resultater, skulle hele cyklussen gentages.

For at automatisere arbejdet i en programmør (koder) begyndte der at blive udviklet specielle algoritmiske sprog på højt niveau, og for at automatisere arbejdet for en computerkompleks operatør blev der udviklet et specielt kontrolprogram ved at indlæse det i hukommelsen én gang, operatøren kunne derefter bruge den gentagne gange og ikke længere behøver at henvise til via fjernbetjeningen. Det var dette kontrolprogram, der kom til at hedde styresystemet. Med tiden begyndte flere og flere opgaver at blive tildelt den, og den begyndte at vokse i volumen. Først og fremmest søgte udviklerne at sikre, at styresystemet distribuerede computerens computerressourcer så effektivt som muligt, fordi operativsystemerne allerede i 60'erne gjorde det muligt at organisere parallel eksekvering af flere programmer. Ud over problemerne med ressourcefordelingen er der opstået problemer med at sikre pålideligheden af ​​beregninger. I begyndelsen af ​​70'erne blev den interaktive måde at arbejde med en computer på fremherskende, og operativsystemer begyndte hurtigt at udvikle grænsefladeegenskaber. Udtrykket interface betyder hele komplekset specifikationer, der definerer en bestemt måde, en bruger kan interagere med en computer på.

I dag kan man konstatere, at operativsystemet (OS) er et sæt af systemstyrings- og behandlingsprogrammer, som på den ene side fungerer som en grænseflade mellem computerhardwaren og brugeren med dennes opgaver, og på den anden side er designet til den mest effektive brug af ressourcer computing system og organisering af pålidelig computing.

2 Vi lister hovedfunktionerne af operativsystemer

Brugerens (eller systemoperatørens) modtagelse af opgaver eller kommandoer formuleret på det relevante sprog og deres behandling. Opgaver kan overføres i form af tekstdirektiver (kommandoer) fra operatøren eller i form af instruktioner, der udføres ved hjælp af en manipulator (for eksempel ved hjælp af en mus). Disse kommandoer er forbundet med at starte (pause, stoppe) programmer, med handlinger på filer (få en liste over filer i den aktuelle mappe, oprette, omdøbe, kopiere, flytte en bestemt fil osv.), selvom der også er andre kommandoer.

Hukommelsestildeling, og i de fleste tilfælde moderne systemer og organisering af virtuel hukommelse.

Kørsel af et program (overførsel af kontrol til det, hvilket får processoren til at udføre programmet).

Modtag og brug forskellige anmodninger fra kørende applikationer. Operativsystemet kan yde meget et stort antal af systemfunktioner (tjenester), der kan rekvireres fra et kørende program. Disse tjenester tilgås i henhold til de relevante regler, der definerer Application Program Interface (API) for dette operativsystem.

2.2 Vedligeholdelse af alle I/O-operationer

Sikring af driften af ​​filhåndteringssystemer (FMS) og/eller databasestyringssystemer (DBMS), som dramatisk kan øge effektiviteten af ​​al software.

Tilvejebringelse af multiprogrammeringstilstand, det vil sige at organisere den parallelle udførelse af to eller flere programmer på en processor, hvilket skaber udseendet af deres samtidige udførelse.

Planlægning og afsendelse af opgaver i overensstemmelse med dem, der er specificeret mellem kørende programmer.

Netværksoperativsystemer er kendetegnet ved funktionen at sikre interaktionen mellem indbyrdes forbundne computere.

Organisering af mekanismer til udveksling af beskeder og data mellem kørende programmer.

Beskyttelse af et program mod påvirkning af et andet, sikring af datasikkerhed, beskyttelse af selve operativsystemet mod programmer, der kører på computeren.

Brugergodkendelse og -autorisation (for de fleste interaktive operativsystemer). Autentificering refererer til proceduren for at kontrollere en brugers navn og adgangskode i forhold til de værdier, der er gemt på hans konto. Det er klart, at hvis en brugers loginnavn og adgangskode er det samme, vil det højst sandsynligt være den samme bruger. Begrebet autorisation betyder, at der iht konto En autentificeret bruger tildeles visse rettigheder (privilegier), der bestemmer, hvad han kan gøre på computeren (og alle anmodninger, der vil blive sendt til operativsystemet på hans vegne).

Opfylder strenge reaktionstidsbegrænsninger i realtid (typisk for et realtidsoperativsystem).

Sikring af driften af ​​programmeringssystemer, som brugerne forbereder deres programmer med.

Ydelse af tjenester i tilfælde af delvis systemfejl.

Operativsystemet isolerer computerhardwaren fra brugerens applikationsprogrammer. Både brugeren og hans programmer interagerer med computeren gennem operativsystemets grænseflader.

3 Udvikling og klassificering af OS

Udviklingen af ​​operativsystemet skyldes i høj grad forbedringen af ​​computerhardware.

Programmering af tube computing-enheder rettet mod at løse specialiserede applikationsproblemer blev udført i maskinsprog (et programmeringssprog, der repræsenterer et program i en form, der gør det muligt at udføre det direkte ved hjælp af tekniske databehandlingsmidler). Organisation computerproces i dette tilfælde blev det udført manuelt af vedligeholdelsespersonale fra kontrolpanelet. Der var praktisk talt ingen operativsystemer til disse computere.

Computere bygget på halvlederelementer blev mere kompakte, pålidelige og blev brugt til at løse en bredere klasse af anvendte problemer. De første algoritmiske sprog, compilere (kompilatorer er programmer, der bruges til kompilering - oversættelse af et program skrevet i et algoritmisk sprog til et sprog tæt på maskinsprog) og batchbehandlingssystemer dukkede op. Disse systemer var prototypen på moderne operativsystemer. Deres hovedformål er at øge processorbelastningen.

Overgang fra individ halvlederelementer type transistorer til integrerede kredsløb blev ledsaget af skabelsen af ​​familier af softwarekompatible maskiner, for eksempel IBM/360-familien, EC-computere. Operativsystemerne på disse computere var orienteret mod at servicere computersystemer med en række forskellige perifere enheder og inden for forskellige aktivitetsområder. Et træk ved sådanne operativsystemer er multiprogrammering - en metode til at organisere en computerproces, hvor flere applikationer skiftevis udføres på en processor. For eksempel, mens en applikation udfører I/O-operationer, udfører processoren beregningsoperationer på en anden. Dannet ny type OS er et tidsdelingssystem, der giver hver bruger mulighed for at skabe illusionen om at arbejde alene med computeren. Fremkomsten af ​​integrerede kredsløb i stor skala (LSI) og integrerede kredsløb i meget stor skala (VLSI) sikrede den udbredte brug af computere og deres anvendelse af ikke-programmeringsspecialister. Dette krævede udvikling af en venlig, intuitiv softwaregrænseflade. Udviklingen af ​​kommunikationsmidler har ført til udviklingen af ​​netværksoperativsystemer.

Følgende krav gælder for moderne operativsystemer:

Kompatibilitet - OS skal omfatte værktøjer til at køre applikationer forberedt til andre operativsystemer;

Portabilitet – sikring af muligheden for at overføre operativsystemet fra en hardwareplatform til en anden;

Pålidelighed og fejltolerance – involverer beskyttelse af operativsystemet mod interne og eksterne fejl, fejl og fejl;

Sikkerhed – OS skal indeholde midler til at beskytte nogle brugeres ressourcer mod andre;

Udvidelsesmuligheder – OS skal gøre det nemt at foretage efterfølgende ændringer og tilføjelser;

Ydeevne – systemet skal have tilstrækkelig hastighed.

OS klassifikation. Typisk foregår kommunikationen mellem en bruger og en maskine interaktivt. I dette tilfælde bestemmes tempoet i problemløsningen af ​​brugerens reaktion. Hvis vi tager brugerens reaktionstid som konstant, så kan vi antage, at opgavens kompleksitet er begrænset af hastigheden af ​​tekniske midler (om nødvendigt øges den med omfattende metoder: brugen af ​​hurtigere hardwarekomponenter, brugen af ​​multiprocessor eller multi-maskine systemer). Men dette er en ensidig tilgang. Enorme muligheder ligger i organisatoriske tiltag, som omfatter valg af optimale driftsformer og servicediscipliner; begge er implementeret af operativsystemer.

PC-driftstilstande er primært bestemt af antallet af opgaver, der løses parallelt på maskinen (programmer, der implementeres). Baseret på dette kriterium er operativsystemer opdelt i multi-tasking og single-tasking, der understøtter og ikke understøtter multi-threaded processing, multi-user og single-user, multi-processor og single-processor.

Baseret på antallet af samtidig udførte opgaver skelnes operativsystemer:

Single-tasking operativsystemer (MS-DOS, tidlige versioner af PS DOS);

Multitasking (OS/2, UNIX, Windows).

Operativsystemer med én opgave giver brugeren en virtuel maskine og inkluderer filhåndteringsværktøjer, perifere enheder og midler til at kommunikere med brugeren. Multitasking OS'er styrer desuden opdelingen af ​​delte ressourcer mellem opgaver. Blandt mulighederne for at implementere multitasking er der to grupper af algoritmer til fordeling af processortid:

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

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

I det første tilfælde, efter afslutning, overfører den aktive proces selv kontrol til OS for at vælge en anden proces fra køen. I den anden tages beslutningen om at skifte en proces fra én proces til en anden ikke af den aktive proces, men af ​​OS.

Multi-threading-understøttelse indebærer muligheden for at udføre nogle programkommandoer på næsten samme tidspunkt. Et multi-threaded OS deler processortiden ikke mellem opgaver, men mellem separate grene (tråde) af algoritmer til at løse dem (multitasking inden for én opgave).

Baseret på antallet af samtidige brugere skelnes operativsystemer:

Enkeltbruger (MS-DOS, Windows 3. x, tidlige versioner af OS/2);

Flerbruger (UNIX, Windows NT).

Forskellen mellem flerbrugersystemer er tilgængeligheden af ​​midler til at beskytte brugeroplysninger mod uautoriseret adgang.

Multiprocessing involverer understøttelse af driften af ​​flere processorer og er velkommen i Solaris 2. x OS fra Sun, OS/2 fra IBM, Windows NT fra Microsoft, NetWare 4.1. Novell osv.

Multiprocessor-operativsystemer er opdelt i asymmetriske og symmetriske. Et asymmetrisk OS kører på en af ​​systemprocessorerne og fordeler applikationsopgaver på tværs af de resterende processorer. Et symmetrisk OS er decentraliseret og bruger alle processorer, fordeler system- og applikationsopgaver mellem dem.

Det er indlysende, at operativsystemet på en personlig computer er mindre komplekst end operativsystemet på mainframes og supercomputere. Forskellen mellem et netværks-OS og et lokalt OS er midlerne til at overføre data mellem computere over kommunikationslinjer og implementere dataoverførselsprotokoller, for eksempel IP, IPX osv.

Ud over OS'er, der er fokuseret på en bestemt type hardwareplatform, er der mobile OS'er, der nemt kan overføres til forskellige typer computere. I sådanne OS (f.eks. UNIX) er hardwareafhængige steder lokaliseret, og når systemet overføres til ny platform sms'er. Den hardware-uafhængige del er implementeret i et programmeringssprog på højt niveau i C, og genkompileres ved flytning til en anden platform.

Dynamisk omfordeling af pc-ressourcer mellem flere opgaver (kollektiv brugsmetode) sikrer enten en reduktion i den samlede tid til løsning af flere opgaver, eller en reduktion i starttidspunktet for opgavebehandlingen. Begge med én "serviceenhed", for eksempel en processor eller printer, opnås ved at øge den tid, det tager at løse én (hver) opgave. Rækkefølgen af ​​opgaver i maskinen bestemmer implementeringstilstandene for den kollektive brugsmetode: batchbehandling og tidsdeling. Batchbehandling involverer løsning af flere problemer på nogenlunde samme måde, som en lærer arbejder under en mundtlig eksamen - hans opmærksomhed er optaget af en af ​​eleverne. Efter afslutning af undersøgelsen skifter opmærksomheden til den næste (vi antager, at betjening af elever er løsningen på problemet).

I tidsdelingstilstand er programafviklingsprocessen opdelt i cyklusser. Inde i hver cyklus vises den grundlæggende opgave, som denne cyklus er allokeret til, nødvendigvis (hvis den endnu ikke er løst). De resterende problemer kan løses i samme cyklus, hvis deres løsning ikke forstyrrer løsningen af ​​den grundlæggende. Nabosløjfer er allokeret til at løse forskellige problemer, så den tid, der kræves til at løse hver af dem, øges betydeligt. Samtidig bruges der ikke mere end N-1 cyklusser på at vente på, at den næste del af opgaven er afsluttet (N er antallet af forskellige cyklusser, der er allokeret til at løse N forskellige opgaver). Med et passende valg af cyklusvarighed skaber brugeren (på grund af sin inerti) illusionen om at arbejde i realtid. Realtidsarbejde er en driftstilstand, hvor der er maksimale begrænsninger på tiden til at løse et problem, der pålægges af det eksterne miljø. For et kontrolsystem betyder det, at informationsbehandlingen skal forløbe med en hastighed, der overstiger hastigheden af ​​den faktiske kontrollerede proces, således at der er en vis tid til at træffe beslutninger og danne passende kontrolhandlinger.

Det er typisk for virkelige arbejdsforhold, at tidspunkterne, hvor opgaver modtages til behandling, ikke bestemmes af serviceanordningens driftshastighed (pc, printer osv.), men af ​​processer, der forekommer uden for den. I overensstemmelse hermed skal serviceanordningen løse et bestemt sæt opgaver (reaktion på udstyrsfejl, ansøgning om kommunikation i netværket, tvungen oprettelse sikkerhedskopi etc.).

Med den endelige hastighed af serviceanordningen kan indgående anmodninger ikke udføres med det samme, men sættes i kø. Processen med at vælge en anmodning fra sættet af dem, der afventer service, kaldes afsendelse, og afsendelsesreglen kaldes tjenestedisciplin. Der er mange servicediscipliner, for eksempel “i rækkefølge af ankomst” (FIFO – First Input First Output), “i omvendt rækkefølge” (LIFO – Last Input First Output) osv. For at reducere ventetiden (tid brugt i kø) , får individuelle anmodninger prioritetsrettigheder til service, kaldet prioritet, som er karakteriseret ved et positivt heltal. Den højeste prioritet er tildelt til OS.

Så når de opretter binære maskinprogrammer, kender applikationsprogrammører måske ikke engang mange af detaljerne ved styring af specifikke ressourcer i et computersystem, men behøver kun at få adgang til et bestemt softwareundersystem med de relevante opkald og modtage de nødvendige funktioner og tjenester fra det. Dette softwareundersystem er operativsystemet, og sættet af dets funktioner og tjenester, samt reglerne for adgang til dem, udgør det grundlæggende koncept, som vi kalder driftsmiljøet. Vi kan sige, at udtrykket "driftsmiljø" betyder de tilsvarende grænseflader, der er nødvendige for, at programmer og brugere kan få adgang til styre- (tilsyns-) delen af ​​operativsystemet for at opnå visse tjenester.

Der er mange systemfunktioner; de bestemmer de muligheder, som operativsystemet giver til programmer, der kører under dets kontrol. Disse typer systemanmodninger (kald af systemoperationer eller funktioner) er enten eksplicit skrevet i programteksten af ​​programmører eller indsættes automatisk af selve programmeringssystemet på tidspunktet for oversættelse af kildeteksten til det program, der udvikles. Hvert operativsystem har sit eget udvalg af systemfunktioner; de kaldes i overensstemmelse hermed i henhold til de regler, der er accepteret i systemet. Sættet af systemkald og reglerne for, hvordan de skal bruges, definerer applikationsprogrammeringsgrænsefladen (API) præcist. Det er klart, at et program, der er designet til at køre på et operativsystem, højst sandsynligt ikke vil fungere på et andet operativsystem, da disse operativsystemers API'er er forskellige. I et forsøg på at overvinde denne begrænsning begyndte operativsystemudviklere at skabe såkaldte softwaremiljøer. Software- (system)miljøet skal forstås som et bestemt systemsoftwaremiljø, der giver dig mulighed for at opfylde alle systemanmodninger fra applikationsprogrammet. Systemsoftwaremiljøet, der er direkte dannet af operativsystemkoden, kaldes det primære, naturlige eller oprindelige miljø. Ud over hovedoperativmiljøet kan yderligere softwaremiljøer organiseres i operativsystemet (ved at emulere et andet operativmiljø). Hvis operativsystemet organiserer arbejde med forskellige operativsystemer, så er det i et sådant system muligt at køre programmer, der er oprettet ikke kun til dette, men også til andre operativsystemer. Vi kan sige, at programmer er skabt til at fungere i et givet driftsmiljø. For eksempel kan du oprette et program til at køre i DOS-miljøet. Hvis et sådant program udfører alle funktioner relateret til operationer med I/O-operationer og hukommelsesanmodninger ikke af sig selv, men ved at få adgang til DOS-systemfunktioner, så vil det (i langt de fleste tilfælde) blive udført med succes både i MS DOS og i PS DOS og i Windows 9x og i Windows 2000 og i OS/2 og endda i Linux.

Så den parallelle eksistens af udtrykkene "operativsystem" og "operativmiljø" skyldes, at et operativsystem kan understøtte flere operativsystemer. Næsten alle moderne 32-bit operativsystemer skabt til personlige computere understøtter flere operativsystemer. Således kan OS/2 Warp-operativsystemet, som på et tidspunkt var et af de bedste i denne henseende, køre følgende programmer:

Grundlæggende programmer oprettet under hensyntagen til den tilsvarende "native" 32-bit programmeringsgrænseflade i dette operativsystem;

16-bit programmer skabt til førstegenerations OS/2-systemer;

16-bit applikationer designet til at køre på MS DOS eller PS DOS operativsystemet;

16-bit applikationer oprettet til Windows 3. x-operativmiljøet;

Selve betjeningsskallen er Windows 3. x og allerede i den er der oprettet programmer til den.

Og Windows XP-operativsystemet giver dig mulighed for at køre, ud over de vigtigste applikationer, der er oprettet ved hjælp af Win32API, 16-bit applikationer til Windows 3. x, 16-bit DOS-applikationer, 16-bit applikationer til den første version af OS/2.

Driftsmiljøet kan omfatte flere grænseflader: bruger og software. Hvis vi for eksempel taler om brugere, har Linux-systemet begge grænseflader til brugeren kommandolinje(du kan bruge forskellige "skaller" - shell), som Norton Commander, for eksempel X-Window med forskellige vinduesadministratorer - KDE, Gnome osv. Hvis vi taler om software interfaces, derefter i de samme operativsystemer med en fælles kaldet Linux programmer kan få adgang til både operativsystemet for passende tjenester og funktioner og grafikundersystemet (hvis det bruges). Fra processorarkitekturens synspunkt (og den personlige computer generelt) bruger et binært program, der er oprettet til at køre i et Linux-miljø, de samme kommandoer og dataformater som et program, der er oprettet til at køre i et Windows NT-miljø. Men i det første tilfælde har vi adgang til et driftsmiljø, og i det andet - til et andet. Og et program skrevet direkte til Windows vil ikke køre på Linux; Hvis et fuldgyldigt Windows-operativmiljø er organiseret i Linux OS, så kan vores Windows-program køres. Generelt er driftsmiljøet systemsoftwaremiljøet, hvor programmer, der er oprettet i overensstemmelse med reglerne for driften af ​​dette miljø, kan udføres.

Konklusion

Så operativsystemet udfører funktionerne til at styre beregninger i en computer, distribuerer computersystemressourcer mellem forskellige computerprocesser og danner softwaremiljøet, hvori brugerapplikationer udføres. Dette miljø kaldes et driftsmiljø. Sidstnævnte skal forstås på den måde, at når programmet startes, vil det kontakte operativsystemet med passende anmodninger om at udføre visse handlinger eller funktioner. Operativsystemet udfører disse funktioner ved at starte et specielt system software moduler, inkluderet i dens sammensætning.

I i øjeblikket omkring 90 % af personlige computere bruger Windows OS, hvilket har en række fordele og har tvunget konkurrenter ud af dette markedssegment. En bredere klasse af OS er målrettet til brug på servere. Denne klasse af operativsystemer inkluderer: Unix-familien, udviklinger fra Microsoft, netværksprodukter fra Novell og IBM Corporation.

Computerressourcer omfatter: processorer, hukommelse, diskdrev, netværkskommunikation, printere og andre enheder. OS'ets funktion er at fordele disse ressourcer rationelt mellem processer for at sikre maksimal effektivitet af computeren.

Liste over brugt litteratur

Gordeev A.V. Operativsystemer: Lærebog for universiteter 2. udg. – Skt. Petersborg: Peter, 2005.

Grundlæggende om datalogi: Lærebog. godtgørelse / A.N. Morozevich, N.N. Govyadinova, V.G. Levashenko og andre; Redigeret af A.N. Morozevich. – 2. udg., rev. – Mn.: Ny viden, 2003.

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

Informatik i økonomi: Proc. manual / udg. prof. VÆRE. Odintsova, prof. A.N. Romanova. – M.: Universitetets lærebog, 2008.

Karakteristika for essensen, formålet, funktionerne af operativsystemer. Karakteristiske træk ved deres udvikling. Funktioner af ressourcestyringsalgoritmer. Moderne koncepter og teknologier til design af operativsystemer, krav til OS i det 21. århundrede.

INTRODUKTION

1. Udvikling af OS

1.1 Første periode (1945 -1955)

1.2 Anden periode (1955 - 1965)

1.3 Tredje periode (1965 - 1980)

1.4 Fjerde periode (1980-nutid)

2. OS klassificering

2.1 Funktioner af ressourcestyringsalgoritmer

2.2 Funktioner ved hardwareplatforme

2.3 Funktioner ved anvendelsesområder

2.4 Træk af byggemetoder

3. Moderne koncepter og teknologier til at designe operativsystemer, krav til OS i det 21. århundrede

Konklusion

Liste over brugt litteratur

INTRODUKTION

Historien om enhver gren af ​​videnskab eller teknologi giver os mulighed for ikke kun at tilfredsstille naturlig nysgerrighed, men også bedre at forstå essensen af ​​denne industris vigtigste resultater, forstå eksisterende tendenser og korrekt vurdere udsigterne for visse udviklingsområder. I løbet af næsten et halvt århundrede af deres eksistens har operativsystemer gennemgået en vanskelig vej, fuld af mange vigtige begivenheder. Udviklingen af ​​operativsystemer var i høj grad påvirket af succeser med at forbedre elementbasen og computerudstyret, så mange stadier af OS-udvikling er tæt forbundet med fremkomsten af ​​nye typer hardwareplatforme, såsom mini-computere eller personlige computere. Operativsystemer har gennemgået en stor udvikling på grund af computernes nye rolle i lokale og globale netværk. Den vigtigste faktor OS-udvikling blev internettet. Efterhånden som dette netværk får funktionerne fra et universelt middel til massekommunikation, bliver operativsystemerne mere enkle og bekvemme at bruge, de omfatter udviklede midler til at understøtte multimedieinformation og er udstyret med pålidelige sikkerhedsforanstaltninger.

Formålet med dette kursus arbejde er en beskrivelse og analyse af udviklingen af ​​operativsystemer.

Målet nås gennem følgende opgaver:

Overvej det historiske aspekt af fremkomsten af ​​operativsystemer;

Identificer og overvej stadierne i udviklingen af ​​operativsystemer.

Det er nødvendigt at bemærke, at det ikke er tilstrækkeligt dækket i litteraturen, hvilket har gjort undersøgelsen vanskelig.

I løbet af undersøgelsen blev der udført en kort analyse af sådanne kilder som materialer fra webstedet http://www.microsoft.com/rus, materialer fra Windows NT Magazine og andre.

Arbejdet består af tre kapitler: indledning, konklusion og referenceliste.

1 . OS udvikling

1.1 Første periode (1945 -1955)

Det er kendt, at computeren blev opfundet af den engelske matematiker Charles Babage i slutningen af ​​det attende århundrede. Hans "analytiske motor" var aldrig i stand til at fungere rigtigt, fordi datidens teknologier ikke opfyldte kravene til fremstilling af præcisionsmekaniske dele, der var nødvendige for computerteknologi. Det er også kendt, at denne computer ikke havde et operativsystem.

Nogle fremskridt med at skabe digital computere fandt sted efter Anden Verdenskrig. I midten af ​​40'erne blev de første rørcomputerenheder skabt. På det tidspunkt deltog den samme gruppe mennesker i design, drift og programmering af computeren. Det var mere et forskningsarbejde inden for computerteknologi, frem for brugen af ​​computere som et værktøj til at løse evt. praktiske problemer fra andre anvendelsesområder. Programmeringen blev udelukkende udført i maskinsprog. Der var ikke tale om operativsystemer; alle opgaver med at organisere computerprocessen blev løst manuelt af hver programmør fra kontrolpanelet. Der var ingen anden systemsoftware end biblioteker med matematiske rutiner og hjælpeprogrammer.

1.2 Anden periode (1955 - 1965)

Siden midten af ​​50'erne begyndte en ny periode i udviklingen af ​​computerteknologi, forbundet med fremkomsten af ​​en ny teknisk base - halvlederelementer. Anden generations computere blev mere pålidelige, nu var de i stand til at arbejde kontinuerligt så længe, ​​at de kunne blive betroet til at udføre virkelig praktisk vigtige opgaver. Det var i denne periode, at personalet blev opdelt i programmører og operatører, operatører og computerudviklere.

I løbet af disse år dukkede de første algoritmiske sprog op, og følgelig de første systemprogrammer - kompilatorer. Omkostningerne til CPU-tid er steget, hvilket kræver en reduktion i tidsomkostningerne mellem programkørsler. De første batchbehandlingssystemer dukkede op, som simpelthen automatiserede lanceringen af ​​det ene program efter det andet og derved øgede processorbelastningsfaktoren. Batchbehandlingssystemer var prototypen på moderne operativsystemer; de blev de første system programmer, designet til at styre computerprocessen. Under implementeringen af ​​batchbehandlingssystemer blev der udviklet et formaliseret opgavestyringssprog, ved hjælp af hvilket programmøren informerede systemet og operatøren om, hvilket arbejde han ønskede at udføre på computeren. En samling af flere opgaver, normalt i form af et spil hulkort, kaldes en opgavepakke.

1.3 Tredje periode (1965 - 1980)

Den næste vigtige periode i udviklingen af ​​computere går tilbage til 1965-1980. På dette tidspunkt skete der en overgang i det tekniske grundlag fra individuelle halvlederelementer som transistorer til integrerede kredsløb, hvilket gav langt større muligheder for den nye, tredje generation af computere.

Denne periode var også præget af skabelsen af ​​familier af softwarekompatible maskiner. Den første familie af softwarekompatible maskiner bygget på integrerede kredsløb var IBM/360-serien af ​​maskiner. Denne familie blev bygget i begyndelsen af ​​60'erne og var væsentligt overlegen i forhold til andengenerationsmaskiner med hensyn til pris/ydelse. Snart blev ideen om softwarekompatible maskiner generelt accepteret.

Softwarekompatibilitet krævede også operativsystemkompatibilitet. Sådanne operativsystemer vil skulle køre på både store og små computersystemer med stort og lille antal forskellige perifere enheder i de kommercielle og kommercielle domæner. videnskabelig undersøgelse. Operativsystemer bygget til at opfylde alle disse modstridende krav viste sig at være ekstremt komplekse monstre. De bestod af mange millioner linjer med samlingskode, skrevet af tusindvis af programmører, og indeholdt tusindvis af fejl, hvilket forårsagede en endeløs strøm af rettelser. Med hver ny version af operativsystemet blev nogle fejl rettet, og andre blev introduceret.

På samme tid, trods sin enorme størrelse og mange problemer, opfyldte OS/360 og andre lignende operativsystemer på tredjegenerationsmaskiner faktisk de fleste forbrugerkrav. Den vigtigste præstation af OS af denne generation var implementeringen af ​​multiprogrammering. Multiprogrammering er en måde at organisere en computerproces, hvor flere programmer skiftevis udføres på én processor. Mens et program udfører en I/O-operation, er processoren ikke inaktiv, som det var tilfældet ved afvikling af programmer sekventielt (enkeltprogramtilstand), men udfører et andet program (multiprogramtilstand). I dette tilfælde indlæses hvert program i sin egen sektion af RAM, kaldet en partition.

En anden nyskabelse er spooling. Spooling på det tidspunkt blev defineret som en måde at organisere computerprocessen på, ifølge hvilken opgaver blev læst fra hulkort til disk i det tempo, hvormed de dukkede op i computercentret, og derefter, når den næste opgave var fuldført, en ny opgaven blev indlæst fra disken til den gratis partition.

Sammen med multiprogramimplementeringen af ​​batchbehandlingssystemer er der opstået en ny type OS - tidsdelingssystemer. Multiprogrammeringsmuligheden, der bruges i tidsdelingssystemer, har til formål at skabe for hver enkelt bruger en illusion af udelukkende brug af computeren.

1.4 Fjerde periode (1980-nutid)

Den næste periode i udviklingen af ​​operativsystemer er forbundet med fremkomsten af ​​storskala integrerede kredsløb (LSI). I disse år skete der en kraftig stigning i integrationsgraden og en reduktion i omkostningerne til mikrokredsløb. Computeren blev tilgængelig for den enkelte, og de personlige computeres æra begyndte. Fra et arkitektonisk synspunkt var personlige computere ikke anderledes end klassen af ​​minicomputere som PDP-11, men deres priser var væsentligt forskellige. Hvis minicomputeren gjorde det muligt for en afdeling i en virksomhed eller et universitet at have sin egen computer, så gjorde den personlige computer dette muligt for en person.

Computere blev meget brugt af ikke-specialister, hvilket krævede udvikling af "venlig" software, som satte en stopper for programmørernes kaste.

Operativsystemmarkedet var domineret af to systemer: MS-DOS og UNIX. MS-DOS OS med et enkelt program, en enkelt bruger, blev meget brugt til computere bygget på Intel 8088 og senere 80286, 80386 og 80486. Multi-program, multi-user UNIX OS dominerede blandt "ikke-Intel" computere , især dem, der er bygget på højtydende RISC-processorer.

I midten af ​​80'erne begyndte netværk af personlige computere, der kørte under netværk eller distribuerede operativsystemer, hurtigt at udvikle sig.

I netværksbaserede operativsystemer skal brugere være opmærksomme på tilstedeværelsen af ​​andre computere og skal logge ind på en anden computer for at bruge dens ressourcer, primært filer. Hver maskine på netværket kører sit eget lokale operativsystem, som adskiller sig fra operativsystemet på en stand-alone computer ved, at det indeholder yderligere værktøjer, der gør det muligt for computeren at arbejde på netværket. Netværkets OS har ingen grundlæggende forskelle fra operativsystemet på en computer med én processor. Den indeholder nødvendigvis softwareunderstøttelse til netværksinterfaceenheder (driver Netværksadapter), samt værktøjer til fjernlogin til andre computere på netværket og værktøjer til at få adgang til fjernfiler, men disse tilføjelser ændrer ikke markant strukturen af ​​selve operativsystemet.

2. OS klassificering

Operativsystemer kan variere i implementeringsfunktioner interne algoritmer styring af de vigtigste computerressourcer (processorer, hukommelse, enheder), funktioner i de anvendte designmetoder, typer af hardwareplatforme, anvendelsesområder og mange andre egenskaber.

Nedenfor er en klassificering af OS i henhold til flere af de mest basale egenskaber.

2.1 Funktioner af ressourcestyringsalgoritmer

Effektiviteten af ​​hele netværks-OS som helhed afhænger i høj grad af effektiviteten af ​​algoritmer til styring af lokale computerressourcer. Derfor, når de karakteriserer et netværks-OS, nævner de ofte de vigtigste funktioner i implementeringen af ​​OS-funktioner til styring af processorer, hukommelse og eksterne enheder på en autonom computer. For eksempel, afhængigt af egenskaberne af den anvendte processorstyringsalgoritme, er operativsystemer opdelt i multi-tasking og single-tasking, multi-user og single-user, systemer, der understøtter multi-threaded-behandling og dem, der ikke gør, multi- processor- og enkeltprocessorsystemer.

Multitasking support. Baseret på antallet af samtidig udførte opgaver kan operativsystemer opdeles i to klasser:

single-tasking (for eksempel MS-DOS, MSX) og

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

Single-tasking operativsystemer udfører hovedsageligt funktionen at give brugeren en virtuel maskine, hvilket gør processen med interaktion mellem brugeren og computeren enklere og mere bekvem. Operativsystemer med en enkelt opgave omfatter administrationsværktøjer til eksterne enheder, filhåndteringsværktøjer og brugerkommunikationsværktøjer.

Multitasking OS administrerer udover ovenstående funktioner opdelingen af ​​delte ressourcer såsom CPU, vædder, filer og eksterne enheder.

Understøttelse af multi-user mode. Baseret på antallet af samtidige brugere er operativsystemer opdelt i:

enkeltbruger (MS-DOS, Windows 3.x, tidlige versioner af OS/2);

flerbruger (UNIX, Windows NT).

Den største forskel mellem flerbrugersystemer og enkeltbrugersystemer er tilgængeligheden af ​​midler til at beskytte hver brugers information mod uautoriseret adgang fra andre brugere. Det skal bemærkes, at ikke alle multitasking-systemer er multi-user, og ikke alle single-user OS er single-tasking.

Forebyggende og ikke-forebyggende multitasking. Den vigtigste delte ressource er processortid. Metoden til at fordele processortid mellem flere samtidigt eksisterende processer (eller tråde) i systemet bestemmer i høj grad OS'ets detaljer. Blandt de mange eksisterende muligheder for implementering af multitasking kan der skelnes mellem to grupper af algoritmer:

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

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

Den største forskel mellem forebyggende og ikke-forebyggende multitasking er graden af ​​centralisering af procesplanlægningsmekanismen. I det første tilfælde er procesplanlægningsmekanismen helt koncentreret i operativsystemet, og i det andet er den fordelt mellem systemet og applikationsprogrammerne. Ved ikke-forebyggende multitasking kører den aktive proces, indtil den på eget initiativ giver kontrol til styresystemet, så det vælger en anden proces klar til at køre fra køen. Med forebyggende multitasking træffes beslutningen om at skifte processoren fra én proces til en anden af ​​operativsystemet og ikke af selve den aktive proces.

Multithreading support. En vigtig egenskab ved operativsystemer er evnen til at parallelisere beregninger inden for en enkelt opgave. Et multi-threaded OS deler processortiden ikke mellem opgaver, men mellem deres individuelle grene (tråde).

Multibearbejdning. En anden vigtig egenskab ved OS er fraværet eller tilstedeværelsen i det af understøttelse af multiprocessing - multiprocessing. Multiprocessing fører til komplikationen af ​​alle ressourcestyringsalgoritmer.

I dag er det ved at blive almindelig praksis at introducere multiprocessing-støttefunktioner i operativsystemet. Sådanne funktioner er tilgængelige i Suns Solaris 2.x, Santa Crus Operations' Open Server 3.x, IBMs OS/2, Microsofts Windows NT og Novells NetWare 4.1.

Multiprocessor-operativsystemer kan klassificeres efter den måde, hvorpå computerprocessen er organiseret i et system med en multiprocessor-arkitektur: asymmetriske operativsystemer og symmetriske operativsystemer. Et asymmetrisk OS kører udelukkende på én af systemprocessorerne og fordeler applikationsopgaver på tværs af de resterende processorer. Et symmetrisk OS er fuldstændig decentraliseret og bruger hele puljen af ​​processorer, der deler dem mellem system- og applikationsopgaver.

Ovenfor diskuterede vi OS'ets egenskaber relateret til styringen af ​​kun én type ressource - processoren. Funktionerne i andre lokale ressourcestyringsundersystemer - hukommelses-, fil- og input/o- har en vigtig indflydelse på udseendet af operativsystemet som helhed og på mulighederne for dets anvendelse i et bestemt område.

Operativsystemets specificitet kommer også til udtryk i den måde, det implementerer netværksfunktioner på: genkendelse og omdirigering af anmodninger til netværket fjernressourcer, sende beskeder over netværket, udføre fjernanmodninger. Ved implementering af netværksfunktioner opstår et sæt opgaver relateret til den distribuerede karakter af datalagring og -behandling på netværket: vedligeholdelse af referenceoplysninger om alle ressourcer og servere, der er tilgængelige på netværket, adressering af interagerende processer, sikring af adgangsgennemsigtighed, datareplikering, afstemning af kopier, opretholdelse af datasikkerhed.

2. 2 Funktioner af hardwareplatforme

Operativsystemets egenskaber er direkte påvirket af den hardware, som det er designet på. Baseret på typen af ​​hardware skelnes operativsystemer på personlige computere, minicomputere, mainframes, klynger og computernetværk. Blandt de listede typer computere kan der både være mulighed for enkeltprocessor og multiprocessor. Under alle omstændigheder afspejles hardwarens detaljer normalt i operativsystemernes detaljer.

Det er klart, at operativsystemet på en stor maskine er mere komplekst og funktionelt end operativsystemet på en personlig computer. I operativsystemet på store maskiner implementeres funktioner til planlægning af strømmen af ​​opgaver, der udføres, naturligvis ved brug af komplekse prioritetsdiscipliner og kræver mere computerkraft end i pc'ers operativsystem. Situationen er den samme med andre funktioner.

Et netværks-OS omfatter midler til at sende meddelelser mellem computere over kommunikationslinjer, som er fuldstændig unødvendige i et selvstændigt OS. Baseret på disse meddelelser understøtter netværkets OS deling af computerressourcer mellem fjernbrugere, der er tilsluttet netværket. For at understøtte meddelelsesoverførselsfunktioner indeholder netværksoperativsystemer særlige software komponenter, implementering af populære kommunikationsprotokoller såsom IP, IPX, Ethernet og andre.

Multiprocessorsystemer kræver en særlig organisation fra operativsystemet, ved hjælp af hvilken selve operativsystemet, såvel som de applikationer, det understøtter, kan udføres parallelt af individuelle processorer i systemet. Parallel drift af individuelle dele af operativsystemet skaber yderligere problemer for OS-udviklere, da det i dette tilfælde er meget vanskeligere at sikre ensartet adgang for individuelle processer til fælles systemtabeller, for at eliminere effekten af ​​racer og andre uønskede konsekvenser af asynkron udførelse af arbejde.

Andre krav gælder for klyngeoperativsystemer. En klynge er en løst koblet samling af flere computersystemer, der arbejder sammen for at køre fælles applikationer og præsenteres for brugeren samlet system. Sammen med speciel hardware kræver funktionen af ​​klyngesystemer også softwareunderstøttelse fra operativsystemet, hvilket hovedsageligt handler om synkronisering af adgang til delte ressourcer, fejldetektion og dynamisk systemomkonfiguration. En af de første udviklinger inden for klyngeteknologier var løsninger fra Digital Equipment baseret på VAX-computere. Virksomheden har for nylig indgået en aftale med Microsoft Corporation om at udvikle klyngeteknologi ved hjælp af Windows NT. Flere virksomheder tilbyder klynger baseret på UNIX-maskiner.

Sammen med OS'er, der er fokuseret på en helt bestemt type hardwareplatform, findes der styresystemer, der er specielt designet, så de nemt kan overføres fra en type computer til en anden type computer, det såkaldte mobile OS. Det mest slående eksempel på et sådant operativsystem er det populære UNIX-system. I disse systemer er hardwareafhængige steder omhyggeligt lokaliseret, så når systemet overføres til en ny platform, er det kun de, der omskrives. Et middel til at gøre det nemmere at portere resten af ​​operativsystemet er at skrive det i et maskinuafhængigt sprog, såsom C, der er udviklet til programmering af operativsystemer.

2. 3 Funktioner af anvendelsesområder

Multitasking-operativsystemer er opdelt i tre typer i overensstemmelse med de effektivitetskriterier, der anvendes i deres udvikling:

batchbehandlingssystemer (for eksempel OC EC),

tidsdelingssystemer (UNIX, VMS),

realtidssystemer (QNX, RT/11).

Batchbehandlingssystemer var beregnet til at løse problemer primært af beregningsmæssig karakter, som ikke krævede hurtige resultater. Hovedmålet og kriteriet for effektiviteten af ​​batchbehandlingssystemer er maksimalt gennemløb, det vil sige at løse det maksimale antal problemer pr. tidsenhed. For at nå dette mål bruger batchbehandlingssystemer følgende driftsskema: i begyndelsen af ​​arbejdet dannes et parti opgaver, hver opgave indeholder et krav om systemressourcer; fra denne pakke af opgaver dannes en multiprogramblanding, det vil sige mange samtidig udførte opgaver. Til samtidig udførelse vælges opgaver, der har forskellige ressourcekrav, for at sikre en afbalanceret belastning på alle computerens enheder; for eksempel i en multiprogram-blanding er den samtidige tilstedeværelse af beregningsopgaver og I/O-intensive opgaver ønskelig. Valget af en ny opgave fra en opgavepakke afhænger således af den interne situation i systemet, det vil sige, at der vælges en "rentabel" opgave. I et sådant OS er det derfor umuligt at garantere fuldførelsen af ​​en bestemt opgave inden for bestemt periode tid. I batchbehandlingssystemer sker skift af processoren fra at køre en opgave til at køre en anden kun, hvis den aktive opgave selv forlader processoren, for eksempel på grund af behovet for at udføre en I/O-operation. Derfor kan en enkelt opgave optage processoren i lang tid, hvilket gør det umuligt at udføre interaktive opgaver. Således bunder brugerens interaktion med computeren, hvorpå batchbehandlingssystemet er installeret, ned til, at han medbringer en opgave, giver den til dispatcher-operatøren og i slutningen af ​​dagen efter at have fuldført hele batchen af ​​opgaver , modtager han resultatet. Dette arrangement reducerer naturligvis brugerens effektivitet.

Tidsdelingssystemer er designet til at rette op på den største ulempe ved batchbehandlingssystemer - isoleringen af ​​bruger-programmøren fra processen med at udføre sine opgaver. Hver bruger af tidsdelingssystemet er udstyret med en terminal, hvorfra han kan føre en dialog med sit program. Da tidsdelingssystemer kun tildeler et stykke CPU-tid til hver opgave, optager ingen enkelt opgave processoren i meget lang tid, og responstider er acceptable. Hvis kvantummet er valgt lille nok, så har alle brugere, der arbejder på samme maskine samtidigt, indtryk af, at hver af dem udelukkende bruger maskinen. Det er tydeligt, at tidsdelingssystemer har lavere gennemløb end batchbehandlingssystemer, da hver opgave, der startes af brugeren, accepteres til udførelse, og ikke den, der er "fordelagtig" for systemet, og derudover er der overhead af computerkraft til hyppigere skift af processor fra opgave til opgave. Kriteriet for effektiviteten af ​​tidsdelingssystemer er ikke maksimal gennemstrømning, men brugerens bekvemmelighed og effektivitet.

Realtidssystemer bruges til at styre forskellige tekniske objekter, såsom en værktøjsmaskine, en satellit, en videnskabelig eksperimentel installation eller teknologiske processer, såsom en galvanisk linje, en højovnsproces osv. I alle disse tilfælde er der en maksimal tilladt tid, hvor et eller andet program, der styrer objektet, skal udføres, ellers kan der ske en ulykke: satellitten vil forlade sigtbarhedszonen, eksperimentelle data, der kommer fra sensorerne, vil gå tabt, tykkelsen af ​​den galvaniske belægning vil ikke svare til normen. Effektivitetskriteriet for realtidssystemer er således deres evne til at modstå forudbestemte tidsintervaller mellem lancering af et program og opnåelse af et resultat (kontrolhandling). Denne tid kaldes systemets reaktionstid, og systemets tilsvarende egenskab kaldes reaktivitet. For disse systemer er multiprogramblandingen fast urskive præ-udviklede programmer, og valget af program, der skal udføres, er baseret på nuværende tilstand objekt eller i overensstemmelse med tidsplanen for det planlagte arbejde.

Nogle operativsystemer kan kombinere egenskaberne af forskellige typer systemer, for eksempel kan nogle opgaver udføres i batchbehandlingstilstand, og nogle i realtid eller i tidsdelingstilstand. I sådanne tilfælde kaldes batchbehandlingstilstand ofte baggrundstilstand.

2. 4 Funktioner af byggemetoder

Når man beskriver et operativsystem, er funktionerne i dets strukturelle organisation og de grundlæggende begreber, der ligger til grund for det, ofte angivet.

Disse grundlæggende begreber omfatter:

Måder at bygge en systemkerne på - monolitisk kerne- eller mikrokernetilgang. De fleste operativsystemer bruger en monolitisk kerne, som er kompileret som et enkelt program, der kører i privilegeret tilstand og bruger hurtige overgange fra en procedure til en anden uden at kræve skift fra privilegeret til brugertilstand og omvendt. Et alternativ er at bygge et OS baseret på en mikrokerne, som også fungerer i privilegeret tilstand og kun udfører et minimum af hardwarestyringsfunktioner, mens OS-funktioner på højere niveau udføres af specialiserede OS-komponenter - servere, der kører i brugertilstand. Med dette design fungerer operativsystemet langsommere, da overgange mellem privilegeret tilstand og brugertilstand ofte udføres, men systemet viser sig at være mere fleksibelt - dets funktioner kan udvides, ændres eller indsnævres ved at tilføje, ændre eller udelukke servere for brugertilstande . Derudover er serverne godt beskyttet mod hinanden, ligesom alle brugerprocesser.

Opbygning af et OS baseret på en objektorienteret tilgang gør det muligt at bruge alle dets fordele, som har vist sig på applikationsniveau, i operativsystemet, nemlig: akkumulering af vellykkede løsninger i form af standardobjekter, evnen til at oprette nye objekter baseret på eksisterende ved hjælp af arvemekanismen, god beskyttelse data på grund af deres indkapsling i indre strukturer objekt, som gør dataene utilgængelige for uautoriseret brug udefra, systemets struktur, bestående af et sæt veldefinerede objekter.

Tilstedeværelsen af ​​flere applikationsmiljøer gør det muligt samtidigt at køre applikationer udviklet til flere operativsystemer inden for ét OS. Mange moderne operativsystemer understøtter samtidig MS-DOS, Windows, UNIX (POSIX), OS/2 eller i det mindste en del af dette populære sæt. Konceptet med flere applikationsmiljøer implementeres enklest i et OS baseret på en mikrokerne, hvorpå forskellige servere arbejder, hvoraf nogle implementerer applikationsmiljøet for et bestemt operativsystem.

Den distribuerede organisation af operativsystemet gør det muligt at forenkle arbejdet for brugere og programmører i netværksmiljøer. Et distribueret OS implementerer mekanismer, der giver brugeren mulighed for at forestille sig og opfatte netværket i form af en traditionel computer med én processor. De karakteristiske træk ved en distribueret OS-organisation er: tilstedeværelsen af ​​en enkelt helpdesk delte ressourcer, en enkelttidstjeneste, brugen af ​​en RPC-mekanisme (Remote Procedure Call) til gennemsigtig distribution af softwareprocedurer på tværs af maskiner, flertrådsbehandling, som giver dig mulighed for at parallelisere beregninger inden for en enkelt opgave og udføre denne opgave på flere netværk computere på én gang, samt tilstedeværelsen af ​​andre distribuerede tjenester.

3. Moderne koncepter og teknologier til design af operativsystemer, krav til OSXXIårhundrede

Operativsystemet er kernen i netværkssoftware; det skaber miljøet for at køre applikationer og bestemmer i høj grad, hvilke fordele disse applikationer vil have for brugeren. I denne forbindelse vil vi overveje de krav, som et moderne OS skal opfylde.

Naturligvis er hovedkravet til et operativsystem evnen til at udføre grundlæggende funktioner: effektiv ressourcestyring og tilvejebringelse af en praktisk grænseflade til brugeren og applikationsprogrammerne. Et moderne OS skal som regel implementere multiprogram-behandling, virtuel hukommelse, swapping, understøtte en multi-vindue-grænseflade og også udføre mange andre absolut nødvendige funktioner. Ud over disse funktionelle krav står operativsystemer over for lige så vigtige markedskrav. Disse krav omfatter:

· Udvidelsesmuligheder. Koden bør skrives på en sådan måde, at det er nemt at foretage tilføjelser og ændringer, hvis det er nødvendigt, uden at gå på kompromis med systemets integritet.

· Bærbarhed. Kode bør let kunne overføres fra én type processor til en anden type processor og fra en hardwareplatform (som sammen med processortypen inkluderer måden, hvorpå al computerhardware er organiseret) af én type til en anden type hardwareplatform.

· Pålidelighed og fejltolerance. Systemet skal beskyttes mod både interne og eksterne fejl, fejl og fejl. Dens handlinger bør altid være forudsigelige, og applikationer bør ikke kunne skade OS.

· Kompatibilitet. OS skal have evnen til at køre applikationsprogrammer skrevet til andre operativsystemer. Derudover skal brugergrænsefladen være kompatibel med eksisterende systemer og standarder.

· Sikkerhed. OS skal have midlerne til at beskytte nogle brugeres ressourcer mod andre.

· Produktivitet. Systemet skal være så hurtigt og responsivt, som hardwareplatformen tillader.

Lad os se nærmere på nogle af disse krav.

Udvidelsesmuligheder Mens computerhardware bliver forældet i løbet af få år, kan driftssystemernes levetid måles i årtier. Et eksempel er UNIX OS. Derfor udvikler operativsystemer sig altid over tid, og disse ændringer er mere væsentlige end hardwareændringer. Ændringer i OS repræsenterer normalt erhvervelse af nye ejendomme. For eksempel understøttelse af nye enheder såsom CD-ROM, mulighed for at kommunikere med nye typer netværk, understøttelse af lovende teknologier såsom grafiske brugergrænseflader eller objektorienterede softwaremiljøer og brug af mere end én processor. At opretholde kodens integritet, uanset hvilke ændringer der foretages i operativsystemet, er hovedmålet med udviklingen.

Udvidelsesmuligheder kan opnås gennem OS'ets modulære struktur, hvor programmer er bygget ud fra et sæt individuelle moduler, der kun interagerer gennem en funktionel grænseflade. Nye komponenter kan tilføjes til operativsystemet på en modulær måde, og de udfører deres arbejde ved hjælp af grænseflader understøttet af eksisterende komponenter.

Brug af objekter til at repræsentere systemressourcer forbedrer også systemets udvidelsesmuligheder. Objekter er abstrakte datatyper, hvorpå du kun kan udføre de handlinger, der leveres af et særligt sæt objektfunktioner. Objekter giver dig mulighed for at administrere systemressourcer på en ensartet måde. Tilføjelse af nye objekter ødelægger ikke eksisterende objekter og kræver ikke ændringer af eksisterende kode.

Fremragende muligheder for udvidelse er givet af klient-server-tilgangen til at strukturere OS ved hjælp af mikrokerneteknologi. I overensstemmelse med denne tilgang er operativsystemet bygget som en kombination af et privilegeret kontrolprogram og et sæt uprivilegerede servertjenester. Hoveddelen af ​​operativsystemet kan forblive uændret, mens nye servere tilføjes eller gamle forbedres.

Remote procedure calls (RPC) giver også mulighed for at forlænge funktionalitet OS. Nye softwarerutiner kan tilføjes til enhver maskine på netværket og straks gøres tilgængelige for applikationsprogrammer på andre maskiner på netværket.

For at forbedre udvidelsesmulighederne understøtter nogle operativsystemer drivere, der kan downloades, som kan føjes til systemet, mens det kører. Nye filsystemer, enheder og netværk kan understøttes ved at skrive en enhedsdriver, filsystemdriver eller transportdriver og indlæse den i systemet.

Bærbarhed Kravet om kodeportabilitet er tæt forbundet med udvidelsesmuligheder. Udvidelsesmuligheder giver dig mulighed for at forbedre operativsystemet, mens portabilitet giver dig mulighed for at flytte hele systemet til en maskine baseret på en anden processor eller hardwareplatform, alt imens du foretager så små ændringer i koden som muligt. Selvom OS'er ofte beskrives som enten bærbare eller ikke-bærbare, er portabilitet ikke en binær betingelse. Spørgsmålet er ikke, om systemet kan migreres, men hvor nemt det kan gøres. At skrive et bærbart OS svarer til at skrive enhver bærbar kode - du skal følge nogle regler.

For det første skal det meste af koden skrives på et sprog, der er tilgængeligt på alle de maskiner, som du vil overføre systemet til. Det betyder normalt, at koden skal være skrevet på et højt niveau sprog, helst et standardiseret sprog såsom C. Et program skrevet i assemblersprog er ikke bærbart, medmindre du har til hensigt at overføre det til en maskine, der har kommandokompatibilitet med din.

For det andet bør du overveje, hvilke fysiske rammer uddannelsen skal overføres til. Forskelligt udstyr kræver forskellige løsninger når du opretter OS. For eksempel kan et OS bygget på 32-bit adresser ikke porteres til en maskine med 16-bit adresser (undtagen med stor besvær).

For det tredje er det vigtigt at minimere eller, hvis det er muligt, eliminere de dele af koden, der direkte interagerer med hardwaren. Hardwareafhængighed kan antage mange former. Nogle åbenlyse former for afhængighed omfatter direkte manipulation af registre og anden hardware.

For det fjerde, hvis hardwareafhængig kode ikke kan elimineres fuldstændigt, skal den isoleres i flere vellokaliserede moduler. Hardwareafhængig kode bør ikke distribueres i hele systemet. For eksempel kan du skjule en hardwarespecifik struktur i softwaredefinerede data af en abstrakt type. Andre moduler i systemet vil arbejde med disse data, og ikke med udstyret, ved at bruge et sæt af visse funktioner. Når et OS migreres, ændres kun disse data og de funktioner, der manipulerer dem.

For nemt at porte OS under udviklingen skal følgende krav være opfyldt:

· Bærbart sprog på højt niveau. De fleste bærbare operativsystemer er skrevet i C (ANSI X3.159-1989 standard). Udviklere vælger C, fordi det er standardiseret, og fordi C-kompilere er bredt tilgængelige. Assembly-sprog bruges kun til de dele af systemet, der skal interagere direkte med hardwaren (f.eks. interrupt-handleren) eller til dele, der kræver maksimal hastighed(f.eks. aritmetik med høj præcision i heltal). Samtidig skal ikke-bærbar kode omhyggeligt isoleres inden for de komponenter, hvor den bruges.

· Processor isolering. Nogle dele af operativsystemet på lavt niveau skal have adgang til processorfølsomme datastrukturer og registre. Koden, der gør dette, skal dog være indeholdt i små moduler, der kan erstattes af lignende moduler til andre processorer.

· Platformisolering. Platformafhængighed refererer til forskellene mellem arbejdsstationer fra forskellige producenter, der er bygget på den samme processor (f.eks. MIPS R4000). Skal indtastes programniveau, som abstraherer hardwaren (caches, I/O interrupt-controllere osv.) sammen med et lag af lavniveauprogrammer, så højniveaukoden ikke behøver at ændre sig, når den porteres fra en platform til en anden.

Kompatibilitet Et aspekt af kompatibilitet er et operativsystems evne til at køre programmer skrevet til andre operativsystemer eller til tidligere versioner af et givet operativsystem, såvel som til en anden hardwareplatform.

Det er nødvendigt at adskille problemer med binær kompatibilitet og kompatibilitet på applikationens kildekodeniveau. Binær kompatibilitet opnås, når du kan tage et eksekverbart program og køre det på et andet OS. Dette kræver: kompatibilitet på niveau med processorinstruktioner, kompatibilitet på niveau med systemopkald og endda på niveau med biblioteksopkald, hvis de er dynamisk forbundet.

Kompatibilitet på kildeniveau kræver tilstedeværelsen af ​​en passende compiler som en del af softwaren, såvel som kompatibilitet på niveau med biblioteker og systemkald. I dette tilfælde er det nødvendigt at omkompilere de eksisterende kildetekster til et nyt eksekverbart modul.

Kompatibilitet på kildeniveau er primært vigtig for applikationsudviklere, som altid har kildekoden til deres rådighed. Men for slutbrugere Kun binær kompatibilitet er af praktisk betydning, da kun da kan de bruge det samme kommercielle produkt, leveret som binær eksekverbar kode, i forskellige driftsmiljøer og på forskellige maskiner.

Hvorvidt et nyt OS er binært kompatibelt eller kildekompatibelt med eksisterende systemer afhænger af mange faktorer. Den vigtigste af dem er arkitekturen af ​​den processor, som det nye OS kører på. Hvis processoren, som operativsystemet er porteret til, bruger det samme instruktionssæt (måske med nogle tilføjelser) og det samme adresseområde, så kan binær kompatibilitet opnås ganske enkelt.

Det er meget sværere at opnå binær kompatibilitet mellem processorer baseret på forskellige arkitekturer. For at én computer kan køre en andens programmer (f.eks. et DOS-program på en Mac), skal denne computer arbejde med maskininstruktioner, som den ikke forstår i første omgang. For eksempel skal en 680x0-processor på en Mac udføre binær kode designet til en 80x86-processor på en pc. 80x86-processoren har sin egen instruktionsdekoder, registre og intern arkitektur. 680x0-processoren forstår ikke 80x86 binær kode, så den skal hente hver instruktion, afkode den for at bestemme, hvad den gør, og derefter udføre den tilsvarende rutine skrevet for 680x0. Da 680x0 heller ikke har nøjagtig de samme registre, flag og interne aritmetiske logiske enhed som 80x86, skal den simulere alle disse elementer ved hjælp af sine registre eller hukommelse. Og den skal omhyggeligt gengive resultaterne af hver instruktion, hvilket kræver specielt skrevne rutiner for 680x0 for at sikre, at tilstanden af ​​de emulerede registre og flag efter hver instruktion er udført er nøjagtig den samme som på den rigtige 80x86.

Dette er enkelt, men meget langsomt arbejde, da mikrokoden inde i 80x86-processoren kører på et meget hurtigere niveau end de eksterne 680x0-instruktioner, der emulerer den. På den tid, det tager at udføre en 80x86 kommando på en 680x0, kan en rigtig 80x86 udføre dusinvis af kommandoer. Derfor, hvis emuleringsprocessoren ikke er hurtig nok til at kompensere for alle emuleringstabene, vil de programmer, der kører under emuleringen, være meget langsomme.

Løsningen i sådanne tilfælde er at bruge såkaldte applikationsmiljøer. I betragtning af at hoveddelen af ​​programmet som regel består af kald til biblioteksfunktioner, simulerer applikationsmiljøet hele biblioteksfunktionerne ved at bruge et forudskrevet bibliotek af funktioner med lignende formål, og de resterende kommandoer emulerer hver enkelt separat .

Overholdelse af POSIX-standarder er også et middel til at sikre kompatibilitet mellem software og brugergrænseflader. I anden halvdel af 1980'erne begyndte amerikanske regeringsorganer at udvikle POSIX som hardwarestandarder for offentlige computerkontrakter. POSIX er en "bærbar operativsystemgrænseflade baseret på UNIX". POSIX - møde internationale standarder OS-grænseflader i UNIX-stil. Ved at bruge POSIX-standarden (IEEE-standard 1003.1 - 1988) kan du oprette UNIX-programmer, der nemt kan overføres fra et system til et andet.

Sikkerhed Ud over POSIX-standarden har den amerikanske regering også defineret computersikkerhedskrav for applikationer, der bruges af regeringen. Mange af disse krav er ønskelige egenskaber for ethvert flerbrugersystem. Sikkerhedsregler definerer egenskaber såsom beskyttelse af én brugers ressourcer mod andre og indstilling af ressourcekvoter for at forhindre én bruger i at overtage alle systemressourcer (såsom hukommelse).

At sikre beskyttelse af information mod uautoriseret adgang er en obligatorisk funktion af netværksoperativsystemer. De fleste populære systemer garanterer en grad af datasikkerhed svarende til niveau C2 i det amerikanske standardsystem.

Grundlaget for sikkerhedsstandarder blev lagt af kriterierne for evaluering af betroede computersystemer. Dette dokument, udgivet i USA i 1983 af National Computer Security Center (NCSC), kaldes ofte Orange Book.

I overensstemmelse med kravene i Orange Book anses et sikkert system for at være et, der "gennem særlige sikkerhedsmekanismer kontrollerer adgangen til information på en sådan måde, at kun autoriserede personer eller processer, der kører på deres vegne, kan få adgang til at læse, skrive, oprette eller slette oplysninger".

Hierarkiet af sikkerhedsniveauer angivet i Orange Book-mærkerne laveste niveau sikkerhed som D, og ​​den højeste - som A.

· Klasse D omfatter systemer, hvis vurdering har afsløret, at de ikke opfylder kravene i alle andre klasser.

· Hovedegenskaberne for C-systemer er: tilstedeværelsen af ​​et undersystem til registrering af sikkerhedshændelser og selektiv adgangskontrol. Niveau C er opdelt i 2 underniveauer: niveau C1, som giver databeskyttelse mod brugerfejl, men ikke mod angriberes handlinger, og det mere strenge niveau C2. På C2-niveau skal der være en sikker login-facilitet, der gør det muligt for brugere at blive identificeret ved at indtaste et unikt brugernavn og password, før de får adgang til systemet. Den selektive adgangskontrol, der kræves på dette niveau, giver ressourceejeren mulighed for at bestemme, hvem der har adgang til ressourcen, og hvad de kan gøre med den. Ejeren gør dette ved at give adgangsrettigheder til en bruger eller gruppe af brugere. Revision - Giver mulighed for at opdage og registrere vigtige sikkerhedshændelser eller ethvert forsøg på at oprette, få adgang til eller slette systemressourcer. Hukommelsesbeskyttelse er, hvor hukommelsen initialiseres, før den genbruges. På dette niveau er systemet ikke beskyttet mod brugerfejl, men brugeradfærd kan overvåges ved hjælp af logposter efterladt af overvågnings- og revisionsværktøjer.


  1. Konceptet med et operativsystem; udvikling af operativsystemer; funktioner af operativsystemer og tilgange til opbygning af operativsystemer.
OS - grundlæggende kompleks computerprogrammer, leverer kontrol af computerhardware, arbejde med filer, input og output af data, samt udførelse af applikationsprogrammer og hjælpeprogrammer.

Grundlæggende er udviklingen af ​​OS-udvikling opdelt i 5 generationer:

Første generation (1940 – 50). Tube computing-enheder var lige dukket op. Princippet for programmet er udviklet. Der er ingen operativsystemer; alt administrationsarbejde udføres af udviklerne.

Anden generation (1950 – 60). Computerenheder fungerer på halvlederelementer. En prototype af OS-systemet vises batchbehandling, som blot automatiserer lanceringen af ​​det ene program fra en pakke efter den anden og derved øger processorudnyttelsesfaktoren.

Tredje generation (1960 - 70). Halvlederelementer kombineres til integrerede kredsløb. OS'er vises med understøttelse af afbrydelsesenheder, opgaveplanlægning og multiprogrammering. Det samme operativsystem begynder at køre på forskellige enheder, men det forbliver stadig et pakket OS. Dukker også op operativsystem i realtid(RTOS), hvor en computer bruges til at styre tekniske objekter. En karakteristisk egenskab ved en RTOS er reaktivitet - systemets parathed til at generere kontrolhandlinger med det samme.

Fjerde generation (1970-80) . OS'er var multi-mode systemer, der leverede batchbehandling, tidsdeling, realtid og multiprocessing. Forebyggende multitasking og prioriteringsplanlægning vises, samt tildeling af kvoter til brug af begrænsede computerressourcer. Mekanismen for virtuel hukommelse og avancerede filsystemer er implementeret.

Femte generation (fra midten af ​​1980'erne til i dag). OS bruger mulighederne netværksteknologier, herunder klient-server-teknologier, bliver grænsefladen grafisk og brugervenlig.

Der er også 5 hovedtilgange til at bygge et OS


  • Monolitisk kerne

  • Mikrokerne arkitektur

  • Multi-level system

  • Virtuel maskine

  • Blandet system

  1. Operativsystems arkitektur. Klassificering af operativsystemer. Effektivitet og krav til OS.
Lad os se på eksisterende OS-arkitekturer.

Monolitisk kerne - Dette er et skema af operativsystemet, hvor alle dets komponenter er komponenter i et program, brug generelle strukturer data og interagere med hinanden ved direkte at kalde procedurer. For et monolitisk operativsystem er kernen den samme som hele systemet Et eksempel på systemer med en monolitisk kerne er de fleste Unix-systemer.

Systemer på flere niveauer. Hele regnesystemet kan opdeles i en række mindre niveauer med veldefinerede forbindelser mellem dem, således at objekter på niveau N kun kan kalde objekter på niveau N-1. Det laveste niveau i sådanne systemer er normalt hardware, højeste niveau- brugergrænseflade. Jo lavere niveau, jo mere privilegerede kommandoer og handlinger kan et modul på dette niveau udføre.

Virtuelle maskiner kaldet et software- eller hardwaremiljø, der udfører noget kode. Ofte emulerer en virtuel maskine driften af ​​en rigtig computer. Eksempler er VMWareWorkstation og VirtualBox.

Mikrokerne arkitektur. Dette er en arkitektur, hvor de fleste af OS-komponenterne er uafhængige programmer. Interaktion mellem dem er sikret af en mikrokerne, der fungerer i privilegeret tilstand. Den udfører også CPU-planlægning, afbrydelseshåndtering, I/O-operationer og grundlæggende kontroller hukommelse.

Blandede systemer. I de fleste tilfælde bruger moderne operativsystemer forskellige kombinationer af ovenstående tilgange.

OS har sin egen klassifikation:


  • efter formål (generelt, specielt),

  • efter opgavebehandlingstilstand (enkelt-opgave, multi-program),

  • ved metoden til interaktion med systemet (samtale, med batchbehandling)

  • efter konstruktionsmetoder (diskuteret ovenfor)
Der er en række krav til operativsystemerne på moderne computere. Hovedkravet er at udføre de grundlæggende funktioner i effektiv ressourcestyring og give en praktisk grænseflade til brugeren og applikationsprogrammerne. Et moderne OS skal understøtte multi-program behandling, virtuel hukommelse, swapping, en udviklet brugergrænseflade (multi-window grafisk, audio, menu-orienteret osv.), en høj grad af sikkerhed, brugervenlighed, og også udføre mange andre nødvendige funktioner og tjenester. Ud over disse krav til funktionel fuldstændighed er operativsystemet underlagt en række vigtige driftskrav.

  • Effektivitet.

  • Pålidelighed og fejltolerance.

  • Sikkerhed (sikkerhed).

  • Forudsigelighed.

  • Udvidelsesmuligheder.

  • Bærbarhed.

  • Kompatibilitet.

  • Bekvemmelighed.

  • Skalerbarhed.

  1. Begrebet en proces, dens tilstand, en procesrepræsentationsmodel i operativsystemet og operationer, der kan udføres på processer af operativsystemet.
Begrebet en proces karakteriserer et bestemt sæt af udførende kommandoer, tilknyttede ressourcer og det aktuelle tidspunkt for dens udførelse, som er under kontrol af operativsystemet. Processen er til enhver tid fuldstændig beskrevet af dens kontekst, bestående af register-, system- og brugerdele.

Processer kan være i fem hovedtilstande:


  • fødsel,

  • beredskab,

  • udførelse,

  • forventning,

  • færdig forestilling
I et operativsystem er processer repræsenteret af en specifik datastruktur, der indeholder følgende oplysninger(varierer for forskellige OS):

  • tilstanden processen er i;

  • adressen på kommandoen, der skal udføres næste gang for den;

  • indholdet af processorregistre;

  • data nødvendige til CPU-planlægning og hukommelsesstyring;

  • legitimationsoplysninger;

  • oplysninger om de I/O-enheder, der er forbundet med processen.
En proces overføres fra stat til stat af operativsystemet som et resultat af operationer udført på det. Operativsystemet kan køre på processer næste par operationer:

  • procesoprettelse - procesafslutning,

  • suspendere en proces - starte en proces,

  • blokering af en proces - ophæv blokering af en proces,

  • at ændre prioriteringen af ​​en proces.


  1. Niveauer af procesplanlægning i operativsystemer. De vigtigste mål og kriterier for planlægning og de parametre, som den er baseret på. Planlægningsalgoritmer.
Planlægning er arbejdet med at bestemme, på hvilket tidspunkt udførelsen af ​​en proces skal afbrydes, og hvilken proces der skal tillades at køre.

Ved konstruktion af planlægningsalgoritmer skelnes der mellem tre forskellige niveauer:


  • langsigtet;

  • kort sigt;

  • mellemlang sigt.
Målene omfatter følgende:

  • Retfærdighed.

  • Effektivitet.

  • Reducer den samlede udførelsestid.

  • Reduceret ventetid.

  • Reduceret svartid.
Planlægningskriterier:

  • Forudsigelighed.

  • Minimale overheadomkostninger.

  • Ensartet belastning af computersystemressourcer

  • Skalerbarhed
Planlægningsmuligheder:

  • Statisk – systemressourcegrænseværdier: RAM-størrelse, maksimalt beløb diskhukommelse til ombytning, antallet af tilsluttede I/O-enheder osv.

  • Dynamisk - værdier af systemressourcer på nuværende tidspunkt.
Planlægningsalgoritmer

FCFS. Det fungerer efter først-til-mølle-princippet. Fordelen ved FCFS-algoritmen er den nemme implementering; ulemperne er, at den gennemsnitlige ventetid og den gennemsnitlige samlede eksekveringstid for denne algoritme afhænger væsentligt af rækkefølgen af ​​processer i køen.

Runde Robin. Grundlæggende er dette en algoritme FCFS, kun implementeret i den forebyggende planlægningstilstand (den næste proces overføres til udførelse i henhold til en timer, efter at et bestemt tidsudsnit er udløbet).

ShortestJobFirst. Hvis du vælger en proces ude af drift (som i FCFS Og R.R.), og baseret på dens minimumstid kontinuerlig brug processor, vil dette forbedre ydeevnen af ​​processorens planlægningsalgoritme. Den beskrevne algoritme kaldes "det korteste job først." ShortestJobFirst, S.J.F.).

Den største vanskelighed ved at implementere algoritmen S.J.F. repræsenterer umuligheden af ​​at kende nøjagtigt i hvert enkelt tilfælde udførelsestidspunktet for den næste proces.


  1. Processamarbejde og de vigtigste aspekter af dets logiske organisation (autoriseret samspil mellem processer)
For den normale funktion af processer forsøger operativsystemet at isolere dem fra hinanden så meget som muligt. Der er dog grunde til deres interaktion:

  • Øget arbejdshastighed.

  • Datadeling.

  • Modulært design af ethvert system.

  • Brugererfaring
Kategorier af informationsudvekslingsmedier

  • Signal.

  • Kanal.

  • Delt hukommelse.
Logisk organisering af informationsoverførselsmekanismen

Etablering af en forbindelse. Ved brug af direkte adressering etableres kommunikation mellem processer i et klassisk operativsystem automatisk uden yderligere initialiseringstrin. Ved brug af indirekte adressering er initialisering af kommunikationsmediet muligvis ikke nødvendig. Den information, som en proces skal have for at kunne interagere med andre processer, er en vis identifikator for et mellemobjekt til lagring af data, medmindre det selvfølgelig er den eneste ene i computersystemet for alle.

Informationsvalens af processer og miljøerdstv svide. Med direkte adressering kan kun ét fast kommunikationsmedium bruges til at kommunikere mellem to processer, og kun de to processer kan associeres med det. Med indirekte adressering kan der være mere end to processer, der bruger det samme objekt til data, og mere end ét objekt kan bruges af to processer.

Funktioner ved informationstransmission ved hjælp af kommunikationslinjer

Buffer


  • Bufferen har nul kapacitet eller mangler.

  • Buffer med begrænset kapacitet.

  • Buffer med ubegrænset kapacitet.
I/O-tråd og beskeder

  • I/O-stream. Transmission/modtage-operationer er ikke interesserede i dataindhold

  • Beskeder. Processer pålægger en vis struktur på de data, de transmitterer. De opdeler hele informationsstrømmen i separate beskeder.
Pålideligheddstv svide. Overførsel af data gennem delt hukommelse er en pålidelig kommunikationsmetode. I andre tilfælde skal pålideligheden forbedres.

Afslutning af forbindelsen. For kommunikationsmetoder, der ikke involverede nogen initialiseringshandlinger, behøver du normalt ikke at gøre noget særligt for at afslutte interaktionen. Hvis etableringen af ​​St. krævede en vis initialisering, skal ressourcefrigivelsesoperationer udføres.


  1. Synkroniseringsalgoritmer (algoritmer til korrekt organisering af procesinteraktion).
Kritisk afsnit

En kritisk sektion er en del af et program, hvis udførelsesresultat kan ændre sig uforudsigeligt, hvis variabler relateret til det ændres af andre tråde, mens udførelsen af ​​denne del endnu ikke er afsluttet. I eksemplet er den kritiske sektion "ordrer"-filen, som er en delt ressource for processer R og S.

Dekkers algoritme- den første kendte korrekte løsning på problemet med gensidig udelukkelse.

Hvis to processer forsøger at komme ind i den kritiske sektion på samme tid, vil algoritmen kun tillade én af dem at gøre det, baseret på hvis kø den er på det tidspunkt. Hvis en proces allerede er gået ind i den kritiske sektion, vil den anden vente, indtil den første forlader den. Dette implementeres ved at bruge to flag (indikatorer for "hensigten" til at gå ind i den kritiske sektion) og svingvariablen (der angiver, hvilken proces tur er kommet).

Processer annoncerer deres hensigt om at gå ind i den kritiske sektion; dette kontrolleres af den ydre "mens"-løkke. Hvis en anden proces ikke har erklæret en sådan hensigt, kan den kritiske sektion gås sikkert ind (uanset hvis tur det er). Gensidig udelukkelse vil stadig være garanteret, da ingen proces kan komme ind i den kritiske sektion, før dette flag er sat (hvilket betyder, at mindst én proces vil gå ind i while-løkken). Dette garanterer også fremskridt, da der ikke vil være nogen ventetid på, at processen forlader "hensigten" om at gå ind i den kritiske sektion. Ellers, hvis en anden process variabel er blevet indstillet, skal du indtaste en "while"-løkke, og turn-variablen vil angive, hvem der har tilladelse til at komme ind i den kritiske sektion. En proces, hvis tur ikke er kommet, efterlader intentionen om at gå ind i den kritiske sektion, indtil dens tur kommer (indre "mens"-løkke). Processen, hvis tur er kommet, vil forlade "mens"-løkken og gå ind i den kritiske sektion.

Kræver ikke specielle test-og-sæt instruktioner, så det er nemt at transportere til forskellige programmeringssprog og computerarkitekturer

Kun gyldig for to processer

Petersons algoritme- Softwarealgoritme til gensidig udelukkelse af kodeudførelsestråde.

Før en kritisk sektion af kode udføres (det vil sige kode, der tilgår beskyttede delte ressourcer), skal en tråd kalde en speciel procedure (lad os kalde det EnterRegion) med nummeret som parameter. Den skal sørge for, at en tråd venter på, at dens kø kommer ind i den kritiske sektion. Efter at have udført den kritiske sektion og forladt den, kalder tråden en anden procedure (lad os kalde det LeaveRegion), hvorefter andre tråde vil kunne komme ind i det kritiske område. Hvis begge processer nærmer sig prologen næsten samtidigt, så vil de begge meddele deres parathed og tilbyde at henrette hinanden. Desuden kommer den ene af sætningerne altid efter den anden. Arbejdet på det kritiske område vil således fortsat blive udført af den proces, som det sidste forslag blev fremsat til.

Ligesom Dekkers algoritme virker den kun til 2 processer

Enklere implementering end Dekkers algoritme

Bageri algoritme. Petersons algoritme giver os en løsning på problemet med at organisere samspillet mellem to processer korrekt. Lad os nu overveje den tilsvarende algoritme for n kommunikerende processer.

Hver nyankomne proces modtager en etiket med et nummer. Processen med det laveste etiketnummer serveres derefter. Desværre, på grund af den ikke-atomare karakter af operationen med at beregne det næste tal, garanterer bagerialgoritmen ikke, at alle processer vil have etiketter med forskellige tal. Hvis to eller flere processer har ens etiketnumre, serveres klienten med den laveste navneværdi først (navne kan sammenlignes i leksikografisk rækkefølge). De delte datastrukturer for algoritmen er to arrays


  1. Særlige synkroniseringsmekanismer - Dijkstra semaforer, Chorus-monitorer, beskedkøer.
Semaforer

For at eliminere denne ulempe giver mange operativsystemer specielle systemopkald (en enhed til at arbejde med kritiske sektioner.

I forskellige operativsystemer er hændelsesapparatet implementeret forskelligt, men under alle omstændigheder bruges de systemfunktioner, som konventionelt kaldes WAIT(x) og POST(x), hvor x er identifikatoren for en hændelse (f.eks. ressourcefrigivelse).

En generel måde at synkronisere processer på blev foreslået af Dijkstra, som introducerede nye primitiver, betegnet V ("åbning") og P ("lukning"), der opererer på heltallige ikke-negative variabler kaldet semaforer.

Enhver proces kan kun få adgang til semaforen, undtagen på tidspunktet for dens initialisering, gennem disse to atomoperationer.

Meningen med P(S) er at kontrollere den aktuelle værdi af semaforen S, og hvis S>0, så udføres overgangen til næste operation efter primitivet, ellers går processen i ventetilstand.

Processen er blokeret; S=S-1;

Operationen V(S) er forbundet med at øge værdien af ​​S med 1 og placere en eller flere processer i en tilstand klar til udførelse af processoren.

I et simpelt tilfælde, når semaforen fungerer i 2-tilstandstilstand (S>0 og S=0), falder dens driftsalgoritme fuldstændig sammen med mutex-driftsalgoritmen, og S fungerer som en blokerende variabel.

"+": passiv ventetid (kø og automatisk fordeling af ressourcer)


  • evne til at styre en gruppe af homogene ressourcer
"-": peger ikke direkte på en kritisk ressource

  • forkert brug af operationer kan føre til funktionsfejl (for eksempel ved at udveksle operationer P(e) og P(b) i Writer()-funktionen).
Monitorer

For at lette programmørernes arbejde, når de opretter parallelle programmer uden besværet med at bevise rigtigheden af ​​algoritmer og spore indbyrdes forbundne objekter (hvilket er typisk ved brug af semaforer), foreslås et synkroniseringsværktøj på højt niveau kaldet monitorer.

Monitorer er en datatype, der har sine egne variabler, hvis værdier kun kan ændres ved at kalde monitorfunktionsmetoder.

Metodefunktioner kan kun bruge data placeret inde i monitoren og deres parametre.

Kun én proces har adgang til monitorer ad gangen.

For at organisere ikke kun gensidig udelukkelse, men også rækkefølgen af ​​processer, som semaforerne f(fuld) og e(tom), blev begrebet betingede variable introduceret, hvorpå to operationer, vente og signal, kan udføres, noget svarende til operationerne P og V på semaforer.

Monitorfunktionen udfører en venteoperation på en tilstandsvariabel. I dette tilfælde blokeres den proces, der udførte ventehandlingen, bliver inaktiv, og en anden proces er i stand til at komme ind på skærmen.

Når den forventede hændelse indtræffer, udfører en anden proces inde i funktionen en signaloperation på den samme tilstandsvariabel. Dette får den tidligere blokerede proces til at vågne op og blive aktiv.

Udelukkelse af flere processer fra at komme ind i monitoren implementeres af compileren i stedet for programmøren, hvilket gør fejl mindre sandsynlige.

Der kræves specielle programmeringssprog og compilere (findes i sprog som "parallel Euclid", "parallel Pascal", Java).

Det skal bemærkes, at monitortilstandsvariabler ikke husker historik, så signaloperationen skal altid udføres efter venteoperationen (ellers vil venteoperationen altid føre til blokering af processen).

Meddelelseskøer

Mekanismen for meddelelseskø tillader processer og tråde at udveksle strukturerede meddelelser. En eller flere processer kan uafhængigt sende beskeder til en modtagerproces.

Meddelelseskøen giver mulighed for at bruge flere m(FIFO, LIFO, prioritet adgang, tilfældig adgang).

Når du læser en besked fra en kø, fjernes beskeden ikke fra køen, og beskeden kan læses flere gange.

Køen indeholder ikke selve beskederne, men deres adresser i hukommelse og størrelse. Denne information placeres af systemet i et hukommelsessegment, der er tilgængeligt for alle opgaver, der kommunikerer ved hjælp af denne kø.

Vigtigste køstyringsfunktioner:


  • Oprettelse af en ny kø

  • Åbning af en eksisterende kø

  • Læsning og sletning af beskeder fra en kø

  • Læser uden yderligere sletning

  • Tilføjelse af en besked til en kø

  • Afslutning af brug af kø

  • Fjern alle beskeder fra køen

  • Bestemmelse af antallet af elementer i en kø

  1. Deadlocks, deadlocks, systemet fryser

Side 1

Ministeriet for Uddannelse og Videnskab i Den Russiske Føderation

Statens uddannelsesinstitution

videregående faglig uddannelse

"Magnitogorsk State Technical University

dem. G.I. Nosov"

Institut for Informatik og Informationssikkerhed

Prøve

i disciplinen "Informatik"

Abstrakt om emnet "Udviklingen af ​​computeroperativsystemer forskellige typer»

Udført af: elev af gruppe 1304006-11-1

Mulighed nr. 13

Sagdetdinov D.F.

Tjekket af: overlærer

Korinchenko G.M.

Magnitogorsk 2014

  • 1. Udvikling af styresystemer af forskellige typer computere
    • 1.2 Fremkomsten af ​​multiprogramoperativsystemer til mainframes
  • 2. MathCAD opgave nr. 1 "Konstruktion af todimensionelle grafer i MathCAD"
    • 2.1 Opgaveformulering
    • 2.2 Resultat - den resulterende graf
  • 3. MathCAD opgave nr. 2 "Løser SLAE"
    • 3.1 Opgaveformulering
  • 4. MathCAD opgave nr. 3 "Løsning af systemer af ikke-lineære ligninger"
    • 4.1 Opgaveformulering
  • 5. MathCAD opgave nr. 4 "Løsning af ikke-lineære ligninger"
    • 5.1 Opgaveformulering

1. Udvikling af styresystemer af forskellige typer computere

I løbet af næsten et halvt århundrede af deres eksistens har operativsystemer (OS) gennemgået en vanskelig vej, fuld af mange vigtige begivenheder. Udviklingen af ​​operativsystemer var i høj grad påvirket af succeser med at forbedre elementbasen og computerudstyret, så mange stadier af deres udvikling er tæt forbundet med fremkomsten af ​​nye typer hardwareplatforme, såsom minicomputere eller personlige computere.

Operativsystemer har gennemgået en stor udvikling på grund af computernes nye rolle i lokale og globale netværk. Den vigtigste faktor i deres udvikling var internettet.

1.1 Fremkomsten af ​​de første operativsystemer

Fødslen af ​​digital computing fandt sted kort efter afslutningen af ​​Anden Verdenskrig. I midten af ​​40'erne blev de første rørcomputerenheder skabt.

Programmering på det tidspunkt blev udelukkende udført i maskinsprog. Der var ingen systemsoftware, bortset fra biblioteker af matematiske og utility-rutiner, som programmøren kunne bruge for ikke at skrive koder, hver gang han beregnede værdien af ​​en matematisk funktion eller kontrol standard enhed I/O

Operativsystemer var endnu ikke dukket op; alle opgaver med at organisere computerprocessen blev løst manuelt af hver programmør fra kontrolpanelet, som var en primitiv input-outputenhed bestående af knapper, kontakter og indikatorer.

Siden midten af ​​50'erne begyndte en ny periode i udviklingen af ​​computerteknologi, forbundet med fremkomsten af ​​en ny teknisk base - halvlederelementer. Processorernes hastighed er steget, mængderne af operationelle og ekstern hukommelse. Computere blev mere pålidelige, de kunne nu arbejde kontinuerligt så længe, ​​at de kunne blive betroet til at udføre virkelig praktisk vigtige opgaver.

Samtidig blev de første batchbehandlingssystemer udviklet, som automatiserede hele sekvensen af ​​operatørhandlinger for at organisere computerprocessen. Tidlige batchbehandlingssystemer var prototypen på moderne operativsystemer; de blev de første systemprogrammer designet ikke til databehandling, men til styring af computerprocessen.

Batchbehandlingssystemer har reduceret den tid, der bruges på hjælpehandlinger til at organisere computerprocessen betydeligt, hvilket betyder, at endnu et skridt er blevet taget for at forbedre effektiviteten af ​​computerbrug.

Men samtidig mistede programmørbrugere direkte adgang til computeren, hvilket reducerede effektiviteten af ​​deres arbejde - hvilket gjorde, at enhver rettelse krævede meget mere tid, end når de arbejdede interaktivt på maskinens konsol.

1.2 Fremkomsten af ​​multiprogramoperativsystemer til mainframes

Den næste vigtige periode i udviklingen af ​​operativsystemer går tilbage til 1965-1975.

På dette tidspunkt var der i den tekniske base af computere en overgang fra individuelle halvlederelementer såsom transistorer til integrerede kredsløb, hvilket åbnede vejen for fremkomsten af ​​den næste generation af computere.

I løbet af denne periode blev næsten alle de grundlæggende mekanismer, der er iboende i moderne operativsystemer, implementeret:

Multiprogrammering,

Multibearbejdning,

Understøttelse af multi-terminal multi-user mode,

virtuel hukommelse,

Filsystemer,

Adgangskontrol,

Netværksarbejde.

Den revolutionære begivenhed på denne fase var den industrielle implementering af multiprogrammering. I betragtning af en computers dramatisk øgede muligheder for behandling og lagring af data, viste det sig at være ekstremt ineffektivt at udføre kun ét program ad gangen. Løsningen var multiprogrammering – en metode til at organisere en computerproces, hvor flere programmer samtidigt blev gemt i computerens hukommelse og skiftevis udført på én processor.

Disse forbedringer forbedrede i høj grad effektiviteten af ​​computersystemet: computeren kunne nu bruges næsten konstant i stedet for mindre end halvdelen af ​​den tid, computeren kørte, som det tidligere var tilfældet.

Multiprogrammering blev implementeret i to versioner - i batchbehandling og tidsdelingssystemer.

1.3 Operativsystemer og globale netværk

I begyndelsen af ​​70'erne af forrige århundrede dukkede de første netværksoperativsystemer op, som i modsætning til multiterminale gjorde det muligt ikke kun at sprede brugere, men også at organisere distribueret lagring og behandling af data mellem flere computere forbundet med elektriske forbindelser .

Ethvert netværksoperativsystem udfører på den ene side alle funktionerne i et lokalt operativsystem og har på den anden side nogle ekstra værktøjer, der gør det muligt at interagere over netværket med operativsystemerne på andre computere.

Softwaremoduler, der implementerer netværksfunktioner, dukkede gradvist op i operativsystemer, efterhånden som netværksteknologier, computerhardware udviklede sig, og nye opgaver, der kræver netværksbehandling, dukkede op.

I 1969 indledte det amerikanske forsvarsministerium arbejdet med at forene supercomputere fra forsvars- og forskningscentre i et enkelt netværk. Dette netværk blev kaldt ARPANET og var udgangspunktet for skabelsen af ​​det mest berømte globale netværk i dag - Internettet ARPANET netværket forenede forskellige typer computere, der kørte forskellige operativsystemer med tilføjede moduler, der implementerede kommunikationsprotokoller, der var fælles for alle computere på netværket .

I 1974 annoncerede IBM oprettelsen af ​​sin egen netværksarkitektur for sine mainframes, kaldet SNA (System Network Architecture).

Denne lagdelte arkitektur, meget ligesom den senere standard OSI-model, gav terminal-til-terminal, terminal-til-computer og computer-til-computer interaktioner over global kommunikation.

1.4 Minicomputeroperativsystemer. De første lokale netværk

I midten af ​​70'erne blev minicomputere udbredt sammen med mainframes. De var de første til at drage fordel af integrerede kredsløb i stor skala, som gjorde det muligt at implementere ret kraftfulde funktioner til en relativt lav pris for en computer.

Arkitekturen af ​​minicomputere blev væsentligt forenklet sammenlignet med mainframes, hvilket afspejlede sig i deres operativsystemer. Mange af funktionerne i multi-program, multi-user mainframe operativsystemer blev afkortet i betragtning af de begrænsede ressourcer af minicomputere.

Minicomputer-operativsystemer blev ofte specialiserede, for eksempel kun til kontrol i realtid eller kun til at understøtte tidsdelingstilstand.

En vigtig milepæl i minicomputeres historie og i operativsystemernes historie generelt var skabelsen af ​​UNIX OS. Dens massebrug begyndte i midten af ​​70'erne. På dette tidspunkt programkode for UNIX var 90 % skrevet på højniveausproget C.

Tilgængeligheden af ​​minicomputere og som følge heraf deres udbredelse i virksomheder tjente som et stærkt incitament til at skabe lokale netværk. En virksomhed kunne tillade sig at have flere minicomputere placeret i samme bygning eller endda i samme rum. Der var naturligvis behov for at udveksle information mellem dem og dele dyrt perifert udstyr.

De første lokale netværk blev bygget ved hjælp af ikke-standard kommunikationsudstyr, i det enkleste tilfælde - ved direkte at forbinde serielle porte på computere. Softwaren var også ikke-standard og blev implementeret i form af brugerapplikationer.

1.5 Udvikling af styresystemer i 80'erne

De vigtigste begivenheder i dette årti omfatter:

Udvikling af en TCP/IP stack,

Internettets fremkomst

Standardisering af lokale netværksteknologier,

Fremkomsten af ​​personlige computere

Og styresystemer til dem.

En fungerende version af TCP/IP-protokolstakken blev oprettet i slutningen af ​​70'erne.

I 1983 blev TCP/IP-protokolstakken vedtaget af det amerikanske forsvarsministerium som en militær standard.

Indførelsen af ​​TCP/IP-protokoller i ARPANET gav dette netværk alle de vigtigste funktioner, der adskiller det moderne internet.

Hele årtiet var præget af den konstante fremkomst af nye, stadig mere avancerede versioner af UNIX OS. Blandt dem var proprietære versioner af UNIX: SunOS, HP-UX, Irix, AIX og mange andre, hvor computerproducenter tilpassede kernekoden og systemværktøjerne til deres udstyr.

Begyndelsen af ​​80'erne er forbundet med en anden vigtig begivenhed for operativsystemets historie - fremkomsten af ​​personlige computere.

De tjente som en stærk katalysator for den hurtige vækst af lokale netværk, hvilket skabte et fremragende materielt grundlag for dette i form af snese- og hundredvis af computere, der tilhører en virksomhed og placeret i en bygning. Som følge heraf er understøttelse af netværksfunktioner blevet en forudsætning for pc-operativsystemer.

Netværksfunktioner blev primært implementeret af netværksskaller, der kørte oven på OS. Når du arbejder på et netværk, er det altid nødvendigt at understøtte multi-user mode, hvor én bruger er interaktiv, og resten får adgang til computerressourcer over netværket. I dette tilfælde kræver operativsystemet mindst en vis minimumsfunktionel understøttelse af multi-user mode.

I 1987, som et resultat af Microsofts og IBMs fælles indsats, dukkede det første multitasking-operativsystem til personlige computere op med Intel 80286-processoren, der udnyttede mulighederne i beskyttet tilstand - OS/2 fuldt ud. Dette system var gennemtænkt. Det understøttede forebyggende multitasking, virtuel hukommelse, en grafisk brugergrænseflade og en virtuel maskine til at køre DOS-applikationer.

I 1980'erne blev grundlæggende standarder for kommunikationsteknologier for lokale netværk: i 1980 - Ethernet, i 1985 - Token Ring, i slutningen af ​​80'erne - FDDI. Dette gjorde det muligt at sikre kompatibilitet af netværksoperativsystemer på lavere niveauer, samt standardisere OS-grænsefladen med netværksadapterdrivere.

1.6 Funktioner i den nuværende udviklingsfase af operativsystemer

I 90'erne blev næsten alle operativsystemer, der indtog en fremtrædende plads på markedet, netværksbaserede. Netværksfunktioner i dag er indbygget i OS-kernen og er en integreret del af den. Operativsystemer modtog værktøjer til at arbejde med alle større lokale netværksteknologier, samt værktøjer til at skabe sammensatte netværk.

Operativsystemer bruger et middel til at multiplekse flere protokolstakke, så computere kan understøtte samtidig netværksarbejde med heterogene klienter og servere.

I anden halvdel af 90'erne øgede alle operativsystemproducenter dramatisk deres støtte til internetværktøjer. Ud over selve TCP/IP-stakken begyndte pakken at inkludere hjælpeprogrammer, der implementerer sådanne populære tjenester Internet som telnet, ftp, DNS og web.

Internettets indflydelse kom også til udtryk i, at computeren er forvandlet fra en ren computerenhed til et kommunikationsmiddel med avancerede computeregenskaber.

Der har været særlig opmærksomhed på virksomhedens netværksoperativsystemer i løbet af det sidste årti. Deres videre udvikling repræsenterer en af ​​de vigtigste opgaver i en overskuelig fremtid.

Virksomhedens styresystem er kendetegnet ved dets evne til at fungere godt og stabilt i store netværk, som er typiske for store virksomheder med afdelinger i snesevis af byer og evt. forskellige lande. Sådanne netværk er iboende iboende i en høj grad af heterogenitet af software og hardware, så virksomhedens OS skal problemfrit interagere med operativsystemer af forskellige typer og arbejde på forskellige hardwareplatforme.

At skabe en multifunktionel, skalerbar helpdesk er en strategisk retning i udviklingen af ​​operativsystemet. En sådan service er nødvendig for at gøre internettet til et forudsigeligt og overskueligt system, for eksempel for at sikre den nødvendige servicekvalitet for brugertrafik, understøtte store distribuerede applikationer og opbygge et effektivt mailsystem.

På det nuværende stadium af udviklingen af ​​operativsystemer er sikkerhedsværktøjer kommet i forgrunden. Dette skyldes den øgede værdi af information, der behandles af computere, samt det øgede niveau af trusler, der eksisterer, når der overføres data over netværk, især offentlige netværk såsom internettet. Mange operativsystemer har i dag udviklet informationssikkerhedsværktøjer baseret på datakryptering, autentificering og autorisation.

Moderne operativsystemer er multi-platform, det vil sige evnen til at arbejde på helt forskellige typer computere. Mange operativsystemer har specielle versioner at understøtte klyngearkitekturer, der giver høj ydeevne og fejltolerance.

I de senere år er den langsigtede tendens til at øge bekvemmeligheden ved menneskelig interaktion med en computer blevet videreudviklet. Menneskelig præstation bliver den vigtigste faktor, der bestemmer effektiviteten af ​​computersystemet som helhed.

Bekvemmeligheden ved interaktivt arbejde med en computer bliver konstant forbedret ved at inkludere i operativsystemet udviklede grafiske grænseflader, der bruger lyd og video sammen med grafik. brugergrænseflade Operativsystemet bliver mere og mere intelligent, leder menneskelige handlinger i typiske situationer og træffer rutinemæssige beslutninger for ham.

2. MathCAD opgave nr. 1 "Konstruktion af todimensionelle grafer i MathCAD"

2.1 Opgaveformulering

Tegn to grafer. Vis en tabel med værdier for en funktion angivet i parametrisk form.

tabel 1

Indledende data

2.2 Resultat - den resulterende graf

Figur 1 - Opgave 1

3. MathCAD opgave nr. 2 "Løser SLAE"

3.1 Opgaveformulering

Find en løsning på SLAE:

1. anvendelse af en invers matrix;

2. Brug af den indbyggede lsolve-funktion;

3. ved hjælp af Given-Find beregningsblokken.

3.2 Resultat - gennemført løsning

Figur 2 - Opgave 2

4. MathCAD opgave nr. 3 "Løsning af systemer af ikke-lineære ligninger"

4.1 Opgaveformulering

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

Konstruer grafer over funktioner, der definerer systemets ligninger.

Kontroller grafisk rigtigheden af ​​løsningen.

operativsystem netværk mathcad

4.2 Resultat - gennemført løsning

Figur 3 - Opgave 3

5. MathCAD opgave nr. 4 "Løsning af ikke-lineære ligninger"

5.1 Opgaveformulering

Find løsningen på den ikke-lineære ligning:

1. ved at bruge den indbyggede root-funktion;

2. Brug af den indbyggede polyroots-funktion;

5.2 Resultat - gennemført løsning

Figur 4 - Opgave 4

Lignende dokumenter

    Funktioner i den moderne udviklingsfase af operativsystemer. Formål med operativsystemer, deres hovedtyper. Minicomputer operativsystemer. Driftsprincippet for en matrixprinter, design og reproduktion af vilkårlige tegn for dem.

    kursusarbejde, tilføjet 23/06/2011

    Grundlæggende begreber om operativsystemer. Typer af moderne operativsystemer. Historien om udviklingen af ​​operativsystemer Windows familie. Karakteristika for operativsystemer i Windows-familien. Ny funktionalitet i Windows 7-operativsystemet.

    kursusarbejde, tilføjet 18.02.2012

    Evolution og klassificering af OS. Netværksoperativsystemer. Hukommelseshåndtering. Moderne koncepter og teknologier til design af operativsystemer. Operationsstue familie UNIX systemer. Novell netværksprodukter. Microsoft netværksoperativsystemer.

    kreativt arbejde, tilføjet 11/07/2007

    Karakteristika for essensen, formålet, funktionerne af operativsystemer. Karakteristiske træk ved deres udvikling. Funktioner af ressourcestyringsalgoritmer. Moderne koncepter og teknologier til design af operativsystemer, krav til OS i det 21. århundrede.

    kursusarbejde, tilføjet 01/08/2011

    Historien om udvikling og forbedring af Microsoft-operativsystemer, deres egenskaber og karakteristiske træk fra systemer af andre mærker, fordele og ulemper. Nuværende tilstand og Microsoft-operativsystemers muligheder og muligheder.

    abstract, tilføjet 22.11.2009

    Formål og hovedfunktioner af operativsystemer. Indlæser programmer, der skal udføres i RAM. Håndtering af alle I/O-operationer. Evolution, klassificering af operativsystemer. Udarbejdelse af lønopgørelser, sortering på afdelinger.

    kursusarbejde, tilføjet 17.03.2009

    Formål, klassificering, sammensætning og formål med operativsystemkomponenter. Udvikling af komplekse informationssystemer, softwarepakker og individuelle applikationer. Karakteristika for operationsstuer Windows-systemer, Linux, Android, Solaris, Symbian OS og Mac OS.

    kursusarbejde, tilføjet 19.11.2014

    Operativsystemernes koncept og grundlæggende funktioner, deres typiske struktur og funktionsprincip. En kort historie om dannelsen og udviklingen af ​​Windows-operativsystemer, deres varianter og generelle karakteristika, grundlæggende hardwarekrav.

    præsentation, tilføjet 07/12/2011

    Grundlæggende begreber i operativsystemer. Synkronisering og kritiske områder. Signaler og interaktion mellem processer. Hukommelseshåndtering. Enhedsdrivere. Funktioner af moderne operativsystemer. Central processor, ur og timer-chips.

    tutorial, tilføjet 24/01/2014

    Begrebet operativsystemer, deres klassificering og varianter, særpræg og grundlæggende egenskaber. Indhold af operativsystemer, rækkefølge af interaktion og formålet med deres komponenter. Organisation diskplads. Beskrivelse af moderne operativsystemer.

Når man overvejer udviklingen af ​​operativsystemet, skal man huske på, at forskellen i tidspunktet for implementering af nogle principper for organisationen af ​​individuelle operativsystemer før deres generelle anerkendelse, såvel som terminologisk usikkerhed, ikke tillader os at give en nøjagtig kronologi af udviklingen af ​​OS. Men det er nu muligt ret præcist at bestemme de vigtigste milepæle i udviklingen af ​​operativsystemer.

Der er også forskellige tilgange til at bestemme OS-generationer. Det er kendt at opdele operativsystemet i generationer i overensstemmelse med generationerne af computere og systemer [, ,]. Denne opdeling kan ikke betragtes som helt tilfredsstillende, da udviklingen af ​​metoder til at organisere et OS inden for en generation af computere, som erfaringen med deres oprettelse har vist, ligger i et ret bredt område. Et andet synspunkt forbinder ikke OS-generationen med de tilsvarende computergenerationer. For eksempel er det kendt at definere OS generationer i henhold til niveauerne af computerens inputsprog, brugsmåder centrale behandlingsenheder, driftsformer af systemer mv.

Tilsyneladende bør det anses for at være det mest passende at skelne mellem stadierne af OS-udvikling inden for individuelle generationer af computere og computere.

Den første fase i udviklingen af ​​systemsoftware kan betragtes som brugen biblioteksprogrammer, standard- og serviceunderrutiner og makrokommandoer. Konceptet med rutinebiblioteker er det tidligste og går tilbage til 1949. Med fremkomsten af ​​biblioteker blev der udviklet automatiske midler til at vedligeholde dem - loader-programmer og link-editorer. Disse værktøjer blev brugt i førstegenerationscomputere, hvor operativsystemer som sådan endnu ikke eksisterede (fig. 3.2).

Ønsket om at eliminere uoverensstemmelsen mellem processorernes ydeevne og driftshastigheden af ​​elektromekaniske input/output-enheder på den ene side og brugen af ​​ret højhastighedsdrev på magnetbånd og tromler (NMR og NMB), og derefter på magnetiske diske (NMD) på den anden side førte til behovet for en løsning opgaver med buffering og blokering/afblokering af data. Opstod særlige programmer adgangsmetoder, der blev tilføjet til objekterne i linkredigeringsmoduler (senere begyndte principperne for polybuffering at blive brugt). Til opretholdelse af ydeevnen Diagnoseprogrammer blev oprettet for at lette driften af ​​maskiner. Der blev således skabt et grundlæggende system software.


Ris. 3.2.

Med forbedringen af ​​computerens egenskaber og væksten i deres produktivitet blev utilstrækkeligheden af ​​grundlæggende software (software) tydelig. Tidlige - skærme - dukkede op. Inden for batchbehandlingssystemer i gennemløbstid af noget arbejde i pakken (oversættelse, montering, udførelse af et færdigt program), var ingen del af systemsoftwaren i RAM, da al hukommelse blev leveret nuværende arbejde. Så dukkede monitorsystemer op, hvori vædder blev opdelt i tre områder: et fast område af monitorsystemet, et brugerområde og et delt hukommelsesområde (til lagring af data, der kan udveksles mellem objektmoduler).

Der begyndte en intensiv udvikling af datahåndteringsmetoder, og en så vigtig OS-funktion opstod som implementeringen af ​​I/O uden deltagelse af en central proces - den såkaldte spooling (fra det engelske SPOOL - Simultaneous Peripheral Operation on Line).

Fremkomsten af ​​nye hardwareudviklinger (1959-1963) - afbrydelsessystemer, timere, kanaler - stimulerede den videre udvikling af OS [,]. Executive-systemer opstod, som var et sæt programmer til at distribuere computerressourcer, kommunikere med operatøren, styre computerprocessen og styre input/output. Sådanne eksekutivsystemer gjorde det muligt at implementere en ret effektiv form for drift af et computersystem til den tid - enkelt-program batchbehandling. Disse systemer gav brugeren værktøjer som f.eks kontrolpunkter, logiske timere, mulighed for at bygge programmer overlejringsstruktur, opdagelse af overtrædelse begrænsningsprogrammer vedtaget i system, filhåndtering, indsamling af regnskabsoplysninger mv.

Dog kunne batchbehandling med et enkelt program med stigende computerproduktivitet ikke give et økonomisk acceptabelt maskindriftsniveau. Løsningen var multiprogrammering- en metode til at organisere en computerproces, hvor computerhukommelsen indeholder flere programmer, der skiftevis udføres af én processor, og for at starte eller fortsætte med at tælle et program kræver det ikke, at andre færdiggøres. I et miljø med flere programmer er ressourceallokering og sikkerhedsproblemer blevet mere akutte og uoverskuelige.

Teorien om at bygge operativsystemer i denne periode blev beriget med en række frugtbare ideer. Dukkede op forskellige former multi-program driftstilstande, herunder tidsdeling– tilstand, der sikrer drift multi-terminal system. Konceptet med virtuel hukommelse og derefter virtuelle maskiner blev skabt og udviklet. Tidsdelingstilstand gav brugeren mulighed for at interagere interaktivt med deres programmer, som det var tilfældet før fremkomsten af ​​batchbehandlingssystemer.

Et af de første operativsystemer til at bruge disse nyeste løsninger var operativ system MCP (main control program) skabt af Burroughs til sine B5000-computere i 1963. Dette OS implementerede mange koncepter og ideer, som senere blev standard for mange operativsystemer (fig. 3.3):

  • multiprogrammering;
  • multiprocessing;
  • virtuel hukommelse;
  • evnen til at fejlsøge programmer på kildesproget;
  • at skrive et operativsystem på et højt niveau sprog.

Et velkendt tidsdelingssystem fra den periode var CTSS (Compatible Time Sharing System) - kompatibelt system tidsdeling, udviklet ved Massachusetts Institute of Technology (1963) til IBM-7094 computeren. Dette system blev brugt til at udvikle næste generations tidsdelingssystem MULTICS (Multiplexed Information And Computing Service) på samme institut sammen med Bell Labs og General Electric. Det er bemærkelsesværdigt, at dette OS hovedsageligt blev skrevet på højniveausproget EPL (den første version af PL/1-sproget fra IBM).

En af de vigtigste begivenheder i operativsystemets historie er fremkomsten i 1964 af en familie af computere kaldet System / 360 fra IBM, og senere System / 370. Dette var verdens første implementering af konceptet med en familie af software- og informationskompatible computere, som senere blev standard for alle virksomheder i computerindustrien.


Ris. 3.3.

Det skal bemærkes, at den primære form for computerbrug er både i tidsdelingssystemer og i batchbehandlingssystemer, blev en multi-terminal tilstand. Samtidig var ikke kun operatøren, men også alle brugere i stand til at formulere deres opgaver og styre deres udførelse fra deres terminal. Da terminalkomplekser hurtigt blev mulige at placere i betydelige afstande fra computeren (takket være modemtelefonforbindelser), eksterne jobindtastningssystemer og telebehandling. Moduler, der implementerer kommunikationsprotokoller, er blevet tilføjet til OS.

På dette tidspunkt var der sket en væsentlig ændring i fordelingen af ​​funktioner mellem computerhardware og software. operativ system bliver "en integreret del af computeren", som om en fortsættelse af udstyret. Processorerne har nu privilegerede ("Supervisor" i OS/360) og bruger ("Task" i OS/360) driftstilstande, kraftfuldt system afbrydelser, hukommelsesbeskyttelse, særlige registre vedr hurtigt skifte programmer, støtteværktøjer til virtuel hukommelse osv.

I begyndelsen af ​​70'erne dukkede de første netværksoperativsystemer op, som gjorde det muligt ikke kun at sprede brugere, som i telebehandlingssystemer, men også at organisere distribueret lagring og behandling af data mellem computere forbundet med elektriske forbindelser. ARPANET MO USA-projektet er velkendt. I 1974 annoncerede IBM oprettelsen af ​​sin egen SNA-netværksarkitektur til sine mainframes, der giver terminal-til-terminal, terminal-til-computer og computer-til-computer interaktioner. I Europa blev der aktivt udviklet teknologi til opbygning af pakkekoblingsnetværk baseret på X.25-protokoller.

I midten af ​​70'erne blev minicomputere (PDP-11, Nova, HP) udbredt sammen med mainframes. Arkitekturen af ​​minicomputere var meget enklere; mange funktioner i mainframe multi-program OS blev afkortet. Minicomputer operativsystemer begyndte at blive specialiseret ( RSX -11M - tidsdeling, RT-11 – real-time OC) og ikke altid flerbruger.

En vigtig milepæl i minicomputeres historie og generelt i operativsystemets historie var skabelsen af ​​UNIX OS. Dette system er skrevet af Ken Thompson, en af ​​computerspecialisterne hos BELL Labs, som arbejdede på MULTICS-projektet. Faktisk er hans UNIX en trunkeret enkeltbrugerversion af MULTICS-systemet. Det originale navn på dette system er UNICS (UNiplexed Information and Computing Service) - "primitiv information og computerservice." Dette system blev navngivet så sjovt, eftersom MULTICS (MULTiplexed Information and Computing Service) er en multiplex informations- og computertjeneste. Siden midten af ​​70'erne begyndte den udbredte brug af UNIX OS, skrevet 90% i sproget C. Den udbredte brug af C-kompilere gjorde UNIX til et unikt bærbart OS, og da det blev leveret med kildekode, blev det det første åbne operativsystem. operativ system. Fleksibilitet, elegance, kraftfuld funktionalitet og åbenhed har gjort det muligt for den at tage en stærk position i alle klasser af computere - fra personlige computere til supercomputere.

Tilgængeligheden af ​​minicomputere stimulerede oprettelsen af ​​lokale netværk. I de simpleste LAN'er var computere forbundet via serielle porte. Den første netværksapplikation til UNIX OS, UUCP (Unix to Unix Copy Program) programmet, dukkede op i 1976.

Videre udvikling netværkssystemer kom med TCP/IP-protokolstakken. I 1983 blev det vedtaget af US DoD som en standard og brugt på ARPANET. Samme år delte ARPANET sig op i MILNET (til den amerikanske militærafdeling) og det nye ARPANET, som blev kendt som internettet.

Hele firserne var præget af fremkomsten af ​​stadig mere avancerede versioner af UNIX: Sun OS, HP-UX, Irix, AIX osv. For at løse problemet med deres kompatibilitet blev POSIX- og XPG-standarder vedtaget, som definerede grænseflader for disse systemer for applikationer.

En anden væsentlig begivenhed i operativsystemets historie var fremkomsten af ​​personlige computere i begyndelsen af ​​80'erne. Det tjente som en kraftig drivkraft for distributionen af ​​lokale netværk, som et resultat, blev understøttelse af netværksfunktioner en forudsætning for pc-operativsystemer. Men både en brugervenlig grænseflade og netværksfunktioner dukkede ikke op på PC OS med det samme.

Den mest populære OS-version af den tidlige udvikling af personlige computere var Microsofts MS-DOS, et enkelt-program, enkeltbruger OS med en kommandolinjegrænseflade. Mange funktioner, der sikrer brugervenligheden i dette operativsystem, blev leveret af yderligere programmer - Norton Commander-skallen, pc-værktøjer osv. Den største indflydelse på udviklingen af ​​pc-software blev udøvet af driftsmiljø Windows, hvoraf den første version udkom i 1985. Netværksfunktioner blev også implementeret ved hjælp af netværksskaller og dukkede op i MS-DOS version 3.1. Samtidig blev Microsoft-netværksprodukter frigivet - MS-NET og senere - LAN Manager, Windows for Workgroup og derefter Windows NT.

Novell gik en anden vej; dets NetWare-produkt er et operativsystem med indbygget netværksfunktioner. NetWare OS blev distribueret som