From e0e8d057c28922a3513236c5b737095ed72884c7 Mon Sep 17 00:00:00 2001 From: "James Smith (Student)" <james40.smith@live.uwe.ac.uk> Date: Thu, 16 Jan 2025 20:05:51 +0000 Subject: [PATCH] updated --- Task3/README.md | 22 ++++++++++++++++++++++ Task3/context.o | Bin 0 -> 640 bytes Task3/fiber.cpp | 9 ++++++++- Task3/fiber.hpp | 1 + Task3/fiber_example | Bin 0 -> 38176 bytes Task3/image10.png | Bin 0 -> 5247 bytes Task3/image11.png | Bin 0 -> 30766 bytes Task3/image13.png | Bin 0 -> 6813 bytes Task3/main.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ Task3/scheduler.cpp | 12 ++++++++++-- Task3/scheduler.hpp | 2 +- 11 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 Task3/README.md create mode 100644 Task3/context.o create mode 100755 Task3/fiber_example create mode 100644 Task3/image10.png create mode 100644 Task3/image11.png create mode 100644 Task3/image13.png create mode 100644 Task3/main.cpp diff --git a/Task3/README.md b/Task3/README.md new file mode 100644 index 0000000..b39389c --- /dev/null +++ b/Task3/README.md @@ -0,0 +1,22 @@ +# Advanced System Programming +# Task 3 + +For the final task of the assignment I was asked to add a function called "yield()" which would stop a fiber being executed half way through a function and then go onto another fiber in the queue before going back to the function again to finish it off, the function looks something like this: + + + + +it retrieves the currently running fiber the one at the front of the queue and slots it to the back so its able to resume later after the fiber behind it is completed. + + + +I then redesigned the code of the main.cpp file to test that the "yield()" function was correctly working by placing the function in function1, after it would continue onto the next fiber which is func 2 after that was completed it would go back to completing func 1 and we can see that it was successful which this output: + + + + +# What I learnt + +- how we can stop fiber processes mid way with a yield function and then resume them later + + diff --git a/Task3/context.o b/Task3/context.o new file mode 100644 index 0000000000000000000000000000000000000000..c0b9afc806c3df14e4e5bc2390a22b7c8c0afff9 GIT binary patch literal 640 zcmb<-^>JfjWMqH=Mg}_u1P><4z|eps=l~XWU|?ZjWbo-`QSs?y_vv*};qd8n=kVx^ z7x3uJm+<LKSMce~*YN2qH}L7Kw=g_#*r%J_qdT3$qdQ)}qdQ;1r#oH2r#oN6r@P$1 zr@P+5F#xQFIOBY}**v<_I6S)J1U$O)Bz(Hl6nwh#G<>?t41BulAZCGGiHqQ6U|<kp zV8W0Fc@reAjV2=rRqu}`&QP3M5}%x(SCU#$!jO){E-p_jfJ^9srS*zSib@ib81#xO zb3rt^QRMJ-7#J9sv1oJvd4z$1!3IqZDhwA@V_*QsHyd08!hpmv1H)_x7f!OkSrCQ^ a0|S;&WMFszk!DDM(ja?5m;=g}fYJa1u2F9Q literal 0 HcmV?d00001 diff --git a/Task3/fiber.cpp b/Task3/fiber.cpp index 8491dc9..8a502f0 100644 --- a/Task3/fiber.cpp +++ b/Task3/fiber.cpp @@ -1,6 +1,7 @@ //fiber.cpp #include "fiber.hpp" #include <cstdint> +#include "scheduler.hpp" Fiber::Fiber(void (*function)(), int* data) : data_(data) { sp = new char[4096]; @@ -17,13 +18,19 @@ Fiber::Fiber(void (*function)(), int* data) : data_(data) { Fiber::~Fiber() { - delete[] sp; + if (sp) { + delete[] sp; + } } Context* Fiber::get_context() { return &context_; } +void Fiber::yield() { + // Save the current context and swap back to the scheduler + s.fiber_exit(s.get_current_context()); +} // class fiber: // ... diff --git a/Task3/fiber.hpp b/Task3/fiber.hpp index 997100c..c8b9008 100644 --- a/Task3/fiber.hpp +++ b/Task3/fiber.hpp @@ -8,6 +8,7 @@ public: Fiber(void (*function)(), int* data = nullptr); ~Fiber(); Context* get_context(); + void yield(); private: char* sp; diff --git a/Task3/fiber_example b/Task3/fiber_example new file mode 100755 index 0000000000000000000000000000000000000000..73d3edf0621775d476c9eacef9a6d54dbfc58128 GIT binary patch literal 38176 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 P7+~wbpvoCw?uPLJ>h9?x literal 0 HcmV?d00001 diff --git a/Task3/image10.png b/Task3/image10.png new file mode 100644 index 0000000000000000000000000000000000000000..6cf2b30fd4884861cd1778f85116147a85920ff1 GIT binary patch literal 5247 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 ZukKrNJnZ-M6$}gv44$rjF6*2UngH&`92Nio literal 0 HcmV?d00001 diff --git a/Task3/image11.png b/Task3/image11.png new file mode 100644 index 0000000000000000000000000000000000000000..394389dcf2593a8ee511096dca7c37707f3ae603 GIT binary patch literal 30766 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îmjjR|Lj;RVpow_<lb-|8>N9XUV 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 G&;$T3!Hkpu literal 0 HcmV?d00001 diff --git a/Task3/image13.png b/Task3/image13.png new file mode 100644 index 0000000000000000000000000000000000000000..3ef6ac8604c27ab254e7e8bf68d1de04834ab1e5 GIT binary patch literal 6813 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 Qx{@FTp00i_>zopr08|C~D*ylh literal 0 HcmV?d00001 diff --git a/Task3/main.cpp b/Task3/main.cpp new file mode 100644 index 0000000..9f25d49 --- /dev/null +++ b/Task3/main.cpp @@ -0,0 +1,40 @@ +#include "scheduler.hpp" +#include <iostream> + +int* dp = nullptr; + +void func1() { + int* data = s.get_data(); + std::cout << "Fiber 1 before yield, data = " << *data << std::endl; + (*data) += 10; + s.yield(); + std::cout << "Fiber 1 after yield, data = " << *data << std::endl; + (*data) += 20; + s.fiber_exit(s.get_current_context()); +} + +void func2() { + int* data = s.get_data(); + std::cout << "Fiber 2, data = " << *data << std::endl; + (*data) += 10; + s.fiber_exit(s.get_current_context()); +} + +int main() { + int shared_data = 10; + dp = &shared_data; + + s.set_data(dp); + + Fiber* fiber1 = new Fiber(func1, dp); + Fiber* fiber2 = new Fiber(func2, dp); + + s.spawn(fiber1); + s.spawn(fiber2); + + s.do_it(); + + std::cout << "Final value of shared data: " << shared_data << std::endl; + + return 0; +} \ No newline at end of file diff --git a/Task3/scheduler.cpp b/Task3/scheduler.cpp index 765368c..f5f01e4 100644 --- a/Task3/scheduler.cpp +++ b/Task3/scheduler.cpp @@ -19,10 +19,16 @@ void scheduler::do_it() { swap_context(&context_, current_context_); + + + if (current_context_ != nullptr){ + fibers_.push_back(fiber); + } } } void scheduler::fiber_exit(Context* current_context) { + current_context_ = nullptr; set_context(&context_); } @@ -30,5 +36,7 @@ Context* scheduler::get_current_context() { return current_context_; } - - +void scheduler::yield() { + fibers_.push_back(fibers_.front()); + swap_context(current_context_, &context_); +} diff --git a/Task3/scheduler.hpp b/Task3/scheduler.hpp index 373c933..6438a67 100644 --- a/Task3/scheduler.hpp +++ b/Task3/scheduler.hpp @@ -14,7 +14,7 @@ public: void spawn(Fiber* fiber); void fiber_create(void (*fun)()); - void fiber_yield(); + void yield(); void do_it(); void fiber_exit(Context* current_context); -- GitLab