From bf3ed01140a7d8df5a407fc97bb66b7329b01d47 Mon Sep 17 00:00:00 2001 From: schulczf <schulczf@sch.bme.hu> Date: Wed, 4 Apr 2018 14:56:54 +0200 Subject: [PATCH] Added README.md --- README.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..0f94f6b --- /dev/null +++ b/README.md @@ -0,0 +1,56 @@ +Task Scheduler +============== + +(Opre hf I) + +Ez a projekt az operációs rendszerekből kiadott első fakultatív házi egy megoldása. Egy **ütemezőt** valósítottam meg, ami a beérkező taszkokat ütemezi **prioritás szerint.** A kód a **2017/2018 tavaszi** félévben íródott. + +A feladat szövege +----------------- + +>Készítsen egy programot, amely statikus többszintű ütemező működését szimulálja! +> +>A globálisan preemptív, statikus prioritásos ütemező az alábbi ütemezési algoritmusokat futtatja az egyes szinteken az előadáson ismertetett módon: +> +> 1. kernel szint (prioritás = 0, magas) SRTF ütemező +> 2. felhasználói szint (prioritás = 1, alacsony) RR ütemező, időszelet: 2 + +**Elvárt bemenet:** (standard input) + +>Soronként egy (max. 10) taszk adatai. Egy sor felépítése (vesszővel elválasztva): +> +> a taszk betűjele (A, B, C...) megfelel az érkezési sorrendnek +> a taszk prioritása (0 vagy 1) +> a taszk indítási ideje (egész szám >= 0), a következő időszeletben már futhat (0: az ütemező indításakor már létezik) +> a taszk CPU-löketideje (egész szám >= 1) +> +>Példa: +> +>A,1,0,5 +>B,1,1,4 +>C,0,5,3 +>D,0,6,1 +> +>A bemenet végét egy üres sor (utána EOF) jelzi. + +**Kimenet:** (standard output) + +>A kimenet első sorában a taszkok futási sorrendje betűjeleikkel (csak betűk, szóközök nélkül). +>A második sorban a teljes várakozási idő taszkonként, érkezésük (nem feltétlenül abc-) sorrendjében, az alábbi formában (vesszővel elválasztva, szóközök nélkül): +> +>1. taszk betűjel:várakozási idő,2. betűjel:várakozási idő, ... +> +>Példa (a fenti bemenetre adott válasz): +> +>ABACDCBA +>A:8,B:6,C:1,D:0 + +Az egyes osztályok +------------------ + +A megoldás Java nyelven íródott, és a következő osztályokat tartalmazza: +- **Main**: A számítógépet szimulálja. Elvégzi a beolvasást és a kiírást, szimulálja a processzor órajelét és a beérkező taszkokat a megfelelő órajelben az ütemezőnek adja. +- **Global**: A globális ütemező. Kezeli a két prioritási szint ütemezőjét és naplózza, hogy mikor melyik taszk futott. +- **SRTF**: Egy SRTF (shortest remaining time first) ütemezőt valósít meg. Ez tartozik a magasabb prioritású (kernel) folyamatokhoz. +- **RR**: Egy round-robin ütemezőt valósít meg. Ez tartozik az alacsonyabb prioritású feladatokhoz, ezért leállítható és újraindítható. +- **Task**: Egy taszkot reprezentál. -- GitLab