Nätverksklassen

WINDOWS 95

ARKITEKTUR OCH SYSTEM

Windows 95 arkitektur

Arkitekturkomponenter

Registret

Drivrutiner

Konfiguration

Virtuell maskin

Multikörning

Filsystem

Varför hänger sig datorn?

NÅGRA ARKITEKTURKOMPONENTER

Registret, 32-bitars användargränssnitt, drivrutiner, kärnan, filsystemet, konfigurationshanteraren, virtuell minneshanterare. (se ritningen uppe).

KORT BESKRIVNING AV WINDOWS 95-REGISTRET

Registret är en databas som lagrar systemets och applikationernas konfiguration samt användarens inställningar. Logiskt består det av sex stycken s.k. nycklar som presenteras som en trädstruktur med benämningarna: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG samt HKEY_DYN_DATA. Allt detta under roten som här heter DEN HÄR DATORN.

Fysiskt sparas registret i två filer som heter USER.DAT respektive SYSTEM.DAT. När man stänger av datorn tas automatiskt en kopia av filerna som nämns till USER.DA0 / SYSTEM.DA0. Utifrån dessa kan man återställa systemet om man har råkat radera eller ändrat något i registret. Samtidigt finns en annan fil som heter SYSTEM.1ST och härstammar från den allra första (eller senaste) installationen av Windows 95 som också kan vara till stor hjälp för återställande av registret.

DRIVRUTINER I 95:AN

Utökat stöd för flera enheter. 32-bitars virtuella drivrutiner, vilket betyder att dessa laddas in vid behov och försvinner sedan från RAM-minnet för att frigöra plats åt andra applikationer. Int 21-anrop (från DOS) ersätts av VFAT och Int 13 (från BIOS) ersätts av funktionen Input/Output Supervisor (IOS). (Mer om det under rubriken Windows 95 filsystem nedan).

WINDOWS 95 KONFIGURATION

Konfigurationshanteraren (Configuration Manager) sköter, om man så vill, alla inställningar om hårdvaran, applikationerna och drivrutinerna (Plug and Play). De administrativa verktygen eliminerar risken för syntaxfel. Men samtidigt läggs IRQ och I/O adresser där det finns ledig plats och det är inte alltid en viss hårdvarutyp fungerar bäst där Windows vill tilldela den en plats så man får snyggt gå in med andra drivrutiner och ställa in manuellt vissa gånger.

Första sidan

WINDOWS 95, VIRTUELL MASKIN

För att förstå det här lite bättre måste man gå tillbaka till DOS. Ett DOS-fönster som man öppnar i Windows (eller om det så är hela skärmen) är en s.k. DOS-virtuell maskin (DVM). Man kan ha flera DVM öppna samtidigt som endast begränsas av RAM-minnet man har i datorn; varje DVM upptar ca 1 MB minne. Program som körs så här får processorn att tro att den opererar i realläge men i princip tillhandahåller CPUn skyddat-läge funktioner. (När en av dessa DVM försöker göra något förbjudet överlämnar CPUn kontrollen till en del av operativsystemet som kallas v86 monitor-program som i sin tur avgör vad som ska ske därnäst). När en DVM ska meddela någonting på skärmen (t.ex. en tangentnedtryckning) kopieras det av Windows v86 till en buffert och sedan flyttas innehållet ut till skärmen (fast DVMen tror att den skriver direkt till skärmen som allenarådande program!).

Nu till ämnet! Windows 95 har endast EN sådan virtuell maskin som delas av ALLA program som är öppna samtidigt (alltså inget liknande DVM).

MULTIKÖRNING; COOPERATIVE gentemot PREEPMTIVE

Multikörning innebär att flera program ligger öppna och körs samtidigt (eller åtminstone så tror man det!). Egentligen är det så att ett program exekveras åt gången och alla delar processorns tid sinsemellan.

Cooperative (samverkande) multikörning innebär att programmet frågas efter ett avbrott till förmån för ett annat program. Detta sker så att programmeraren som skriver programmet sätter godtyckliga gränser för hur lång tid det skall exekveras. Det finns en övre gräns som Windows rekommenderar men det är inte alltid denna efterlevs av programmakarna med tråkiga konsekvenser till slut! (krasch-boom-bang). Microsoft har insett detta och medan föregångaren (Windows 3.x) använde sig av samverkande multikörning för alla Windows-applikationer (och endast övergripande multikörning för DOS-program), har Windows 95 gått över till det sistnämnda för både DOS- och de nyare 32-bitars Windows applikationer. Det enda som körs i samverkande läge är de gamla 16-bitars program.

Preemptive (övergripande) multikörning betyder att operativsystemet sätter gränserna för hur länge i taget ett program får vara med i leken innan det avbryts så att ett annat program som står i kö tar över. Tidsintervallen sätts lika för vart och ett av programmen.

Första sidan

WINDOWS 95 FILSYSTEM

1.VFAT drivrutiner påverkar via det virtuella cache-minnet, (VCACHE), I/O Undersystem för att tillhandahålla diskaccess till flera olika enheter än vad är möjligt under Windows 3.x. VCACHE ersätter den 16-bitars SMARTDrive diskcache (DOS/Windows 3.x).

2.VCDFS har bl.a. fördelar som bättre multikörning och att MSCDEX ersätts, vilket innebär att inget konventionellt minne tas i anspråk. Även MSDOS-baserade MSCDEX och real-läges cache har fått bättre prestanda. Liksom VFAT använder VCDFS sig av VCACHE för bättre balans mellan tilldelning av minne till programkörning och att serva som diskcache.

3.Block I/O Undersystem är en förbättring av den 32-bitars diskåtkomstenhet i Windows 3.1 som hette "FastDisk".
 


Första sidan

VARFÖR HÄNGER SIG DATORN UNDER WINDOWS 95?

En orsak som gör att Windows misslyckas med fullt skydd åt en applikation är att det använder en modell som kallas meddelande-passering som tillåter ett program som uppför sig konstigt att stoppa även andra program. (Det är då datorn hänger sig ordentligt!).

Jag ska försöka förklara den termen här. För att bättre förstå det måste man veta hur programmering i gamla hederliga DOS fungerar. Där sker en s.k. procedur-programmering som betyder att ett program utför och efterfrågar en sak i taget ju längre det exekveras.

I Windows 95-miljö däremot måste en programmerare ta hänsyn till och definiera alla eventuella händelser som kommer att inträffa. (Exempelvis muspekaren som förflyttas över en specifik del av skärmen eller en musknapp som klickas när musen var i ett visst läge). Helheten av dessa handlingsmanövrer måste ingå i en Windows-applikation. Så även program (fönster) som är inaktiva (i bakgrunden) får ett meddelande om dessa händelser och får därmed avgöra om t.ex. en musklickning var avsedd för det programmet eller låta den passera till nästa program. Om då ett av programmen på skärmen (alltså även de inaktiva) hänger sig, kan det då inte låta det här meddelandet passera till de andra programmen och DÅ TVÄRSTANNAR BURKEN!

Det kan finnas flera sådana loopar pågående samtidigt och det är en förklaring till att man ibland fortfarande kan förflytta muspekaren men inte göra något annat!

Någonting som hjälper (för det mesta) är en funktion som Windows erbjuder att göra en lokal omstart (varmstart) genom att trycka Ctrl+Alt+Del kombinationen för att stoppa programmet som har hängt sig.