Programvara för datorsystem ppt. PC-programvara

Bindande

Översättning och efterföljande steg för att förbereda ett program för exekvering är processen att konvertera ett program skrivet på något formellt språk till ett annat formellt system - en datorarkitektur, där det kan exekveras (tolkas). För att förstå denna process, samt skillnaderna i olika programmeringsspråk, introduceras begreppet bindning, liksom bindningstid.

Bindning är processen att upprätta en överensstämmelse mellan objekt och deras egenskaper i ett program på ett formellt språk (operationer, operatorer, data) och delar av en dators arkitektur (kommandon, adresser).

Bindningstid fasen för att förbereda programmet för exekvering (översättning, länkning, laddning), där denna åtgärd utförs, anropas respektive. Olika egenskaper hos samma objekt (till exempel en variabel) kan associeras med olika delar av arkitekturen vid olika tidpunkter, det vill säga bindningsprocessen är inte engångsföreteelse.

Systemmjukvara

Eventuella bindningstider

När du bestämmer språket; när du implementerar en kompilator;

under sändningen, inklusive:

när förprocessorn (makroprocessorn) är igång

under lexikal, syntaktisk och semantisk analys, kodgenerering och optimering;

när du komponerar; medan du laddar programmet;

under programexekvering, inklusive: när du går in i en modul (procedur, funktion); vid en godtycklig punkt i programexekveringen.

Systemmjukvara

Länka till int a, b; ... a + b

Typen av variabler int är en heltalsvariabel i ett maskinord av standardlängd (signerad heltalsrepresentation, komplementär kod), associerad med en liknande form av datarepresentation i en dator när ett språk definieras.

Den specifika dimensionen av en int-variabel bestäms av implementeringen av motsvarande kompilator.

Namnet a kan definieras i en konstruktion som

#definiera en 0x11FF. I det här fallet är namnet (pseudovariabel) associerat med dess värde vid den första översättningsfasen - i förprocessorn.

Systemmjukvara

Länka till int a, b; ... a + b

Om variabeln definieras på vanligt sätt som int a; då sker bindningen av variabeln med motsvarande typ under translation (i fasen av semantisk analys).

Om en variabel definieras som extern (global, utanför funktionens kropp), är meningen med dess översättning att allokera minne för den i programdatasegmentet, som skapas för den aktuella modulen (filen). I det här fallet utförs själva bindningen av distribuerat minne till ett specifikt RAM i flera steg:

Systemmjukvara

Länka till int a, b; ... a + b

under översättning är variabeln bunden till någon relativ adress i objektmodulens datasegment (det vill säga dess placering är endast fixerad i förhållande till början av modulen).

vid länkning kombineras data och kommandosegment för olika objektmoduler till en gemensam programfil, som är en minnesbild av programmet. I den får variabeln redan en relativ adress från början av hela programmet.

när du laddar ett program till ett visst minnesområde kanske det inte finns från början av det här området. I detta fall länkas adresserna för variablerna som specificeras i relativa adresser från början av programmodulen till minnesadresser, med hänsyn tagen till programmodulens rörelse.

Systemmjukvara

Länka till int a, b; ... a + b

om programmet körs i virtuellt snarare än fysiskt minne, kan laddningsprocessen vara något annorlunda. En programmodul anses konventionellt laddad i ett visst virtuellt adressutrymme (med eller utan att flytta både hela programmet och dess individuella segment). Den faktiska laddningen av programmet i minnet utförs redan i processen att köra programmet i delar (segment, sidor), och upprättandet av korrespondensen (eller länkningen) av virtuella och fysiska adresser utförs dynamiskt av operativsystemet använda lämplig hårdvara.

Systemmjukvara

Länka till int a, b; ... a + b

Om en variabel är definierad som automatisk (lokal inne i en funktion eller ett block), så placeras den på programstacken:

under översättningen bestäms dess dimension och kommandon genereras som reserverar minne för den i stacken vid tidpunkten för inträde i funktionskroppen (blocket). Det vill säga, under översättning är variabeln endast associerad med en relativ adress i programstacken;

bindning av en lokal variabel med dess adress i stacksegmentet utförs vid exekvering i ögonblicket för inmatning av funktionskroppen (blocket). Detta sätt att binda i en rekursiv funktion har lika många "instanser" av lokala variabler som antalet gånger funktionen anropar sig själv.

Programvara (programvara, mjukvara) - en uppsättning program som körs av ett datorsystem. Programvara är en integrerad del av ett datorsystem. Det är en logisk fortsättning på tekniska medel. Tillämpningsområdet för en viss dator bestäms av programvaran som skapats för den. Datorn själv har ingen kunskap om någon applikation. All denna kunskap är koncentrerad i program som körs på datorer. Programvara (programvara, mjukvara) - en uppsättning program som körs av ett datorsystem. Programvara är en integrerad del av ett datorsystem. Det är en logisk fortsättning på tekniska medel. Tillämpningsområdet för en viss dator bestäms av programvaran som skapats för den. Datorn själv har ingen kunskap om någon applikation. All denna kunskap är koncentrerad i program som körs på datorer.


Alla program som körs på en dator kan villkorligt delas in i tre typer: applikationsprogram som direkt säkerställer prestanda för det arbete som krävs av användarna; applikationsprogram systemprogram utformade för att styra driften av ett datorsystem, utföra olika hjälpfunktioner, till exempel: systemprogram för att hantera datorresurser; göra kopior av den information som används; kontroll av prestanda hos datorenheter; utfärdande av referensinformation om en dator, etc.; instrumentella mjukvarusystem som underlättar processen att skapa nya program för en dator. instrumentella mjukvarusystem




Ett applikationsprogram är vilket specifikt program som helst som underlättar lösningen av ett problem inom ett givet problemområde. Däremot bidrar inte operativsystemet eller verktygslådan direkt till att möta slutanvändarnas behov. Applikationsprogram kan användas antingen autonomt, det vill säga för att lösa den tilldelade uppgiften utan hjälp av andra program, eller som en del av mjukvarusystem eller paket.




Dokumentredigerare är den mest använda typen av applikationsprogram. De låter dig förbereda dokument mycket snabbare och mer bekvämt än att använda en skrivmaskin. Textredigerare kan tillhandahålla en mängd olika funktioner, nämligen: Tabellprocessorer Tabellprocessorer är ett bekvämt verktyg för att utföra redovisning och statistiska beräkningar. Varje paket innehåller hundratals inbyggda matematiska funktioner och statistiska databehandlingsalgoritmer. Dessutom finns kraftfulla verktyg för att länka tabeller till varandra, skapa och redigera elektroniska databaser. Programvarupaket för datorstödd design (CAD) eller CAD (Computer-Aided Design) utformat för att skapa ritningar, design och/eller teknisk dokumentation och/eller 3D-modeller. Bland de små och medelklassens system i världen är det mest populära systemet AutoCad från AutoDesk. Inrikespaket med liknande funktioner - Kompass


Med grafiska redigerare kan du skapa och redigera ritningar. De enklaste redigerarna ger möjlighet att rita linjer, kurvor, måla områden på skärmen, skapa inskriptioner i olika typsnitt, etc. De flesta redigerare låter dig bearbeta bilder som erhållits med skannrar. Representanter för grafiska redaktörer är Adobe Photoshop, Corel Draw. Databashanteringssystem (DBMS) låter dig hantera stora informationsmatriser - databaser. Programvarusystem av denna typ låter dig bearbeta informationsmatriser på en dator, tillhandahålla inmatning, sökning, sortering, urval av poster, sammanställning av rapporter, etc. Representanter för denna klass av program är Microsoft Access, Clipper, Paradox, FoxPro. Integrerade system kombinerar funktionerna hos ett databashanteringssystem, kalkylbladsprocessor, ordbehandlare, affärsgrafiksystem och ibland andra funktioner. Som regel har alla komponenter i ett integrerat system ett liknande gränssnitt, vilket gör det lättare att lära sig hur man arbetar med dem. Representanter för integrerade system är Microsoft Office och dess gratis motsvarighet Open Office.


Systemprogram körs tillsammans med applikationsprogram och används för att hantera datorresurser av centralprocessorn, minnet och input-output. Dessa är program av allmänt bruk, som är avsedda för alla datoranvändare. Systemprogramvaran är utformad så att en dator effektivt kan köra applikationsprogram.


Systemprogramvaran kan delas in i: Basprogramvara - den minsta uppsättningen programvaruverktyg för att säkerställa driften av en dator. Den grundläggande programvaran inkluderar: ett operativsystem; operativa skal (textuella och grafiska), nätverksoperativsystem. Serviceprogram och programvarukomplex som utökar kapaciteten hos den grundläggande programvaran och organiserar en mer bekväm miljö för användaren - verktyg.


Ett operativsystem är ett komplex av sammankopplade systemprogram, vars syfte är att organisera användarens interaktion med en dator och exekveringen av alla andra program. Operativsystemet kan kallas en mjukvarufortsättning av datorstyrenheten. Operativsystemet döljer för användaren komplexa onödiga detaljer om interaktion med hårdvaran och bildar ett lager mellan dem. Som ett resultat blir människor befriade från det mycket tidskrävande arbetet med att organisera interaktion med datorhårdvara. Dessutom är det operativsystemet som ger möjligheten att anpassa datorn: OS bestämmer från vilka komponenter datorn som den är installerad på är sammansatt och konfigurerar sig själv för att arbeta med dessa komponenter. Skal är program utformade för att göra det lättare att arbeta med komplexa programvarusystem som DOS. De förvandlar det besvärliga kommandoanvändargränssnittet till ett vänligt grafiskt eller "meny"-gränssnitt. Skal ger användaren bekväm filåtkomst och omfattande tjänster. Nätverksoperativsystem är en uppsättning program som tillhandahåller bearbetning, överföring och lagring av data i nätverket. Nätverksoperativsystemet ger användarna olika typer av nätverkstjänster (filhantering, e-post, nätverkshanteringsprocesser, etc.), stödjer arbete i abonnentsystem.


Utilities (lat. Utilitas användning) - antingen utöka och komplettera motsvarande funktioner i operativsystemet, eller lösa oberoende viktiga uppgifter. Låt oss kort beskriva några typer av verktyg: program för övervakning, testning och diagnostikprogram - packare (arkivering) program - drivrutiner antivirusprogram program för att skapa säkerhetskopior av informationsprogram för minneshanteringsprogram för att optimera och övervaka kvaliteten på diskutrymmet; program för optimera och övervaka kvaliteten på diskutrymmet; kommunikationsprogram m.m.


Kontroll-, test- och diagnostikprogram som används för att kontrollera att datorenheter fungerar korrekt och för att upptäcka fel under drift; ange orsaken och platsen för felet; drivrutinsprogram som utökar operativsystemets möjligheter för att hantera in- och utdataenheter, RAM, etc.; med hjälp av drivrutiner är det möjligt att ansluta nya enheter till datorn eller icke-standardiserad användning av befintliga; Packningsprogram (arkiverare) som tillåter användning av speciella algoritmer för packning av information för att komprimera information på diskar, d.v.s. skapa mindre kopior av filer, samt kombinera kopior av flera filer till en arkivfil. Användningen av arkiveringsprogram är mycket användbar när du skapar ett arkiv med filer, eftersom det i de flesta fall är mycket bekvämare att lagra dem efter att ha komprimerat dem tidigare med arkiveringsprogram. Representanter för dessa program är WinRar och WinZip.


Antivirusprogram utformade för att förhindra infektion med datavirus och eliminera konsekvenserna av infektion med virus; Representanter för antivirusprogramfamiljen - Kaspersky Antivirus, DrWeb, Norton Antivirus. Med program för att skapa säkerhetskopior av information kan du med jämna mellanrum kopiera viktig information som finns på din dators hårddisk till ytterligare media. Representanter för säkerhetskopieringsprogram - APBackUp, Acronis True Image, diskutrymmesoptimering och kvalitetskontrollprogramvara; kommunikationsprogram är utformade för att organisera utbyte av information mellan datorer. Dessa program låter dig enkelt överföra filer från en dator till en annan genom att ansluta deras seriella portar med en kabel. En annan typ av sådana program tillåter datorer att kommunicera över telefonnätet (om ett modem finns tillgängligt). De gör det möjligt att skicka och ta emot faxmeddelanden. Representanter för kommunikationsprogram - Venta Fax, Cute FTP. minneshanteringsprogram som ger mer flexibel användning av RAM;


Verktyg är program som används vid utveckling, revidering eller utveckling av andra applikationer eller systemprogram. Mjukvaruutvecklingsverktyg kan ge hjälp i alla stadier av mjukvaruutveckling. Genom sitt syfte ligger de nära programmeringssystem, programmeringssystem.


Ett programmeringssystem är ett system för att utveckla nya program på ett specifikt programmeringsspråk. Moderna programmeringssystem förser vanligtvis användare med kraftfulla och lättanvända programmeringsverktyg. De inkluderar: en kompilator eller tolk, en kompilator eller en tolk, en integrerad utvecklingsmiljö; verktyg för att skapa och redigera programtexter; omfattande bibliotek med standardprogram och funktioner; felsökningsprogram, dvs. program som hjälper till att hitta och åtgärda fel i programmet; kraftfulla grafikbibliotek; verktyg för att arbeta med bibliotek, inbyggd hjälptjänst; andra detaljer.


Translator (engelsk översättare översättare) är ett översättarprogram. Den konverterar ett program skrivet på ett av högnivåspråken till ett program som består av maskininstruktioner. Översättare implementeras som kompilatorer eller tolkar. Kompilator och tolk skiljer sig markant från synvinkeln att utföra arbetet. Kompilatorn (engelsk kompilator, kompilator, samlare) läser hela programmet som helhet, gör dess översättning och skapar en komplett version av programmet på maskinspråk, som sedan exekveras. Tolken översätter och utför programmet rad för rad. När programmet väl är kompilerat behövs varken originalprogrammet eller kompilatorn längre. Samtidigt måste programmet som behandlas av tolken översättas till maskinspråk varje gång programmet startas. Kompilerade program går snabbare, men tolkade program är lättare att fixa och ändra. Populära programmeringssystem - Turbo Basic, Quick Basic, Turbo Pascal, Turbo C. Borland C ++, Borland Delphi, etc.


De flesta system idag flyter smidigt till webben. World Wide Web drar in fler och fler applikationer. Databaser skaffar webbaserade användargränssnitt istället för tidigare skrivbordsapplikationer. I slutändan kan man förvänta sig att slutanvändaren bara behöver en webbläsare för att kunna tillfredsställa alla möjliga mjukvarubehov. I det här fallet bryr sig inte användaren vilket operativsystem som styr den lokala datorn, det viktigaste är serverns tillförlitlighet och prestanda. (Till exempel kan Microsoft Office installeras på fjärrservrar snarare än på slutanvändarsystem, men det kommer att starta applikationer lika snabbt som på lokala datorer.) Därmed kommer alla program att kunna köras både lokalt och på distans via webben.

1 rutschkana

Presentationen för lektionen skapades av: lärare i informatik MCOU "Basinskaya OOSh" Gaidukova Anna Andreevna * *

2 rutschkana

En skrivare; CPU; Tangentbord; Flashminne; Övervaka; BAGGE; CD-ROM-enhet. Utan vilken av följande enheter kan datorn inte fungera: **

3 rutschkana

Bestäm den möjliga volymen för följande media med hjälp av de angivna svarsalternativen (1,44 MB, 700 MB, 120 GB, 512 MB, 4,7 GB): CD-R; DVD-R; Flashminne; Diskett; Hårdmagnetisk disk. **

4 rutschkana

Fyll i tabellen * * Enhetsåtgärd med information (lagring, inmatning, utdata, bearbetning) Processor RAM Hårddisk CD-RW Tangentbord Monitor Skrivare

5 rutschkana

Andrey har ett TETRIS-spel på sin dators hårddisk. Hans vän Kolya har inte ett sådant spel. Vad behöver Andrey göra för att Kolya ska kunna spela det här spelet på sin hemdator (observera att Kolyas dator inte är ansluten till internet)? **

6 rutschkana

* Datorprogram Operativsystem - säkerställer gemensam drift av alla datorenheter och ger användaren tillgång till dess resurser med hjälp av operativsystemets grafiska gränssnitt. Enhetsdrivrutiner är speciella program som styr driften av datorenheter och koordinerar informationsutbyte med andra enheter (varje enhet har sin egen drivrutin). *

7 rutschkana

* Operativsystemets funktioner Testning av enskilda noder av hårdvara, minne och andra hårdvarukomponenter Para ihop ett applikationsprogram med hårdvara (speciella program - drivrutiner används för detta) Använda en dator i multiprogramläge (dvs flera program kan köras samtidigt ), medan operativsystemet övervakar fördelningen av interna resurser och sekvensen för kommandoexekvering För användarens bekvämlighet med en dator används ett gränssnitt - en uppsättning verktyg och regler för interaktion mellan en dator och en person *

8 rutschkana

9 rutschkana

* Installera operativsystemet Installera operativsystemet - operativsystemfilerna kopieras från distributionsdisken till datorns hårddisk. Operativsystemfiler lagras i ett icke-flyktigt minne på en hårddisk som kallas systemdisken. Ett operativsystem, precis som andra program, kan köras om det finns i datorns RAM. Därför är det nödvändigt att ladda OS-filer från systemdisken till RAM. *

10 rutschkana

* Starta upp operativsystemet Uppstart av operativsystemet startar i ett av tre fall - efter: strömmen till datorn slås på; trycka på återställningsknappen på datorsystemenheten; samtidig tryckning av en kombination av tangenter på tangentbordet: (Ctrl) + (Alt) + (Del) I processen att ladda OS: testa funktionaliteten hos processorn, minnet och andra enheter; Korta diagnostiska meddelanden om testprocessen visas på bildskärmen efter att operativsystemet har laddats klart, användaren kan styra datorn med det grafiska gränssnittet för operativsystemet. *

11 rutschkana

12 rutschkana

* Standard Windows Paint-program - en grafisk redigerare som låter dig skapa, visa och redigera ritningar eller skannade fotografier Imaging - används för att visa och redigera grafiska filer, såsom digitala ritningar eller skannade fotografier Miniräknare - en elektronisk miniräknare är analog med en konventionell handhållen miniräknare Notepad - en textredigerare , som används för att skapa och redigera textfiler i ett enkelt format WordPad - en textredigerare, som används för att skapa och formatera textfiler med komplex formatering *

13 rutschkana

* Applikationsprogram En applikation är ett program som gör det möjligt att bearbeta text-, grafik-, numerisk, ljud- och videoinformation för att arbeta i datornätverk utan att kunna programmera. Applikationen körs under ett specifikt operativsystem. Typer av applikationer: 1. Allmänna applikationer (kalkylatorer, kalkylblad, text-, ljud- och grafikredigerare, multimediaspelare, databaser, program för presentationsutveckling, kommunikationsprogram, etc.). 2. Ansökningar för speciella ändamål (bokföringsprogram, uppslagsverk, utbildningsprogram, automatiska översättningssystem, programmeringssystem, datorspel, etc.) *


  • Software (SW) är en uppsättning specialprogram som gör det möjligt att organisera informationsbehandling med hjälp av en PC.
  • Typer av programvara:

Systemmjukvara

Programvara

Programmeringssystem (mjukvaruverktyg)

  • Eftersom en dators funktion är omöjlig utan programvara är den en integrerad del av vilken dator som helst.

SYSTEMMJUKVARA

Systemprogramvara är en uppsättning program som säkerställer en dators prestanda (en uppsättning program som hanterar RAM, processor, externa enheter och filer som för en dialog med användaren). Huvuddelen av systemprogramvaran är operativsystemet (OS). Operativsystemet har mycket arbete: för att öppna något program måste det hittas på hårddisken, placeras i RAM, efter att ha hittat ledigt utrymme där, "starta" processorn för att köra programmet, kontrollera driften av alla enheter medan programmet körs, och i händelse av fel, utför diagnostik och visa ett meddelande för användaren.


De vanligaste operativsystemen är:


SYSTEMMJUKVARA

Interaktivt läge:

OS visar en uppmaning om någon åtgärd. Som svar utfärdar användaren ett specifikt kommando. Detta kan vara en operation med filer (kopiera, ta bort), ett kommando för att rapportera aktuellt datum eller tid, etc.

Serviceprogram:

Diskunderhållsprogram (kopiering, formatering, "härdning" etc.);

Program för komprimering av diskfiler (arkivering);

Program för att bekämpa datavirus.


PROGRAMVARA

Program med vilka användaren kan lösa sina problem utan att tillgripa programmering kallas applikationsprogram.

Alla användare föredrar att ha en uppsättning applikationer som nästan alla behöver. De kallas PROGRAMVARA FÖR ALLMÄN ANVÄNDNING.

Dessa inkluderar:

  • Dessa inkluderar:

Text- och grafikredigerare (du kan skriva, rita);

Databashanteringssystem (DBMS) (olika referensböcker);

Tabellformade processorer som möjliggör beräkningar;

Kommunikationsprogram (nätverk) utformade för att utbyta information med andra datorer, förenade i ett datornätverk.


PROGRAMVARA

Dessutom finns ett stort antal specialansökningar för yrkesverksamhet. De kallas ofta

APPLIKATIONSPAKET.

Detta är till exempel:

Bokföringsprogram,

Datorstödda designsystem,

Utbildningsprogram i olika ämnen,

Program för arbete med olika medicinska

enheter (ultraljud, etc.).


Verktygsprogramvara eller programmeringssystem (SP)

System för utveckling av nya program i ett programmeringsspråk. Det är ett verktyg för en programmerares jobb. Varje joint venture är fokuserat på ett specifikt programmeringsspråk.

Det finns många programmeringsspråk: Pascal, Fortran, C, assembler, etc. På dessa språk skriver en programmerare program, och med hjälp av programmeringssystem tar han in dem i en dator, felsöker, testar och kör.


Bild 2

Organisation av minnet

Det fysiska minnet som processorn har tillgång till via adressbussen kallas för random access memory (eller random access memory - RAM). RAM är organiserat som en sekvens av celler - byte. Varje byte har sin egen unika adress (dess nummer), som kallas fysisk. Värdeintervallet för fysiska adresser beror på bredden på processoradressbussen. För 80486 och Pentium varierar det från 0 till 232 - 1 (4 GB). För PentiumPro / II / III / IV-processorer är detta intervall bredare - från 0 till 236 - 1 (64 GB). 8086:an hade 1 MB minne med en tjugobitars adressbuss från 0 till 220-1.

Bild 3

Processorns hårdvara stöder två modeller av RAM-användning: I en segmenterad modell tilldelas ett program sammanhängande minnesområden (segment), och programmet självt kan endast komma åt data som finns i dessa segment. Sidmodellen kan ses som en tillägg -på över den segmenterade modellen. Huvudapplikationen för denna modell är förknippad med organisationen av virtuellt minne, vilket gör att operativsystemet kan använda ett minnesutrymme för drift av program som är större än mängden fysiskt minne genom att kombinera RAM och externt minne till ett enda adressutrymme.

Bild 4

Förresten, ett annat namn för en fysisk adress är en linjär adress. Denna dualitet i namnet beror just på närvaron av en sidmodell för organisationen av RAM. Dessa namn är synonyma endast när översättning av personsökningsadress är inaktiverad (i verkligt läge är personsökning alltid inaktiverad). I personsökningsmodellen har linjära och fysiska adresser olika betydelser. Minneshanteringsmekanismen är helt hårdvarubaserad och gör det möjligt att tillhandahålla: kompakt lagring av adresser i en maskininstruktion, flexibilitet för adresseringsmekanismen, skydd av adressutrymmen för uppgifter i ett multitasking-system, stöd för virtuellt minne;

Bild 5

I 80x86-familjen av processorer bestäms valet av minnesåtkomstmetod av processorns driftläge. I verkligt läge kan processorn bara komma åt den första megabyten av minne, vars adresser sträcker sig från 00000 till FFFFF i hexadecimal. I detta fall arbetar processorn i ett enkelprogramsläge (dvs. vid en given tidpunkt kan den endast exekvera ett program). Men i detta fall kan han avbryta dess exekvering när som helst och byta till proceduren för att bearbeta ett avbrott som tagits emot från en av kringutrustningen. Alla program som processorn kör för närvarande tillåts åtkomst utan begränsning till minnesområden som finns inom den första megabyten: till RAM - för läsning och skrivning, och till ROM, naturligtvis, endast för läsning. Processorns verkliga driftläge används i MS DOS-operativsystemet, såväl som i Windows 95 och 98 vid uppstart i MS DOS-emuleringsläget.

Bild 6

I skyddat läge kan processorn köra flera program samtidigt. I det här fallet kan varje process (dvs ett program som körs) tilldelas upp till 4 GB RAM. För att förhindra ömsesidig påverkan av program som körs på varandra tilldelas de isolerade minnesområden. Sådana operativsystem som MS Windows och Linux fungerar i skyddat läge. I virtuellt adresseringsläge för 8086, fungerar den senare faktiskt i skyddat läge. För varje uppgift skapas en egen virtuell maskin, som tilldelas ett isolerat 1 MB minnesområde, och driften av 80x86-processorn i verkligt adresseringsläge emuleras helt. Till exempel, i Windows 2000 och XP skapas en virtuell 8086-maskin varje gång användaren startar ett kommandotolkfönster (MS DOS-session).

Bild 7

Verkligt adresseringsläge De utmärkande egenskaperna hos den fysiska minnesadresseringsmekanismen i verkligt läge är följande: Området för fysisk adressändring är från 0 till 1 MB, eftersom endast 20 minst signifikanta bitar av adressbussen används för adressering. av minne adresserat med 16-bitars register är 64 Kbytes.åtkomst till en specifik fysisk adress i alla tillgängliga direktminnen använder minnessegmentering, dvs. dela upp det tillgängliga adressutrymmet i 64 KB-segment och använda istället för en fysisk logisk adress i formen:, dvs. kombinationer av segmentstartadress och intrasegmentoffset 16-bitars segmentstartadress placeras i ett av sex segmentregister (CS, DS, ES, SS, FS eller GS) Program fungerar direkt på endast en 16-bitars offset specificerad relativ till segmentets start

Bild 8

Den minst signifikanta hexadecimala siffran i adressen för varje segment är noll, dvs. adressen för ett segment kommer alltid att vara en multipel av 16 byte. Segmentgränserna är lokaliserade var 16:e byte av fysiska adresser. Var och en av dessa 16-byte bitar kallas ett stycke.

Bild 9

Adresserna som anges i program i formen "segmentoffset" omvandlas automatiskt av processorn till 20-bitars linjära adresser under utförandet av kommandot enligt följande:

Bild 10

Exempel: byte specificerad i segmentoffsetform: 8000: 0250 i hexadecimal transkription. Logisk adress: 8000: 0250 –––––––––––––––––––––––––––– Segment: 80000 + Offset: 0250 ––––––– – –––––––––––––––––––– Fysisk adress: 80250 Ett typiskt program skrivet för 80x86-familjen har vanligtvis tre segment: kod, data och stack. När programmet startar laddas deras bassegmentadresser in i CS-, DS- respektive SS-registren. I de tre återstående registren ES, FS och GS kan programmet lagra pekare till ytterligare segment.

Bild 11

Nackdelarna med denna minnesorganisation: segment allokeras okontrollerat från vilken adress som helst som är en multipel av 16 (eftersom innehållet i segmentregistret skiftas av hårdvara med 4 bitar), och som ett resultat kan programmet komma åt alla adresser, inklusive de som inte riktigt existerar, har en maximal storlek 64KB segment kan överlappa med andra segment

Bild 12

Skyddat adresseringsläge Vid drift i skyddat läge kan varje program tilldelas ett minnesblock upp till 4 GB i storlek, vars adresser i hexadecimal notation kan variera från 00000000 till FFFFFFFF. Det sägs att programmet tilldelas ett linjärt adressutrymme. I det skyddade läget lagrar segmentregister (CS, DS, SS, ES, FS, GS) inte 16-bitars bassegmentadresser, utan väljarpekare till segmentbeskrivningar som finns i en av systembeskrivningstabellerna ... Baserat på informationen i deskriptorn bestämmer operativsystemet de linjära adresserna för programsegment. Det finns två varianter av tabeller: GlobalDescriptorTable (global deskriptortabell) och LocalDescriptorTables (lokala deskriptortabeller).

Bild 13

Segmentdeskriptorväljarstruktur: Deskriptorn består av 8 byte, som inkluderar bassegmentets adress, storlek och annan information:

Bild 14

Deskriptor 0 är olaglig — den kan säkert laddas in i segmentregistret för att indikera att segmentregistret för närvarande inte är tillgängligt, men ett avbrott genereras när man försöker använda det. I ett typiskt program skrivet för skyddat läge finns det vanligtvis tre segment: kod, data och stack, information om vilka lagras i de tre segmentregistren som listas nedan. CS-registret lagrar pekaren till programkodsegmentbeskrivningen DS-registret lagrar pekaren till SS-registret lagrar pekaren tilln

Bild 15

Omvandlingen av ett väljarförskjutningspar till en fysisk adress är som följer: Om personsökning är inaktiverad (med hjälp av en bit i det globala kontrollregistret), tolkas den linjära adressen som en fysisk adress och skickas till minnet för läsning eller skrivning. Å andra sidan, om personsökning är tillgänglig, tolkas den linjära adressen som en virtuell adress och mappas till den fysiska adressen med hjälp av sidtabellen.

Bild 16

I skyddat läge stöds hårdvaruminnesmodeller: FlatModel (platt, solid eller linjär modell) - minnesorganisation där alla segment mappas till ett enda linjärt adressområde. För att göra detta pekar deskriptorer för alla segment på samma minnessegment, vilket motsvarar hela 32-bitars fysiska adressutrymmet på datorn. För en platt modell måste minst två deskriptorer genereras, en för kodreferenser och en för datareferenser.

Bild 17

Deskriptorer lagras i en speciell systemtabell som kallas Global Descriptor Table (GDT). För en platt modell har varje deskriptor en basadress lika med 0. Värdet på fältet som definierar segmentgränsen multipliceras med processorn med det hexadecimala talet 1000. Segment kan täcka hela 4-gigabyte-intervallet av fysiska adresser, eller endast de adresser som är mappade till fysiskt minne. Om du ställer in segmentgränsen till 4 gigabyte, förhindrar segmenteringsmekanismen att undantag kastas för minnesreferenser som korsar segmentgränsen.

Bild 18

Denna modell gör det möjligt att utesluta segmenteringsmekanismen från systemarkitekturen, eftersom alla minnesoperationer refererar till ett gemensamt minnesutrymme. Ur en programmerares synvinkel är denna modell den enklaste att använda, eftersom ett enda 32-bitars heltal är tillräckligt för att lagra adressen till vilken variabel eller kommando som helst.

Bild 19

MultisegmentedModel Varje program har sin egen segmentdeskriptortabell som kallas Local Descriptor Table (LDT). I det här fallet blir det möjligt för varje process att skapa sin egen uppsättning segment som inte överlappar med segmenten i andra processer. Som ett resultat är varje segment i ett isolerat adressutrymme.

Bild 20

Figuren visar att varje post i den lokala deskriptortabellen definierar ett annat minnessegment. Varje segmentbeskrivning anger dess exakta längd. Till exempel är ett segment som börjar på adress 3000 2000 byte långt i hex, eftersom segmentgränsbeskrivningsfältet är 0002 och 0002x1000 = 2000. I analogi är längden på segmentet som börjar vid adress 8000 lika med A000. Det bör noteras att den platta modellen är implementerad som ett specialfall av en segmenterad modell, när programmet kommer åt ett segment för vilket hela det linjära utrymmet är allokerat.

Bild 21

Personsökning Denna modell är en form av minneshantering för att simulera ett stort icke-segmenterat adressutrymme med användning av en del av diskminnet och ett fragmenterat adressutrymme. Ger tillgång till datastrukturer som är större än storleken på det tillgängliga minnet, lagrar dem dels i RAM och dels på disk. I denna modell är det linjära adressutrymmet uppdelat i block av samma storlek (vanligtvis 4 KB), kallade sidor (sida).

Bild 22

Figuren visar en linjär adress uppdelad i tre fält: Directory, Page och Offset. Katalogfältet används som ett index i sidkatalogen för att lokalisera pekaren till rätt sidtabell.

Bild 23

Sidfältet bearbetas sedan som ett index i sidtabellen för att hitta den fysiska adressen till sidblocket. För att erhålla den fysiska adressen för den önskade byten eller ordet, läggs det sista offsetfältet till sidblockadressen. Som ett resultat kan du enkelt få den totala mängden RAM som används i alla program som körs på din dator att överstiga mängden verkligt minne på din dator. Det är därför personsökningsminne mycket ofta kallas virtuellt minne. Det virtuella minnessystemets hälsa säkerställs av ett speciellt program som är en del av operativsystemet som kallas virtuell minneshanterare.

Bild 24

Minnessökningsorganisationen är den bästa lösningen på problemet med otillräckligt minne. Faktum är att innan exekvering påbörjas måste alla program laddas i RAM, vars storlek alltid är begränsad (till exempel på grund av designfunktionerna hos en dator eller priset på en minnesmodul). Datoranvändare laddar vanligtvis flera program i minnet samtidigt för att kunna växla mellan dem under sitt arbete (till exempel byta från ett fönster till ett annat). Å andra sidan är mängden diskminne mycket större än mängden RAM i en dator, och dessutom är detta minne mycket billigare. Därför, genom att använda diskminne vid personsökningsminne, får användaren intrycket att han har obegränsat RAM-minne. Naturligtvis måste du betala för allt: hastigheten för åtkomst till diskminne är flera storleksordningar lägre än för RAM.

Bild 25

När programmet körs kan delar av dess RAM-minne (eller sidor) som inte används för tillfället sparas smärtfritt på disken. De säger att en del av uppgiften byts ut till disk. Det är vettigt att bara lagra de sidorna i datorns RAM som processorn aktivt kommer åt, till exempel kör den någon programkod. Om processorn måste komma åt en sida med minne som för närvarande är preemptad till disk, uppstår ett systemfel (eller avbrott) på grund av en saknad sida (pagefault). Detta fel hanteras av operativsystemets virtuella minneshanterare, som hittar en sida på disken som innehåller den nödvändiga koden eller data och laddar den till ett ledigt område med RAM.

Bild 26

Nära relaterat till virtuellt minne är ämnet säkerhet. Pentium stöder fyra skyddsnivåer, där nivå 0 är den mest privilegierade och nivå 3 den minst privilegierade. Vid varje tidpunkt är ett pågående program på en viss nivå. Varje segment i systemet har också sin egen nivå.

Bild 27

Nivå 0 är operativsystemets kärna, som hanterar I/O-bearbetning, minneshantering och andra primära problem. På nivå 1, en systemanropshanterare. Användarprogram på denna nivå kan komma åt procedurer för att göra systemanrop, men bara till en specifik och skyddad lista med procedurer. Nivå 2 innehåller biblioteksrutiner, möjligen delade av flera program som körs. Användarprogram kan anropa dessa procedurer och läsa deras data, men kan inte ändra dem. Slutligen körs användarprogram på nivå 3, vilket är det minst säkra.

Visa alla bilder

Dela detta