Programming Environments for Developing Real Time. Autonomous Agents based on a Functional Module Network Model

Size: px
Start display at page:

Download "Programming Environments for Developing Real Time. Autonomous Agents based on a Functional Module Network Model"

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 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 information

Real-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. 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 information

CS 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 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 information

A Freely Congurable Audio-Mixing Engine. M. Rosenthal, M. Klebl, A. Gunzinger, G. Troster

A 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 information

Technische Universitat Munchen. Institut fur Informatik. D Munchen.

Technische 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 information

2 Keywords Backtracking Algorithms, Constraint Satisfaction Problem, Distributed Articial Intelligence, Iterative Improvement Algorithm, Multiagent Sy

2 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 information

RECONFIGURATION 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. 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 information

March 6, 2000 Applications that process and/or transfer Continuous Media (audio and video) streams become

March 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 information

RbCl: 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 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 information

DRAFT 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, 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 information

CS 160: Interactive Programming

CS 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 information

proc {Produce State Out} local State2 Out2 in State2 = State + 1 Out = State Out2 {Produce State2 Out2}

proc {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 information

Image-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. 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 information

User Interface. Global planner. Local planner. sensors. actuators

User 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 information

Transactions on Information and Communications Technologies vol 19, 1997 WIT Press, ISSN

Transactions 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 information

ECE519 Advanced Operating Systems

ECE519 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 information

For use by students enrolled in #71251 CSE430 Fall 2012 at Arizona State University. Do not use if not enrolled.

For 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 information

Shigeru Chiba Michiaki Tatsubori. University of Tsukuba. The Java language already has the ability for reection [2, 4]. java.lang.

Shigeru 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 information

Linux Kernel Hacking Free Course

Linux 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 information

point 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

point 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 information

Scheduling Periodic and Aperiodic. John P. Lehoczky and Sandra R. Thuel. and both hard and soft deadline aperiodic tasks using xed-priority methods.

Scheduling 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 information

The 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, 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 information

Distributed Systems Principles and Paradigms

Distributed 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 information

Chapter 4 Threads, SMP, and

Chapter 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 information

instruction fetch memory interface signal unit priority manager instruction decode stack register sets address PC2 PC3 PC4 instructions extern signals

instruction 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 information

Generic 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. 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 information

EL6483: Basic Concepts of Embedded System ModelingSpring and Hardware-In-The-Loo

EL6483: 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 information

Scuola Superiore Sant Anna. I/O subsystem. Giuseppe Lipari

Scuola 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 information

tee is to design a new TCP/IP API which matches the requirements of embedded systems. RTOS Automotive Application Technical Committee With current pra

tee 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 information

Java Virtual Machine

Java 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 information

CS420: Operating Systems

CS420: 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 information

Yi Shi Fall 2017 Xi an Jiaotong University

Yi 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 information

Real-Time Operating Systems Issues. Realtime Scheduling in SunOS 5.0

Real-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 information

Exercise (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) 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 information

Storage. Outline. Variables and Updating. Composite Variables. Storables Lifetime : Programming Languages. Course slides - Storage

Storage. 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 information

POSIX Threads: a first step toward parallel programming. George Bosilca

POSIX 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 information

Department of Electrical Engineering, Keio University Hiyoshi Kouhoku-ku Yokohama 223, Japan

Department 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 information

Motion Planning for Dynamic Knotting of a Flexible Rope with a High-speed Robot Arm

Motion 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 information

ANIMATION OF ALGORITHMS ON GRAPHS

ANIMATION 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 information

Grand Central Dispatch

Grand 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 information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A 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 information

Complex behavior emergent from simpler ones

Complex 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 information

Copyright 2013 Thomas W. Doeppner. IX 1

Copyright 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 information

EC EMBEDDED AND REAL TIME SYSTEMS

EC 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 information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 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 information

Fault-tolerant Distributed-Shared-Memory on a Broadcast-based Interconnection Network

Fault-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 information

Virtual Machine Design

Virtual 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 information

THE 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 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 information

Parallel System Architectures 2016 Lab Assignment 1: Cache Coherency

Parallel 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 information

Multiprocessor scheduling

Multiprocessor 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 information

Motivation of Threads. Preview. Motivation of Threads. Motivation of Threads. Motivation of Threads. Motivation of Threads 9/12/2018.

Motivation 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 information

Generating Continuation Passing Style Code for the Co-op Language

Generating 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 information

Reactive 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 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 information

Processes. Johan Montelius KTH

Processes. 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 information

Application Programmer. Vienna Fortran Out-of-Core Program

Application 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 information

High Performance Computing Course Notes Shared Memory Parallel Programming

High 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 information

Guidelines for Writing C Code

Guidelines 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] 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 information

A process. the stack

A 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 information

Threads. Threads (continued)

Threads. 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 information

Argos: an automaton-based synchronous language

Argos: 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 information

A 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

A 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 information

Operating 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 Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles The basic idea is that the several components

More information

Timers 1 / 46. Jiffies. Potent and Evil Magic

Timers 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 information

Introduction to OpenMP

Introduction 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 information

Agent Program for Providing Seamless Management to Web-based Monitoring System

Agent 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 information

Programming with Shared Memory. Nguyễn Quang Hùng

Programming 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 information

Chapter 3: Processes. Operating System Concepts 8 th Edition,

Chapter 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 information

A 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. 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 information

DISTRIBUTED 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 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 information

Heap-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. 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 information

CMSC 330: Organization of Programming Languages

CMSC 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 information

perform. If more storage is required, more can be added without having to modify the processor (provided that the extra memory is still addressable).

perform. 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 information

MultiThreading. Object Orientated Programming in Java. Benjamin Kenwright

MultiThreading. 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 information

Sistemi in Tempo Reale

Sistemi 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 information

Commercial 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 Commercial Real-time Operating Systems An Introduction Swaminathan Sivasubramanian Dependable Computing & Networking Laboratory swamis@iastate.edu Outline Introduction RTOS Issues and functionalities LynxOS

More information

A modular neural network architecture for inverse kinematics model learning

A 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 information

Lecture 10 Midterm review

Lecture 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 information

PtTcl: Using Tcl with Pthreads

PtTcl: 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 information

CISC2200 Threads Spring 2015

CISC2200 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 information

Embedded Systems Programming - PA8001

Embedded 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 information

PCS - Part Two: Multiprocessor Architectures

PCS - 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 information

Cell-8 Cell-2 Cell-9 Cell-3 Cell-4. Cell-6

Cell-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 information

LINUX OPERATING SYSTEM Submitted in partial fulfillment of the requirement for the award of degree of Bachelor of Technology in Computer Science

LINUX 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 information

Threads 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 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 information

Introduction 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 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 information

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University

Che-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 information

Chapter 4: Threads. Chapter 4: Threads

Chapter 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 information

B - Broken Track Page 1 of 8

B - 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 information

Evolving 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. 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 information

General 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 General Concepts Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design 1 Abstractions in Programming Languages Abstractions hide details that

More information

Chapter 2 Processes and Threads

Chapter 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 information

MOTION. Feature Matching/Tracking. Control Signal Generation REFERENCE IMAGE

MOTION. 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 information

Chapter 4: Multi-Threaded Programming

Chapter 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 information

Honeywell Technology Center Technology Drive. Without a rigorous understanding of the resource

Honeywell 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 information

Operating Systems. Figure: Process States. 1 P a g e

Operating 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 information

Processes and Threads

Processes 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 information

SWE 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 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 information

Concurrency, Thread. Dongkun Shin, SKKU

Concurrency, 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 information

CMSC 433 Programming Language Technologies and Paradigms. Concurrency

CMSC 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