Evolutie van verschillende soorten computerwespen. De evolutie van besturingssystemen. De belangrijkste ontwikkelingsstadia. Transistorgebaseerde computers. Batch-besturingssystemen


Ministerie van Onderwijs en Wetenschappen van de Russische Federatie

Staatsonderwijsinstelling

hoger beroepsonderwijs

"Magnitogorsk State Technische Universiteit

hen. GI Nosov "

Afdeling Informatica en Informatiebeveiliging

Test

in de discipline "Informatica"

Samenvatting over het onderwerp "Evolutie van besturingssystemen van computers van verschillende typen"

Ingevuld door: studentengroep 1304006-11-1

Optie nummer 13

Sagdetdinov D.F.

Gecontroleerd door: hoofddocent

Korinchenko G.M.

Magnitogorsk 2014

  • 1. Evolutie van besturingssystemen van verschillende soorten computers
    • 1.2 Opkomst van multi-software besturingssystemen voor mainframes
  • 2. Taak op MathCAD №1 "Constructie van tweedimensionale grafieken in MathCAD"
    • 2.1 Verklaring van de opdracht
    • 2.2Resultaat - resulterende grafiek
  • 3. Taak op MathCAD nr. 2 "Oplossing van SLAE"
    • 3.1 Verklaring van de opdracht
  • 4. Opdracht over MathCAD nr. 3 "Systeems van niet-lineaire vergelijkingen oplossen"
    • 4.1 Verklaring van de opdracht
  • 5. Taak op MathCAD nr. 4 "Niet-lineaire vergelijkingen oplossen"
    • 5.1 Verklaring van de opdracht

1. Evolutie van besturingssystemen van verschillende soorten computers

Bijna een halve eeuw van hun bestaan ​​hebben besturingssystemen (OS) een moeilijk pad afgelegd, vol met veel belangrijke gebeurtenissen. De ontwikkeling van besturingssystemen werd sterk beïnvloed door de successen bij het verbeteren van de elementbasis en computerapparatuur, daarom zijn veel stadia van hun ontwikkeling nauw verbonden met de opkomst van nieuwe soorten hardwareplatforms, zoals minicomputers of personal computers.

Besturingssystemen hebben een serieuze evolutie doorgemaakt in verband met de nieuwe rol van computers in lokale en mondiale netwerken. De belangrijkste factor in hun ontwikkeling was het internet.

1.1 Het verschijnen van de eerste besturingssystemen

De geboorte van digitale computers kwam kort na het einde van de Tweede Wereldoorlog. Halverwege de jaren 40 werden de eerste buizencomputers gemaakt.

De programmering gebeurde destijds uitsluitend op machinetaal... Er was geen systeemsoftware, behalve bibliotheken met wiskundige en gebruiksroutines, die de programmeur kon gebruiken om niet elke keer codes te schrijven die de waarde van een wiskundige functie of controle berekenen standaard apparaat invoer uitvoer.

Besturingssystemen zijn nog niet verschenen, alle taken van de organisatie computerproces werden door elke programmeur handmatig opgelost vanaf het bedieningspaneel, dat een primitief invoer-uitvoerapparaat was dat bestond uit knoppen, schakelaars en indicatoren.

Halverwege de jaren vijftig begon een nieuwe periode in de ontwikkeling van computertechnologie, geassocieerd met de opkomst van een nieuwe technische basis - halfgeleiderelementen. De snelheid van processors is toegenomen, de volumes van RAM en extern geheugen zijn toegenomen. Computers werden betrouwbaarder, ze konden nu lang genoeg ononderbroken doorwerken om taken uit te voeren die in de praktijk echt belangrijk zijn.

Tegelijkertijd werden de eerste systemen ontwikkeld. batchverwerking, die de hele reeks operatoracties automatiseerde om het computerproces te organiseren. vroege systemen batchverwerking was het prototype van moderne besturingssystemen, zij waren de eerste systeem programma's, niet bedoeld voor gegevensverwerking, maar voor besturing van het rekenproces.

Batchverwerkingssystemen hebben de tijd die wordt besteed aan hulpacties om het computerproces te organiseren aanzienlijk verminderd, wat betekent dat er weer een stap is gezet om de efficiëntie van het gebruik van computers te verbeteren.

Tegelijkertijd verloren gebruikersprogrammeurs echter directe toegang tot de computer, wat hun efficiëntie verminderde - elke correctie kostte veel meer tijd dan wanneer ze interactief op het bedieningspaneel van de machine werkten.

1.2 Opkomst van besturingssystemen voor multiprogrammering voor mainframes

De volgende belangrijke periode in de ontwikkeling van besturingssystemen gaat terug tot 1965-1975.

Op dat moment was er in de technische basis van computers een overgang van individuele halfgeleiderelementen zoals transistors naar geïntegreerde schakelingen, wat de weg vrijmaakte voor de opkomst van de volgende generatie computers.

Tijdens deze periode werden bijna alle hoofdmechanismen geïmplementeerd die inherent zijn aan moderne besturingssystemen:

Multiprogrammeren,

Multiverwerking,

Ondersteuning voor multi-terminal multi-user modus,

Virtueel geheugen,

Bestandssystemen,

Toegangscontrole,

Netwerk werk.

De revolutionaire gebeurtenis van deze fase was de industriële implementatie van multiprogrammering. Onder de omstandigheden van de dramatisch toegenomen mogelijkheden van de computer voor het verwerken en opslaan van gegevens, bleek de uitvoering van slechts één programma tegelijk uiterst ineffectief. De oplossing was multiprogrammering - een methode om een ​​rekenproces te organiseren waarbij meerdere programma's tegelijkertijd in het geheugen van de computer aanwezig waren en afwisselend op één processor werden uitgevoerd.

Deze verbeteringen verbeterden de efficiëntie van het computersysteem aanzienlijk: de computer kon nu bijna constant worden gebruikt, en minstens de helft van de tijd dat de computer draaide, zoals voorheen.

Multiprogrammering werd in twee versies geïmplementeerd - in batchverwerkings- en timesharingsystemen.

1.3 Besturingssystemen en wereldwijde netwerken

In het begin van de jaren 70 van de vorige eeuw verschenen de eerste netwerkbesturingssystemen, die, in tegenstelling tot multi-terminal-systemen, niet alleen gebruikers konden verspreiden, maar ook gedistribueerde opslag en verwerking van gegevens tussen verschillende computers die via elektrische verbindingen waren verbonden, konden organiseren.

Elk netwerkbesturingssysteem voert aan de ene kant alle functies uit van een lokaal besturingssysteem, en aan de andere kant heeft het een aantal extra middelen waarmee het via het netwerk kan communiceren met de besturingssystemen van andere computers.

Softwaremodules die netwerkfuncties implementeren, verschenen geleidelijk in besturingssystemen, met de ontwikkeling van netwerktechnologieën, de hardwarebasis van computers en de opkomst van nieuwe taken die netwerkverwerking vereisen.

In 1969 startte het Amerikaanse ministerie van Defensie met het combineren van de supercomputers van defensie- en onderzoekscentra in enkel netwerk... Dit netwerk heette ARPANET en was het startpunt voor de oprichting van het meest bekende wereldwijde netwerk van vandaag - het internet Het ARPANET-netwerk verenigde computers verschillende soorten met verschillende besturingssystemen met toegevoegde modules die communicatieprotocollen implementeren die voor alle computers in het netwerk gelden.

In 1974 kondigde IBM zijn eigen netwerkarchitectuur aan voor zijn mainframes, genaamd SNA (System Network Architecture).

Deze gelaagde architectuur, in veel opzichten vergelijkbaar met het standaard OSI-model, dat iets later verscheen, zorgde voor interactie van de typen "terminal-terminal", "terminal-computer" en "computer-computer" op wereldwijde verbindingen.

1.4 Besturingssystemen van minicomputers. De eerste lokale netwerken

Tegen het midden van de jaren 70 samen met mainframes breed gebruik heb minicomputers. Zij waren de eersten die profiteerden van grote geïntegreerde schakelingen, wat het mogelijk maakte om vrij krachtige functies te implementeren met een relatief goedkoop computer.

De architectuur van minicomputers is sterk vereenvoudigd in vergelijking met mainframes, wat tot uiting komt in hun besturingssystemen. Veel functies van de multiprogrammerings-besturingssystemen voor meerdere gebruikers van het mainframe zijn uitgekleed vanwege de beperkte middelen van minicomputers.

De besturingssystemen van minicomputers zijn vaak gespecialiseerd geworden, bijvoorbeeld alleen voor realtime besturing of alleen om een ​​timesharing-modus te behouden.

Een belangrijke mijlpaal in de geschiedenis van minicomputers en in de geschiedenis van besturingssystemen in het algemeen was de creatie van het UNIX OS. Het massale gebruik begon in het midden van de jaren '70. Tegen die tijd was 90% van de UNIX-code geschreven in C-taal op hoog niveau.

De beschikbaarheid van minicomputers en, als gevolg daarvan, hun prevalentie in ondernemingen, vormden een krachtige stimulans voor het creëren van lokale netwerken... Het bedrijf kon het zich veroorloven om meerdere minicomputers in hetzelfde gebouw of zelfs in dezelfde ruimte te hebben. Uiteraard was er behoefte aan onderlinge informatie-uitwisseling en aan gezamenlijk gebruik van dure randapparatuur.

De eerste lokale netwerken werden gebouwd met behulp van niet-standaard communicatieapparatuur, in het eenvoudigste geval door de seriële poorten van computers rechtstreeks aan te sluiten. De software was ook niet-standaard en geïmplementeerd als maatwerkapplicaties.

1.5 Ontwikkeling van besturingssystemen in de jaren 80

De belangrijkste gebeurtenissen van dit decennium zijn onder meer:

TCP / IP-stackontwikkeling,

De opkomst van internet

Standaardisatie van lokale netwerktechnologieën,

De opkomst van personal computers,

En besturingssystemen voor hen.

Eind jaren 70 werd een werkende versie van de TCP/IP-protocolstack gemaakt.

In 1983 werd de TCP / IP-protocolstack door het Amerikaanse ministerie van Defensie aangenomen als een militaire standaard.

De introductie van de TCP / IP-protocollen in het ARPANET gaf dit netwerk alle basisfuncties die het moderne internet onderscheiden.

Het hele decennium werd gekenmerkt door de constante opkomst van nieuwe, meer en meer geavanceerde versies van het UNIX-besturingssysteem. Onder hen waren merkversies van UNIX: SunOS, HP-UX, Irix, AIX en vele anderen, waarin computerfabrikanten de kernel- en systeemhulpprogramma's voor hun hardware aanpasten.

Het begin van de jaren 80 wordt geassocieerd met een andere belangrijke gebeurtenis in de geschiedenis van besturingssystemen: de opkomst van personal computers.

Ze dienden als een krachtige katalysator voor de snelle groei van lokale netwerken en creëerden daarvoor een uitstekende materiële basis in de vorm van tientallen en honderden computers die tot één onderneming behoorden en zich in één gebouw bevonden. Als gevolg hiervan is ondersteuning voor netwerkfuncties een vereiste geworden voor het besturingssysteem van personal computers.

Netwerkfuncties werden voornamelijk geïmplementeerd door netwerkshells die bovenop het besturingssysteem draaiden. Wanneer u aan een netwerk werkt, is het altijd nodig om een ​​modus voor meerdere gebruikers te behouden, waarbij één gebruiker interactief is en de rest toegang krijgt tot computerbronnen via het netwerk. In dit geval vereist het besturingssysteem ten minste een minimum aan functionele ondersteuning voor de modus voor meerdere gebruikers.

In 1987 werkten Microsoft en IBM samen om het eerste multitasking-besturingssysteem voor personal computers te creëren met Intel-processor 80286, die optimaal profiteert van de beschermde modus - OS / 2. Dit systeem was goed doordacht. Het ondersteunde preventieve multitasking, virtueel geheugen, een grafische gebruikersinterface en een virtuele machine voor het uitvoeren van DOS-toepassingen.

In de jaren 80 werden de belangrijkste normen voor communicatietechnologieën voor lokale netwerken aangenomen: in 1980 - Ethernet, in 1985 - Token Ring, eind jaren 80 - FDDI. Dit maakte het mogelijk om de compatibiliteit van netwerkbesturingssystemen op lagere niveaus te garanderen en om de OS-interface te standaardiseren met stuurprogramma's voor netwerkadapters.

1.6 Kenmerken van de huidige ontwikkelingsfase van besturingssystemen

In de jaren 90 werden bijna alle besturingssystemen die een prominente plaats in de markt innemen, genetwerkt. Netwerkfuncties zijn nu ingebouwd in de kernel van het besturingssysteem en vormen er een integraal onderdeel van. Besturingssystemen kregen tools om met alle belangrijke LAN-technologieën te werken, evenals tools voor het creëren van samengestelde netwerken.

Besturingssystemen maken gebruik van multiplex-multiplexfaciliteiten om computers in staat te stellen gelijktijdig te netwerken met verschillende clients en servers.

In de tweede helft van de jaren negentig hebben alle fabrikanten van besturingssystemen hun steun voor internet drastisch vergroot. Naast de TCP / IP-stack zelf, begon de distributiekit hulpprogramma's te bevatten die dergelijke implementeren: populaire diensten Internet zoals telnet, ftp, DNS en web.

De invloed van internet kwam ook tot uiting in het feit dat de computer veranderde van een puur computerapparaat in een communicatiemiddel met geavanceerde computermogelijkheden.

Speciale aandacht heeft zich de afgelopen tien jaar gericht op besturingssystemen voor bedrijfsnetwerken. Hun verdere ontwikkeling is een van de belangrijkste taken in de nabije toekomst.

Het bedrijfsbesturingssysteem wordt gekenmerkt door het vermogen om goed en duurzaam te presteren in grote netwerken, die typisch zijn voor grote ondernemingen met vestigingen in tientallen steden en mogelijk in verschillende landen. Dergelijke netwerken zijn organisch inherent hoge graad heterogeniteit van software en hardware, zodat het bedrijfsbesturingssysteem naadloos moet samenwerken met verschillende soorten besturingssystemen en op verschillende hardwareplatforms moet draaien.

Bouw een functierijke schaalbare helpdesk is de strategische richting van de evolutie van het besturingssysteem. Zo'n dienst is nodig om het internet voorspelbaar te maken en beheerd systeem, bijvoorbeeld om de vereiste servicekwaliteit voor gebruikersverkeer te waarborgen, grote gedistribueerde toepassingen te ondersteunen en een effectief e-mailsysteem te bouwen.

In het huidige ontwikkelingsstadium van besturingssystemen op voorgrond beveiligingstools zijn uitgekomen. Dit komt door de toegenomen waarde van informatie die door computers wordt verwerkt, evenals het toegenomen niveau van bedreigingen die bestaan ​​bij het overbrengen van gegevens via netwerken, met name openbare netwerken, zoals internet. Veel besturingssystemen hebben tegenwoordig geavanceerde tools voor informatiebeveiliging op basis van gegevensversleuteling, authenticatie en autorisatie.

Moderne besturingssystemen zijn inherent multiplatform, dat wil zeggen, het vermogen om op totaal verschillende soorten computers te werken. Veel besturingssystemen zijn specifiek herzien om geclusterde architecturen te ondersteunen voor hoge prestaties en fouttolerantie.

In de afgelopen jaren is de langetermijntrend om het gemak van een persoon met een computer te verbeteren, verder ontwikkeld. De efficiëntie van iemands werk wordt de belangrijkste factor die de efficiëntie van een computersysteem als geheel bepaalt.

Het gemak van interactief werken met een computer wordt voortdurend verbeterd door de opname van geavanceerde grafische interfaces in het besturingssysteem, die geluid en video samen met afbeeldingen gebruiken. De gebruikersinterface van het besturingssysteem wordt steeds intelligenter, stuurt menselijke acties in typische situaties en neemt routinematige beslissingen voor hem.

2. Taak op MathCAD №1 "Constructie van tweedimensionale grafieken in MathCAD"

2.1 Verklaring van de opdracht

Construeer twee grafieken. Druk een tabel met waarden af ​​van een functie gespecificeerd in een parametrische vorm.

tafel 1

Initiële data

2.2 Resultaat - de resulterende grafiek

Figuur 1 - Taak 1

3. Taak op MathCAD nr. 2 "Oplossing van SLAE"

3.1 Verklaring van de opdracht

Vind de oplossing voor de SLAE:

1. met behulp van de inverse matrix;

2. met behulp van de ingebouwde lsolve-functie;

3. met behulp van de rekeneenheid Given-Find.

3.2 Resultaat - uitgevoerde oplossing

Figuur 2 - Taak 2

4. Opdracht over MathCAD nr. 3 "Systeems van niet-lineaire vergelijkingen oplossen"

4.1 Verklaring van de opdracht

Los een stelsel van niet-lineaire vergelijkingen op.

Maak grafieken van functies die de vergelijkingen van het systeem definiëren.

Verifieer grafisch de juistheid van de oplossing.

besturingssysteem netwerk mathcad

4.2 Resultaat - uitgevoerde oplossing

Afbeelding 3 - Taak 3

5. Taak op MathCAD nr. 4 "Niet-lineaire vergelijkingen oplossen"

5.1 Verklaring van de opdracht

Zoek een oplossing voor een niet-lineaire vergelijking:

1.met de ingebouwde root-functie;

2. de ingebouwde functie polyroots gebruiken;

5.2 Resultaat - Uitgevoerde oplossing

Afbeelding 4 - Taak 4

Vergelijkbare documenten

    Kenmerken van de huidige ontwikkelingsfase van besturingssystemen. Doel van besturingssystemen, hun belangrijkste typen. Besturingssystemen van minicomputers. Het werkingsprincipe van een dot-matrixprinter, ontwerp en reproductie van willekeurige tekens voor hen.

    scriptie, toegevoegd 23-06-2011

    Basisconcepten over besturingssystemen. Soorten moderne besturingssystemen. De geschiedenis van de ontwikkeling van besturingssystemen van de Windows-familie. Kenmerken van Windows-besturingssystemen. Nieuwe functionaliteit van het besturingssysteem Windows 7.

    scriptie, toegevoegd 18-02-2012

    Evolutie en classificatie van OS. Netwerkbesturingssystemen. Geheugen management. Moderne concepten en technologieën voor het ontwerpen van besturingssystemen. Een familie van UNIX-besturingssystemen. Netwerkproducten van Novell. Microsoft netwerkbesturingssystemen.

    creatief werk, toegevoegd 11/07/2007

    Beschrijving van de essentie, het doel, de functies van besturingssystemen. Onderscheidende kenmerken van hun evolutie. Kenmerken van algoritmen voor resourcebeheer. Moderne concepten en technologieën voor het ontwerpen van besturingssystemen, vereisten voor het besturingssysteem van de eenentwintigste eeuw.

    scriptie, toegevoegd 01/08/2011

    De geschiedenis van ontwikkeling en verbetering van Microsoft-besturingssystemen, hun kenmerken en onderscheidende kenmerken van systemen van andere merken, voor- en nadelen. Het nieuwste van het nieuwste en de mogelijkheden en vooruitzichten van Microsoft-besturingssystemen.

    samenvatting, toegevoegd 22-11-2009

    Doel en basisfuncties van besturingssystemen. Laden van de uit te voeren programma's in het werkgeheugen. Bedienen van alle I/O operaties. Evolutie, classificatie van besturingssystemen. Opmaken van de loonlijst, sorteren op afdeling.

    scriptie, toegevoegd 17-03-2009

    Doel, classificatie, samenstelling en doel van besturingssysteemcomponenten. Ontwikkeling van complexe informatiesystemen, softwarecomplexen en individuele applicaties. Kenmerken van de besturingssystemen Windows, Linux, Android, Solaris, Symbian OS en Mac OS.

    scriptie, toegevoegd 19-11-2014

    Het concept en de fundamentele functies van besturingssystemen, hun typische structuur en werkingsprincipe. Een korte geschiedenis van de vorming en ontwikkeling van Windows-besturingssystemen, hun variëteiten en algemene kenmerken, de belangrijkste vereisten voor hardware.

    presentatie toegevoegd op 07/12/2011

    Basisconcepten van besturingssystemen. Synchronisatie en kritieke gebieden. Signalen en interacties tussen processen. Geheugen management. Stuurprogramma's voor apparaten. Kenmerken van moderne besturingssystemen. Centrale verwerkingseenheid, klok- en timerchips.

    tutorial toegevoegd 24-01-2014

    Het concept van besturingssystemen, hun classificatie en variëteiten, onderscheidende kenmerken en basiseigenschappen. De inhoud van besturingssystemen, de volgorde van interactie en het doel van hun componenten. Organisatie schijfruimte... Beschrijving van moderne besturingssystemen.

VOLLEDIG RUSSISCHE CORRESPONDENTIE FINANCIEEL EN ECONOMISCH INSTITUUT

AFDELING GEAUTOMATISEERDE VERWERKING VAN ECONOMISCHE INFORMATICA

CURSUS WERK

door discipline « Informatica »

"Doel, evolutie en classificatie van besturingssystemen"

Uitvoerder:

Smertin Nikolaj Olegovich

Specialiteit Organisatie Management

Groep 2 (TNF)

Cijferlijst nr. 10ММД46177 Supervisor:

Chochlova Olga Alexandrovna

Archangelsk - 2011

Inleiding ………………………………………………………………………… 3

1. Doel, evolutie en classificatie van besturingssystemen …………… 4

Inleiding …………………………………………………………………… 4

1.1. Doel van besturingssystemen ………………………………… .. 5

1.2. Classificatie van besturingssysteem ……………………………… 11

1.3. Evolutie van besturingssystemen ……………………………………. dertien

Conclusie ………………………………………………………………… 15

2. Praktijkgedeelte ……………………………………………………… ... 16

2.1. Algemene kenmerken van de taak ……………………………………… .. 16

2.2. Beschrijving van het oplossingsalgoritme ……………………………………… .. 18

Referenties ……………………………………………………………… 21

Bijlagen ………………………………………………………………………. 22

Invoering

Een thema kiezen test werk"Doel, evolutie en classificatie van besturingssystemen" is te wijten aan het feit dat besturingssystemen een van de belangrijkste componenten van moderne computers zijn en, bij gebrek aan van dit onderdeel, verandert de personal computer zoals we die nu kennen in een gewone typemachine. Dankzij de nieuwste besturingssystemen wordt werken op een personal computer gemakkelijk en voor iedereen toegankelijk.

In de loop van het controlewerk zullen de vragen over het doel van besturingssystemen, als een complex van onderling verbonden systeemprogramma's, worden onthuld; de basisvereisten voor besturingssystemen gedefinieerd; benadrukte de functies die inherent zijn aan alle besturingssystemen; de hoofdclassificatie wordt uitgevoerd en de kwestie van de geschiedenis van het maken van systemen wordt onthuld.

In het praktijkgedeelte van de controlewerkzaamheden wordt op basis van de initiële gegevens de salarisadministratie van de organisatie gevormd. In de loop van het praktijkgedeelte wordt gebruik gemaakt van de MS Excel-spreadsheetprocessor, de wizard draaitabellen en diagrammen zijn de mogelijkheden van de functie LOOKUP () bestudeerd.

Het werk werd uitgevoerd op een pc Intel Pentium IV - 2,4 GHz / 1024 MbRAM / 80 GbHDD / RW / DVD 52x32x52x / FDD 1.44

De volgende programma's zijn gebruikt om de werkzaamheden uit te voeren:

1. Besturingssysteem - Microsoft Windows XP Professional

2. Teksteditor"MSWord - 2007"

3. Tabelprocessor "MSExcel - 2007"

1. Doel, evolutie en classificatie van operatiekamers

systemen.

Plan

Invoering

1.1. Doel van besturingssystemen

1.2. Classificatie van besturingssysteem

1.3. Evolutie van besturingssystemen

Gevolgtrekking

Invoering

De eerste pc's hadden geen besturingssysteem en zagen eruit als gameconsoles: toen de computer op het netwerk werd aangesloten, kreeg de processor toegang tot het ROM, waarin het programma was geschreven om een ​​eenvoudige programmeertaal te ondersteunen. Door de bandrecorder op de computer aan te sluiten, was het mogelijk om een ​​vreemd programma te downloaden. Het geladen programma schakelde het ROM uit en vervolgens werkte de computer onder besturing van het geladen programma.

Er ontstond een serieuze behoefte aan besturingssystemen toen diskettestations begonnen te worden aangesloten op personal computers. Een schijfstation verschilt van een bandrecorder doordat het een apparaat met vrije toegang is en een bandrecorder een apparaat met sequentiële toegang. Elk programma kan vanaf de magnetische schijf worden geladen. Daarom zijn de downloadcommando's erg complex geworden. Het was noodzakelijk om het nummer van het spoor en het nummer van de sector aan te geven waarin het te laden item zich bevindt. De uitweg werd gevonden. Er is een programma geschreven dat de namen van programma's en bestanden vertaalt naar track- en sectornummers. Een persoon kon downloaden wat hij nodig had met alleen de namen. Dit programma werd het schijfbesturingssysteem.

In de toekomst ontwikkelden besturingssystemen zich parallel met hardware en begonnen ze een reeks programma's te vertegenwoordigen die twee functies vervullen: de gebruiker het gemak van een virtuele machine bieden en de efficiëntie van het gebruik van een computer verhogen terwijl de bronnen efficiënt worden beheerd. Verschillende computermodellen gebruiken besturingssystemen met verschillende architecturen en mogelijkheden. Hun werk vereist verschillende middelen. Ze bieden verschillende servicegraden voor het programmeren en werken met kant-en-klare programma's.

1.1 Doel van besturingssystemen

Besturingssysteem is een complex van onderling verbonden systeemprogramma's, waarvan het doel is om de interactie van een gebruiker met een computer te organiseren, om de bronnen van een computersysteem te beheren om ze zo efficiënt mogelijk te gebruiken. Het besturingssysteem fungeert als schakel tussen enerzijds de computerhardware en anderzijds de uitvoerbare programma's en de gebruiker. Het besturingssysteem kan een softwarematige voortzetting van het computerbesturingsapparaat worden genoemd. Het besturingssysteem verbergt voor de gebruiker complexe onnodige details van hardwarecontrole en vormt een laag ertussen, waardoor mensen worden bevrijd van het zeer tijdrovende werk van het organiseren van interactie met computerhardware.

De belangrijkste vereiste voor een besturingssysteem is de moeilijke taak om het efficiënt delen van bronnen door verschillende processen te organiseren, en deze complexiteit wordt voornamelijk gegenereerd door de willekeurige aard van verzoeken om het verbruik van bronnen. In een multiprogrammeringssysteem worden wachtrijen van applicaties gevormd van gelijktijdig draaiende programma's naar gedeelde computerbronnen: een processor, een pagina met geheugen, naar een printer, naar een schijf. Het besturingssysteem organiseert het onderhoud van deze wachtrijen door: verschillende algoritmen: Op basis van wie het eerst komt, het eerst maalt, op basis van prioriteiten, rondreis, enz.

Een modern besturingssysteem moet doorgaans multiprogrammering, virtueel geheugen, een grafische gebruikersinterface met meerdere vensters en vele andere noodzakelijke functies en services ondersteunen. Naast deze vereisten voor functionele volledigheid, zijn besturingssystemen ook onderworpen aan even belangrijke operationele vereisten:

· Uitbreidbaarheid. Terwijl de hardware van een computer binnen een paar jaar verouderd is, kan de levensduur van een besturingssysteem in tientallen jaren worden gemeten. Daarom veranderen besturingssystemen in de loop van de tijd altijd evolutionair, en deze veranderingen zijn belangrijker dan hardwareveranderingen. Wijzigingen in het besturingssysteem bestaan ​​meestal uit het verwerven van nieuwe eigenschappen, bijvoorbeeld ondersteuning voor nieuwe soorten externe apparaten of nieuwe netwerktechnologieën. Als de OS-code zo is geschreven dat toevoegingen en wijzigingen kunnen worden aangebracht zonder de integriteit van het systeem te schenden, dan wordt zo'n OS uitbreidbaar genoemd. Uitbreidbaarheid wordt bereikt dankzij de modulaire structuur van het besturingssysteem, waarin programma's zijn opgebouwd uit een reeks afzonderlijke modules die alleen samenwerken via een functionele interface;

· Draagbaarheid. Idealiter zou de OS-code gemakkelijk overdraagbaar moeten zijn van het ene type processor naar een ander type processor en van het hardwareplatform (die niet alleen verschillen in het type processor, maar ook in de manier waarop alle computerhardware wordt georganiseerd) van één type naar het hardwareplatform van een ander type. Draagbare besturingssystemen hebben verschillende implementatie-opties voor verschillende platforms, deze functie van het besturingssysteem wordt ook wel multi-platform genoemd;

· Compatibiliteit. Er zijn verschillende "langlevende" populaire besturingssystemen waarvoor een breed scala aan toepassingen is ontwikkeld. Sommigen van hen zijn erg populair. Voor een gebruiker die om de een of andere reden overstapt van het ene besturingssysteem naar het andere, is de mogelijkheid om een ​​bekende toepassing in een nieuw besturingssysteem te starten daarom zeer aantrekkelijk. Als een besturingssysteem de middelen heeft om toepassingsprogramma's uit te voeren die voor andere besturingssystemen zijn geschreven, wordt gezegd dat het compatibel is met dit besturingssysteem. Maak onderscheid tussen binaire compatibiliteit en compatibiliteit bronteksten... Compatibiliteit omvat ook ondersteuning voor gebruikersinterfaces van andere besturingssystemen;

· Betrouwbaarheid en veerkracht. Het systeem moet worden beschermd tegen zowel interne als externe fouten, storingen en storingen. De acties moeten altijd voorspelbaar zijn en toepassingen mogen het besturingssysteem niet schaden. De betrouwbaarheid en fouttolerantie van een besturingssysteem wordt voornamelijk bepaald door de architectuurbeslissingen die eraan ten grondslag liggen, evenals de kwaliteit van de implementatie (code debugging). Daarnaast is het belangrijk of het besturingssysteem software-ondersteuning bevat voor hardwarefouttolerantie, zoals schijfarrays of voedingen. ononderbroken stroomvoorziening;

· Veiligheid. Een modern besturingssysteem moet gegevens en andere bronnen van het computersysteem beschermen tegen ongeoorloofde toegang. Om ervoor te zorgen dat het besturingssysteem de beveiligingseigenschap heeft, moet het op zijn minst middelen bevatten om de legaliteit van gebruikers te bepalen, legale gebruikers gedifferentieerde toegangsrechten tot bronnen te bieden, evenals de fixatie van alle gebeurtenissen die "verdacht" zijn voor de veiligheid van het systeem. De beveiligingseigenschap is vooral belangrijk voor netwerkbesturingssystemen. In dergelijke besturingssystemen wordt de taak van het beschermen van gegevens die via het netwerk worden verzonden, toegevoegd aan de taak van toegangscontrole;

· Prestatie. Het besturingssysteem moet zoveel hebben goed optreden en reactietijd, voor zover het hardwareplatform dit toelaat. De prestaties van het besturingssysteem worden beïnvloed door vele factoren, waaronder de belangrijkste de besturingssysteemarchitectuur, de verscheidenheid aan functies, de kwaliteit van de codeprogrammering, de mogelijkheid om het besturingssysteem uit te voeren op een krachtig (multiprocessor) platform;

Gezien de evolutie van besturingssystemen, zullen we allereerst kijken naar de geschiedenis van ontwikkeling computersystemen omdat hardware en software samen zijn geëvolueerd en elkaar beïnvloeden.

De opkomst van nieuwe technische mogelijkheden leidde tot een doorbraak in het maken van handige, effectieve en veilige programma's, en frisse ideeën op softwaregebied stimuleerden de zoektocht naar nieuwe technische oplossingen... Het zijn deze criteria - gemak, efficiëntie en veiligheid- speelde de rol van factoren van natuurlijke selectie in de evolutie van computersystemen.

Er zijn vier perioden van ontwikkeling van computertechnologie en besturingssystemen, we zullen ze in meer detail bekijken.

1. De eerste periode (1945-1955)

Lampenmachines. Geen besturingssystemen

We zullen de studie van de ontwikkeling van computersystemen beginnen met de opkomst van elektronische computersystemen (waarbij de geschiedenis van mechanische en elektrische) mechanische apparaten). De eerste stappen in de ontwikkeling van elektronische computers werden aan het einde van de Tweede Wereldoorlog gezet. In het midden van de jaren 40 werden gemaakt de eerste buis computer apparaten en het principe van een programma dat is opgeslagen in het geheugen van een machine verscheen (John Von Neumann, juni 1945).

In die tijd nam een ​​en dezelfde groep mensen deel aan het ontwerp, de bediening en de programmering van de computer. Het was meer een wetenschappelijk onderzoekswerk op het gebied van informatica, dan het reguliere gebruik van computers als hulpmiddel voor het oplossen van praktische problemen uit andere toegepaste gebieden. De programmering gebeurde uitsluitend in machinetaal. Over besturingssystemen er was geen vraag, alle taken van het organiseren van het rekenproces werden handmatig opgelost elke programmeur vanaf het bedieningspaneel. Er kan maar één gebruiker bij de console zijn.

Het programma is in het geheugen van de machine geladen in beste geval van een pak ponskaarten, en meestal met behulp van een paneel met schakelaars. Het computersysteem voerde slechts één bewerking tegelijk uit (invoer-uitvoer of feitelijke berekeningen). Debuggen van programma's werd uitgevoerd vanaf het bedieningspaneel door de staat van het geheugen en de registers van de machine te bestuderen.

Aan het einde van deze periode verschijnt de eerste systeemsoftware: in 1951-1952. de prototypes van de eerste compilers met symbolische talen (fortran en anderen), en in 1954 ontwikkelt Nat Rochester een Assembler voor de IBM-701.

Een aanzienlijk deel van de tijd werd besteed aan het voorbereiden van de lancering van het programma en de programma's zelf werden strikt sequentieel uitgevoerd. Deze manier van werken heet sequentiële verwerking gegevens .

Over het algemeen wordt de eerste periode gekenmerkt door extreem hoge kosten van computersystemen, hun kleine aantal en lage gebruiksefficiëntie.

2. De tweede periode (1955 - begin jaren 60)

Transistorgebaseerde computers. Batch-besturingssystemen

Vanaf het midden van de jaren 50 begon de volgende periode in de evolutie van computertechnologie, geassocieerd met de opkomst van een nieuwe technische basis - halfgeleiderelementen. Sollicitatie transistoren in plaats van vaak doorgebrande vacuümbuizen leidden tot een grotere betrouwbaarheid van computers. De machines kunnen nu lang genoeg continu draaien om taken van praktisch belang uit te voeren. Het elektriciteitsverbruik van computers wordt verminderd en koelsystemen worden verbeterd. Computers zijn kleiner geworden. De kosten van bediening en onderhoud van computerapparatuur zijn gedaald. Het gebruik van computers door commerciële bedrijven begon.

Tegelijkertijd is er een snelle ontwikkeling van algoritmische talen ( LISP, COBOL, ALGOL-60, PL-1 enzovoort.). Tevoorschijn komen eerste echte compilers, linkers, bibliotheken van wiskundige en utiliteitsroutines... Het programmeerproces is vereenvoudigd. Het is niet nodig om dezelfde mensen te belasten met het hele proces van het ontwikkelen en gebruiken van computers. Het was in deze periode dat personeelsverdeling in programmeurs en operators, operatiespecialisten en computerontwikkelaars.

Grote elektronische rekenmachine BESM-6

Het proces van het uitvoeren van programma's zelf is aan het veranderen. Nu brengt de gebruiker het programma met de invoergegevens in de vorm van een pak ponskaarten en geeft de benodigde middelen aan. Dit deck krijgt de naam taken... De operator laadt de taak in het machinegeheugen en start deze voor uitvoering. De resulterende uitvoer wordt afgedrukt op de printer en de gebruiker ontvangt deze na een (vrij lange) tijd terug.

Het wijzigen van de gevraagde bronnen zorgt ervoor dat de uitvoering van programma's wordt opgeschort, met als resultaat CPU vaak inactief. Om de efficiëntie van het computergebruik te verbeteren, beginnen taken met vergelijkbare bronnen samen te worden verzameld, waardoor een reeks taken ontstaat.

De eersten verschijnen batchverwerkingssystemen die eenvoudig de lancering van het ene programma van het ene pakket na het andere automatiseren en daardoor de belastingsfactor verhogen verwerker.

Bij de implementatie batchverwerkingssystemen was ontwikkeld geformaliseerde taal voor taakbeheer, met behulp waarvan de programmeur het systeem en de operator vertelde welk werk hij op de computer wilde doen.

Batchverwerkingssystemen werd het prototype van de moderne besturingssystemen, het waren de eerste systeemprogramma's die waren ontworpen om het computerproces te besturen

3. De derde periode (begin jaren 60 - 1980)

Computers met geïntegreerde schakelingen. De eerste multitasking-besturingssystemen

De volgende belangrijke periode in de ontwikkeling van computers dateert uit de vroege jaren 60 - 1980. Op dit moment was er in de technische basis een overgang van individuele halfgeleiderelementen van het type transistoren Naar geïntegreerde schakelingen. Computertechnologie wordt betrouwbaarder en goedkoper. De complexiteit en het aantal taken dat door computers wordt opgelost, neemt toe. Toegenomen productiviteit verwerkers.

De lage snelheid van mechanische invoer-uitvoerapparaten (een snelle kaartlezer kan 1200 kaarten per minuut verwerken, printers kunnen tot 600 regels per minuut printen) belemmert de verhoging van de efficiëntie van het gebruik van processortijd. In plaats van direct een reeks taken van ponskaarten in het geheugen te lezen, beginnen ze de voorlopige opname te gebruiken, eerst op magneetband en vervolgens op schijf. Wanneer gegevens nodig zijn tijdens het uitvoeren van een taak, worden deze van schijf gelezen. Evenzo wordt de uitvoer eerst gekopieerd naar systeembuffer en wordt naar band of schijf geschreven en wordt pas afgedrukt nadat de taak is voltooid.

Aanvankelijk werden de feitelijke I / O-bewerkingen off-line uitgevoerd, dat wil zeggen met behulp van andere, eenvoudigere, stand-alone computers. Vervolgens beginnen ze te worden uitgevoerd op dezelfde computer die de berekeningen uitvoert, dat wil zeggen in de online modus. Deze techniek heet spoelen(kort voor Gelijktijdige perifere bediening online ) of swap-swap gegevens. De introductie van de pomp-pomptechniek in batch-systemen mag echte I / O-bewerkingen van een taak combineren met de uitvoering van een andere taak, maar vereist ontwikkeling inrichting onderbreekt voor kennisgeving verwerker over het einde van deze operaties.

Magneetbanden waren sequentiële toegangsapparaten, dat wil zeggen dat de informatie ervan werd gelezen in de volgorde waarin deze was geschreven. Het uiterlijk van een magnetische schijf, waarvoor de volgorde van het lezen van informatie niet belangrijk is, dat wil zeggen: apparaten voor directe toegang, Leidde tot verdere ontwikkeling computersystemen. Bij het verwerken van een batch opdrachten op magneetband werd de volgorde waarin opdrachten werden gestart bepaald door de volgorde waarin ze werden ingevoerd. Bij het verwerken van een reeks taken op een magnetische schijf, de mogelijkheid om de volgende taak te selecteren die moet worden uitgevoerd. Batchsystemen start met het plannen van taken: afhankelijk van de beschikbaarheid van de gevraagde middelen, de urgentie van de berekeningen, enz. deze of gene taak is geselecteerd voor het account.

Verdere verbetering van de gebruiksefficiëntie verwerker werd bereikt door multiprogrammeren . Het idee achter multiprogrammering is als volgt: terwijl één programma I/O-bewerkingen uitvoert, CPU niet inactief, zoals het gebeurde in de modus voor één programma, maar voert een ander programma uit. Wanneer de I / O-bewerking eindigt, CPU keert terug naar de uitvoering van het eerste programma.

Dit idee lijkt op het gedrag van de leraar en studenten op een examen. Terwijl de ene leerling (opleiding) nadenkt over het antwoord op de vraag (I/O bediening), de docent ( CPU) luistert naar het antwoord van een andere leerling (berekeningen). Uiteraard vereist deze situatie meerdere studenten in de kamer. Evenzo vereist multiprogrammering meerdere programma's tegelijkertijd in het geheugen. In dit geval wordt elk programma in zijn eigen deel van het RAM geladen, een sectie genoemd, en mag het de uitvoering van een ander programma niet beïnvloeden. (Leerlingen zitten aan aparte tafels en vragen elkaar niet.)

De komst van multiprogrammering vereist een echte revolutie in het ontwerp van het computersysteem. Een speciale rol speelt hier hardware-ondersteuning(veel hardware-innovaties verschenen in de vorige fase van evolutie), waarvan de belangrijkste kenmerken hieronder worden vermeld.

  • Implementatie van afweermechanismen .
    Programma's mogen geen autonome toegang hebben tot de toewijzing van middelen, wat leidt tot het ontstaan ​​van bevoorrecht en onbevoorrecht teams. Bevoorrechte commando's, zoals I/O-commando's, kunnen alleen worden uitgevoerd besturingssysteem... Ze zou in bevoorrechte modus opereren. Overdracht van controle van het applicatieprogramma naar besturingssysteem vergezeld van een gecontroleerde verandering van regime. Bovendien is het een geheugenbescherming om concurrerende gebruikersprogramma's van elkaar te isoleren, en besturingssysteem- van gebruikersprogramma's.
  • Beschikbaarheid onderbreekt .
    extern onderbrekingen op de hoogte stellen besturingssysteem dat er een asynchrone gebeurtenis heeft plaatsgevonden, zoals een voltooide I/O-bewerking.
    intern onderbrekingen (nu is het gebruikelijk om ze te noemen uitzonderlijke situaties) ontstaan ​​wanneer de uitvoering van het programma heeft geleid tot een situatie die ingrijpen vereist besturingssysteem zoals delen door nul of poging tot inbreuk op de beveiliging.
  • Ontwikkeling van parallellisme in de architectuur .
    Directe geheugentoegang en organisatie van I / O-kanalen maakten het mogelijk om de centrale vrij te maken CPU van routinematige operaties.

Even belangrijk bij het organiseren van multiprogrammering rol besturingssysteem ... Zij is verantwoordelijk voor de volgende operaties.

  • Organisatie van de interface tussen de aanvraag en besturingssysteem met hulp systeemoproepen.
  • Taken in het geheugen in de wachtrij plaatsen en markeren verwerker een van de taken vereist planning gebruik verwerker.
  • Overschakelen van de ene taak naar de andere vereist het behoud van de inhoud van registers en gegevensstructuren die nodig zijn om de taak te voltooien, met andere woorden, de context om de correcte voortzetting van de berekening te verzekeren.
  • Omdat geheugen een beperkte hulpbron is, zijn strategieën nodig geheugen management, dat wil zeggen, het is nodig om de processen van het plaatsen, vervangen en ophalen van informatie uit het geheugen te stroomlijnen.
  • Organisatie van informatieopslag op externe media in de vorm van bestanden en het waarborgen van toegang tot een specifiek bestand alleen voor bepaalde categorieën gebruikers.
  • Aangezien programma's mogelijk geautoriseerde gegevensuitwisseling moeten uitvoeren, moeten ze communicatiemiddelen aanbieden.
  • Voor een correcte gegevensuitwisseling is het noodzakelijk vergunning conflictsituaties ontstaan ​​bij het werken met verschillende middelen en zorgen voor de coördinatie van programma's van hun acties, d.w.z. het systeem te voorzien van synchronisatiefaciliteiten.

Multiprogrammeersystemen hebben de mogelijkheid geboden voor meer effectief gebruik systeembronnen (bijvoorbeeld verwerker, geheugen, randapparatuur), maar ze bleven lang bestaan partij... De gebruiker kon niet direct met de taak communiceren en moest alles met behulp van controlekaarten verstrekken mogelijke situaties... Het debuggen van programma's was nog steeds tijdrovend en vereiste het onderzoeken van afdrukken van meerdere pagina's van geheugen en registers, of het gebruik van debug-afdrukken.

De noodzaak kathodestraalschermen en een heroverweging van de bruikbaarheid van toetsenborden hebben een oplossing voor dit probleem in lijn gebracht.

Logische uitbreiding van stalen multiprogrammeersystemen tijd delen systemen, of systemen voor het delen van tijd . In hen CPU schakelt tussen taken niet alleen tijdens I / O-bewerkingen, maar gewoon na een bepaalde tijd. Deze schakelaars komen zo vaak voor dat gebruikers met hun programma's kunnen communiceren terwijl ze actief zijn, dat wil zeggen interactief. Hierdoor wordt het voor meerdere gebruikers mogelijk om gelijktijdig op één computersysteem te werken. Elke gebruiker moet hiervoor minimaal één programma in het geheugen hebben.

Om de beperkingen op het aantal werkende gebruikers te verminderen, werd het idee geïntroduceerd onvolledige vondst van het uitvoerbare programma in RAM... Het grootste deel van het programma bevindt zich op schijf en het fragment dat op dit moment moet worden uitgevoerd, kan in het RAM worden geladen en het onnodige kan weer naar schijf worden gedownload. Dit wordt uitgevoerd met virtueel geheugenmechanisme ... Het belangrijkste voordeel van een dergelijk mechanisme is het creëren van de illusie van onbeperkt computergeheugen.

V timesharing systemen de gebruiker was in staat om het programma efficiënt te debuggen in een interactieve modus en informatie naar schijf te schrijven zonder gebruik te maken van ponskaarten, maar rechtstreeks vanaf het toetsenbord. De opkomst van online bestanden leidde tot de noodzaak om geavanceerde bestandssystemen te ontwikkelen.

Parallel aan de interne evolutie van computersystemen vond ook hun externe evolutie plaats. Voor het begin van deze periode computercomplexen waren in de regel onverenigbaar. Elk had zijn eigen besturingssysteem, zijn eigen commandosysteem, enz. Als gevolg hiervan moest een programma dat met succes op één type machine draait, volledig worden herschreven en opnieuw worden gedebugd om op een ander type machine te kunnen draaien. Aan het begin van de derde periode, het idee van creëren families van softwarecompatibele machines hetzelfde lopen besturingssysteem.

De eerste familie van softwarecompatibele computers waarop is gebouwd geïntegreerde schakelingen, werd een reeks machines IBM / 360... Deze familie, ontwikkeld in het begin van de jaren 60, presteerde aanzienlijk beter dan de machines van de tweede generatie in termen van prijs/prestatie. Dit werd gevolgd door een lijn van PDP-computers die niet compatibel was met de IBM-lijn, en de PDP-11 werd het beste model daarin.

De kracht van één familie was ook de zwakte. Volop kansen dit concept (de aanwezigheid van alle modellen: van minicomputers tot gigantische machines; een overvloed aan verschillende randapparatuur; verschillende omgevingen; verschillende gebruikers) leidde tot een complexe en omslachtige besturingssysteem... Miljoenen regels van Assembler, geschreven door duizenden programmeurs, bevatten veel fouten, wat een continue stroom van publicaties over hen veroorzaakte en pogingen om ze te repareren.

Alleen in besturingssysteem OS / 360 bevatte meer dan 1000 bekende bugs. Nog steeds het idee van standaardisatie besturingssystemen werd op grote schaal geïntroduceerd in de hoofden van gebruikers en werd vervolgens actief ontwikkeld.

4. Vierde periode (van 1980 tot heden)

Persoonlijke computers. Klassieke, netwerk- en gedistribueerde systemen

De volgende periode in de evolutie van computersystemen wordt geassocieerd met de opkomst groot geïntegreerde schakelingen(BIS) ... Gedurende deze jaren was er een sterke toename van de mate van integratie en een afname van de kosten van microschakelingen. De computer, die qua architectuur niet verschilt van de PDP-11, is qua prijs en gebruiksgemak beschikbaar gekomen voor een individu, en niet voor een afdeling van een onderneming of universiteit. Het tijdperk van personal computers is aangebroken.

Aanvankelijk waren personal computers bedoeld voor gebruik door één gebruiker in een modus met één programma, wat de degradatie van de architectuur van deze computers en hun besturingssystemen(met name de noodzaak om bestanden en geheugen te beschermen, taken te plannen, enz. is verdwenen).

Computers werden niet alleen door specialisten gebruikt, wat de ontwikkeling van "vriendelijke" software vereiste.

De toenemende complexiteit en verscheidenheid aan taken die op personal computers worden opgelost, en de noodzaak om de betrouwbaarheid van hun werk te verbeteren, leidde echter tot de heropleving van bijna alle kenmerken die kenmerkend zijn voor de architectuur van grote computersystemen.

Halverwege de jaren 80 begonnen netwerken van computers zich snel te ontwikkelen, ook persoonlijke, draaiend netwerk of gedistribueerde besturingssystemen.

V netwerkbesturingssystemen gebruikers hebben toegang tot de bronnen van een ander netwerk computer, alleen zij moeten zich bewust zijn van hun aanwezigheid en in staat zijn om het te doen. Elke machine op het netwerk heeft zijn eigen lokale besturingssysteem anders dan besturingssysteem zelfstandige computer beschikbaarheid van extra tools (software-ondersteuning voor netwerkinterface-apparaten en toegang tot externe bronnen), maar deze toevoegingen veranderen de structuur niet besturingssysteem.

Gedistribueerd systeem integendeel, het ziet eruit als een gewoon autonoom systeem. De gebruiker weet niet en mag niet weten waar zijn bestanden zijn opgeslagen - op een lokale of externe machine - en waar zijn programma's worden uitgevoerd. Hij weet misschien helemaal niet of zijn computer op het netwerk is aangesloten. Interne structuur gedistribueerd besturingssysteem heeft significante verschillen met autonome systemen.

verder autonoom besturingssysteem we zullen klassiek noemen besturingssystemen.

Nadat we de ontwikkelingsstadia van computersystemen hebben bekeken, kunnen we onderscheid maken tussen: zes hoofdfuncties: wie voerde de klassieker uit besturingssysteem in het proces van evolutie:

  • Taken en gebruik plannen verwerker.
  • Programma's voorzien van communicatie- en synchronisatiemiddelen.
  • Geheugen management.
  • Beheer van bestandssystemen.
  • I / O-besturing.
  • Veiligheid

Elk van de bovenstaande functies wordt meestal geïmplementeerd als een subsysteem, wat een structureel onderdeel is besturingssysteem... In elke besturingssysteem deze functies werden natuurlijk op hun eigen manier geïmplementeerd, in verschillende hoeveelheden. Ze waren oorspronkelijk niet bedoeld als samenstellende delen. besturingssystemen, maar verscheen in het ontwikkelingsproces, omdat computersystemen handiger, efficiënter en veiliger werden.

De evolutie van menselijke computersystemen heeft dit pad gevolgd, maar niemand heeft tot nu toe bewezen dat dit de enige mogelijke manier van hun ontwikkeling is. besturingssysteem bestaan ​​omdat hun bestaan ​​op dit moment een redelijke manier is om computersystemen te gebruiken. Het overwegen van de algemene principes en algoritmen voor de implementatie van hun functies is de inhoud van het grootste deel van onze cursus, waarin de opgesomde subsystemen sequentieel zullen worden beschreven.

Bij het samenvatten van het onderwerp "Evolutie van besturingssystemen" wordt een korte tabel voorgesteld, die de belangrijkste mijlpalen in de ontwikkeling van computertechnologie en besturingssystemen aangeeft.

Periode OS-ontwikkeling
tot 1955 In de 19e eeuw kwam Charles Babidge op het idee van een computer. Maar de technologieën van die tijd konden niet voorzien in de fabricage van de precisiemechanische onderdelen die nodig waren voor deze machine. En zijn 'analytische motor' kon nooit werken, halverwege de jaren '40. XX eeuw buizencomputers verschenen. Het was meer een wetenschappelijk onderzoekswerk op het gebied van informatica, en niet het gebruik van computers als hulpmiddel om praktische problemen op te lossen.

Het programmeren van dergelijke computers werd uitsluitend in machinetaal uitgevoerd en alle taken voor het organiseren van het computerproces werden door elke programmeur handmatig vanaf het bedieningspaneel opgelost. Er was geen andere systeemsoftware dan bibliotheken met wiskunde en hulpprogramma's.

1955 - 1965 De opkomst van een nieuwe technische basis - halfgeleiderelementen. Computers van de tweede generatie werden betrouwbaarder, ze konden nu lang genoeg continu doorwerken om taken uit te voeren die in de praktijk echt belangrijk zijn. Gedurende deze jaren is de eerste algoritmische talen, en de eerste systeemprogramma's - compilers.

De kosten van processortijd zijn gestegen, waardoor er minder overhead nodig is tussen het opstarten van programma's. De eerste batchverwerkingssystemen, die eenvoudigweg de lancering van het ene programma na het andere automatiseerde en daardoor de processorbelastingsfactor verhoogde. Batchverwerkingssystemen waren het prototype van moderne besturingssystemen, het waren de eerste systeemprogramma's die waren ontworpen om het computerproces te besturen.

1965 - begin jaren 70 In de technische basis heeft een overgang plaatsgevonden van individuele halfgeleiderelementen zoals transistors naar geïntegreerde schakelingen. Deze periode werd ook gekenmerkt door het ontstaan ​​van families van software-compatibele machines. De eerste familie van software-compatibele machines op basis van geïntegreerde schakelingen was de IBM / 360-serie machines.

Softwarecompatibiliteit vereist en compatibiliteit van de bediening systemen. Dergelijke besturingssystemen moesten draaien op grote en kleine computersystemen met verschillende randapparatuur, en de toepassing van het computersysteem in het commerciële veld en op het gebied van wetenschappelijk onderzoek ondersteunen. De besturingssystemen die aan alle vereisten voldeden, waren omslachtig, complex en vol bugs, waardoor een eindeloze stroom van fixes ontstond.

Een voorbeeld van zo'n besturingssysteem is OS / 360 (IBM). Tijdens deze periode werden bijna alle basismechanismen geïmplementeerd die inherent zijn aan het moderne besturingssysteem: multiprogrammering, multiprocessing, ondersteuning voor multi-terminal multi-user-modus, virtueel geheugen, toegangscontrole, netwerken. Multiprogrammering Is een methode voor het organiseren van een computerproces waarbij verschillende programma's afwisselend op één processor worden uitgevoerd. Multiprogrammering werd geïmplementeerd in batchverwerkingssystemen en in timesharing systemen.

Om een ​​groot aantal gebruikers met een computer te laten werken, systemen met meerdere terminals wanneer elke gebruiker op zijn terminal werkt. Multi-terminal-modus is gebruikt in zowel timesharing- als batchverwerkingssystemen. Tegelijkertijd konden zowel de gebruikers als de operator hun taken vormgeven en de uitvoering ervan controleren vanaf hun terminal. In de multiprogrammeringsmodus wordt elk programma in zijn eigen deel van het RAM geladen, genaamd sectie.

Een andere innovatie in de derde generatie machines is: spoelen(spoolen) - een manier om het computerproces te organiseren, in overeenstemming met welke taken van ponskaarten naar schijf werden gelezen met de snelheid waarmee ze in het rekencentrum verschenen, en vervolgens, wanneer de volgende taak was voltooid, een nieuwe taak van schijf is in de vrijgekomen partitie geladen. In die tijd werd het besturingssysteem een ​​integraal onderdeel van computers en nam het de meeste acties voor het organiseren van het computerproces over.

jaren 70 - jaren 80 Begin jaren 70. de eerste prototypes verschenen netwerkbesturingssystemen, waarmee, in tegenstelling tot besturingssystemen met meerdere terminals, niet alleen gebruikers konden worden verspreid, maar ook gedistribueerde opslag en verwerking van gegevens tussen verschillende computers die via elektrische verbindingen waren verbonden, konden worden georganiseerd.

Halverwege de jaren 70. minicomputers werden wijdverbreid: Nova, PDP-11, HP. Hun architectuur is veel eenvoudiger geworden, wat ook de besturingssystemen heeft vereenvoudigd. Het besturingssysteem van minicomputers begon gespecialiseerd te worden, bijvoorbeeld alleen voor realtime besturing (RT11 voor PDP-11) of alleen om de time-sharing-modus te behouden. Deze besturingssystemen waren niet voor meerdere gebruikers.

1980 - jaren 90 Deze periode in de evolutie van besturingssystemen wordt geassocieerd met de opkomst van grote geïntegreerde schakelingen (LSI). Gedurende deze jaren was er een sterke toename van de mate van integratie en een verlaging van de kosten van microschakelingen. De computer werd beschikbaar voor het individu, en het tijdperk kwam persoonlijke computers. Functioneel verschilden ze op geen enkele manier van minicomputers van het PDP-11-type, maar hun prijs was aanzienlijk lager. Dat maakte het voor bijna iedereen mogelijk om een ​​eigen computer te hebben, en niet voor een afdeling of instituut.

Computers werden gebruikt door niet-specialisten, die "vriendelijkheid" van de software eisten. De markt voor besturingssystemen werd in deze jaren gedomineerd door twee systemen: MS-DOS en Unix. Het MS-DOS-besturingssysteem voor één programma en één gebruiker werd veel gebruikt voor computers die waren gebaseerd op de Intel 8088-microprocessors, en vervolgens de 80286, 80386 en 80486. Het Unix-besturingssysteem voor meerdere programma's voor meerdere gebruikers werd voornamelijk gebruikt op niet -Intel-computers, vooral computers die zijn gebaseerd op krachtige RISC-processors.

Gedurende het decennium is dit besturingssysteem verbeterd, waardoor er nieuwe varianten van begonnen te verschijnen: SunOS, HP-UX, Irix, AIX. De aanzienlijke verspreiding van personal computers diende als een katalysator voor de snelle groei van lokale netwerken . Een andere belangrijke ontwikkeling van dit decennium was de opkomst van de TCP/IP-protocolstack, de opkomst van internet, de standaardisatie van local area network-technologieën en de intensievere ontwikkeling van netwerkbesturingssystemen (OS-Net van Nowell, OS/2 van Microsoft en IBM).

De huidige fase van OS-ontwikkeling In de jaren 90 worden bijna alle besturingssystemen genetwerkt, kunnen ze werken met heterogene clients en servers en ondersteunen ze de middelen om met internet te werken. Er zijn gespecialiseerde netwerkbesturingssystemen die exclusief zijn ontworpen voor het uitvoeren van communicatietaken, bijvoorbeeld IOS-systeem door Cisco Systems die in routers werken.

Een speciale plaats wordt gegeven aan bedrijfs-OS, ze krijgen de hoofdrol in de ontwikkeling van OS in de nabije toekomst. Een dergelijk besturingssysteem zou stabiel moeten werken in grote netwerken van grote ondernemingen. Bedrijfssystemen worden gekenmerkt door een hoge mate van schaalbaarheid, ondersteuning voor netwerken, geavanceerde beveiligingstools en het vermogen om in een heterogene omgeving te werken. Momenteel omvatten bedrijfsbesturingssystemen Windows 2000, Windows NT en verschillende Unix-systemen.

De evolutie van besturingssystemen bestaat uit de volgende fasen:

  • Opeenvolgende uitvoering van taken
  • Eenvoudige batchverwerking
  • Multiprogrammering in batchsystemen
  • Tijd delen
  • Modern besturingssysteem

De eerste fase van OS-ontwikkeling

Computertijd is waardevoller dan menselijke tijd

  • Eén gebruiker tegelijk werkt rechtstreeks met de console
  • Het eerste "OS" - gedeelde I / O-bibliotheken
  • Een eenvoudige batchmonitor is om de gebruiker van de computer weg te halen. OS - een programma voor het laden en uitvoeren van gebruikerstaken en het opslaan van de resultaten
  • Datakanalen, interrupts, gelijktijdige I/O en berekening
  • Geheugenbeveiliging maakt multitasking mogelijk: meerdere gebruikers gebruiken hetzelfde systeem
  • OS moet interactie, gelijktijdigheid beheren
  • Halverwege de jaren 60 worden besturingssystemen groot en complex
  • Het gebied van OS wordt een belangrijke discipline met zijn eigen principes

De tweede fase van OS-ontwikkeling

Menselijke tijd is waardevoller dan computertijd

  • Interactief tijd delen: comfortabel bestandssystemen, problemen met reactietijd
  • Personal computers: ze zijn goedkoop, dus elke terminal is een pc
  • Netwerk maakt delen en communicatie tussen machines mogelijk
  • Embedded devices: computers worden in Telefoons, stereospelers, televisies, enz.
  • Hoe complexe timesharing-algoritmen daar nodig zijn.

Huidig ​​en toekomstig besturingssysteem

De toekomst in wetenschappelijke ontwikkeling van OS

  • Zeer kleine besturingssystemen (voor mobiele apparaten)
  • Zeer grote besturingssystemen (datacenter, cloud computing)

Kenmerken van huidige besturingssystemen

  • Enorme miljoenen regels broncode, 100-1000 manjaren ontwikkeling
  • Complex: asynchroon, hardware-afhankelijk, prestatiegericht
  • Slecht begrepen

Richting van onderzoek

Er ontstaan ​​voortdurend nieuwe onderzoeksrichtingen

  • Geïntegreerde systemen (Apple's iPod-speler eiste de ontwikkeling van zijn eigen uniforme besturingssysteem)
  • Sensorsystemen (zeer laag stroomverbruik, hoge geheugenvereisten)
  • Peer-to-peer-netwerken
  • Draadloze netwerken
  • Schaalbare systemen, clustersystemen

Oude problemen vragen om nieuwe benaderingen om op te lossen

  • De evolutie van smartphones herhaalt de evolutie van de pc, die de evolutie van minicomputers herhaalt, en zij, op hun beurt, miniframes

Hallo, Habralyudi!
Niet veel mensen weten en niet veel herinneren zich hoe de geschiedenis van computersoftware begon - besturingssystemen. Het was dit onderwerp dat de student koos voor zijn MAN-ov-werk (MAN - Small Academy of Sciences). Het klinkt als volgt: de evolutie van besturingssystemen. Ik moet meteen zeggen dat meer dan 90% van Tyrnet is, maar ze waren verre van opgegraven in de eerste 2 pagina's van Google Zoeken.

Invoering
Computertechnologieën hebben de laatste tijd een grote sprong voorwaarts gemaakt en binnenkort zal het onmogelijk zijn om ons leven voor te stellen zonder de hulp van een computer. Maar zonder besturingssysteem is een computer slechts een set chips. Het is op basis van het besturingssysteem dat alle programma's die we gebruiken werken, het is het besturingssysteem dat in de eerste plaats de snelheid en productiviteit van ons werk op de computer zal bepalen.

moderne computer bestaat uit een of meer processors, RAM, schijven, printer, toetsenbord, muis, monitor, netwerkinterfaces en diverse andere invoer-uitvoerapparaten. Het resultaat is een vrij complex systeem. Als elke programmeur die een applicatie maakt, alle fijne kneepjes van de werking van al deze apparaten moet begrijpen, dan zal hij geen enkele regel code schrijven. Bovendien is het beheer van al deze componenten en het optimaal benutten ervan een zeer moeilijke opgave. Om deze reden zijn computers uitgerust met een speciale softwarelaag, het besturingssysteem genaamd, waarvan de taak het beheer is aangepaste programma's, evenals het beheer van alle ijzerbronnen.
Eerste besturingssysteem
GM-NAA was het eerste besturingssysteem voor computers. Het werd in 1955 gemaakt door Robert Patrick met General Motors en Owen Mock met North American Aviation. Het was gebaseerd op de systeemmonitor en draaide op grote machines. De belangrijkste functie van GM-NAA is: automatische uitvoering een nieuw programma wanneer het oude programma is afgelopen.
De opkomst van het Plateau
In 1972 werd het PLATO-systeem ontwikkeld met een aantal innovaties zoals een oranje plasmapaneel. Het omvatte grafische functies voor geheugen en bitmaps. Plasmascherm PLATO ondersteunde de mogelijkheid om snel vectorlijnen te tekenen.Veel innovaties die door het OS PLATO werden geïntroduceerd, werden later de basis voor de ontwikkeling van andere computersystemen. Sommige technologieën zijn bijvoorbeeld geleend en verbeterd door Apple.
De opkomst van UNIX
Het eerste UNIX-systeem werd ontwikkeld in 1969 bij de Bell Labs-divisie van AT&T. een groot aantal van verschillende UNIX-systemen Enkele van de onderscheidende kenmerken van UNIX-systemen zijn:
1) Tekstbestanden gebruiken om het systeem te configureren en te beheren;
2) Uitgebreid gebruik van commandoregelhulpprogramma's;
3) Interactie met de gebruiker via een virtueel apparaat - terminal;
4) Vertegenwoordiging van fysieke en virtuele apparaten als bestanden.
De ideeën achter UNIX hebben een enorme impact gehad op de ontwikkeling van computerbesturingssystemen. UNIX-systemen worden nu erkend als een van de historisch meest belangrijke besturingssystemen. Dit besturingssysteem maakt het idee populair van een hiërarchisch bestandssysteem met willekeurige nestdiepte.
Linux
Linux is in 1991 gemaakt door Linus Torvalds, een Finse student. Het feit dat Linus de broncode van zijn besturingssysteem onmiddellijk na de creatie van het besturingssysteem op het internet zette, was bepalend voor het toekomstige lot van Linux. Hoewel internet in 1991 nog niet zo wijdverbreid was als nu, werd het vooral gebruikt door mensen met voldoende technische opleiding. En vanaf het allereerste begin ontving Torvalds verschillende geïnteresseerde reacties met een aanbod om te helpen bij de ontwikkeling, waar Linus mee instemde, en binnen zes maanden sloten zich honderden en honderdduizenden vrijwilligers aan bij de ontwikkeling. de ontwikkeling van het systeem vanaf het allereerste begin.
MS-DOS
MS-DOS is een commercieel besturingssysteem van Microsoft voor: IBM PC-compatibel persoonlijke computers. MS-DOS draait in realtime op een x86-processor. Er kan slechts één programma tegelijk worden uitgevoerd. MS-DOS is zo ontworpen dat gebruikers de ingebouwde tolk eenvoudig kunnen vervangen door opdrachtregelinterpreters van derden, zoals 4DOS.
Windows, waar kan ik heen zonder?

In 1985 verscheen de eerste versie van Windows, die niet werd gewaardeerd door gebruikers en werd genegeerd. Misschien omdat het de mogelijkheden van DOS alleen maar aanvulde, in feite grafische shell en een add-on op de MS-DOS-bundel.
In de loop van de tijd verbeterde het Windows-systeem steeds meer, verschenen er volwaardige grafische afbeeldingen, gebruikers van de visie beroofd systeembestanden, werd de barrière van multitasking overwonnen, waardoor 2-3 programma's konden worden gelanceerd. In 1992, sindsdien de opkomst van Windows 3.1, volgens veel gebruikers en professionals werden de nieuwe functies van het besturingssysteem zeer gewaardeerd. Met de Windos3.1-versie kreeg het besturingssysteem 32-bits toegankelijkheid van de harde schijf.
In 1998, op 25 juni, kwam het nieuwe Windows 98 OS op de consumentenmarkt. De voordelen ten opzichte van de vorige voorbeelden waren: volledige integratie met internet, beter interfacebeheer, nieuwe processor Pentium II, AGP grafisch portaal, USB-bus.
Parallel aan de vorige begon de ontwikkeling van het Windows XP-systeem, waar uiteindelijk werd besloten 16-bits in de systeemkernel te verlaten en naar 32-bit te gaan, met een nieuwe architectuur en structuur. Een van de voordelen van het nieuwe systeem is het volgende: dit is het eerste systeem met een volledig aanpasbare interface, de introductie van een intelligent "Start"-menu. Ook is het bedieningspaneel van de pc optimaal opnieuw ontworpen.
Het verschijnen van een nieuw systeem na Widows XP Windows Vista overweeg het meest mislukte optie na alle eerdere OS-releases. Het wordt gepresenteerd als een "generale repetitie" voor Windows 7. Het lijkt erop dat de goede eigenschappen van het nieuwe systeem geïnteresseerde gebruikers zouden moeten hebben. Innovaties als ingebouwde zoekfunctie, driedimensionaliteit van de Aero-interface met mooie screensavers, goede bescherming - niets hielp, alles was volgens gebruikers extreem slecht gedaan.
Windows 7 is geannuleerd van Vista in weinig meer dan een nieuwe interface. Windows-varianten 7 uitgebracht 5: Starter Edition, Home Basic, Home Advanced, Professional, Ultimate.
Windows 8 gebruikt, in tegenstelling tot zijn voorgangers, Windows 7 en Windows XP, een nieuwe interface genaamd Modern (Metro). Er zit ook een desktop in het systeem, maar dan al in de vorm van een aparte applicatie.

Mobiel besturingssysteem
Nu wordt steeds meer interesse van gebruikers gewekt door smartphones op verschillende besturingssystemen: Windows telefoon, Boda, IOS. De meest populaire hiervan zijn IOS en AndroidOS.
IOS
IOS is een mobiel besturingssysteem gebouwd op Linux-kernel en ontwikkeld en geproduceerd door het Amerikaanse bedrijf Apple. Het werd oorspronkelijk uitgebracht in 2007 - voor de iPhone en iPod touch... Nu is het op alle Apple-apparaten geïnstalleerd. Innovaties zoals de mobiele Safari-browser, visual voicemail Het virtuele toetsenbord heeft van iOS een van de meest populaire systemen voor smartphones gemaakt.
Android
Android is het meest dynamisch ontwikkelende systeem, ontwikkeld voor smartphones (aanvankelijk voor communicators (de iPhone en zijn touchscreen veranderden de mening van Google)). Het is een vereenvoudigde versie van vergelijkbare Windows- en Linux-systemen die worden gebruikt op vaste pc's en laptops, gericht op het touchscreen. Het Android-platform bestaat uit een besturingssysteem, een software-interface en krachtige applicaties.
Google Chrome OS (cloud-OS)
Chrome OS wordt op de markt gebracht als een besturingssysteem voor apparaten variërend van kleine netbooks tot desktops van volledige grootte en ondersteunt x86- en ARM-processorarchitecturen.
Het nieuwe Google Chrome OS is open source op basis van een geoptimaliseerde Linux-kernel en wordt bestuurd door de Chrome-browser. Het belangrijkste kenmerk is de dominantie van webapplicaties over reguliere functies besturingssysteem. Hoofdrol in dit geval wordt het toegewezen aan de browser.
De strategie van het creëren van een nieuw product impliceert een architectuur die niet veeleisend is voor de hardwarebronnen van een personal computer die wordt gebruikt om toegang te krijgen tot internet.
Alle applicaties die door het systeem worden gestart, zijn webservices. In feite worden alle acties die op een computer plaatsvinden, uitgevoerd op internet - het is niet nodig om offline applicaties te installeren. In dit opzicht vereist het werken in Chrome OS geen computer om krachtige bronnen te hebben, omdat alle processen niet op de computer zelf worden gestart, maar op de servers van de bijbehorende services.
De voorspellingen van de waarzegger
Het besturingssysteem van de gebruiker wordt zoiets als een webbrowser die op bare metal is geïnstalleerd. De moderne, klassieke interface (ontwikkeld bij Xerox PARC en bijna 30 jaar geleden ontwikkeld door Apple) behoort tot het verleden. veel moderne onderdelen OS zal simpelweg overbodig zijn, andere zullen de gebruiker verlaten en veranderen in API-services voor programmeurs. De belangrijkste taak van het besturingssysteem zal zijn om de mogelijkheid te bieden om de clientzijde van cloudservices te lanceren. En de voordelen die Microsoft heeft in de moderne OS-wereld zullen sterk afnemen. Ze zullen nieuwe manieren moeten bedenken om gebruikers en programmeurs aan zichzelf te binden in een nieuwe omgeving die competitiever is dan de huidige.
Veel hangt af van de beslissingen, successen en mislukkingen van grote softwarebedrijven zoals Microsoft, Google. In tegenstelling tot de evolutie van software die we in de jaren negentig en tweeduizendste zagen, is de nieuwe evolutie steeds minder afhankelijk van hardwarefabrikanten, en steeds meer - van de fabrikanten van eindgebruikerssoftware.

Voor krivorukost niet schelden, als er iets is - correct, de auteur zweert niet.

Tags: besturingssystemen, it-geschiedenis

Invoering

1. Evolutie van het besturingssysteem

1.1 De eerste periode (1945 -1955)

1.2 Tweede periode (1955 - 1965)

1.3 Derde periode (1965 - 1980)

1.4 Vierde periode (1980 - heden)

2. OS-classificatie

2.1 Kenmerken van algoritmen voor resourcebeheer

2.2 Kenmerken van hardwareplatforms

2.3 Kenmerken van toepassingsgebieden

2.4 Kenmerken van constructiemethoden

3. Moderne concepten en technologieën voor het ontwerpen van besturingssystemen, vereisten voor het besturingssysteem van de eenentwintigste eeuw

Gevolgtrekking

Lijst met gebruikte literatuur

Invoering

De geschiedenis van elke tak van wetenschap of technologie maakt het niet alleen mogelijk om de natuurlijke nieuwsgierigheid te bevredigen, maar ook om de essentie van de belangrijkste prestaties van deze industrie beter te begrijpen, de bestaande trends te begrijpen en de vooruitzichten van bepaalde ontwikkelingsrichtingen correct te beoordelen. Al bijna een halve eeuw van zijn bestaan ​​hebben besturingssystemen een moeilijk pad afgelegd, vol met veel belangrijke gebeurtenissen. Een enorme invloed op de ontwikkeling van besturingssystemen werd gemaakt door de successen bij het verbeteren van de elementbasis en computerapparatuur, daarom zijn veel stadia van OS-ontwikkeling nauw verwant aan de opkomst van nieuwe soorten hardwareplatforms, zoals minicomputers of persoonlijke computers. Besturingssystemen hebben een serieuze evolutie doorgemaakt in verband met de nieuwe rol van computers in lokale en mondiale netwerken. De belangrijkste factor in de ontwikkeling van het besturingssysteem is het internet geworden. Aangezien dit netwerk de kenmerken van een universeel medium krijgt, massacommunicatie, besturingssystemen worden steeds eenvoudiger en gebruiksvriendelijker, bevatten geavanceerde ondersteuning voor multimedia-informatie en zijn uitgerust met betrouwbare beveiligingstools.

Het doel van dit cursuswerk is - om de evolutie van besturingssystemen te beschrijven en te analyseren.

Dit doel wordt bereikt door de volgende taken:

Overweeg het historische aspect van de opkomst van besturingssystemen;

Markeer en overweeg de stadia van de evolutie van besturingssystemen.

Opgemerkt moet worden dat het feit dat het niet voldoende werd benadrukt in de literatuur, het moeilijk maakte om te studeren.

In de loop van het onderzoek werd een korte analyse uitgevoerd van bronnen zoals materiaal van de site http://www.microsoft.com/rus, materiaal van Windows NT Magazine en andere.

Het werk bestaat uit drie hoofdstukken van inleiding, conclusie en bibliografie.

1 ... OS evolutie

1.1 Eerste periode (1945 -1955)

Het is bekend dat de computer aan het einde van de achttiende eeuw is uitgevonden door de Engelse wiskundige Charles Babidge. Zijn "analytische machine" kon nooit echt werken, omdat de technologieën van die tijd niet voldeden aan de vereisten voor de vervaardiging van onderdelen van de precisiemechanica, die nodig waren voor de computer. Ook is bekend dat deze computer geen besturingssysteem had.

Enige vooruitgang in de creatie van digitale computers vond plaats na de Tweede Wereldoorlog. Halverwege de jaren 40 werden de eerste buizencomputers gemaakt. In die tijd nam een ​​en dezelfde groep mensen deel aan het ontwerp, de bediening en de programmering van de computer. Het was meer een wetenschappelijk onderzoekswerk op het gebied van informatica, en niet het gebruik van computers als hulpmiddel voor het oplossen van praktische problemen uit andere toegepaste gebieden. De programmering gebeurde uitsluitend in machinetaal. Er was geen sprake van besturingssystemen, alle taken van het organiseren van het computerproces werden handmatig door elke programmeur vanaf het bedieningspaneel opgelost. Er was geen andere systeemsoftware dan wiskunde- en hulpprogrammabibliotheken.

1.2 Tweede periode (1955 - 1965)

Halverwege de jaren vijftig begon een nieuwe periode in de ontwikkeling van computertechnologie, geassocieerd met de opkomst van een nieuwe technische basis - halfgeleiderelementen. Computers van de tweede generatie werden betrouwbaarder, ze konden nu lang genoeg continu doorwerken om taken uit te voeren die in de praktijk echt belangrijk zijn. Het was tijdens deze periode dat het personeel werd verdeeld in programmeurs en operators, operators en ontwikkelaars van computers.

Gedurende deze jaren verschenen de eerste algoritmische talen, en daarmee de eerste systeemprogramma's - compilers. De kosten van processortijd zijn gestegen, waardoor er minder overhead nodig is tussen het opstarten van programma's. De eerste batchverwerkingssystemen verschenen die eenvoudigweg de lancering van het ene programma na het andere automatiseerden en daarmee de processorbelastingsfactor verhoogden. Batchverwerkingssystemen waren het prototype van moderne besturingssystemen, het waren de eerste systeemprogramma's die waren ontworpen om het computerproces te besturen. Tijdens de implementatie van batchverwerkingssystemen werd een geformaliseerde taakcontroletaal ontwikkeld, met behulp waarvan de programmeur het systeem en de operator vertelde welk werk hij op de computer wilde doen. Een verzameling van verschillende taken, meestal in de vorm van een pak ponskaarten, wordt een takenpakket genoemd.

1.3 Derde periode (1965 - 1980)

De volgende belangrijke periode in de ontwikkeling van computers dateert uit 1965-1980. Op dat moment was er in de technische basis een overgang van individuele halfgeleiderelementen zoals transistors naar geïntegreerde schakelingen, wat veel meer kansen gaf aan de nieuwe, derde generatie computers.

Deze periode werd ook gekenmerkt door het ontstaan ​​van families van software-compatibele machines. De eerste familie van software-compatibele machines op basis van geïntegreerde schakelingen was de IBM / 360-serie machines. Deze familie, gebouwd in het begin van de jaren 60, presteerde aanzienlijk beter dan de machines van de tweede generatie in termen van prijs/prestatie. Al snel werd het idee van software-compatibele machines algemeen aanvaard.

Softwarecompatibiliteit vereiste ook compatibiliteit met het besturingssysteem. Dergelijke besturingssystemen zouden moeten werken op zowel grote als kleine computersystemen, met een grote en kleine verscheidenheid aan randapparatuur, in het commerciële veld en op het gebied van wetenschappelijk onderzoek. Besturingssystemen die zijn gebouwd met de bedoeling om aan al deze tegenstrijdige eisen te voldoen, zijn uiterst complexe monsters gebleken. Ze bestonden uit vele miljoenen montageregels, geschreven door duizenden programmeurs, en bevatten duizenden fouten, waardoor een eindeloze stroom reparaties ontstond. In elke nieuwe versie van het besturingssysteem werden enkele bugs opgelost en andere werden geïntroduceerd.

Ondanks zijn enorme omvang en vele problemen, voldeden OS / 360 en andere vergelijkbare besturingssystemen van de derde generatie machines echter aan de meeste behoeften van de consument. De belangrijkste prestatie van het besturingssysteem deze generatie er was een implementatie van multiprogrammering. Multiprogrammering is een methode voor het organiseren van een rekenproces waarbij verschillende programma's afwisselend op één processor worden uitgevoerd. Terwijl een programma een I / O-bewerking uitvoert, wordt de processor niet inactief, zoals bij sequentiële programma-uitvoering (modus met één programma), maar voert hij een ander programma uit (modus met meerdere programma's). In dit geval wordt elk programma in zijn eigen stuk RAM geladen, een sectie genoemd.

Een andere innovatie is spoolen. In die tijd werd spoolen gedefinieerd als een manier om het computerproces te organiseren, waarbij taken werden gelezen van ponskaarten naar schijf met de snelheid waarmee ze in het rekencentrum verschenen, en vervolgens, wanneer de volgende taak was voltooid, een nieuwe taak van schijf is geladen in de vrijgemaakte partitie. ...

Samen met de multiprogramma-implementatie van batchverwerkingssystemen is er een nieuw type besturingssysteem verschenen: systemen voor het delen van tijd. Een variant van multiprogrammering die wordt gebruikt in timesharingsystemen is bedoeld om voor elke individuele gebruiker de illusie te wekken dat hij alleen een computer gebruikt.

1.4 Vierde periode (1980 - heden)

De volgende periode in de evolutie van besturingssystemen wordt geassocieerd met de opkomst van grote geïntegreerde schakelingen (LSI). Gedurende deze jaren was er een sterke toename van de mate van integratie en een verlaging van de kosten van microschakelingen. De computer werd beschikbaar voor het individu en het tijdperk van personal computers begon. Vanuit het oogpunt van architectuur verschilden personal computers op geen enkele manier van de klasse van minicomputers van het PDP-11-type, maar hun prijs was aanzienlijk anders. Als een minicomputer het voor een afdeling van een onderneming of een universiteit mogelijk maakte om een ​​eigen computer te hebben, maakte de personal computer het voor een individu mogelijk.

Computers werden veel gebruikt door niet-specialisten, wat de ontwikkeling van "vriendelijke" software vereiste, dit maakte een einde aan de kaste-programmeurs.

De markt voor besturingssystemen werd gedomineerd door twee systemen: MS-DOS en UNIX. Het MS-DOS-besturingssysteem met één programma en één gebruiker werd veel gebruikt voor computers op basis van de Intel 8088-microprocessor, en vervolgens de 80286, 80386 en 80486. Het UNIX-besturingssysteem voor meerdere programma's domineerde de niet-Intel computeromgeving, met name die op basis van krachtige RISC-processors.

In het midden van de jaren 80 begonnen personal computernetwerken zich snel te ontwikkelen, opererend onder de controle van genetwerkte of gedistribueerde besturingssystemen.

In een netwerkbesturingssysteem moeten gebruikers zich bewust zijn van de aanwezigheid van andere computers en moeten ze inloggen op een andere computer om de bronnen, voornamelijk bestanden, te kunnen gebruiken. Elke machine op het netwerk heeft zijn eigen lokale besturingssysteem, dat verschilt van het besturingssysteem van een stand-alone computer in de aanwezigheid van extra tools waarmee de computer op het netwerk kan werken. Het netwerkbesturingssysteem verschilt niet fundamenteel van het besturingssysteem van een uniprocessorcomputer. Het bevat noodzakelijkerwijs software-ondersteuning voor netwerkinterface-apparaten (stuurprogramma netwerkadapter), evenals tools voor externe toegang tot andere computers in het netwerk en tools voor toegang tot externe bestanden, maar deze toevoegingen veranderen de structuur van het besturingssysteem zelf niet significant.

2. OS-classificatie

Besturingssystemen kunnen verschillen in de kenmerken van de implementatie van interne algoritmen voor het beheer van de belangrijkste bronnen van een computer (processors, geheugen, apparaten), kenmerken van de gebruikte ontwerpmethoden, soorten hardwareplatforms, gebruiksgebieden en vele andere eigenschappen.

Hieronder vindt u de classificatie van OS volgens een aantal van de meest elementaire kenmerken.

2.1 Kenmerken van algoritmen voor resourcebeheer

De efficiëntie van het netwerkbesturingssysteem als geheel hangt grotendeels af van de efficiëntie van de algoritmen voor het beheer van de lokale bronnen van een computer. Daarom worden bij het karakteriseren van een netwerkbesturingssysteem vaak de belangrijkste kenmerken van de implementatie van besturingssysteemfuncties voor het beheer van processors, geheugen en externe apparaten van een autonome computer genoemd. Dus, bijvoorbeeld, afhankelijk van de kenmerken van het gebruikte processorbesturingsalgoritme, worden besturingssystemen onderverdeeld in multitasking en single-tasking, multi-user en single-user systemen, systemen die multi-thread verwerking wel en niet ondersteunen, in multiprocessor- en uniprocessor-systemen.

Ondersteuning voor multitasking. Besturingssystemen kunnen worden onderverdeeld in twee klassen op basis van het aantal gelijktijdig uitgevoerde taken:

single-tasking (bijv. MS-DOS, MSX) en

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

Single-tasking besturingssystemen vervullen voornamelijk de functie om de gebruiker een virtuele machine te bieden, waardoor het voor de gebruiker gemakkelijker en handiger wordt om met de computer te communiceren. Single-tasking besturingssystemen omvatten tools voor het besturen van randapparatuur, tools voor het beheren van bestanden, tools voor communicatie met de gebruiker.

Een multitasking-besturingssysteem beheert, naast de bovenstaande functies, het delen van gedeelde bronnen zoals processor, RAM, bestanden en externe apparaten.

Ondersteuning voor multiplayer-modus. Op basis van het aantal gelijktijdige gebruikers is het besturingssysteem onderverdeeld in:

één gebruiker (MS-DOS, Windows 3.x, eerdere versies van OS / 2);

meerdere gebruikers (UNIX, Windows NT).

Het belangrijkste verschil tussen systemen voor meerdere gebruikers en systemen voor één gebruiker is de beschikbaarheid van middelen om de informatie van elke gebruiker te beschermen tegen ongeautoriseerde toegang door andere gebruikers. Opgemerkt moet worden dat niet elk multi-tasking systeem multi-user is, en niet elk single-user besturingssysteem is single-tasking.

Preventief en niet-preventief multitasken. De belangrijkste gedeelde bron is de CPU-tijd. De manier waarop de CPU-tijd wordt verdeeld over verschillende processen (of threads) die tegelijkertijd in het systeem bestaan, bepaalt grotendeels de specifieke kenmerken van het besturingssysteem. Onder de vele bestaande opties voor het implementeren van multitasking kunnen twee groepen algoritmen worden onderscheiden:

niet-preventieve multitasking (NetWare, Windows 3.x);

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

Het belangrijkste verschil tussen preventieve en niet-preventieve multitasking is de mate van centralisatie van de procesplanningsengine. In het eerste geval is het procesplanningsmechanisme volledig geconcentreerd in het besturingssysteem en in het tweede geval wordt het verdeeld tussen het systeem en de applicatieprogramma's. Bij niet-preventieve multitasking loopt het actieve proces totdat het, op eigen initiatief, de controle overgeeft aan het besturingssysteem, zodat het een ander proces kan selecteren dat klaar is om uit de wachtrij te worden uitgevoerd. Bij preventieve multitasking wordt de beslissing om de processor van het ene proces naar het andere te schakelen genomen door het besturingssysteem, niet door het actieve proces zelf.

Ondersteuning voor meerdere threads. Een belangrijk kenmerk van besturingssystemen is de mogelijkheid om berekeningen binnen een enkele taak te parallelliseren. Een multi-threaded besturingssysteem deelt de processortijd niet tussen taken, maar tussen hun afzonderlijke takken (threads).

Multiverwerking. anderen belangrijk bezit OS is de afwezigheid of aanwezigheid van multiprocessing-ondersteuningstools erin - multiprocessing. Multiprocessing leidt tot de complicatie van alle algoritmen voor resourcebeheer.

Tegenwoordig wordt het algemeen aanvaard om multiprocessing-ondersteuningsfuncties in het besturingssysteem te introduceren. Deze functies zijn beschikbaar op Solaris 2.x van Sun, Open Server 3.x van Santa Crus Operations, OS/2 van IBM, Windows NT van Microsoft en NetWare 4.1 van Novell.

Multiprocessor-besturingssystemen kunnen worden ingedeeld volgens de manier waarop het computerproces is georganiseerd in een systeem met een multiprocessor-architectuur: asymmetrische besturingssystemen en symmetrische besturingssystemen. Een asymmetrisch besturingssysteem wordt volledig uitgevoerd op slechts één van de processors in het systeem en verdeelt de applicatietaken over de rest van de processors. Een symmetrisch besturingssysteem is volledig gedecentraliseerd en gebruikt de hele pool van processors, waarbij ze worden verdeeld over systeem- en applicatietaken.

Hierboven hebben we gekeken naar de kenmerken van het besturingssysteem die verband houden met het beheer van slechts één type bron: de processor. Een belangrijke invloed op het uiterlijk van het besturingssysteem als geheel, op de mogelijkheid van gebruik in een of ander gebied, wordt ook uitgeoefend door de kenmerken van andere subsystemen voor het beheer van lokale bronnen - subsystemen voor het beheer van geheugen, bestanden en invoer- uitvoer apparaten.

De specificiteit van het besturingssysteem komt ook tot uiting in de manier waarop het netwerkfuncties implementeert: herkenning en omleiding van verzoeken naar externe bronnen naar het netwerk, verzending van berichten via het netwerk, uitvoering verzoeken op afstand... Bij het implementeren van netwerkfuncties ontstaat een reeks taken die verband houden met de gedistribueerde aard van het opslaan en verwerken van gegevens in het netwerk: het onderhouden van referentie-informatie over alle bronnen en servers die beschikbaar zijn op het netwerk, het aanpakken van interactieprocessen, het waarborgen van transparantie van de toegang, het repliceren van gegevens, het afstemmen van kopieën , het handhaven van gegevensbeveiliging.

2. 2 Kenmerken van hardwareplatforms

De eigenschappen van het besturingssysteem worden direct beïnvloed door de hardware waarop het is georiënteerd. Door het type hardware worden de besturingssystemen van personal computers, minicomputers, mainframes, clusters en computernetwerken onderscheiden. Onder de vermelde typen computers zijn er zowel versies met één processor als versies met meerdere processors. In ieder geval worden de specifieke kenmerken van hardware in de regel weerspiegeld in de specifieke kenmerken van besturingssystemen.

Het is duidelijk dat het besturingssysteem van een grote machine complexer en functioneler is dan dat van een personal computer. Dus in het besturingssysteem van grote machines worden de functies voor het plannen van de takenstroom die wordt uitgevoerd duidelijk geïmplementeerd door gebruik te maken van complexe prioriteitsdisciplines en vereisen ze meer rekenkracht dan in het besturingssysteem van pc's. De situatie is vergelijkbaar met andere functies.

Het netwerkbesturingssysteem omvat middelen voor het overbrengen van berichten tussen computers via communicatielijnen, die in een stand-alone besturingssysteem volledig overbodig zijn. Op basis van deze berichten handhaaft het netwerkbesturingssysteem het delen van computerbronnen tussen: externe gebruikers aangesloten op het netwerk. Om berichtenfuncties te ondersteunen, bevatten netwerkbesturingssystemen speciale softwarecomponenten die populaire communicatieprotocollen zoals IP, IPX, Ethernet en andere implementeren.

Multiprocessor-systemen vereisen een speciale organisatie van het besturingssysteem, met behulp waarvan het besturingssysteem zelf, evenals de applicaties die het ondersteunt, parallel kunnen worden uitgevoerd door de individuele processors van het systeem. Parallel werk afzonderlijke delen van het besturingssysteem maakt extra problemen voor OS-ontwikkelaars, omdat het in dit geval veel moeilijker is om consistente toegang van individuele processen tot gemeenschappelijke systeemtabellen te garanderen, om het effect van races en andere ongewenste gevolgen van asynchrone uitvoering van werk uit te sluiten.

Voor clusterbesturingssystemen gelden andere eisen. Een cluster is een losjes gekoppelde verzameling van verschillende computersystemen die samenwerken om gemeenschappelijke toepassingen uit te voeren en die aan de gebruiker worden gepresenteerd verenigd systeem... Naast speciale hardware voor het functioneren van clustersystemen, is ook softwareondersteuning van het besturingssysteem vereist, die voornamelijk wordt beperkt tot het synchroniseren van toegang tot gedeelde bronnen, het detecteren van storingen en het dynamisch herconfigureren van het systeem. Een van de eerste ontwikkelingen op het gebied van clustertechnologie waren de oplossingen van het bedrijf Digital Equipment op basis van VAX-computers. Het bedrijf sloot onlangs een overeenkomst met Microsoft om clustertechnologie te ontwikkelen met behulp van Windows NT. Verschillende bedrijven bieden clusters aan op basis van UNIX-machines.

Samen met OS volledig gericht op zeker type hardwareplatform zijn er besturingssystemen die speciaal zijn ontworpen om gemakkelijk van het ene type computer naar een ander type computer te kunnen worden overgezet, het zogenaamde mobiele besturingssysteem. Het meest prominente voorbeeld van een dergelijk besturingssysteem is het populaire UNIX-systeem. In deze systemen zijn de hardwareafhankelijke plaatsen zorgvuldig gelokaliseerd, zodat ze pas worden overschreven wanneer het systeem wordt gemigreerd naar een nieuw platform. De tool die het gemakkelijker maakt om de rest van het besturingssysteem over te dragen, is door het te schrijven in een machine-onafhankelijke taal, zoals C, die is ontwikkeld voor het programmeren van besturingssystemen.

2. 3 Kenmerken van toepassingsgebieden

Multitasking-besturingssystemen zijn onderverdeeld in drie typen in overeenstemming met de prestatiecriteria die bij hun ontwikkeling zijn gebruikt:

batchverwerkingssystemen (bijv. OC EC),

timesharing-systemen (UNIX, VMS),

real-time systemen (QNX, RT/11).

Batchverwerkingssystemen zijn ontworpen om voornamelijk rekenproblemen op te lossen waarvoor geen snelle resultaten nodig zijn. Het belangrijkste doel en efficiëntiecriterium van batchverwerkingssystemen is de maximale doorvoer, dat wil zeggen het maximale aantal taken per tijdseenheid oplossen. Om dit doel te bereiken, wordt het volgende bewerkingsschema gebruikt in batchverwerkingssystemen: aan het begin van het werk wordt een batch taken gevormd, elke taak bevat een vereiste voor systeembronnen; uit dit takenpakket wordt een multi-programma-mix gevormd, dat wil zeggen een veelvoud van gelijktijdig uitgevoerde taken. Voor gelijktijdige uitvoering worden taken geselecteerd die verschillende resourcevereisten hebben, zodat een evenwichtige belasting van alle apparaten van de computer wordt gegarandeerd; dus bijvoorbeeld in een mengsel van meerdere programma's, de gelijktijdige aanwezigheid van computertaken en I/O intensieve taken. De keuze van een nieuwe taak uit een reeks taken hangt dus af van de interne situatie in het systeem, dat wil zeggen dat een "winstgevende" taak wordt geselecteerd. Bijgevolg is het in dergelijke besturingssystemen onmogelijk om de uitvoering van een bepaalde taak binnen een bepaalde tijdsperiode te garanderen. In batchverwerkingssystemen schakelt de processor alleen van de ene taak naar de andere als de actieve taak zelf afstand doet van de processor, bijvoorbeeld vanwege de noodzaak om een ​​I/O-bewerking uit te voeren. Daarom kan één taak de processor lange tijd in beslag nemen, waardoor het onmogelijk is om interactieve taken uit te voeren. De interactie van de gebruiker met de computer waarop het batchverwerkingssysteem is geïnstalleerd, wordt dus beperkt tot het feit dat hij de taak brengt, deze aan de coördinator-operator geeft en aan het eind van de dag, na het voltooien van de hele reeks taken , ontvangt hij de uitslag. Uiteraard vermindert deze volgorde de productiviteit van de gebruiker.

Time sharing-systemen zijn ontworpen om het belangrijkste nadeel van batchverwerkingssystemen te corrigeren - de isolatie van de gebruiker-programmeur van het proces van het uitvoeren van zijn taken. Elke gebruiker van het timesharingsysteem krijgt een terminal van waaruit hij een dialoog kan voeren met zijn programma. Aangezien in timesharingsystemen aan elke taak slechts een hoeveelheid processortijd wordt toegewezen, neemt geen enkele taak de processor lang in beslag en is de responstijd acceptabel. Als het kwantum klein genoeg wordt gekozen, hebben alle gebruikers die tegelijkertijd op dezelfde machine werken de indruk dat ze allemaal de machine alleen gebruiken. Het is duidelijk dat systemen voor het delen van tijd minder bandbreedte hebben dan systemen voor batchverwerking, aangezien elke taak die door de gebruiker wordt gestart, wordt geaccepteerd voor uitvoering, en niet degene die "gunstig" is voor het systeem, en bovendien is er een overhead van rekenkracht voor het vaker wisselen van processor van taak naar taak. Het criterium voor de effectiviteit van timesharing-systemen is niet de maximale doorvoer, maar het gemak en de efficiëntie van de gebruiker.

Real-time systemen worden gebruikt om verschillende technische objecten aan te sturen, zoals een werktuigmachine, een satelliet, een wetenschappelijke experimentele installatie of technologische processen, zoals een galvanische lijn, een hoogovenproces, enz. In al deze gevallen is er een maximaal toegestane tijd gedurende welke een of ander programma dat het object bestuurt moet worden uitgevoerd, anders kan er een ongeluk gebeuren: de satelliet verlaat de zichtzone, de experimentele gegevens die van de sensoren worden ontvangen, gaan verloren, de dikte van de galvanische coating zal niet correct zijn. Het criterium van efficiëntie voor realtime-systemen is dus hun vermogen om vooraf te weerstaan gespecificeerde intervallen de tijd tussen de start van het programma en de ontvangst van het resultaat (controleactie). Deze tijd wordt de reactietijd van het systeem genoemd en de overeenkomstige eigenschap van het systeem wordt reactiviteit genoemd. Voor deze systemen is een multi-programmamix een vaste set van vooraf ontwikkelde programma's, en de keuze van een programma voor uitvoering is gebaseerd op de huidige staat van het object of in overeenstemming met het schema van geplande werken.

Sommige besturingssystemen kunnen de eigenschappen van systemen van verschillende typen combineren, sommige taken kunnen bijvoorbeeld in batchmodus worden uitgevoerd en andere in realtime of in timesharing-modus. In dergelijke gevallen wordt batchverwerking vaak achtergrondverwerking genoemd.

2. 4 Kenmerken van bouwmethoden

Bij het beschrijven van een besturingssysteem worden vaak de kenmerken van de structurele organisatie en de basisconcepten die eraan ten grondslag liggen aangegeven.

Deze basisconcepten omvatten:

De manier om de systeemkernel te bouwen is een monolithische kernel of een microkernelbenadering. De meeste besturingssystemen gebruiken een monolithische kernel, die is gekoppeld als een enkel programma dat in de bevoorrechte modus draait en snelle overgangen van de ene procedure naar de andere gebruikt, waarbij niet hoeft te worden overgeschakeld van de bevoorrechte modus naar de gebruikersmodus en vice versa. Een alternatief is om een ​​besturingssysteem te bouwen op basis van een microkernel, die ook in een geprivilegieerde modus werkt en slechts een minimum aan hardwarebeheerfuncties uitvoert, terwijl de functies van een hoger besturingssysteem worden uitgevoerd door gespecialiseerde besturingssysteemcomponenten - servers die in gebruikersmodus draaien. Met dit ontwerp werkt het besturingssysteem langzamer, omdat er vaak overgangen worden gemaakt tussen de bevoorrechte modus en de gebruikersmodus, maar het systeem blijkt flexibeler te zijn - de functies kunnen worden vergroot, aangepast of verkleind door gebruikersmodus toe te voegen, aan te passen of uit te sluiten servers. Daarnaast zijn de servers goed van elkaar afgeschermd, net als alle gebruikersprocessen.

Het bouwen van een OS op basis van een objectgeoriënteerde benadering maakt het mogelijk om al zijn voordelen, die zich op applicatieniveau goed hebben bewezen, binnen het besturingssysteem te gebruiken, namelijk: de accumulatie van succesvolle oplossingen in de vorm van standaardobjecten, het vermogen om nieuwe objecten te creëren op basis van bestaande objecten met behulp van het overervingsmechanisme, goede gegevensbescherming door hun inkapseling in de interne structuren van het object, waardoor de gegevens ontoegankelijk zijn voor onbevoegd gebruik van buitenaf, gestructureerd systeem, bestaande uit een set goed- gedefinieerde objecten.

De aanwezigheid van meerdere applicatie-omgevingen maakt het mogelijk om applicaties die voor meerdere besturingssystemen zijn ontwikkeld tegelijkertijd binnen één besturingssysteem te draaien. Veel moderne besturingssystemen ondersteunen gelijktijdig toegepast MS-DOS-omgevingen, Windows, UNIX (POSIX), OS / 2, of op zijn minst een subset van deze populaire set. Het concept van meerdere applicatieomgevingen kan het gemakkelijkst worden geïmplementeerd in een besturingssysteem dat is gebaseerd op een microkernel, waarop verschillende servers werken, waarvan sommige de applicatieomgeving van een bepaald besturingssysteem implementeren.

De gedistribueerde organisatie van het besturingssysteem vereenvoudigt het werk van gebruikers en programmeurs in netwerkomgevingen. Een gedistribueerd besturingssysteem implementeert mechanismen waarmee een gebruiker zich een netwerk kan voorstellen en waarnemen in de vorm van een traditionele computer met één processor. De karakteristieke kenmerken van een gedistribueerde OS-organisatie zijn: de aanwezigheid van een enkele referentieservice voor gedeelde bronnen, verenigde dienst tijd, het gebruik van een RPC-mechanisme (Remote Procedure Call) voor transparante distributie van programmaprocedures over machines, multi-threaded verwerking, waardoor berekeningen binnen een enkele taak parallel kunnen worden uitgevoerd en deze taak ook op meerdere computers in het netwerk tegelijk kan worden uitgevoerd als de aanwezigheid van andere gedistribueerde diensten.

3. Moderne concepten en technologieën voor het ontwerpen van besturingssystemen, vereisten voor besturingssystemenXXIeeuw

Het besturingssysteem is het hart van netwerksoftware, het creëert de omgeving waarin applicaties kunnen draaien en bepaalt grotendeels welke eigenschappen deze applicaties nuttig zullen hebben voor de gebruiker. In dit verband gaan we in op de eisen waaraan een modern besturingssysteem moet voldoen.

Het is duidelijk dat de belangrijkste vereiste voor een besturingssysteem de mogelijkheid is om basisfuncties uit te voeren: efficiënt beheer van hulpbronnen en het bieden van een gebruiksvriendelijke interface voor de gebruiker en toepassingsprogramma's. Een modern besturingssysteem moet in de regel multiprogrammering, virtueel geheugen, swapping implementeren, een interface met meerdere vensters ondersteunen en ook vele andere absoluut noodzakelijke functies uitvoeren. naast deze functionele vereisten besturingssystemen hebben even belangrijke marktvereisten. Deze vereisten omvatten:

· Uitbreidbaarheid. De code moet zo zijn geschreven dat het gemakkelijk is om toevoegingen en wijzigingen aan te brengen, indien nodig, en de integriteit van het systeem niet te schenden.

· Draagbaarheid. Code moet gemakkelijk overdraagbaar zijn van het ene type processor naar een ander type processor en van een hardwareplatform (waaronder, samen met het type processor en de manier waarop alle computerhardware is georganiseerd) van het ene type naar een ander type hardwareplatform.

· Betrouwbaarheid en veerkracht. Het systeem moet worden beschermd tegen zowel interne als externe fouten, storingen en storingen. De acties moeten altijd voorspelbaar zijn en toepassingen mogen het besturingssysteem niet schaden.

· Compatibiliteit. Het besturingssysteem moet over de middelen beschikken om toepassingen uit te voeren die voor andere besturingssystemen zijn geschreven. Daarnaast moet de gebruikersinterface compatibel zijn met bestaande systemen en standaarden.

· Veiligheid. Het besturingssysteem moet de middelen hebben om de bronnen van sommige gebruikers tegen anderen te beschermen.

· Prestatie. Het systeem moet zo responsief en responsief zijn als het hardwareplatform toelaat.

Laten we enkele van deze vereisten eens nader bekijken.

Uitbreidbaarheid Terwijl de hardware van een computer binnen een paar jaar verouderd is, kan de levensduur van een besturingssysteem in tientallen jaren worden gemeten. Een voorbeeld is het UNIX-besturingssysteem. Daarom veranderen besturingssystemen in de loop van de tijd altijd evolutionair, en deze veranderingen zijn belangrijker dan hardwareveranderingen. Wijzigingen aan het besturingssysteem vertegenwoordigen meestal de verwerving van nieuwe eigenschappen door het. Bijvoorbeeld ondersteuning voor nieuwe apparaten zoals cd-roms, de mogelijkheid om te communiceren met nieuwe soorten netwerken, ondersteuning voor kansrijke technologieën zoals een grafische gebruikersinterface of objectgeoriënteerde softwareomgeving, het gebruik van meer dan één processor. Het belangrijkste doel van de ontwikkeling is het handhaven van de integriteit van de code, ongeacht welke wijzigingen er in het besturingssysteem worden aangebracht.

Uitbreidbaarheid kan worden bereikt dankzij de modulaire structuur van het besturingssysteem, waarin programma's zijn opgebouwd uit een reeks afzonderlijke modules die alleen samenwerken via een functionele interface. Nieuwe componenten kunnen modulair aan het besturingssysteem worden toegevoegd, ze doen hun werk met behulp van de interfaces die door de bestaande componenten worden ondersteund.

Het gebruik van objecten om systeembronnen weer te geven verbetert ook de uitbreidbaarheid van het systeem. Objecten zijn abstracte gegevenstypen, waarop u alleen die acties kunt uitvoeren die zijn opgegeven. speciale set object functies. Met objecten kunt u systeembronnen consequent beheren. Het toevoegen van nieuwe objecten vernietigt niet bestaande faciliteiten en vereist geen wijzigingen in bestaande code.

De client-serverbenadering voor het structureren van het besturingssysteem met behulp van microkerneltechnologie biedt uitstekende mogelijkheden voor uitbreidbaarheid. In overeenstemming met deze benadering is het besturingssysteem gebouwd als een set geprivilegieerde controle programma en een reeks onbevoorrechte serverservices. Het grootste deel van het besturingssysteem kan ongewijzigd blijven, terwijl nieuwe servers kunnen worden toegevoegd of oude kunnen worden verbeterd.

Remote Procedure Call (RPC)-faciliteiten bieden ook de mogelijkheid om de functionaliteit van het besturingssysteem uit te breiden. Nieuwe softwareroutines kunnen aan elke machine op het netwerk worden toegevoegd en zijn onmiddellijk beschikbaar voor toepassingsprogramma's op andere machines in het netwerk.

Sommige besturingssystemen ondersteunen downloadbare stuurprogramma's om de uitbreidbaarheid te verbeteren, die aan het systeem kunnen worden toegevoegd terwijl het actief is. Nieuwe bestandssystemen, apparaten en netwerken kunnen worden ondersteund door een apparaatstuurprogramma, bestandssysteemstuurprogramma of transportstuurprogramma te schrijven en op het systeem te laden.

Draagbaarheid De vereiste voor codeportabiliteit hangt nauw samen met uitbreidbaarheid. Met uitbreidbaarheid kunt u het besturingssysteem verbeteren, terwijl u met portabiliteit het hele systeem kunt verplaatsen naar een machine op basis van een andere processor of een ander hardwareplatform, terwijl u zo min mogelijk codewijzigingen hoeft aan te brengen. Hoewel besturingssystemen vaak worden beschreven als draagbaar of niet-draagbaar, is draagbaarheid geen binaire toestand. De vraag is niet of het systeem gemigreerd kan worden, maar hoe gemakkelijk het kan. Het schrijven van een draagbaar besturingssysteem is als het schrijven van een draagbare code - er zijn enkele regels die u moet volgen.

Ten eerste moet de meeste code geschreven zijn in een taal die beschikbaar is op alle machines waarnaar u het systeem wilt porten. Dit betekent meestal dat de code moet worden geschreven in een taal op hoog niveau, bij voorkeur een gestandaardiseerde taal, zoals C. Een programma dat in assembler is geschreven, is niet overdraagbaar, tenzij u van plan bent het naar een machine te porten die compatibel is met de uwe.

Ten tweede moet worden overwogen naar welke fysieke omgeving het programma moet worden overgebracht. Verschillende hardware vereist verschillende oplossingen bij het bouwen van een besturingssysteem. Een besturingssysteem dat is gebouwd op 32-bits adressen kan bijvoorbeeld niet worden geport naar een machine met 16-bits adressen (tenzij met grote moeite).

Ten derde is het belangrijk om die delen van de code die rechtstreeks met de hardware in wisselwerking staan, te minimaliseren of, indien mogelijk, te elimineren. Hardware-afhankelijkheid kan vele vormen aannemen. Enkele voor de hand liggende vormen van afhankelijkheid zijn directe manipulatie van registers en andere hardware.

Ten vierde, als de hardware-afhankelijke code niet volledig kan worden uitgesloten, moet deze worden geïsoleerd in verschillende goed gelokaliseerde modules. Hardware-afhankelijke code hoeft niet door het hele systeem te worden verspreid. U kunt bijvoorbeeld een hardwareafhankelijke structuur verbergen in softwaregedefinieerde gegevens van een abstract type. Andere modules van het systeem zullen met deze gegevens werken, en niet met de hardware, met behulp van een aantal functies. Wanneer het besturingssysteem wordt gemigreerd, veranderen alleen deze gegevens en de functies die het manipuleren.

Voor gemakkelijke overdraagbaarheid van het besturingssysteem moet tijdens de ontwikkeling aan de volgende vereisten worden voldaan:

· Draagbare taal op hoog niveau. De meeste draagbare besturingssystemen zijn geschreven in C (ANSI X3.159-1989-standaard). Ontwikkelaars kiezen voor C omdat het gestandaardiseerd is en omdat C-compilers overal verkrijgbaar zijn. De assembler wordt alleen gebruikt voor die delen van het systeem die direct moeten interageren met de hardware (bijvoorbeeld een interrupt-handler) of voor delen die maximum snelheid(bijvoorbeeld hoge precisie gehele rekenkunde). Niet-draagbare code moet echter zorgvuldig worden geïsoleerd in de componenten waar deze wordt gebruikt.

· Processorisolatie. Sommige low-level delen van het besturingssysteem moeten toegang hebben tot processorafhankelijke datastructuren en registers. De code die dit doet, moet echter zijn opgenomen in kleine modules die kunnen worden vervangen door vergelijkbare modules voor andere processors.

· Isolatie van het platform. Platformafhankelijkheid zit in verschillen tussen werkstations verschillende fabrikanten gebouwd op dezelfde processor (bijvoorbeeld MIPS R4000). Er moet een softwarelaag worden geïntroduceerd die hardware (caches, I/O-interruptcontrollers, enz.) samen met een laag programma's op laag niveau abstraheert, zodat de code op hoog niveau niet hoeft te veranderen bij het overzetten van het ene platform naar het andere.

Compatibiliteit Een aspect van compatibiliteit is het vermogen van een besturingssysteem om programma's uit te voeren die voor of voor andere besturingssystemen zijn geschreven. vroege versies voor dit besturingssysteem, evenals voor andere hardwareplatforms.

Het is noodzakelijk om de problemen van binaire compatibiliteit en compatibiliteit op het bronniveau van de toepassing te scheiden. Binaire compatibiliteit wordt bereikt wanneer u een uitvoerbaar programma kunt nemen en het op een ander besturingssysteem kunt uitvoeren. Dit vereist: compatibiliteit op het niveau van processorinstructies, compatibiliteit op het niveau van systeemoproepen en zelfs op het niveau van bibliotheekoproepen, als ze dynamisch gekoppeld zijn.

Broncompatibiliteit vereist een geschikte compiler in de software, evenals bibliotheek- en systeemaanroepcompatibiliteit. In dit geval is het noodzakelijk om de bestaande bronnen opnieuw te compileren in een nieuwe uitvoerbare module.

Broncompatibiliteit is vooral belangrijk voor applicatieontwikkelaars die altijd over broncode kunnen beschikken. Maar voor eindgebruikers is alleen binaire compatibiliteit van praktisch belang, omdat ze alleen dan hetzelfde commerciële product, geleverd in de vorm van binaire uitvoerbare code, in verschillende besturingsomgevingen en op verschillende machines kunnen gebruiken.

Of een nieuw besturingssysteem binair is of compatibel met bestaande systemen, hangt van veel factoren af. De belangrijkste daarvan is de architectuur van de processor waarop het nieuwe besturingssysteem draait. Als de processor waarnaar het besturingssysteem is geport dezelfde instructieset (mogelijk met enkele toevoegingen) en hetzelfde adresbereik gebruikt, kan binaire compatibiliteit vrij eenvoudig worden bereikt.

Het is veel moeilijker om binaire compatibiliteit te bereiken tussen processors op basis van verschillende architecturen. Om ervoor te zorgen dat de ene computer de programma's van een andere kan uitvoeren (bijvoorbeeld een DOS-programma op een Mac), moet die computer werken met machine-instructies die hij in eerste instantie niet begrijpt. Een 680x0-processor op een Mac moet bijvoorbeeld binaire bestanden uitvoeren die zijn ontworpen voor een 80x86-processor op een pc. De 80x86 processor heeft zijn eigen instructiedecoder, registers en interne architectuur. De 680x0-processor begrijpt het 80x86-binaire bestand niet, dus moet hij elke instructie selecteren, deze decoderen om te bepalen waar deze voor is, en dan de equivalente subroutine uitvoeren die is geschreven voor 680x0. Aangezien de 680x0 bovendien niet precies dezelfde registers, vlaggen en interne rekenkundige logische eenheid heeft als in de 80x86, moet hij al deze elementen simuleren met behulp van zijn registers of geheugen. En het moet de resultaten van elk commando zorgvuldig reproduceren, waarvoor speciaal geschreven routines voor de 680x0 nodig zijn om ervoor te zorgen dat de status van de geëmuleerde registers en vlaggen nadat elk commando is uitgevoerd precies hetzelfde is als op een echte 80x86.

Dit is een eenvoudige maar erg langzame bewerking, omdat de microcode in de 80x86-processor aanzienlijk sneller werkt dan de microcode die deze nabootst. externe teams 680x0. Tijdens de uitvoering van één 80x86-commando op 680x0, kan een echte 80x86 tientallen commando's uitvoeren. Daarom, als de processor die de emulatie uitvoert niet snel genoeg is om alle emulatieverliezen te compenseren, zullen de programma's die onder de emulatie draaien erg traag zijn.

De uitweg in dergelijke gevallen is om de zogenaamde applicatie-omgevingen te gebruiken. Aangezien het hoofdgedeelte van het programma in de regel bestaat uit het aanroepen van bibliotheekfuncties, simuleert de toepassingsomgeving de volledige bibliotheekfuncties met behulp van een eerder geschreven bibliotheek van functies met een soortgelijk doel, en emuleert de rest van de opdrachten elk afzonderlijk.

POSIX-compliance is ook een manier om compatibiliteit tussen programmering en gebruikersinterfaces te garanderen. In de tweede helft van de jaren tachtig begonnen Amerikaanse overheidsinstanties POSIX te ontwikkelen als een standaard voor hardware die wordt geleverd voor overheidscontracten in de computerindustrie. POSIX is een "UNIX-gebaseerde draagbare OS-interface". POSIX is een verzameling internationale OS-interfacestandaarden in UNIX-stijl. Door gebruik te maken van de POSIX-standaard (IEEE-standaard 1003.1 - 1988) kunnen UNIX-achtige programma's worden gemaakt die gemakkelijk van het ene systeem naar het andere kunnen worden overgedragen.

Veiligheid Naast de POSIX-standaard heeft de Amerikaanse overheid ook eisen gedefinieerd computer beveiliging voor toepassingen die door de overheid worden gebruikt. Veel van deze vereisten zijn wenselijke eigenschappen voor elk systeem met meerdere gebruikers. Beveiligingsregels definiëren eigenschappen zoals het beschermen van de bronnen van een gebruiker tegen anderen en het afdwingen van resourcequota om te voorkomen dat één gebruiker alle systeembronnen (zoals geheugen) in beslag neemt.

Het waarborgen van de bescherming van informatie tegen ongeoorloofde toegang is een verplichte functie van netwerkbesturingssystemen. De meeste populaire systemen garanderen een gegevensbeveiligingsniveau van C2 in het Amerikaanse standaardsysteem.

De basis voor beveiligingsstandaarden is vastgelegd in de Criteria for Evaluating Trusted Computer Systems. Dit document, gepubliceerd in de VS in 1983 nationaal centrum computerbeveiliging (NCSC - Nationale Computer) Beveiligings centrum) wordt vaak het Oranje Boek genoemd.

In overeenstemming met de vereisten van het Orange Book wordt een systeem als veilig beschouwd als het “via speciale beveiligingsmechanismen de toegang tot informatie zodanig controleert dat alleen personen met de juiste machtigingen of processen die namens hen worden uitgevoerd, toegang kunnen krijgen tot lezen, schrijven, informatie aan te maken of te verwijderen.".

De hiërarchie van het beveiligingsniveau die in het Orange Book wordt weergegeven, markeert het laagste beveiligingsniveau als D en het hoogste als A.

· Klasse D omvat systemen waarvan de beoordeling heeft uitgewezen dat ze niet voldoen aan de eisen van alle andere klassen.

· De belangrijkste eigenschappen die kenmerkend zijn voor C-systems zijn: de aanwezigheid van een subsysteem voor het vastleggen van gebeurtenissen op het gebied van beveiliging en selectieve toegangscontrole. Niveau C is verdeeld in 2 subniveaus: niveau C1, dat gegevens beschermt tegen gebruikersfouten, maar niet tegen de acties van indringers, en een strenger niveau C2. Op niveau C2 moeten fondsen aanwezig zijn geheime ingang identificatie van gebruikers door een unieke naam en wachtwoord in te voeren voordat ze toegang krijgen tot het systeem. De selectieve toegangscontrole die op dit niveau vereist is, stelt de resource-eigenaar in staat te bepalen wie toegang heeft tot de resource en wat hij ermee kan doen. De eigenaar doet dit door toegangsrechten te verlenen aan een gebruiker of groep gebruikers. Auditing - Biedt de mogelijkheid om belangrijke beveiligingsgebeurtenissen of elke poging om systeembronnen aan te maken, te openen of te verwijderen, te detecteren en vast te leggen. Geheugenbeveiliging - is dat het geheugen wordt geïnitialiseerd voordat het opnieuw wordt gebruikt. Op dit niveau is het systeem niet beschermd tegen gebruikersfouten, maar het gedrag ervan kan worden gecontroleerd aan de hand van de logboekvermeldingen die zijn achtergelaten door monitoring- en audittools.

· Systemen van niveau B zijn gebaseerd op getagde gegevens en categorisering van gebruikers, dat wil zeggen, ze implementeren verplichte toegangscontrole. Elke gebruiker krijgt een beschermingsclassificatie toegewezen en heeft alleen toegang tot gegevens volgens die classificatie. Dit niveau beschermt het systeem, in tegenstelling tot niveau C, tegen foutief gebruikersgedrag.

Niveau A is het meest hoog niveau veiligheid, vereist het, naast alle vereisten van niveau B, een formeel, wiskundig verantwoord bewijs van de conformiteit van het systeem met de veiligheidsvereisten.

Verschillende commerciële entiteiten (bijv. banken) wijzen op de behoefte aan: boekhoudkundige dienst, vergelijkbaar met die voorgesteld door de staatsaanbevelingen C2. Elke activiteit met betrekking tot veiligheid kan worden gevolgd en dus verantwoord. Dit is precies wat C2 nodig heeft en wat banken meestal nodig hebben. Commerciële gebruikers willen echter over het algemeen niet betalen met prestaties voor een betere beveiliging. Beveiliging op A-niveau neemt tot 90% van de processortijd in beslag met zijn controlemechanismen. Veiligere systemen verminderen niet alleen de efficiëntie, maar beperken ook het aantal beschikbare applicatiepakketten dat goed kan worden uitgevoerd op een dergelijk systeem. Solaris OS (UNIX-versie) heeft bijvoorbeeld enkele duizenden applicaties, terwijl zijn tegenhanger op B-niveau er slechts honderd heeft.

Gevolgtrekking

De geschiedenis van het besturingssysteem gaat ongeveer een halve eeuw terug. Het werd grotendeels bepaald en bepaald door de ontwikkeling van de elementbasis en computerapparatuur. De eerste digitale computers, die in de vroege jaren 40 verschenen, werkten zonder besturingssystemen, alle taken voor het organiseren van het computerproces werden door elke programmeur handmatig opgelost vanaf het bedieningspaneel

Het prototype van moderne besturingssystemen waren de monitorsystemen van het midden van de jaren 50, die de acties van de operator automatiseerden om een ​​reeks taken uit te voeren.

In de periode 1965-1975. bijna alle basisconcepten die inherent zijn aan moderne besturingssystemen zijn geïmplementeerd: multiprogrammering, multiprocessing, multi-terminalmodus, virtueel geheugen, bestandssystemen, toegangscontrole en netwerkbediening

Sinds het midden van de jaren 70 begon het massale gebruik van UNIX, een uniek besturingssysteem voor die tijd, dat relatief eenvoudig over te zetten was naar verschillende soorten computers.

Het begin van de jaren 80 wordt geassocieerd met de opkomst van personal computers. Dit vereiste de ontwikkeling van een "vriendelijke interface". Personal computers droegen bij aan de snelle groei van lokale netwerken, waardoor ondersteuning van netwerkfuncties een vereiste is geworden voor het besturingssysteem van personal computers.

In de jaren 90 werden bijna alle besturingssystemen die een prominente plaats in de markt innemen, genetwerkt. Het besturingssysteem kreeg tools om te werken met alle belangrijke technologieën van lokale (Ethernet, Fast Ethernet, Token Ring, FDDI) en wereldwijde (ISDN, ATM) netwerken. De afgelopen tien jaar lag de nadruk in het bijzonder op besturingssystemen voor bedrijfsnetwerken. Ze onderscheiden zich door hun vermogen om goed en stabiel te werken in grote netwerken, die typisch zijn voor grote ondernemingen, en het vermogen om naadloos te werken op verschillende hardwareplatforms.