Konseptet med å bygge operativsystemer. Det modulære prinsippet for å bygge en datamaskin og operativsystem. Grunnleggende OS-funksjoner

OS-implementeringseksempler (bruker Windows OS som eksempel)

Verktøy for utvikling og feilsøking av OS-komponenter

64. Verktøy for Windows XP. De viktigste egenskapene til verktøysettet for analyse og utvikling av OS-komponenter: minne, prosesser og tråder, input-output, feilsøking. Ved hjelp av en dump.

Grunnleggende konsepter for å bygge et OS.

0) Prinsippet om modularitet.

Modul– et funksjonelt komplett element, utført i samsvar med det aksepterte intermodulære grensesnittet. Modulen skiller seg ut i henhold til dens funksjonalitet. Den modulære organisasjonen gjør det enkelt å (ut)erstatte moduler som ikke fungerer i operativsystemet.

1) Prinsippet om funksjonell selektivitet.

For å organisere effektiv drift av operativsystemet, er det nødvendig å allokere og lagre noen moduler som utgjør RAM kjerne:

· Moduler for å administrere avbruddssystemet;

· Kontrollverktøy for programkjøring (lasting, pause, stopp);

· Prosesskontrollmoduler (prosessortidsfordeling), d.v.s. programledere;

· Moduler for håndtering av minneallokering. Avhengig av OS, kan kjernen også inneholde andre moduler;

· Transitmoduler (lastes inn i RAM etter behov; hvis det ikke er nok RAM, kan de losses).

2) Prinsippet om OS-generering.

Innebærer muligheten til å generere et OS avhengig av maskinvaren. Genereringsprosessen utføres vanligvis én gang, før en ganske lang driftsperiode. For å generere trenger du flere komponenter:

· OS kildekode;

· Kompiler fra programmeringsspråket som systemet er skrevet på;

· Et spesielt program og inndataspråk for det, som lar deg kontrollere generasjonsprosessen.

3) Prinsippet om funksjonell redundans.

OS må inneholde flere typer programvare for å utføre de samme funksjonene (støtte for forskjellige filsystemer).

4) Prinsippet om virtualisering.

Lar deg representere OS-ressurser i form av et spesifikt sett med planleggere og overvåkere og bruker et enhetlig ressursallokeringsskjema. Den største manifestasjonen er konseptet med en virtuell maskin (reproduserer arkitekturen til en ekte maskin, men kan ha vilkårlige egenskaper).

5) Prinsippet om uavhengighet av programmer fra eksterne enheter.

Koblingen av programmer med en spesifikk ekstern enhet utføres ikke på oversettelsesstadiet, men på stadiet av programutførelse. Resultatet er en fordel: ingen unødvendig "rekompilering" er nødvendig.

6) Prinsippet om kompatibilitet.

Muligheten til å kjøre programmer for et annet OS eller til og med en annen maskinvareplattform.

2 kompatibilitetsnivåer:

· Av kjørbar kode(binær). Kompatibilitetsbetingelser:

◦ På prosessorkommandonivå (samme plattform);



◦ Kompatible på bibliotekanropsnivå hvis de er dynamisk koblet.

· Av kildekode. Følgende vilkår må være oppfylt:

◦ Tilgjengelighet av en plattformkompilator som programmet er skrevet på;

◦ Kompatibilitet på systemanropsnivå;

◦ Kompatibilitet på bibliotekanropsnivå.

7) Prinsippet om et åpent, skalerbart OS (åpen kildekode).

Integriteten til operativsystemet opprettholdes (UNIX).

8) Prinsippet om mobilitet (portabilitet).

Operativsystemet skal være enkelt å overføre til andre maskinvareplattformer. Regler for å lage bærbare operativsystemer:

· OS må være skrevet på et høynivåspråk som det er en kompilator for på maskinvareplattformen.

· Kode som direkte samhandler med maskinvare bør unngås.

9) Prinsippet om å sikre sikkerhet og beskyttelse.

19. Beskytte systemet mot brukeren;

20. Beskyttelse mot uautorisert tilgang.

OS-arkitektur. Det er 3 grunnleggende typer operativsystemarkitektur:

Monolittisk arkitektur;

OS har ikke en klart definert intern struktur. Det er ganske enkelt et sett med prosedyrer som deler felles globale data og kalles opp av hverandre eller av brukeren.

De aller første generasjonene av operativsystemer hadde denne arkitekturen.

· Det er problemer: utvidbarhet, portabilitet og OS-kompatibilitet;

Arkitektur på flere nivåer;

dukket opp som et svar på begrensningene til monolitisk arkitektur når det gjelder utvidbarhet, portabilitet og kompatibilitet.

Hovedide:

0) Den generelle funksjonaliteten til operativsystemet er delt inn i lag, for eksempel maskinvareadministrasjonslag, minneadministrasjonslag, filsystemlag, prosessadministrasjonslag, etc.

1) For hvert nivå bestemmes interaksjonsgrensesnittet, dvs. et visst regelverk som man skal søke om tjenester på et gitt nivå etter.

2) Samspillet mellom nivåer er strukturert på en slik måte at hvert nivå kan be om tjenester kun fra det tilstøtende underliggende nivået gjennom grensesnittet.

3) De interne datastrukturene på hvert nivå er ikke tilgjengelige for andre nivåer, og implementeringene av nivåets prosedyrer er skjulte og er ikke avhengige av implementeringene av prosedyrene på andre nivåer.

En forutsetning for å dele funksjonalitet inn i nivåer er samhandling kun mellom tilstøtende nivåer. Direkte tilgang til et hvilket som helst nivå uten å gå gjennom det tilstøtende nivået er forbudt.

Karakteristisk vertikal hierarkisk fordeling av funksjonalitet.

Klient-server-arkitektur basert på en mikrokjerne.

Det er det mest avanserte når det gjelder utvidbarhet og portabilitet av operativsystemer.

Idé: Alle OS-komponenter er delt inn i tjenesteleverandørprogrammer (serverprogrammer som utfører bestemte handlinger etter forespørsler fra andre programmer) og tjenesteforbrukerprogrammer (klientprogrammer som får tilgang til servere for å utføre bestemte handlinger).

Serverprosesser som kjører i systemet er konstant i en tilstand av å vente på klientforespørsler. Klienter sender forespørsler til servere om å levere de tjenestene de trenger, som serveren oppfyller, hvoretter den sender en melding til klienten om fullføringen av oppgaven og resultatene av arbeidet.

Klienter og servere kommuniserer ikke direkte. Hvis en prosess krever tjenester fra OS, sender den en tilsvarende melding til avsenderen som en del av OS mikrokjernen. Ved mottak av en forespørsel identifiserer mikrokjernen en server som kan betjene den, vekker prosessen og videresender klientforespørselen til den. I dette tilfellet er selve mikrokjernen en server i forhold til forespørsler knyttet til maskinvareadministrasjon. Ved utføring av forespørsler fra brukerprogrammer henvender systemservere seg til mikrokjernen for maskinvareavhengige tjenester, mens operativsystemserverne selv kjører i oppgavemodus, sammen med brukerprosesser, og ikke har direkte tilgang til maskinvaren.

Karakteristisk horisontal deling av funksjonalitet mellom peer-servere. Samtidig er hver server ansvarlig for å utføre en separat, ganske enkel operasjon og tilsvarer på ingen måte et lag i en flerlagsarkitektur.

Et av de viktigste prinsippene for å bygge et OS er prinsippet om modularitet. En operativsystemmodul er generelt forstått som et funksjonelt komplett element i systemet, laget i samsvar med aksepterte intermodulære grensesnitt. Etter sin definisjon antar en modul evnen til relativt enkelt å erstatte den med en annen hvis de spesifiserte grensesnittene er tilgjengelige. Metodene for å separere komponentene til operativsystemet i separate moduler kan variere betydelig, men oftest skjer inndelingen nøyaktig på funksjonell basis. I stor grad bestemmes inndelingen av systemet i moduler av OS-designmetoden som brukes (bottom-up eller omvendt). Reentrant-programmoduler er spesielt viktige når du bygger et OS, siden de tillater mer effektiv bruk av datasystemressurser (reentrant forstås som en egenskap ved et program som lar flere prosesser kjøre programmet samtidig). Å oppnå reentry implementeres på ulike måter. I noen systemer kommer programmer automatisk inn igjen på grunn av uforanderligheten til kodedeler av programmer under kjøring (på grunn av egenskapene til maskinens instruksjonssystem), samt automatisk distribusjon av registre, automatisk separasjon av kodedeler av programmer fra data og plassering av sistnevnte i systemminneområdet. Naturligvis krever dette passende maskinvarestøtte. I andre tilfeller oppnås dette av programmerere ved bruk av spesielle systemmoduler. Prinsippet om modularitet gjenspeiler de teknologiske og operasjonelle egenskapene til systemet. Den største effekten av bruken er oppnåelig når prinsippet utvides samtidig til operativsystemet, applikasjonsprogrammer og maskinvare.

OS tildeler en viss del av viktige programvaremoduler som må være permanent plassert i RAM for mer effektiv organisering av databehandlingsprosessen. Denne delen av operativsystemet kalles kjernen til operativsystemet, siden det virkelig er grunnlaget for systemet. Når du danner sammensetningen av kjernen, er det nødvendig å ta hensyn til to motstridende krav. Først bør kjernen inkludere de mest brukte systemmodulene. For det andre bør antallet moduler være slik at mengden minne som er okkupert av kjernen ikke er for stor. Kjernen inkluderer som regel moduler for å administrere avbruddssystemet, midler for å overføre prosesser fra kjøretilstand til ventetilstand, klar og tilbake, og midler for å distribuere slike grunnleggende ressurser som RAM og prosessor. I tillegg til programmodulene som er en del av kjernen og er permanent plassert i RAM, kan det være mange andre systemprogrammoduler, som kalles transitt. Transitprogrammoduler til operativsystemet lastes inn i RAM bare når det er nødvendig, og hvis det ikke er ledig plass, kan de erstattes av andre transittmoduler. Begrepet "disk-resident" brukes noen ganger som et synonym for "transit".

Hovedbestemmelsen til prinsippet om OS-generering bestemmer en slik metode for innledende representasjon av det sentrale systemkontrollprogrammet til OS (dets kjerne og hovedkomponenter som må være permanent plassert i RAM), som vil tillate å tilpasse denne systemdelen basert på spesifikk konfigurasjon av et bestemt datakompleks og omfanget av oppgaver som løses. Denne prosedyren utføres sjelden, før en ganske lang periode med drift av operativsystemet. Genereringsprosessen utføres ved hjelp av et spesielt generatorprogram og det tilsvarende inngangsspråket for dette programmet, som lar deg beskrive programvarefunksjonene til systemet og konfigurasjonen av maskinen. Som et resultat av generering oppnås en fullversjon av operativsystemet. Den genererte OS-versjonen er en samling av systemsett med moduler og data. Det ovennevnte prinsippet om modularitet manifesteres positivt når du genererer et OS. Det forenkler betraktelig oppsett av operativsystemet for den nødvendige konfigurasjonen av datasystemet.

Prinsippet om funksjonell redundans tar hensyn til muligheten for å utføre det samme arbeidet på forskjellige måter. OS kan inkludere flere overordnede moduler som administrerer en eller annen type ressurs, flere filbehandlingssystemer og ulike måter å organisere kommunikasjon mellom databehandlingsprosesser på. Dette lar brukere raskt og mest adekvat tilpasse operativsystemet til en spesifikk konfigurasjon av datasystemet, sikre den mest effektive lasting av maskinvare og oppnå maksimal ytelse når de løser en spesifikk klasse av problemer.

Prinsippet om virtualisering lar oss representere strukturen til systemet i form av et visst sett med prosessplanleggere og ressursallokatorer (monitorer) og bruke et enkelt sentralisert skjema for ressursdistribusjon. Den mest naturlige og komplette manifestasjonen av begrepet virtualitet er begrepet en virtuell maskin. Faktisk skjuler ethvert operativsystem, som er et middel for å distribuere ressurser og organisere prosessadministrasjon i henhold til visse regler, ekte maskinvare og andre ressurser fra brukeren og applikasjonene hans, og erstatter dem med noe abstraksjon. Som et resultat ser og bruker brukerne den virtuelle maskinen som en enhet som kan akseptere programmene deres skrevet på et spesifikt programmeringsspråk, kjøre dem og produsere resultater. Med en slik språklig representasjon er ikke brukeren i det hele tatt interessert i selve konfigurasjonen av datakomplekset, eller hvordan man effektivt kan bruke dets komponenter og delsystemer. Den tenker og fungerer i forhold til språket den bruker og ressursene den får i den virtuelle maskinen. Vanligvis reproduserer den virtuelle maskinen som presenteres for brukeren arkitekturen til den virkelige maskinen, men de arkitektoniske elementene i denne representasjonen fremstår med nye eller forbedrede egenskaper, noe som ofte forenkler arbeidet med systemet. Egenskapene kan være vilkårlige, men oftest ønsker brukere å ha sin egen "ideelle" maskin når det gjelder arkitektoniske egenskaper, bestående av følgende:

  • 1. Ensartet driftslogikk (virtuelt) minne med praktisk talt ubegrenset kapasitet. Organiseringen av arbeid med informasjon i slikt minne utføres når det gjelder databehandling (når det gjelder arbeid med datasegmenter på nivået til programmeringsspråket valgt av brukeren);
  • 2. Et vilkårlig antall prosessorer (virtuelle) som kan arbeide parallelt og samhandle under drift. Prosessorkontrollmetoder, inkludert synkronisering og informasjonsinteraksjoner, er implementert og tilgjengelig for brukere på språknivået som brukes når det gjelder prosesskontroll;
  • 3. Et vilkårlig antall eksterne enheter (virtuelle) som er i stand til å arbeide med minnet til en virtuell maskin parallelt eller sekvensielt, asynkront eller synkront med hensyn til driften av en bestemt virtuell prosessor som initierer driften av disse enhetene;
  • 4. Informasjon som overføres eller lagres på virtuelle enheter er ikke begrenset av akseptable størrelser. Slik informasjon er tilgjengelig ved å bruke enten en sekvensiell eller direkte tilgangsmetode i form av det aktuelle filbehandlingssystemet. Utvidelsen av informasjonsdatastrukturer lagret på virtuelle enheter er gitt.

Graden av tilnærming til den "ideelle" virtuelle maskinen kan være større eller mindre i hvert enkelt tilfelle. Jo mer en virtuell maskin, implementert av et OS basert på spesifikk maskinvare, er nær den "ideelle", og derfor, jo mer dens arkitektoniske og logiske egenskaper skiller seg fra de som faktisk eksisterer, jo større grad av virtualitet til maskinen mottatt av brukeren. Et av aspektene ved virtualisering er organiseringen av muligheten til å kjøre applikasjoner på et gitt OS som ble utviklet for andre OS. Vi snakker med andre ord om å organisere flere driftsmiljøer. Implementeringen av dette prinsippet lar et slikt operativsystem ha en veldig sterk fordel fremfor lignende operativsystemer som ikke har denne muligheten.

Prinsippet om programuavhengighet fra eksterne enheter er nå implementert i de aller fleste moderne operativsystemer. Dette prinsippet ligger i det faktum at tilkoblingen av programmer med spesifikke enheter utføres ikke på nivået av programoversettelse, men i løpet av planleggingsperioden for utførelse. Som et resultat er rekompilering ikke nødvendig når du kjører programmet på en ny enhet som dataene er plassert på. Dette prinsippet lar deg utføre kontrolloperasjoner på eksterne enheter på samme måte og uavhengig av deres spesifikke fysiske egenskaper. For eksempel, et program som inneholder behandlingsoperasjoner for et sekvensielt sett med data bryr seg ikke om hvilket medium disse dataene vil bli plassert. Endring av mediet og dataene som er plassert på det (mens de strukturelle egenskapene til dataene forblir uendret) vil ikke medføre noen endringer i programmet hvis uavhengighetsprinsippet er implementert i systemet.

Et aspekt ved kompatibilitetsprinsippet er et operativsystems evne til å kjøre programmer skrevet for andre operativsystemer eller for tidligere versjoner av et gitt operativsystem, så vel som for en annen maskinvareplattform. Det er nødvendig å skille problemer med binær kompatibilitet og kompatibilitet på applikasjonens kildekodenivå. Binær kompatibilitet oppnås når du kan ta et kjørbart program og kjøre det på et annet OS. Dette krever: kompatibilitet på nivå med prosessorinstruksjoner, kompatibilitet på nivå med systemanrop, og til og med på nivå med bibliotekanrop, hvis de er dynamisk koblet. Kompatibilitet på kildenivå krever tilstedeværelse av en passende oversetter som en del av systemprogramvaren, samt kompatibilitet på nivå med biblioteker og systemanrop. I dette tilfellet er det nødvendig å rekompilere de eksisterende kildetekstene til en ny kjørbar modul. Det er mye vanskeligere å oppnå binær kompatibilitet mellom prosessorer basert på ulike arkitekturer. For at en maskin skal kjøre programmene til en annen maskin, må den fungere med maskininstruksjoner som den ikke forstår i utgangspunktet. Løsningen i slike tilfeller er å bruke såkalte applikasjonsmiljøer eller emulatorer. Tatt i betraktning at hoveddelen av programmet som regel består av kall til bibliotekfunksjoner, simulerer applikasjonsmiljøet hele bibliotekfunksjonene ved å bruke et forhåndsskrevet bibliotek med funksjoner med lignende formål, og de resterende kommandoene emulerer hver enkelt separat . Et middel for å sikre kompatibilitet mellom programvare og brukergrensesnitt er deres samsvar med POSIX-standarder. Ved å bruke POSIX-standarder kan du lage programmer som senere enkelt kan overføres fra ett system til et annet.

Prinsippet om et åpent og utvidbart (modifisert, utviklet) OS tillater ikke bare å bruke generasjonsmulighetene, men også å introdusere nye moduler i sammensetningen, forbedre eksisterende osv. Med andre ord er det nødvendig at det er mulig å enkelt gjøre tillegg og endringer om nødvendig, og ikke krenke systemets integritet. Gode ​​muligheter for utvidelse er gitt av klient-server-tilnærmingen for å strukturere operativsystemet ved hjelp av mikrokjerneteknologi. I samsvar med denne tilnærmingen er operativsystemet bygget som en kombinasjon av et privilegert kontrollprogram og et sett med uprivilegerte tjenester - "servere". Hoveddelen av operativsystemet forblir uendret, men samtidig kan nye servere legges til eller gamle forbedres. Dette prinsippet blir noen ganger tolket som prinsippet om systemutvidbarhet.

Prinsippet for mobilitet (portabilitet) er at operativsystemet relativt enkelt skal overføres fra en prosessor av en type til en prosessor av en annen type og fra en maskinvareplattform av samme type (som sammen med prosessortypen også inkluderer metoden for å organisere all maskinvaren til maskinen, med andre ord, arkitekturen til VM ) til en annen type maskinvareplattform. Merk at prinsippet om portabilitet er veldig nært prinsippet om kompatibilitet, selv om de ikke er det samme. Å skrive et bærbart operativsystem ligner på å skrive hvilken som helst bærbar kode. I dette tilfellet må du følge noen regler. For det første må det meste av operativsystemet være skrevet på et språk som er tilgjengelig på alle maskiner eller systemer som det planlegges portert til i fremtiden. Dette betyr for det første at operativsystemet må skrives på et høynivåspråk, fortrinnsvis et standardisert, slik som C. Et program skrevet på assemblerspråk er generelt ikke bærbart. For det andre er det viktig å minimere eller, hvis mulig, eliminere de delene av koden som direkte samhandler med maskinvaren. Maskinvareavhengighet kan ha mange former. Noen åpenbare former for avhengighet inkluderer direkte manipulering av registre og annen maskinvare. Til slutt, hvis maskinvareavhengig kode ikke kan elimineres fullstendig, bør den isoleres i flere godt lokaliserte moduler. Maskinvareavhengig kode skal ikke distribueres over hele systemet. For eksempel kan du skjule en maskinvareavhengig struktur i programvaredefinerte data av en abstrakt type. Andre moduler i systemet vil fungere med disse dataene, og ikke med utstyret, ved å bruke et sett med visse funksjoner. Når et operativsystem migreres, endres bare disse dataene og funksjonene som manipulerer dem. Det var introduksjonen av POSIX-standarder som hadde som mål å sikre portabiliteten til programvaren som ble opprettet.

Prinsippet om sikker beregning er en ønskelig funksjon for ethvert flerbrukersystem. Sikkerhetsregler definerer egenskaper som å beskytte én brukers ressurser fra andre og sette ressurskvoter for å forhindre at én bruker overtar alle systemressurser. Å sikre beskyttelse av informasjon mot uautorisert tilgang er en obligatorisk funksjon av operativsystemer. I samsvar med standardene til US National Computer Security Center (NCSC - National Computer Security Center), anses et sikkert system å være et som "gjennom spesielle sikkerhetsmekanismer kontrollerer tilgang til informasjon på en slik måte at kun autoriserte personer eller prosesser kjører kan på deres vegne få tilgang til å lese, skrive, opprette eller slette informasjon." Hierarkiet av sikkerhetsnivåer markerer det laveste sikkerhetsnivået som D, og ​​det høyeste som A. Klasse D inkluderer systemer hvis vurdering har avslørt at de ikke er i samsvar med kravene til alle andre klasser. De viktigste egenskapene som er karakteristiske for klasse (nivå) C-systemer er tilstedeværelsen av et undersystem for registrering av sikkerhetshendelser og selektiv tilgangskontroll. På nivå C bør det være:

  • a) sikre påloggingsfasiliteter som sikrer at brukere identifiseres ved å skrive inn et unikt navn og passord før de får tilgang til systemet;
  • b) selektiv tilgangskontroll, som lar ressurseieren bestemme hvem som har tilgang til ressursen og hva han kan gjøre med den (eieren gjør dette ved å gi tilgangsrettigheter til en bruker eller gruppe av brukere);
  • c) regnskaps- og overvåkingsverktøy som gir muligheten til å oppdage og registrere viktige sikkerhetshendelser, eller eventuelle forsøk på å få tilgang til eller slette systemressurser;
  • d) minnebeskyttelse, som betyr at minnet initialiseres før det gjenbrukes.

På dette nivået er ikke systemet beskyttet mot brukerfeil, men brukeradferd kan overvåkes ved hjelp av loggoppføringer kompilert av overvåkings- og revisjonsverktøy. Nivå B-systemer er basert på merkede data og fordeling av brukere i kategorier, det vil si at de implementerer obligatorisk tilgangskontroll. Hver bruker er tildelt en sikkerhetsvurdering og kan bare få tilgang til data i henhold til den vurderingen. Dette nivået, i motsetning til nivå C, beskytter systemet mot feilaktig brukeratferd. Nivå A er det høyeste sikkerhetsnivået og krever, i tillegg til alle kravene i Nivå B, et formelt, matematisk basert bevis på systemets samsvar med sikkerhetskrav.

Programvare med åpen kildekode er et sett med programmer som gir kontroll over datasystemkomponenter, slik som prosessor, RAM, inngangs-/utdataenheter, nettverksutstyr, som fungerer som et "mellomlagsgrensesnitt", på den ene siden av maskinvaren, og på andre brukerapplikasjoner. I motsetning til applikasjonsprogramvare løser ikke systemprogramvare spesifikke praktiske problemer, men sikrer bare driften av andre programmer, gir dem servicefunksjoner, abstraherer detaljer om maskinvare- og fastvareimplementeringen av datasystemet og administrerer maskinvareressursene til datasystemet .

Systemprogramvare inkluderer vanligvis operativsystemer, verktøy, programmeringssystemer, databasestyringssystemer og en bred klasse mellomvare.

    Verktøy: klassifisering, beskrivelse.

Utility (eng. utility or tool) er et hjelpedataprogram som en del av generell programvare for å utføre spesialiserte standardoppgaver knyttet til drift av utstyr og operativsystem (OS). Verktøy gir tilgang til funksjoner (parametere, innstillinger, innstillinger) som ikke er tilgjengelige uten bruk, eller gjør prosessen med å endre noen parametere enklere (automatiser den). I praksis brukes ulike prøver av verktøy for å rydde opp diskplass, beskytte data og sikre konfidensialitet, optimalisere systemytelsen, konfigurere oppstartsbehandlingen, gjenopprette skadede data, etc. Klassifisering av verktøy i henhold til tilkoblingen til operativsystemet: - uavhengige verktøy ( som ikke krever et installert OS for arbeidet deres) - systemverktøy (inkludert i operativsystemet eller krever dets tilstedeværelse)

Et eksempel på klassifisering av verktøy etter funksjon: - Filbehandlere; - Arkivere (med mulig datakomprimering); - Seere; - Verktøy for diagnostisering av maskinvare eller programvare; - Krasjgjenopprettingsverktøy; - Diskoptimerer - en type verktøy for å optimalisere plassering av filer på en diskstasjon, - --for eksempel ved å defragmentere disken; - Avinstalleringsprogrammer; - Prosessstyringsverktøy.

    Grunnleggende OS-funksjoner

Et operativsystem er et sett med systemprogrammer som utvider mulighetene til et datasystem, samt gir administrasjon av ressursene, lasting og kjøring av applikasjonsprogrammer og interaksjon med brukere. I de fleste datasystemer er operativsystemer kjernen, den viktigste (og noen ganger eneste) delen av systemprogramvaren.

Operativsystemfunksjoner

Grunnleggende funksjoner (enkle operativsystemer):

    Standardisert tilgang til eksterne enheter (inn-/utgangsenheter).

    RAM-håndtering (fordeling mellom prosesser, organisering av virtuelt minne).

    Kontrollere tilgang til data på ikke-flyktige medier (som harddisker, CDer, etc.), organisert i et bestemt filsystem.

    Brukergrensesnitt.

    Nettverksoperasjoner, støtte for protokollstabel.

    Programmeringssystemer: konsept, komposisjon.

Programmeringssystemer er systemprogrammer designet for programvareutvikling:

Assemblers er dataprogrammer som konverterer et program i form av kildetekst på assemblerspråk til maskinkommandoer i form av objektkode;

    oversettere - programmer eller tekniske midler som sender et program;

    • kompilatorer - Programmer som oversetter programtekst på et høynivåspråk til et tilsvarende program på maskinspråk.

      tolker - Programmer (noen ganger maskinvare) som analyserer kommandoer eller programsetninger og umiddelbart utfører dem;

    linkere (link editors) - programmer som utfører lenking - tar en eller flere objektmoduler som input og setter sammen en kjørbar modul fra dem;

    Kildeforprosessorer er dataprogrammer som aksepterer inngangsdata og utdata som er beregnet på input av et annet program, for eksempel en kompilator;

    debuggers - utviklingsmiljømoduler eller separate programmer designet for å finne feil i programmer;

    tekstredigerere - dataprogrammer designet for å lage og endre tekstfiler, samt vise dem på skjermen, skrive dem ut, søke etter tekstfragmenter, etc.;

    • spesialiserte kildekoderedigerere - tekstredigerere for å lage og redigere programkildekode. En spesialisert kilderedigerer kan være en separat applikasjon, eller innebygd i et integrert utviklingsmiljø;

    rutinebiblioteker - samlinger av rutiner eller objekter som brukes til programvareutvikling;

    GUI-redigerere.

    Prosess. Prosesstilstandsdiagram.

Konseptet med en prosess karakteriserer et visst sett med utførelseskommandoer, tilhørende ressurser og det nåværende tidspunktet for utføringen, som er under kontroll av operativsystemet. Til enhver tid er en prosess fullstendig beskrevet av sin kontekst, bestående av register-, system- og brukerdeler. I operativsystemet er prosesser representert av en bestemt datastruktur - PCB, som gjenspeiler innholdet i registeret og systemkontekster. Prosesser kan være i fem hovedtilstander: § opptreden - aktiv tilstand, der tråden har alle nødvendige ressurser og utføres direkte av prosessoren; i et enkeltprosessor databehandlingssystem kan bare én tråd være i denne tilstanden til enhver tid;

§ forventning eller blokkering – en passiv tilstand der tråden er blokkert av egne interne årsaker (venter på at en eller annen hendelse skal fullføre, for eksempel fullføring av en I/O-operasjon eller levering av en nødvendig ressurs);

§ beredskap – også en passiv tilstand der tråden er blokkert av eksterne årsaker – prosessoren er opptatt med en annen oppgave.

En prosess overføres fra stat til stat av operativsystemet som et resultat av operasjoner utført på den. Operativsystemet kan utføre følgende operasjoner på prosesser: opprette en prosess, avslutte en prosess, suspendere en prosess, starte en prosess, blokkere en prosess, fjerne blokkering av en prosess, endre prioritet til en prosess.

    Tråder (tråder): beskrivelse, egenskaper, sammenheng med prosesser.

For å organisere multitasking ble såkalte lettvektsprosesser introdusert – tråder eller tråder.

Hver prosess har sitt eget adresseområde og tildelte ressurser. Slik isolasjon er nødvendig for å beskytte en prosess fra en annen. siden de deler alle ressursene i datasystemet, konkurrerer de med hverandre. Generelt er ikke prosesser relatert til hverandre på noen måte og kan til og med tilhøre forskjellige brukere. OS anser prosesser som urelaterte og uavhengige, mens OS tar på seg rollen som dommer i konkurranse om ressurser.

Tråder eller flyter kalles lette fordi operativsystemet ikke trenger å organisere en fullverdig virtuell maskin for dem. Disse oppgavene har ikke egne ressurser. De utvikler seg i samme virtuelle adresserom og kan bruke de samme filene, virtuelle enhetene og andre ressurser som den gitte prosessen. Det eneste en tråd trenger er en prosessorressurs. På et enkeltprosessorsystem deler tråder prosessortid med hverandre på samme måte som vanlige prosesser gjør. På et multiprosessorsystem kan tråder kjøres samtidig hvis de ikke støter på strid på grunn av tilgang til andre ressurser.

Trådentiteten ble introdusert for å fordele prosessortid mellom mulige jobber.

Hver tråd kjører strengt sekvensielt og har sin egen programteller og stabel.

For effektiv organisering av parallell utførelse i prosesser og tråder, i moderne arkitekturer. Prosesser på Evnen til å arbeide med en spesiell informasjonsstruktur som beskriver en bestemt enhet. For å gjøre dette, på mikroprosessorarkitekturnivå, brukes oppgavebegrepet. den kombinerer konvensjonelle og lette prosesser.

    Konseptet med en ressurs. Hovedtyper og typer dataressurser.

Begrepet ressurs brukes vanligvis på gjenbrukbare, relativt stabile og ofte manglende objekter som etterspørres, brukes og frigjøres av prosesser mens de er aktive. Ressurser kan deles når flere prosesser kan brukes

dem samtidig (på samme tidspunkt) eller parallelt (i noen tid bruker prosesser ressursen vekselvis) og ikke-delt.

1) CPU-tid

2) Minne. RAM kan deles på en samtidig måte; i dette tilfellet kan flere prosesser være plassert i minnet samtidig, enten helt eller nåværende fragmenter; og vekselvis - til forskjellige tider kan den leveres for forskjellig databehandling

prosesser. Ved hvert spesifikke tidspunkt får prosessoren, når den utfører beregninger, igjen tilgang til et begrenset antall RAM-celler.

3) Programvaremoduler. Systemprogramvareressurser. Kan deles mellom kjørende prosesser. Programvaremoduler kan være

en gang kjørbar (kun utført riktig én gang, og er

udelelige ressurser, dessuten kan de ikke betraktes som en ressurs i det hele tatt

systemer. Slike moduler brukes som regel ved lasting av systemet.) og er gjentatte ganger kjørbare. Gjentatte utførte programvaremoduler kan

å være uprivilegert, privilegert og reentrant. Privilegerte moduler– fungerer når avbruddssystemet er deaktivert. Ingen eksterne hendelser kan forstyrre den naturlige beregningsrekkefølgen. Uprivilegert – en vanlig modul som kan avbrytes under drift. Reentrant-moduler– sørge for gjentatte avbrudd og start av lagrede mellomberegninger og retur. 4) informasjonsressurser

    Systemprogramvaremodul: beskrivelse, klassifisering. Programvaremoduler. Systemprogramvareressurser. Kan deles mellom kjørende prosesser. Programvaremoduler kan være engangskjørbare (eksekveres riktig kun én gang, og er udelelige ressurser, dessuten kan det hende at de ikke anses som en systemressurs i det hele tatt. Slike moduler brukes som regel ved lasting av systemet.) og gjentatte ganger kjørbar. Gjenbrukbare programmoduler kan være uprivilegerte, privilegerte eller reentrant.

Privilegert programvaremodul opererer i den såkalte privilegerte modusen, med avbruddssystemet deaktivert, og ingenting kan forstyrre den naturlige rekkefølgen av beregninger. Som et resultat blir programmodulen utført til fullføring. hvoretter den kan kalles fra en annen utførelsesoppgave. En slik modul kan betraktes som en vekselvis delt ressurs.

Modulstruktur:

Uprivilegerte moduler– vanlige programvaremoduler. som kan være

avbrutt under arbeidet. Derfor kan de i det generelle tilfellet ikke være det

anses som delt, fordi hvis den, etter å ha avbrutt beregningen av en slik modul, startes igjen på forespørsel fra beregningsprosessen, kan mellomberegninger for de avbrutte beregningene gå tapt.

Reentrant programvaremoduler(reenter stand) lar utførelsen av dem gjentatte ganger avbrytes og startes på nytt når de åpnes fra andre oppgaver. Hvorfor skal slike programvaremoduler lages på en slik måte at det er mulig å lagre mellomberegninger for avbrutte beregninger og gå tilbake til dem når de beregningsmessige

prosessen går tilbake til det tidligere avbrutt punktet.

    OS-klassifisering. Eksempler

1) Som tiltenkt. Først av alt er OS delt

for generelle og spesielle systemer. Spesielle operativsystemer er på sin side delt inn i operativsystemer for bærbare mikrodatamaskiner (lomme-PCer) og ulike innebygde systemer.

2) I henhold til oppgavebehandlingsmodus. Det finnes operativsystemer som gir enkeltprogram- og multiprogrammodus. Multitasking-modus, tvert imot, antar at bekymringen for parallell utførelse og interaksjon av applikasjoner faller på applikasjonsprogrammerere. Moderne operativsystemer for personlige datamaskiner implementerer både multiprogram- og multitasking-modus.

Når du organiserer arbeid med et datasystem i en interaktiv modus, kan vi snakke om enkeltbruker (en-terminal og multi-terminal operativsystem); i multi-terminal operativsystemer kan flere brukere jobbe samtidig, hver fra sin egen terminal. For å organisere multiterminal tilgang til datamaskinen. Systemet må gi flerprogramdrift. Et eksempel på et multi-terminal OS er Linux.

3) Ved metoden for interaksjon med systemet. Hovedfunksjonen til et sanntids-OS er å sikre at innkommende jobber behandles innenfor angitte tidsintervaller som ikke kan overskrides. Multiprogrammering er den primære metoden for å forbedre systemytelsen. De beste ytelsesegenskapene er gitt for sanntidssystemer av enkeltterminale sanntidsoperativsystemer. Verktøy for å organisere multiprogrammodus senker alltid driften av systemet som helhet, men utvider funksjonaliteten til systemet. Et slikt system er QNX.

4) I henhold til konstruksjonsmetoden. I henhold til deres arkitektoniske prinsipp er operativsystemer delt inn i mikrokjerne og monolitiske; et eksempel på en mikrokjerne er QNX OS, et eksempel på en monolittisk er Windows 9.XX,200.

    Grunnleggende prinsipper for OS-konstruksjon: prinsippet om modularitet, prinsippet om funksjonell selektivitet.

Prinsippet om modularitet

Generelt forstås en modul som et funksjonelt komplett element i et system, laget i samsvar med aksepterte intermodulære grensesnitt. Etter sin definisjon antar en modul muligheten til å enkelt erstatte den med en annen hvis de spesifiserte grensesnittene er tilgjengelige. Metodene for å separere komponentene til operativsystemet i separate moduler kan variere betydelig, men oftest skjer inndelingen nøyaktig på funksjonell basis. I stor grad bestemmes modulariseringen av systemet av OS-designmetoden som brukes (bottom-up eller top-down design).

Prinsippet om funksjonell selektivitet

OS tildeler et visst antall viktige moduler som må være permanent plassert i RAM for mer effektiv organisering av dataprosessen. Denne delen av operativsystemet kalles kjernen, siden den virkelig er grunnlaget for systemet. Ved utforming av sammensetningen av kjernen må det tas hensyn til to motstridende krav. Kjernen bør inkludere de mest brukte systemmodulene. Antallet moduler bør være slik at mengden minne som er okkupert av kjernen ikke er for stor. Kjernen inkluderer som regel moduler for å administrere avbruddssystemet, verktøy for å overføre programmer fra telletilstand til standbytilstand, beredskap og tilbake, og midler for å distribuere slike grunnleggende ressurser som RAM og prosessor. I tillegg til programmodulene som er en del av kjernen og er permanent plassert i RAM, kan det være mange andre systemprogrammoduler, som kalles transitt. Transitprogrammoduler lastes inn i RAM kun når det er nødvendig, og hvis det ikke er ledig plass, kan de erstattes av andre transittmoduler. Begrepet "disk-resident" kan brukes som et synonym for begrepet "transit".

    Grunnleggende prinsipper for OS-konstruksjon: generasjonsprinsippet, prinsippet om funksjonell redundans.

OS generasjonsprinsipp

Hovedbestemmelsen i dette prinsippet bestemmer en slik metode for innledende representasjon av det sentrale systemkontrollprogrammet til operativsystemet, som vil gjøre det mulig å konfigurere denne systemdelen basert på den spesifikke konfigurasjonen til et bestemt datamaskinkompleks og utvalget av oppgaver som løses . Denne prosedyren utføres sjelden, før en ganske lang periode med drift av operativsystemet. Genereringsprosessen utføres ved hjelp av et spesielt generatorprogram og det tilsvarende inngangsspråket for dette programmet, som lar deg beskrive programvarefunksjonene til systemet og konfigurasjonen av maskinen. Som et resultat av generering oppnås en fullversjon av operativsystemet. Den genererte OS-versjonen er en samling av systemsett med moduler og data.

I moderne operativsystemer for personlige datamaskiner utføres konfigurasjonen av operativsystemet for riktig maskinvare på installasjonsstadiet, og deretter kan sammensetningen av driverne og endre noen OS-parametere gjøres ved å redigere konfigurasjonsfilen.

Prinsippet om funksjonell redundans

Dette prinsippet tar hensyn til muligheten for å utføre det samme arbeidet på forskjellige måter. OS kan inkludere flere typer monitorer (supervisormoduler som administrerer en eller annen type ressurs), ulike måter å organisere kommunikasjon mellom databehandlingsprosesser på. Tilstedeværelsen av flere typer skjermer og flere filbehandlingssystemer lar brukere raskt og mest adekvat tilpasse operativsystemet til en spesifikk datasystemkonfigurasjon, sikre den mest effektive lasting av maskinvare ved løsning av en spesifikk klasse av problemer, og oppnå maksimal ytelse ved løsning en gitt problemklasse.

    Grunnleggende prinsipper for OS-konstruksjon: det virtuelle prinsippet

Prinsippet om virtualisering: konstruksjon av virtuelle ressurser, deres distribusjon og bruk brukes for tiden i nesten alle operativsystemer. Dette prinsippet lar deg representere strukturen til systemet i form av et visst sett med prosessplanleggere og ressursallokatorer (monitorer) og bruke et enkelt sentralisert opplegg for ressursdistribusjon.

Den mest naturlige og komplette manifestasjonen av begrepet virtualitet er begrepet en virtuell maskin. Den virtuelle maskinen som gis til brukeren, gjengir arkitekturen til den virkelige maskinen, men de arkitektoniske elementene i denne representasjonen fremstår med nye eller forbedrede egenskaper, som vanligvis gjør det lettere å jobbe med systemet. Egenskapene kan være vilkårlige, men oftest ønsker brukere å ha sin egen "ideelle" maskin når det gjelder arkitektoniske egenskaper, bestående av følgende:

Virtuelt minne med praktisk talt ubegrenset kapasitet, enhetlig i driftslogikk.

Et vilkårlig antall virtuelle prosessorer som kan arbeide parallelt og samhandle under drift.

Et vilkårlig antall eksterne virtuelle enheter som er i stand til å arbeide med minnet til en virtuell maskin parallelt eller sekvensielt, asynkront eller synkront med hensyn til driften av en bestemt virtuell prosessor som initierer driften av disse enhetene.

Et av aspektene ved virtualisering er organiseringen av muligheten til å kjøre applikasjoner på et gitt OS som ble utviklet for andre OS. Vi snakker med andre ord om å organisere flere driftsmiljøer.

    Grunnleggende prinsipper for OS-design: prinsippet om uavhengighet av programmer fra eksterne enheter, prinsippet om kompatibilitet.

Prinsippet om uavhengighet av programmer fra eksterne enheter.

Prinsippet gjør at kontrolloperasjonene til eksterne enheter kan utføres på samme måte, uavhengig av deres spesifikke fysiske egenskaper.

Kompatibilitetsprinsipp

et operativsystems evne til å kjøre programmer skrevet for andre operativsystemer eller for tidligere versjoner av et gitt operativsystem, så vel som for en annen maskinvareplattform.

Det er nødvendig å skille problemer med binær kompatibilitet og kompatibilitet på nivået av applikasjonskildekoder.

Binær kompatibilitet oppnås når du kan ta et kjørbart program og kjøre det på et annet OS. Dette krever kompatibilitet på prosessorinstruksjonsnivå, og kompatibilitet på systemanropsnivå, og til og med på bibliotekanropsnivå hvis de er dynamisk koblet.

Kompatibilitet på kildenivå krever tilstedeværelse av en passende oversetter som en del av systemprogramvaren, samt kompatibilitet på nivå med biblioteker og systemanrop. I dette tilfellet er det nødvendig å rekompilere de eksisterende kildetekstene til en ny kjørbar modul.

    Grunnleggende prinsipper for OS-konstruksjon: prinsippet om et åpent og skalerbart OS, prinsippet om mobilitet.

Prinsippet om åpenhet og skalerbarhet

Prinsippet om åpenhet og skalerbarhet: Et åpent operativsystem er tilgjengelig for analyse av både brukere og systemspesialister som vedlikeholder datasystemet. Et utvidbart (modifisert, utviklet) OS lar deg ikke bare bruke generasjonsevner, men også å introdusere nye moduler i sammensetningen, forbedre eksisterende osv. Det skal være mulig å enkelt gjøre tillegg og endringer når det er nødvendig uten at det går på bekostning av systemets integritet.

Hoveddelen av operativsystemet forblir uendret, og samtidig kan nye servere legges til eller gamle forbedres. Dette prinsippet blir noen ganger tolket som systemutvidbarhet.

Prinsippet om mobilitet operativsystemet bør relativt enkelt overføres fra en prosessor av én type til en prosessor av en annen type og fra en maskinvareplattform av én type, som sammen med prosessortypen inkluderer metoden for å organisere all datamaskinvare (datasystemarkitektur ), til en maskinvareplattform av en annen type. Merk at prinsippet om portabilitet er veldig nært prinsippet om kompatibilitet, selv om de ikke er det samme. Å lage et bærbart operativsystem ligner på å skrive hvilken som helst bærbar kode, men du må følge noen regler:

Det meste av operativsystemet må kjøres på et språk som er tilgjengelig på alle systemer som det er planlagt å overføre til i fremtiden. - det er viktig å minimere eller, om mulig, eliminere de delene av koden som direkte samhandler med maskinvaren

    Grunnleggende prinsipper for OS-design: prinsippet om å sikre sikker databehandling

Å sikre sikkerhet under beregning er en ønskelig funksjon for ethvert flerbrukersystem. Sikkerhetsregler definerer egenskaper som å beskytte én brukers ressurser fra andre og sette ressurskvoter for å forhindre at én bruker tar over alle systemressurser (som minne).

Å sikre beskyttelse av informasjon mot uautorisert tilgang er en obligatorisk funksjon av nettverksoperativsystemer.

Mange moderne informasjonssystemer garanterer en grad av datasikkerhet tilsvarende nivå C2

Et system som gjennom en spesiell sikkerhetsmekanisme kontrollerer tilgang til informasjon anses som sikkert. at kun autoriserte personer eller prosesser som kjører på deres vegne kan få tilgang til å lese, beskrive, informasjon.

Hovedegenskapene som er karakteristiske for klasse C er tilstedeværelsen av et undersystem for registrering av sikkerhetshendelser og selektiv tilgangskontroll. Klasse C er delt inn i 2 undernivåer: C1 – gir databeskyttelse mot brukerfeil, men ikke fra handlinger fra angripere; på det strengere nivået C2 må følgende være til stede:

    Hemmelige påloggingsfasiliteter som sikrer at brukere identifiseres ved å skrive inn et unikt navn og passord før de får tilgang til systemet;

    Den selektive tilgangskontrollen som kreves på dette nivået lar ressurseieren bestemme hvem som har tilgang til ressursen og hva de kan gjøre med den;

    Revisjonsfunksjoner oppdager og registrerer viktige sikkerhetshendelser eller forsøk på å opprette, få tilgang til eller slette systemressurser;

    Minnebeskyttelse betyr at minnet må initialiseres før det kan brukes på nytt.

    RegisterWindows.Systemregistergrener

Windows-registeret er i hovedsak en trelignende database som inneholder informasjon om alle parameterne som kreves for riktig og jevn drift av operativsystemet. Den inneholder innstillinger for installert maskinvare og programvare, personlige profiler til brukere som har tilgang til datamaskinen, hvilke typer filer programmer kan lage, og informasjon om mappeegenskaper.

    – HKEY_CURRENT_CONFIG (HKCC) – delen inneholder all informasjon om maskinvareprofilen som brukes på den lokale maskinen under systemoppstart;

    – HKEY_CURRENT_USER (HKCU) – delen lagrer informasjon om en spesifikk bruker som er logget på systemet og jobber i det på det nåværende tidspunktet. Denne grenen lagrer mapper, skjerminnstillinger og innstillinger for kontrollpanelet;

    – HKEY_CLASSES_ROOT (HKCR) – delen inneholder data om filtypeutvidelser og applikasjoner som åpnes når de startes;

    – HKEY_USERS (HKU) – denne grenen lagrer informasjon om alle innlastede aktive brukerprofiler til en bestemt PC;

    – HKEY_LOCAL_MACHINE (HKLM) – gren for lagring av informasjon om lasting av Windows OS, informasjon om enhetsdrivere og maskinvare;

    – HKEY_USERS (HKU) – filialen lagrer individuelle profilinnstillinger for hver bruker som er registrert i systemet. Informasjon om "standard"-profilen for opprettede nye brukere lagres også her.

    Windows kommandolinje: konsept, skript, funksjonalitet.

Team linje - Dette et eget programvareprodukt som gir direkte kommunikasjon mellom brukeren og operativsystemet.

Kommandolinjestøtte er innebygd i Microsoft Windows-operativsystemet og er tilgjengelig via et kommandoskallvindu. Kommandoprompten støttes i alle versjoner av Windows og brukes til å kjøre innebygde kommandoer, verktøy og skript.

Windows-kommandoskallmiljøet kan startes på en rekke måter, inkludert ved å spesifisere parametere når du kjører Cmd.exe eller ved å bruke sin egen oppstartsfil som er lagret i %SystemRoot%\System32-katalogen. I tillegg kan kommandolinjen kjøres i batch-modus for å utføre et sett med kommandoer. I batch-modus leser og utfører kommandolinjen kommandoer etter hverandre. Når du arbeider med Windows-ledeteksten, må du forstå hvor kommandoene du bruker kommer fra. "Native" kommandoer (innebygd i operativsystemet) er av to typer: ■ interne - de finnes inne i kommandoskallet; de har ikke separate kjørbare filer; ■ ekstern - implementert i separate kjørbare filer, som vanligvis er lagret i katalogen %SystemRoot%\System32.

Kommandolinjeskript er tekstfiler med kommandoer du vil utføre. Dette er de samme kommandoene som du vanligvis skriver inn i Windows-kommandoskallet. Men i stedet for å skrive kommandoer hver gang du trenger dem, kan du lage et skript for å gjøre det og gjøre livet ditt enklere. Fordi skript består av standard teksttegn, kan de opprettes og redigeres i et hvilket som helst standard tekstredigeringsprogram, for eksempel Notisblokk. Når du legger inn kommandoer, pass på å starte hver kommando eller gruppe med kommandoer som må utføres sammen på en ny linje. Dette vil sikre at de utføres riktig. Når du er ferdig med å lage kommandolinjeskriptet, lagrer du skriptfilen med filtypen .bat eller .cmd.

Kommandolinjen lar deg kjøre forskjellige typer kommandoer: innebygde kommandoer, Windows-verktøy og kommandolinjeversjoner av applikasjoner.

Arkitektur av operativsystemer Grunnleggende prinsipper for konstruksjon av operativsystemer Grunnleggende prinsipper for konstruksjon av operativsystemer Prinsippet om modularitet Prinsippet om modularitet Prinsippet om funksjonell selektivitet Prinsippet om funksjonell selektivitet Prinsippet om OS-generering Prinsippet om OS-generering Prinsippet om funksjonell redundans. Prinsippet om funksjonell redundans Prinsippet om virtualisering Prinsippet om virtualisering Prinsippet om uavhengighet av programmer fra eksterne enheter Prinsippet om uavhengighet av programmer fra eksterne enheter enheter Prinsippet om kompatibilitet Prinsippet om kompatibilitet Prinsippet om åpent og skalerbart OS Prinsippet om åpent og skalerbart OS Prinsippet om mobilitet (portabilitet) Prinsippet om mobilitet (portabilitet) Prinsippet om å sikre datasikkerhet Prinsippet om å sikre datasikkerhet


Prinsipp for modularitet Generelt forstås en modul som et funksjonelt komplett element i et system, laget i samsvar med aksepterte intermodulære grensesnitt. Etter sin definisjon antar en modul muligheten til å enkelt erstatte den med en annen hvis de spesifiserte grensesnittene er tilgjengelige. Generelt forstås en modul som et funksjonelt komplett element i et system, laget i samsvar med aksepterte intermodulære grensesnitt. Etter sin definisjon antar en modul muligheten til å enkelt erstatte den med en annen hvis de spesifiserte grensesnittene er tilgjengelige. Privilegerte, re-entrant og reentrant moduler er spesielt viktige når du bygger et operativsystem, siden de tillater mer effektiv bruk av datasystemressurser. Privilegerte, re-entrant og reentrant moduler er spesielt viktige når du bygger et operativsystem, siden de tillater mer effektiv bruk av datasystemressurser. Prinsippet om modularitet gjenspeiler de teknologiske og operasjonelle egenskapene til systemet. Den største effekten av bruken er oppnåelig når prinsippet utvides samtidig til operativsystemet, applikasjonsprogrammer og maskinvare. Prinsippet om modularitet gjenspeiler de teknologiske og operasjonelle egenskapene til systemet. Den største effekten av bruken er oppnåelig når prinsippet utvides samtidig til operativsystemet, applikasjonsprogrammer og maskinvare.


Prinsippet om funksjonell selektivitet OS tildeler en viss del av viktige moduler som må være permanent plassert i RAM for en mer effektiv organisering av databehandlingsprosessen. Denne delen av operativsystemet kalles kjernen, siden den virkelig er grunnlaget for systemet. Ved utforming av sammensetningen av kjernen må det tas hensyn til to motstridende krav. Kjernen bør inkludere de mest brukte systemmodulene. Antallet moduler bør være slik at mengden minne som er okkupert av kjernen ikke er for stor. Kjernen inkluderer som regel moduler for å administrere avbruddssystemet, verktøy for å overføre programmer fra telletilstand til standbytilstand, beredskap og tilbake, og midler for å distribuere slike grunnleggende ressurser som RAM og prosessor.


Prinsippet om funksjonell selektivitet I tillegg til programmodulene som er en del av kjernen og er permanent plassert i RAM, kan det være mange andre systemprogrammoduler, som kalles transitt. I tillegg til programmodulene som er en del av kjernen og er permanent plassert i RAM, kan det være mange andre systemprogrammoduler, som kalles transitt. Transitprogrammoduler lastes inn i RAM kun når det er nødvendig, og hvis det ikke er ledig plass, kan de erstattes av andre transittmoduler. Transitprogrammoduler lastes inn i RAM kun når det er nødvendig, og hvis det ikke er ledig plass, kan de erstattes av andre transittmoduler. Begrepet "disk-resident" kan brukes som et synonym for begrepet "transit". Begrepet "disk-resident" kan brukes som et synonym for begrepet "transit".


Prinsippet for OS-generering Hovedbestemmelsen i dette prinsippet bestemmer en slik metode for innledende representasjon av det sentrale systemkontrollprogrammet til operativsystemet (dets kjerne- og hovedkomponenter som må være permanent plassert i RAM), som vil tillate å tilpasse denne systemtilsynsdelen basert på den spesifikke konfigurasjonen av et bestemt datakompleks og rekke oppgaver som skal løses. Hovedbestemmelsen i dette prinsippet bestemmer en slik metode for innledende representasjon av det sentrale systemkontrollprogrammet til OS (dets kjerne og hovedkomponenter som må være permanent i RAM), som vil gjøre det mulig å konfigurere denne systemtilsynsdelen basert på spesifikk konfigurasjon av et spesifikt datakompleks og omfanget av oppgaver som løses. Denne prosedyren utføres sjelden, før en lengre periode med drift av operativsystemet. Genereringsprosessen utføres ved hjelp av et spesielt generatorprogram og det tilsvarende inngangsspråket for dette programmet, som lar deg beskrive programvarefunksjonene til systemet og konfigurasjonen av maskinen. Denne prosedyren utføres sjelden, før en lengre periode med drift av operativsystemet. Genereringsprosessen utføres ved hjelp av et spesielt generatorprogram og det tilsvarende inngangsspråket for dette programmet, som lar deg beskrive programvarefunksjonene til systemet og konfigurasjonen av maskinen. Som et resultat av generering oppnås en fullversjon av operativsystemet. Den genererte OS-versjonen er en samling av systemsett med moduler og data. Som et resultat av generering oppnås en fullversjon av operativsystemet. Den genererte OS-versjonen er en samling av systemsett med moduler og data.


Prinsippet om OS-generering Prinsippet om generering forenkler konfigurasjonen av operativsystemet til den nødvendige konfigurasjonen av datasystemet betydelig. I dag, når du bruker personlige datamaskiner, kan prinsippet om OS-generering bare møtes når du arbeider med Linux. Genereringsprinsippet forenkler konfigurasjonen av operativsystemet til den nødvendige konfigurasjonen av datasystemet. I dag, når du bruker personlige datamaskiner, kan prinsippet om OS-generering bare møtes når du arbeider med Linux. I dette UNIX-systemet er det ikke bare mulig å bruke en hvilken som helst ferdig OS-kjerne, men også å generere (kompilere) en kjerne som vil være optimal for akkurat denne personlige datamaskinen og oppgavene som er løst på den. I dette UNIX-systemet er det ikke bare mulig å bruke en hvilken som helst ferdig OS-kjerne, men også å generere (kompilere) en kjerne som vil være optimal for akkurat denne personlige datamaskinen og oppgavene som er løst på den. I tillegg til å generere kjernen i Linux, er det mulig å spesifisere et sett med lastbare drivere og tjenester, det vil si at noen funksjoner kan implementeres av moduler direkte inkludert i systemkjernen, og noen av moduler som har statusen lastbare, gjennomreise. I tillegg til å generere kjernen i Linux, er det mulig å spesifisere et sett med lastbare drivere og tjenester, det vil si at noen funksjoner kan implementeres av moduler direkte inkludert i systemkjernen, og noen av moduler som har statusen lastbare, gjennomreise.


Prinsippet om funksjonell redundans Dette prinsippet tar hensyn til muligheten for å utføre samme arbeid på forskjellige måter. OS kan inkludere flere typer monitorer (supervisormoduler som administrerer en eller annen type ressurs), ulike måter å organisere kommunikasjon mellom databehandlingsprosesser på. Tilstedeværelsen av flere typer skjermer og flere filbehandlingssystemer lar brukere raskt og mest adekvat tilpasse operativsystemet til en spesifikk datasystemkonfigurasjon, sikre den mest effektive lasting av maskinvare ved løsning av en spesifikk klasse av problemer, og oppnå maksimal ytelse ved løsning en gitt problemklasse.


Prinsippet for virtualisering Dette prinsippet lar deg representere strukturen til systemet i form av et visst sett med prosessplanleggere og ressursallokatorer (monitorer) og bruke et enkelt sentralisert opplegg for ressursdistribusjon. Den mest naturlige og komplette manifestasjonen av begrepet virtualitet er begrepet en virtuell maskin. Faktisk skjuler ethvert operativsystem, som er et middel for å distribuere ressurser og organisere prosessadministrasjon i henhold til visse regler, ekte maskinvare og andre ressurser fra brukeren og applikasjonene hans, og erstatter dem med noe abstraksjon.


Prinsippet for virtualisering Oftere reproduserer en virtuell maskin gitt til brukeren arkitekturen til en ekte maskin, men de arkitektoniske elementene i denne representasjonen vises med nye eller forbedrede egenskaper: minne (virtuelt) som er enhetlig i sin driftslogikk og har en nesten ubegrenset kapasitet. Den gjennomsnittlige tilgangstiden er sammenlignbar med verdien av denne RAM-parameteren. Organiseringen av arbeid med informasjon i slikt minne utføres når det gjelder databehandling når det gjelder arbeid med datasegmenter på nivået til programmeringsspråket valgt av brukeren; Minne (virtuelt) som er enhetlig i driftslogikk og har en nesten ubegrenset kapasitet. Den gjennomsnittlige tilgangstiden er sammenlignbar med verdien av denne RAM-parameteren. Organiseringen av arbeid med informasjon i slikt minne utføres når det gjelder databehandling når det gjelder arbeid med datasegmenter på nivået til programmeringsspråket valgt av brukeren;


Prinsippet for virtualisering er et vilkårlig antall prosessorer (virtuelle) som er i stand til å jobbe parallelt og samhandle under drift. Prosessorkontrollmetoder, inkludert synkronisering og informasjonsinteraksjoner, er implementert og tilgjengelig for brukere; et vilkårlig antall prosessorer (virtuelle) som kan arbeide parallelt og samhandle under drift. Prosessorkontrollmetoder, inkludert synkronisering og informasjonsinteraksjoner, er implementert og tilgjengelig for brukere; et vilkårlig antall eksterne enheter (virtuelle) som er i stand til å arbeide med minnet til en virtuell maskin parallelt eller sekvensielt, asynkront eller synkront med hensyn til driften av en bestemt virtuell prosessor, som initierer driften av disse enhetene. Informasjon som overføres eller lagres på virtuelle enheter er ikke begrenset av akseptable størrelser. Tilgang til slik informasjon utføres på grunnlag av enten sekvensiell eller direkte tilgangsmetode. et vilkårlig antall eksterne enheter (virtuelle) som er i stand til å arbeide med minnet til en virtuell maskin parallelt eller sekvensielt, asynkront eller synkront med hensyn til driften av en bestemt virtuell prosessor, som initierer driften av disse enhetene. Informasjon som overføres eller lagres på virtuelle enheter er ikke begrenset av akseptable størrelser. Tilgang til slik informasjon utføres på grunnlag av enten sekvensiell eller direkte tilgangsmetode.


Prinsippet for virtualisering Jo mer en virtuell maskin, implementert av et OS basert på spesifikk maskinvare, er nær en "ideell" maskin når det gjelder egenskaper, og jo mer dens arkitektoniske og logiske egenskaper skiller seg fra de som faktisk eksisterer, større grad av virtualitet. Jo mer en virtuell maskin, implementert av et OS basert på spesifikk maskinvare, er nær en "ideell" maskin når det gjelder egenskaper, og derfor, jo mer dens arkitektoniske og logiske egenskaper skiller seg fra de som faktisk eksisterer, jo større grad av virtualitet. Et av aspektene ved virtualisering er organiseringen av muligheten til å kjøre applikasjoner på et gitt OS som ble utviklet for andre OS. Implementeringen av dette prinsippet lar et slikt operativsystem ha en veldig sterk fordel fremfor lignende operativsystemer som ikke har denne muligheten. Et av aspektene ved virtualisering er organiseringen av muligheten til å kjøre applikasjoner på et gitt OS som ble utviklet for andre OS. Implementeringen av dette prinsippet lar et slikt operativsystem ha en veldig sterk fordel fremfor lignende operativsystemer som ikke har denne muligheten.


Prinsippet om uavhengighet av programmer fra eksterne enheter Dette prinsippet ligger i det faktum at tilkoblingen av programmer med spesifikke enheter utføres ikke på nivået av programoversettelse, men i løpet av planleggingsperioden for utførelse. Som et resultat er rekompilering ikke nødvendig når du kjører programmet på en ny enhet som dataene er plassert på. Prinsippet gjør at kontrolloperasjonene til eksterne enheter kan utføres på samme måte, uavhengig av deres spesifikke fysiske egenskaper. For eksempel, et program som inneholder behandlingsoperasjoner for et sekvensielt sett med data bryr seg ikke om hvilket medium disse dataene vil bli plassert. Endring av mediet og dataene som er plassert på det (mens de strukturelle egenskapene til dataene forblir uendret) vil ikke medføre noen endringer i programmet hvis uavhengighetsprinsippet er implementert i systemet.


Prinsippet for kompatibilitet er et operativsystems evne til å kjøre programmer skrevet for andre operativsystemer eller for tidligere versjoner av et gitt operativsystem, så vel som for en annen maskinvareplattform. Det er nødvendig å skille problemer med binær kompatibilitet og kompatibilitet på applikasjonens kildekodenivå. Binær kompatibilitet oppnås når du kan ta et kjørbart program og kjøre det på et annet OS. Dette krever: kompatibilitet på nivå med prosessorinstruksjoner, kompatibilitet på nivå med systemanrop, og til og med på nivå med bibliotekanrop, hvis de er dynamisk koblet.


Prinsippet om kompatibilitet Kompatibilitet på kildenivå krever tilstedeværelse av en passende oversetter som en del av systemprogramvaren, samt kompatibilitet på nivå med biblioteker og systemanrop. I dette tilfellet er det nødvendig å rekompilere de eksisterende kildetekstene til en ny kjørbar modul. Det er mye vanskeligere å oppnå binær kompatibilitet mellom prosessorer basert på ulike arkitekturer. For at en datamaskin skal kjøre programmene til en annen (for eksempel bør et program for en PC som en IBM PC helst kjøres på en PC som en Macintosh fra Apple), må den datamaskinen fungere med maskininstruksjoner som den i utgangspunktet ikke gjør forstå. Løsningen i slike tilfeller er å bruke såkalte applikasjonsmiljøer eller emulatorer. Et middel for å sikre kompatibilitet mellom programvare og brukergrensesnitt er samsvar med POSIX-standarder. Ved å bruke POSIX-standarden kan du lage programmer i UNIX-stil som deretter enkelt kan overføres fra ett system til et annet.


Prinsippet for et åpent og skalerbart OS Et åpent OS er tilgjengelig for analyse av både brukere og systemspesialister som betjener datasystemet. Et utvidbart (modifisert, utviklet) OS tillater ikke bare å bruke generasjonsmulighetene, men også å introdusere nye moduler i sammensetningen, forbedre eksisterende osv. Det er nødvendig at tillegg og endringer kan gjøres uten å kompromittere systemets integritet . Utmerkede muligheter for utvidelse er gitt av klient-server-tilnærmingen til å strukturere operativsystemet ved hjelp av mikrokjerneteknologi. I samsvar med denne tilnærmingen er operativsystemet bygget som en kombinasjon av et privilegert kontrollprogram og et sett med uprivilegerte "server"-tjenester. Hoveddelen av operativsystemet forblir uendret, og samtidig kan nye servere legges til eller gamle forbedres. Dette prinsippet blir noen ganger tolket som systemutvidbarhet. Åpne operativsystemer inkluderer først og fremst UNIX-systemer og, naturligvis, Linux OS.


Prinsippet om mobilitet (portabilitet) Et operativsystem bør relativt enkelt overføres fra en prosessor av en type til en prosessor av en annen type og fra en maskinvareplattform (som sammen med prosessortypen inkluderer arkitekturen til datasystemet) av en type til en maskinvareplattform av en annen type. Prinsippet om portabilitet er veldig nært prinsippet om kompatibilitet, men dette er ikke det samme.Det meste av OS bør skrives på et språk som er tilgjengelig på alle systemer som det planlegges portert til i fremtiden. Dette betyr for det første at operativsystemet må skrives på et høynivåspråk, fortrinnsvis et standardisert, slik som C. Et program skrevet på assemblerspråk er generelt ikke bærbart.


Prinsippet om mobilitet (portabilitet) 2. 2. Det er viktig å minimere eller, om mulig, eliminere de delene av koden som direkte samhandler med maskinvaren. Maskinvareavhengighet kan ha mange former. Noen åpenbare former for avhengighet inkluderer direkte manipulasjon av registre og annen maskinvare.Hvis maskinvareavhengig kode ikke kan elimineres fullstendig, må den isoleres i flere godt lokaliserte moduler. Maskinvareavhengig kode skal ikke distribueres over hele systemet. For eksempel kan du skjule en maskinvareavhengig struktur i programvaredefinerte data av en abstrakt type. Innføringen av POSIX-standarder var ment å sikre portabiliteten til opprettet programvare. Innføringen av POSIX-standarder var ment å sikre portabiliteten til opprettet programvare.


Prinsipp for beregningssikkerhet Å sikre datasikkerhet er en ønskelig funksjon for ethvert flerbrukersystem. Sikkerhetsregler definerer egenskaper som å beskytte én brukers ressurser fra andre og sette ressurskvoter for å forhindre at én bruker tar over alle systemressurser (som minne). Å sikre beskyttelse av informasjon mot uautorisert tilgang er en obligatorisk funksjon av nettverksoperativsystemer. Mange moderne operativsystemer garanterer en grad av datasikkerhet tilsvarende nivå C2 i det amerikanske standardsystemet.


Prinsippet om datasikkerhet Et sikkert system er et som "bruker spesielle sikkerhetsmekanismer for å kontrollere tilgang til informasjon på en slik måte at bare autoriserte personer eller prosesser som kjører på deres vegne kan få tilgang til å lese, skrive, opprette eller slette informasjon." Hierarkiet av sikkerhetsnivåer gitt i standardene markerer det laveste sikkerhetsnivået som D, og ​​det høyeste som A. Klasse D inkluderer systemer hvis vurdering avslørte at de ikke samsvarer med kravene til alle andre klasser.


Prinsippet for å sikre datasikkerhet Hovedegenskapene som karakteriserer klasse C-systemer er tilstedeværelsen av et undersystem for registrering av sikkerhetshendelser og selektiv tilgangskontroll. Klasse (nivå) C er delt inn i 2 undernivåer: nivå C1, som gir databeskyttelse mot brukerfeil, men ikke fra handlinger fra inntrengere; og nivå C2. På nivå C2 bør det være: hemmelige påloggingsfasiliteter som sikrer brukeridentifikasjon ved å taste inn et unikt navn og passord før de får tilgang til systemet; selektiv tilgangskontroll, som lar eieren av en ressurs bestemme hvem som har tilgang til ressursen og hva de kan gjøre med den. Eieren gjør dette ved å gi tilgangsrettigheter til en bruker eller gruppe av brukere;


Prinsippet om å sikre sikkerheten til regnskaps- og overvåkingsverktøy (revisjon), som gir muligheten til å oppdage og registrere viktige sikkerhetshendelser, eller eventuelle forsøk på å opprette, få tilgang til eller slette systemressurser; minnebeskyttelse, der minnet initialiseres før det gjenbrukes. Nivå B-systemer er basert på merkede data og fordeling av brukere i kategorier, det vil si at de implementerer obligatorisk tilgangskontroll. Hver bruker er tildelt en sikkerhetsvurdering og kan bare få tilgang til data i henhold til den vurderingen. Dette nivået, i motsetning til nivå C, beskytter systemet mot feilaktig brukeratferd.


Prinsippet for beregningssikkerhet Nivå A er det høyeste sikkerhetsnivået; det krever, i tillegg til alle kravene i nivå B, et formelt, matematisk basert bevis på systemets samsvar med sikkerhetskravene. Sikkerheten på A-nivå tar opptil 90 % av prosessortiden med sine kontrollmekanismer. Sikrere systemer reduserer ikke bare effektiviteten, men begrenser også antallet tilgjengelige applikasjonspakker som kan kjøres på et slikt system betraktelig. For eksempel, for Solaris OS (UNIX-versjon) er det flere tusen applikasjoner, men for analogen på B-nivå er det bare rundt hundre.


Operativsystemer for mikrokjerner Mikrokjernen er den minimale kjernedelen av operativsystemet, og tjener som grunnlag for modulære og bærbare utvidelser. Mikrokjernen inneholder og utfører minimumsmengden kode som er nødvendig for å implementere grunnleggende systemanrop. Disse samtalene inkluderer meldingsoverføring og annen kommunikasjon mellom prosesser utenfor mikrokjernen, støtte for avbruddshåndtering og en rekke andre funksjoner. De resterende funksjonene leveres som modulære tilleggsprosesser som samhandler hovedsakelig med hverandre og samhandler gjennom meldingsoverføring. En mikrokjerne er en liten, meldingsoverførende enhet av systemprogramvare som kjører i datamaskinens høyest prioriterte tilstand og støtter resten av operativsystemet, betraktet som en samling serverapplikasjoner.


Mikrokjerne-operativsystemer En mikrokjerne inkluderer bare de funksjonene som kreves for å definere et sett med abstrakte prosesseringsmiljøer for applikasjonsprogrammer og for å tillate applikasjoner å jobbe sammen for å tilby tjenester og fungere som klienter og servere. Som et resultat gir mikrokjernen kun fem forskjellige typer tjenester: administrasjon av virtuelt minne; jobber og tråder; interprosesskommunikasjon (IPC - interprosesskommunikasjon, interprosesskommunikasjon); I/O-støtte og avbruddsbehandling; tjenester for å ringe en vert (vert er hoveddatamaskinen. Nå refererer dette begrepet til enhver datamaskin som har en IP-adresse) og prosessor.


Mikrokjerneoperativsystemer Den mest fremtredende representanten for mikrokjerneoperativsystemer er QNX sanntids OS. QNX mikrokjernen støtter kun prosessplanlegging og -sending, prosesskommunikasjon, avbruddshåndtering og nettverkstjenester på lavere nivå. Mikrokjernen kan plasseres helt i den interne hurtigbufferen til jevne prosessorer som Intel 486. Ulike versjoner av dette operativsystemet hadde forskjellige kjernestørrelser fra 8 til 46 KB. For å bygge et minimalt QNX-system må du legge til en prosessbehandler til mikrokjernen, som lager prosesser, administrerer prosesser og administrerer prosessminne. For å gjøre QNX OS anvendelig for mer enn bare innebygde og diskløse systemer, må du legge til et filsystem og en enhetsbehandler.


Monolittiske operativsystemer I et monolitisk OS, til tross for dets mulige sterke strukturering, er det svært vanskelig å fjerne ett av lagene i en flernivås modulær struktur. Å legge til nye funksjoner og endre eksisterende for monolitiske OSer krever en meget god kjennskap til hele OS-arkitekturen og en ekstremt stor innsats. Når du støtter monolittiske operativsystemer, oppstår det en rekke problemer på grunn av at alle makrokjernefunksjoner opererer i et enkelt adresserom: 1. 1. det er fare for konflikt mellom ulike deler av kjernen; 2. 2. vanskeligheter med å koble nye drivere til kjernen.


Sanntids OS Et sanntidssystem (RTS) må reagere på enhver uforutsigbar ytre påvirkning innenfor et forutsigbart tidsintervall. For å gjøre dette må følgende egenskaper sikres: Begrensning av responstid, det vil si at etter at en hendelse har inntruffet, vil en reaksjon på den garantert følge før en forhåndsbestemt frist. Fraværet av en slik begrensning anses som en alvorlig programvarefeil. Samtidig behandling: Selv om mer enn én hendelse inntreffer samtidig, må alle tidsbegrensninger for alle hendelser oppfylles. Dette betyr at et sanntidssystem må være iboende parallelt. Parallellisme oppnås ved å bruke flere prosessorer i et system og/eller en multitasking-tilnærming.


Sanntids OS Det er "myke" og "harde" sanntidssystemer. Forskjellen mellom harde og myke tidskontrollsystemer avhenger av kravene til systemet; systemet anses som hardt hvis "brudd på tidsbegrensninger ikke er tillatt", og mykt hvis "brudd på tidsbegrensninger er uønsket". Det er ingen myke eller harde RTOSer. En RTOS kan bare tjene som grunnlag for å bygge en myk eller hard RTOS. RTOS i seg selv hindrer ikke RTOS fra å være myk.




Multiprogrammering og multitasking Et RTOS OS må være multiprogrammering og multitasking (multi-threaded) basert på prinsippet om absolutt prioritet (avbrytbar) og aktivt bruke avbrudd for utsendelse. Planleggeren må kunne avbryte en hvilken som helst tråd og gi ressursen til tråden som trenger det mest. OS (og maskinvaren) må også gi avbrudd på avbruddshåndteringsnivå.


Tilgjengelighet av oppgave(tråd)prioriteter i RTOS Konseptet med trådprioritet må eksistere i OS. OS må ha et konsept med trådprioritet. I en ideell situasjon allokerer RTOS ressursen til tråden eller driveren med den nærmeste fristen (dette kalles deadline-drevet OS). For å håndheve denne tidsbegrensningen, må operativsystemet vite hvor lang tid det tar å fullføre hver av de løpende trådene. Det er praktisk talt ingen operativsystemer bygget på dette prinsippet, siden det er for komplisert å implementere.


Arv av prioriteter I en OS RTOS må det være et system med prioritert arv. Kombinasjonen av trådprioriteringer og ressursdeling blant dem fører til problemet med prioriteringsinversjon. Dette kan illustreres med et eksempel hvor det er minst tre tråder. Når en tråd med lavere prioritet har anskaffet en ressurs som er delt med en tråd med høyere prioritet og en tråd med middels prioritet har begynt å kjøre, vil tråden med høyest prioritet bli suspendert til ressursen er frigjort og tråden med middels prioritet kjører. I denne situasjonen avhenger tiden som kreves for å fullføre tråden med høyest prioritet av de lavere prioritetsnivåene, dette er prioritetsinversjon. Kombinasjonen av trådprioriteringer og ressursdeling blant dem fører til problemet med prioriteringsinversjon. Dette kan illustreres med et eksempel hvor det er minst tre tråder. Når en tråd med lavere prioritet har anskaffet en ressurs som er delt med en tråd med høyere prioritet og en tråd med middels prioritet har begynt å kjøre, vil tråden med høyest prioritet bli suspendert til ressursen er frigjort og tråden med middels prioritet kjører. I denne situasjonen avhenger tiden som kreves for å fullføre tråden med høyest prioritet av de lavere prioritetsnivåene, dette er prioritetsinversjon.


Prioritetsarv i en RTOS For å eliminere slike inversjoner, må RTOS tillate prioritetsarv, det vil si å heve prioritetsnivået til en tråd til nivået til tråden som kaller den. Arv betyr at den ressursblokkerende tråden arver prioriteten til tråden den blokkerer (selvfølgelig er dette bare sant hvis den blokkerte tråden har høyere prioritet). For å eliminere slike inversjoner, må RTOS tillate prioritetsarv, det vil si å heve prioritetsnivået til en tråd til nivået til tråden som kaller den. Arv betyr at den ressursblokkerende tråden arver prioriteten til tråden den blokkerer (selvfølgelig er dette bare sant hvis den blokkerte tråden har høyere prioritet).


Synkronisering av prosesser og oppgaver i et RTOS OS skal gi kraftige, pålitelige og praktiske mekanismer for oppgavesynkronisering. Siden oppgaver deler data (ressurser) og må kommunisere med hverandre, må blokkerings- og kommunikasjonsmekanismer eksistere. Det er nødvendig med mekanismer som garanterer muligheten for parallellkjøring av oppgaver og prosesser for raskt å utveksle meldinger og synkroniseringssignaler. Disse systemmekanismene må alltid være tilgjengelige for sanntidsprosesser. Derfor må systemressurser for deres drift tildeles på forhånd.


RTOS-forutsigbarhet Oppførselen til operativsystemet må være kjent og ganske nøyaktig forutsagt. Utførelsestidene for systemanrop og tidspunktet for systematferd under ulike omstendigheter må være kjent for utvikleren. Derfor må RTOS-skaperen gi følgende egenskaper: Avbruddsforsinkelse (det vil si tiden fra øyeblikket av avbrudd til øyeblikket oppgaven starter): den må være forutsigbar og i samsvar med kravene til applikasjonen. Denne verdien avhenger av antall samtidig hengende avbrudd; maksimal utførelsestid for hvert systemanrop. Den må være forutsigbar og uavhengig av antall objekter i systemet; maksimal avbruddsmaskeringstid av drivere og OS.

OS lar deg abstrahere bort fra detaljer om maskinvareimplementering, og gir programvareutviklere det minste nødvendige settet med funksjoner.

Operativsystemkonsept

Operativsystemer er grunnlaget for programvaren til datamaskiner (VM-er) og deres systemer - datasystemer (CS). Ideen om at OS først og fremst er et system som gir et praktisk grensesnitt for brukere, tilsvarer en ovenfra-ned-visning av det. Et annet syn, fra bunnen og opp, gir en ide om OS som en mekanisme som distribuerer og administrerer alle komponenter og ressurser til VM-er og datamaskiner for å sikre maksimal effektivitet av deres funksjon.

Hva er årsakene til å endre OS i et selskap?

Beslutningen om å endre operativsystemet kommer på grunn av ulike omstendigheter.

For det første, når en ny versjon av applikasjonen som brukes til å løse hverdagslige problemer krever funksjonene til det nye operativsystemet. Utvikleren er ikke interessert i å støtte andre versjoner av applikasjoner (for eldre operativsystemer).

For det andre ønsker selskapet å gi ansatte muligheten til å jobbe med bedriftsressurser, for eksempel fra mobile enheter, men begrensninger i OS gir ikke slik funksjonalitet. Noe som igjen påvirker ytelsen.

Og for det tredje er den viktigste grunnen til å bytte til nye versjoner av operativsystemet trusler mot informasjonssikkerheten og som et resultat risikoen for å miste informasjon. Dette problemet er spesielt akutt i selskaper som arbeider med brukernes personopplysninger. I henhold til den føderale loven om personopplysninger (FZ-152) må operatøren sikre teknisk beskyttelse av dataene som er betrodd ham. Når det gjelder operativsystemet, betyr dette at operatøren er pålagt å studere sikkerhetsbulletinen, vurdere risikoene og installere sikkerhetsoppdateringer utgitt av utvikleren, ellers blir operativsystemet sårbart for truslene beskrevet i bulletinen.

Grunnleggende prinsipper for operativsystemer

  • Prinsippet om modularitet - separasjon av OS-komponenter i separate moduler (funksjonelt komplette systemelementer), utført i samsvar med aksepterte intermodulære grensesnitt;
  • Prinsippet for OS-generering - definerer en metode for innledende representasjon av OS-kjernen og hoved OS-komponentene som lar dem konfigureres basert på den spesifikke konfigurasjonen til et spesifikt datamaskinkompleks og utvalget av oppgaver som løses;
  • Prinsippet om funksjonell redundans - tar hensyn til muligheten for å utføre det samme arbeidet på forskjellige måter;
  • Prinsippet for virtualisering - representerer systemstrukturen i form av et spesifikt sett med prosessplanleggere og ressursallokatorer og tillater bruk av et enkelt sentralisert opplegg for ressursdistribusjon, og organiserer derved driften av den virtuelle maskinen;
  • Prinsippet om programuavhengighet fra eksterne enheter - kommunikasjon av programmer med spesifikke enheter utføres ikke på nivået for programkringkasting, men i løpet av planleggingsperioden for utførelse;
  • Kompatibilitetsprinsipp - operativsystemets evne til å kjøre programmer skrevet for andre operativsystemer eller for tidligere versjoner av dette operativsystemet, så vel som for en annen maskinvareplattform;
  • Prinsippet om et åpent og skalerbart OS - tillater ikke bare å bruke generasjonsevnene, men også å introdusere nye moduler i sammensetningen;
  • Prinsippet om å sikre sikkerhet når du utfører beregninger - er en ønskelig egenskap for ethvert flerbrukersystem;

Operativsystemarkitektur

Multitasking og distribusjon av krefter krever et visst hierarki av privilegier for komponenter i selve OS. OS består av tre grupper av komponenter:

  • kjerne som inneholder planleggeren; enhetsdrivere som direkte kontrollerer maskinvaren; nettverk subsystem; filsystem;
  • skall med verktøy.

De fleste programmer, både system (inkludert i operativsystemet) og applikasjoner, kjøres i den ikke-privilegerte ("bruker") modusen til prosessoren og får tilgang til utstyret (og, om nødvendig, til andre kjernefysiske ressurser, samt ressurser til andre programmer) bare gjennom systemanrop. Kjernen kjører i privilegert modus: det er i denne forstand at OS (mer presist, kjernen) styrer maskinvaren.

For å bestemme sammensetningen av operativsystemet er kriteriet om operasjonell integritet (lukkethet) viktig: systemet må tillate full bruk (inkludert modifikasjon) av komponentene. Derfor inkluderer det komplette OS også et sett med verktøy (fra tekstredigerere til kompilatorer, debuggere og linkere). De fleste moderne operativsystemer er godt strukturerte modulære systemer som kan utvikles, utvides og overføres til nye plattformer. Et av alternativene for å strukturere operativsystemet er å skille monolittiske og mikrokjernearkitekturer.

Funksjoner

Hovedfunksjoner (enkelt OS):

  • Laste applikasjoner inn i RAM og kjøre dem;
  • Standardisert tilgang til eksterne enheter (inn-/utgangsenheter);
  • RAM-administrasjon (fordeling mellom prosesser, virtuelt minne);
  • Kontrollere tilgang til data på ikke-flyktige medier (som harddisk, CD, etc.), vanligvis ved hjelp av et filsystem;
  • Brukergrensesnitt;
  • Nettverksoperasjoner, støtte for protokollstabel

Evolusjon av operativsystemer og grunnleggende ideer

Forgjengeren til operativsystemet bør betraktes som hjelpeprogrammer (bootloadere og skjermer), samt biblioteker med ofte brukte rutiner, som begynte å bli utviklet med bruken av 1. generasjons universelle datamaskiner (slutten av 1940-tallet). Verktøy minimerte operatørens fysiske manipulering av utstyret, og bibliotekene gjorde det mulig å unngå gjentatt programmering av de samme handlingene (implementering av input/output-operasjoner, beregning av matematiske funksjoner, etc.).

Historien til OS går tilbake omtrent et halvt århundre. Det var og er i stor grad bestemt av utviklingen av elementbasen og datautstyr.

  • Første generasjon.

40-tallet. De første digitale datamaskinene uten OS. Organiseringen av databehandlingsprosessen bestemmes av programmereren fra kontrollpanelet.

  • Andre generasjon.

50-tallet. Fremveksten av en prototype OS - overvåkingssystemer som implementerer et batchbehandlingssystem for oppgaver.

  • Tredje generasjon.

1965-1980 Overgang til integrerte kretser. IBM/360. Nesten alle de grunnleggende konseptene som er iboende i moderne operativsystemer er implementert: tidsdeling Og multitasking, maktfordeling, sanntid, filstrukturer og filsystemer. Implementeringen av multiprogrammering krevde innføring av svært viktige endringer i datamaskinens maskinvare: privilegerte og brukermoduser, midler for å beskytte minneområder og et utviklet avbruddssystem.

  • Fjerde generasjon.

Sent på 70-tallet. En fungerende versjon av TCP/IP-protokollstabelen er opprettet. Den ble standardisert i 1983. Leverandøruavhengighet, fleksibilitet og effektivitet, bevist av vellykket drift av Internett, har gjort denne protokollstabelen til hovedstabelen for de fleste operativsystemer.

80-tallet. Fremkomsten av personlige datamaskiner. Rask vekst av lokale nettverk. Støtte for nettverksfunksjoner har blitt et krav. Hovedstandardene for kommunikasjonsteknologi for lokale nettverk er tatt i bruk: Ethernet, Token Ring, FDDI. Dette gjorde det mulig å sikre kompatibilitet av nettverksoperativsystemer på lavere nivåer.

Tidlig på 90-tallet. Nesten alle operativsystemer har blitt nettverksbaserte. Spesialiserte nettverksoperativsystemer har dukket opp (for eksempel IOS som kjører i rutere)

Siste tiår. Spesiell oppmerksomhet rettes mot bedriftens nettverksoperativsystemer, som er preget av høy grad av skalerbarhet, støtte for nettverksdrift, avanserte sikkerhetsverktøy, evnen til å arbeide i et heterogent miljø og tilgjengeligheten av sentraliserte administrasjonsverktøy.

OS på det globale markedet

Siden 1990-tallet har de vanligste operativsystemene for personlige datamaskiner og servere vært:

  • OS-familie Microsoft Windows og Windows NT;
  • OS-familien Mac OS og Mac OS X;
  • UNIX-klasse og Unix-lignende systemer (spesielt GNU/Linux).

OS for bedriftssektoren

Effektiv drift av IT-infrastrukturen til ethvert moderne selskap er umulig uten et velvalgt serveroperativsystem.

Formålet med serveroperativsystemet er å administrere applikasjoner som betjener alle brukere av bedriftsnettverket og eksterne brukere (DBMS, nettverksanalyse- og administrasjonsverktøy, katalogtjenester, meldings- og gruppevareverktøy, webservere, e-postservere, bedriftsbrannmurer, applikasjonsservere , serverdeler av forretningsapplikasjoner).

Valget av et serveroperativsystem og en maskinvareplattform for det bestemmes først og fremst av omfanget av oppgaver som skal løses og kravene til ytelse, stabilitet og tilgjengelighet. Hovedaktørene i markedet for serveroperativsystemer er operativsystemene Windows og Unix.

Operativsystemer i Windows-familien

Serverversjoner av Windows-operativsystemet er mye brukt i dag på grunn av enkel administrasjon og lave totale eierkostnader.

Operativsystemer i UNIX-familien

UNIX er en gruppe multitasking, flerbrukeroperativsystemer. For øyeblikket er det et stort antall OS-variasjoner på dette området – både kommersielle og åpen kildekode.

De fleste russiske servere opererer under kontroll av en eller annen Unix-klon. I følge en prøvestudie utført av RuMetrika-portalen (data for 2006, på russiske servere er Free BSD absolutt i ledelsen (53%), Linux er på andreplass (32%), antall servere som Windows er installert på var 9 %, Solaris er mindre vanlig – bare 5 %.

"Unix", OS-standardisering og POSIX

Utformet og implementert i løpet av året