Lunds Tekniska Högskola Datorarkitekturer med Operativsystem EDT621 Aktivitetsschemaläggning för flerkärninga processorer Tobias Lilja 5 december 2016
Innehåll 1 Inledning 3 1.1 Syfte................................ 3 1.2 Bakgrund............................. 3 2 Teori 4 2.1 Traditionella Schemaläggningsmetoder............. 4 2.1.1 RMS............................ 4 2.1.2 EDF............................ 4 2.2 Global Minnescentrerad Schemaläggning............ 5 3 Jämförelse & Avslutning 7 1
Sammanfattning En processor idag består utav av mängd olika kärnor och även fast detta är att föredra så genererar de också problem. Ett av problemen är att eftersom det finns flera kärnor så måste man även schemalägga när var och en av dessa får tillgång till de olika resurserna. Det finns då en mängd olika schemaläggningsmetoder för att hantera detta problemet, två av de enklaste är RMS(Rate Monotonic Scheduling) och EDF(Earliest Deadline First). Båda dessa metoderna är optimala men väldigt enkla. RMS är en metod som ger varje aktrivitet en statisk prioritering, medans EDF ger aktiviteter prioritet dynamiskt. En annan metod är Global real-time memory-centric scheduling som är en schemaläggningsmetod med fokus på minne. Den är utvecklad för att användas på system som kör applikationer som är tunga för minnet. 2
1 Inledning Den moderna processorn består inte längre utav en ensam kärna, utan den består av flera stycken. Då detta är att föredra eftersom det gör så processorn kan köra flera olika aktiviteter i princip paralellt med varandra. Ett av de problem som uppstår när det har med parallellitet göra är att det behövs något typ av schema för när de olika aktiviteterna kan köras. Man behöver därför en schemaläggare i processorn. I den här rapportet så kommer det beskrivas några olika schemaläggningsmetoderna. Först två av de enklaste och sedan en annan modernare som har ett fokus på minne. 1.1 Syfte Syftet med denna rapport är att redovisa hur olika aktivitetsschemaläggningsmetoder fungerar i flerkärninga processorer. 1.2 Bakgrund Anledningen till varför rapporten handlar om just schemaläggning är att det är både intressant och att det ytterst viktigt för moderna system att använda sig av effektiva schemaläggningsmetoder. 3
2 Teori 2.1 Traditionella Schemaläggningsmetoder 2.1.1 RMS RMS står för Rate Monotonic Scheduling och är den optimala schemaläggningsmetoden bland de mtedoder som bygger på statisk prioritet. [1] Det som gör RMS till en av de vanligaste är att det är en relativt simpel metod. Den bygger på att man ger aktiviteter fast prioritet och sedan schemalägger så att alla aktiviteter blir färdiga innan de når sin deadline. Detta illustreras enkelt enligt figur 1. Figur 1: Ett diagram över hur RMS fungerar. Man ser att Task 1 har kortast period och därför också högst prioritet. 2.1.2 EDF EDF står får Earliest Deadline First och är en schemaläggningsmetod som till skillnad från RMS inte har statisk prioriterade aktiviteter. Den kör enligt principen att den aktivitet som har kortast tid till deadline får prioritet över de andra. En stor fördel med EDF är att den till skillnad från RMS är att den kan garantera att alla aktiviteter når sin deadline sålänge CPU:n användning inte öveskrider 100%. [3] 4
Figur 2: Ett diagram över hur EDF fungerar. Man kan t.ex se att J3 avbryter J2 eftersom J3 är närmare sin deadline. 2.2 Global Minnescentrerad Schemaläggning I artiklen: Global real-time memory-centric scheduling for multicore systems. [2] så introducerar författarna en ny typ av schemaläggningsmetod som de kallar Global Memory-Centric Scheduling. Författarna menar på att i traditionell schemaläggning så ligger fokuset på CPU:n och att man inte tar hänsyn till minnet när man schemalägger. [2, p. 2742] De föreslår därför en schemaläggare som räknar med minnesåtkomst när den beslutar om vilken aktivitet som ska köras. De tre reglerna för metoden listas nedanför: 1. För att förhindra maskning så begränsar man antalet kärnor som kan ha tillgång till minnet samtidigt. 2. Minnesfaser prioriteras över utförelsefaser och de aktiviteter som utför sina minnesfaser dynamiskt har prioritet över aktiviteter som inte har tillgång till minnet. 3. Aktivitetsprioriteringar ges enligt dess perioder. Alltså de aktiviteter med kortare perioder har prioritet över de med längre. Ifall detta ger konflikt med den andra reglen så utgår detta. Om man utgår från dessa tre regler så finns det tre olika scenarion som kan ske. Det första är att ifall alla kärnor är upptagna men kapaciteten för antal kärnor som kör minnesfaser inte är nådd. Då startas minnesfasen direkt genom att ta över den minst aktiva utförelsefasen över alla kärnor, detta enligt den andra regeln. Det andra scenariot sker är ifall även minneskapaciteten är nådd och minnesfasen som väntar har högre priroritet än någon av de aktiva. Om så är fallet så kommer så kommer den väntade ta över positionen hos den minnesfas med lägst prioritet. Det sista scenaiot är ifall 5
det finns lediga kärnor och minneskapaciteten inte är nådd, i detta fall så startas minnesfasen direkt i en av de lediga kärnorna. Ifall det inte passar in i något av dessa scenarion så kommer aktiviteten att blockeras. En av fördelarna med detta är att man under körning separerar de båda typerna av faser. Det gör att det alltid finns fria resurser för minnesfaser eftersom minnesfaser alltid har högre prioritet än utförelsefaser. En nackdel med metoden är att ifall belastningen på minnet är låg, för när den är låg så utnyttjas inte de virtuella minnet fullt ut och man slösar resurser.en annan sak som är värd att nämna angående den minnescentrerade schemaläggningsmetoden är att den är riktad mot applikationer som är intensiva för minnet, detta eftersom metoden prioriterar minnesaktiviteter. Ett faktiskt exempel på hur metoden fungerar visas i Fig. 3. Den visar fem aktiviteter som alla startar vid tiden 0. Figuren är tagen ur artiklen [2] och författarna förklarar den såhär: Here, we show each task with starting and end memory phase length 1 and an execution phase length between 1 to 4. We assume that the system consists of three cores so that at any time instance there are at most three tasks running concurrently. We further assume the system memory capacity is 1 core s memory bandwidth, hence, only one task can access memory at a time. The tasks are assigned global priority with task 1 having the highest priority. In Figs. a and b, each line represents the execution progress of each task: we do not show the trace for each core but only limit the Figur 3: Grafer som visar olika typer av schemaläggning number of concurrently running tasks. Fig. c shows the same trace as in (b), but we group the execution and memory phases from all tasks. 6
3 Jämförelse & Avslutning Om man jämför de traditionella schemaläggningsmetoderna med den mer moderna kan man direkt se att den moderna är mer komplex. Detta för att den är anpassad till ett specifikt syfte, för Global real-time memory-centric scheduling så är syftet att metoden ska användas i situationer där minnet spelar stor roll för den generella prestandan. Det är en intressant synvinkel och den skiljer sig en del från hur man traditionellt ser på schemaläggning. Slutligen så ska jag nämna att medans jag undersökte olika schemaläggningsmetoder så läste jag igenom flera andra intressanta ideér angående schemaläggning. Det fick mig att inse att det är ett område där det sker mycket forskning och att det kommer fortsätta att dyka upp nya nischade metoder. 7
Referenser [1] M Barr and D.B Stewart. Introduction to rate monotonic scheduling, 2002. [2] Yao Gang, R. Pellizzoni, S. Bak, Yun Heechul, and M. Caccamo. Global real-time memory-centric scheduling for multicore systems. IEEE Transactions on Computers, 65(9):2739 2751, 2016. [3] Michael O Boyle. Lecture 6: Scheduling, 2014. 8