Egy gondolkodtató gyakorló feladatokból álló gyűjtemény. Főbb témák a nyelvspecifikus programozás és a matematika.
Egy operációs rendszerben egy egyszerű ütemezési példát szeretnének megérteni. A feladat a folyamatok sorrendjének és a prioritás hatásának elemzése.
#include <iostream>
#include <queue>
#include <string>
struct Process {
std::string name;
int priority;
};
struct CompareProcess {
bool operator()(const Process& a, const Process& b) const {
return a.priority < b.priority;
}
};
int main() {
std::priority_queue<Process, std::vector<Process>, CompareProcess> readyQueue;
readyQueue.push({"Editor", 2});
readyQueue.push({"Compiler", 5});
readyQueue.push({"MusicPlayer", 1});
readyQueue.push({"BackupService", 4});
readyQueue.push({"Terminal", 3});
while(!readyQueue.empty()) {
const auto current = readyQueue.top();
readyQueue.pop();
std::cout << current.name << ':' << current.priority << '\n';
}
return 0;
}
-- Feladatok:
-- 1. Milyen sorrendben jelennek meg a folyamatok a képernyőn?
-- 2. Miért a nagyobb priority értékű folyamatok kerülnek előre?
-- 3. Milyen ütemezési elvet modellez a program?