-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprocess_struct_demo.cpp
More file actions
42 lines (36 loc) · 1.54 KB
/
Copy pathprocess_struct_demo.cpp
File metadata and controls
42 lines (36 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <string>
// Enum to represent process states
enum class ProcessState {
READY = 0,
RUNNING,
SLEEPING,
ZOMBIE
};
// Struct to represent a process
struct Process {
int pid; // Process ID
std::string name; // Executable name
int arrivalTime; // Arrival time in the system
int burstTime; // Total CPU time required
int priority; // Lower value = higher priority
ProcessState state; // Current state of the process
int memoryUsage; // Memory in MB
float cpuUsage; // CPU usage in %
// Constructor to initialize a process
Process(int id, const std::string& n, int arrive, int burst, int prio)
: pid(id), name(n), arrivalTime(arrive), burstTime(burst),
priority(prio), state(ProcessState::READY), memoryUsage(0), cpuUsage(0.0f) {}
};
int main() {
Process myProcess(1, "my_app", 0, 10, 2);
std::cout << "PID: " << myProcess.pid << std::endl;
std::cout << "Name: " << myProcess.name << std::endl;
std::cout << "Arrival Time: " << myProcess.arrivalTime << std::endl;
std::cout << "Burst Time: " << myProcess.burstTime << std::endl;
std::cout << "Priority: " << myProcess.priority << std::endl;
std::cout << "State: " << static_cast<int>(myProcess.state) << std::endl;
std::cout << "Memory Usage: " << myProcess.memoryUsage << " MB" << std::endl;
std::cout << "CPU Usage: " << myProcess.cpuUsage << "%" << std::endl;
return 0;
}