Institutionen för systemteknik

Size: px
Start display at page:

Download "Institutionen för systemteknik"

Transcription

1 Institutionen för systemteknik Department of Electrical Engineering Examensarbete Automatic Generation of Control Code for Flexible Automation Examensarbete utfört i Elektroteknik vid Tekniska högskolan vid Linköpings universitet av Andreas Svensson LiTH-ISY-EX-ET--12/0400--SE Linköping 2012 Department of Electrical Engineering Linköpings universitet SE Linköping, Sweden Linköpings tekniska högskola Linköpings universitet Linköping

2

3 Automatic Generation of Control Code for Flexible Automation Examensarbete utfört i Elektroteknik vid Tekniska högskolan vid Linköpings universitet av Andreas Svensson LiTH-ISY-EX-ET--12/0400--SE Handledare: Examinator: Fredrik Danielsson ptc, Högskolan Väst Johan Löfberg isy, Linköpings universitet Linköping, 4 oktober 2012

4

5 Avdelning, Institution Division, Department Avdelningen för reglerteknik Department of Electrical Engineering SE Linköping Datum Date Språk Language Svenska/Swedish Engelska/English Rapporttyp Report category Licentiatavhandling Examensarbete C-uppsats D-uppsats Övrig rapport ISBN ISRN LiTH-ISY-EX-ET--12/0400--SE Serietitel och serienummer Title of series, numbering ISSN URL för elektronisk version Titel Title Automatgenerering av kod för flexibel automation Automatic Generation of Control Code for Flexible Automation Författare Author Andreas Svensson Sammanfattning Abstract In order to quickly adapt the production on a production line to the demand, there is a need for flexibility. A tool designed for this purpose, p-sop, has been developed at University West. This thesis deals with implementation of p-sop in a demonstrator, and development of a framework for priority policies as well as a graphical user interface to p-sop. The priority policies evaluated in the demonstrator did note give an increased efficiency, and the graphical user interface is shown to be well suited for the demonstrator and p-sop in general. Nyckelord Keywords Flexible automation, Autogenerated control code, P-SOP

6

7 Sammanfattning Det finns ett behov av flexibel automation för att kunna anpassa produktionen i en industriell produktionsanläggning till efterfrågan. Ett verktyg avsedd för detta ändamål, p-sop, har utvecklats vid Högskolan Väst. I den här uppsatsen behandlas implementeringen av en demonstrator till p-sop, utvecklingen av ett ramverk för prioritsregler samt utvecklingen av ett grafiskt användargränssnitt till p-sop. De prioritetsregler som utvärderas i demonstratorn ger ingen ökad effektivitet, och det grafiska användargränssnittet visar sig vara väl lämpat för demonstratorn och p-sop i allmänhet. iii

8

9 Abstract In order to quickly adapt the production on a production line to the demand, there is a need for flexibility. A tool designed for this purpose, p-sop, has been developed at University West. This thesis deals with implementation of p-sop in a demonstrator, and development of a framework for priority policies as well as a graphical user interface to p-sop. The priority policies evaluated in the demonstrator did note give an increased efficiency, and the graphical user interface is shown to be well suited for the demonstrator and p-sop in general. v

10

11 Acknowledgments Thanks to Production Technology Center and University West for letting me do this project, and thanks to everyone who has helped me: Fredrik, Johan and Bo for the supervision and proofreading and Anders, Anders, Fredrik and Kjell who kindly helped a lost theoretician on the job shop floor with all practical issues. I have learned a lot! Linköping, October 2012 Andreas Svensson vii

12

13 Contents Notation xi 1 Introduction Flexible industrial automation Related work The FLEXA project Other related work Problem formulation Thesis outline Demonstrator project Working process for the implementation Description of the demonstrator Results Discussion and concluding remarks on the demonstrator project Further work Distributed priority policies Need for priority policies Framework for priority policies in P-SOP Related work Design choices Implementation issues Results Discussion and concluding remarks on the priority policies On the demonstrator experiment results On priorities in P-SOP in general Further work Graphical user interface Framework for a P-SOP GUI Related work and research Previous work ix

14 x CONTENTS 4.3 Design choices for the GUI Results Discussion and concluding remarks on the GUI Further work Results and summary 31 6 Concluding remarks Further work A The P-SOP language 35 A.1 Concept idea A.2 Compilation into IEC ST A.3 Limitations of P-SOP B Technical details 39 B.1 Production simulator at PTC C Graphical user interface implementation 41 Bibliography 45 Index 47

15 Notation General abbreviations Abbreviation gui iec st plc p-sop Meaning Graphical User Interface A standard (IEC [2003]) defined by International Electrotechnical Commission for programming of PLCs. Structured Text, a programming language for plc defined in the standard iec (IEC [2003]). Programmable Logic Controller, a programmable realtime system widely used for control purposes in industry. A programming language for production lines developed at University West, compatible with iec xi

16 xii Notation Terms within production Term Part or Product Piece Process Buffer Source Sink Carrier Task Sequence Path Operator Meaning An item produced by a production line. A single part. A station on a production line where value, in some sense, is added to a piece. Usually a machine. A station on a production line where parts can be stored. The entrance for new parts into a production line. The exit for parts manufactured by the line. A robot (or similar) used for moving parts between buffers, processes, sources and sinks on the production line. The movement of a part performed by a carrier. A set of tasks defining all tasks allowed to be performed with a part. A subset of a sequence, where all tasks are possible to perform in a consecutive order with a single piece. A person working at the line with, e.g., maintenance and supervision.

17 1 Introduction 1.1 Flexible industrial automation This thesis deals with some issues within flexible automation, and this section will be an introduction to the subject. An idea of what flexible 1 automation can be about is given in Example Example: An idea of flexible automation Figure 1.1 shows an example of a flexible production line. The line contains an hammer, a drill, a screwdriver, a station for visual inspection, some buffers, and some boxes serving as source and sink for the line. For instance, the line could produce two different part types. Part A, a piece with three screws and one nail, and Part B, a piece with only two nails. Before assembling the screw as well as the nail, a hole must be drilled. After hammering, the piece has to be inspected to ensure the nail was not bent. If the nail was bent, the part has to be placed in the recycling box and a human operator is noted, who will untack the nail and replace the piece in the buffer next to the green robot. It is not trivial to plan the flow of pieces and program each individual robot to achieve the desired production. There are many challenges with this line, for example: The sequences of the different parts share many resources, e.g., the drill and the hammer. 1 The term flexible focuses throughout this thesis on the possibility to re-plan the sequences for parts produced by the line. Similar terms sometimes used are flexible routing and flexible manufacturing cell. Hence, it focuses on flexibility in the interaction between different resources and the product flow through the line, rather than, e.g., flexibility in a single operation performed by a robot. 1

18 2 1 Introduction Figure 1.1: An example of a flexible production line. The blue robot can reach one box with processed pieces, one box with unprocessed pieces, one box named recycling and one buffer. The red robot can reach the drill, screwdriver, inspection station, the buffer at the blue robot, the buffer at the green robot and the buffer at the left end of the rail. The green robot can reach the hammer, the buffer at the red robot and the buffer left of it. A human operator (not shown) can reach all buffers. There is a risk of causing deadlock situations. The flow is not deterministic, since it depends on the outcome of the inspection. The drill is used for screws as well as nails and may therefore be a bottleneck for the entire production. Hence, it is probably important to achieve a high utilization of the drill. In addition, and this is where flexible production comes into play, there may be a need for adapting to different production goals (e.g. 20% part A one day, and 70% part A another day). In addition, there may later appear a need for a new type of part, with, e.g., four screws and one nail. These changes are preferably to be introduced seemless online as the production is runnning, to minimze downtime of the line. And, finally, the production of parts without screws has to continoue even if the screwdriver breaks down, and vice versa. The line is controlled by several plcs. plcs are common in industry for, e.g., control of robots and other resources. A standard for programming plcs is the iec However, iec programs quickly becomes rather extensive, and a typical plc program in industry today consists of several thousands of code lines. The control could also be distributed to several plcs. Albeit the control program may run faultless, the introduction of changes and extensions might be

19 1.2 Related work 3 a rather hard task. One way to handle the challenges mentioned in 1.1 is to create a virtual model of the line as well as the production demand, and then use a computer-aided specialized tool with general algorithms to generate control code adapted to the current production demand. The principles illustrated in Example 1.1 exists in industry, especially in industries with relatively short product series, such as the aerospace industry. The best indication of the industrial needs is probably the participation of several companies in the flexa project (described in Section 1.2), a project including this topic. 1.2 Related work The FLEXA project In 2008, the project flexa Advanced Flexible Automation Cell 2 was started. Several universities and companies 3 took part in the project, and it was co-founded by the the European Seventh Framework Programme. Its main objective was (flexa-fp7.eu [2012]): To create the tools, methods and technologies needed to define, prepare and validate an automated flexible cell that can manufacture a generic process chain allowing for safe human interaction and deliver quality assured parts for the European aero space industry. As a part of this project, work has been carried out at University West in Trollhättan within automatic generation of control code for a flexible production line. A high-level language for production lines, named p-sop 4, has been developed, and a brief description is given in Appendix A. The related work also includes: An attempt to a graphical user interface (gui) for p-sop based on Power- Point and Visual Basic 5 (see Section 4.2.1). A study on a simulation-based optimization approach for production lines combined with a non-hierarchical distribution of the control code (Danielsson et al. [2012]). 2 Grant Agreement University West (SE), Chalmers University of Technology (SE), Avio S.p.A (IT), Hermes Reply S.R.L (IT), MTU Aero Engines GmbH (DE), BCT Steuerungs- und DV-Systeme GmbH (DE), Skytek Ltd (IE), Rolls Royce plc (UK), University of Nottingham (UK), Wytwornia Sprzetu Komunikacyjnego PZL - Rzeszow SA (PL), Universita di Pisa (IT), Zenon S.A. Robotics and Informatics (GR), University of Sheffield (UK) (ec.europa.eu [2012]) 4 Originally an abbreviation for Product-oriented Sequence of Operation Planning 5 Software packages from Microsoft,

20 4 1 Introduction A study on inclusion of human operators as processes or carriers in a production line as well as a smaller demonstrator for this, with distributed control code (He et al.). An idea for automatic generation of a discrete event system model from p-sop code for simulation purposes is presented in Carlsson et al. [2011] Other related work A related work relevant to mention here is the standard iec (IEC [2005] and iec61499.de [2012]), a standard compatible with iec for distributed control for, e.g., production lines. This standard shares some ideas with p-sop, but p-sop is however not compatible with iec The work carried out in Pichler and Wogerer [2011] is also of relevance for the p-sop concept, with the flexibility and human interaction. However, the focus is rather on single robots than entire lines, and hence not very relevant for the work within this thesis, which mainly will focus on planning and programmning of an entire line. Some related work and research are also discussed in connection with the respective theme in the subsequent chapters. 1.3 Problem formulation The aim of this thesis is to contribute to the development of the p-sop concept. This means to implement a demonstrator for p-sop, introduce the concept of priority to p-sop and contribute to the development of a gui. 1.4 Thesis outline This thesis is basically divided into three main chapters. The first chapter (Chapter 2) deals with the demonstrator, the second (Chapter 3) with the investigation of distributed priority, and the third (Chapter 4) with the development of a graphical user interface to p-sop. The results as well as comments and discussion for each part are presented separately in their respective chapter. The results are thereafter summarized in a separate chapter (Chapter 5), and appended with concluding remarks on the entire project and suggestions for further work in Chapter 6. At the end, the thesis is appended by three appendicies. Appendix A contains a brief description of the p-sop language, Appendix B contains some technical details about the production line used for the demonstrator, and Appendix C contains some details on the gui implementation.

21 2 Demonstrator project The first part described in this thesis is the implementation of a demonstrator of the p-sop concept. Hence, the demonstrator relies on a lot of work previously done by other persons involved in the project as well as some new features developed within this thesis. 2.1 Working process for the implementation The development of the demonstrator was done iteratively, with one feature developed and tested at a time. The well-defined interfaces for each module defined by p-sop were used as a structure for this work, e.g., once a human carrier was developed and fulfilled the p-sop interface, it could be treated as any carrier and would not be affected by future developments. A more detailed review of the actual work done is found in Section 2.2. A certain amount of time, beside programming, had to be used for adressing mechanical problems caused by, e.g., physical collisions or wear Description of the demonstrator A description of the implemented demonstrator for the p-sop language is given below, with all its features. 1 The production line used for the demonstrator is indeed well equipped, but there is a lack of sensors for confirming that, e.g., gripping is performed (which, due to physical tardiness, is not always the case), which in a later case may cause a collision. Even some software bugs occurred during the development phase and caused some situations with mechanical difficulties, as well as some issues due to lacking robustness in the communication between a plc and a robot. 5

22 6 2 Demonstrator project Figure 2.1: A layout sketch of the production line at PTC Figure 2.2: The production line at PTC

23 2.2 Description of the demonstrator 7 Physical facilities The demonstrator was implemented on a production line mainly used for education and research purposes, located at Production Technology Center (ptc), Trollhättan. The line contains four units: one cell with an abb robot and a conveyor for loading and unloading raw materials and produced parts, two cells with an abb robot and a cnc machine 2 each, and one portal robot for transportation between the cells. Each station is controlled by a plc, and there is also a master plc with commmunication with each station. A schematic overview of the production line is given in Figure 2.1 and a picture is shown in Figure 2.2. Between each cell, there is a buffer for storing pieces, and the buffers can be reached by the portal robot as well as the abb robots. In addition, there are buffer places which only the portal robot can reach. Some technical details on the demonstrator can be found in Appendix B. Flexible programming Each resource, i.e., machine and robot, is encapsulated into a function block with a well-defined and standardized interface supported by p-sop. A good portion of this work had already been done in earlier projects, but some extensions and development was needed. All physical resources, except the conveyor used for loading and unloading, was encapsulated into separate function blocks. Hence, the line can be programmed in p-sop with arbitrary product sequences, although the physical construction of the line suggests that some sequences make more sense than others. Due to a smart usage in p-sop of different variable types in iec , the entire line can be re-programmed, in principle, during ongoing production. Support for multiple part types The p-sop language supports different part types on the same line, and the demonstrator was therefore able to produce parts of different types at the same time, with shared resources such as buffer places etc. Since the demonstrator only contained two physically different product plates, there was in practice a limitation to two different part types, although there was no technical limitation. GUI for programming A general Graphical User Interface for programming in p-sop was developed, based on Microsoft PowerPoint and Visual Basic. It is in principle possible to sketch the flow of one or more products through the demonstrator in the gui, press the Generate p-sop code button, compile the generated p-sop code and download it into the plc, and hence reprogram the entire production without manually writing a single line of code. A more detailed description is given in Chapter 4. 2 cnc stands for Computer Numerical Control. In this case, it is a milling and a turning machine.

24 8 2 Demonstrator project Human inspection The demonstrator contains a station for manual inspection of, e.g., processed parts, with an interface for the operator to feedback if the part was OK or not. An interface for p-sop was written, and the usage of the station was hence fully supported by the p-sop language. Alternative routes The route through the line for a product part does not have to be linear, but the sequence may contain branching as well as convergences of paths. This allows the use of optional intermediate buffers, e.g., the portal may be used as a buffer. Error-handling p-sop contains support for conditional alternative routes. For instance, if a machine gives an eror signal (meaning that an error possibly have occurred in the processing), it is possible to send this particular piece to an inspection station. Depending on the outcome of the inspection, the piece may either, e.g., be sent back to the process once again, passed to a bin or be considered OK and passed further in the production. Human carrier An interface for requesting the human operator (instead of a robot) to carry a part was designed and encapsulated as a human carrier. This feature makes it possible to use the operator to add extra capacity and flexibility to the line, e.g., to use the human carrier to get rid of bottlenecks or to perform unusual movements for which no robot has been installed. This idea has been investigated in He et al. Visualization for supervision The demonstrator contains a graphical interface for supervision of the line, developed in CoDeSys 3 and displayed on a big screen placed close to the line. It seems, however, not to be a good idea to auto-generate such a visualization from p-sop code since an intuitive visualization of a line probably include some information about the line not supported in p-sop, such as the approximate physical orientation of the line. The visualization is nevertheless fully compatible with the auto-generated code, since the variable names in p-sop generated code is predictable. Hence, the visualization works even if the entire line is re-programmed with new sequences. An impression of the visualization is shown in Figure 2.3. Priority A general framework for assigning individual priorities for each task in the p-sop language was developed and showed to work in the demonstrator. A few different principles for priority policies were investigated, implemented and tested. A more detailed description of this is given in Chapter 3. com 3 A software package from 3S-Smart Software Solutions GmbH,

25 2.3 Results 9 Figure 2.3: The visualization for supervision of the demonstrator 2.3 Results The demonstrator worked as intended, which shows that the p-sop concept is possible to implement and use for, at least, this demonstrator. 2.4 Discussion and concluding remarks on the demonstrator project It has now been shown that the concept works as a whole and is also implementable and manageable in practice for a real production line of this scale, with several industrial robots etc. However, the theoretical concepts have been clear since previous work and some of the individual parts have been tested separately before, but this implementation is something new since it spans all the way from the gui to the physical robots and machines on the production line. It is also interesting to note that during the work with the demonstrator (as indicated in Section 2.1) the well defined interface between the function blocks and the auto generated p-sop code was an advantage in the sense that it provided a useful structure for the work, and did probably prevent many potentially software bugs Further work During the work with the demonstrator, some shortcomings in p-sop became clear, which are mentioned in Section 6.1. An even more advanced demonstrator with more features of p-sop would probably reveal some more shortcomings. However, it would probably be even more interesting if the next implementation is for real industrial needs.

26

27 3 Distributed priority policies As a second part of this thesis, a framework for a priority policy within p-sop was developed and evaluated, as well as some specific policies. As the chapter name suggests, the main theme for the chapter is distributed policies. This notation is inspired by Lu and Kumar [1991], and a distributed policy is here defined as follows. 3.1 Definition (Priority policy and distributed priority policy). In a situation when there is more than one possible task for a carrier to perform, the rule for making the decision which one to perform is called a priority policy. If it fullfills the following two requirements 1. The rule is possible to implement separately for each carrier on the line 2. The rule uses only information about the adjacent items (buffers, processes, sinks, sources,... ) it is called a distributed priority policy. 3.1 Need for priority policies Whenever a situation where a carrier can choose between two different tasks, a decision has to be taken. This decision may impact the flow of products through the production line, and impact, e.g., the production rate and the utilization grade of the line. Two examples where this becomes clear are discussed in Example 3.2 and

28 12 3 Distributed priority policies 3.2 Example: Possible influence of a priority policy I Consider a process with two part types. Suppose that every twelfth minute 1, one piece of type A and one piece of type B arrive to a buffer outside a process (e.g. a machine). This gives the following situation: One piece of type A and one of type B are waiting for being moved to a process, and no other pieces are relevant to consider for this decision. Suppose the processing of A takes 10 minutes, while B only takes 2 minutes. If the carrier picks part A first, and B thereafter, B will have to wait for ten minutes and the average time for these parts (including waiting) for this process will be (10 + (10 + 2))/2 = 11 minutes. On the other hand, if the carrier takes B before A, B will only have to wait for two minutes and the average time will be only (2 + (2 + 10))/2 = 7 minutes. 3.3 Example: Possible influence of a priority policy II Consider a production line where the same carrier is used for picking parts from the source as well as leaving parts to the sink, as illustrated in Figure 3.1 Figure 3.1: Schematical sketch of the situation in Example 3.3 Suppose a choice emerge between either feeding a new part into the line or taking a finished piece and leave to the sink. Which one is the best to do first? Although we do not have to consider the risk of causing a deadlock (since p-sop prohibits such tasks), one choice may still be better than the other. If the consecutive process for the part loaded from the source is idle, and the part waiting for the sink does not block anything nor is in a hurry to be delivered, it would seem obvious to give the highest priority to pick the part from the source. For the opposite situation, the optimal priority is also quite simple to figure out, but it quickly becomes trickier for all combinations of situations in between. These examples illustrate the need for priority policies, as well as the limitations with a distributed policy (i.e. each decision has to be made at each individual carrier, without any information regarding the situation for the rest of the line). 1 Although this example is not very realistic, its purpose is rather to illustrate the importance and influence of priority decisions in different situations, than give a detailed analysis of a specific situation.

29 3.2 Framework for priority policies in P-SOP 13 Even without an explicit priority policy, a decision will be made if the line is controlled by p-sop generated code. This decision will be made by the order of the tasks in the iec st code. Such an implicit priority policy would indeed work, but the order of the task written in the p-sop language (which is the same as the order in the st code) is not intended to affect the performance and hence not desired. 3.2 Framework for priority policies in P-SOP A rather advanced approach to a simulation-based optimization for p-sop is presented in Danielsson et al. [2012]. It is from the previous examples clear that the optimization is rather tricky, and it seems very hard (if not impossible) to develop a general optimal policy for priorities without including simulation. However, the simulation-based optimization would of course require a simulation model able to run online, and a much simpler priority policy is sought in this thesis. There are some relevant limitations in the p-sop language, which gives a framework for this work: 1. The present implementation offers no possibility to manage (and, hence, prioritize between) individual pieces, but only to distinguish between different part types. 2. There is an overall idea that p-sop should be possible to run in a nonhierarchical distributed way on several plc s (e.g. one plc per carrier). 2 Limitation 2 raises some questions. Although there must be no hierarchical decision structure, the information available for the decision may either be all available information (i.e. the state of the entire production line), or only local available information (that is, for each carrier only the parts in and the state of the adjacent buffers, processes etc is known). It is reasonbly desired to take an optimal decision in the active decision making, i.e., proritize. However, it is not very clear what the goal for the optimization is. The goal will therefore remain as only a rather vague desire of high utilization of the production line, and a deliver of the parts as expected. 3.3 Related work The priority policy problem in p-sop is of a rather general nature, since p-sop itself puts almost no restrictions on the sequences. A well-studied similar, although more specific, problem is flowshop scheduling. A good overview of the research, as well as a problem definition, is given in Gupta 2 This is by definition no limitation, but nonetheless relevant to consider in the development of priority policies. However, this principle will in Section 3.4 be interpreted as a preference for distributed policies, which is a limitation, hence the alignment as a limitation.

30 14 3 Distributed priority policies and Stafford [2006]. According to Gupta and Stafford [2006], a flowshop is characterized by more or less continuous and uninterrupted flow of jobs through multiple machines in series. In such a shop, the flow of work is unidirectional since all jobs follow the same technological routing through the machines.. This coincide with the problem arising from the priority problem within p-sop, except the unidirectionality. Unidirectional means that the order in which jobs are processed on various machines is the same for all n jobs and is specified, which does not necessarily have to be true in p-sop. Nonetheless, the research about the flowshop problem may be used as inspiration for ad hoc-policies for p-sop. A listing of some interesting and relevant approaches and results follows: 1. For the priority decisions between different part types waiting for the same process, Perkins and Kumark [1989] gives some very interesting suggestions for distributed priority policies, suitable even for rather general production lines with nonacyclic and non-unidirectional sequences. The idea here is to always choose a piece of the part type of which there are most waiting, or some generalization thereof. 2. Seidman [1994] raises a warning finger regarding lack of stability 3 for such a simple policy as First come, first served (also known as First in, first out ) in nonacyclic flows. The practical implications of these results on the work within p-sop and this thesis remains however rather unclear. 3. Lu and Kumar [1991] indicate that two good distributed policies, although not necessarily optimal, are the Least Slack (LS) policy and the Last Buffer First Served (LBFS), at least for the specific case they studied. The idea with the LS policy is to assign every piece a demanded delivering time, and in some way provide an estimation of the remaining processing for each piece when each decision is made. The piece with the highest expected delay (or, if there are no delays, the smallest margin to delivering time) are always chosen in each decision. This policy tends to minimize the variance in processing times. The LBFS relies on the idea to give higher priority to a piece the shorter it has to the sink. A similar idea is mentioned in Haupt [1989], named Fewest Number of Operations Remaining (FOPNR). As an alternative, the priorities may be inversed and the First Buffer First Served (FBFS) or Greatest Number of Operations Remaining (GOPNR) is obtained. In the simulations performed in Lu and Kumar [1991], the performance of FBFS are shown to be rather poor, while the performance of the LBFS are of the same magnitude as LS, but minimizing the mean of the processing time rather than the variance of it. 4. In Real-Time Operating Systems, priority inversion is an issue occurring when an high priority task H has to wait for the release of a shared resource, currently occupied (i.e. blocked) by a low priority task L. Suppose task L 3 In short, a policy is considered as stable if there exists an upper bound on the process time for each piece, roughly a guarantee that a piece will not get stuck in the line for an indefinite time.

31 3.4 Design choices 15 is interrupted, or in some way blocked, by a task M with medium priority. The result of this situation will be that task M is executing instead of task H. Hence, this causes a situation where the high priority of task H in practice is replaced by the low priority of task L, usually a undesired phenomena named priority inversion. A possible solution to this issue is to use priority inheritance. In this case, it would mean that task L inherits the (high) priority of task H as soon as task H claims to use the same shared resource as task L. Task L will hence not be interrupted by task M as long as it inherits the (high) priority from task H, and task H will, as desired, be executed as soon as possible and not affected by task M. A more detailed description is given in Renwick and Renwick [2004]. Different research papers use different goal functions for measuring the performance of the priority. For example, Lu and Kumar [1991] evaluates different policies against the mean processing time per piece, the standard deviation of processing times per piece as well as a linear combination thereof. None of the approaches referenced above uses any explicit time intervals for the decisions, which is a common approach in some simulation software. 3.4 Design choices The limitation 2 in Section 3.2 needs some further addressing, and a choice according to the discussion in Section 3.2 about which information is supposed to be available has to be made. One of the intentions behind limitation 2 is the avoidance of single point of failure, i.e., a part in a system which causes the entire system to stop if this (single) part is failing. A priority policy where all information about the entire line is required to make a decision would make all communication links single points of failure. The idea of using all available information when available (but not causing failure when not available) has already been exploited in Danielsson et al. [2012], and is not what is sought here. From this, the design choice is made that each priority decision must be made only with the information of parts waiting for being served by the carrier. This coincides with the definition of a distributed priority policy. In p-sop there are no priority decisions made right at the entrance of a process, but when the carrier outside the process chooses which task to perform. In most research referenced above, the priority decisions are treated as they are made at the entrance of each process. However, as long as there are no more than one robot loading each machine, the situations seems to be comparable and the results are assumed to still be applicable. From the referenced research, the LBFS policy (mentioned in 3 in Section 3.3) seems to be a good first start, since it becomes rather simple to implement. As the p-sop code is built up out of tasks, the LBFS policy corresponds to give a static priority to each task depending on its distance to the sink.

32 16 3 Distributed priority policies 3.4 Definition (Static priority). A priority is called static if it is time-independent. Within the idea of last buffer first served, some variations are possible to do. The version of the policy used in this thesis is described in definition 3.5 below, and illustrated with Example Definition (LBFS Policy). All tasks in all sequences are assigned a priority, and in every situation when a decision which task to perform has to be made, the one with the highest priority is chosen.the priorities are assigned according to the following rule, for each sequence at a time: Suppose the sequence contains no indefinite loops (although it may contain the same buffer, process etc a finite times), and the longest path in the sequence is finite and contains n tasks. Let P 0, P 1,, P n 2 be a decreasing sequence of real numbers such that P i > P j if i < j. The priority of task T is then P k, where k is the number of tasks in the longest path from task T. 3.6 Example: LBFS Policy This example gives an example of the LBFS policy. Consider the sequence defined by the flowchart in Figure 3.2. According to definition 3.5, the priorities will be as shown in Figure 3.3. The same principle is used for each sequence (i.e., the flow for each part type) in the entire program. Note that no considerations about which robot performing which task has to be taken into account. It is also worth to note that this policy will mostly give preference to the shortest path through the sequence. One possible evolution of the LBFS policy, mentioned in Haupt [1989], would be to assign priority not depending on the number of remaining steps, but on the total time of the remaining steps. (I.e., if a carrier can choose between moving part A or part B, part A will be preferred if the total remaining processing time of part A is less than the total remaining processing time of part B, although there may be fewer steps left for part B.) Such a policy would, obviously, require some information about processing times, for which the present version of p-sop lacks support. The priorities in LBFS are static while they are time-dependent in the LS policy (mentioned in 3 in Section 3.3). Inspired by the LS policy, a policy with timedependence was also developed. Since there is no possibility to assign individual priorities to single parts directly in the language (due to principle 1 above) as done in LS, the approach to assign variable priorities to different part types came up. This idea was combined with the LBFS idea, and the policy was named Variable Part Priority (VPP) to reflect the non-static priorities. The policy is described in definitions 3.7.

33 3.5 Implementation issues 17 Figure 3.2: A flowchart defining a sequence. A block with a P represent a processes, B a buffer, So a source, Si a sink, and the arrows are the tasks. Figure 3.3: The same sequence as in Figure 3.2, but with priorities according to the LBFS principle. The priority is proportional to the thickness of the line. If, for instance, all tasks (movements of pieces between the boxes ) are performed by the same robot, this tells the robot to always prioritize the piece nearest the sink. 3.7 Definition (VPP Policy). Suppose there is an expectation that X i % of the produced parts delivered to sink S should be of part type i, and suppose Y i % of the actual delivered parts delivered to source S are of part type i. Each task is assigned a priority P = P LBFS + P P ART (i), where i is an index for the present part types. P LBFS is calculated as a LBFS priority according to definition 3.5. P P ART (i) is treated online as a control signal to control Y to be kept as close as possible to the setpoint X. The VPP policy does not fulfill the definition of a distributed priority policy, since the P P ART (i) is a signal needed to be communicated online through the entire system. However, if the implementation of the priority is done in a way that P P ART is treated as equal to 0 if the values for some reason are not available at the decision moment, the policy boils down to the LBFS policy in those cases, which is a distributed policy. 3.5 Implementation issues This section deals with the question how to implement a priority policy in iec st code. As shown in the example in listing A.1, the auto generated p- sop code is divided into separate blocks, each block corresponding to a task in the p-sop code, which makes it quite manageable and readable. The readability of the auto-generated code must not be affected.

34 18 3 Distributed priority policies Hence, a straightforward solution is to exploit this structure, instead of changing it. To make a decision, it must be known which possible tasks there are to perform, as well as the priority of each task. This proposes an algorithm with in 3 steps: 1. Gather information about tasks ready for execution 2. Decide, per carrier, which task to execute 3. Start to execute the chosen task (if still applicable) and start from 1 again One possible way to implement this in iec st is to use the structure shown in listing 3.1. IF NOT PriorityCheck THEN PriorityCheck := TRUE; ELSE ( Find t h e t a s k with h i g h e s t p r i o r i t y ready f o r e x e c u t i o n ) j := 0 ; FOR i := 1 TO ( Upper bound o f B l u e R o b o t P r i o r i t y A r r a y ) BY 1 DO IF BlueRobotPriorityArray [ i ]. Request AND j = 0 THEN BlueRobotPriorityArray [ i ]. Allow := TRUE; j := i ; ELSIF BlueRobotPriorityArray [ i ]. Request AND BlueRobotPriorityArray [ i ]. Prio >= BlueRobotPriorityArray [ j ]. Prio THEN BlueRobotPriorityArray [ j ]. Allow := FALSE ; BlueRobotPriorityArray [ i ]. Allow := TRUE; j := i ; END_IF BlueRobotPriorityArray [ i ]. Request := FALSE ; END_FOR PriorityCheck := FALSE ; END_IF ( Repeat f o r each c a r r i e r ) (... ) ( S t a r t c o n d i t i o n f o r PSOP s e q u e n c e s t e p : ) ( 1 : BlueRobot BoxWithUnprocessedPieces ( 1) > F i r s t B u f f e r ( 1) ) IF Buffer1. in. ProductToLeave IF ( s t a r t c o n d i t i o n f o r t a s k ) THEN IF PriorityCheck THEN BlueRobotPriorityArray [ Taskindex ]. Request := TRUE; BlueRobotPriorityArray [ Taskindex ]. Prio := ( For example ) ; ELSIF BlueRobotPriorityArray [ Taskindex ]. Allow THEN BlueRobotPriorityArray [ Taskindex ]. Allow := FALSE ; ( s t a r t t o e x e c u t e t a s k ) END_IF END_IF IF ( Task i s running ) IF (NOT PriorityCheck ) AND ( Order i s performed ) THEN ( R e s e t r o b o t and c l e a n up ) END_IF END_IF (... ) Listing 3.1: Implementation idea for priority policies in iec st. Cf. listing A.2.

35 3.6 Results Results The structure for making priority decisions was implemented in the demonstrator with a test program of more than code lines, and worked as intended. A few experiments with different policies were carried out at the demonstrator, and presented below. The program which was used was similar to the example in Section 4.4. The results are discussed in Section LBFS policy Three experiments 4 were carried out to test the performance of the lbfs policy. In each experiment, the time until the demonstrator had produced 10 pieces was measured. One experiment was performed with the lbfs policy (accoording to definition 3.5), and two experiments were performed with priorities given with a random number generator insted of the lbfs algorithm. The results are presented in Table 3.1. Policy LBFS Random Random Time Table 3.1: Result of different experiments VPP policy A program with a production of two different part was used, and the production complexity of the different parts types was comparable. A total of 40 pieces were produced, in the beginning with only the lbfs priority policy, thereafter changed to the vpp policy with a demanded ratio of 0.5/0.5, and thereafter with a demanded ratio of 0.8/0.2. The result is shown in Figure 3.4. A simple PID controller with ad hoc-parameters was used to generate the control signal P P ART. 3.7 Discussion and concluding remarks on the priority policies On the demonstrator experiment results LBFS policy What can be said from Table 3.1 is that there exists priority policies that outperform the lbfs policy. It also indicates that the lbfs policy is not very useful for 4 The rather low number of experiments was due to mainly two reasons. First, as will be seen in the discussion in Section 3.7.1, the situation in the demonstrator is of a rather low interest for the kind of priority policies developed here. Secondly, in a fourth experiment, a mechanical accident occured (unrelated to the p-sop program and the priorities) which caused a breakdown for a couple of weeks for the line.

36 20 3 Distributed priority policies Figure 3.4: The experiment with the vpp policy in the demonstrator. In the beginning, the lbfs policy was used. Therafter, after 8 produced parts, the vpp policy was introduced online, with a demanded ratio of 0.5/0.5. After 16 produced parts, the demanded ratio was changed to 0.8/0.2. The dashed line shows the expected difference between the produced number of part of type 1 and part of type 2 if the demanded ratio was delivered as expected. The continous line is the difference between the actual number of produced part types. The dotted line is the control signal generated with a PID controller taking the actual production as an output and the expected production as a reference signal. the demonstrator 5. However, based on the impression when studying the demonstrator performing the experiments, an explanation of the results is that the demonstrator is a system where rather few priority decision have to be made, and the influence of those are rather limited 6. Hence, there are no big possible performance improvements to gain. VPP policy Since both the source and the sink in the demonstrator use the same conveyor, they affect each other. The current version of p-sop lacks support for this tricky 5 Actually, the results indicates a worse performance for the demonstrator with the lbfs policy than a randomized priority. The differences are in the magnitude of 5%. However, the total time for producing ten pieces is only one performance measure out of several possible, and a more significant difference would be needed to make a stronger statement about the performance of the different policies. With these results, a more careful investigation and evaluation of different performance measures would be needed to make a stronger statement. 6 The only shared resources that seems in practice to bound the performance is the conveyor belt and the portal robot. The conveyor belt is, as discussed later, not controlled by the priority decisions. The portal robot is operating rather fast, and is therefore not limiting the production that much

37 3.7 Discussion and concluding remarks on the priority policies 21 interdependence between the load and unload, hence it is not controlled by p-sop. The problem of developing an algorithm for optimizing the load and unload of the conveyor was not addressed further, since the focus with the demonstrator project was to make a demonstration of the p-sop concept, and the focus in the priority policy development was to manage the general situations emerging in a p-sop auto generated code. Instead, an ad-hoc algorithm was used to manage the loading and unloading of the conveyor. 7 The loading of new parts onto the conveyor was simply done in the experiments by just letting the produced parts delivered to the sink, i.e., the conveyor, stay on the conveyor and be produced again. This, together with the tricky interdependence between the source and sink caused by the conveyor, gives the priority decisions a very limited influence on the decision on which part types that enter the line. Of course it is crucial to control which pieces enter the line to affect the proportion of produced part types, and hence the influence of the VPP priority policy was limited. If the source had been designed in a way which made it possible to explicitly choose between different part types from the source with priorities assigned on p-sop level, the policy would probably have a bigger influence. It is also important to note that the program in the experiments uses different machines to process different part types, and the only shared resources between the part types are in practice the robots performing some of the moves of the pieces. This also gives a rather limited influence by the VPP policy, since there are only a few task to prioritize between. However, this is a feature of the demonstrator, not the p-sop language in general. A closer look at Figure 3.4: As can be seen, the influence of the demanded ratio on the produced ratio is rather poor when it differs from 0.5/0.5 (i.e. after 16 delivered pieces). However, as can be noted by looking at the first 8 produced parts, even in the abscense of this active control, the demonstrator produces products with ratio 0.5/0.5. When the demanded ratio is changed after 16 pieces, the difference between the number of produced parts of different types increases, but seems to run into some saturation, and remain rather constant. What probably happens is that the accumulated buffers are emptied on parts of one type, but when these are emptied, the influence of the policy is rather limited, and the production is in practice determined by the loading conveyor, as discussed above. Conclusions The conclusions here must be that the demonstrator is not well suited for these priority policies. The lbfs policy does not increase the efficiency of the demonstrator, and the VPP policy does not have any big influence on the production in the demonstrator neither. However, the shortcomings of the LBFS and the VPP policies in the experiments 7 However, if the p-sop language is extended to be able to handle such situations with rather complicated interdependence between different items on the line, the idea of priority inheritance, mentioned as point 4 in Section 3.3, would maybe be fruitful.

38 22 3 Distributed priority policies can be explained by the demonstrator setup. Therefore, no statement can be done for production lines in general, but only for lines similar to the demonstrator 8. The results reflect rather the challenge of finding a distributed priority policy that works well in all cases, and indicates the need for a global optimization, and motivates the optimization approach proposed in Danielsson et al. [2012] On priorities in P-SOP in general The lacking support of geometry in p-sop gives some shortcomings. For priority decisions, one relevant aspect (which became clear when performing the experiments) is that two different carriers are blocked from interacting with the same buffer at the same time, for the sake of collision avoidance. This means, e.g., that when robot A picks one part from a buffer, robot B is blocked from picking another part from the same buffer until robot A has left its part. The effect of this blocking is not investigated, but when observing the flow in the demonstrator as the experiments were performed, the intuition was that this blocking messed up the situations in a non-optimal way Further work Most of all, the result pinpoints the need of a simulation tool for p-sop. Due to the generality in the language, it seems to be very hard to find a good priority policy meaningful for all possible sequences. Even if the idea with a wizard holon 9 proposed in Danielsson et al. [2012] is not implemented in full, a simulation model would probably still be useful for in advance picking the most promising policy out of the policies mentioned or suggested in Section 3.3 and 3.4. A simulation model would also make it possible to generate a custom priority policy, with, e.g., high static priorities for critical task, so called bottlenecks. An idea for automatic generation of such a model directly from the p-sop language is given in Carlsson et al. [2011], and an interesting framework for the offline optimization is found in Svensson [2012]. 8 In, e.g., Lu and Kumar [1991], the lbfs policy is shown to improve performance in simulations of a production line for semiconductors. It seems probable that this result would be valid also for such a line controlled with p-sop, and it is at least not disproved with this experiment. 9 In short, a supervisor of the line giving recommendations to the carrier what decision to make in complex situations.

39 4 Graphical user interface The third part of this thesis deals with the development of a Graphical User Interface (gui) for p-sop. It builds on an earlier attempt, named version 1.0, and the version developed within this thesis is named version Framework for a P-SOP GUI The overall idea behind the development of p-sop is to simplify the planning and re-planning of an entire production line. This means, for instance, that only rather limited programming skills should be needed. The simplicity of the p-sop language is a step in that direction, although it still is a text-based tool 1. Ideally, the gui should be an equivalently powerful tool as the text-based p-sop code, hence contain the same features. From this, the following goals for the gui are derived: Contain all p-sop features Auto-generate readable and correct p-sop-code 1 A text-based tool is not by definition either harder or easier to use than a graphical tool. However, as will be shown, a graphical tool can be designed so that it seems to become an attractive alternative to a text-based tool. 23

40 24 4 Graphical user interface 4.2 Related work and research Previous work A first attempt to a gui has been made in previous projects at University West. For simplicity, this attempt is hereby denoted version 1.0. In version 1.0, it was possible to sketch some basic p-sop program and autogenerate p-sop code which was not entirely correct and hence not possible to compile. Although it was of no practical use, it was in some sense defining the style and the level of ambition for a p-sop gui. Some relevant research Petre [1995] points out that graphical programming (which a gui to p-sop probably can be considered as) is not necessarily better than text based programming. It is also stressed that the layout, patterns etc. have to make sense. Otherwise there is a risk of misunderstanding for inexperienced users, e.g., it contains patterns which by coincidence seems to be symmetric, and hence misleads the user in the interpretation of the program. 4.3 Design choices for the GUI Ideas kept from version 1.0 A fundamental idea in the p-sop language is the focus on the product flow through the line. In the gui context, this was represented by arrows (representing possible task, movements, of parts) between different blobs (representing processes, buffers, sinks, sources, etc.) in version 1.0. In lack of better terms, the names arrows and blobs will be used in this chapter. It was an idea in version 1.0 that it should be possible to sketch the sequences with a layout similar to the physical layout of the line. This idea probably stems from an intuitive answer to the question how to make a gui easy and simple to use?, and it seems to coincide with what is called second notation Petre [1995] (such as spaces and layout not bounded by the compiler rules) and the stressing of a meaningful use of it. Version 1.0 was implemented in Microsoft PowerPoint with Visual Basic 2. This may not be the very most suitable environment for this kind of program, and a change of environment (to, e.g., Microsoft Visio) was considered but rejected. The advantage of PowerPoint is that it is rather well known, which gives the gui a low threshold for new users. Design choices for version 2.0 One explicit restriction on the possibility to sketch the product sequence similar to the physical sequence on the real line was decided in version 2.0: it is not 2 Software packages from Microsoft,

41 4.4 Results 25 allowed to sketch any loops in the gui. A loop in this context means a path in a sequence returning to the very same blob in the gui. In the case of a product flow returning to the same physical item on the line, this item has to be sketched twice as two separate blobs (but with the same name) in the gui. An example can, e.g., be found in Figure 4.3. There are two reasons for this limitation. First, to avoid possible unclear and ambiguous notation in the gui when to leave a loop. Second, for the sake of simplicity of the underlying algorithms when, e.g., setting priorities (see Example 3.6 for an example). The current version of the p-sop compiler generates iec st code that cannot distinguish between a piece before and after a process, which gives rise to problems, e.g., when a part visits the very same buffer twice during the flow through the line with a process in between. This problem will probably be fixed in coming p-sop versions, but there is a need for a fix for this problem for the demonstrator. The fix used to get rid of this problem is a convention that the id number is increased by 100 for every process passed. The convention is implemented in the function blocks in the demonstrator, and in the code generation in the gui. This is however rather complicated to implement, since the gui allow branchings and convergences within sequences. Some kind of items (buffers and carriers) was decided to have explicit declarations in the gui, which means a blob, declearing the existence of the item, on a separate slide. The reason for this was that there were some information needed for writing correct p-sop code, which were rather unintuitive to ask for somewhere else than in a declaration. The other kind of items consequently has implicit declarations, which may be a questionable design choice in the aspect of user friendliness. Since the demonstrator project was implemented as a parallel work to the development of the gui, the features used in the demonstrator project was given the highest priority, and not all features in p-sop are implemented in the gui version Results The Graphical User Interface was developed and shown able to produce correct and readable p-sop code. A review of the functionality developed is found in this section, as well as a detailed example. An impression of the gui environment is shown in Figure 4.1. Functionality in the GUI The gui contains the following features: Graphical user dialogs for simple generation of new blobs with accurate settings as well as for changing settings of existing blobs Graphical user dialogs for simple generation of new arrows as well as changing settings of existing arrows

42 26 4 Graphical user interface Figure 4.1: An impression of the gui environment Automatic generation of correct p-sop code Features in automatic code generation to handle some shortcomings in the present version of p-sop mentioned in 4.3 Validation of the sketched program, to ensure the current program is correct (e.g. no illegal use of arrows or blobs) before generating p-sop code Explicit declaration of buffers, carriers and parts Implicit declaration of processes, sources, sinks and via -locations Graphical user dialog for setting priorities according to two different priority policies (described in detail in Chapter 3), as well as a feature for manually setting the priorities Graphical user dialog for giving conditions for tasks (e.g. for error handling) The gui is programmed in Microsoft Visual Basic for Application (VBA) and Power Point The VBA code interprets and manipulates the blobs and arrows in Power Point as sequences, tasks, definitions etc., to achieve the funtionality listed above. The VBA code consist of approximately 2000 lines. An idea of the code implementation can be found in Appendix C.

43 4.4 Results 27 Figure 4.2: The definition slide in the gui Figure 4.3: The sequence for product MillingPart Example of a program Buffers and carriers are defined on a separate slide, as shown in Figure 4.2. Here, there are five carriers and six buffers declared. To each of these definition blobs

44 28 4 Graphical user interface there is a unique integer assigned, defining the order they will be listed in the p-sop code (which later affects the iec code). The buffer blobs also each have an integer assigned representing the number of storage places in the buffer. The color of the arrows is the way to assign a carrier to a task. For instance, the green color of the arrow from BufferSTN400(1) to BufferSTN200(3) means that this task will be performed by the portal robot, since the portal robot is defined as green on the definition slide. Figure 4.4: The sequence for product TurningPart The sequences are declared on the subsequent slides, one per slide, see Figure 4.3 and 4.4. Each arrow corresponds to a task in p-sop. With a simple click on the button Generate p-sop code in the gui, the code shown in listing 4.1 is automatically generated. Due to the issues with separating processed and unprocessed parts discussed in Section 4.3, the sequences are divided into different parts, where the id number of the part is increased with 100 after each process. / Generated with P SOP f o r PowerPoint V2. 0 / CONFIGURATION NAME PTC_LINE ; CONFIGURATION USER ANDREAS_SVENSSON; CONFIGURATION REV V0. 1 ; #DEADLOCKAVOIDANCE / D e c l a r a t i o n s e c t i o n / PROCESS { MillingSTN200, TurningSTN300 } ; CARRIER { RobotSTN200, RobotSTN300, RobotSTN400, RobotSTN500, HumanCarrier } ; SOURCE { STN400Load } ; SINK { STN400Unload } ; BUFFER { BufferSTN200 [ 3 2 ], BufferSTN300 [ 9 ], BufferSTN400 [ 9 ], TableSTN300 [ 1 ], TableSTN200 [ 1 ], P o r t a l B u f f e r [ 1 0 ] } ; PART { MillingPart0 [ 1 ], MillingPart1 [ 101], TurningPart0 [ 2 ], TurningPart1 [102] } ;

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete Design and Implementation of a DMA Controller for Digital Signal Processor Examensarbete utfört i Datorteknik vid Tekniska

More information

Institutionen för datavetenskap Department of Computer and Information Science

Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer and Information Science Final thesis Load management for a telecom charging system by Johan Bjerre LIU-IDA/LITH-EX-A--08/043--SE 2008-10-13 1 Linköpings

More information

Terrain Rendering using Multiple Optimally Adapting Meshes (MOAM)

Terrain Rendering using Multiple Optimally Adapting Meshes (MOAM) Examensarbete LITH-ITN-MT-EX--04/018--SE Terrain Rendering using Multiple Optimally Adapting Meshes (MOAM) Mårten Larsson 2004-02-23 Department of Science and Technology Linköpings Universitet SE-601 74

More information

PGT - A path generation toolbox for Matlab (v0.1)

PGT - A path generation toolbox for Matlab (v0.1) PGT - A path generation toolbox for Matlab (v0.1) Maria Nyström, Mikael Norrlöf Division of Automatic Control Department of Electrical Engineering Linköpings universitet, SE-581 83 Linköping, Sweden WWW:

More information

Online Graph Exploration

Online Graph Exploration Distributed Computing Online Graph Exploration Semester thesis Simon Hungerbühler simonhu@ethz.ch Distributed Computing Group Computer Engineering and Networks Laboratory ETH Zürich Supervisors: Sebastian

More information

The ARCUS Planning Framework for UAV Surveillance with EO/IR Sensors

The ARCUS Planning Framework for UAV Surveillance with EO/IR Sensors Technical report from Automatic Control at Linköpings universitet The ARCUS Planning Framework for UAV Surveillance with EO/IR Sensors Per Skoglar Division of Automatic Control E-mail: skoglar@isy.liu.se

More information

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete Real-Time Multi-Dimensional Fast Fourier Transforms on FPGAs Examensarbete utfört i Datorteknik vid Tekniska högskolan

More information

Welfare Navigation Using Genetic Algorithm

Welfare Navigation Using Genetic Algorithm Welfare Navigation Using Genetic Algorithm David Erukhimovich and Yoel Zeldes Hebrew University of Jerusalem AI course final project Abstract Using standard navigation algorithms and applications (such

More information

Week - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02)

Week - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02) Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 04 Lecture - 01 Merge Sort (Refer

More information

Frequency Oriented Scheduling on Parallel Processors

Frequency Oriented Scheduling on Parallel Processors School of Mathematics and Systems Engineering Reports from MSI - Rapporter från MSI Frequency Oriented Scheduling on Parallel Processors Siqi Zhong June 2009 MSI Report 09036 Växjö University ISSN 1650-2647

More information

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete Bus System for Coresonic SIMT DSP Examensarbete utfört i Elektroteknik vid Tekniska högskolan vid Linköpings universitet

More information

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete Automated Fault Tree Generation from Requirement Structures Examensarbete utfört i Fordonssystem vid Tekniska högskolan

More information

Distributed minimum spanning tree problem

Distributed minimum spanning tree problem Distributed minimum spanning tree problem Juho-Kustaa Kangas 24th November 2012 Abstract Given a connected weighted undirected graph, the minimum spanning tree problem asks for a spanning subtree with

More information

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete Baseband Processing Using the Julia Language Examensarbete utfört i Elektroteknik vid Tekniska högskolan vid Linköpings

More information

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete Machine Learning for detection of barcodes and OCR Examensarbete utfört i Datorseende vid Tekniska högskolan vid Linköpings

More information

Scheduling Algorithms to Minimize Session Delays

Scheduling Algorithms to Minimize Session Delays Scheduling Algorithms to Minimize Session Delays Nandita Dukkipati and David Gutierrez A Motivation I INTRODUCTION TCP flows constitute the majority of the traffic volume in the Internet today Most of

More information

A nodal based evolutionary structural optimisation algorithm

A nodal based evolutionary structural optimisation algorithm Computer Aided Optimum Design in Engineering IX 55 A dal based evolutionary structural optimisation algorithm Y.-M. Chen 1, A. J. Keane 2 & C. Hsiao 1 1 ational Space Program Office (SPO), Taiwan 2 Computational

More information

OLE Smarts115, Smarts116

OLE Smarts115, Smarts116 Each SMART File is listed in one or more of the categories below. Following the categories is a list of each model with a brief description of its application and the key modules or constructs used. Animation

More information

Application Note. Creating PLCopen Compliant Function Blocks in IEC 61131

Application Note. Creating PLCopen Compliant Function Blocks in IEC 61131 1.1.1.1.1.1.1.1.1 Application Note Creating PLCopen Compliant Function Blocks in IEC 61131 Yaskawa America, Inc. Drives & Motion Division 2014 February 23, 2014 Page 1 of 31 Introduction... 3 Benefits...

More information

Physically-Based Laser Simulation

Physically-Based Laser Simulation Physically-Based Laser Simulation Greg Reshko Carnegie Mellon University reshko@cs.cmu.edu Dave Mowatt Carnegie Mellon University dmowatt@andrew.cmu.edu Abstract In this paper, we describe our work on

More information

Institutionen för datavetenskap Department of Computer and Information Science

Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer and Information Science Final thesis K Shortest Path Implementation by RadhaKrishna Nagubadi LIU-IDA/LITH-EX-A--13/41--SE 213-6-27 Linköpings universitet

More information

SOME TYPES AND USES OF DATA MODELS

SOME TYPES AND USES OF DATA MODELS 3 SOME TYPES AND USES OF DATA MODELS CHAPTER OUTLINE 3.1 Different Types of Data Models 23 3.1.1 Physical Data Model 24 3.1.2 Logical Data Model 24 3.1.3 Conceptual Data Model 25 3.1.4 Canonical Data Model

More information

Institutionen för systemteknik Department of Electrical Engineering

Institutionen för systemteknik Department of Electrical Engineering Institutionen för systemteknik Department of Electrical Engineering Examensarbete Automatic Parallel Memory Address Generation for Parallel DSP Computing Master thesis performed in Computer Engineering

More information

Institutionen för systemteknik Department of Electrical Engineering

Institutionen för systemteknik Department of Electrical Engineering Institutionen för systemteknik Department of Electrical Engineering Examensarbete Multiple Synchronized Video Streams on IP Network Examensarbete utfört i infomationskodning i sammabete med Kapsch TrafficCom

More information

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER The Bizarre Truth! Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER By Kimmo Nupponen 1 TABLE OF CONTENTS 1. The context Introduction 2. The approach Know the difference

More information

On the Relationships between Zero Forcing Numbers and Certain Graph Coverings

On the Relationships between Zero Forcing Numbers and Certain Graph Coverings On the Relationships between Zero Forcing Numbers and Certain Graph Coverings Fatemeh Alinaghipour Taklimi, Shaun Fallat 1,, Karen Meagher 2 Department of Mathematics and Statistics, University of Regina,

More information

Input/Output Management

Input/Output Management Chapter 11 Input/Output Management This could be the messiest aspect of an operating system. There are just too much stuff involved, it is difficult to develop a uniform and consistent theory to cover

More information

On path planning and optimization using splines

On path planning and optimization using splines On path planning and optimization using splines Mikael Norrlöf Division of Automatic Control Department of Electrical Engineering Linköpings universitet, SE-58 83 Linköping, Sweden WWW: http://www.control.isy.liu.se

More information

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete Implementation of LTE baseband algorithms for a highly parallel DSP platform Examensarbete utfört i Datorteknik vid Tekniska

More information

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete 3D Position Estimation of a Person of Interest in Multiple Video Sequences: Person of Interest Recognition Examensarbete

More information

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete Low Cost Floating-Point Extensions to a Fixed-Point SIMD Datapath Examensarbete utfört i Datorteknik vid Tekniska högskolan

More information

Using Simulation to Understand Bottlenecks, Delay Accumulation, and Rail Network Flow

Using Simulation to Understand Bottlenecks, Delay Accumulation, and Rail Network Flow Using Simulation to Understand Bottlenecks, Delay Accumulation, and Rail Network Flow Michael K. Williams, PE, MBA Manager Industrial Engineering Norfolk Southern Corporation, 1200 Peachtree St., NE, Atlanta,

More information

Generating and Using Results

Generating and Using Results Background Generating and Using Results from Usability Evaluations Kasper Hornbæk University of Copenhagen www.kasperhornbaek.dk Associate professor in the Human computer Interaction group at Copenhagen

More information

Chapter 5 (Week 9) The Network Layer ANDREW S. TANENBAUM COMPUTER NETWORKS FOURTH EDITION PP BLM431 Computer Networks Dr.

Chapter 5 (Week 9) The Network Layer ANDREW S. TANENBAUM COMPUTER NETWORKS FOURTH EDITION PP BLM431 Computer Networks Dr. Chapter 5 (Week 9) The Network Layer ANDREW S. TANENBAUM COMPUTER NETWORKS FOURTH EDITION PP. 343-396 1 5.1. NETWORK LAYER DESIGN ISSUES 5.2. ROUTING ALGORITHMS 5.3. CONGESTION CONTROL ALGORITHMS 5.4.

More information

Session 4b: Review of Program Quality

Session 4b: Review of Program Quality Session 4b: Review of Program Quality What makes one program "better" than another? COMP 170 -- Fall, 2013 Mr. Weisert What is a good program? Suppose we give the same assignment to two programmers (or

More information

1 Connectionless Routing

1 Connectionless Routing UCSD DEPARTMENT OF COMPUTER SCIENCE CS123a Computer Networking, IP Addressing and Neighbor Routing In these we quickly give an overview of IP addressing and Neighbor Routing. Routing consists of: IP addressing

More information

Model answer of AS-4159 Operating System B.tech fifth Semester Information technology

Model answer of AS-4159 Operating System B.tech fifth Semester Information technology Q.no I Ii Iii Iv V Vi Vii viii ix x Model answer of AS-4159 Operating System B.tech fifth Semester Information technology Q.1 Objective type Answer d(321) C(Execute more jobs in the same time) Three/three

More information

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete Image interpolation in firmware for 3D display Examensarbete utfört i Elektroniksystem vid Tekniska högskolan i Linköping

More information

A Fast Taboo Search Algorithm for the Job Shop Scheduling Problem

A Fast Taboo Search Algorithm for the Job Shop Scheduling Problem A Fast Taboo Search Algorithm for the Job Shop Scheduling Problem Uffe Gram Christensen (uffe@diku.dk) Anders Bjerg Pedersen (andersbp@diku.dk) Kim Vejlin (vejlin@diku.dk) October 21, 2008 Abstract: In

More information

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete EtherCAT Communication on FPGA Based Sensor System Examensarbete utfört i Elektroniksystem vid Tekniska Högskolan, Linköpings

More information

Structural Algorithms for Diagnostic System Design Using Simulink Models

Structural Algorithms for Diagnostic System Design Using Simulink Models Structural Algorithms for Diagnostic System Design Using Simulink Models Master s thesis performed in Vehicular Systems by Lars Eriksson Reg nr: LiTH-ISY-EX-3601-2004 10th January 2005 Structural Algorithms

More information

Discrete Optimization. Lecture Notes 2

Discrete Optimization. Lecture Notes 2 Discrete Optimization. Lecture Notes 2 Disjunctive Constraints Defining variables and formulating linear constraints can be straightforward or more sophisticated, depending on the problem structure. The

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

User Interface Design for Analysis of Sensor Systems

User Interface Design for Analysis of Sensor Systems Examensarbete LITH-ITN-KTS-EX 03/002 SE LITH-ITN-MT-EX 03/003 SE User Interface Design for Analysis of Sensor Systems Lisa Jonsson Karin Sallhammar 2003-01-16 Department of Science and Technology Linköpings

More information

Exam Concurrent and Real-Time Programming

Exam Concurrent and Real-Time Programming LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Exam Concurrent and Real-Time Programming 2009 12 16, 08.00 13.00 You are allowed to use the Java quick reference and a calculator. Also dictionaries

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

6.001 Notes: Section 4.1

6.001 Notes: Section 4.1 6.001 Notes: Section 4.1 Slide 4.1.1 In this lecture, we are going to take a careful look at the kinds of procedures we can build. We will first go back to look very carefully at the substitution model,

More information

Excerpt from "Art of Problem Solving Volume 1: the Basics" 2014 AoPS Inc.

Excerpt from Art of Problem Solving Volume 1: the Basics 2014 AoPS Inc. Chapter 5 Using the Integers In spite of their being a rather restricted class of numbers, the integers have a lot of interesting properties and uses. Math which involves the properties of integers is

More information

LINE BLOCK SYSTEM APPLICATION NOTE

LINE BLOCK SYSTEM APPLICATION NOTE 1 (19) 16 March 2009 LINE BLOCK SYSTEM APPLICATION NOTE Postaladdress Streetaddress Tel. Fax E-mail Home page P.O. Box 185, FI-00101 Helsinki Kaivokatu 8, 6th floor +358 20 751 5111 +358 20 751 5100 forename.surname@rhk.fi

More information

A Routing Table Insertion (RTI) Attack on Freenet

A Routing Table Insertion (RTI) Attack on Freenet A Routing Table Insertion (RTI) Attack on Freenet Technical Report University of Hawaii at Manoa Project Members Todd Baumeister Yingfei Dong Zhenhai Duan Guanyu Tian Date 9/18/2012 1 Table of Contents

More information

hp calculators HP 50g Algebraic and RPN Operating Modes Calculation Modes A simple example - the area of a piece of carpet Setting the mode

hp calculators HP 50g Algebraic and RPN Operating Modes Calculation Modes A simple example - the area of a piece of carpet Setting the mode Calculation Modes A simple example - the area of a piece of carpet Setting the mode Algebraic and RPN modes and the stack The command line Example a more complicated expression Example which stepladder?

More information

DESIGN AND ANALYSIS OF ALGORITHMS. Unit 1 Chapter 4 ITERATIVE ALGORITHM DESIGN ISSUES

DESIGN AND ANALYSIS OF ALGORITHMS. Unit 1 Chapter 4 ITERATIVE ALGORITHM DESIGN ISSUES DESIGN AND ANALYSIS OF ALGORITHMS Unit 1 Chapter 4 ITERATIVE ALGORITHM DESIGN ISSUES http://milanvachhani.blogspot.in USE OF LOOPS As we break down algorithm into sub-algorithms, sooner or later we shall

More information

Column Generation Method for an Agent Scheduling Problem

Column Generation Method for an Agent Scheduling Problem Column Generation Method for an Agent Scheduling Problem Balázs Dezső Alpár Jüttner Péter Kovács Dept. of Algorithms and Their Applications, and Dept. of Operations Research Eötvös Loránd University, Budapest,

More information

Fast algorithms for max independent set

Fast algorithms for max independent set Fast algorithms for max independent set N. Bourgeois 1 B. Escoffier 1 V. Th. Paschos 1 J.M.M. van Rooij 2 1 LAMSADE, CNRS and Université Paris-Dauphine, France {bourgeois,escoffier,paschos}@lamsade.dauphine.fr

More information

Shop Floor Control Simulation with a Combined Process/Resource-oriented Approach

Shop Floor Control Simulation with a Combined Process/Resource-oriented Approach Shop Floor Control Simulation with a Combined /Resource-oriented Approach PYOUNG YOL JANG Innovation Economy Department Science & Technology Policy Institute (STEPI) 26 th Fl., Specialty Construction Center

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

On-line mission planning based on Model Predictive Control

On-line mission planning based on Model Predictive Control On-line mission planning based on Model Predictive Control Zoran Sjanic LiTH-ISY-EX-3221-2001 2001-12-05 On-line mission planning based on Model Predictive Control Master thesis Division of Automatic

More information

Statistics Case Study 2000 M. J. Clancy and M. C. Linn

Statistics Case Study 2000 M. J. Clancy and M. C. Linn Statistics Case Study 2000 M. J. Clancy and M. C. Linn Problem Write and test functions to compute the following statistics for a nonempty list of numeric values: The mean, or average value, is computed

More information

Authentication in peer-to-peer systems

Authentication in peer-to-peer systems By Jonas Åslund LiTH-ISY-EX-3153-2002 2002-05-16 Titel Authentication in peer-to-peer systems Examensarbete utfört i informationsteori Vid Linköpings tekniska högskola av Jonas Åslund Reg.nr: LiTH-ISY-EX-3153-2002

More information

Distributed STDMA in Ad Hoc Networks

Distributed STDMA in Ad Hoc Networks Distributed STDMA in Ad Hoc Networks Jimmi Grönkvist Swedish Defence Research Agency SE-581 11 Linköping, Sweden email: jimgro@foi.se Abstract Spatial reuse TDMA is a collision-free access scheme for ad

More information

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 20 Priority Queues Today we are going to look at the priority

More information

Evaluation of instruction prefetch methods for Coresonic DSP processor

Evaluation of instruction prefetch methods for Coresonic DSP processor Master of Science Thesis in Electrical Engineering Department of Electrical Engineering, Linköping University, 2016 Evaluation of instruction prefetch methods for Coresonic DSP processor Tobias Lind Department

More information

Exercises: Instructions and Advice

Exercises: Instructions and Advice Instructions Exercises: Instructions and Advice The exercises in this course are primarily practical programming tasks that are designed to help the student master the intellectual content of the subjects

More information

Unit 1 Chapter 4 ITERATIVE ALGORITHM DESIGN ISSUES

Unit 1 Chapter 4 ITERATIVE ALGORITHM DESIGN ISSUES DESIGN AND ANALYSIS OF ALGORITHMS Unit 1 Chapter 4 ITERATIVE ALGORITHM DESIGN ISSUES http://milanvachhani.blogspot.in USE OF LOOPS As we break down algorithm into sub-algorithms, sooner or later we shall

More information

Some Applications of Graph Bandwidth to Constraint Satisfaction Problems

Some Applications of Graph Bandwidth to Constraint Satisfaction Problems Some Applications of Graph Bandwidth to Constraint Satisfaction Problems Ramin Zabih Computer Science Department Stanford University Stanford, California 94305 Abstract Bandwidth is a fundamental concept

More information

Siemens Digitalized Production Cell Boosts Auto Parts Manufacturing by 20% siemens.com/global/en/home/products/automation

Siemens Digitalized Production Cell Boosts Auto Parts Manufacturing by 20% siemens.com/global/en/home/products/automation Siemens Digitalized Production Cell Boosts Auto Parts Manufacturing by 20% siemens.com/global/en/home/products/automation Overview Increases in order size and quantity led Wisconsin-based auto parts manufacturer

More information

Greedy Algorithms CHAPTER 16

Greedy Algorithms CHAPTER 16 CHAPTER 16 Greedy Algorithms In dynamic programming, the optimal solution is described in a recursive manner, and then is computed ``bottom up''. Dynamic programming is a powerful technique, but it often

More information

Lixia Zhang M. I. T. Laboratory for Computer Science December 1985

Lixia Zhang M. I. T. Laboratory for Computer Science December 1985 Network Working Group Request for Comments: 969 David D. Clark Mark L. Lambert Lixia Zhang M. I. T. Laboratory for Computer Science December 1985 1. STATUS OF THIS MEMO This RFC suggests a proposed protocol

More information

Applied Algorithm Design Lecture 3

Applied Algorithm Design Lecture 3 Applied Algorithm Design Lecture 3 Pietro Michiardi Eurecom Pietro Michiardi (Eurecom) Applied Algorithm Design Lecture 3 1 / 75 PART I : GREEDY ALGORITHMS Pietro Michiardi (Eurecom) Applied Algorithm

More information

Business Rules Extracted from Code

Business Rules Extracted from Code 1530 E. Dundee Rd., Suite 100 Palatine, Illinois 60074 United States of America Technical White Paper Version 2.2 1 Overview The purpose of this white paper is to describe the essential process for extracting

More information

7. Decision or classification trees

7. Decision or classification trees 7. Decision or classification trees Next we are going to consider a rather different approach from those presented so far to machine learning that use one of the most common and important data structure,

More information

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 05 Lecture - 21 Scheduling in Linux (O(n) and O(1) Scheduler)

More information

Database management system Prof. D. Janakiram Department of Computer Science and Engineering Indian Institute of Technology, Madras

Database management system Prof. D. Janakiram Department of Computer Science and Engineering Indian Institute of Technology, Madras Database management system Prof. D. Janakiram Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 25 Basic 2-phase & 3-phase Commit protocol In the last lecture,

More information

Automation of data mapping using machine learning techniques

Automation of data mapping using machine learning techniques Data integration using machine learning Automation of data mapping using machine learning techniques Master of Science Thesis Complex Adaptive Systems MARCUS BIRGERSSON GUSTAV HANSSON Department of Computer

More information

DM204 - Scheduling, Timetabling and Routing

DM204 - Scheduling, Timetabling and Routing Department of Mathematics and Computer Science University of Southern Denmark, Odense Issued: March 27, 2009 Marco Chiarandini DM204 - Scheduling, Timetabling and Routing, Fall 2009 Problem A 1 Practical

More information

Module 15 Communication at Data Link and Transport Layer

Module 15 Communication at Data Link and Transport Layer Computer Networks and ITCP/IP Protocols 1 Module 15 Communication at Data Link and Transport Layer Introduction Communication at data link layer is very important as it is between two adjacent machines

More information

So, coming back to this picture where three levels of memory are shown namely cache, primary memory or main memory and back up memory.

So, coming back to this picture where three levels of memory are shown namely cache, primary memory or main memory and back up memory. Computer Architecture Prof. Anshul Kumar Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture - 31 Memory Hierarchy: Virtual Memory In the memory hierarchy, after

More information

A comparison between the scheduling algorithms used in RTLinux and in VxWorks - both from a theoretical and a contextual view

A comparison between the scheduling algorithms used in RTLinux and in VxWorks - both from a theoretical and a contextual view A comparison between the scheduling algorithms used in RTLinux and in VxWorks - both from a theoretical and a contextual view Authors and Affiliation Oskar Hermansson and Stefan Holmer studying the third

More information

a b c d a b c d e 5 e 7

a b c d a b c d e 5 e 7 COMPSCI 230 Homework 9 Due on April 5, 2016 Work on this assignment either alone or in pairs. You may work with different partners on different assignments, but you can only have up to one partner for

More information

Chapter 2 Basic Structure of High-Dimensional Spaces

Chapter 2 Basic Structure of High-Dimensional Spaces Chapter 2 Basic Structure of High-Dimensional Spaces Data is naturally represented geometrically by associating each record with a point in the space spanned by the attributes. This idea, although simple,

More information

Building a safe and secure embedded world. Testing State Machines. and Other Test Objects Maintaining a State. > TESSY Tutorial Author: Frank Büchner

Building a safe and secure embedded world. Testing State Machines. and Other Test Objects Maintaining a State. > TESSY Tutorial Author: Frank Büchner Building a safe and secure embedded world Testing State Machines and Other Test Objects Maintaining a State > TESSY Tutorial Author: Frank Büchner Topic: TESSY is especially well-suited for testing state

More information

Stating the obvious, people and computers do not speak the same language.

Stating the obvious, people and computers do not speak the same language. 3.4 SYSTEM SOFTWARE 3.4.3 TRANSLATION SOFTWARE INTRODUCTION Stating the obvious, people and computers do not speak the same language. People have to write programs in order to instruct a computer what

More information

EXTENDING THE PRIORITY CEILING PROTOCOL USING READ/WRITE AFFECTED SETS MICHAEL A. SQUADRITO A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE

EXTENDING THE PRIORITY CEILING PROTOCOL USING READ/WRITE AFFECTED SETS MICHAEL A. SQUADRITO A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE EXTENDING THE PRIORITY CEILING PROTOCOL USING READ/WRITE AFFECTED SETS BY MICHAEL A. SQUADRITO A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE IN COMPUTER

More information

CS 4349 Lecture October 18th, 2017

CS 4349 Lecture October 18th, 2017 CS 4349 Lecture October 18th, 2017 Main topics for #lecture include #minimum_spanning_trees. Prelude Homework 6 due today. Homework 7 due Wednesday, October 25th. Homework 7 has one normal homework problem.

More information

(Refer Slide Time: 00:02:00)

(Refer Slide Time: 00:02:00) Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 18 Polyfill - Scan Conversion of a Polygon Today we will discuss the concepts

More information

Byzantine Consensus in Directed Graphs

Byzantine Consensus in Directed Graphs Byzantine Consensus in Directed Graphs Lewis Tseng 1,3, and Nitin Vaidya 2,3 1 Department of Computer Science, 2 Department of Electrical and Computer Engineering, and 3 Coordinated Science Laboratory

More information

Question 1. Notes on the Exam. Today. Comp 104: Operating Systems Concepts 11/05/2015. Revision Lectures

Question 1. Notes on the Exam. Today. Comp 104: Operating Systems Concepts 11/05/2015. Revision Lectures Comp 104: Operating Systems Concepts Revision Lectures Today Here are a sample of questions that could appear in the exam Please LET ME KNOW if there are particular subjects you want to know about??? 1

More information

EC121 Mathematical Techniques A Revision Notes

EC121 Mathematical Techniques A Revision Notes EC Mathematical Techniques A Revision Notes EC Mathematical Techniques A Revision Notes Mathematical Techniques A begins with two weeks of intensive revision of basic arithmetic and algebra, to the level

More information

What Every Programmer Should Know About Floating-Point Arithmetic

What Every Programmer Should Know About Floating-Point Arithmetic What Every Programmer Should Know About Floating-Point Arithmetic Last updated: October 15, 2015 Contents 1 Why don t my numbers add up? 3 2 Basic Answers 3 2.1 Why don t my numbers, like 0.1 + 0.2 add

More information

Fault-Tolerance & Paxos

Fault-Tolerance & Paxos Chapter 15 Fault-Tolerance & Paxos How do you create a fault-tolerant distributed system? In this chapter we start out with simple questions, and, step by step, improve our solutions until we arrive at

More information

XP: Planning, coding and testing. Planning. Release planning. Release Planning. User stories. Release planning Step 1.

XP: Planning, coding and testing. Planning. Release planning. Release Planning. User stories. Release planning Step 1. XP: Planning, coding and testing Annika Silvervarg Planning XP planning addresses two key questions in software development: predicting what will be accomplished by the due date determining what to do

More information

System development, design & implementation

System development, design & implementation System development, design & implementation Design of software The following are the principle for any software design : Modularity and partitioning : Top down methods are used through out the analysis

More information

Hashing. Hashing Procedures

Hashing. Hashing Procedures Hashing Hashing Procedures Let us denote the set of all possible key values (i.e., the universe of keys) used in a dictionary application by U. Suppose an application requires a dictionary in which elements

More information

CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise

CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise CS61A Notes Week 6: Scheme1, Data Directed Programming You Are Scheme and don t let anyone tell you otherwise If you re not already crazy about Scheme (and I m sure you are), then here s something to get

More information

Scheduling with Bus Access Optimization for Distributed Embedded Systems

Scheduling with Bus Access Optimization for Distributed Embedded Systems 472 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 8, NO. 5, OCTOBER 2000 Scheduling with Bus Access Optimization for Distributed Embedded Systems Petru Eles, Member, IEEE, Alex

More information

Institutionen för systemteknik

Institutionen för systemteknik Institutionen för systemteknik Department of Electrical Engineering Examensarbete Implementations of the FFT algorithm on GPU Examensarbete utfört i Elektroniksystem vid Tekniska högskolan vid Linköpings

More information

Algorithms Exam TIN093/DIT600

Algorithms Exam TIN093/DIT600 Algorithms Exam TIN093/DIT600 Course: Algorithms Course code: TIN 093 (CTH), DIT 600 (GU) Date, time: 24th October 2015, 14:00 18:00 Building: M Responsible teacher: Peter Damaschke, Tel. 5405. Examiner:

More information

Lecture 13 Concurrent Programming

Lecture 13 Concurrent Programming Lecture 13 Concurrent Programming 8th October 2003 Thread/Process implementation A note on terminology: process is typically (but not always) used in referring to execution contexts managed by the OS kernel.

More information

Graphical Models. David M. Blei Columbia University. September 17, 2014

Graphical Models. David M. Blei Columbia University. September 17, 2014 Graphical Models David M. Blei Columbia University September 17, 2014 These lecture notes follow the ideas in Chapter 2 of An Introduction to Probabilistic Graphical Models by Michael Jordan. In addition,

More information

4. Environment. This chapter describes the environment where the RAMA file system was developed. The

4. Environment. This chapter describes the environment where the RAMA file system was developed. The 4. Environment This chapter describes the environment where the RAMA file system was developed. The hardware consists of user computers (clients) that request reads and writes of file data from computers

More information