Besturingssystemen van verschillende bedrijven. besturingssysteem

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, zo'n OS-eigenschap wordt ook wel multi platform.

Er zijn verschillende "langlevende" populaire besturingssystemen (variëteiten van UNIX, MS-DOS, Windows NT, OS / 2), waarvoor een breed scala aan applicaties 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. Er moet een onderscheid worden gemaakt tussen binaire compatibiliteit en broncompatibiliteit. Compatibiliteit omvat ook ondersteuning voor gebruikersinterfaces van andere besturingssystemen.

Er is een verschil tussen binaire compatibiliteit en compatibiliteit met toepassingsbronnen. Binaire compatibiliteit wordt bereikt wanneer u een uitvoerbaar bestand kunt nemen en het met succes op een ander besturingssysteem kunt uitvoeren. Compatibiliteit met bronnen vereist dat het programma eerst opnieuw wordt gecompileerd.

-3. 7. Compatibiliteit en meerdere toepassingsomgevingen

Hoewel veel architecturale kenmerken van besturingssystemen rechtstreeks alleen systeemprogrammeurs betreffen, is het concept meerdere applicatie-omgevingen direct gerelateerd aan de behoeften van eindgebruikers - het vermogen van het besturingssysteem om applicaties uit te voeren die zijn geschreven voor andere besturingssystemen. Deze eigenschap van het besturingssysteem heet compatibiliteit.

-3. 7. 1. Binaire en broncompatibiliteit

Er moet onderscheid worden gemaakt tussen binaire compatibiliteit en broncompatibiliteit. Toepassingen worden meestal in het besturingssysteem opgeslagen als uitvoerbare bestanden die binaire afbeeldingen van code en gegevens bevatten. Binaire compatibiliteit wordt bereikt wanneer u een uitvoerbaar programma kunt nemen en het op een andere OS-omgeving kunt uitvoeren.

Broncompatibiliteit vereist een geschikte compiler in de software van de computer waarop u de toepassing wilt uitvoeren, evenals bibliotheek- en systeemaanroepcompatibiliteit. In dit geval is het noodzakelijk om de bestaande bronteksten 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 in dit geval hetzelfde commerciële product, geleverd in de vorm van binaire uitvoerbare code, in verschillende besturingsomgevingen en op verschillende machines kunnen gebruiken. Voor een gebruiker die in één keer een pakket (bijvoorbeeld Lotus 1-2-3) voor MS-DOS heeft gekocht, is het belangrijk dat hij dit pakket waar hij van houdt zonder enige wijzigingen kan uitvoeren en bijvoorbeeld op zijn nieuwe machine kan draaien , WindowsNT. Of een nieuw besturingssysteem binair of broncompatibel is met bestaande besturingssystemen, hangt van veel factoren af. De belangrijkste daarvan is de architectuur van de processor waarop het nieuwe besturingssysteem draait. Als de processor dezelfde instructieset (mogelijk met enkele toevoegingen) en hetzelfde adresbereik gebruikt, kan binaire compatibiliteit vrij eenvoudig worden bereikt.


Hiervoor volstaat het om aan de volgende voorwaarden te voldoen:

API-functieaanroepen die de toepassing bevat, moeten door dit besturingssysteem worden ondersteund;

de interne structuur van het uitvoerbare bestand van de toepassing moet overeenkomen met de structuur van de uitvoerbare bestanden van het gegeven besturingssysteem.

Het is veel moeilijker om binaire compatibiliteit te bereiken voor besturingssystemen die zijn ontworpen om te draaien op processors met verschillende architecturen. Naast het voldoen aan bovenstaande voorwaarden is het noodzakelijk om afspraken te maken over: emulatie binaire code.

Stel dat u een DOS-programma voor een IBM PC-compatibele computer op een Macintosh-computer wilt uitvoeren. De Macintosh is gebaseerd op de Motorola 680x0-processor en de IBM PC is gebaseerd op de Intel 80x86-processor. Een Motorola-processor heeft een andere architectuur (instructieset, registerstructuur, etc.) dan die van een Intel-processor, waardoor hij de binaire code van een DOS-programma met instructies voor deze processor niet begrijpt. Om ervoor te zorgen dat een Macintosh-computer machine-instructies kan interpreteren die hij aanvankelijk niet begrijpt, moet er speciale software op zijn geïnstalleerd - emulator.

De emulator moet elke binaire instructie achtereenvolgens ophalen van de Intel-processor, deze programmatisch decoderen om te bepalen wat te doen, en vervolgens de equivalente subroutine uitvoeren die is geschreven in de Motorola-processorinstructies. Omdat de Motorola-processor bovendien niet precies dezelfde registers, vlaggen en interne rekenkundige logische eenheid heeft als Intel, moet hij ook al deze elementen simuleren (emuleren) met behulp van zijn registers of geheugen. De status van de geëmuleerde registers en vlaggen na de uitvoering van elke opdracht zou precies hetzelfde moeten zijn als in een echte Intel-processor. Dit is een eenvoudige, maar zeer trage bewerking, aangezien een enkele instructie van een Intel-processor aanzienlijk sneller wordt uitgevoerd dan de reeks instructies van een Motorola-processor die deze emuleert.

-3. 7. 2. Bibliotheken vertalen

De uitweg in dergelijke gevallen is het gebruik van de zogenaamde toegepaste softwareomgevingen. Een van de componenten die de applicatieprogrammeeromgeving vormen, is een set API-functies die het besturingssysteem aan zijn applicaties levert. Om de tijd die wordt besteed aan het uitvoeren van andermans programma's te verminderen, imiteren toepassingsomgevingen oproepen naar bibliotheekfuncties.

De effectiviteit van deze aanpak komt voort uit het feit dat de meeste programma's tegenwoordig draaien op grafische gebruikersinterfaces (GUI's) zoals Windows, Mac of UNIX Motif, waarbij applicaties het grootste deel van hun tijd besteden aan het doen van een zeer voorspelbare actie. Ze bellen voortdurend naar de GUI-bibliotheken voor venstermanipulatie en andere GUI-gerelateerde activiteiten. Tegenwoordig wordt in typische programma's 60-80% van de tijd besteed aan het uitvoeren van GUI-functies en andere OS-bibliotheekoproepen. Het is deze eigenschap van toepassingen die het voor toepassingsomgevingen mogelijk maakt om te compenseren voor de grote hoeveelheid tijd die wordt besteed aan het met één opdracht tegelijk emuleren van een programma. Een zorgvuldig ontworpen softwaretoepassingsomgeving bevat bibliotheken die interne GUI-bibliotheken nabootsen, maar zijn geschreven in "native" code, en dit versnelt de uitvoering van programma's met API's van een ander besturingssysteem aanzienlijk. Deze benadering wordt soms vertaling genoemd om het te onderscheiden van het langzamere proces van het emuleren van code één instructie tegelijk.

Voor een Windows-programma dat op een Macintosh wordt uitgevoerd, kan het interpreteren van opdrachten van een Intel 80x86-processor bijvoorbeeld erg traag zijn. Maar wanneer een GUI-functie voor het openen van een venster wordt aangeroepen, kan een OS-module die de Windows-toepassingsomgeving implementeert, deze oproep onderscheppen en omleiden naar de routine voor het openen van vensters die opnieuw is gecompileerd voor de Motorola 680x0-processor. Als gevolg hiervan kan de snelheid van het programma in dergelijke delen van de code de snelheid van het werk op zijn "native" processor bereiken (en mogelijk overtreffen).

Om een ​​programma dat voor het ene besturingssysteem is geschreven, te laten uitvoeren op een ander besturingssysteem, is het niet voldoende om alleen API-compatibiliteit te garanderen. De concepten achter verschillende besturingssystemen kunnen met elkaar conflicteren. In het ene besturingssysteem mag een toepassing bijvoorbeeld rechtstreeks I / O-apparaten besturen, in een ander zijn deze acties het voorrecht van het besturingssysteem. Elk besturingssysteem heeft zijn eigen mechanismen voor de bescherming van bronnen, zijn eigen algoritmen voor het afhandelen van fouten en uitzonderingen, een specifieke processtructuur en geheugenbeheerschema, zijn eigen semantiek voor bestandstoegang en een grafische gebruikersinterface. Om compatibiliteit te garanderen, is het noodzakelijk om binnen één besturingssysteem conflictvrije co-existentie van verschillende methoden voor het beheer van computerbronnen te organiseren.

-3. 7. 3. Methoden voor de implementatie van toegepaste softwareomgevingen

Het creëren van een volwaardige applicatieomgeving, volledig compatibel met de omgeving van een ander besturingssysteem, is een vrij complexe taak, die nauw verband houdt met de structuur van het besturingssysteem. Er zijn verschillende opties voor het bouwen van meerdere applicatieomgevingen, die zowel verschillen in de kenmerken van architecturale oplossingen als in functionaliteit die een verschillende mate van applicatieportabiliteit bieden.

In veel versies van UNIX OS is de applicatie-omgevingvertaler geïmplementeerd als een gewone applicatie. In besturingssystemen die zijn gebouwd met het microkernel-concept, zoals Windows NT, worden toepassingsomgevingen uitgevoerd als servers in gebruikersmodus. En in OS/2, met zijn eenvoudigere architectuur, zijn de tools voor het organiseren van applicatieomgevingen diep in het besturingssysteem ingebouwd.

Een van de meest voor de hand liggende opties voor het implementeren van meerdere applicatieomgevingen is gebaseerd op een standaard gelaagde OS-structuur. In afb. 3. 8 het besturingssysteem OS1 ondersteunt, naast zijn "native" toepassingen, toepassingen van het besturingssysteem OS2. Hiervoor bevat het een speciale applicatie - een applicatiesoftwareomgeving die de interface van het "vreemde" besturingssysteem - API OS2 vertaalt naar de interface van zijn "native" besturingssysteem - API OS1.

Rijst. 3. 8. Een applicatiesoftwareomgeving die uitzendt
systeemoproepen

In een andere implementatie van meerdere toepassingsomgevingen heeft het besturingssysteem meerdere peer-API's. In het voorbeeld getoond in Fig. 3. Het besturingssysteem ondersteunt bijvoorbeeld toepassingen die zijn geschreven voor OS1, OS2 en OS3. Om dit te doen, bevinden de applicatie-programmeerinterfaces van al deze besturingssystemen zich direct in de kernelruimte van het systeem: API OS1, API OS2 en API OS3.

Rijst. 3. 9. Implementatie van compatibiliteit op basis van verschillende
peer-API

In deze variant verwijzen functies op API-niveau naar OS-functies op een lager niveau die alle drie de algemeen incompatibele toepassingsomgevingen moeten ondersteunen. Verschillende besturingssystemen beheren de systeemtijd anders, gebruiken een ander tijdstip van de dag, delen de processortijd op basis van hun eigen algoritmen, enz. De functies van elke API worden geïmplementeerd door de kernel, waarbij rekening wordt gehouden met de specifieke kenmerken van het bijbehorende besturingssysteem, zelfs als ze een soortgelijk doel hebben.

Een andere manier om meerdere applicatieomgevingen te bouwen is gebaseerd op een microkernelbenadering. Tegelijkertijd is het erg belangrijk om de basismechanismen van het besturingssysteem die voor alle toepassingsomgevingen gelden, te scheiden van functies op hoog niveau die specifiek zijn voor elk van de toepassingsomgevingen die strategische problemen oplossen.

Volgens de microkernel-architectuur worden alle OS-functies geïmplementeerd door de microkernel- en gebruikersmodusservers. Het is belangrijk dat elke toepassingsomgeving is ontworpen als een afzonderlijke server voor gebruikersmodus en geen basismechanismen bevat (Fig. 3. 10). Applicaties die de API gebruiken maken systeemaanroepen naar de juiste applicatieomgeving via de microkernel. De applicatieomgeving verwerkt het verzoek, voert het uit (misschien met behulp van basismicrokernelfuncties voor hulp) en stuurt het resultaat terug naar de applicatie. Tijdens het uitvoeren van een verzoek moet de toepassingsomgeving op haar beurt toegang krijgen tot de basis OS-mechanismen die zijn geïmplementeerd door de microkernel en andere OS-servers.

Rijst. 3. 10. Microkernel-aanpak voor de implementatie van multiple
toegepaste omgevingen

Deze benadering van de constructie van meerdere applicatieomgevingen heeft alle voor- en nadelen van een microkernelarchitectuur, met name:

· Het is heel eenvoudig om applicatieomgevingen toe te voegen en uit te sluiten, wat een gevolg is van de goede uitbreidbaarheid van microkernel-besturingssystemen;

· Betrouwbaarheid en stabiliteit komen tot uiting in het feit dat als één van de applicatieomgevingen uitvalt, alle andere operationeel blijven;

· Lage prestaties van het microkernel-besturingssysteem hebben invloed op de snelheid van applicatie-omgevingen en daarmee op de snelheid van de uitvoering van applicaties.

Het creëren van verschillende toepassingsomgevingen binnen één besturingssysteem voor het uitvoeren van toepassingen van verschillende besturingssystemen is een manier waarmee u een enkele versie van het programma kunt hebben en deze kunt overbrengen tussen besturingssystemen. Meerdere toepassingsomgevingen bieden binaire compatibiliteit van een bepaald besturingssysteem met toepassingen die zijn geschreven voor andere besturingssystemen. Hierdoor hebben gebruikers meer keuzevrijheid voor besturingssystemen en gemakkelijker toegang tot kwaliteitssoftware.

Als de architecturale kenmerken van besturingssystemen alleen systeemprogrammeurs betreffen, is de compatibiliteit van besturingssystemen direct gerelateerd aan de behoeften van eindgebruikers.

Maak onderscheid tussen binaire compatibiliteit (waar toepassingen worden opgeslagen in het besturingssysteem) en broncompatibiliteit.

Binaire compatibiliteit wordt bereikt wanneer het mogelijk is om een ​​uitvoerbaar programma uit te voeren voor uitvoering in de omgeving van een ander besturingssysteem. Hiervoor moeten de besturingssystemen dezelfde API hebben.

Broncompatibiliteit vereist een geschikte compiler in de software van de computer waarop de applicatie zou moeten draaien. In dit geval is het noodzakelijk om de bestaande brontekst opnieuw te compileren in een nieuwe uitvoerbare module.

Voor de eindgebruiker is alleen binaire compatibiliteit van praktisch belang. Of een nieuw besturingssysteem binair compatibel is, hangt voornamelijk af van de architectuur van de processor waarop het nieuwe besturingssysteem draait. Het is moeilijker om binaire compatibiliteit te bereiken (dezelfde API implementeren) op processors met verschillende architecturen.

Een manier is om speciale programma's te gebruiken - emulators... De emulator moet achtereenvolgens elke binaire instructie selecteren die bedoeld is voor de geëmuleerde processor, deze programmatisch decoderen om te bepalen wat hij aan het doen is, en vervolgens de equivalente subroutine uitvoeren die in de instructies van de processor is geschreven.

Dit simuleert de registers, vlaggen en de interne rekenkundige logische eenheid van de geëmuleerde processor. Dit is eenvoudig, maar erg langzaam werk, aangezien de ene processorinstructie veel sneller wordt uitgevoerd dan de reeks instructies die het werk van deze processor op een andere processor emuleert.

Het is efficiënter om zo applicatiesoftware-omgevingen genoemd. Tegenwoordig wordt in typische programma's 60 ... 80% van de tijd besteed aan het uitvoeren van GUI-functies (grafische gebruikersinterface) en andere OS-bibliotheekoproepen.



Een zorgvuldig ontworpen softwaretoepassingsomgeving bevat bibliotheken die interne GUI-bibliotheken nabootsen, maar zijn geschreven in hun eigen "native" code.

Zo wordt een aanzienlijke versnelling van de uitvoering van programma's met de API van een ander besturingssysteem bereikt. Deze aanpak heet uitzending om het met één opdracht tegelijk te onderscheiden van het langzamere code-emulatieproces.

Afhankelijk van de OS-architectuur kunnen vertalers van applicatieomgevingen worden geïmplementeerd in de vorm van conventionele applicaties of als gebruikersmodusservers (in microkernel-architectuur).

In andere implementaties van meerdere applicatieomgevingen heeft de OS-kernel meerdere peer-applicatieprogrammeerinterfaces (API's), waarbij de functies van elke API worden geïmplementeerd door de kernel, rekening houdend met de specifieke kenmerken van het corresponderende besturingssysteem.

conclusies

1. Het besturingssysteem bemiddelt tussen de gebruiker (een toepassing die door de gebruiker is gestart) en de hardware, waardoor de gebruiker een handige interface krijgt en computersysteembronnen efficiënt worden verdeeld tussen verschillende toepassingen. De apparatuur kan niet alleen lokale computerfaciliteiten zijn, maar ook computernetwerkfaciliteiten. In het laatste geval wordt het besturingssysteem een ​​netwerkbesturingssysteem genoemd. Alle moderne besturingssystemen zijn genetwerkt.

2. Alle taken die door het besturingssysteem worden opgelost, worden uitgevoerd door zijn vier hoofdsubsystemen: een procesbesturingssubsysteem, een geheugenbeheersubsysteem, een bestands- en extern apparaatbeheersubsysteem, een gegevensbeschermings- en administratiesubsysteem.

3. Bij het bouwen van moderne besturingssystemen wordt een meerlagige benadering gebruikt in hun architectuur, waardoor de machine-afhankelijke OS-modules in een afzonderlijke laag kunnen worden gescheiden, terwijl de rest van de besturingssysteemmodules niet afhankelijk zijn van de kenmerken van de hardware platform. Bovendien maakt de meerlaagse benadering onafhankelijke ontwikkeling en modernisering van afzonderlijke lagen van het besturingssysteem mogelijk.

4. Besturingssystemen die zijn gebouwd op basis van een microkernel-architectuur zijn betrouwbaarder en uitbreidbaarder, maar minder efficiënt dan besturingssystemen die geen microkernel bevatten.

Zelftestvragen

1. Geef de definitie van het besturingssysteem.

2. Welke functies biedt het besturingssysteem voor de gebruiker?

3. Welke functies biedt het besturingssysteem voor de applicatieprogrammeur?

4. Welke taken lost het besturingssysteem op in relatie tot de hardware van het computersysteem?

5. Wat is API?

6. Wat is de essentie van multiprogrammeren?

7. Welke taken van het besturingssysteem hebben betrekking op het werk van het procesbesturingssubsysteem?

8. Welke taken van het besturingssysteem hebben betrekking op de werking van het geheugenbeheersubsysteem?

9. Welke taken van het besturingssysteem hebben betrekking op de werking van het subsysteem voor het beheren van bestanden en externe apparaten?

10. Welke taken van het besturingssysteem hebben betrekking op het werk van het subsysteem gegevensbescherming en administratie?

11. Geef een definitie van het begrip bestand en directory?

12. Geef de definitie van een netwerkbesturingssysteem

13. Welke besturingssystemen worden gedistribueerd genoemd?

14. Welke functionele componenten zijn opgenomen in het netwerkbesturingssysteem?

15. Wat wordt een netwerkdienst genoemd?

16. Hoe kunnen netwerkdiensten worden geïmplementeerd in een peer-to-peer netwerk?

17. Hoe worden netwerkdiensten geïmplementeerd in een netwerk met een dedicated server?

18. Wat is de essentie van de meerlaagse benadering bij het bouwen van een besturingssysteem?

19. Waarom heb je een bevoorrechte processormodus nodig?

20. Wat zijn de kenmerken van de werking van de kernel van het besturingssysteem?

21. Welke lagen worden gewoonlijk onderscheiden bij het bouwen van de kernel van het besturingssysteem? Hun doel?

22. Wat zijn de kenmerken van de werking van hulpmodules van het besturingssysteem?

23. Welke taken worden opgelost door middel van het ondersteuningsapparaat voor het besturingssysteem?

24. Wat zijn de kenmerken van het functioneren van resource managers in een besturingssysteem met een microkernel-architectuur?

25. Wat zijn de voor- en nadelen van de microkernel-architectuur van het besturingssysteem?

26. Wat is de compatibiliteit van het besturingssysteem?

27. Wat is de essentie van het emulatiemechanisme van het besturingssysteem?




1. Soorten compatibiliteit Specifieke architecturale en functionele kenmerken van elk besturingssysteem zouden alleen van toepassing moeten zijn op systeemprogrammeurs en zijn mogelijk helemaal niet bekend bij de gebruiker. Een besturingssysteemeigenschap die de mogelijkheid kenmerkt om toepassingen uit te voeren die voor andere besturingssystemen in het besturingssysteem zijn geschreven, wordt compatibiliteit genoemd.




Compatibiliteitstypen Toepassingen worden gewoonlijk op een computer opgeslagen als uitvoerbare bestanden die binaire afbeeldingen van code en gegevens bevatten. Binaire compatibiliteit wordt bereikt als u een uitvoerbaar programma dat in de ene OS-omgeving draait, kunt gebruiken in een andere OS-omgeving.


Soorten compatibiliteit Compatibiliteit op het niveau van ref. teksten vereist de beschikbaarheid van geschikte compilers als onderdeel van de pc-software waarop deze applicatie zou moeten worden gebruikt, evenals compatibiliteit op het niveau van bibliotheken en systeemaanroepen. In dit geval is het noodzakelijk om de broncodes van de programma's opnieuw te compileren in nieuwe uitvoerbare modules.




Soorten compatibiliteit Voor gebruikers is alleen binaire compatibiliteit van belang, omdat ze alleen in dit geval, zonder speciale vaardigheden en capaciteiten, het softwareproduct kunnen gebruiken dat wordt geleverd in de vorm van binaire uitvoerbare code in verschillende besturingsomgevingen en op verschillende computers.




Soorten compatibiliteit Om binaire compatibiliteit te bereiken, volstaat het om aan de volgende voorwaarden te voldoen: aanroepen van API-functies die toepassingen bevatten, moeten door dit besturingssysteem worden ondersteund; de interne structuur van het uitvoerbare bestand van de toepassing moet overeenkomen met de structuur van de uitvoerbare bestanden van het gegeven besturingssysteem. De belangrijkste hiervan is de architectuur van de processor waarop het besturingssysteem draait.


Soorten compatibiliteit Het is onvergelijkbaar moeilijker om binaire compatibiliteit te bereiken voor besturingssystemen die zijn ontworpen om te draaien op processors met verschillende architecturen. Naast het naleven van de bovenstaande voorwaarden, is het ook noodzakelijk om de emulatie van de binaire code te organiseren.




Soorten compatibiliteit Het doel van de emulator is om elke binaire instructie van een processor, bijvoorbeeld Intel, achtereenvolgens te selecteren, deze programmatisch te decoderen om te bepalen welke acties deze specificeert, en vervolgens een equivalente subroutine uit te voeren die is geschreven in processorinstructies, bijvoorbeeld Motorola.


Soorten compatibiliteit Er is echter een andere, veel effectievere uitweg uit de beschreven situatie: het gebruik van zogenaamde applicatiesoftwareomgevingen. Een van de componenten die de softwareomgeving vormen, is de reeks API-functies die het besturingssysteem voor zijn toepassingen biedt.




Soorten compatibiliteit De effectiviteit van deze aanpak wordt bepaald door het feit dat de meeste moderne programma's draaien onder grafische gebruikersinterfaces (GUI) zoals Windows, UNIX, terwijl applicaties in de regel het grootste deel van hun tijd besteden aan het uitvoeren van enkele goed voorspelbare acties


Soorten compatibiliteit Ze bellen voortdurend naar de GUI-bibliotheken voor venstermanipulatie en andere GUI-gerelateerde acties. Het is deze functie van applicaties waarmee applicatieomgevingen kunnen compenseren voor de grote hoeveelheid tijd die wordt besteed aan het emuleren van een programma, commando voor commando.


Soorten compatibiliteit Een zorgvuldig ontworpen softwareomgeving bevat bibliotheken die de interne GUI-bibliotheken nabootsen, maar zijn geschreven in de "native" code van het besturingssysteem. Zo wordt een aanzienlijke versnelling van de uitvoering van programma's met de API van een ander besturingssysteem bereikt.




Soorten compatibiliteit Als een programma dat voor het ene besturingssysteem is geschreven, moet worden uitgevoerd op een ander besturingssysteem, is het niet voldoende om alleen API-compatibiliteit te garanderen. Het kan voorkomen dat de concepten die ten grondslag liggen aan verschillende besturingssystemen met elkaar in botsing komen.


Soorten compatibiliteit In het ene besturingssysteem kan een toepassing bijvoorbeeld worden toegestaan ​​om I / O-apparaten rechtstreeks te besturen, terwijl in een ander besturingssysteem acties het voorrecht zijn van het besturingssysteem. Natuurlijk heeft elk besturingssysteem zijn eigen mechanismen voor de bescherming van bronnen, zijn eigen algoritmen voor het afhandelen van fouten en uitzonderingen, een speciale processtructuur en geheugenbeheerschema, zijn eigen semantiek voor bestandstoegang en een grafische gebruikersinterface.


Soorten compatibiliteit Al deze verschillen worden bepaald door de specifieke kenmerken van het hardwareplatform waarop het besturingssysteem draait, de kenmerken van de implementatie of de eigenschappen die door de ontwikkelaars van het systeem zijn vastgelegd als inherent aan dit systeem. Om compatibiliteit te garanderen, is het noodzakelijk om conflictvrije coëxistentie binnen één besturingssysteem op verschillende manieren te organiseren om computerbronnen te beheren


Manieren om compatibiliteit te implementeren De taak van de toepassingsomgeving is om het programma zo veel mogelijk uit te voeren alsof het op een "native" besturingssysteem draait. Maar de behoeften van deze programma's kunnen in strijd zijn met het ontwerp van een bepaald besturingssysteem. Gespecialiseerde apparaatstuurprogramma's voldoen niet altijd aan de beveiligingsvereisten en conflicten tussen geheugenbeheerschema's en venstersystemen zijn mogelijk.


Manieren om interoperabiliteit te implementeren Ook moet de applicatieomgeving programma's met een acceptabele snelheid uitvoeren. Aan deze eis kan niet worden voldaan door eerder algemeen gebruikte emulatiesystemen. Om de tijd die wordt besteed aan het uitvoeren van andermans programma's te verminderen, gebruiken applicatieomgevingen programma-imitatie op bibliotheekniveau.


Manieren om compatibiliteit te implementeren Ondanks het feit dat de implementatie in de praktijk van een volwaardige applicatieomgeving, volledig compatibel met de omgeving van een ander besturingssysteem, een zeer moeilijke taak is, zijn er verschillende typische benaderingen voor de oplossing ervan. Deze opties verschillen in architecturale kenmerken en functionaliteit die een verschillende mate van applicatieportabiliteit bieden.




Naast de "native" applicaties ondersteunt OS1 OS2- en NEO-applicaties. Om dit te doen zijn er applicatieprogrammeeromgevingen die de interfaces van de "buitenlandse" API OC2 en de NEO API vertalen naar de interface van hun "native" API OC1.


Manieren om compatibiliteit te implementeren Er is een manier om meerdere applicatieomgevingen te bouwen met behulp van het concept van een microkernelbenadering. Tegelijkertijd is het belangrijk om de standaard OS-mechanismen die voor alle toegepaste omgevingen gelden, te scheiden van functies op hoog niveau die specifiek zijn voor elk van de toegepaste omgevingen die strategische problemen oplossen.


Methoden voor het implementeren van compatibiliteit In overeenstemming met de microkernel-architectuur worden OS-functies geïmplementeerd door de microkernel- en gebruikersmodusservers. Belangrijk: elke toepassingsomgeving is ontworpen als een afzonderlijke server voor gebruikersmodus en bevat geen basismechanismen


Manieren om compatibiliteitstoepassingen te implementeren die de API gebruiken, voer systeemaanroepen uit naar de juiste toepassingsomgeving via de microkernel. De applicatieomgeving verwerkt het verzoek, voert het uit (wellicht met behulp van de basisfuncties van de microkernel hiervoor) en stuurt het resultaat naar de applicatie.


Manieren om compatibiliteit te implementeren Tijdens de uitvoering van een verzoek moet de toepassingsomgeving toegang hebben tot de basis OS-mechanismen die zijn geïmplementeerd door de microkernel en andere OS-servers. Alle voor- en nadelen van de microkernel-architectuur zijn inherent aan deze benadering van de constructie van meerdere applicaties, met name:


Manieren om interoperabiliteit te implementeren zijn zeer eenvoudig door applicatieomgevingen toe te voegen en uit te sluiten, wat een gevolg is van de goede uitbreidbaarheid van microkernel OS; betrouwbaarheid en stabiliteit: als een van de applicatieomgevingen uitvalt, blijven alle andere operationeel; lage prestaties van microkernel-besturingssystemen hebben een sterk effect op de snelheid van applicatie-omgevingen, en dus op de snelheid van de uitvoering van applicaties.


Methoden voor het implementeren van compatibiliteit Meerdere toepassingsomgevingen bieden binaire compatibiliteit van een bepaald besturingssysteem met toepassingen die zijn geschreven voor andere besturingssystemen. Als gevolg hiervan krijgen gebruikers meer vrijheid bij het kiezen van het besturingssysteem en gemakkelijker toegang tot kwaliteitssoftware.


Manieren om compatibiliteit te implementeren Conclusie API-compatibiliteit is niet voldoende om een ​​programma dat voor het ene besturingssysteem is geschreven, op een ander besturingssysteem te laten uitvoeren. Er is een native omgeving nodig: processtructuur, geheugenbeheer, afhandeling van fouten en uitzonderingen, mechanismen voor bronbescherming en semantiek voor bestandstoegang.




Systeemaanroepen vormen de interface tussen het besturingssysteem en het gebruikersprogramma. Ze maken, verwijderen en gebruiken verschillende objecten, waarvan de belangrijkste processen en bestanden zijn. Het gebruikersprogramma vraagt ​​een dienst van het besturingssysteem aan door een systeemaanroep te doen. Er zijn bibliotheken met procedures die machineregisters laden met bepaalde parameters en de processor onderbreken, waarna de controle wordt overgedragen aan de handler van deze oproep, die deel uitmaakt van de kernel van het besturingssysteem.


Een systeemaanroep zet de taak in de bevoorrechte of kernelmodus. Daarom worden systeemoproepen soms ook software-interrupts genoemd, in tegenstelling tot hardware-interrupts, die vaker eenvoudigweg interrupts worden genoemd. In de meeste besturingssystemen wordt een systeemaanroep gedaan door een programma-onderbreking (INT).


Een hardware-interrupt is een gebeurtenis die wordt gegenereerd door een apparaat buiten de processor. Door hardware-interrupts informeert de hardware de processor dat er een gebeurtenis heeft plaatsgevonden die een onmiddellijke reactie vereist (bijvoorbeeld, de gebruiker heeft een toets ingedrukt), of meldt de voltooiing van een asynchrone I/O-bewerking (bijvoorbeeld het lezen van gegevens van schijf naar het hoofdgeheugen is voltooid).


Een belangrijk type hardware interrupts - timerinterrupts die periodiek worden gegenereerd met een vast tijdsinterval. Timer-interrupts worden door het besturingssysteem gebruikt bij het plannen van processen. Elk type hardware-interrupt heeft zijn eigen nummer dat de bron van de interrupt uniek identificeert.




Uitzondering - een gebeurtenis die optreedt als gevolg van een poging van het programma om een ​​opdracht uit te voeren die om de een of andere reden niet kan worden voltooid. Voorbeelden van dergelijke opdrachten zijn onder meer proberen toegang te krijgen tot een bron zonder voldoende privileges of toegang krijgen tot een ontbrekende pagina met geheugen.




Corrigeerbaar zijn zulke uitzonderlijke situaties als het ontbreken van de benodigde informatie in het RAM. Nadat de oorzaak van de corrigeerbare uitzondering is weggenomen, kan het programma verder worden uitgevoerd. Corrigeerbare uitzonderlijke situaties die optreden tijdens het gebruik van het besturingssysteem worden als de norm beschouwd.






De hoofdtaak van het bestandssysteem (FS) is om de functies van I / O te verbergen en de programmeur een eenvoudig abstract model van bestanden te geven, onafhankelijk van apparaten. Voor het lezen, aanmaken, verwijderen, schrijven, openen en sluiten van bestanden is er een uitgebreide categorie systeemaanroepen (creëren, verwijderen, openen, sluiten, lezen, etc.).



Soorten besturingssystemen

Voor elk computermodel worden individuele besturingssystemen ontwikkeld. Bovendien zijn er voor hetzelfde model in de regel verschillende besturingssystemen met verschillende afspraak en anders kansen en eigenschappen. Er zijn dus besturingssystemen die de gelijktijdige uitvoering van verschillende programma's kunnen beheren - multi-programma- of slechts één - enkel programma besturingssysteem. Er zijn systemen die er maar één kunnen dienen - een gebruiker- of meerdere mensen tegelijk - multiplayer besturingssysteem. Om de werking van lokale en wereldwijde netwerken te verzekeren, ontwikkeld netwerk besturingssysteem.

Er zijn verschillende families van besturingssystemen ontwikkeld voor IBM-compatibele personal computers: MS DOS, Windows, OS/2, Unix en enkele andere. Het eenvoudigste besturingssysteem wordt overwogen: een gebruiker en enkel programma besturingssysteem MS DOS. Windows-, OS/2- en Unix-systemen zijn complexer vanwege hun multiprogrammering en de netwerkmogelijkheden die ze bevatten. De eerste versie van het MS DOS-besturingssysteem werd ontwikkeld in 1981-1982. Zoals eerder opgemerkt, is er in de loop van het bestaan ​​van MS DOS een groot aantal versies en modificaties van dit systeem ontwikkeld. De nieuwste versie was MS DOS-versie 6.22. Vervolgens werd het beduidend krachtiger en gebruiksvriendelijker Windows-besturingssysteem ontwikkeld, waarvoor op het moment van schrijven versies van Windows 95, Windows 98 en Windows ME werden uitgebracht. Voor de gespecificeerde versies van besturingssystemen wordt vaak één algemene aanduiding gebruikt Windows 9.x... Windows krijgt een naam en netwerk besturingssystemen Windows NT en Windows 2000, Windows XP. Merk op dat MS DOS als het ware "geabsorbeerd" bleek te zijn, opgenomen in de Windows 9.x-besturingssystemen.

Gebruikersomgeving

De interactie tussen de gebruiker en het besturingssysteem verloopt altijd volgens speciale regels, op een manier die kenmerkend is voor elk besturingssysteem. Deze regels vormen gebruikersomgeving, wat een speciaal geval is van het hierboven besproken algemene concept van interface.

AANDACHT

De set standaardovereenkomsten, tools, methoden en regels voor gebruikersinteractie met een bepaald softwaresysteem wordt de gebruikersinterface (of gebruikersinterface) van het systeem genoemd.

Er zijn de volgende soorten gebruikersinterfaces voor besturingssystemen: tekst, tabel en grafisch koppel. Laten we eens kijken naar de belangrijkste kenmerken van de testgebruikersinterface die wordt gebruikt in het MS DOS-besturingssysteem. De interactie tussen de gebruiker en het besturingssysteem vindt plaats in de vorm dialoog. Dit betekent dat het besturingssysteem, na het laden, een signaal geeft over zijn gereedheid om instructies, gebruikerscommando's, te ontvangen. In het MS DOS-besturingssysteem wordt dit signaal weergegeven op het beeldscherm. een invoerprompt. Meestal is de prompt een> teken, links van welke misschien bij sommige diensten wordt aanvullende informatie weergegeven, bijvoorbeeld de naam van een schijfapparaat, de huidige tijd, de huidige datum en enkele andere gegevens. Dus in de uitnodiging

07-04-02 C: \>

laat zien dat de huidige datum 7 april 2002 is en dat het huidige schijfapparaat C : is. Om de uitvoering van een functie van het besturingssysteem aan te vragen, moet de gebruiker het toetsenbord invoeren rechts van symbool> indicatie, opdracht besturingssysteem. De opdracht van het besturingssysteem is geschreven volgens speciale regels tekst, na verwerking die het besturingssysteem "begrijpt" wat de gebruiker er precies van verlangt, en de door de gebruiker gevraagde actie uitvoert.

AANDACHT

Een besturingssysteemopdracht is een tekst die is geschreven volgens speciale regels en die een instructie is voor het besturingssysteem om een ​​van zijn functies uit te voeren.

U kunt bijvoorbeeld de versie van het besturingssysteem dat op de computer is geïnstalleerd, achterhalen met de volgende opdracht:

07-04-02 C: \> ver

Ter herinnering: de opdracht staat rechts van het uitnodigingsbord>. In dit geval is dat het woord "ver" (van versie - versie). Als het besturingssysteem MS DOS versie 6.22 op de machine is geïnstalleerd, zal het uitvoeren van deze opdracht het antwoord weergeven:

MS DOS-versie 6.22

Het uitvoeren van een commando van het besturingssysteem komt eigenlijk neer op de uitvoering van een programma, dat een integraal onderdeel is van het besturingssysteem, of op een oproep vanaf de systeemschijf en de daaropvolgende uitvoering van een extra programma. Dergelijke aanvullende programma's die niet direct deel uitmaken van het besturingssysteem worden meestal Gereedschap(nut - nuttig, praktisch). Gewoonlijk voeren hulpprogramma's enkele servicefuncties uit, zoals het controleren van de kwaliteit van de werkoppervlakken van magnetische schijven. De afwezigheid van een hulpprogramma op de systeemschijf als geheel doet geen afbreuk aan de bruikbaarheid van het besturingssysteem. In dit geval is de bijbehorende functie niet beschikbaar voor uitvoering. Maar de afwezigheid van een onderdeel van het besturingssysteem haalt het hele systeem uit de werkende staat.

Als het besturingssysteem tijdens het uitvoeren van de opdracht aanvullende informatie nodig heeft, zal het een vraag stellen waarop de gebruiker moet antwoorden. Ook deze vraag en antwoord worden opgesteld in de vorm van teksten met een vooraf afgesproken vorm en inhoud. Als tijdens het uitvoeren van de opdracht een niet-standaard situatie wordt aangetroffen, zal het besturingssysteem een ​​informatief of diagnostisch bericht genereren en weergeven dat de huidige situatie beschrijft. Ze zal u ook vertellen over mogelijke verdere acties van de gebruiker.

Na succesvolle of niet-succesvolle voltooiing van de opdracht, geeft het besturingssysteem de prompt opnieuw weer en wacht het op de volgende gebruikersopdracht. Zo vindt de dialoog tussen de gebruiker en het besturingssysteem plaats in de vorm van een uitwisseling van tekstzinnen. Daarom wordt een dergelijke interface een tekstinterface genoemd. Omdat de MS DOS-prompt samen met het gebruikerscommando gewoonlijk één regel op het weergavescherm in beslag neemt, werd deze regel genoemd: opdrachtregel, en de tekstinterface heeft een andere naam gekregen - opdrachtregelinterface. Merk op dat het populaire Unix-netwerkbesturingssysteem ook een opdrachtregelinterface gebruikt.

De praktijk van het werken met het MS DOS-besturingssysteem toonde al snel aan dat voor de meeste gebruikers de tekstinterface gecompliceerd en onhandig is, omdat de gebruiker de regels moet onthouden voor het schrijven van een voldoende groot aantal commando's die nodig zijn voor de operatie. Bovendien moet u vanaf het toetsenbord vrij lange reeksen tekens invoeren waaruit de opdracht bestaat, en als u een fout maakt tijdens het invoeren (wat vrij vaak gebeurde), moet u de opdrachten opnieuw invoeren. Daarom begonnen ze allerlei hulpprogramma's te ontwikkelen die een gebruiksvriendelijkere manier van interactie met het besturingssysteem moesten bieden. Dergelijke programma's worden schelpen. wezen zijn bovenbouw over het besturingssysteem veranderen shells de stijl en regels van interactie tussen de gebruiker en het besturingssysteem, terwijl ze toegang bieden tot de kernmogelijkheden.



AANDACHT

Een shell is een hulpprogramma dat een gebruiksvriendelijkere manier biedt om met het besturingssysteem te communiceren.

We benadrukken nogmaals dat de schelpen zijn geen onafhankelijke programma's, ze kunnen alleen functioneren in combinatie met het besturingssysteem waarvoor ze zijn ontworpen. Er zijn verschillende shells ontwikkeld voor MS DOS - Qdos, Dos Shell, Norton Commander, Volkov Commander, Windows 3.x, waaronder de meest populaire shells Norton Commander (afgekort - NC), Volkov Commander (VC) en Windows 3. x. Verschillende shells gebruiken een andere gebruikersinterface. Dus, Norton Commander en Volkov Commander shells gebruiken tabelvorm interface, waarvan het onderscheidende kenmerk is: indicatie of keuze commando of zijn elementen in afgewerkte tafel, in plaats van opdrachttekst in te voeren. De functies van de gebruikersinterface in tabelvorm worden in meer detail besproken in het zevende hoofdstuk van deze tutorial, dat is gewijd aan het verkennen van de Norton Commander-shell. De shells van de Windows 3.x-familie, waaronder Windows 3.0, Windows 3.10, Windows 3.11, zijn anders grafische interface. Een kenmerk van deze interface is het brede gebruik van voorwaardelijke, gemakkelijk te onthouden pictogrammen, toegewezen aan bepaalde acties, programma's, apparaten, enz. De gebruiker hoeft alleen maar op een bepaalde manier naar het gewenste pictogram te wijzen en het besturingssysteem voert de bijbehorende actie uit. De grafische interface bleek zo succesvol dat het de belangrijkste werd voor besturingssystemen de Windows 9.x-familie, die het MS DOS-besturingssysteem en zijn shells Windows 3.x verving.

AANDACHT

Windows 3.x is een familie van shells voor het MS DOS-besturingssysteem en Windows 9.x is een familie van zelfstandige besturingssystemen. De grafische gebruikersinterface wordt in meer detail besproken in het hoofdstuk van de tutorial, dat is gewijd aan de studie van de interface van het Windows-besturingssysteem.

Bestand

Een van de belangrijkste functies van elk besturingssysteem is het opslaan en ophalen van informatie op externe opslagapparaten. We herinneren je eraan dat externe opslagapparaten een soort van informatie magazijnen, waar programma's en gegevens lange tijd worden opgeslagen, totdat ze nodig zijn om een ​​probleem op te lossen. Stel je nu voor dat goederen in een magazijn worden opgeslagen zonder enig systeem. Hoe groter het magazijn, hoe moeilijker het is om het juiste product te vinden. Of neem bijvoorbeeld een kast waarin verschillende documenten, boeken, rapporten, certificaten, enz. worden bewaard. Bij gebrek aan een specifieke opslagorganisatie kan het vinden van de benodigde documenten, vooral als het aantal aanzienlijk is, erg moeilijk en tijdrovend zijn. consumerende taak. Dus voor het opslaan van informatie, maar ook voor het opslaan van goederen, is een bepaalde systeem, opslagorganisatie, een snelle en betrouwbare manier om de gewenste programma's en gegevens te vinden.

Om betrouwbare opslag en ophalen van informatie op externe opslagapparaten te garanderen programma's en gegevens in besturingssystemen zijn georganiseerd in bestanden(om te archiveren - te registreren, documenten in een bepaalde volgorde op te slaan).

AANDACHT

Een bestand is een benoemde verzameling gegevens die een bepaalde interne organisatie, algemeen doel heeft en een bepaald gebied van een extern opslagmedium in beslag neemt.

U kunt een bestand op een extern opslagapparaat zien als: document in een aktetas, in een bureaula, in een archiefkast, en het apparaat zelf is als een hele aktetas, lade, kast. Houd er rekening mee dat documenten alle gegevens of plannen (programma's) kunnen bevatten voor het uitvoeren van acties.

Uit de bovenstaande definitie volgt dat het bestand heeft gegeven naam en neemt een zekere plaats op een extern opslagmedium, bijvoorbeeld specifieke sectoren en tracks op een van de schijfapparaten. Ter versterking van de eerder ontwikkelde analogie, merken we op dat documenten namen hebben en in aanwezigheid van een bepaald systeem wordt aan elk document een specifieke opslaglocatie toegewezen, waardoor we een analogie kunnen trekken tussen een bestand en een afzonderlijk document.

AANDACHT

Een bestand is dus ofwel een document of een elektronisch programma dat is opgeslagen op een van de externe apparaten - een magnetische of optische schijf, magneetband, enz.

Het bestand kan bevatten: een programma in machinecodes, een tekst van een programma in een algoritmische taal, een tekst van een document, een rapport, een loonlijst, een artikel, numerieke gegevens, een opname van een menselijke spraak of een muzikale melodie, een tekening, een illustratie, een tekening, een foto, een videofilm, enz.

Bestandsacties

De volgende basishandelingen kunnen op bestanden worden uitgevoerd: maken, openen, sluiten, wijzigen (bewerken), kopiëren, verplaatsen, hernoemen en verwoesting.

§ creatie bestand wordt uitgevoerd in opdracht van de gebruiker of automatisch, door middel van verschillende softwaresystemen, zoals besturingssystemen, shells, programmeertoolsystemen, enz. Er wordt een naam toegekend aan het gemaakte bestand, er wordt ruimte aan toegewezen op schijfmedia , en het is op een bepaalde manier in het besturingssysteem geregistreerd ... Het nieuw gemaakte bestand kan worden gevuld met alle informatie. In sommige situaties, leeg bestanden, dat wil zeggen bestanden die geen gegevens bevatten, maar helemaal klaar zijn om ze te ontvangen. Het maken van een bestand kan figuurlijk worden gezien als het voorbereiden van een document en het toewijzen van een geschikte opslaglocatie ervoor. En het maken van een leeg bestand is vergelijkbaar met het kiezen van een naam voor een document en het bepalen van een plaats om het op te slaan. In dit geval wordt de vorming van de inhoud van het document enige tijd uitgesteld.

§ Opening bestand betekent het bestand voorbereiden om met elk softwaresysteem te werken. Het voorbereidingsproces omvat in het bijzonder het zoeken naar een bestand op schijfmedia en het voorbereiden van verschillende hulptabellen, met behulp waarvan informatie in het bestand wordt ingevoerd of daaruit wordt geselecteerd. Een bestand wordt in de regel automatisch geopend door het softwaresysteem waarmee ermee wordt gewerkt. Het openen van een bestand kan worden gezien als het zoeken naar het gewenste document in de kast en het overbrengen naar het bureaublad om het document te lezen of er wijzigingen in aan te brengen.

§ Sluitend bestand betekent dat de verbinding tussen het bestand en het softwaresysteem wordt verbroken en de huidige status wordt opgeslagen. Het sluiten van een bestand, zoals het openen ervan, wordt uitgevoerd door het softwaresysteem op speciale instructies van de gebruiker, of automatisch. Het sluiten van een bestand is vergelijkbaar met het terugzetten van een gewijzigd document naar zijn permanente locatie. Als u een document op uw bureaublad achterlaat, kan het per ongeluk worden beschadigd of vernietigd en gaan alle wijzigingen die erin worden aangebracht verloren.

§ Wijziging een bestand wordt geacht wijzigingen aan te brengen in de gegevens die de inhoud vormen. Wijzigingen die worden aangebracht in bestanden die tekst bevatten, worden gewoonlijk bewerken het dossier.

§ Kopiëren bestand betekent dat een exacte kopie van het originele bestand wordt gemaakt op hetzelfde of op een ander extern apparaat of opslagmedium. Tegelijkertijd blijft het origineel op zijn oude plaats, en dus blijkt het op externe apparaten twee volledig identieke kopieën van het originele bestand. Het kopiëren van een bestand kan worden gezien als het maken van een kopie van een document en het op een andere locatie opslaan, zoals een andere kast. Dit kan bijvoorbeeld worden gedaan om ervoor te zorgen dat het document veilig wordt opgeslagen of voor een ander doel.

§ In beweging bestand betekent dat na het kopiëren van het bestand naar een andere locatie, het origineel wordt vernietigd, waardoor maar een een kopie ervan. Het verplaatsen van een bestand kan worden gezien als het verplaatsen van een document van de ene opslaglocatie naar een andere, zoals een andere kast.

§ Hernoemen bestand betekent het toewijzen van een nieuwe naam aan het bestand, terwijl de oude naam onherstelbaar verloren gaat.

§ Verwoesting(verwijdering) van een bestand moet worden uitgevoerd in gevallen waarin verouderde informatie die in bestanden is opgeslagen een extern medium vervuilt en de mogelijkheid om nieuwe nuttige informatie naar dit medium te schrijven verloren gaat. In besturingssystemen wordt het verwijderen zo uitgevoerd dat het in veel gevallen mogelijk is om een ​​per ongeluk verwijderd bestand te herstellen. Je kunt je voorstellen dat een document dat in de toekomst niet meer nodig is, in de prullenbak wordt gegooid. Als een belangrijk document per ongeluk is weggegooid, kan dit document, na grondig in de mand te hebben gerommeld, worden gevonden en ermee doorgaan. Natuurlijk, als de inhoud van de mand niet volledig is vernietigd.

Bestandskenmerken

Elk bestand heeft een aantal karakteristieke eigenschappen - attributen. De belangrijkste bestandskenmerken zijn: naam, extensie, lengte, tijd en datum van aanmaak.

Bestandsnaam.Naam, of de naam van een bestand, net als de naam van een persoon, de naam van een document, een boek, dient om het ene bestand van het andere te kunnen onderscheiden, om naar het gewenste bestand te verwijzen. In verschillende besturingssystemen worden bestandsnamen gevormd volgens verschillende regels. In het MS DOS-besturingssysteem is de bestandsnaam bijvoorbeeld een reeks letters Latijns alfabet, cijfers en enkele speciale tekens (~, _, -, $, &, @,%, ^,!, (.), (.), #, ","). Titel kan bevatten van één tot acht tekens en wordt willekeurig gekozen. Het is echter raadzaam om de namen van de bestanden te kiezen, zodat de gebruiker gemakkelijk kan onthouden wat er precies in dit bestand is opgeslagen. Een bestand met een rapport voor het 4e kwartaal kan bijvoorbeeld otchet4 worden genoemd, een bestand met een loonlijst - vedzarpl en een bestand met een afbeelding kan afbeelding worden genoemd. Opmerking! In het MS DOS-besturingssysteem is de bestandsnaam mag geen spaties, letters van het Russische alfabet en punten bevatten. Bovendien mag het niet meer dan acht tekens bevatten. Over het algemeen zijn dit vrij belangrijke beperkingen. Een bestand met bijvoorbeeld een ondernemingsrapport voor het 4e kwartaal, dat we otchet4 noemden, zou bij voorkeur "Rapport voor het 4e kwartaal" worden genoemd, in extreme gevallen "Otchet za 4 kvartal", waarbij de zogenaamde transliteratie wanneer woorden van de ene taal worden geschreven met de letters van een andere. In de besturingssystemen Unix en Windows 9.x zijn beperkingen op de lengte van de naam, het gebruik van spaties en punten in de naam verwijderd. En in het besturingssysteem Windows 9.x kunnen bovendien Russische letters in de naam worden gebruikt. Zo kan een bestand in Unix de naam "Otchet za 4 kvartal" hebben, en in Windows 9.x is de naam "Rapport voor het 4e kwartaal" toegestaan.

Bestandsextensie. Naast de naam, elk bestand zou kunnen hebben of geen extensie hebben. De extensie wordt gebruikt om de inhoud van een bestand op een bepaalde manier te karakteriseren. De extensies doc en txt geven bijvoorbeeld aan dat het bestand een soort document of tekst bevat, en de extensie bmp heeft een bestand dat een bitmapafbeelding bevat. De eventuele extensie wordt door een punt gescheiden van de bestandsnaam. Op MS DOS kan een extensie één tot drie tekens bevatten, bijvoorbeeld otchet4.doc, vedzarpl.txt, picture.bmp, terwijl op Unix- en Windows 9.x-systemen meer dan drie tekens zijn toegestaan. Als er geen extensie is, dan wordt de punt niet in de bestandsnaam gezet. De naam samen met de extensie heet voor-en achternaam het dossier.

Als een bestand is gemaakt met een softwaresysteem, krijgt het in de regel automatisch de standaardextensie voor dit systeem en hoeft de gebruiker alleen de naam te selecteren of op te geven. Vervolgens herkent het softwaresysteem "zijn" bestanden door standaardextensies. Besturingssystemen bieden een verscheidenheid aan standaardextensies. Tabel 6.1 geeft een overzicht van enkele veelvoorkomende MS DOS- en Windows 9.x-extensies.

Tabel 6. 1. Sommige MS DOS- en Windows 9.x-extensies

Bestanden met de extensie .com (algemeen) en . exe (uitvoeren) bevatten programma's in machinetaal. Deze bestanden worden vaak programma bestanden. Verschil tussen .com- bestanden en . ex e-bestanden hebben betrekking op hun interne organisatie. Deze verschillen hebben geen invloed op de manier waarop we met bestanden omgaan. Bestanden met de extensie .bat (batch) bevatten willekeurige reeksen besturingssysteemopdrachten. Dergelijke bestanden worden meestal batch-bestanden. Gebruikt in tafel. 6.1 termijn "Uitvoerbaar bestand" combineert de concepten van "programmabestand" en "batchbestand". Met andere woorden, "uitvoerbaar bestand" betekent dat het bestand ofwel een machinetaalprogramma bevat dat rechtstreeks door de computerprocessor kan worden uitgevoerd (bestanden met de extensies .exe en .com), ofwel een reeks besturingssysteemopdrachten (bestand met de extensie .bat), die ook worden uitgevoerd, maar alleen door te verwijzen naar de juiste programma's en tools van het besturingssysteem.

Wanneer u wijzigingen aanbrengt in het bestand, is het raadzaam om de vorige versie van het bestand op te slaan, zodat u, indien nodig, de aangebrachte wijzigingen kunt annuleren en terug kunt keren naar de oorspronkelijke versie. Daarom zijn veel softwaresystemen na het aanbrengen van wijzigingen in het bestand automatisch formulier Reserve het bestand dat de originele versie van de inhoud van het bestand bevat. Het back-upbestand heeft dezelfde naam als het originele bestand, maar alle extensies zijn vervangen door de standaard .bak-extensie voor back-upbestanden (back-back, back). Als er bijvoorbeeld wijzigingen zijn aangebracht in het bestand otchet4.doc, dan heeft de meest recente versie van het bestand dezelfde naam otchet4.doc en wordt er automatisch een back-up otchet4.bak-bestand gemaakt waarin de oude versie van het bestand inhoud wordt opgeslagen. Onderweg merken we op dat als er wijzigingen worden aangebracht in een groot aantal bestanden, er zich geleidelijk veel back-upbestanden op de schijf ophopen, dus van tijd tot tijd moet u de schijf "opschonen" - kapot maken niet langer benodigde of verouderde back-upbestanden.

In een aantal gevallen wordt softwaredocumentatie niet op papier aan de koper geleverd, maar in de vorm van tekstbestanden op schijfmedia. Meestal krijgen dergelijke bestanden de extensie .doc (documet) toegewezen. Bovendien geven sommige teksteditors automatisch "hun" bestanden (dat wil zeggen bestanden die met hun hulp zijn voorbereid) dezelfde .doc-extensie. De .txt-extensie (tekst - tekst) is een andere veel voorkomende variant van extensies die zijn gekoppeld aan bestanden die verschillende teksten bevatten. En voor bestanden met numerieke gegevens is het handig om de extensie.dat (data - data) op te geven.

Zoals eerder vermeld, hebben programma's vaak ingebouwde helpsystemen die toegankelijk zijn terwijl het programma draait. Een dergelijk systeem bevat in de regel alle benodigde helpinformatie in "help"-bestanden met de extensie .hip (help - help).

Om een ​​andere belangrijke functie van het besturingssysteem te bieden - het uitvoeren van bewerkingen op de uitwisseling van gegevens tussen het programma en verschillende externe apparaten - bevat het systeem een ​​aantal programma's die gespecialiseerd zijn voor het beheren van specifieke externe apparaten, die gewoonlijk worden genoemd chauffeurs(rijden - beheren). Drivers worden geleverd met een set programma's en besturingssysteembestanden of met het apparaat dat ze besturen. De afwezigheid of het gebruik van een stuurprogramma dat niet bij het apparaat past, maakt het nutteloos. Daarom is het bij het kopen van een extern apparaat noodzakelijk om aandacht te besteden aan de aanwezigheid van een stuurprogramma - een programma om dit apparaat te bedienen. De meest gebruikte stuurprogramma's zijn toetsenbord, beeldscherm, printer, muis, enz. Bestanden met stuurprogramma's hebben de extensie .exe of .sys (systeem).

Soms moeten softwaresystemen tussentijdse, werkende informatie op schijfapparaten opslaan. Hiervoor worden speciale bestanden gegenereerd, die vaak de extensie .tmp (tijdelijk) krijgen. In de regel worden tijdelijke bestanden automatisch vernietigd nadat het programma is beëindigd. Maar er zijn situaties waarin dergelijke bestanden nog steeds op de schijf blijven staan, en dan kunnen ze gemakkelijk worden geïdentificeerd door de opgegeven extensie en, indien nodig, worden vernietigd.

Verschillende grafische editors kennen ook bepaalde extensies toe aan bestanden die met hun hulp zijn voorbereid. Een dergelijke extensie is de .bmp (bitmap) extensie.

Bestand lengte. Het volgende belangrijke kenmerk van het bestand is zijn lengte. De bestandslengte is gelijk aan de grootte van de schijf of het bandgebied dat door het bestand wordt ingenomen en wordt daarom gemeten in bytes. De waarde van dit attribuut wordt gebruikt om de mogelijkheid te bepalen om een ​​bestand op een vrij gebied van schijfmedia te plaatsen en voor enkele andere doeleinden.

De tijd en datum waarop het bestand is gemaakt. Wanneer het bestand voor het eerst naar de schijf wordt geschreven, en ook wanneer er wijzigingen in het bestand worden aangebracht met behulp van de systeemklok (een speciaal programma in het besturingssysteem), worden de tijd en datum van het schrijven van het bestand naar het schijfapparaat automatisch geregistreerd. Wanneer de computer is uitgeschakeld, wordt de systeemklok bijgehouden door speciale batterijen of andere stroombronnen. Daarom houdt de systeemklok de tijd vrij nauwkeurig bij. Datum- en tijdkenmerken worden gebruikt om de meest recente versies van een bestand te identificeren.

Naast de beschouwde basisbestandskenmerken in het MS DOS-besturingssysteem, hebben bestanden nog vier kenmerken: alleen-lezen, systeem, verborgen en archief. Elk van deze attributen heeft precies twee toestanden: het attribuut is ingeschakeld of het attribuut is uitgeschakeld.

Een attribuut opnemen alleen om te lezen(soms een attribuut genoemd) toegangscontrole) betekent dat het bestand niet beschikbaar is om er wijzigingen in aan te brengen. Het maakt het ook moeilijker om zo'n bestand te vernietigen. Na het uitschakelen van het attribuut alleen om te lezen het bestand is beschikbaar voor alle bewerkingen.

Attribuut systemisch meestal alleen opgenomen in de kernbestanden van het besturingssysteem. Alle andere bestanden hebben het kenmerk systemisch, meestal uit.

Attribuut verborgen is opgenomen voor die bestanden die bij het bekijken van de lijst met bestanden op het schijfapparaat niet in deze lijst zijn opgenomen door de opdracht van het besturingssysteem. De rest van de bestanden hebben een uitgeschakelde attribuutwaarde verborgen.

Om de betrouwbaarheid van de informatieopslag op schijfapparaten te garanderen, moet u een of twee kopieën hebben van bestanden die belangrijke informatie bevatten. Hiervoor organiseren ze archief bestanden. Bij het schrijven van een bestand naar een archief, wordt het attribuut archief gaat aan. Dit betekent dat er een kopie van de laatste versie van het bestand in het archief zit. Als u wijzigingen aanbrengt in een dergelijk bestand, wordt het attribuut archief schakelt uit. Dit betekent dat het archief een verouderde versie van het bestand bevat (of het bestand is helemaal niet gearchiveerd). Speciale archiveringsprogramma's, die de waarde van een attribuut volgen archief, kan in het archief alleen die bestanden bijwerken waarin wijzigingen zijn aangebracht. Hiermee kunt u het werk van archivers optimaliseren.

Elk van de beschouwde attributen wordt gespecificeerd door één bit. Deze bits, samen met wat aanvullende informatie, vormen bytes aan attributen.

De groepsnaam van de bestanden. Bij het uitvoeren van bewerkingen met bestanden doen zich soms situaties voor waarin dezelfde actie moet worden uitgevoerd met een hele groep bestanden. U moet bijvoorbeeld verschillende bestanden herschrijven (kopiëren) van de C:-schijf naar de A:-schijf om deze bestanden later naar een andere machine over te brengen. Of, laten we zeggen, je wilt vernietigen allemaal verouderde back-upbestanden om ruimte op het schijfapparaat vrij te maken voor het opnemen van nuttige informatie. Dergelijke acties kunnen natuurlijk opeenvolgend worden uitgevoerd, waarbij voor elk bestand in de groep dezelfde gewenste actie wordt gespecificeerd. Deze aanpak kan echter zeer tijdrovend en moeilijk zijn, vooral als de groep uit een groot aantal bestanden bestaat.

Het MS DOS-besturingssysteem biedt een methode die collectieve acties met bestanden vereenvoudigt. De actie die moet worden uitgevoerd op een groep bestanden wordt slechts één keer gespecificeerd, maar de actie gaat niet vergezeld van de volledige naam van een enkel bestand, maar een speciale naam waarmee het besturingssysteem markeren, identificeren alle bestanden in de groep en voer vervolgens de gewenste actie op hen uit. Deze naam wordt genoemd groepsnaam, patroon of masker.

De communitynaam wordt gevormd met de tekens * en?. Het *-teken in een groepsnaam wordt door het besturingssysteem geïnterpreteerd als "elke reeks tekens in de naam". Dat wil zeggen, dit symbool komt overeen met een willekeurig aantal symbolen in de naam. Dus alle namen die beginnen met de letter "a" komen overeen met de groepsnaam a *: a1, azbuka, a2z4. Symbool? OS wordt gezien als een enkel teken, dat wil zeggen dat precies één willekeurig teken van de naam ermee overeenkomt. De sjabloon otchet7.doc matcht bijvoorbeeld alle namen met de extensie .doc, in de naam waarvan precies één teken het otchet-naamsegment volgt, bijvoorbeeld otchet1.doc, otchet4.doc, otchet% .doc, otchet * . doc, enz. Overweeg nog enkele voorbeelden:

§ ??. Txt - bestanden met namen van twee letters en de extensie .txt;

§ * .bak - bestanden met alle namen en extensie .bak;

§ progl.* - bestanden met de naam progl en eventuele extensie;

§ *.* - bestanden met alle namen en extensies.

Catalogus

Om de inhoud van een bestand te lezen, moet u de locatie op het schijfapparaat weten. Elk bestand neemt een bepaalde groep sectoren op de schijf in beslag. Daarom kan de locatie van het bestand worden gespecificeerd door de sector- en tracknummers op te geven die door het bestand worden ingenomen. Deze methode om de locatie van het bestand op te geven is echter erg onhandig, aangezien de gebruiker in dit geval de nummers moet kennen van alle sectoren van de schijf die aan het bestand zijn toegewezen. Zoals eerder bleek, worden om de efficiëntie van gegevensuitwisseling te vergroten, meerdere opeenvolgende sectoren samengevoegd tot een cluster en wordt de uitwisseling in één keer uitgevoerd door de hele groep sectoren. Een dergelijk uitwisselingsorganisatieschema verhoogt de snelheid van gegevensuitwisselingsoperaties met harde schijven aanzienlijk. Om bovendien niet drie afzonderlijke nummers (het nummer van het werkoppervlak, het nummer van het spoor en het nummer van de sector) te specificeren als het adres van de sector van waaruit het cluster begint, is er een enkele, solide nummering geïntroduceerd voor alle schijfclusters. Dus om de cluster te bepalen waarin het bestand begint, is het nu voldoende om slechts één nummer op te geven - het volgnummer van de cluster op de schijf.

Elk schijfmedium heeft verschillende service tafels, met daarin alle benodigde informatie over de locatie van bestanden op dit schijfmedium. De verzameling van alle formulieren voor servicetabellen schijf bestandssysteem... Een van deze tabellen, waar de gebruiker vooral mee te maken heeft, heet een directory (directory).

AANDACHT

Een directory is een tabel in het bestandssysteem van een schijf die een lijst bevat van alle bestanden die naar die schijf zijn geschreven. Voor elk bestand bevat deze tabel de waarden van alle attributen, evenals het nummer van het eerste cluster dat aan het bestand is toegewezen.

Een catalogus kan qua doel worden vergeleken met een inhoudsopgave in een boek, waarin voor elk hoofdstuk een startpaginanummer is aangegeven, of met een lijst van documenten die in een kast zijn opgeslagen. Net als in een boek, om de positie van een bepaald hoofdstuk te bepalen, kun je bepalen op welke pagina het begint met de titel van het hoofdstuk in de inhoud van het boek, zodat het besturingssysteem, aan de hand van de naam van het bestand, de cluster waarin het begint in de directory.

Tabel 6.2. Fragment van de catalogus

Tabel 6.2 kan worden beschouwd als een voorbeeld van een fragment van een catalogus, met de uitzondering dat in echte catalogi informatie niet wordt weergegeven door symbolen, maar in de vorm van bijbehorende machinecodes. De attribuutbyte in de tabel is hexadecimaal. De waarde van de attribuutbyte 00 16 die erin wordt gegeven, betekent dat alle niet-basisbestandsattributen zijn uitgeschakeld en daarom zijn de bestanden in het directoryfragment gewone bestanden.

Over het algemeen schetste het bovenstaande een enigszins vereenvoudigd schema van de werking van het bestandssysteem bij het zoeken naar en lezen van een bestand van een schijfapparaat. In feite is de analogie tussen een catalogus en een inhoudsopgave in een boek slechts: gedeeltelijk vanwege het feit dat clusters niet als een continue array aan een bestand op schijf worden toegewezen, maar willekeurig, terwijl in een boek alle pagina's van een hoofdstuk op een rij worden geplaatst. Stel je voor dat een van de hoofdstukken van een boek pagina's 5,15,16, 17, 31, 123,124 beslaat in plaats van pagina's 5,6,7,8,9,10,11 achter elkaar te beslaan. Zo een discontinu de toewijzing van clusters aan bestanden is georganiseerd om het gebruik van vrije schijfruimte tijdens meerdere verwijderingen en wegschrijven van bestanden te optimaliseren.

Om toch te weten welke clusters en in welke volgorde zijn toegewezen voor het opslaan van het bestand, biedt het bestandssysteem een ​​andere tabel die beschikbaar is op elk schijfapparaat. Deze tafel heet DIK(Bestandstoewijzingstabel - bestandstoewijzingstabel). De directory bevat alleen het startclusternummer van het bestand. En de FAT-tabel zijn de nummers van alle andere clusters die door het bestand worden ingenomen. In de overgrote meerderheid van de gevallen hoeft de gebruiker niet met de FAT-tabel te werken, omdat deze wordt ingevuld wanneer het bestand wordt geschreven en automatisch wordt geanalyseerd wanneer het wordt gelezen. Een directory en een of twee FAT-tabellen (de FAT wordt meestal gedupliceerd voor betrouwbaarheid) automatisch worden gemaakt tijdens het formatteren op elk schijfmedium. De automatisch aangemaakte directory heet meestal wortel. De hoofdmap samen met de FAT-tabellen en de initiële (nul, start) sector van de schijf vormen het systeem gebied.

De bovenstaande eenvoudige directorystructuur, waarin alle bestanden één gemeenschappelijke lijst vormen, kan alleen een bevredigende werking van het besturingssysteem bieden als: kleine schijfvolumes en beperkt het totale aantal bestanden dat naar de schijf kan worden geschreven. Op floppydisks van 1,44 MB kan de hoofdmap bijvoorbeeld informatie over niet meer dan 224 bestanden bevatten. En wanneer het volume van de schijf groot genoeg wordt en er dus honderden en duizenden bestanden op de schijf kunnen worden geschreven, leidt een eenvoudige directorystructuur tot een aanzienlijke vertraging van het zoeken naar een bestand op de schijf of tot een directory-overloop. Stel je een lijst voor van duizenden titels die in een archiefkast zijn opgeslagen. Het is vrij duidelijk dat het werken met zo'n lijst erg onhandig is. In het echt, documenten in archiefkasten gegroepeerd om welke reden dan ook in mappen. Bovendien worden in de inventaris van de inhoud van de kast geen individuele documenten aangegeven, maar mappen. Evenzo heeft een map in besturingssystemen een complexere structuur. Willekeurige groepen directorybestanden kunnen worden gecombineerd tot vorm submappen... Op sommige besturingssystemen worden submappen genoemd mappen... In feite zijn submappen, zoals de hoofdmap, tabellen op schijf die informatie bevatten over de bestanden die aan een submap zijn toegewezen. In tegenstelling tot de hoofdmap is de locatie van submappen op schijf niet gebonden aan het systeemgebied. Daarom kunnen de groottes van subdirectories nogal willekeurig zijn, wat het mogelijk maakt om de beperking op het aantal bestanden dat in een subdirectory is gespecificeerd op te heffen.

Submappen worden naar eigen goeddunken door gebruikers gemaakt. Elke submap heeft zijn eigen naam (meestal zonder extensie), die volgens dezelfde regels wordt gekozen als de bestandsnaam. Bestanden kunnen volgens elk criterium worden gegroepeerd en in een submap worden opgenomen. In een aparte submap met de naam WINDOWS is het bijvoorbeeld raadzaam om alle bestanden met betrekking tot het besturingssysteem te verzamelen. Op dezelfde manier is het raadzaam om alle bestanden die nodig zijn voor de werking van een teksteditor of spelprogramma in een aparte submap te groeperen. Als meerdere gebruikers beurtelings op de machine werken, is het zinvol om aparte submappen voor elke gebruiker te organiseren, bijvoorbeeld gebruiker1, gebruiker2, gebruiker3, ... (gebruiker - gebruiker), waarbij de bestanden van de eerste gebruiker worden gegroepeerd in de submap userl , de tweede in de subdirectory user2, enzovoort. Naast het opheffen van de kwantitatieve beperkingen die aan het gebruik van één directory zijn verbonden, creëert dit een bepaalde volgorde in de opslag van informatie op schijven.

Alle submappen in de hoofdmap worden toegewezen aan het eerste niveau. In figuur 6.2 zijn de submappen op het eerste niveau de Windows-submappen, userl, Program files. De hoofdmap in relatie tot de submappen op het eerste niveau die erin zijn opgenomen, wordt genoemd ouder, en subdirectories ten opzichte van de root worden beschouwd dochteronderneming of genest en. Elke submap op het eerste niveau heeft op zijn beurt dezelfde structuur als de hoofdmap. Dat wil zeggen, in de bestanden die aan een submap zijn toegewezen, kunt u alle subgroepen selecteren en er nieuwe submappen uit vormen. Dus, naast gewone bestanden, kan elke submap bestanden bevatten die in submappen zijn gegroepeerd. Deze submappen bevinden zich op het volgende niveau. De eigenaar van de submap userl kan bijvoorbeeld alle door hem opgestelde rapporten groeperen in een aparte submap met de naam otcheti binnen deze submap, en bijvoorbeeld bestanden met informatie over zakelijke contacten kunnen worden verzameld in de submap kontakti (Fig. 6.2). De submappen van het eerste niveau worden als ouderlijk beschouwd in verhouding tot de submappen van het tweede niveau die erin zijn opgenomen. Submappen op het tweede niveau fungeren als onderliggende mappen van de submappen op het eerste niveau. Hieruit volgt dat bovenliggende en onderliggende submappen relatief zijn. De submappen op het eerste niveau worden enerzijds beschouwd als onderliggende mappen van de hoofdmap en anderzijds als de bovenliggende mappen van de submappen op het tweede niveau. Submappen van het tweede niveau kunnen submappen van het derde niveau in zich hebben, en die op hun beurt van het vierde niveau, enz. De diepte van het nesten van submappen is niet beperkt. Een dergelijke mappenstructuur kan worden gezien als een inhoudsopgave van een boek, waarin een bepaalde structuur wordt geïntroduceerd - delen worden gemarkeerd, hoofdstukken worden in delen gemarkeerd, hoofdstukken zijn onderverdeeld in alinea's, alinea's - in secties, enz. Elk van deze structurele eenheden kunnen worden beschouwd als een subdirectory.

Kijkend naar afb. 6.2, zult u merken dat de directory is gestructureerd als een boom. De hoofdmap kan worden toegewezen aan de stam van een boom, submappen fungeren als takken en bestanden zijn de bladeren van de boom. Deze mappenstructuur heet boomachtig of hiërarchisch. In feite komen de namen "wortel" en "boomachtig" uit deze analogie. En de naam "hiërarchisch" komt van het concept "hiërarchie". Hiërarchie is de rangschikking van delen of elementen van een geheel in volgorde van hoog naar laag. Hiërarchische structuren zijn wijdverbreid.

De strijdkrachten van de staat zijn bijvoorbeeld voornamelijk gebaseerd op verticale controlebanden, dat wil zeggen volgens het hiërarchische principe: leger - divisie - regiment - compagnie - peloton - militairen. We kunnen zeggen dat het leger vergelijkbaar is met de rootdirectory, militair personeel vergelijkbaar is met bestanden en tussenliggende eenheden: divisie, regiment, compagnie, peloton zijn subdirectories van verschillende niveaus. Hoger onderwijsinstellingen (universiteit - faculteit - afdeling - docenten) en vele andere organisaties hebben dezelfde structuur.

Rijst. 6.2. Directory boomstructuur

NOTITIE

Merk op dat er in feite op elk schijfapparaat slechts één map is - de root, de rest zijn submappen van een bepaald nestniveau. Vaak worden subdirectories echter ook directory's genoemd, waarbij soms wordt verwezen naar de bestaande ondergeschiktheidsrelaties daarvoor. Merk op dat de gebruiker zelf wel of geen subdirectories aanmaakt en dat hun aanwezigheid in principe niet nodig is, terwijl de rootdirectory vereist is, en deze wordt automatisch aangemaakt. Merk ook op dat de gebruiker bij het maken van een submap er willekeurig een naam voor kiest, terwijl de hoofdmap in die zin helemaal geen naam heeft.

Het pad naar het bestand

Het besturingssysteem zoekt naar een bestand in de map met de volledige naam. Dit betekent dat in In principe kan dezelfde directory of subdirectory niet twee verschillende bestanden met dezelfde volledige naam bevatten. Ter herinnering: de volledige naam bestaat uit de bestandsnaam en de extensie. Het is ook niet toegestaan ​​om twee geneste subdirectories met dezelfde naam in dezelfde directory of subdirectory te hebben. Overweeg de volgende situatie om te begrijpen waarom dit onmogelijk is. Stel je voor dat in een bepaalde stad de postdienst als volgt is georganiseerd: achternamen, voornamen en patroniemen, dat wil zeggen volledige namen, evenals de adressen van alle inwoners van de stad staan ​​in de lijsten die in de post zijn opgeslagen (analoog van een map op een schijf). Afzenders van correspondentie naar deze stad kennen alleen de volledige namen van de ontvangers en hun adressen zijn onbekend, en daarom worden alleen de achternaam, voornaam en patroniem van de ontvanger vermeld op poststukken naar deze stad. In de e-mail wordt, volgens de volledige naam die in het poststuk is vermeld, het adres van de ontvanger bepaald in de bijbehorende lijst en dit item wordt via de post afgeleverd (analoog aan het zoeken naar een bestand op de schijf door het besturingssysteem op naam) . Laten we nu aannemen dat twee verschillende mensen met dezelfde volledige naam in deze stad op verschillende adressen wonen. Dan zal de doordachte opzet van de post ertoe leiden dat geadresseerden met dezelfde achternaam, voornamen en patroniemen gemengde mailings zullen ontvangen - zowel die van henzelf als die van anderen. Evenzo, als de volledige namen van twee bestanden samenvallen, zal het besturingssysteem niet ondubbelzinnig kunnen bepalen naar welk bestand gegevens moeten worden geschreven of uit welk bestand moet worden gelezen, en zal het willekeurig worden geselecteerd.

Echter, in verscheidene mappen of submappen mogen bestanden of onderliggende submappen hebben met dezelfde volledig gekwalificeerde namen. Maar dan, voor een eenduidige aanduiding van het benodigde bestand, is één volledige bestandsnaam nu niet voldoende. Om bestanden met dezelfde naam van elkaar te onderscheiden, moet u ook de submappen specificeren waarin ze zich bevinden. In het algemeen moet u niet één submap specificeren, maar de hele keten van submappen, waardoor u van de hoofdmap naar de submap met het gewenste bestand moet gaan om bij het gewenste bestand te komen en de locatie ervan te bepalen.

De reeks namen van subdirectories die moeten worden doorlopen, beginnend bij de hoofddirectory en eindigend met de subdirectory die het bestand bevat, wordt genoemd trouwens of route naar het bestand.

NOTITIE

In MS DOS- en Windows-besturingssystemen wordt de hoofdmap in het pad aangegeven met het teken \. Hetzelfde symbool scheidt de namen van subdirectories in de keten, evenals de bestandsnaam van de naam van de subdirectory waarin deze zich bevindt.

Dus voor bestanden die zich in de hoofdmap bevinden (Fig. 6.2), is het pad alleen de aanduiding van de hoofdmap \, en de bestanden worden als volgt aangegeven:

\ command.com, \ config.sys, \ autoexec.bat

Het bestand uit de submap userl heeft het pad \ user1:

\ gebruiker1 \ afbeelding.bmp

En het pad naar bestanden uit de kontakti-submap moet de namen van beide submappen bevatten - \ user1 \ kontakti:

\ gebruiker1 \ kontakti \ ivanov.doc, \ gebruiker1 \ kontakti \ postavki.txt

Paden kunnen niet alleen naar bestanden worden opgegeven, maar ook naar submappen. Voor de submap kontakti is het pad dus \ user1.

Bestandsspecificatie

Een computer bevat in de regel verschillende schijfapparaten, daarom moet u, om een ​​bestand uniek te identificeren, aangeven op welk apparaat het zich bevindt. Dit kan worden gedaan door de naam op te geven van het schijfapparaat dat het bestand bevat. Het is gebruikelijk om de naam van het apparaat voor het pad naar het bestand te plaatsen. Een bestandsverwijzing met daarin: 1) apparaatnaam, 2) bestandspad, 3) volledige bestandsnaam, genaamdvolledige bestandsspecificatie... Merk op dat in het algemene geval een specificatie een opsomming is van alle onderscheidende kenmerken. Als bijvoorbeeld een directory waarvan de structuur wordt weergegeven in Fig. 6.2, bevindt zich op de harde schijf C :, dan ziet de volledige specificatie van het postavki.txt-bestand er als volgt uit:

C: \ gebruiker1 \ kontakti \ postavki.txt

en als deze map op een diskette staat, dat wil zeggen op een schijfapparaat A:, dan wordt de specificatie als volgt geschreven:

A: \ gebruiker1 \ kontakti \ postavki.txt

De volledige bestandsspecificatie definieert volledig en ondubbelzinnig het vereiste bestand, dat in feite vereist is door het besturingssysteem om gebruikersopdrachten nauwkeurig uit te voeren. Als er echter de minste fout wordt gemaakt in de bestandsspecificatie, bijvoorbeeld als er minstens één teken ontbreekt of vervormd is, kan het besturingssysteem zo'n bestand niet vinden.

Controlevragen

1. Wat wordt een besturingssysteem genoemd?

2. Noem de belangrijkste functies van besturingssystemen.

3. Welke schijf wordt de systeemschijf genoemd? Welke schijven kunnen systeemschijven zijn?

4. Beschrijf de procedure voor het in- en uitschakelen van de personal computer.

5. Wat is de bootstrap van het besturingssysteem? Hoe werkt het?

6. Geef de mogelijke reden voor het beëindigen van de download aan.

7. Wat is bevriezen? Wat moet je doen bij het invriezen?

8. Beschrijf de mogelijke methoden voor het uitvoeren van een herstart.

9. Welke besturingssystemen zijn er?

10. Wat wordt een gebruikersinterface genoemd?

11. Beschrijf de belangrijkste kenmerken van tekst-, tabel- en grafische interfaces.

12. Welke rol speelt het verzoek om invoer?

13. Wat is een besturingssysteemopdracht?

14. Wat is een hulpprogramma?

15. Wat wordt een schelp genoemd? Welke schelpen ken je?

16. Wat is een bestand?

17. Wat kan er in het dossier staan?

18. Welke bewerkingen kunnen op bestanden worden uitgevoerd?

19. Wat is een bestandskenmerk? Wat zijn de belangrijkste kenmerken?

20. Hoe wordt de bestandsnaam ingesteld?

21. Welke rol speelt de extensie en hoe komt deze tot stand?

22. Geef een definitie aan de termen "programmabestand", "batchbestand", "uitvoerbaar bestand", "back-upbestand", "helpbestand", "stuurprogramma". Geef hun extensies aan.

23. Wat is de behoefte en hoe komt de groepsnaam tot stand?

24. Wat is een cluster?

25. Wat is een directory en welke informatie bevat deze?

26. Hoe wordt naar een bestand op een schijf gezocht?

27. Wat is de structuur van de directory?

28. Geef een definitie aan de begrippen "hoofdmap", "submap", "submap op het eerste niveau", "submap op het tweede niveau", "bovenliggende map", "onderliggende map".

29. Wat is het pad naar het bestand en waarom moet dit worden gespecificeerd?

30. Wat is een bestandsspecificatie?

4.1 Soorten compatibiliteit

Specifieke architecturale en functionele kenmerken van een besturingssysteem zouden alleen systeemprogrammeurs moeten betreffen en zijn mogelijk helemaal niet bekend bij de gemiddelde gebruiker. Hoewel sommige ideeën (bijvoorbeeld een objectgeoriënteerde benadering) onder de verantwoordelijkheid van ontwikkelaars vallen en slechts indirect van invloed zijn op de eindgebruiker, concept van meerdere applicatieomgevingen biedt de gebruiker de langverwachte mogelijkheid om programma's die zijn geschreven voor andere besturingssystemen en processors op zijn besturingssysteem uit te voeren. Een OS-eigenschap die de mogelijkheid kenmerkt om toepassingen uit te voeren die voor andere besturingssystemen in het besturingssysteem zijn geschreven, wordt genoemd compatibiliteit.

Er zijn twee fundamenteel verschillende soorten compatibiliteit die niet moeten worden verward: binaire compatibiliteit en bron compatibiliteit. Toepassingen worden meestal op een computer opgeslagen als uitvoerbare bestanden die binaire afbeeldingen van code en gegevens bevatten. Binaire compatibiliteit wordt bereikt als u een uitvoerbaar programma dat in de ene OS-omgeving draait, kunt gebruiken in een andere OS-omgeving.

Broncompatibiliteit vereist geschikte compilers in de software van de computer waarop de toepassing bedoeld is om te worden gebruikt, evenals bibliotheek- en systeemaanroepcompatibiliteit. In dit geval is het noodzakelijk om de broncodes van de programma's opnieuw te compileren in nieuwe uitvoerbare modules.

Broncompatibiliteit is dus het belangrijkst voor de applicatieontwikkelaar die eigenaar is van de broncode. Voor eindgebruikers is alleen binaire compatibiliteit van praktisch belang, omdat ze alleen in dit geval, zonder speciale vaardigheden en capaciteiten, het geleverde softwareproduct in de vorm van binaire uitvoerbare code in verschillende besturingsomgevingen en op verschillende computers kunnen gebruiken. Voor een gebruiker die ooit een softwarepakket voor MS-DOS heeft gekocht, is het belangrijk dat hij dit vertrouwde pakket zonder enige wijzigingen of beperkingen kan draaien op zijn nieuwe machine, die bijvoorbeeld onder Windows NT draait. Meerdere toepassingsomgevingen zorgen ervoor dat dit besturingssysteem compatibel is met toepassingen die zijn geschreven voor andere besturingssystemen en processors, op binair niveau en niet op broncodeniveau.

Of een besturingssysteem binaire of broncompatibiliteit heeft, hangt van veel factoren af. De belangrijkste hiervan is de architectuur van de processor waarop het besturingssysteem draait. Om binaire compatibiliteit te bereiken, volstaat het om aan een aantal van de volgende voorwaarden te voldoen:

    oproepen naar API-functies die de applicatie bevat, moeten worden ondersteund door het gegeven besturingssysteem;

    de interne structuur van het uitvoerbare bestand van de toepassing moet overeenkomen met de structuur van de uitvoerbare bestanden van het gegeven besturingssysteem.

Het is onvergelijkbaar moeilijker om binaire compatibiliteit te bereiken voor besturingssystemen die zijn ontworpen om te draaien op processors met verschillende architecturen. Naast het naleven van de bovenstaande voorwaarden, is het ook noodzakelijk om de emulatie van de binaire code te organiseren. Om ervoor te zorgen dat een computer machine-instructies kan interpreteren die in eerste instantie onbegrijpelijk zijn, moet er speciale software op worden geïnstalleerd - emulator.

Het doel van de emulator is om elke binaire instructie van een processor, bijvoorbeeld Intel, achtereenvolgens op te halen, deze programmatisch te decoderen om te bepalen welke acties deze specificeert, en vervolgens een equivalente subroutine uit te voeren die is geschreven in processorinstructies, bijvoorbeeld Motorola.

Toch is er een iets andere, veel effectievere uitweg uit de beschreven situatie: het gebruik van zogenaamde applicatiesoftwareomgevingen. Een van de componenten die de softwareomgeving vormen, is de reeks API-functies die het besturingssysteem voor zijn toepassingen biedt. Om de uitvoeringstijd van buitenlandse programma's te verkorten, imiteren applicatieomgevingen oproepen naar bibliotheekfuncties. De effectiviteit van deze aanpak wordt bepaald door het feit dat de meeste moderne programma's draaien onder grafische gebruikersinterfaces (GUI) zoals Windows, UNIX, terwijl applicaties in de regel het grootste deel van hun tijd besteden aan het uitvoeren van een aantal goed voorspelbare acties. Zij voortdurend oproepen naar de GUI-bibliotheken voor venstermanipulatie en andere GUI-gerelateerde acties. Het is deze functie van applicaties waarmee applicatieomgevingen kunnen compenseren voor de grote hoeveelheid tijd die wordt besteed aan het emuleren van een programma, commando voor commando. Een zorgvuldig ontworpen softwareomgeving bevat bibliotheken die de interne GUI-bibliotheken nabootsen, maar zijn geschreven in de "native" code van het besturingssysteem. Zo wordt een aanzienlijke versnelling van de uitvoering van programma's met de API van een ander besturingssysteem bereikt. Om deze benadering te onderscheiden van het langzamere proces van het emuleren van code één instructie per keer, wordt het genoemd uitzending.

Er moet echter worden opgemerkt dat om een ​​programma dat voor het ene besturingssysteem is geschreven, onder een ander besturingssysteem te laten uitvoeren, het niet voldoende is om alleen API-compatibiliteit te garanderen. Het kan voorkomen dat de concepten die ten grondslag liggen aan verschillende besturingssystemen met elkaar in botsing komen. In het ene besturingssysteem kan een toepassing bijvoorbeeld worden toegestaan ​​om I / O-apparaten rechtstreeks te besturen, terwijl in een ander besturingssysteem acties het voorrecht zijn van het besturingssysteem. Het is heel natuurlijk dat elk besturingssysteem zijn eigen mechanismen heeft om bronnen te beschermen; algoritmen voor het afhandelen van fouten en uitzonderingen, een speciale processtructuur en geheugenbeheerschema, een eigen semantiek voor bestandstoegang en een grafische gebruikersinterface. Al deze verschillen worden bepaald door de specifieke kenmerken van het hardwareplatform waarop het besturingssysteem draait, door de eigenaardigheden van de implementatie ervan, of door de systeemontwikkelaars vastgelegd als eigenschappen die inherent zijn aan dit systeem. Om compatibiliteit te garanderen, is het noodzakelijk om binnen één besturingssysteem conflictvrije co-existentie van verschillende methoden voor het beheer van computerbronnen te organiseren.