Spelling suggestions: "subject:"coroutines"" "subject:"nonroutine""
1 |
A Unifying Theory of Multi-Exit ProgramsZhang, Tian 10 1900 (has links)
<p>Programs have multiple exits in the presence of certain control structures, e.g., exception handling and coroutines. These control structures offer flexible manipulations of control flow. However, their formalizations are overall specialized, which hinders reasoning about combinations of these control structures.</p> <p>In this thesis, we propose a unifying theory of multi-exit programs. We mechanically formalize the semantics of multi-exit programs as indexed predicate transformers, a generalization of predicate transformers by taking the tuple of postconditions on all exits as the parameter. We explore their algebraic properties and verification rules, then define a normal form for monotonic and for conjunctive indexed predicate transformers. We also propose a new notion of fail-safe correctness to model the category of programs that always maintain certain safe conditions when they fail, and a new notion of fail-safe refinement to express partiality in software development.</p> <p>For the indexed predicate transformer formalization, we illustrate its applications in three models of multi-exit control structures: the termination model of exception handling, the retry model of exception handling, and a coroutine model. Additionally, for the fail-safe correctness notion and the fail-safe refinement notion, we illustrate their applications in the termination model. Six design patterns in the termination model and one in the retry model are studied. All the verification rules and design patterns in the thesis have been formally checked by a verification tool.</p> / Doctor of Philosophy (PhD)
|
2 |
Performance of Priority-Based Game Object Scheduling / Prestanda av prioriteringsbaserad schemaläggning av spelobjektBhat, Nathan, Åsberg, Filip January 2018 (has links)
This paper investigates alternative scheduling for game objects in a game engine by using priority based algorithms and comparing different priority assigning methods. Research concerning commercial game engines, game loops, concurrency and scheduling was performed. Three different scheduling algorithms were created and tested using a varying amount of game objects between two different testing scenarios. The results showed that using priority based scheduling gave a slight increase in average frames per second (FPS) as well as boosting logical update performance of prioritized objects, however overall performance was decreased. The reason this decrease in performance occurred could have been due to the way the scheduler was implemented, and despite the decrease in performance using a priority based scheduling system was considered feasible within certain game engines. / Denna uppsats undersöker alternativa sätt för schemaläggning av spelobjekt i en spelmotor genom att använda prioriteringsbaserade algoritmer och jämföra olika tilldelningssätt för prioritetsmetoder. Forskning gällande kommersiella spelmotorer, ''game loops'', parallellisering och schemaläggning utfördes. Tre olika schemaläggningsalgoritmer skapades och testades med ett varierande antal spelobjekt i två olika testscenarion. Resultaten visade att användning av prioritetsbaserad schemaläggning gav en lätt ökning av det genomsnittliga antalet bilder per sekund (FPS) och gav bättre logikuppdateringsprestanda för prioriterade objekt. Den totala prestandan minskade dock. Anledningen till att denna minskning i prestanda skedde kan bero på hur schemaläggaren implementerades, men trots denna prestandaminskning ansågs schemaläggningssystemet vara möjlig inom vissa spelmotorer.
|
Page generated in 0.0328 seconds