S Simulation of data networks / fall-06. Part 2: CNCL S Simulation of data networks / CNCL.

Size: px
Start display at page:

Download "S Simulation of data networks / fall-06. Part 2: CNCL S Simulation of data networks / CNCL."

Transcription

1 S Simulation of data networks / fall-06 Part 2: CNCL S Simulation of data networks / CNCL CNCL: Contents CNCL C++ library for supporting event driven simulations Overview Main classes needed in simulations Learning CNCL by examples CNCL project work instructions

2 S Simulation of data networks / CNCL CNCL introduction Implemented by Communication Networks, Aachen University of Technology freeware Version 21 package can be downloaded from the course web page compiles with g++ version 295xx or less on most Unix-type platforms easy installation ( make NewWorld ) compilation on more recent compilers requires changes in Makefile(s) C++ class library collection of classes for supporting event driven simulation light weight simulation software provides functionality for example for event handling/scheduling, random number generation, statistics collection, basic statistical analysis of results Usage userwriteshisowncode(inc/c++) compiles (make) the code and links together own code and the class library S Simulation of data networks / CNCL Modeling with CNCL (1) Basic philosophy simulation model consists of processes and events processes send events to each other ev_a Process 2 ev_a Process 1 ev_a ev_c ev_c ev_a Process 4 ev_b Process 3 ev_d

3 S Simulation of data networks / CNCL Modeling with CNCL (2) Process implements a state machine (eg, a server in a queue can be in state idle/serving) receives events and depending on event s type executes an appropriate method (function) while executing the method associated with an event, it typically changes the process s state and schedules new events in practise, a process is a C++ class that has been derived (through inheritance) from the CNEventHandler class Event causes the state of a process to change events drive the simulation s execution and (usually) imply the advancement of simulation time for example, packets arriving at the queue, packet finishes service at the server, Event vs direct method call: for reasons of modularity of the program design, a process can be implemented by using several classes not all classes need to be able to handle events often the internal overhead of event scheduling can be avoided by using just a direct method call S Simulation of data networks / CNCL CNCL and C++ (1) CNCL programs implemented in C++ CNCL library provides basic functionality for pseudo random number generation, generation from given distributions, statistical analysis, basic queue elements, event management etc user can directly use these classes CNCL event handling user must implement event handling logic himself each process in the model is an event handler event handler in practise an event handler is a C++ class, that has been derived from an abstract event handler base class (CNEventHandler) event handling logic implemented in predefined functions of the derived class (the function void event_handler() is declared virtual in base class)

4 S Simulation of data networks / CNCL CNCL and C++ (2) Memory management must be handled by the user Memory space for an object can be created either statically from the stack or dynamically from the heap Stack allocation (static) { MyObject x; } an object that is declared directly is created on the stack and objects are destroyed in reverse order of creation (done automatically on exit of the block they were created in) user has no control over the creation timing and destroying eg random number generators and event schedulers can be such static objects created in the main program S Simulation of data networks / CNCL CNCL and C++ (3) Heap allocation (dynamic) { MyObject* xptr; xptr = new MyObject; delete xptr; } objects created with the new operator are placed on the heap and will persist until explicitly destroyed, or the program terminates every object created with new must be explicitly destroyed with a corresponding delete eg in simulation of a network (or just single queue) packets going through the system should be dynamic objects

5 S Simulation of data networks / CNCL CNCL properties Pros as the user implements all functionality, the user also has full control of what functionality is needed and what is not fast execution times (no unnecessary overhead) (relatively)easytolearn(simple) good support for random number generation and event driven simulation Cons no ready made functional blocks for network simulations (eg, different protocols, etc) implementation time may be substantial S Simulation of data networks / CNCL CNCL: Contents CNCL C++ library for supporting event driven simulations Overview Main classes needed in simulations Learning CNCL by examples CNCL project work instructions

6 S Simulation of data networks / CNCL Essential functionality needed in every simulation program To some extent, all simulations need the same basic building blocks pseudo random number generator random number generators from given distributions event scheduler (event exploders, ) different queues (FIFO, priority queues, ) event data structure jobs (packets) S Simulation of data networks / CNCL Class hierarchy Class CNCL provides functions for error handling CNObject is the root of the CNCL class hierarchy CNCL CNObject CNRNG CNRandom CNStatistics CNEvent CNEvent Handler CNJob

7 S Simulation of data networks / CNCL Random number generators CNRNG is an abstract base class for all CNCL random number generators the pseudo-random number generators to be used have been derived from CNRNG CNRNG supports following pseudo random number types unsigned integer float 01 double 01 Actual RNGs differ in quality of pseudo random number sequences (sequence lengths, overlapping sequences, correlation), efficiency, and memory consumption S Simulation of data networks / CNCL Derived classes (1) CNLCG Linear Congruence RNG simplest pseudo random number generator may be used when performance is more important than perfect randomness CNMLCG Multiple Linear Congruence RNG combines the results of two different CNLCGs implementation taken from the GNU-library libg++ fairly long period, and has been shown to give good intersample-independence CNACG Additive RNG high quality random number generator requires a fair amount of memory for each instance of the generator implementation taken from the GNU-library libg

8 S Simulation of data networks / CNCL Derived classes (2) CNFiboG Fibonacci RNG high quality generator with a huge period (in the CNCL implementation period = ) relatively high memory usage CNFileG Data File RNG data file random number generator class reads random numbers from a disk file good file must have a sufficient size considerable memory usage and low speed can be expected when using this class CNTausG Tausworth RNG main advantage of this generator is that it can easily be implemented as a fast hardware generator statistical tests have shown some flaws in this generator so that its use is not recommended S Simulation of data networks / CNCL Summary of random number generators Randomness Period length Performance Memory req LCG MLCG ACG +++ 1) ++ + FiboG ) depends on table size

9 S Simulation of data networks / CNCL Example CNFiboG rng1; CNRNG *rng2 = new CNFiboG(); unsigned x1; float x2; double x3; x1 = rng1as_long(); // draw a random integer 02^31-1 x2 = rng2->as_float(); // draw a random float 01 x3 = rng2->as_double(); // draw a random double 01 delete rng2; S Simulation of data networks / CNCL Random numbers with different distributions CNRandom is an abstract base class for different random number distributions common interface to access all derived RNG classes CNRandom provides a random number from the distribution CNRandom uses CNRNG CNRandom initialized with a pointer to the used pseudo random number generator

10 S Simulation of data networks / CNCL Derived classes CNBeta CNBinomial CNDeterm CNDiracTab CNDiscUniform CNErlang CNGeometric CNHyperExp CNHyperGeom CNInterTab CNLogNormal CNMDeterm CNNegExp CNNormal CNPoisson CNRandomMix CNRayleigh CNRice CNTab CNUniform CNWeibull S Simulation of data networks / CNCL Example CNRNG *rng = new CNFiboG(); double mean = 20; CNNegExp rnd(mean, rng); double x; x = rnd(); // draw a neg exp distributed random number delete rng;

11 S Simulation of data networks / CNCL Statistical evaluation CNStatistics is an abstract base class for all statistics classes defines a common interface CNStatistics allows to put a value for statistical evaluation to reset the evaluation CNStatistics provides eg mean and variance of the input sequence number of evaluated values minimum and maximum of all evaluated values Derived classes CNMoments CNMomentsTime CNConfidence CNHistogram (CNLREF, CNLREG, CNDLRE, CNBatchMeans) S Simulation of data networks / CNCL Evaluation of moments for simulation data CNMoments provides eg mean variance and relative variance 2nd and 3rd zero moment 3rd central moment relative deviation skewness CNMomentsTime moments of a time-weighted input sequence useful for computing eg statistics of the queue length process CNConfidence usual non-parametric statistics + functions for computing confidence intervals CNHistogram support for computing histograms of sample statistics

12 S Simulation of data networks / CNCL Example(s) CNMoments m; double x; double y; CNMomentsTime m; double x; double y; mput(20); mput(34); mput(51); mput(20, 10); mput(34, 20); mput(51, 30); x = mmean(); y = mvariance(); x = mmean(); y = mvariance(); cout << m; cout << m; S Simulation of data networks / CNCL Container classes Container classes work with pointers to CNObject Generic data structures CNAVLTree AVL balanced tree structure CNSLList Single Linked List of Objects CNDLList Double Linked List of Objects also iterators for lists Queue objects CNQueueFIFO FIFO Queue CNQueueLIFO LIFO Queue CNQueueRandom Random queue CNQueueSPT Shortest Processing Time queue (only for CNJobs) CNPrioQueueFIFO FIFO priority queue Other classes CNSink Queue that deletes all inserted jobs

13 S Simulation of data networks / CNCL FIFO queue CNQueueFIFO queue; CNJob* in_job = new CNJob; CNJob* out_job; queueput(in_job); out_job = queuepeek(); //job not removed from queue out_job = queueget(); //job is removed from queue delete out_job; S Simulation of data networks / CNCL Job CNJob (derived from CNObject) is a standard object for CNCL queues CNJob provides eg the following public member variables: CNSimTime in // enter system CNSimTime start // service begins CNSimTime out // leave system int priority // priority of job Useful for example when recording sojourn times

14 S Simulation of data networks / CNCL Example CNMoments m_queue; CNMoments m_total; CNJob *job = new CNJob; job->in = now(); // job arrives at the queue job->start = now(); // service begins job->out = now(); // service ends m_queueput(job->start - job->in); m_totalput(job->out - job->in); delete job; // job is no longer needed S Simulation of data networks / CNCL Event driven simulation Event Handlers: Generator, Server Events: TIMER_G, TIMER_S, JOB Event Scheduler Scheduler TIMER_G TIMER_S JOB JOB Generator Server

15 S Simulation of data networks / CNCL Event handlers Derived from class CNEventHandler state machine that receives and processes events user implements event handling method: void event_handler(const CNEvent *ev) executed routine depends on the state of the event handler and the type of the incoming event may generate new events and change state resembles a process S Simulation of data networks / CNCL Example Class Generator : public CNEventHandler { private: public: }; void Generator::event_handler(const CNEvent *ev) { switch (ev->type()) { } };

16 S Simulation of data networks / CNCL Events Class CNEvent data structure representing events in the simulation Includes type priority sending time and scheduled time sending and receiving event handlers unique identifier pointer to an arbitrary CNCL object Note! CNEvents are created with new operator, but they do not need to be explicitly deleted by user (scheduler takes care of that) S Simulation of data networks / CNCL Example CNEvent *ev; CNRandom *rnd; Server *server; // another event handler ev = new CNEvent(EV_TIMER_G); send_delay(ev, rnd( )); // send to myself as default ev = new CNEvent(EV_JOB, server, new CNJob); send_now(ev); // send without delay send_delay(new CNEvent(EV_TIMER_G), rnd( ));

17 S Simulation of data networks / CNCL Event scheduler Operation controls the simulation run receives events orders events in the increasing order of time stamp and decreasing order of priority passes events to the addressed event handlers deletes all created CNEvent objects Two variants CNEventScheduler guarantees that events are processed in FIFO order even when time and priority compare equal slow if nof managed simultaneous events grows large CNEventHeapSched more efficient than CNEventScheduler, but cannot guarantee FIFO processing if time and priority of events are equal S Simulation of data networks / CNCL Examples main( ) { CNEventScheduler scheduler; schedulerstart(new CNEvent(EV_TIMER_G, &generator, 0)); } main( ) { CNEventScheduler scheduler; schedulersend_event(new CNEvent(EV_TIMER_G, &generator, 0)); schedulerstart( ); }

18 S Simulation of data networks / CNCL Simulation time Note! Simulation time is accessible only in EventHandler classes in fact, only in the EventHandler method!!!! Within such classes, simulation time is accessed with now() method call each event handler has inherited this method from the base class CNEventHandler the method now() works properly only within the EventHandler -method

Simulation Studies of the Basic Packet Routing Problem

Simulation Studies of the Basic Packet Routing Problem Simulation Studies of the Basic Packet Routing Problem Author: Elena Sirén 48314u Supervisor: Pasi Lassila February 6, 2001 1 Abstract In this paper the simulation of a basic packet routing problem using

More information

CNCL: Contents. Extra material (1)

CNCL: Contents. Extra material (1) CNCL: Contents CNCL C++ library for supporting event driven simulations Learning CNCL by examples Example 1: GI/GI/1 system, combined queue and server Example 2: steady state simulation using independent

More information

Comparison of Different Network Simulation Tools. University of Bremen Communication Networks

Comparison of Different Network Simulation Tools. University of Bremen Communication Networks Comparison of Different Network Simulation Tools University of Bremen Communication Networks www.comnets.uni-bremen.de Overview Network Simulator Overview Comparison of Different Network Simulators Random

More information

Computer Systems II. First Two Major Computer System Evolution Steps

Computer Systems II. First Two Major Computer System Evolution Steps Computer Systems II Introduction to Processes 1 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent processes) 2 1 At First (1945 1955) In the beginning,

More information

1) What is the primary purpose of template functions? 2) Suppose bag is a template class, what is the syntax for declaring a bag b of integers?

1) What is the primary purpose of template functions? 2) Suppose bag is a template class, what is the syntax for declaring a bag b of integers? Review for Final (Chapter 6 13, 15) 6. Template functions & classes 1) What is the primary purpose of template functions? A. To allow a single function to be used with varying types of arguments B. To

More information

Sorting and Searching

Sorting and Searching Sorting and Searching Lecture 2: Priority Queues, Heaps, and Heapsort Lecture 2: Priority Queues, Heaps, and Heapsort Sorting and Searching 1 / 24 Priority Queue: Motivating Example 3 jobs have been submitted

More information

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017 CS 471 Operating Systems Yue Cheng George Mason University Fall 2017 Outline o Process concept o Process creation o Process states and scheduling o Preemption and context switch o Inter-process communication

More information

Sorting and Searching

Sorting and Searching Sorting and Searching Lecture 2: Priority Queues, Heaps, and Heapsort Lecture 2: Priority Queues, Heaps, and Heapsort Sorting and Searching 1 / 24 Priority Queue: Motivating Example 3 jobs have been submitted

More information

Visit ::: Original Website For Placement Papers. ::: Data Structure

Visit  ::: Original Website For Placement Papers. ::: Data Structure Data Structure 1. What is data structure? A data structure is a way of organizing data that considers not only the items stored, but also their relationship to each other. Advance knowledge about the relationship

More information

Pointers II. Class 31

Pointers II. Class 31 Pointers II Class 31 Compile Time all of the variables we have seen so far have been declared at compile time they are written into the program code you can see by looking at the program how many variables

More information

Algorithms and Data Structures

Algorithms and Data Structures Algorithms and Data Structures Dr. Malek Mouhoub Department of Computer Science University of Regina Fall 2002 Malek Mouhoub, CS3620 Fall 2002 1 6. Priority Queues 6. Priority Queues ffl ADT Stack : LIFO.

More information

UNIT -3 PROCESS AND OPERATING SYSTEMS 2marks 1. Define Process? Process is a computational unit that processes on a CPU under the control of a scheduling kernel of an OS. It has a process structure, called

More information

CS 261 Fall C Introduction. Variables, Memory Model, Pointers, and Debugging. Mike Lam, Professor

CS 261 Fall C Introduction. Variables, Memory Model, Pointers, and Debugging. Mike Lam, Professor CS 261 Fall 2017 Mike Lam, Professor C Introduction Variables, Memory Model, Pointers, and Debugging The C Language Systems language originally developed for Unix Imperative, compiled language with static

More information

Extending OPNET Modeler with External Pseudo Random Number Generators and Statistical Evaluation by the Limited Relative Error Algorithm

Extending OPNET Modeler with External Pseudo Random Number Generators and Statistical Evaluation by the Limited Relative Error Algorithm Becker, M.; Weerawardane, T.L.; Li, X.; Görg, C.: Etending OPNET Modeler with Eternal Pseudo Services. Springer, 27 Etending OPNET Modeler with Eternal Pseudo Random Number Generators and Statistical Evaluation

More information

CSCI-1200 Data Structures Fall 2018 Lecture 22 Hash Tables, part 2 & Priority Queues, part 1

CSCI-1200 Data Structures Fall 2018 Lecture 22 Hash Tables, part 2 & Priority Queues, part 1 Review from Lecture 21 CSCI-1200 Data Structures Fall 2018 Lecture 22 Hash Tables, part 2 & Priority Queues, part 1 the single most important data structure known to mankind Hash Tables, Hash Functions,

More information

3. Priority Queues. ADT Stack : LIFO. ADT Queue : FIFO. ADT Priority Queue : pick the element with the lowest (or highest) priority.

3. Priority Queues. ADT Stack : LIFO. ADT Queue : FIFO. ADT Priority Queue : pick the element with the lowest (or highest) priority. 3. Priority Queues 3. Priority Queues ADT Stack : LIFO. ADT Queue : FIFO. ADT Priority Queue : pick the element with the lowest (or highest) priority. Malek Mouhoub, CS340 Winter 2007 1 3. Priority Queues

More information

CS 3733 Operating Systems

CS 3733 Operating Systems What will be covered in MidtermI? CS 3733 Operating Systems Instructor: Dr. Tongping Liu Department Computer Science The University of Texas at San Antonio Basics of C programming language Processes, program

More information

Processes. Overview. Processes. Process Creation. Process Creation fork() Processes. CPU scheduling. Pål Halvorsen 21/9-2005

Processes. Overview. Processes. Process Creation. Process Creation fork() Processes. CPU scheduling. Pål Halvorsen 21/9-2005 INF060: Introduction to Operating Systems and Data Communication Operating Systems: Processes & CPU Pål Halvorsen /9-005 Overview Processes primitives for creation and termination states context switches

More information

Review. Preview. Three Level Scheduler. Scheduler. Process behavior. Effective CPU Scheduler is essential. Process Scheduling

Review. Preview. Three Level Scheduler. Scheduler. Process behavior. Effective CPU Scheduler is essential. Process Scheduling Review Preview Mutual Exclusion Solutions with Busy Waiting Test and Set Lock Priority Inversion problem with busy waiting Mutual Exclusion with Sleep and Wakeup The Producer-Consumer Problem Race Condition

More information

Run Time Environment

Run Time Environment CS 403 Compiler Construction Lecture 12 Run Time Environment and Management [Based on Chapter 7 of Aho2] 1 Run Time Environment From Lecture 1 to 11, we have seen many jobs that are done by a compiler.

More information

Programming Language Concepts Scoping. Janyl Jumadinova January 31, 2017

Programming Language Concepts Scoping. Janyl Jumadinova January 31, 2017 Programming Language Concepts Scoping Janyl Jumadinova January 31, 2017 Scope Rules A scope is a program section of maximal size in which no bindings change, or at least in which no re-declarations are

More information

Processes and Non-Preemptive Scheduling. Otto J. Anshus

Processes and Non-Preemptive Scheduling. Otto J. Anshus Processes and Non-Preemptive Scheduling Otto J. Anshus Threads Processes Processes Kernel An aside on concurrency Timing and sequence of events are key concurrency issues We will study classical OS concurrency

More information

C Introduction. Comparison w/ Java, Memory Model, and Pointers

C Introduction. Comparison w/ Java, Memory Model, and Pointers CS 261 Fall 2018 Mike Lam, Professor C Introduction Comparison w/ Java, Memory Model, and Pointers Please go to socrative.com on your phone or laptop, choose student login and join room LAMJMU The C Language

More information

IT 540 Operating Systems ECE519 Advanced Operating Systems

IT 540 Operating Systems ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (3 rd Week) (Advanced) Operating Systems 3. Process Description and Control 3. Outline What Is a Process? Process

More information

Chapter 9: Virtual-Memory

Chapter 9: Virtual-Memory Chapter 9: Virtual-Memory Management Chapter 9: Virtual-Memory Management Background Demand Paging Page Replacement Allocation of Frames Thrashing Other Considerations Silberschatz, Galvin and Gagne 2013

More information

MID TERM MEGA FILE SOLVED BY VU HELPER Which one of the following statement is NOT correct.

MID TERM MEGA FILE SOLVED BY VU HELPER Which one of the following statement is NOT correct. MID TERM MEGA FILE SOLVED BY VU HELPER Which one of the following statement is NOT correct. In linked list the elements are necessarily to be contiguous In linked list the elements may locate at far positions

More information

CPSC 341 OS & Networks. Processes. Dr. Yingwu Zhu

CPSC 341 OS & Networks. Processes. Dr. Yingwu Zhu CPSC 341 OS & Networks Processes Dr. Yingwu Zhu Process Concept Process a program in execution What is not a process? -- program on a disk A process is an active object, but a program is just a file It

More information

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective. Part I: Operating system overview: Processes and threads

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective. Part I: Operating system overview: Processes and threads ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective Part I: Operating system overview: Processes and threads 1 Overview Process concept Process scheduling Thread

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

Abstract Data Structures IB Computer Science. Content developed by Dartford Grammar School Computer Science Department

Abstract Data Structures IB Computer Science. Content developed by Dartford Grammar School Computer Science Department Abstract Data Structures IB Computer Science Content developed by Dartford Grammar School Computer Science Department HL Topics 1-7, D1-4 1: System design 2: Computer Organisation 3: Networks 4: Computational

More information

Course goals. exposure to another language. knowledge of specific data structures. impact of DS design & implementation on program performance

Course goals. exposure to another language. knowledge of specific data structures. impact of DS design & implementation on program performance Course goals exposure to another language C++ Object-oriented principles knowledge of specific data structures lists, stacks & queues, priority queues, dynamic dictionaries, graphs impact of DS design

More information

Course Review for Finals. Cpt S 223 Fall 2008

Course Review for Finals. Cpt S 223 Fall 2008 Course Review for Finals Cpt S 223 Fall 2008 1 Course Overview Introduction to advanced data structures Algorithmic asymptotic analysis Programming data structures Program design based on performance i.e.,

More information

Where does the insert method place the new entry in the array? Assume array indexing starts from 0(zero).

Where does the insert method place the new entry in the array? Assume array indexing starts from 0(zero). Suppose we have a circular array implementation of the queue,with ten items in the queue stored at data[2] through data[11]. The current capacity of an array is 12. Where does the insert method place the

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

Processes, Execution, and State. What is CPU Scheduling? Goals and Metrics. Rectified Scheduling Metrics. CPU Scheduling: Proposed Metrics 4/6/2016

Processes, Execution, and State. What is CPU Scheduling? Goals and Metrics. Rectified Scheduling Metrics. CPU Scheduling: Proposed Metrics 4/6/2016 Processes, Execution, and State Operating Systems Principles Scheduling Algorithms, Mechanisms, Performance Mark Kampe (markk@cs.ucla.edu) 4A. Introduction to Scheduling 4B. Non-Preemptive Scheduling 4C.

More information

Thus, it is reasonable to compare binary search trees and binary heaps as is shown in Table 1.

Thus, it is reasonable to compare binary search trees and binary heaps as is shown in Table 1. 7.2 Binary Min-Heaps A heap is a tree-based structure, but it doesn t use the binary-search differentiation between the left and right sub-trees to create a linear ordering. Instead, a binary heap only

More information

CS 450 Fall xxxx Final exam solutions. 2) a. Multiprogramming is allowing the computer to run several programs simultaneously.

CS 450 Fall xxxx Final exam solutions. 2) a. Multiprogramming is allowing the computer to run several programs simultaneously. CS 450 Fall xxxx Final exam solutions 1) 1-The Operating System as an Extended Machine the function of the operating system is to present the user with the equivalent of an extended machine or virtual

More information

12 Abstract Data Types

12 Abstract Data Types 12 Abstract Data Types 12.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define the concept of an abstract data type (ADT). Define

More information

5 When a program calls a function, in which type of data structure is memory allocated for the variables in that function?

5 When a program calls a function, in which type of data structure is memory allocated for the variables in that function? 1 The finally block of an exception handler is: -executed when an exception is thrown -always executed when the code leaves any part of the Try statement -always executed -always executed when the code

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 18 CPU Scheduling Hello. In this lecture, we

More information

What goes inside when you declare a variable?

What goes inside when you declare a variable? Stack, heap, value types, reference types, boxing, and unboxing Introduction This article will explain six important concepts: stack, heap, value types, reference types, boxing, and unboxing. This article

More information

Lecture 4: Process Management

Lecture 4: Process Management Lecture 4: Process Management (Chapters 2-3) Process: execution context of running program. A process does not equal a program! Process is an instance of a program Many copies of same program can be running

More information

Job Scheduling. CS170 Fall 2018

Job Scheduling. CS170 Fall 2018 Job Scheduling CS170 Fall 2018 What to Learn? Algorithms of job scheduling, which maximizes CPU utilization obtained with multiprogramming Select from ready processes and allocates the CPU to one of them

More information

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS Contents Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS 1.1. INTRODUCTION TO COMPUTERS... 1 1.2. HISTORY OF C & C++... 3 1.3. DESIGN, DEVELOPMENT AND EXECUTION OF A PROGRAM... 3 1.4 TESTING OF PROGRAMS...

More information

CPU Scheduling (1) CPU Scheduling (Topic 3) CPU Scheduling (2) CPU Scheduling (3) Resources fall into two classes:

CPU Scheduling (1) CPU Scheduling (Topic 3) CPU Scheduling (2) CPU Scheduling (3) Resources fall into two classes: CPU Scheduling (Topic 3) 홍성수 서울대학교공과대학전기공학부 Real-Time Operating Systems Laboratory CPU Scheduling (1) Resources fall into two classes: Preemptible: Can take resource away, use it for something else, then

More information

CS333 Intro to Operating Systems. Jonathan Walpole

CS333 Intro to Operating Systems. Jonathan Walpole CS333 Intro to Operating Systems Jonathan Walpole Threads & Concurrency 2 Threads Processes have the following components: - an address space - a collection of operating system state - a CPU context or

More information

Run-time Environments - 2

Run-time Environments - 2 Run-time Environments - 2 Y.N. Srikant Computer Science and Automation Indian Institute of Science Bangalore 560 012 NPTEL Course on Principles of Compiler Design Outline of the Lecture n What is run-time

More information

CPS221 Lecture: Threads

CPS221 Lecture: Threads Objectives CPS221 Lecture: Threads 1. To introduce threads in the context of processes 2. To introduce UML Activity Diagrams last revised 9/5/12 Materials: 1. Diagram showing state of memory for a process

More information

1. Stack overflow & underflow 2. Implementation: partially filled array & linked list 3. Applications: reverse string, backtracking

1. Stack overflow & underflow 2. Implementation: partially filled array & linked list 3. Applications: reverse string, backtracking Review for Test 2 (Chapter 6-10) Chapter 6: Template functions & classes 1) What is the primary purpose of template functions? A. To allow a single function to be used with varying types of arguments B.

More information

Operating System. Chapter 3. Process. Lynn Choi School of Electrical Engineering

Operating System. Chapter 3. Process. Lynn Choi School of Electrical Engineering Operating System Chapter 3. Process Lynn Choi School of Electrical Engineering Process Def: A process is an instance of a program in execution. One of the most profound ideas in computer science. Not the

More information

Programming Languages

Programming Languages Programming Languages Tevfik Koşar Lecture - VIII February 9 th, 2006 1 Roadmap Allocation techniques Static Allocation Stack-based Allocation Heap-based Allocation Scope Rules Static Scopes Dynamic Scopes

More information

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor. 3.Constructors and Destructors Develop cpp program to implement constructor and destructor. Constructors A constructor is a special member function whose task is to initialize the objects of its class.

More information

Linux Operating System

Linux Operating System Linux Operating System Dept. of Computer Science & Engineering 1 History Linux is a modern, free operating system based on UNIX standards. First developed as a small but self-contained kernel in 1991 by

More information

DS ata Structures Aptitude

DS ata Structures Aptitude DS ata Structures Aptitude 1. What is data structure? A data structure is a way of organizing data that considers not only the items stored, but also their relationship to each other. Advance knowledge

More information

Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux

Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux Kernel Korner AEM: A Scalable and Native Event Mechanism for Linux Give your application the ability to register callbacks with the kernel. by Frédéric Rossi In a previous article [ An Event Mechanism

More information

OPERATING SYSTEMS. Systems with Multi-programming. CS 3502 Spring Chapter 4

OPERATING SYSTEMS. Systems with Multi-programming. CS 3502 Spring Chapter 4 OPERATING SYSTEMS CS 3502 Spring 2018 Systems with Multi-programming Chapter 4 Multiprogramming - Review An operating system can support several processes in memory. While one process receives service

More information

c) A perfect ternary tree of height h? (In a ternary tree, each node may have up to three children.)

c) A perfect ternary tree of height h? (In a ternary tree, each node may have up to three children.) Spring 2007 C343 Final Name: Username: Question 1 (10 points): How many nodes can there be in: a) A complete binary tree of height h? b) A perfect binary tree of height h? c) A perfect ternary tree of

More information

Processes. CS 416: Operating Systems Design, Spring 2011 Department of Computer Science Rutgers University

Processes. CS 416: Operating Systems Design, Spring 2011 Department of Computer Science Rutgers University Processes Design, Spring 2011 Department of Computer Science Von Neuman Model Both text (program) and data reside in memory Execution cycle Fetch instruction Decode instruction Execute instruction CPU

More information

Mon Sep 17, 2007 Lecture 3: Process Management

Mon Sep 17, 2007 Lecture 3: Process Management Mon Sep 17, 2007 Lecture 3: Process Management September 19, 2007 1 Review OS mediates between hardware and user software QUIZ: Q: Name three layers of a computer system where the OS is one of these layers.

More information

CA31-1K DIS. Pointers. TA: You Lu

CA31-1K DIS. Pointers. TA: You Lu CA31-1K DIS Pointers TA: You Lu Pointers Recall that while we think of variables by their names like: int numbers; Computer likes to think of variables by their memory address: 0012FED4 A pointer is a

More information

Dynamic Memory Allocation

Dynamic Memory Allocation Dynamic Memory Allocation Lecture 15 COP 3014 Fall 2017 November 6, 2017 Allocating memory There are two ways that memory gets allocated for data storage: 1. Compile Time (or static) Allocation Memory

More information

Preview. Process Scheduler. Process Scheduling Algorithms for Batch System. Process Scheduling Algorithms for Interactive System

Preview. Process Scheduler. Process Scheduling Algorithms for Batch System. Process Scheduling Algorithms for Interactive System Preview Process Scheduler Short Term Scheduler Long Term Scheduler Process Scheduling Algorithms for Batch System First Come First Serve Shortest Job First Shortest Remaining Job First Process Scheduling

More information

Process Scheduling Part 2

Process Scheduling Part 2 Operating Systems and Computer Networks Process Scheduling Part 2 pascal.klein@uni-due.de Alexander Maxeiner, M.Sc. Faculty of Engineering Agenda Process Management Time Sharing Synchronization of Processes

More information

R13. II B. Tech I Semester Supplementary Examinations, May/June DATA STRUCTURES (Com. to ECE, CSE, EIE, IT, ECC)

R13. II B. Tech I Semester Supplementary Examinations, May/June DATA STRUCTURES (Com. to ECE, CSE, EIE, IT, ECC) SET - 1 II B. Tech I Semester Supplementary Examinations, May/June - 2016 PART A 1. a) Write a procedure for the Tower of Hanoi problem? b) What you mean by enqueue and dequeue operations in a queue? c)

More information

Main Points of the Computer Organization and System Software Module

Main Points of the Computer Organization and System Software Module Main Points of the Computer Organization and System Software Module You can find below the topics we have covered during the COSS module. Reading the relevant parts of the textbooks is essential for a

More information

Index. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309

Index. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309 A Arithmetic operation floating-point arithmetic, 11 12 integer numbers, 9 11 Arrays, 97 copying, 59 60 creation, 48 elements, 48 empty arrays and vectors, 57 58 executable program, 49 expressions, 48

More information

Arrays and Linked Lists

Arrays and Linked Lists Arrays and Linked Lists Abstract Data Types Stacks Queues Priority Queues and Deques John Edgar 2 And Stacks Reverse Polish Notation (RPN) Also known as postfix notation A mathematical notation Where every

More information

Compiler Construction

Compiler Construction Compiler Construction Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ss-16/cc/ Recap: Static Data Structures Outline of Lecture 18 Recap:

More information

EC8393FUNDAMENTALS OF DATA STRUCTURES IN C Unit 3

EC8393FUNDAMENTALS OF DATA STRUCTURES IN C Unit 3 UNIT 3 LINEAR DATA STRUCTURES 1. Define Data Structures Data Structures is defined as the way of organizing all data items that consider not only the elements stored but also stores the relationship between

More information

Cpt S 223 Course Overview. Cpt S 223, Fall 2007 Copyright: Washington State University

Cpt S 223 Course Overview. Cpt S 223, Fall 2007 Copyright: Washington State University Cpt S 223 Course Overview 1 Course Goals Learn about new/advanced data structures Be able to make design choices on the suitable data structure for different application/problem needs Analyze (objectively)

More information

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University CS 333 Introduction to Operating Systems Class 3 Threads & Concurrency Jonathan Walpole Computer Science Portland State University 1 The Process Concept 2 The Process Concept Process a program in execution

More information

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto Ricardo Rocha Department of Computer Science Faculty of Sciences University of Porto Slides based on the book Operating System Concepts, 9th Edition, Abraham Silberschatz, Peter B. Galvin and Greg Gagne,

More information

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Scheduling

CSE120 Principles of Operating Systems. Prof Yuanyuan (YY) Zhou Scheduling CSE120 Principles of Operating Systems Prof Yuanyuan (YY) Zhou Scheduling Announcement l Homework 2 due on October 26th l Project 1 due on October 27th 2 Scheduling Overview l In discussing process management

More information

Advances in Programming Languages: Regions

Advances in Programming Languages: Regions Advances in Programming Languages: Regions Allan Clark and Stephen Gilmore The University of Edinburgh February 22, 2007 Introduction The design decision that memory will be managed on a per-language basis

More information

CHAPTER 2: PROCESS MANAGEMENT

CHAPTER 2: PROCESS MANAGEMENT 1 CHAPTER 2: PROCESS MANAGEMENT Slides by: Ms. Shree Jaswal TOPICS TO BE COVERED Process description: Process, Process States, Process Control Block (PCB), Threads, Thread management. Process Scheduling:

More information

Advanced Operating Systems (CS 202) Scheduling (1)

Advanced Operating Systems (CS 202) Scheduling (1) Advanced Operating Systems (CS 202) Scheduling (1) Today: CPU Scheduling 2 The Process The process is the OS abstraction for execution It is the unit of execution It is the unit of scheduling It is the

More information

Lecture Topics. Announcements. Today: Uniprocessor Scheduling (Stallings, chapter ) Next: Advanced Scheduling (Stallings, chapter

Lecture Topics. Announcements. Today: Uniprocessor Scheduling (Stallings, chapter ) Next: Advanced Scheduling (Stallings, chapter Lecture Topics Today: Uniprocessor Scheduling (Stallings, chapter 9.1-9.3) Next: Advanced Scheduling (Stallings, chapter 10.1-10.4) 1 Announcements Self-Study Exercise #10 Project #8 (due 11/16) Project

More information

B. V. Patel Institute of Business Management, Computer &Information Technology, UTU

B. V. Patel Institute of Business Management, Computer &Information Technology, UTU BCA-3 rd Semester 030010304-Fundamentals Of Operating Systems Unit: 1 Introduction Short Answer Questions : 1. State two ways of process communication. 2. State any two uses of operating system according

More information

Scheduling. Scheduling. Scheduling. Scheduling Criteria. Priorities. Scheduling

Scheduling. Scheduling. Scheduling. Scheduling Criteria. Priorities. Scheduling scheduling: share CPU among processes scheduling should: be fair all processes must be similarly affected no indefinite postponement aging as a possible solution adjust priorities based on waiting time

More information

Borland 105, 278, 361, 1135 Bounded array Branch instruction 7 break statement 170 BTree 873 Building a project 117 Built in data types 126

Borland 105, 278, 361, 1135 Bounded array Branch instruction 7 break statement 170 BTree 873 Building a project 117 Built in data types 126 INDEX = (assignment operator) 130, 816 = 0 (as function definition) 827 == (equality test operator) 146! (logical NOT operator) 159!= (inequality test operator) 146 #define 140, 158 #include 100, 112,

More information

Operating Systems. Process scheduling. Thomas Ropars.

Operating Systems. Process scheduling. Thomas Ropars. 1 Operating Systems Process scheduling Thomas Ropars thomas.ropars@univ-grenoble-alpes.fr 2018 References The content of these lectures is inspired by: The lecture notes of Renaud Lachaize. The lecture

More information

Random-Number Generation

Random-Number Generation Random-Number Generation Overview Desired properties of a good generator Linear-congruential generators Tausworthe generators Survey of random number generators Seed selection Myths about random number

More information

Pointers, Dynamic Data, and Reference Types

Pointers, Dynamic Data, and Reference Types Pointers, Dynamic Data, and Reference Types Review on Pointers Reference Variables Dynamic Memory Allocation The new operator The delete operator Dynamic Memory Allocation for Arrays 1 C++ Data Types simple

More information

The basic operations defined on a symbol table include: free to remove all entries and free the storage of a symbol table

The basic operations defined on a symbol table include: free to remove all entries and free the storage of a symbol table SYMBOL TABLE: A symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is associated with information relating

More information

MODERN OPERATING SYSTEMS. Chapter 3 Memory Management

MODERN OPERATING SYSTEMS. Chapter 3 Memory Management MODERN OPERATING SYSTEMS Chapter 3 Memory Management No Memory Abstraction Figure 3-1. Three simple ways of organizing memory with an operating system and one user process. Base and Limit Registers Figure

More information

Simplest version of DayOfYear

Simplest version of DayOfYear Reminder from last week: Simplest version of DayOfYear class DayOfYear { public: void output(); int month; int day; }; Like a struct with an added method All parts public Clients access month, day directly

More information

CHAPTER 4 FUNCTIONS. Dr. Shady Yehia Elmashad

CHAPTER 4 FUNCTIONS. Dr. Shady Yehia Elmashad CHAPTER 4 FUNCTIONS Dr. Shady Yehia Elmashad Outline 1. Introduction 2. Program Components in C++ 3. Math Library Functions 4. Functions 5. Function Definitions 6. Function Prototypes 7. Header Files 8.

More information

3.1 Introduction. Computers perform operations concurrently

3.1 Introduction. Computers perform operations concurrently PROCESS CONCEPTS 1 3.1 Introduction Computers perform operations concurrently For example, compiling a program, sending a file to a printer, rendering a Web page, playing music and receiving e-mail Processes

More information

CS 326: Operating Systems. CPU Scheduling. Lecture 6

CS 326: Operating Systems. CPU Scheduling. Lecture 6 CS 326: Operating Systems CPU Scheduling Lecture 6 Today s Schedule Agenda? Context Switches and Interrupts Basic Scheduling Algorithms Scheduling with I/O Symmetric multiprocessing 2/7/18 CS 326: Operating

More information

FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 ( Marks: 1 ) - Please choose one The data of the problem is of 2GB and the hard

FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 ( Marks: 1 ) - Please choose one The data of the problem is of 2GB and the hard FINALTERM EXAMINATION Fall 2009 CS301- Data Structures Question No: 1 The data of the problem is of 2GB and the hard disk is of 1GB capacity, to solve this problem we should Use better data structures

More information

Optimal Algorithm. Replace page that will not be used for longest period of time Used for measuring how well your algorithm performs

Optimal Algorithm. Replace page that will not be used for longest period of time Used for measuring how well your algorithm performs Optimal Algorithm Replace page that will not be used for longest period of time Used for measuring how well your algorithm performs page 1 Least Recently Used (LRU) Algorithm Reference string: 1, 2, 3,

More information

Example Sheet for Operating Systems I (Part IA)

Example Sheet for Operating Systems I (Part IA) Example Sheet for Operating Systems I (Part IA) 1. (a) Modern computers store data values in a variety of memories, each with differing size and access speeds. Briefly describe each of the following: i.

More information

Lecture 3: C Programm

Lecture 3: C Programm 0 3 E CS 1 Lecture 3: C Programm ing Reading Quiz Note the intimidating red border! 2 A variable is: A. an area in memory that is reserved at run time to hold a value of particular type B. an area in memory

More information

Example Sheet for Operating Systems I (Part IA)

Example Sheet for Operating Systems I (Part IA) Example Sheet for Operating Systems I (Part IA) Solutions for Supervisors Michaelmas 2018 / Last Updated: April 5, 2018 Note these may be updated in the light of feedback. (Check update time.) 1 Processes

More information

Agenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2

Agenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Lecture 3: Processes Agenda Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Process in General 3.3 Process Concept Process is an active program in execution; process

More information

Logistics. Half of the people will be in Wu & Chen The other half in DRLB A1 Will post past midterms tonight (expect similar types of questions)

Logistics. Half of the people will be in Wu & Chen The other half in DRLB A1 Will post past midterms tonight (expect similar types of questions) Data Structures Logistics Midterm next Monday Half of the people will be in Wu & Chen The other half in DRLB A1 Will post past midterms tonight (expect similar types of questions) Review on Wednesday Come

More information

CS510 Operating System Foundations. Jonathan Walpole

CS510 Operating System Foundations. Jonathan Walpole CS510 Operating System Foundations Jonathan Walpole The Process Concept 2 The Process Concept Process a program in execution Program - description of how to perform an activity instructions and static

More information

Interactive Scheduling

Interactive Scheduling Interactive Scheduling 1 Two Level Scheduling Interactive systems commonly employ two-level scheduling CPU scheduler and Memory Scheduler Memory scheduler was covered in VM We will focus on CPU scheduling

More information

Two Level Scheduling. Interactive Scheduling. Our Earlier Example. Round Robin Scheduling. Round Robin Schedule. Round Robin Schedule

Two Level Scheduling. Interactive Scheduling. Our Earlier Example. Round Robin Scheduling. Round Robin Schedule. Round Robin Schedule Two Level Scheduling Interactive Scheduling Interactive systems commonly employ two-level scheduling CPU scheduler and Memory Scheduler Memory scheduler was covered in VM We will focus on CPU scheduling

More information

Initializing and Finalizing Objects

Initializing and Finalizing Objects 4 Initializing and Finalizing Objects 147 Content Initializing and Finalizing Objects 4 Constructors Default Constructor Copy Constructor Destructor 148 Initializing Objects: Constructors Initializing

More information