Het algoritme voor het laden van het besturingssysteem is als volgt. Laadalgoritme van het besturingssysteem. Compile-run-laders

Een bootloader is een systeemprogramma dat het opstarten uitvoert. Veel laders zorgen ook voor beweging en koppeling. Sommige systemen scheiden de koppelfunctie van de verplaatsings- en laadfuncties. Het koppelen wordt uitgevoerd door een speciaal koppelingsprogramma (of linkeditor), dat wordt verplaatst en geladen door de lader.

Koppelen is het koppelen van twee of meer afzonderlijk vertaalde programma's.

Verhuizing is de wijziging van een objectprogramma zodat het vanaf een ander adres dan het oorspronkelijke adres kan worden geladen.

Bootloader-functies:

  1. OP-distributie;
  2. een programma verplaatsen;
  3. modules koppelen;

OP-distributie

Een programma verplaatsen

Als er adresconstanten in de modules zijn die vanaf het begin van de module worden berekend, worden de adressen aangepast ten opzichte van de Base.

Modules koppelen

Soorten bootloaders

Compile-run-laders

Een van de mogelijke manieren om de laadfunctie uit te voeren kan zijn om het werk van de assembler zo te organiseren dat de assembler, die in een deel van het geheugen werkt, machine-instructies en gegevens plaatst terwijl deze worden samengesteld, rechtstreeks in de toegewezen geheugencellen. voor hen. Zodra de compilatie is voltooid, geeft de assembler de controle door aan het toegangspunt van het resulterende programma. Dit is een heel eenvoudige oplossing waarmee u zonder aanvullende procedures kunt werken. Dit schema wordt "compile-execute" genoemd en de "loader" bestaat uit een enkele instructie die de controle overdraagt ​​aan het samengestelde programma.

Absolute laders zijn eenvoudig te implementeren, maar hebben een aantal kenmerken:

  • de taak van het distribueren van het OP wordt uitgevoerd door de programmeur (met behulp van de richtlijn voor het instellen van de initiële waarde van het OP);
  • de taak van het verplaatsen van het programma wordt uitgevoerd door de compiler;
  • modules koppelen - beslist door de programmeur (bel 600);
  • programma's in het OP laden en ze lanceren voor uitvoering.

Voordelen:

  • kleinere bootloadergrootte (geheugengrootte);
  • scheiding van de compilatie- en laadfasen, waardoor de tijd voor het verwerken van modules wordt verkort;
  • de mogelijkheid om verschillende programmeertalen te gebruiken, omdat de structuren van de gemaakte objectmodules zijn identiek.

Gebreken:

Er valt een grote hoeveelheid werk op de programmeur. Het is noodzakelijk om voortdurend veranderingen in startadressen te controleren bij het wijzigen van modules, omdat hun lengte verandert.

Absolute Loader-objectbestandsstructuur

Het informatierecord bestaat uit:

  1. teken;
  2. absoluut adres van het OP waar informatie kan worden overgedragen;
  3. aantal informatiebytes in het bericht;
  4. bytes aan informatie;
  5. controlesommen;
  6. nummering.

Het controlerecord bestaat uit:

  1. teken;
  2. adres van het toegangspunt.

Een eenvoudige absolute lader werkt:

  1. Controleer of er voldoende geheugen is voor dit programma (eerste record bekijken).
  2. Sequentieel lezen van de programmatekst en plaatsing op het opgegeven adres.
  3. Overdracht van controle naar het adres voor programma-uitvoering.

Bootloader afstemmen

Om de noodzaak te vermijden om alle subroutines opnieuw samen te stellen wanneer er een wijziging in een ervan wordt aangebracht, en ook om de programmeur te bevrijden van de taken van geheugentoewijzing en communicatie van subroutines, werden zogenaamde laders ontwikkeld. Met deze bootloader kan een programma meerdere programmasegmenten en één datasegment (gemeenschappelijk segment) hebben. De assembler vertaalt elk segment afzonderlijk en voorziet de lader van tekst en informatie over bewegingen en kruisverwijzingen tussen segmenten.

De uitvoer van de assembler met dit schema is het objectprogramma en informatie over alle andere programma's waarnaar in dit programma oproepen zijn. Daarnaast is er informatie over de plaatsen die tijdens het laden moeten worden gewijzigd (bewegingsinformatie), d.w.z. over cellen waarvan de inhoud afhangt van de locatie van het programma in het geheugen.

Voor elk bronprogramma produceert de assembler tekst (vertaalresultaat) als uitvoerinformatie, voorafgegaan door een overgangsvector die de adressen bevat van de namen van subroutines waartoe toegang wordt verkregen in het bronprogramma. Als de SQRT-routine bijvoorbeeld de eerste routine is die wordt aangeroepen, zal de eerste cel van de sprongvector de symbolische naam SQRT bevatten. Verklaringen die een oproep naar een SQRT-routine bevatten, zullen worden vertaald in een spronginstructie die het adres aangeeft van het vertakkingsvectorelement dat is geassocieerd met de SQRT. De assembler zal ook aanvullende informatie overbrengen, zoals de totale lengte van het programma en de lengte van de vertakkingsvector. Nadat de programmatekst en de sprongvector in het geheugen zijn geladen, laadt de lader elke routine die in de vector is gespecificeerd. Vervolgens plaatst hij een commando om naar de corresponderende subroutine in elk element van de vector te springen. Het aanroepen van de SQRT-subroutine zal dus leiden tot de uitvoering van een sprongcommando naar de eerste cel van de overgangsvector, die een sprongcommando naar de opgeroepen subroutine zal bevatten.

Dit laadschema met tweetrapsbesturingsoverdracht wordt vaak gebruikt in computers met een vast instructieformaat en directe adressering.

Deze bootloader heeft een aantal nadelen:

  • de overgangsvector is niet helemaal handig voor het laden en opslaan van externe gegevens (bevindt zich in een ander programmasegment);
  • de overgangsvector vergroot de lengte van het objectprogramma;
  • De lader werkt op programmasegmenten, maar vergemakkelijkt de toegang tot gegevenssegmenten die door meerdere routines kunnen worden gedeeld niet.

Bootloader rechtstreeks koppelen

De direct gekoppelde bootloader biedt het meest volledig de mogelijkheid om programma's en gegevens in het geheugen te verplaatsen en is momenteel de meest voorkomende. Een dergelijke lader heeft het voordeel dat deze het gebruik van een groot aantal programmasegmenten en datasegmenten mogelijk maakt en de programmeur volledige vrijheid geeft om toegang te krijgen tot gegevens die zich in andere segmenten bevinden, terwijl afzonderlijke vertaling mogelijk is.

De assembler (vertaler) moet bij elk programma- en datasegment de volgende informatie doorgeven aan de bootloader:

  1. segmentlengte;
  2. een lijst met alle segmentsymbolen die toegankelijk zijn vanuit andere segmenten, en hun relatieve adressen;
  3. een lijst met alle symbolen die niet in dit segment zijn gedefinieerd en die in dit segment toegankelijk zijn;
  4. informatie over de locatie van adresconstanten in het segment en een beschrijving van hoe hun waarden moeten veranderen;
  5. machinecodes die het resultaat zijn van vertaling en toegewezen relatieve adressen.

Een van de nadelen van een direct linking loader in zijn eenvoudigste vorm is dat elke keer dat het programma wordt uitgevoerd, het herhaaldelijk de functies moet uitvoeren van geheugentoewijzing, verplaatsen, koppelen en laden van alle noodzakelijke subroutines. Deze problemen kunnen worden opgelost door het laden uit te voeren met behulp van twee afzonderlijke programma's: de combiner en de modulelader. De uitvoer van de combiner is een set gegevens in een formaat waarmee het programma in het geheugen kan worden geladen, en wordt een laadmodule genoemd. Er zijn verschillende soorten combiners. Eén daarvan is de zogenaamde link-editor, die de informatie die nodig is om de module te verplaatsen in het geheugen opslaat, zodat de module als geheel vervolgens kan worden geconfigureerd en op een willekeurige geheugenlocatie kan worden geladen. In dit geval moet de modulelader geheugentoewijzings- en verplaatsingsfuncties uitvoeren, maar blijft hij vrij van de complexe taak van het koppelen van objectmodules en subroutines.

Dynamische lader

In elk van de beschouwde schema's werd aangenomen dat alle noodzakelijke routines tegelijkertijd in het geheugen werden geladen. Als de totale hoeveelheid geheugen die nodig is voor de routines kleiner is dan het beschikbare geheugen van de machine, ontstaan ​​er problemen. Deze moeilijkheden worden overwonnen door gebruik te maken van een dynamisch laadschema met opeenvolgend gebruik van een combiner en een lader. Dit schema is gebaseerd op het feit dat er doorgaans op verschillende tijdstippen verschillende routines nodig zijn en elkaar wederzijds kunnen uitsluiten. Door expliciet te definiëren welke subroutine oproepen naar andere subroutines bevat, kunt u een zogenaamde overlay-structuur definiëren die elkaar uitsluitende subroutines specificeert.

De laadmodule wordt gevormd. Het is verplaatsbaar en moet een verplaatstafel hebben. Ook moet de structuur van de laadmodule informatie over aansluitingen bevatten. De lader moet zo'n onderdeel bevatten als een overlay-manager; hij selecteert uit de opstartmodules precies die modules die starten, en organiseert tijdens het werk het laden van de benodigde modules in het OP.

Dynamische koppeling

Er zijn gevallen waarin, om een ​​efficiënt gebruik van het machinegeheugen te garanderen, subroutines dynamisch aan elkaar worden gekoppeld tijdens de uitvoering van een programma. Dat wil zeggen dat subroutines alleen in het geheugen worden geladen als ze worden aangeroepen. Dit kan nuttig zijn, omdat... Onder bepaalde omstandigheden in het programma zijn sommige subroutines mogelijk helemaal niet nodig. Laten we eens kijken naar een voorbeeld:

als (voorwaarde 1)
subroutine-oproep 1
als (voorwaarde 2)
subroutine-oproep 2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
als (voorwaarde m)
roep subroutine m aan

Veel van de vertakkingen zullen worden overgeslagen en het zal niet nodig zijn om bijvoorbeeld subroutine 2 in de OP te laden als niet aan voorwaarde 2 wordt voldaan. In dit geval moet de lader gelijktijdig met het programma werken en de koppelingsfuncties uitvoeren en het laden van subroutines.

Het besturingssysteem wordt opgeslagen in een extern geheugen, meestal op een harde schijf, minder vaak op een diskette. Voor de normale werking van een computer is het noodzakelijk dat de hoofdmodules van het besturingssysteem zich in RAM bevinden. Daarom wordt het besturingssysteem na het inschakelen van de computer automatisch van de schijf naar het RAM-geheugen herschreven (geladen). De belangrijkste aspecten van deze belasting worden weergegeven in de vorm van een algoritme in figuur 2. 9.13.

Rijst. 9.13. Algoritme voor het laden van het besturingssysteem van schijf naar RAM

Nadat u de computer heeft aangezet, ziet u de cijfers op het scherm veranderen. Deze cijfers weerspiegelen het proces van het testen van RAM door het BIOS-programma. Als er een fout wordt gedetecteerd in de RAM-cellen, wordt er een melding weergegeven.

Nadat de hardwaretest met succes is voltooid, wordt toegang verkregen tot de schijf met diskette A en gaat het indicatielampje ernaast branden. Als u het besturingssysteem vanaf een diskette laadt, moet u vóór of tijdens het testen de systeemschijf in station A plaatsen. Anders, als er geen besturingssysteem op schijf A staat, wordt toegang verkregen tot de harde schijf, zoals blijkt uit de indicator licht ernaast.

Het lezen in het RAM van de 0e sector van de 0e zijde van de schijf waarop de bootloader zich bevindt (BOOT RECORD) begint. De besturing wordt overgedragen aan de bootloader, die controleert op de aanwezigheid van de IO.SYS-uitbreidingsmodule en de MSDOS.SYS-basismodule op de systeemschijf. Als ze zich op hun aangewezen plaats bevinden (cm. rijst. 9.10), dan laadt het ze in het RAM, anders wordt er een bericht over hun afwezigheid weergegeven. In dit geval wordt aanbevolen om opnieuw te downloaden. Het herstartsignaal draagt ​​de besturing over aan de permanente BIOS-module, die het opstartblok opnieuw van de schijf naar RAM schrijft, enz.

Herinneren! Voor start het besturingssysteem opnieuw op druk de toetsen tegelijkertijd in het geheugen .

Nadat de IO.SYS-uitbreidingsmodule en de MSDOS.SYS-basismodule met succes in het RAM zijn geladen, wordt de COMMAND.COM-opdrachtprocessor geladen en wordt het CONFIG.SYS-configuratiebestand verwerkt, dat opdrachten bevat voor het verbinden van de benodigde stuurprogramma's. Dit bestand ontbreekt mogelijk als u tevreden bent met de basisversie van het besturingssysteem.



Vervolgens wordt het batchbestand AUTOEXEC.BAT verwerkt. Met dit bestand kunt u de parameters van de besturingsomgeving configureren. Maak bijvoorbeeld een virtuele schijf, wijzig de afdrukmodi, laad hulpprogramma's, enz.

Aandacht! Bestanden met de .BAT-extensie spelen een speciale rol bij het werken in een systeemomgeving. Ze bevatten een reeks besturingssysteemopdrachten of uitvoerbare bestandsnamen. Na het uitvoeren van een bestand met de .BAT-extensie worden alle daarin geschreven opdrachten automatisch na elkaar uitgevoerd.

Een bestand met de standaardnaam AUTOEXEC.BAT verschilt van andere bestanden van het type .BAT doordat de uitvoering van de daarin geplaatste opdrachten automatisch begint onmiddellijk nadat het besturingssysteem is opgestart.

Als het AUTOEXEC.BAT-bestand ontbreekt, wordt u gevraagd de datum en tijd in te voeren:

als u op de enter-toets drukt, worden de zogenaamde systeemparameters, bepaald door de computertimer, geaccepteerd als de huidige datum en tijd;

Als u de systeemdatum en -tijd opnieuw wilt instellen, voert u in reactie op de prompt de waarden in een van de meegeleverde formulieren in, bijvoorbeeld:

25-10-1997 (maand dag jaar)

7:30:10.00r (uren:minuten:seconden)

Nadat het AUTOEXEC.BAT-bestand is uitgevoerd en als dit bestand niet wordt gevonden, wordt er bijvoorbeeld een systeemschijfprompt op het beeldscherm weergegeven C:\>. Dit geeft aan dat het opstartproces normaal is voltooid en dat u verder kunt gaan door de toepassingsnaam of de opdracht van het besturingssysteem in te voeren.

Opmerking. De bestanden CONFIG.SYS en AUTOEXEC.BAT ontbreken mogelijk. In dit geval worden de instellingen van de besturingsomgeving ingesteld op de standaardinstellingen.

Herinneren! De harde schijf moet het besturingssysteem permanent opslaan.

Wanneer u uw computer aanzet, moeten alle diskettestations geopend zijn.

De diskette met toepassingsprogramma's moet na het laden in de drive worden geplaatst.



TECHNOLOGIE VAN WERKEN IN MS DOS

§ Algemene informatie over opdrachten

§ Basisopdrachten voor het werken met mappen

§ Basisopdrachten voor het werken met bestanden

§ Basisopdrachten voor het werken met schijven

§ Een batchbestand maken en gebruiken

§ Opdrachtbestand voor automatische configuratie van het besturingssysteem AUTOEXEC.BAT

§ Het besturingssysteem configureren met behulp van het CONFIG.SYS-configuratiebestand

ALGEMENE INFORMATIE OVER TEAMS

Algoritme voor het laden van het besturingssysteem

Het besturingssysteem wordt opgeslagen in een extern geheugen, meestal op een harde schijf, minder vaak op een diskette.

Het is de moeite waard om te zeggen dat het voor de normale werking van de computer uiterst belangrijk is dat de hoofdmodules van het besturingssysteem zich in RAM bevinden. Om deze reden wordt het besturingssysteem na het inschakelen van de computer automatisch van de schijf naar het RAM-geheugen herschreven (geladen).

- het besturingssysteem herschrijven van een schijf (hard of diskette) naar RAM.

Na het inschakelen van de computer wordt een verandering in cijfers op het scherm waargenomen. Deze cijfers weerspiegelen het proces van het testen van RAM met het BIOS-programma. Als er een fout wordt gedetecteerd in de RAM-cellen, wordt er een melding weergegeven.

Nadat de hardwaretest met succes is voltooid, wordt toegang verkregen tot de schijf met diskette A en gaat het indicatielampje ernaast branden. Als het besturingssysteem vanaf een diskette wordt geladen, moet u de systeemschijf vóór of tijdens het testen in station A plaatsen. Anders wordt toegang verkregen tot de harde schijf als er geen besturingssysteem op schijf A staat, zoals blijkt uit de indicator licht ernaast.

Het lezen in het RAM van de 0e sector van de 0e zijde van de schijf waarop de bootloader zich bevindt (BOOT RECORD) begint. De besturing wordt overgedragen aan de bootloader, die controleert op de aanwezigheid van de IO.SYS-uitbreidingsmodule en de MSDOS.SYS-basismodule op de systeemschijf. Als ze zich op de voor hen toegewezen plaats bevinden, worden ze in het RAM geladen, anders wordt er een bericht weergegeven over hun afwezigheid. In dit geval wordt aanbevolen om opnieuw te downloaden. Het herstartsignaal draagt ​​de besturing over aan de permanente BIOS-module, die het opstartblok opnieuw van de schijf naar RAM schrijft, enz.

OPMERKING! Voor start het besturingssysteem opnieuw op druk de toetsen tegelijkertijd in het geheugen<Сtгl> <АLT> .

Nadat de IO.SYS-uitbreidingsmodule en de MSDOS.SYS-basismodule met succes in het RAM zijn geladen, wordt de COMMAND.COM-opdrachtprocessor geladen en wordt het CONFIG.SYS-configuratiebestand verwerkt, dat opdrachten bevat voor het verbinden van de benodigde stuurprogramma's. Dit bestand ontbreekt mogelijk als de gebruiker tevreden is met de basisversie van het besturingssysteem.

Vervolgens wordt het opdrachtbestand AUTOEXEC.BAT verwerkt. Dit bestand wordt gebruikt om de parameters van de besturingsomgeving te configureren. Maak bijvoorbeeld een virtuele schijf, wijzig de afdrukmodi, laad hulpprogramma's, enz.

Opmerking! Bestanden met de .BAT-extensie spelen een speciale rol bij het werken in een systeemomgeving. Οʜᴎ bevatten een reeks besturingssysteemopdrachten of namen van uitvoerbare bestanden. Na het starten van een bestand met de .BAT-extensie worden alle daarin geschreven opdrachten automatisch na elkaar uitgevoerd.

Een bestand met de standaardnaam AUTOEXEC.BAT verschilt van andere bestanden van het type .BAT doordat de uitvoering van de daarin geplaatste opdrachten automatisch begint onmiddellijk nadat het besturingssysteem is opgestart.

Als het AUTOEXEC.BAT-bestand ontbreekt, wordt u gevraagd de datum en tijd in te voeren:

als u op de enter-toets drukt, worden de zogenaamde systeemparameters, bepaald door de computertimer, geaccepteerd als de huidige datum en tijd;

Als u de systeemdatum en -tijd opnieuw wilt instellen, voert u in reactie op de prompt de waarden in een van de meegeleverde formulieren in, bijvoorbeeld:

25-10-1997 (maand dag jaar)

7:30:10.00r (uren: minuten: seconden)

Nadat het AUTOEXEC.BAT-bestand klaar is met werken, en ook als dit bestand niet wordt gedetecteerd, wordt er bijvoorbeeld een systeemschijfprompt op het beeldscherm weergegeven C:\>. Dit geeft aan dat het opstartproces normaal is voltooid en dat u kunt beginnen met werken door de naam van het toepassingsprogramma of de opdracht van het besturingssysteem in te voeren.

Opmerking. De bestanden CONFIG.SYS en AUTOEXEC.BAT ontbreken mogelijk. In dit geval worden de instellingen van de besturingsomgeving ingesteld op de standaardinstellingen.

Herinneren! Het is uiterst belangrijk om ervoor te zorgen dat het besturingssysteem permanent op de harde schijf wordt opgeslagen. Wanneer u uw computer aanzet, moeten alle diskettestations geopend zijn.

Nadat het downloaden is voltooid, moet u de diskette met toepassingsprogramma's in het station plaatsen.

Getest door het programma

Laden Geen lading

op flexibel hard nr

schijf schijf

Lezing van diskette Lezen. met gebaar schijf

IO.SYS, MSDOS.SYS in de opstartsector"

Laden Geen bericht

juist? "Geen systeembestanden"

Commando. Com "Geen systeembestanden"

en CONFIG.SYS-bestand