Fråga 1: Förklara vad Time-Sharing är och hur det går till. I din redogörelse ska nyckelorden process, CPU, context switch ingå och vara insatta i sammanhanget på ett korrekt sätt. Det ska framgå hur time-sharing virtualiserar CPU:n.


==========================

Time-Sharing gör en illusion av ett flertal virtualiserade CPU:er även om det endast är en kärna som delas med flera processer. En vanligt förekommande algoritm är Round Robin, där får varje process får en förutbestämt tid  i en cykel av CPU:ns tid. Medans nästa processs är i en "ready state" och resterande processer är i en "waiting State", så fort en process fått den förutsatta tiden tex 100ms i cykeln så utförs context switch till nästa process som låg väntande i cykeln.

BEDÖMNING: Svårbedömt. Svaret utgör inte en sammanhängande förklarande text. Troligtvis dåligt svar.

==========================

Virtualisering innebär en upplevelse av att CPU:n exekverar flera processer parallellt. Detta åstadkoms genom att operativsystemet har möjligheten att göra en context-switch vilket innebär att det stoppar en process och startar en annan. Genom att köra varje process en kort stund och sedan byta till nästa i ett ofta cyklist mönster delar flera processer på CPU:ns tid och det är det som kallas för time-sharing. Eftersom detta kan utföras väldigt snabbt ges upplevelsen av att flera processer exekveras parallellt vilket kallas virtualisering av CPU:n.​

BEDÖMNING: Bra svar.

==========================

Time sharing är en av de viktigaste tekniken som implementeras av operativsystemet för att hantera körande processer. Det som händer är att CPUn fördelar tiden för att hantera de olika processer som står och väntar på körning. CPUn kör varje process för en viss bestämd tid och därefter byter till den andra. Bytet mellan en process till en annan kallas för Context switch. Det upplevs som att processerna körs samtidigt men det som händer är att CPUn betjänar dessa processer parallellt med en viss bestämd tid för varje. 

BEDÖMNING: Den cykliska strukturen av Round Robin framgår inte. "CPUn betjänar dessa processer parallellt" stämmer inte, det sker ingen parallell betjäning. Ganska bra svar.

==========================

Time-sharing är ett sätt att virtualisa CPU:n för att ge upplevelsen av att flera processer arbetar samtidigt och får då indirekt tillgång till resurser. CPU:n arbetar med en process åt gången och kan utför en context switch vilket byter process som CPU:n arbetar med. Vanligast är att cykliskt arbeta med processerna som ligger i en kö och tilldela dessa en förutbestämd CPU-tid, denna algoritm kallas Round-Robin. En slutförd process i Round-Robin algoritmen överlåter sin kvar-varande CPU tid till nästa process i kön. 

BEDÖMNING: Kan bli tydligare hur det cykliska skapar en upplevelse av virtualisering/parallell körning. Ganska bra svar.

==========================

CPUn kan bara fokusera på en process åt gången, men för att få det att verka som att flera processer körs samtidigt använder man sig av Time-sharing. Den vanligaste formen av Time-sharing är att ge processerna återkommande CPU-tid i en cyklisk struktur. Den här formen av Time-sharing brukar kallas Round Robin. Användingen av en sån struktur gör att de upplevs som att processerna körs sammtidigt och virtualisering upplevs. Själva bytet mellan processerna kallas ”context switch”.

==========================

I ett system finns begränsade resurser. Då flera processer körs finns en teknik som möjliggör att dessa processer kan dela på en viss resurs, t.ex. CPU:n, vilket ger illusionen av att processerna körs samtidigt. CPU:n har då virtualiserats (det kan uppfattas som att flera virtuella CPU:er behandlar processerna separat). Denna teknik kallas time-sharing och utförs av operativsystemet. Time-sharing-tekniken innebär att en process i taget nyttjar resursen. Den vanligaste metoden för detta kallas Round Robin och innebär att processerna, en efter en, får tillgång till resursen under en tid innan den byts ut mot nästa process. Bytet kallas för context switch och allt sker cykliskt.

BEDÖMNING: Bra svar, dock kan "allt sker cykliskt" kopplas ihop mer med motivationen att virtualisering sker. Det är inte helt tydligt hur "allt sker cykliskt" innebär en virtualisering.

==========================

Time-sharing är ett sätt för CPU:n att fördela sin tid mellan olika processer, det vanligaste systemet för det är round-robin som fungerar genom att använda en hårdvarumässig timer. Varje gång timern klockar sker context-switch vilket betyder byte av process. Det finns ingen prioritering av detta byte då det sker med hjälp av timern. Detta gör så att man upplever att systemet utför flera processer samtidigt, detta kallas att man virtualiserar CPU:n

BEDÖMNING: Flera oklarheter, "Det finns ingen prioritering av detta byte då det sker med hjälp av timern.", vad betyder det? Vad innebär även "byte"? Vad är det som byts? "Detta gör så att man upplever att systemet utför flera processer samtidigt" hur uppkommer denna upplevelse? Eftersom "byte" inte är klart så blir inte heller detta klart. Dåligt svar.

==========================

Om vi utgår ifrån att vi bara har en CPU som bara kan köra en process åt gången så behöver
operativsystemet ett sätt att prioritera vissa processer för att kunna virtualiseras. Virtualisering i sig gör så att processer tror att de har enskild tillgång till CPUn fast de får en viss tid tilldelad sig och det här kallas ”time-sharing”. Därefter utförs en s.k. ”context switch” som sparar tillståndet på processen för att vid ett senare tillfälle kunna återupptas och laddar in den process data som ska exekveras härnäst. Dessa byten av processer samt context switches sker cykliskt.

BEDÖMNING: Dåligt svar. Stapling av förklaringar av de olika begreppen men inte givet som en sammanhängande förklaring. Svårt att se att detta svar bygger på en förståelse av vad begreppet verkligen innebär och hur det fungerar.

==========================

Time-Sharing gör en illusion av flertal virtualiserade CPU fastän det endast används en CPU som delas med flera processer.
i en cykel så får varje process en förutbestämt tid  av CPU:ns tid medans nästa processs är i en ''Ready state'' 
och resterande processer är i en ''Waiting State'', så fort en process är färdig kört så gör
cpu en context switch till den nästa process som var i ready state, och processen efter de går
          från ''waiting state'' till ''ready state''

BEDÖMNING: Den cykliska strukturen framgår inte alls och svaret har lösryckta hänvisningar till processtillstånd som visserligen existerar och i någon mening är korrekt beskrivna, men de utgör inte tillsammans ett sammanhängande svar på frågan. Dåligt svar.




