![]() (yield instead of busy-waiting, for example) Cooperative waits for each process to release control before allowing a different one to run, and expects them to do that responsibly.The two broad categories are preemptive and cooperative, with lots of variations within each: (assuming that the process manager is effectively a subroutine itself, that is entered programmatically (yield) or by force (interrupt)) ![]() Thus, to change processes, just save the previous stack pointer in a table of all processes so that you can return to that one, take the stack pointer from a different entry in the table, and return. ![]() The stack is used for things like passing parameters to subroutines and getting the results back, as well as program flow to and from those subroutines. Usually, that's done by a software-accessible stack pointer, so that each process effectively has its own stack in a different place in RAM. It just needs a way to keep the status of each task that hasn't finished yet, so it can continue where it left off as if nothing happened. No, the type of multitasking is software, and can run on (almost) any hardware without restriction. Ok, but this is hardware, not? Does it mean the RPI’s have different processors? It could be something else, but that's what stands out to me. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |