Popravil fileDevice.cpp tako da dejansko naredi datoteke, če še ne obstajajo
This commit is contained in:
parent
8222f8dd0a
commit
74cc571eef
270 changed files with 104 additions and 74 deletions
46
ass2/implementations/cpu.cpp
Normal file
46
ass2/implementations/cpu.cpp
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#include "../headers/cpu.h"
|
||||
|
||||
void cpu::start() {
|
||||
if (running) return;
|
||||
running = true;
|
||||
nitUre = std::thread(&cpu::zankaUre, this);
|
||||
}
|
||||
|
||||
void cpu::stop() {
|
||||
running = false;
|
||||
if (nitUre.joinable())
|
||||
nitUre.join();
|
||||
}
|
||||
|
||||
bool cpu::isRunning() {
|
||||
return running.load();
|
||||
}
|
||||
|
||||
int cpu::getSpeed() {
|
||||
return hitrostKhz;
|
||||
}
|
||||
|
||||
void cpu::setSpeed(int speedKhz) {
|
||||
if (speedKhz < 1) speedKhz = 1;
|
||||
hitrostKhz = speedKhz;
|
||||
}
|
||||
|
||||
void cpu::zankaUre() {
|
||||
while (running) {
|
||||
// 1. Izvedemo določeno št. ukazov na tick
|
||||
for (int i = 0; i < operacijeNaTick; i++) {
|
||||
cpu::m->execute();
|
||||
}
|
||||
|
||||
// 2. Izračunamo kolikokrat mora "tikati" na sekundo
|
||||
// speed_kHz = n tisoč ukazov / sekundo
|
||||
// operacijeNaTick = koliko ukazov na en tik
|
||||
// ticksPerSecond = (hitrostKhz * 1000) / operacijeNaTick
|
||||
|
||||
double ticksPerSecond = (hitrostKhz * 1000.0) / operacijeNaTick;
|
||||
double sleepTimeSec = 1.0 / ticksPerSecond;
|
||||
|
||||
// 3. Ustavimo nit za izračunani čas
|
||||
std::this_thread::sleep_for(std::chrono::duration<double>(sleepTimeSec));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue