Generelt om operativsystemer
Operativsystemet: Hva og hvorfor Styring av prosessorer (CPU), elektronikk, nettverk og andre ressurser i en datamaskin er komplisert, detaljert og vanskelig. Maskinvare og komponenter (grafikk, lyd, nettverk etc.) endres og forbedres raskt og ofte. Et OS er en samling med programvare som håndterer styringen av maskinvaren oftest ferdig installert på datamaskinen og lett å oppdatere. OS'et er et mellomlag som skjuler kompleksiteten og dynamikken, ved at den tilbyr et grensesnitt mot både brukere og applikasjonsprogrammer.
Hva gjør et operativsystem? Prosesshåndtering: Prosessene er programmer som kjører på maskinen OS lager, starter, stopper, kontrollerer og fjerner prosesser OS fordeler CPUen(e)s regnekraft mellom prosessene Håndterer minnet (RAM): OS fordeler minne til prosessene OS beskytter minnet mot overskriving fra andre prosesser Filhåndtering: OS tilbyr et hierarkisk, beskyttet filsystem, og skjuler/abstraherer den fysiske plasseringen av dataene på disk og andre media Håndterer annen hardware: OS håndterer all plug-in/ekstern hardware og gjemmer detaljene om dette (drivere) Tilbyr nettverk: Sørger for at ulike maskiner kan kommunisere med hverandre Feilhåndtering: Oppdager feil og om mulig gjør noe med dem
Operativsystemer og effektivitet Et OS gjør ikke noe produktivt arbeid i seg selv. OS-et må gjøre sine jobber effektivt, for å overlate mesteparten av maskinens ressurser til applikasjonene. OS er derfor optimaliserte mht. effektivitet, og inneholder mange komplekse algoritmer som kan være vanskelig å forstå. Eksempler: Timesharing: Deling av én CPU på mange programmer og brukere. Overlapping av prosessering med input og output: Når et program venter på f.eks. å skrive til en disk, sørger OS-et for å utføre andre prosesser.
OS vs. virtuelle maskiner Java Virtual Machine (JVM) er programmet som kjører Javaprogrammer. JVM kan betraktes som et kjøremiljø, som erstatter det som maskinen med sitt opprinnelige operativsystem tilbyr for å kjøre programmer. JVM utjevner forskjellen mellom forskjellige operativsystemer, slik at de samme Java-programmene kan kjøres under forskjellige OS. Et OS utjevner forskjellen mellom forskjellig maskinvare, og tilbyr et grensesnitt som gjør det mulig å lage programmer som enkelt og effektivt kan benytte maskinens ressurser. Parallellen til JVM: OS tilbyr en virtuell maskin som er betydelig enklere å lage programmer for enn den fysiske maskinen.
OS og brukergrensesnitt Vi bruker OS-et indirekte ved hjelp av; Vindussystem (GUI) Applikasjoner (f.eks. MS-Word) Tekstbaserte kommandotolkere (f.eks. shell under Linux) Alle disse er applikasjoner som danner brukergrensesnitt mot operativsystemet. Brukergrensesnittene gjør anvendelsen av OS-et enklere for brukeren. OS-et gjør også anvendelsen av maskinvaren enklere for programmereren av brukergrensesnittene og andre applikasjoner.
OS, systemtjenester og kjernen Systemtjenestene/systemkall er tjenester som OS-et kan utføre på kommando, f.eks. skrive til disk. Systemtjenester utføres av OS-et ved å kalle en funksjon (oftest skrevet i språket C) fra et applikasjonsprogram (eller fra JVM). Eksempel: Når (C-)funksjonen write kalles, vil den utføre en systemtjeneste som skriver data til en fil. Dette er en systemtjeneste, fordi det er OS-et som sørger for at det gjøres på riktig måte. Systemtjenestene er samlet i OS-ets kjerne (kernel), som gjerne oppdateres automatisk ved behov (ny maskinvare/forbedringer). Systemtjenestene, dvs. OS-ets kjerne, er tilpasset maskinvaren og er ofte skrevet i C eller maskinkode. Grensesnittet mot systemtjenestene består oftest av Java eller C- funksjoner.
OS-oppgaver: En oppsummering OS-et styrer og deler: Prosessor Minne Disk Eksternt utstyr Nettverk OS-et tilbyr abstraksjon, som en virtuell maskin: Et grensesnitt mellom maskinvare og applikasjoner/brukere Sletter ut mange forskjeller mellom forskjellig maskinvare Systemtjenestene gjør det enklere å lage portable programmer Oppsummert: Et OS gjør maskinvaren enklere å bruke.