Programming Environments for Developing Real Time. Autonomous Agents based on a Functional Module Network Model
|
|
- Lydia Gaines
- 6 years ago
- Views:
Transcription
1 Programming Environments for Developing Real Time Autonomous Agents based on a Functional Module Network Model T.Oka 3 M.Inaba + H.Inoue + 3 Graduate School of Information Systems + Dpt. of Mechano-Informatics Univ. of Electro-Communications Univ. of Tokyo Chofu-shi, Tokyo 182 Bunkyo-ku, Tokyo 113 Abstract In this papaer, we present programming environments for developing real time autonomous agents on multi-processor systems based on a hardware independent description model. BeNet, our model is a network of functional modules that calculate elements of the internal representation of the brain with their own frequencies. A system that interacts with the physical world is modeled almost completely by a BeNet, because it consists of modules which interact with the external system at regular intervals. It is described much more easily than a common parallel program and its behavior is easy to understand. Since it is a parallel system and the description is not specic to any hardware, it is possible to realize environments for programming BeNets on various multi-processor systems. We implemented environments in which the developer can program a BeNet in a generic programming language such as C++ and test it immediately on a multi-processor system. In our environments, the developer only needs to describe components as sequential programs, determine their intervals and connect the components in a simplied way and observe the behavior of the described system. The proposed environments will be of great benet to designers and researchers of autonomous robots and real time agents. 1 Introduction The behavior of an autonomous agent emerges from the dynamics of the brain and its environment. The developer of an agent must describe the brain that shows a desirable interaction with the dynamical environment. In order to verify the described agent, it is inevitable to realize the system with some physical apparatus and observe its behavior in the real world. Therefore, the designer has to repeat test and modication cycles and an environment for repeating such cycles in a short term is necessary. A programming environment on a multi-processor system can be a powerful tool for developing an autonomous agent, because it must be reactive and it needs a massive computation power. On such an environment, you usually can describe the system as a program and test it immediately. However, it is not easy to write a program of a multi-processor system that interacts desirably with a dynamic environment in a generic form. In this paper, we propose a functional module network model for describing a desirable real time autonomous agent completely in a hardware independent manner. BeNet, our model is suitable for various multiprocessor systems and it is possible to realize environments to describe a modular brain out of components designed independently and test it immediately. We realized environments for developing agents and robot brains based on BeNet description in generic programming languages. In these environments, it is easy to program and develop autonomous system. The model, the environments and an example for desingning are presented. 2 Describing an Autonmous Agent The brain of an autonomous agent is a system that interacts with the dynamic physical environment. As the brain itself is also a dynamical system with external input and output, the description of it should include temporal constants to determine its behavior completely. If you develop an autonomous robot, you need to describe a brain completely that behaves desirably interacting with the real world. A computer program is a kind of system description. A system is realized by a computer that execute a program described by a programmer. If the program is written in a generic language, it may be executed by various computers. However, the behavior of a computer that is executing it is not described completely by the program itself, because it also depends on the hardware. Especially for a robot brain, the dierence of timing of execution has a great inuence on its behavior, because it interacts with the physical world. If the system is described as a parallel program, it is more complicated. In order to guarantee its completeness and correctness, the description will often be specic to the computer that executes the program. In general, such a hardware specic program is intricate, far from portable and hard to understand.
2 The best way to solve this problem is to divide the system description into specic and non-specic parts. Usually, the designer has to describe both the specic and the non-specic part. However, if the non-specic part represents the behavior of the system completely, the hardware specic part will be independent of the described system. Therefore, it is possible to realize an environment in which the designer only needs to describe the non-specic part, by preparing all the necessary hardware specic programs in advance. 3 Related Works Rosenschein proposed to describe an embedded autonomous agent in terms of declarative expressions about the environment and the agent[10]. Such expressions are analyzed and compiled to generate a digital circuit that behaves as an autonomous agent interacting reactively with the environment. If the expressions include information for selecting an appropriate action in each situation the agent faces, the compiler can generate a reactive agent that behaves desirably in the environment. However, this approach has diculties when you apply it for designing autonomous robot brains that react with the physical world through real sensors and motors. One reason is that the dynamics of the physical world with which autonomous robot brains interact is too complex to describe completely (especially in a declarative way). It is dicult to describe a desirable dynamical system completely in this approach. Another is that it is often not appropriate to realize a functional module as a combination circuit. Brooks' BL(the Behavior Language[1][2]) is a language for describing systems that react to the real world. In BL, a system is described as a set of parallel processes. BL is not as powerful as generic languages like C++ or Common Lisp for describing various systems because it was developed for designing a network of simpler and specic units (AFSM's)[4]. In BL you cannot dene a function or complex data structures like ordinary programming languages. Therefore the developing environment in BL lacks a variety of describable systems. Furthermore, the BL programing environment was not based on an appropriate computational model for dynamical system. A network of AFSM's is a network of processes that often synchronize or communicate with the external system at an arbitary timing. In general, the behavior of such a network depends on the time to take for the calculation. Chapman's essential connectionist approach[6] has a similar drawback because the described system is a network of specic units of limited size and structure. Brooks has developed a new environment for developing real time embedded control systems. In this environment, they describe systems in a language called L[3][5]. L is a downwardly compatible subset of Common Lisp with multiple-processing extension. Since L contains all of the main functionality of Common Lisp, it is much easier to describe a desirable system in L than in BL. The L system supports parallel processing by regularly scheduled lightweight processes that share the Lisp heap. A language called MARS is built on top of L. In MARS, they can describe asynchronous parallel processes that communicate through bi-directional ports in a simplied manner. However, in this environment, you cannot describe a dynamical system completely in a simplied manner, because it is not based on an appropriate computational model. In our environments based on the BeNet model, the designer gives a hardware independent and complete description of a real time autonomous agent described in a generic programming language and the described system is simulated in real time by a parallel computer. As the BeNet model gives some constraints and the description is not specic to any implementations, the description of a BeNet is simpler than a system description in MARS, but the variety of describable systems as autonmous agents is still sucient. In our environments, a description of a BeNet is more explicit and clearer than a system description in BL, and you can test systems of a broader range. 4 BeNet:a Model for Real Time Agent 4.1 Real Time Augmented Automaton Before mentioning the BeNet model, we begin with showing the simplest model for describing an autonomous agent completely. Every system that interacts with the external system is described completely as a Real Time Augmented Automaton(RTAA) dened below. O(t) = F o (S(t 0 1t); I(t 0 1t)) (1) S(t) = F s (S(t 0 1t); I(t 0 1t)) (2) where O(t), I(t) and S(t) denote the output vector, the input vector and the internal state vector, respectively (see Fig.1). An RTAA reads the input and changes the state and output every 1t. The behavior is determined by F o, F s and 1t. Therefore, an autonomous agent is described completely as an RTAA. Note that 1t should be small enough in comparison with the changing rate of the external system both for completeness of the description and desirability of the behavior. The described agent can be realized by a hardware that calculates F o (S(t); I(t)) and F s (S(t); I(t)) every time step 1t. For example, a computer that calculates F s and F o in an innite loop every 1t behaves like the described agent. The functions F s and F o can be described as a sequential program. Therefore, a pair of a sequential program and a description of interval 1t gives a complete description for an agent.
3 I(t) system input External System &$#t System Fs Fo S(t) internal memory O(t) system output Figure 1: Real Time Augmented Automaton 4.2 Internal Representation and Network of Functional Modules S(t), the state vector of an agent or an RTAA is regarded as its internal representation. For a complete description, the designer should at least determine the size of S(t) and how to calculate each element of it at every time step. For a desirable behavior, it is necessary that S(t) includes useful information about the current state of the environment and the agent, that is not available directly from I(t). The designer should give a meaning to an element or a group of elements in order to design a desirable system. And the element(s) should always represent the intended information correctly. The designer describes how to calculate each element of S(t) from the given information I(t 0 1t) and S(t 0 1t). The value of the ith element S i (t) is calculated by the following expression. S i (t) = F s i (S(t 0 1t); I(t 0 1t)) (3) Note that not all the elements of the vectors S and I are necessary for the calculation and that it is not always necessary to update the value of S i (t) every 1t. For this reason, the system may be described as a network of functional modules that calculate their own part of S(t) from their own input which consists of a part S(t) and I(t). There could be elements that are only necessary for the module that calculate them. Since such an element is written and read only by a single module, it is a internal state variable of the module. The other elements are calculated by a module and referred by other modules. Each module may have its own frequency of calculation. Consequently, every agent is completely described as a network of such functional modules that calculate a part of the internal representation with their own frequencies. 4.3 the BeNet Model A BeNet is a network of asynchronous RTAA's called Behavior Units(BU's) that change their state and output with their own frequencies f k (= 1=t k ). Each BU has an input vector i(t), a state vector s(t) and an output vector o(t). An element of i(t) is an element of either the input I(t) or the state S(t) of the agent. An element of s(t) is an element of S(t). An element of o(t) is an element of either S(t) or O(t). The value of the ith element of the state(output) vector of the kth BU at the time t is calculated as follows. s k i (t) = F k i (ik (t 0 t k ); s k (t 0 t k )) (4) o k i (t) = G k i (i k (t 0 t k ); s k (t 0 t k )) (5) Since the BU's in a BeNet run asynchronously with their own frequency, the behavior is not strictly the same as an RTAA that calculate S(t) and O(t) every 1t. However, the BeNet description is almost complete, because each BU is described completely with its functions and frequency. This means that the constraint on programming a parallel system as a BeNet is not too strong for an autonomous agent. The BeNet description includes additional information about the grouping of the calculation so that the system is simulated by a direct parallel processing. On the other hand a BeNet is easier to describe than a general parallel system. I(t) i(t) s(t) 1 1 &D#t#2 2 System 2 BU 3 &D#t#4 4 S(t) 3 4 F,G BeNet 6 o(t) O(t) &D#t Figure 2: describing a system as a BeNet 4.4 Merits of BeNet Programming for Autonmous Agents A BeNet is easy to extend or modify, because it is a network of functional modules, of which the roles in the system are stipulated by the designer. A BU is a component of which the dynamics is determined by the two functions and the interval, t k. The developer can design a BU independently, since the meanings of its input, output and state vectors are stipulated by the
4 very developer. A BeNet can be simulated directly in parallel and it is not dicult to build an environment for programming BeNets in an appropriate language on a multi-processor system. And the most signicant feature is that a BeNet description represents almost competely a system that interacts with the physical world. In theory, you can describe every dynamical system as a BeNet non-specic to any hardware. 5 Programming BeNets 5.1 Programming a BU A BU is dened by the interval t k and two functions that map vectors, s k (t 0 t k ) and i k (t 0 t k ) into s k (t) and o k (t). These functions can be described by a sequential program of any generic programming language. If the functions are calculated within t k and the interval is kept t k by a computer, the described BU is realized in the physical world. A BU is simulated in the following manner. 1. receive the input vector 2. calculate the state vector and the output vector 3. send the output vector 4. adjust time 5. go to 1 The description specic to a particular BU is 2 and the interval that is necessary to adjust time at 4. The other part of the program describes procedures that is not specic to the BU. Therefore, a BU is described by a sequential calculation program and a simple binding of a variable. If the other part of the program is already written, the designer only needs writing the specic part. For example, a simple BU is described completely by the following forms in Lisp. (defbehaviorunit bu (let ((x (get-input bu1 0)) (y (get-state bu1 0)) (z (get-state bu1 1))) (set-output bu1 0 (+ x y z)) (set-state bu1 0 (/ z 2)) (set-state bu1 1 (* x 2)) (set-result bu1 0 t))) (set-cycle bu1 10) (definitialize initbu1 bu1 (set-input bu1 0 0) (set-state bu1 0 1) (set-state bu1 1 1)) The form that begins with defbehaviorunit is describing bu1's functions F 1 and G 1. bu1 has one input, one output and two state variables. The initial values of the input and the state vector are described in the form that begins with denitialize. The interval of the calculation of bu1 is dened by set-cycle. set-cycle may be called in denitialize or defbehaviorunit. 5.2 Object Oriented BeNet Programming Autonomous agents can be described more eciently in an object oriented programming language. The input vector, the output vector, the length of interval, and information about the network conguration can also be kept in slots of a instance of a pre-dened or user-dened class and be changed or accessed by their methods(member functions). The programs are more readable and understandable. 5.3 Conguring a BeNet A BeNet is simply described as a network of BU's. There are two ways for dening the network conguration. One is to connect an element of output vector of a BU directly to an element of input vector of another BU. The other is to connect all the elements of the input and output vector to the elements S(t). For example, the network conguration of a BeNet is described as below. (defmessage *mes1*) (defmessage *mes2*) (defmessage *mes3*)... (defoutlist bu0 *mes1* *mes2* *mes6*) (defoutprio bu ) (definlist bu0 *mes4* *mes5* *mes7*) (defoutlist bu1 *mes3* *mes4* *mes5* *mes6*) (defoutprio bu ) (definlist bu1 *mes1* *mes2* *mes7*)... The messages(*mes1*, *mes2*,...) are elements of S(t) that are passed among the BU's(bu0, bu1,...). bu1's output elements, o 1 1(t), o 1 2(t) are connected to bu0's input elements, i 1 2(t), i 1 3(t), via *mes4* and *mes5*. Both bu0 and bu1 send messages to port *mes6*. If the two BU's send messages simultaneously, bu0's message will be the value of *mes6*, because bu0 has higher priority value 3 for *mes6* than bu1's priority value 1. Messages on *mes7* are sent to bu0 and bu1. The BeNet described above is shown in Fig.3. (A circle with an alphabet p is a node for arbitration.) The description of the network conguration is also non-specic to the hardware that actualize the BeNet. *mes6* p *mes4* *mes3* bu0 *mes5* *mes1* bu1 *mes2* Figure 3: Described BeNet *mes7*
5 6 BeNet Programming Environments 6.1 Implementation on Transputer for Real Robots We implemented a programming environment that enables real time simulation of BeNets on transputer networks. This environment is called BNRB/tp(BNRB stands for BeNet for Robot Brain). In BNRB/tp, the designer describes BU's in C and the network conguration in a C-like conguration language [11]. The programs written by the designer are linked with the system programs along with additional information on the hardware. The system program for the part of program specic to BNRB/tp is written in C. Everything for process generation, communication, interval control is done within this program. The running interval of each BU is controlled by the local timer by 64sec. Asynchronous communication among BU's are realized using channels and buer processes. A BU process tries to send the output vector to the output buer processes in every cycle and receive the input vector from the input buer processes. Since process switching and scheduling is done by hardware, context switching is executed within 1sec and a processor can simulate dozens of BU's that runs in milliseconds' cycle in real time. Each BU runs on its own memory space including its code, stack and heap. Programming a BU in C, the designer can utilize various library functions for image processing, motor control, planning or user interface. Using remote-brain interface[7][8] to sensors and motors of a remote real robot, we can test the behavior of a described BeNet immediately in the real world. We have built a brain for autonomous ballboy robot as a BeNet with a real time vision system, a hierarchical motion control system and a reactive decision making system[9]. 6.2 Implementations on Solaris 2.X After developing BNRB/tp, we implemented environments for BeNet programming on Solaris 2.X using multithread library[12](bnrb/mt). In these environments you can simulate a BeNet on multi-processors making use of various software resources of Solaris 2.X. We also developed a lightweight interface between BNRB/mt and BNRB/tp, that enables us to build a BeNet that runs over a workstation and a transputer network. The system program for the rst BNRB/mt was written in C and it enables the designer to program a BeNet in C like in BNRB/tp. In BNRB/tp and BNRB/mt the designer can make use of the same BU program described in C. Afterwards, we rewrote the system program in C++ using class denitions. In this environment, the designer can dene classes of C++ to describe the internal representation s k (t) as slot variables and the functions F k and G k with member functions of the classes. The system program does everything for thread creation, communication, scheduling and interval control. The messages are realized as static global variables in the shared memory space, and they are accessed exclusively (with mutex locks) by threads for BU's. Scheduling and interval control are done by our system program together with the kernel. A BU is dispatched to an available processor on run time by the kernel. In BNRB/mt, the designer only needs nonspecic description of a BeNet: functions F k and G k, interval t k and the conguration. 6.3 Simulator in Common Lisp We also realized an environment to simulate a BeNet written in Common Lisp. The system program is written with class denition of CLOS, macros and functions of Common Lisp. Although our environment cannot simulate a BeNet in real time, we can verify the behavior of a reactive and modular system interacting with the external system. In this environment, BNS/cl, as all the BU's share the heap space, it is possible to pass symbols or lists as messages. However, it seems to be better to limit the data type of a message and prohibit sharing global variables for modularity and ease of description, taking a parallel implementation into account. 7 An Example of Real Time Agents In this section, we show a simple autonomous agent that can communicate with a human. The agent is described in C++ completely as a BeNet made up of 5 BU's. The agent has a virtual body in the X Window system, an eye, a mouth, a mouse and a keyboard. It is simulated by a Sun SS20 and a transputer network. The video image from the camera is processed by two transputers with image memory at video rate. The agent can detect the existence and the motion of a human and send messages to him. The agent has memory of its experience, observes the external world and says \hello", " how do you do", "it is a long time since I met you" and so on to the user of the computer. Since the BeNet does not synchronize with the external world at all, the agent can behave autonomously without waiting for a message from a human and do urgent tasks if necessary. Being described in C++ using abstract data type dened by the designer, the system is understandable and easy to modify or extend to realize a more complex agent. The description of the agent as a BeNet is not specic to our computers. In the BL or L environments, you cannot describe the agent completely in this simple way, because they are not based on BeNet model. The main function of the BU greeting in Fig.4 is as follows. In BL, you cannot dene functions or abstract data types like in this code. void rule_greeting(behaviorunit &bu,greeting &grt) { int NEvent,Action,Message,Snap; int x,y,i;
6 int WordMess1[WORDMESSAGESIZE]; int WordMess2[WORDMESSAGESIZE2]; int KeyMess[KEYMESSAGESIZE]; char *km = (char *)KeyMess; NEvent = bu.get_reg(greeting_event); if(bu.get_newdata_nw(0) == NEW) { bu.copy_from_nwordreg(keymess,0); NEvent = EV_MESARRIVAL; cout << km << endl; grt.memorizesentence(keymess); } if(nevent == EV_DISAPPEAR) Snap = 1; else Snap = 0; Action = grt.selectaction(nevent, Message,WordMess1,WordMess2,x,y); bu.set_out_val(greeting_action,action); bu.set_out_val(greeting_message,message); bu.set_out_val(greeting_x,x); bu.set_out_val(greeting_y,y); bu.set_out_val(greeting_snap,snap); bu.copy_to_nwordout(wordmess1,0); bu.copy_to_nwordout(wordmess2,1); } for(i = 0;i < bu.get_outnum();++i) bu.set_result_val(i,send); bu.set_result_nw(0,send); bu.set_result_nw(1,send); The internal state vector of the BU is kept in slot variables of an instance of a user-dened class Greeting. The input and output vectors are kept in an instance of BehaviorUnit. 10msec speaker event greeting action X request message window console user 10msec notice X Event area area 10msec 33msec motion exist 33msec camera Figure 4: BeNet for an Autonomous Agent that communicates with a Human 8 Summary and Conclusions In this paper, we presented our programming environments for developing autonomous agents based on BU our computational model BeNet. BeNet is an appropriate model for describing a system that reacts with a dynamic external world. The model allows the designer to describe a modular system that is easy to modify or extend. A BeNet expresses a dynamical system completely and it is simulated directly by a multi-processor system. In our environments, you can program autonomous agents in a generic programming language utilizing software resources. You only have to write pieces of a sequential program for modules and connect the modules that are not specic to any hardware. In BNRB/tp, you can verify a BeNet on a parallel computer system with a dozens of processors that control a small real mobile robot with vision and other sensors. These environments will be of great benet to designers and researchers of autonomous agents and robots. We have already done interesting experiments of real robots and simulated robots in our environments, for exploring for good architectures of intelligent robots. We can actualize BeNets for real time image processing, reactive sensor based motion control and decision making with lightweight functional modules described in C/C++. References [1] R.A.Brooks, \Elephants don't play chess:" in Designing Autonomous Agents, MIT Press, [2] R.A.Brooks, \the Behavior Language;User's guide " A.I.Memo 1227, MIT, [3] R.A.Brooks, \L " I.S.Robotics, [4] R.A.Brooks and L.A.Stein, \Building Brain for Bodies" Autonomous Robots, Vol. 1, pp. 7-25, [5] R.A.Brooks C.Rosenberg, \L-A Common Lisp for Embedded Systems " Lisp Users and Vendors Conference, [6] D.Chapman, \Vision, Instruction and Action:" MIT Pres, [7] M. Inaba, \Remote-Brained Robotics: Interfacing AI with Real World Behaviors" Robotics Research, Vol. 6, pp , [8] M. Inaba S. Kagami F.Kanehiro K.Takeda T.Oka H.Inoue, \Vision-based adaptive and interactive behaviors in mechanical animals using the remote-brained approach" Robotics and Autonomous Systems, Vol. 17, pp , [9] T.Oka K.Takeda M.Inaba H.Inoue, \Designing Asynchronous Parallel Process Networks for Desirable Autonomous Robot Behaviors" Proc. of International Intelligent Robots and Systems, [10] S.J.Rosenschein and L.P.Kaelbling, \A situated view of representation and control" Articial Intelligence,73-1, pp , [11] \ANSI C toolset user manual",inmos Ltd., [12] \SunOS5.3 Guide to Multithread Programming ",Sun- Soft, 1993.
CS283: Robotics Fall 2016: Software
CS283: Robotics Fall 2016: Software Sören Schwertfeger / 师泽仁 ShanghaiTech University Mobile Robotics ShanghaiTech University - SIST - 18.09.2016 2 Review Definition Robot: A machine capable of performing
More informationReal-Time Scalability of Nested Spin Locks. Hiroaki Takada and Ken Sakamura. Faculty of Science, University of Tokyo
Real-Time Scalability of Nested Spin Locks Hiroaki Takada and Ken Sakamura Department of Information Science, Faculty of Science, University of Tokyo 7-3-1, Hongo, Bunkyo-ku, Tokyo 113, Japan Abstract
More informationCS 5523 Operating Systems: Midterm II - reivew Instructor: Dr. Tongping Liu Department Computer Science The University of Texas at San Antonio
CS 5523 Operating Systems: Midterm II - reivew Instructor: Dr. Tongping Liu Department Computer Science The University of Texas at San Antonio Fall 2017 1 Outline Inter-Process Communication (20) Threads
More informationA Freely Congurable Audio-Mixing Engine. M. Rosenthal, M. Klebl, A. Gunzinger, G. Troster
A Freely Congurable Audio-Mixing Engine with Automatic Loadbalancing M. Rosenthal, M. Klebl, A. Gunzinger, G. Troster Electronics Laboratory, Swiss Federal Institute of Technology CH-8092 Zurich, Switzerland
More informationTechnische Universitat Munchen. Institut fur Informatik. D Munchen.
Developing Applications for Multicomputer Systems on Workstation Clusters Georg Stellner, Arndt Bode, Stefan Lamberts and Thomas Ludwig? Technische Universitat Munchen Institut fur Informatik Lehrstuhl
More information2 Keywords Backtracking Algorithms, Constraint Satisfaction Problem, Distributed Articial Intelligence, Iterative Improvement Algorithm, Multiagent Sy
1 The Distributed Constraint Satisfaction Problem: Formalization and Algorithms IEEE Trans. on Knowledge and DATA Engineering, vol.10, No.5 September 1998 Makoto Yokoo, Edmund H. Durfee, Toru Ishida, and
More informationRECONFIGURATION OF HIERARCHICAL TUPLE-SPACES: EXPERIMENTS WITH LINDA-POLYLITH. Computer Science Department and Institute. University of Maryland
RECONFIGURATION OF HIERARCHICAL TUPLE-SPACES: EXPERIMENTS WITH LINDA-POLYLITH Gilberto Matos James Purtilo Computer Science Department and Institute for Advanced Computer Studies University of Maryland
More informationMarch 6, 2000 Applications that process and/or transfer Continuous Media (audio and video) streams become
Increasing the Clock Interrupt Frequency for Better Support of Real-Time Applications Constantinos Dovrolis Parameswaran Ramanathan Department of Electrical and Computer Engineering University of Wisconsin-Madison
More informationRbCl: A Reective Object-Oriented Concurrent Language. without a Run-time Kernel. Yuuji Ichisugi, Satoshi Matsuoka, Akinori Yonezawa
RbCl: A Reective Object-Oriented Concurrent Language without a Run-time Kernel Yuuji Ichisugi, Satoshi Matsuoka, Akinori Yonezawa Department of Information Science, The University of Tokyo 3 Abstract We
More informationDRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC
DRAFT for FINAL VERSION. Accepted for CACSD'97, Gent, Belgium, 28-3 April 1997 IMPLEMENTATION ASPECTS OF THE PLC STANDARD IEC 1131-3 Martin hman Stefan Johansson Karl-Erik rzen Department of Automatic
More informationCS 160: Interactive Programming
CS 160: Interactive Programming Professor John Canny 3/8/2006 1 Outline Callbacks and Delegates Multi-threaded programming Model-view controller 3/8/2006 2 Callbacks Your code Myclass data method1 method2
More informationproc {Produce State Out} local State2 Out2 in State2 = State + 1 Out = State Out2 {Produce State2 Out2}
Laziness and Declarative Concurrency Raphael Collet Universite Catholique de Louvain, B-1348 Louvain-la-Neuve, Belgium raph@info.ucl.ac.be May 7, 2004 Abstract Concurrency and distribution in a programming
More informationImage-Based Memory of Environment. homing uses a similar idea that the agent memorizes. [Hong 91]. However, the agent nds diculties in arranging its
Image-Based Memory of Environment Hiroshi ISHIGURO Department of Information Science Kyoto University Kyoto 606-01, Japan E-mail: ishiguro@kuis.kyoto-u.ac.jp Saburo TSUJI Faculty of Systems Engineering
More informationUser Interface. Global planner. Local planner. sensors. actuators
Combined Map-Based and Case-Based Path Planning for Mobile Robot Navigation Maarja Kruusmaa and Bertil Svensson Chalmers University of Technology, Department of Computer Engineering, S-412 96 Gothenburg,
More informationTransactions on Information and Communications Technologies vol 19, 1997 WIT Press, ISSN
Hopeld Network for Stereo Correspondence Using Block-Matching Techniques Dimitrios Tzovaras and Michael G. Strintzis Information Processing Laboratory, Electrical and Computer Engineering Department, Aristotle
More informationECE519 Advanced Operating Systems
IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (10 th Week) (Advanced) Operating Systems 10. Multiprocessor, Multicore and Real-Time Scheduling 10. Outline Multiprocessor
More informationFor use by students enrolled in #71251 CSE430 Fall 2012 at Arizona State University. Do not use if not enrolled.
Operating Systems: Internals and Design Principles Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles The basic idea is that the several components
More informationShigeru Chiba Michiaki Tatsubori. University of Tsukuba. The Java language already has the ability for reection [2, 4]. java.lang.
A Yet Another java.lang.class Shigeru Chiba Michiaki Tatsubori Institute of Information Science and Electronics University of Tsukuba 1-1-1 Tennodai, Tsukuba, Ibaraki 305-8573, Japan. Phone: +81-298-53-5349
More informationLinux Kernel Hacking Free Course
Linux Kernel Hacking Free Course 3 rd edition G.Grilli, University of me Tor Vergata IRQ DISTRIBUTION IN MULTIPROCESSOR SYSTEMS April 05, 2006 IRQ distribution in multiprocessor systems 1 Contents: What
More informationpoint in worrying about performance. The goal of our work is to show that this is not true. This paper is organised as follows. In section 2 we introd
A Fast Java Interpreter David Gregg 1, M. Anton Ertl 2 and Andreas Krall 2 1 Department of Computer Science, Trinity College, Dublin 2, Ireland. David.Gregg@cs.tcd.ie 2 Institut fur Computersprachen, TU
More informationScheduling Periodic and Aperiodic. John P. Lehoczky and Sandra R. Thuel. and both hard and soft deadline aperiodic tasks using xed-priority methods.
Chapter 8 Scheduling Periodic and Aperiodic Tasks Using the Slack Stealing Algorithm John P. Lehoczky and Sandra R. Thuel This chapter discusses the problem of jointly scheduling hard deadline periodic
More informationThe S-Expression Design Language (SEDL) James C. Corbett. September 1, Introduction. 2 Origins of SEDL 2. 3 The Language SEDL 2.
The S-Expression Design Language (SEDL) James C. Corbett September 1, 1993 Contents 1 Introduction 1 2 Origins of SEDL 2 3 The Language SEDL 2 3.1 Scopes : : : : : : : : : : : : : : : : : : : : : : : :
More informationDistributed Systems Principles and Paradigms
Distributed Systems Principles and Paradigms Chapter 03 (version February 11, 2008) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.
More informationChapter 4 Threads, SMP, and
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 4 Threads, SMP, and Microkernels Dave Bremer Otago Polytechnic, N.Z. 2008, Prentice Hall Roadmap Threads: Resource ownership
More informationinstruction fetch memory interface signal unit priority manager instruction decode stack register sets address PC2 PC3 PC4 instructions extern signals
Performance Evaluations of a Multithreaded Java Microcontroller J. Kreuzinger, M. Pfeer A. Schulz, Th. Ungerer Institute for Computer Design and Fault Tolerance University of Karlsruhe, Germany U. Brinkschulte,
More informationGeneric Function Parameter and Method Parameter Metaobjects: A Proposed Enhancement to the CLOS Metaobject Protocol. Eric L.
Generic Function Parameter and Method Parameter Metaobjects: A Proposed Enhancement to the CLOS Metaobject Protocol Eric L. Peterson Articial Intelligence Technologies Center MITRE Corporation 1820 Dolley
More informationEL6483: Basic Concepts of Embedded System ModelingSpring and Hardware-In-The-Loo
: Basic Concepts of Embedded System Modeling and Hardware-In-The-Loop Simulation Spring 2016 : Basic Concepts of Embedded System ModelingSpring and Hardware-In-The-Loo 2016 1 / 26 Overall system : Basic
More informationScuola Superiore Sant Anna. I/O subsystem. Giuseppe Lipari
Scuola Superiore Sant Anna I/O subsystem Giuseppe Lipari Input Output and Device Drivers ERI Gennaio 2008 2 Objectives of the I/O subsystem To hide the complexity From the variability of the devices Provide
More informationtee is to design a new TCP/IP API which matches the requirements of embedded systems. RTOS Automotive Application Technical Committee With current pra
Recent Results the ITRON Subproject Hiroaki Takada Kiichiro Tamaru Dept. of Information and Computer Sciences System ULSI Engineering Lab. Toyohashi Univ. of Technology TOSHIBA Corporation 1{1 Hibarigaoka,
More informationJava Virtual Machine
Evaluation of Java Thread Performance on Two Dierent Multithreaded Kernels Yan Gu B. S. Lee Wentong Cai School of Applied Science Nanyang Technological University Singapore 639798 guyan@cais.ntu.edu.sg,
More informationCS420: Operating Systems
Threads James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Threads A thread is a basic unit of processing
More informationYi Shi Fall 2017 Xi an Jiaotong University
Threads Yi Shi Fall 2017 Xi an Jiaotong University Goals for Today Case for Threads Thread details Case for Parallelism main() read_data() for(all data) compute(); write_data(); endfor main() read_data()
More informationReal-Time Operating Systems Issues. Realtime Scheduling in SunOS 5.0
Real-Time Operating Systems Issues Example of a real-time capable OS: Solaris. S. Khanna, M. Sebree, J.Zolnowsky. Realtime Scheduling in SunOS 5.0. USENIX - Winter 92. Problems with the design of general-purpose
More informationExercise (could be a quiz) Solution. Concurrent Programming. Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - IV Threads
Exercise (could be a quiz) 1 2 Solution CSE 421/521 - Operating Systems Fall 2013 Lecture - IV Threads Tevfik Koşar 3 University at Buffalo September 12 th, 2013 4 Roadmap Threads Why do we need them?
More informationStorage. Outline. Variables and Updating. Composite Variables. Storables Lifetime : Programming Languages. Course slides - Storage
Storage 1 Variables and Updating Outline Composite Variables Total and selective updating Array variables Storables Lifetime Local and global variables Heap variables Persistent variables Garbage collection
More informationPOSIX Threads: a first step toward parallel programming. George Bosilca
POSIX Threads: a first step toward parallel programming George Bosilca bosilca@icl.utk.edu Process vs. Thread A process is a collection of virtual memory space, code, data, and system resources. A thread
More informationDepartment of Electrical Engineering, Keio University Hiyoshi Kouhoku-ku Yokohama 223, Japan
Shape Modeling from Multiple View Images Using GAs Satoshi KIRIHARA and Hideo SAITO Department of Electrical Engineering, Keio University 3-14-1 Hiyoshi Kouhoku-ku Yokohama 223, Japan TEL +81-45-563-1141
More informationMotion Planning for Dynamic Knotting of a Flexible Rope with a High-speed Robot Arm
The 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems October 18-22, 2010, Taipei, Taiwan Motion Planning for Dynamic Knotting of a Flexible Rope with a High-speed Robot Arm Yuji
More informationANIMATION OF ALGORITHMS ON GRAPHS
Master Informatique 1 ère année 2008 2009 MASTER 1 ENGLISH REPORT YEAR 2008 2009 ANIMATION OF ALGORITHMS ON GRAPHS AUTHORS : TUTOR : MICKAEL PONTON FREDERIC SPADE JEAN MARC NICOD ABSTRACT Among the units
More informationGrand Central Dispatch
A better way to do multicore. (GCD) is a revolutionary approach to multicore computing. Woven throughout the fabric of Mac OS X version 10.6 Snow Leopard, GCD combines an easy-to-use programming model
More informationA taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA
A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA
More informationComplex behavior emergent from simpler ones
Reactive Paradigm: Basics Based on ethology Vertical decomposition, as opposed to horizontal decomposition of hierarchical model Primitive behaviors at bottom Higher behaviors at top Each layer has independent
More informationCopyright 2013 Thomas W. Doeppner. IX 1
Copyright 2013 Thomas W. Doeppner. IX 1 If we have only one thread, then, no matter how many processors we have, we can do only one thing at a time. Thus multiple threads allow us to multiplex the handling
More informationEC EMBEDDED AND REAL TIME SYSTEMS
EC6703 - EMBEDDED AND REAL TIME SYSTEMS Unit I -I INTRODUCTION TO EMBEDDED COMPUTING Part-A (2 Marks) 1. What is an embedded system? An embedded system employs a combination of hardware & software (a computational
More informationChapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.
Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Java platform. Applets and applications. Java programming language: facilities and foundation. Memory management
More informationFault-tolerant Distributed-Shared-Memory on a Broadcast-based Interconnection Network
Fault-tolerant Distributed-Shared-Memory on a Broadcast-based Interconnection Network Diana Hecht 1 and Constantine Katsinis 2 1 Electrical and Computer Engineering, University of Alabama in Huntsville,
More informationVirtual Machine Design
Virtual Machine Design Lecture 4: Multithreading and Synchronization Antero Taivalsaari September 2003 Session #2026: J2MEPlatform, Connected Limited Device Configuration (CLDC) Lecture Goals Give an overview
More informationTHE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano
THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL Jun Sun, Yasushi Shinjo and Kozo Itano Institute of Information Sciences and Electronics University of Tsukuba Tsukuba,
More informationParallel System Architectures 2016 Lab Assignment 1: Cache Coherency
Institute of Informatics Computer Systems Architecture Jun Xiao Simon Polstra Dr. Andy Pimentel September 1, 2016 Parallel System Architectures 2016 Lab Assignment 1: Cache Coherency Introduction In this
More informationMultiprocessor scheduling
Chapter 10 Multiprocessor scheduling When a computer system contains multiple processors, a few new issues arise. Multiprocessor systems can be categorized into the following: Loosely coupled or distributed.
More informationMotivation of Threads. Preview. Motivation of Threads. Motivation of Threads. Motivation of Threads. Motivation of Threads 9/12/2018.
Preview Motivation of Thread Thread Implementation User s space Kernel s space Inter-Process Communication Race Condition Mutual Exclusion Solutions with Busy Waiting Disabling Interrupt Lock Variable
More informationGenerating Continuation Passing Style Code for the Co-op Language
Generating Continuation Passing Style Code for the Co-op Language Mark Laarakkers University of Twente Faculty: Computer Science Chair: Software engineering Graduation committee: dr.ing. C.M. Bockisch
More informationReactive and Hybrid Agents. Based on An Introduction to MultiAgent Systems and slides by Michael Wooldridge
Reactive and Hybrid Agents Based on An Introduction to MultiAgent Systems and slides by Michael Wooldridge Reactive Architectures Problems with symbolic/logical approaches (transduction, computational
More informationProcesses. Johan Montelius KTH
Processes Johan Montelius KTH 2017 1 / 47 A process What is a process?... a computation a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other
More informationApplication Programmer. Vienna Fortran Out-of-Core Program
Mass Storage Support for a Parallelizing Compilation System b a Peter Brezany a, Thomas A. Mueck b, Erich Schikuta c Institute for Software Technology and Parallel Systems, University of Vienna, Liechtensteinstrasse
More informationHigh Performance Computing Course Notes Shared Memory Parallel Programming
High Performance Computing Course Notes 2009-2010 2010 Shared Memory Parallel Programming Techniques Multiprocessing User space multithreading Operating system-supported (or kernel) multithreading Distributed
More informationGuidelines for Writing C Code
Guidelines for Writing C Code Issue 01-bugfix Martin Becker Institute for Real-Time Computer Systems (RCS) Technische Universität München becker@rcs.ei.tum.de June 9, 2014 Contents 1 Introduction 1 2 Pragmatic
More information殷亚凤. Processes. Distributed Systems [3]
Processes Distributed Systems [3] 殷亚凤 Email: yafeng@nju.edu.cn Homepage: http://cs.nju.edu.cn/yafeng/ Room 301, Building of Computer Science and Technology Review Architectural Styles: Layered style, Object-based,
More informationA process. the stack
A process Processes Johan Montelius What is a process?... a computation KTH 2017 a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other processes
More informationThreads. Threads (continued)
Threads A thread is an alternative model of program execution A process creates a thread through a system call Thread operates within process context Use of threads effectively splits the process state
More informationArgos: an automaton-based synchronous language
Computer Languages 27 (2001) 61 92 www.elsevier.com/locate/complang Argos: an automaton-based synchronous language Florence Maraninchi a;, Yann Remond b a VERIMAG 1 /Institut National Polytechnique de
More informationA stack eect (type signature) is a pair of input parameter types and output parameter types. We also consider the type clash as a stack eect. The set
Alternative Syntactic Methods for Dening Stack Based Languages Jaanus Poial Institute of Computer Science University of Tartu, Estonia e-mail: jaanus@cs.ut.ee Abstract. Traditional formal methods of syntax
More informationOperating Systems: Internals and Design Principles. Chapter 4 Threads Seventh Edition By William Stallings
Operating Systems: Internals and Design Principles Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles The basic idea is that the several components
More informationTimers 1 / 46. Jiffies. Potent and Evil Magic
Timers 1 / 46 Jiffies Each timer tick, a variable called jiffies is incremented It is thus (roughly) the number of HZ since system boot A 32-bit counter incremented at 1000 Hz wraps around in about 50
More informationIntroduction to OpenMP
Introduction to OpenMP Ricardo Fonseca https://sites.google.com/view/rafonseca2017/ Outline Shared Memory Programming OpenMP Fork-Join Model Compiler Directives / Run time library routines Compiling and
More informationAgent Program for Providing Seamless Management to Web-based Monitoring System
Agent Program for Providing Seamless Management to Web-based Monitoring System T. Fukatsu, M. Hirafuji, and T. Kiura 1 Abstract - 581 - In the agricultural field, one approach to solving long-term field
More informationProgramming with Shared Memory. Nguyễn Quang Hùng
Programming with Shared Memory Nguyễn Quang Hùng Outline Introduction Shared memory multiprocessors Constructs for specifying parallelism Creating concurrent processes Threads Sharing data Creating shared
More informationChapter 3: Processes. Operating System Concepts 8 th Edition,
Chapter 3: Processes, Silberschatz, Galvin and Gagne 2009 Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Silberschatz, Galvin and Gagne 2009
More informationA Java-based Course in Human-Computer Interaction. Eileen Kraemer. The University of Georgia. Athens, GA interface.
A Java-based Course in Human-Computer Interaction Eileen Kraemer Computer Science Department The University of Georgia Athens, GA 30602 Abstract The ACM/SIGCHI proposed curriculum for Human-Computer Interaction
More informationDISTRIBUTED AUDIO-VIDEO SHARING BY COPY-AND-TRANSFER OPERATION FOR NETWORK 3D GAMES
DISTRIBUTED AUDIO-VIDEO SHARING BY COPY-AND-TRANSFER OPERATION FOR NETWORK 3D GAMES Hirotatsu Sakamoto Yoshihiro Okada Eisuke Itoh Masafumi Yamashita Graduate School of Information Science and Electrical
More informationHeap-on-Top Priority Queues. March Abstract. We introduce the heap-on-top (hot) priority queue data structure that combines the
Heap-on-Top Priority Queues Boris V. Cherkassky Central Economics and Mathematics Institute Krasikova St. 32 117418, Moscow, Russia cher@cemi.msk.su Andrew V. Goldberg NEC Research Institute 4 Independence
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Multithreading Multiprocessors Description Multiple processing units (multiprocessor) From single microprocessor to large compute clusters Can perform multiple
More informationperform. If more storage is required, more can be added without having to modify the processor (provided that the extra memory is still addressable).
How to Make Zuse's Z3 a Universal Computer Raul Rojas January 14, 1998 Abstract The computing machine Z3, built by Konrad Zuse between 1938 and 1941, could only execute xed sequences of oating-point arithmetical
More informationMultiThreading. Object Orientated Programming in Java. Benjamin Kenwright
MultiThreading Object Orientated Programming in Java Benjamin Kenwright Outline Review Essential Java Multithreading Examples Today s Practical Review/Discussion Question Does the following code compile?
More informationSistemi in Tempo Reale
Laurea Specialistica in Ingegneria dell'automazione Sistemi in Tempo Reale Giuseppe Lipari Introduzione alla concorrenza Fundamentals Algorithm: It is the logical procedure to solve a certain problem It
More informationCommercial Real-time Operating Systems An Introduction. Swaminathan Sivasubramanian Dependable Computing & Networking Laboratory
Commercial Real-time Operating Systems An Introduction Swaminathan Sivasubramanian Dependable Computing & Networking Laboratory swamis@iastate.edu Outline Introduction RTOS Issues and functionalities LynxOS
More informationA modular neural network architecture for inverse kinematics model learning
Neurocomputing 38}40 (2001) 797}805 A modular neural network architecture for inverse kinematics model learning Eimei Oyama*, Arvin Agah, Karl F. MacDorman, Taro Maeda, Susumu Tachi Intelligent System
More informationLecture 10 Midterm review
Lecture 10 Midterm review Announcements The midterm is on Tue Feb 9 th in class 4Bring photo ID 4You may bring a single sheet of notebook sized paper 8x10 inches with notes on both sides (A4 OK) 4You may
More informationPtTcl: Using Tcl with Pthreads
The following paper was originally published in the Proceedings of the Fifth Annual Tcl/Tk Workshop Boston, Massachusetts, July 1997 PtTcl: Using Tcl with Pthreads D. Richard Hipp Hwaci, Charlotte, NC
More informationCISC2200 Threads Spring 2015
CISC2200 Threads Spring 2015 Process We learn the concept of process A program in execution A process owns some resources A process executes a program => execution state, PC, We learn that bash creates
More informationEmbedded Systems Programming - PA8001
Embedded Systems Programming - PA8001 http://bit.ly/15mmqf7 Lecture 5 Mohammad Mousavi m.r.mousavi@hh.se Center for Research on Embedded Systems School of Information Science, Computer and Electrical Engineering
More informationPCS - Part Two: Multiprocessor Architectures
PCS - Part Two: Multiprocessor Architectures Institute of Computer Engineering University of Lübeck, Germany Baltic Summer School, Tartu 2008 Part 2 - Contents Multiprocessor Systems Symmetrical Multiprocessors
More informationCell-8 Cell-2 Cell-9 Cell-3 Cell-4. Cell-6
Team GAMMA: Agent Programming on Gaea NODA, Itsuki 1 noda@etl.go.jp ETL Umezono 1-1-4, Tsukuba Ibaraki 305, JAPAN 1 Introduction We are developing a new software methodology for building large, complicated
More informationLINUX OPERATING SYSTEM Submitted in partial fulfillment of the requirement for the award of degree of Bachelor of Technology in Computer Science
A Seminar report On LINUX OPERATING SYSTEM Submitted in partial fulfillment of the requirement for the award of degree of Bachelor of Technology in Computer Science SUBMITTED TO: www.studymafia.org SUBMITTED
More informationThreads and Too Much Milk! CS439: Principles of Computer Systems January 31, 2018
Threads and Too Much Milk! CS439: Principles of Computer Systems January 31, 2018 Last Time CPU Scheduling discussed the possible policies the scheduler may use to choose the next process (or thread!)
More informationIntroduction to Internet of Things Prof. Sudip Misra Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur
Introduction to Internet of Things Prof. Sudip Misra Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture - 23 Introduction to Arduino- II Hi. Now, we will continue
More informationChe-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University
Che-Wei Chang chewei@mail.cgu.edu.tw Department of Computer Science and Information Engineering, Chang Gung University 1. Introduction 2. System Structures 3. Process Concept 4. Multithreaded Programming
More informationChapter 4: Threads. Chapter 4: Threads
Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Operating System Examples
More informationB - Broken Track Page 1 of 8
B - Broken Track There's a gap in the track! We need to make our robot even more intelligent so it won't get stuck, and can find the track again on its own. 2017 https://www.hamiltonbuhl.com/teacher-resources
More informationEvolving Turing-Complete Programs for a Register Machine with. Self-modifying Code. 1 Introduction
Evolving Turing-Complete Programs for a Register Machine with Self-modifying Code Peter Nordin Universitat Dortmund Fachbereich Informatik Lehrstuhl fur Systemanalyse D{44221 Dortmund nordin@ls11.informatik.uni-dortmund.de
More informationGeneral Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design
General Concepts Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design 1 Abstractions in Programming Languages Abstractions hide details that
More informationChapter 2 Processes and Threads
MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 2 Processes and Threads The Process Model Figure 2-1. (a) Multiprogramming of four programs. (b) Conceptual model of four independent,
More informationMOTION. Feature Matching/Tracking. Control Signal Generation REFERENCE IMAGE
Head-Eye Coordination: A Closed-Form Solution M. Xie School of Mechanical & Production Engineering Nanyang Technological University, Singapore 639798 Email: mmxie@ntuix.ntu.ac.sg ABSTRACT In this paper,
More informationChapter 4: Multi-Threaded Programming
Chapter 4: Multi-Threaded Programming Chapter 4: Threads 4.1 Overview 4.2 Multicore Programming 4.3 Multithreading Models 4.4 Thread Libraries Pthreads Win32 Threads Java Threads 4.5 Implicit Threading
More informationHoneywell Technology Center Technology Drive. Without a rigorous understanding of the resource
In the 2000 AAAI SSS `Real-Time Autonomous Systems' RT-MLab: Really Real-Time Robotics Karen Zita Haigh, David J. Musliner, Sunondo Ghosh Honeywell Technology Center 3660 Technology Drive Minneapolis,
More informationOperating Systems. Figure: Process States. 1 P a g e
1. THE PROCESS CONCEPT A. The Process: A process is a program in execution. A process is more than the program code, which is sometimes known as the text section. It also includes the current activity,
More informationProcesses and Threads
Processes and Threads Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Based on original slides by Silberschatz, Galvin
More informationSWE 760 Lecture 1: Introduction to Analysis & Design of Real-Time Embedded Systems
SWE 760 Lecture 1: Introduction to Analysis & Design of Real-Time Embedded Systems Hassan Gomaa References: H. Gomaa, Chapters 1, 2, 3 - Real-Time Software Design for Embedded Systems, Cambridge University
More informationConcurrency, Thread. Dongkun Shin, SKKU
Concurrency, Thread 1 Thread Classic view a single point of execution within a program a single PC where instructions are being fetched from and executed), Multi-threaded program Has more than one point
More informationCMSC 433 Programming Language Technologies and Paradigms. Concurrency
CMSC 433 Programming Language Technologies and Paradigms Concurrency What is Concurrency? Simple definition Sequential programs have one thread of control Concurrent programs have many Concurrency vs.
More information