Large Software System Programming Project CPSC410 Operating Systems. Loman: Distributed Traveling Salesman Utilizing Simulated Annealing Schedules

Size: px
Start display at page:

Download "Large Software System Programming Project CPSC410 Operating Systems. Loman: Distributed Traveling Salesman Utilizing Simulated Annealing Schedules"

Transcription

1 Large Software System Programming Project CPSC410 Operating Systems Loman: Distributed Traveling Salesman Utilizing Simulated Annealing Schedules FINAL REPORT Principle Investigators Christopher Hewitt Martin Press

2 (1) Executive Summary The Loman Project attempts to find approximate solutions to the classical NPcomplete problem of traveling salesmen utilizing a distributed approach. A cluster was created using SPARC Solaris machines running a combination of C and Java code to provide a simulation environment. A variety of services were also installed and configured such as LDAP, DNS, NFS to allow for a distributed environment. Communication between nodes utilized OpenMPI libraries for message passing. (2) System Selection Traveling Salesman is a classic example of an NP complete problem in the field of computer science [5]. The problem involves finding the optimal path of visiting n cities without visiting any cities twice. The only known solution is trying all possible permutations of travel routes between cities. While it possible to solve this problem using brute force techniques, in all practicality finding a best solution through brute force only works for small values of n. Big O for the Traveling Salesman problem has been computed as O(N 1)!, thus showing the NP completeness of the problem at hand. A reasonable approximation can, however, be computed using a variety of techniques, such as simulated annealing. Loman is an attempt to bring the simulated annealing method of solving the Traveling Salesman problem to a distributed environment. The project is aptly named after the main character of the classic American stage play Death of a Salesman by Arthur Miller. Loman s computational engine is portable and can be further extended to solve a variety of NP complete problems. Through manipulating the fitness function and encoding methods used in the problem, problems such as the Four Color Theorem can be demonstrated. Loman could also be used to compute optimal flight paths when certain destinations are required as well as demonstrate the use of network routing algorithms. Development, implementation, and use of a clustering environment provides hands on experience with a multitude of operating system principles including security, networking, batch processing, access control, and priority queues. Loman additionally focuses on other operating system principles, such as multithreading, multiprocessing, and user interface. (3) System Analysis Simulated annealing is a probabilistic algorithm, which utilizes a cooling scheduling for decreasing probability for choosing less optimal routes. Through using probability to accept less efficient routes, the likelihood of the simulation getting stuck in a local minimum route is greatly reduced. Greedy algorithms, unlike simulated annealing, have a large potential to become stuck in local minimum solutions and not reach a global optimal solution. Some of the more common cooling schedules include exponential,

3 logarithmic, and linear cooling. Heuristics are also included to make the algorithm more likely to accept smaller negative changes and increase the likelihood of positive changes in the solution. The method investigated in this project is the Monte Carlo Metropolis method, which uses the probability equation [2]: P = e (C 1 C 2 ) / T Where P is the probability of accepting a new change in route, C 1 is the new route, and C 2 is the old route. Lastly, T is the temperature of the simulation and e is the base of the natural logarithm. To find the optimal cooling schedule for the simulation, a distributed computing cluster was built using 64 bit SPARC computer processors utilizing Sun Microsystem s Solaris 10 operating system and OpenMPI interface libraries. OpenMPI is the most often used implementation of the MPI 2 specifications for the Message Passing Interface [1]. OpenMPI is typically used in scientific applications demanding massive parallelism such as computational fluid dynamics and particle physics simulation. OpenMPI generates processes on cluster worker nodes, which are computational member computers of the cluster. The method which OpenMPI generates tasks to worker nodes is similar to how UNIX systems implement the fork() system call on single computer processors. Simulated annealing requires a pseudorandom initialization of paths connecting cities. Utilizing a distributed environment such as a cluster allows a node to have its own unique permutation, thus increasing the likelihood that any single node will converge to an optimal solution faster. Loman will compare the different solutions generated by each node in the cluster and return the most efficient solution to the user. Through a variety of annealing schedules employed on different cluster worker nodes, it is expected that an exponentially cooling function will perform the best for the user specified time interval [3]. It is also expected that the larger the number of towns simulated the longer it will take for any given worker node to converge to a reasonable solution. Utilizing parallelism of a cluster, reasonable solutions are likely to be found sooner with an increasing number of worker nodes. It is believed that the user interface will allow seamless integration between job submissions and distributed computation. Integration will be accomplished through the development of a threaded Java front end and a multi process computational engine written in C. Inter process communication will be handled through the use of OpenMPI libraries. Cluster Deployment For ease of implementation, the class of cluster utilized for Loman is a Beowolf cluster. A Beowolf cluster is configured through dedicating a singular node as head of the cluster. Users of the Beowolf cluster submit jobs through a scheduling system implemented on the head node, which delegates tasks to computational worker nodes.

4 Remotely, the cluster is only accessible through the head node. Services enabled on the head node, including DHCP, LDAP, DNS, and NFS, allow each worker node to have access to shared filesystem data, account information, and automatically configure network access[4]. Services DHCP, or Dynamic Host Configuration Protocol, provides automatically assigned network IP addresses to each worker node. This prevents address conflicts and enables easy setup and configuration of cluster networking properties. LDAP, or Lightweight Directory Access Protocol, provides a centralized database for user account information across all cluster nodes. DNS, or Domain Name Service, provides assigned hostnames to each worker nodes on the cluster. Any worker node should not only be accessible through IP address, but also an easy to remember hostname. NFS, or Network File System, provides shared user account home directories and computational executables and libraries for use across the clustering environment. (4) System Design GUI Design The graphical user interface was created in a modular fashion to promote encapsulation and cohesion within objects managed by the interface. Three different objects were created in the development of Loman s graphical user interface: Loman, RoutePanel, and Town. The Loman object is the heart of user interaction. It provides all the necessities for creation and execution of the simulation. Querying the user, the Loman object asks for the number of towns in simulation, the minimal distance between towns. It also allows the user to input a maximum allowed duration of simulation time in milliseconds. The simulation will then run based on the Sun Microsystems Solaris C libraries operating under the head node of the segfault cluster, aptly named gomez. The Loman object is also responsible for the creation and display of the RoutePanel object. The RoutePanel object is responsible for pseudo randomly creating the towns based on the input parameters from the Loman object. It is also accountable for displaying calculated routes to the user by the underlying worker nodes. When the towns are created, it produces an input.txt file used for communication between the distributed OpenMPI C program and the Java graphical user interface.

5 The file produced has the following format: input.txt <n number of towns> <duration of simulation in milliseconds> <X, Y coordinate of town 1> <X, Y coordinate of town n> Once the file is output, the OpenMPI process is spawned on the head node of the cluster. To check if the processing is complete, the RoutePanel object checks if the output file exists in the current directory. If this file does not exist, the current thread of the graphical user interface sleeps for one thousand milliseconds. The time which the thread waits allows the graphical user interface to be constantly redrawn by the operating system to give the illusion that the graphical user interface is, in fact, always active. Once the file is located, the file is quickly read and promptly deleted. Deletion of the output file ensures that in sequential simulation executions, the old output file is not mistaken for the results of a simulation or overwritten. The output file is described by the following format: output.txt <n number of towns> <town index 1> <town index 2> <town index n> Each town index corresponds with a Town object within the RoutePanel object. This list of indexes gives the order of the solution from the OpenMPI worker node programs. Once the file is fully read, the resulting path is displayed to the user one link at a time. The overall distance traveled by the salesman is also displayed to give the user to provide a sense of reference when comparing path results of other routes. A detailed file comparing the results of each worker node is also created and accessible through the Detailed Results feature of RoutePanel, which is only accessible when a solution has been found. The routes are displayed to the user in different colors.

6 The final object within the scope of Project Loman s user interface is the Town object. This object encapsulates the X,Y coordinates of a town and incorporates the underlying drawing mechanisms of routes and the towns themselves. This object also incorporates the Java tostring() method to conveniently display a town s coordinates in the input.txt file. The Town object is stored within an array of other Town objects within the RoutePanel object. Town color can also be specified in the Town constructor for altering its visual appearance upon the RoutePanel. Backend Design Since each program is identical in source code due to the nature of OpenMPI, the first step of the backend is to identify which node the program is actually executing on. If the CPU ID is 0, then the executor of the backend is indeed the head node and subsequently has no computational responsibilities. Instead, the process will read the input.txt file generated by the graphical user interface in the working directory. Once fully processed and stored within linear arrays, an MPI send message is sent, containing the size of the array and the arrays containing X,Y coordinates. During the initialization of the non head nodes, the first executable statement is an MPI receive message, which forces each worker node to wait until the message is sent by the head node. Each worker node then processes the traveling salesman problem with its own unique annealing schedule based on its CPU ID number. Once the worker nodes have completed the given iteration count, it sends back the best solution with an MPI send command. During this time period, the head node is waiting for all worker nodes to submit their solutions. Only when all worker nodes have reported back with a solution is the output.txt generated, along with detailed.txt. All the worker nodes processes are then terminated to conserve resources and free the resources up for another simulation. In the unlikely situation that all jobs need to ended by the graphical user interface, a special text file is written to halt all processes. The head node constantly checks for the existence of this file and will promptly message all worker nodes to quit their tasks and return the current solution. Solutions, however, are not guaranteed to be close to optimal as the simulation has likely not processed for durations long enough for a reasonable solution. An output.txt file, however, will still be created and gratify the user with an attempted solution. Overall, the backend utilizes efficient coding structures by not utilizing objects. This makes it easier to pass via OpenMPI as well as greatly simplifying the underlying code.

7 User Interface Demonstration

8 Application Flow Diagram Produce Consume Inter process Communication Termination Java Execution GUI (Head Node) ()() Configuration File Output Results File Spawn Instance of OpenMPI Controller (Head Node) (Worker Node 1) (Worker Node 2) (Worker Node n)

9 (5) Operating System Techniques A variety of operating systems techniques are employed within the Loman project. One technique inter process communication is needed for communication between jobs in the system. Job scheduling is yet another technique that is used for distributing where jobs should go within in cluster. Files are also created within Loman so file management is also used. Lastly, threading is needed within the user interface for the client. The following sections provide details of the use and implementation of these operating system techniques within the Loman Project. (6) Significant points of Operating System Techniques In Loman each solution is solved independently on each node of the Segfault Cluster. However it is impractical to copy files from each node for the input deck that is created on the head node. Also files may already exist from older input decks and thus there may be write permission issues on the worker nodes. Secondly, each processes needs to be able to communication with the head node for the appropriate termination condition. Therefore a form of interprocess communication must take place between the nodes of the worker and head node within the Loman system. Job scheduling is also a significant issue within the Loman project. Without a proper scheduler within Loman there may load balancing issues. If the nodes are not properly balanced then it may take longer for single node to converge to a solution. This is due because more than one process would be competing for resources such as memory or processor time. Also the annealing type must be distributed correctly because some routes will converge faster on different annealing types. They must therefore be evenly distributed for all worker nodes available. The concept of file management is fundamentally important within the Loman Project because the program would otherwise be susceptible to accepting erroneous jobs and other data which would yield results inaccurately. These files are used for interfacing between Java and C. This communication would otherwise be extremely difficult using the Java Native Interface. Instead, files are read and written to control the action of the C code as well as reporting results back to the graphical client. A way to protect files from other users must be achieved to ensure proper protection. In addition, the management of old input and output files must be dealt with in order to ensure that the current one being read is the most recent Threading is also extremely important within the Java client of Loman. The user interface uses a variety of sleeps when waiting on a solution. If a single thread were used within the client, it would appear to be unresponsive to the user. This would make it impossible to halt a job within the Loman system. This makes threading fundamentally important with the project as a whole since some solutions take a very long time to properly converge. Users may not wish to wait for such a long duration and without a halting feature they would be forced to wait.

10 (7) Solutions to points of Operating System Techniques The issues of interprocess communication can easily be solved by implementing a semaphore to let the other processes know when the head node finds the solution and when the maximum iteration count has been achieved. This same semaphore can also be used when an emergency halt has been issued from the graphical user interface. The notification lets the nodes know to send back the data to the head node and then promptly exit, freeing up valuable system resources on the worker node. Semaphores are also used to block the process of the worker node until all the data has been sent in a single communication to and from the worker and head node. This insures that data is completely sent before a solution is attempted. The issue of scheduling can simply be solved using a first come first basis. Each node of the cluster is given one job. If more jobs are needed the there are nodes then each node is given another job. The process is repeated until all jobs are given out by the Loman system. This ensures that there is a balanced load and allows faster convergence to solutions. Using this methodology, it is possible to achieve a one to one ration of nodes to jobs which is optimal. File management issues are addressed by using built in library calls within Java and C. These allow permissions to be set on a file basis to allow only the Loman System to have access to the file; this prevents users from changing the data within Loman. Secondly, library calls are used for file deletion. Once the input and output files are created in Loman and read, they a promptly deleted using these calls. This ensures the current file being read by the system is the most recently created one. Multi Threading is a solution used to address the responsiveness problem of the user interface. A thread is created whenever a sleep is needed when waiting on solution file. This allows the user interface to be able to accept user input from I/O devices such as the mouse and keyboard which ultimately allow for the user to be able to halt jobs within the Loman system. (8) Methodology and Technology of Operating System Techniques The Java client utilizes multiple threads for updating the graphical user interface and to check for results from the head node of the Segfault Cluster. This action is implemented by using the Runnable interface in Java which allows for the creation of independent threads within the system. Code fragments within the run method of the class which extend Runnable will then be executed as a separate thread within the Java Virtual Machine on runtime. Two different threads are created in the graphical user interface. Both threads are used to allow for the user interface to maintain interactive response. The threads are terminated once a solution file is found. Resources are then freed by the garbage collector. These threads can then be created when a new solution is requested to be solved by the end user. Duplicate threads are prevented by a simple

11 boolean check to ensure users do not try to use up all of the systems resources. This action is accomplished by spawning multiple solution checking threads for a single solution. OpenMPI commands are utilized for inter process communication between different nodes of the Segfault Cluster. Each process has send and receive commands which act as semaphores for the critical sections of the code. These critical sections require synchronization for sending and receiving data. These synchronizations are mainly used when first dispatching a job to each individual worker node. Before computation of an optimal route is allowed to start, all nodes must be fed the two integer work arrays. These arrays are used for the x and y location in the Cartesian coordinate plane of the towns. After the data is transmitted between nodes, each worker node must check the status of a halting semaphore which belongs to the head node. This action is performed after each iteration of the simulation. If the value of the semaphore becomes one, an emergency halt has been issued by the user. Upon this event, all jobs must promptly report the results at the end of the current iteration. Data is then sent back to the head node where it is gathered into a large work array. The contents of this work array are placed into a detailed results text file. The graphical client application reads the results of this detailed text file and draws the necessary route connections to the route panel object. Job scheduling in Loman is handled by the Sun Grid Engine which is installed on the Segfualt cluster. It was manually configured to use the First Come First Serve job algorithm to ensure that a balanced load is achieved on runtime. All processes have the ability to choose the type of annealing schedule used for the job. The OpenMPI Processor ID, however, is used to select the next unused annealing schedules. In the cases where there are more worker nodes than schedules, a schedule is repeated. This is allowed as the worker node will have a different randomization of the route for the initial state, which may provide a better solution over the given time interval. The file management is handled by the file remove and file delete commands which are within C and Java respectively. These are found within the file and stdio libraries installed on the cluster. These system calls will delete the file to prevent any erroneous versions existing within the system. File management is further implement by limiting file creation to a single directory where the MPI back end exists. Users do not have permission to edit objects in the directory by default. This ensures that only privileged processes such as the Loman client can create or edit files within the directory.

12 (9) References 1. "FAQ: General Information." Open MPI. Retrieved September 15, 2008 < mpi.org/faq/?category=general>. 2. Luke, B. (n.d) Metropolis Monte Carlo Simulation. Retrieved September 15, 2008 < 3. Nouraniy Y. and Andresenz B.. (1998). A comparison of simulated annealing cooling strategies. Retrieved September 15, 2008 < /31/41/011/a84109.pdf?requestid=5cfd a 4c8a 98fac3ff22808c13>. 4. System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP). Sun Microsystems. Retrieved September 15, 2008 < 4556/ pdf>. 5. "The Problem." The Traveling Salesman Problem. <

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

SNS COLLEGE OF ENGINEERING

SNS COLLEGE OF ENGINEERING SNS COLLEGE OF ENGINEERING Coimbatore. Department of Computer Science and Engineering Question Bank- Even Semester 2015-2016 CS6401 OPERATING SYSTEMS Unit-I OPERATING SYSTEMS OVERVIEW 1. Differentiate

More information

Processes The Process Model. Chapter 2 Processes and Threads. Process Termination. Process States (1) Process Hierarchies

Processes The Process Model. Chapter 2 Processes and Threads. Process Termination. Process States (1) Process Hierarchies Chapter 2 Processes and Threads Processes The Process Model 2.1 Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling Multiprogramming of four programs Conceptual

More information

CIS233J Java Programming II. Threads

CIS233J Java Programming II. Threads CIS233J Java Programming II Threads Introduction The purpose of this document is to introduce the basic concepts about threads (also know as concurrency.) Definition of a Thread A thread is a single sequential

More information

Processes The Process Model. Chapter 2. Processes and Threads. Process Termination. Process Creation

Processes The Process Model. Chapter 2. Processes and Threads. Process Termination. Process Creation Chapter 2 Processes The Process Model Processes and Threads 2.1 Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling Multiprogramming of four programs Conceptual

More information

Windows 7 Overview. Windows 7. Objectives. The History of Windows. CS140M Fall Lake 1

Windows 7 Overview. Windows 7. Objectives. The History of Windows. CS140M Fall Lake 1 Windows 7 Overview Windows 7 Overview By Al Lake History Design Principles System Components Environmental Subsystems File system Networking Programmer Interface Lake 2 Objectives To explore the principles

More information

Announcement. Exercise #2 will be out today. Due date is next Monday

Announcement. Exercise #2 will be out today. Due date is next Monday Announcement Exercise #2 will be out today Due date is next Monday Major OS Developments 2 Evolution of Operating Systems Generations include: Serial Processing Simple Batch Systems Multiprogrammed Batch

More information

Operating System. Chapter 4. Threads. Lynn Choi School of Electrical Engineering

Operating System. Chapter 4. Threads. Lynn Choi School of Electrical Engineering Operating System Chapter 4. Threads Lynn Choi School of Electrical Engineering Process Characteristics Resource ownership Includes a virtual address space (process image) Ownership of resources including

More information

Exercise (could be a quiz) Solution. Concurrent Programming. Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - IV Threads

Exercise (could be a quiz) Solution. Concurrent Programming. Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - IV Threads Exercise (could be a quiz) 1 2 Solution CSE 421/521 - Operating Systems Fall 2013 Lecture - IV Threads Tevfik Koşar 3 University at Buffalo September 12 th, 2013 4 Roadmap Threads Why do we need them?

More information

PROCESS MANAGEMENT. Operating Systems 2015 Spring by Euiseong Seo

PROCESS MANAGEMENT. Operating Systems 2015 Spring by Euiseong Seo PROCESS MANAGEMENT Operating Systems 2015 Spring by Euiseong Seo Today s Topics Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication

More information

Operating Systems. Computer Science & Information Technology (CS) Rank under AIR 100

Operating Systems. Computer Science & Information Technology (CS) Rank under AIR 100 GATE- 2016-17 Postal Correspondence 1 Operating Systems Computer Science & Information Technology (CS) 20 Rank under AIR 100 Postal Correspondence Examination Oriented Theory, Practice Set Key concepts,

More information

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

For use by students enrolled in #71251 CSE430 Fall 2012 at Arizona State University. Do not use if not enrolled. Operating Systems: Internals and Design Principles Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles The basic idea is that the several components

More information

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

Chapter 3: Processes. Operating System Concepts 8 th Edition, Chapter 3: Processes, Silberschatz, Galvin and Gagne 2009 Chapter 3: Processes Process Concept Process Scheduling Operations on Processes Interprocess Communication 3.2 Silberschatz, Galvin and Gagne 2009

More information

Threads Chapter 5 1 Chapter 5

Threads Chapter 5 1 Chapter 5 Threads Chapter 5 1 Chapter 5 Process Characteristics Concept of Process has two facets. A Process is: A Unit of resource ownership: a virtual address space for the process image control of some resources

More information

2017 Pearson Educa2on, Inc., Hoboken, NJ. All rights reserved.

2017 Pearson Educa2on, Inc., Hoboken, NJ. All rights reserved. Operating Systems: Internals and Design Principles Chapter 4 Threads Ninth Edition By William Stallings Processes and Threads Resource Ownership Process includes a virtual address space to hold the process

More information

Module 4: Processes. Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess Communication

Module 4: Processes. Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess Communication Module 4: Processes Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess Communication Operating System Concepts 4.1 Process Concept An operating system executes

More information

Module 4: Processes. Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess Communication

Module 4: Processes. Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess Communication Module 4: Processes Process Concept Process Scheduling Operation on Processes Cooperating Processes Interprocess Communication 4.1 Process Concept An operating system executes a variety of programs: Batch

More information

Process Characteristics

Process Characteristics Threads 1 Chapter 4 2 Process Characteristics We ve mentioned a process as having two characteristics Unit of resource ownership: processes have their own dedicated memory address space processes temporarily

More information

CHAPTER-1: INTRODUCTION TO OPERATING SYSTEM:

CHAPTER-1: INTRODUCTION TO OPERATING SYSTEM: CHAPTER-1: INTRODUCTION TO OPERATING SYSTEM: TOPICS TO BE COVERED 1.1 Need of Operating System 1.2 Evolution of os 1.3 operating system i. Batch ii. iii. iv. Multiprogramming Time sharing Real time v.

More information

QUESTION BANK UNIT I

QUESTION BANK UNIT I QUESTION BANK Subject Name: Operating Systems UNIT I 1) Differentiate between tightly coupled systems and loosely coupled systems. 2) Define OS 3) What are the differences between Batch OS and Multiprogramming?

More information

Operating Systems 2 nd semester 2016/2017. Chapter 4: Threads

Operating Systems 2 nd semester 2016/2017. Chapter 4: Threads Operating Systems 2 nd semester 2016/2017 Chapter 4: Threads Mohamed B. Abubaker Palestine Technical College Deir El-Balah Note: Adapted from the resources of textbox Operating System Concepts, 9 th edition

More information

Course: Operating Systems Instructor: M Umair. M Umair

Course: Operating Systems Instructor: M Umair. M Umair Course: Operating Systems Instructor: M Umair Process The Process A process is a program in execution. A program is a passive entity, such as a file containing a list of instructions stored on disk (often

More information

Lecture 17: Threads and Scheduling. Thursday, 05 Nov 2009

Lecture 17: Threads and Scheduling. Thursday, 05 Nov 2009 CS211: Programming and Operating Systems Lecture 17: Threads and Scheduling Thursday, 05 Nov 2009 CS211 Lecture 17: Threads and Scheduling 1/22 Today 1 Introduction to threads Advantages of threads 2 User

More information

CS 326: Operating Systems. Process Execution. Lecture 5

CS 326: Operating Systems. Process Execution. Lecture 5 CS 326: Operating Systems Process Execution Lecture 5 Today s Schedule Process Creation Threads Limited Direct Execution Basic Scheduling 2/5/18 CS 326: Operating Systems 2 Today s Schedule Process Creation

More information

MultiThreading. Object Orientated Programming in Java. Benjamin Kenwright

MultiThreading. Object Orientated Programming in Java. Benjamin Kenwright MultiThreading Object Orientated Programming in Java Benjamin Kenwright Outline Review Essential Java Multithreading Examples Today s Practical Review/Discussion Question Does the following code compile?

More information

Processes and Threads. Processes: Review

Processes and Threads. Processes: Review Processes and Threads Processes and their scheduling Threads and scheduling Multiprocessor scheduling Distributed Scheduling/migration Lecture 3, page 1 Processes: Review Multiprogramming versus multiprocessing

More information

Determining the Number of CPUs for Query Processing

Determining the Number of CPUs for Query Processing Determining the Number of CPUs for Query Processing Fatemah Panahi Elizabeth Soechting CS747 Advanced Computer Systems Analysis Techniques The University of Wisconsin-Madison fatemeh@cs.wisc.edu, eas@cs.wisc.edu

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

CUDA GPGPU Workshop 2012

CUDA GPGPU Workshop 2012 CUDA GPGPU Workshop 2012 Parallel Programming: C thread, Open MP, and Open MPI Presenter: Nasrin Sultana Wichita State University 07/10/2012 Parallel Programming: Open MP, MPI, Open MPI & CUDA Outline

More information

Concurrent Programming

Concurrent Programming Concurrency Concurrent Programming A sequential program has a single thread of control. Its execution is called a process. A concurrent program has multiple threads of control. They may be executed as

More information

Distributed Systems CSCI-B 534/ENGR E-510. Spring 2019 Instructor: Prateek Sharma

Distributed Systems CSCI-B 534/ENGR E-510. Spring 2019 Instructor: Prateek Sharma Distributed Systems CSCI-B 534/ENGR E-510 Spring 2019 Instructor: Prateek Sharma Two Generals Problem Two Roman Generals want to co-ordinate an attack on the enemy Both must attack simultaneously. Otherwise,

More information

Chapter 5: Processes & Process Concept. Objectives. Process Concept Process Scheduling Operations on Processes. Communication in Client-Server Systems

Chapter 5: Processes & Process Concept. Objectives. Process Concept Process Scheduling Operations on Processes. Communication in Client-Server Systems Chapter 5: Processes Chapter 5: Processes & Threads Process Concept Process Scheduling Operations on Processes Interprocess Communication Communication in Client-Server Systems, Silberschatz, Galvin and

More information

Unit 8: Threads. Prepared by: Dr. Abdallah Mohamed, AOU-KW Updated by Mrs. Malak EL-Amir AOU SAB Fall 14-15

Unit 8: Threads. Prepared by: Dr. Abdallah Mohamed, AOU-KW Updated by Mrs. Malak EL-Amir AOU SAB Fall 14-15 Unit 8: Threads Prepared by: Dr. Abdallah Mohamed, AOU-KW Updated by Mrs. Malak EL-Amir AOU SAB Fall 14-15 1 1. Introduction 2. Creating Threads 3. Review SAQ 2 1. Introduction Threads are separate activities

More information

Process Description and Control. Chapter 3

Process Description and Control. Chapter 3 Process Description and Control Chapter 3 Contents Process states Process description Process control Unix process management Process From processor s point of view execute instruction dictated by program

More information

Homework 2: Search and Optimization

Homework 2: Search and Optimization Scott Chow ROB 537: Learning Based Control October 16, 2017 Homework 2: Search and Optimization 1 Introduction The Traveling Salesman Problem is a well-explored problem that has been shown to be NP-Complete.

More information

Operating Systems: Internals and Design Principles. Chapter 4 Threads Seventh Edition By William Stallings

Operating Systems: Internals and Design Principles. Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles The basic idea is that the several components

More information

Threads. Threads The Thread Model (1) CSCE 351: Operating System Kernels Witawas Srisa-an Chapter 4-5

Threads. Threads The Thread Model (1) CSCE 351: Operating System Kernels Witawas Srisa-an Chapter 4-5 Threads CSCE 351: Operating System Kernels Witawas Srisa-an Chapter 4-5 1 Threads The Thread Model (1) (a) Three processes each with one thread (b) One process with three threads 2 1 The Thread Model (2)

More information

OPERATING SYSTEMS UNIT - 1

OPERATING SYSTEMS UNIT - 1 OPERATING SYSTEMS UNIT - 1 Syllabus UNIT I FUNDAMENTALS Introduction: Mainframe systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered Systems Real Time Systems Handheld Systems -

More information

IBM DB2 Query Patroller. Administration Guide. Version 7 SC

IBM DB2 Query Patroller. Administration Guide. Version 7 SC IBM DB2 Query Patroller Administration Guide Version 7 SC09-2958-00 IBM DB2 Query Patroller Administration Guide Version 7 SC09-2958-00 Before using this information and the product it supports, be sure

More information

Samuel Coolidge, Dan Simon, Dennis Shasha, Technical Report NYU/CIMS/TR

Samuel Coolidge, Dan Simon, Dennis Shasha, Technical Report NYU/CIMS/TR Detecting Missing and Spurious Edges in Large, Dense Networks Using Parallel Computing Samuel Coolidge, sam.r.coolidge@gmail.com Dan Simon, des480@nyu.edu Dennis Shasha, shasha@cims.nyu.edu Technical Report

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

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

Chapter 3: Processes. Operating System Concepts 8th Edition, Chapter 3: Processes, Administrivia Friday: lab day. For Monday: Read Chapter 4. Written assignment due Wednesday, Feb. 25 see web site. 3.2 Outline What is a process? How is a process represented? Process

More information

TANDBERG Management Suite - Redundancy Configuration and Overview

TANDBERG Management Suite - Redundancy Configuration and Overview Management Suite - Redundancy Configuration and Overview TMS Software version 11.7 TANDBERG D50396 Rev 2.1.1 This document is not to be reproduced in whole or in part without the permission in writing

More information

Processes. Process Concept

Processes. Process Concept Processes These slides are created by Dr. Huang of George Mason University. Students registered in Dr. Huang s courses at GMU can make a single machine readable copy and print a single copy of each slide

More information

OPERATING SYSTEMS. UNIT II Sections A, B & D. An operating system executes a variety of programs:

OPERATING SYSTEMS. UNIT II Sections A, B & D. An operating system executes a variety of programs: OPERATING SYSTEMS UNIT II Sections A, B & D PREPARED BY ANIL KUMAR PRATHIPATI, ASST. PROF., DEPARTMENT OF CSE. PROCESS CONCEPT An operating system executes a variety of programs: Batch system jobs Time-shared

More information

CHAPTER 6 ORTHOGONAL PARTICLE SWARM OPTIMIZATION

CHAPTER 6 ORTHOGONAL PARTICLE SWARM OPTIMIZATION 131 CHAPTER 6 ORTHOGONAL PARTICLE SWARM OPTIMIZATION 6.1 INTRODUCTION The Orthogonal arrays are helpful in guiding the heuristic algorithms to obtain a good solution when applied to NP-hard problems. This

More information

Operating Systems Overview. Chapter 2

Operating Systems Overview. Chapter 2 Operating Systems Overview Chapter 2 Operating System A program that controls the execution of application programs An interface between the user and hardware Masks the details of the hardware Layers and

More information

Configuring a Microsoft Windows 2000 DHCP and DNS Server

Configuring a Microsoft Windows 2000 DHCP and DNS Server Configuring a Microsoft Windows 2000 DHCP and DNS Server White Paper Abstract This white paper sets out to describe the steps necessary to install a Brother printer into a Windows 2000 network that is

More information

COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 3: Process. Zhi Wang Florida State University

COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 3: Process. Zhi Wang Florida State University COP 4610: Introduction to Operating Systems (Spring 2016) Chapter 3: Process Zhi Wang Florida State University Contents Process concept Process scheduling Operations on processes Inter-process communication

More information

Nimsoft Monitor. websphere Guide. v1.5 series

Nimsoft Monitor. websphere Guide. v1.5 series Nimsoft Monitor websphere Guide v1.5 series Legal Notices Copyright 2012, Nimsoft Corporation Warranty The material contained in this document is provided "as is," and is subject to being changed, without

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

Course Syllabus. Operating Systems

Course Syllabus. Operating Systems Course Syllabus. Introduction - History; Views; Concepts; Structure 2. Process Management - Processes; State + Resources; Threads; Unix implementation of Processes 3. Scheduling Paradigms; Unix; Modeling

More information

Processes. OS Structure. OS Structure. Modes of Execution. Typical Functions of an OS Kernel. Non-Kernel OS. COMP755 Advanced Operating Systems

Processes. OS Structure. OS Structure. Modes of Execution. Typical Functions of an OS Kernel. Non-Kernel OS. COMP755 Advanced Operating Systems OS Structure Processes COMP755 Advanced Operating Systems An OS has many parts. The Kernel is the core of the OS. It controls the execution of the system. Many OS features run outside of the kernel, such

More information

CS6401- Operating System QUESTION BANK UNIT-I

CS6401- Operating System QUESTION BANK UNIT-I Part-A 1. What is an Operating system? QUESTION BANK UNIT-I An operating system is a program that manages the computer hardware. It also provides a basis for application programs and act as an intermediary

More information

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4 Motivation Threads Chapter 4 Most modern applications are multithreaded Threads run within application Multiple tasks with the application can be implemented by separate Update display Fetch data Spell

More information

Cycle Sharing Systems

Cycle Sharing Systems Cycle Sharing Systems Jagadeesh Dyaberi Dependable Computing Systems Lab Purdue University 10/31/2005 1 Introduction Design of Program Security Communication Architecture Implementation Conclusion Outline

More information

The Submission Data File System Automating the Creation of CDISC SDTM and ADaM Datasets

The Submission Data File System Automating the Creation of CDISC SDTM and ADaM Datasets Paper AD-08 The Submission Data File System Automating the Creation of CDISC SDTM and ADaM Datasets Marcus Bloom, Amgen Inc, Thousand Oaks, CA David Edwards, Amgen Inc, Thousand Oaks, CA ABSTRACT From

More information

Usage of LDAP in Globus

Usage of LDAP in Globus Usage of LDAP in Globus Gregor von Laszewski and Ian Foster Mathematics and Computer Science Division Argonne National Laboratory, Argonne, IL 60439 gregor@mcs.anl.gov Abstract: This short note describes

More information

Real-time grid computing for financial applications

Real-time grid computing for financial applications CNR-INFM Democritos and EGRID project E-mail: cozzini@democritos.it Riccardo di Meo, Ezio Corso EGRID project ICTP E-mail: {dimeo,ecorso}@egrid.it We describe the porting of a test case financial application

More information

Process Description and Control. Chapter 3

Process Description and Control. Chapter 3 Process Description and Control Chapter 3 Major Requirements of an Operating System Interleave the execution of many processes to maximize processor utilization while providing reasonable response time

More information

Parallel Computing. Slides credit: M. Quinn book (chapter 3 slides), A Grama book (chapter 3 slides)

Parallel Computing. Slides credit: M. Quinn book (chapter 3 slides), A Grama book (chapter 3 slides) Parallel Computing 2012 Slides credit: M. Quinn book (chapter 3 slides), A Grama book (chapter 3 slides) Parallel Algorithm Design Outline Computational Model Design Methodology Partitioning Communication

More information

Three-Dimensional Cylindrical Model for Single-Row Dynamic Routing

Three-Dimensional Cylindrical Model for Single-Row Dynamic Routing MATEMATIKA, 2014, Volume 30, Number 1a, 30-43 Department of Mathematics, UTM. Three-Dimensional Cylindrical Model for Single-Row Dynamic Routing 1 Noraziah Adzhar and 1,2 Shaharuddin Salleh 1 Department

More information

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues 4.2 Silberschatz, Galvin

More information

CLASS: II YEAR / IV SEMESTER CSE SUBJECT CODE AND NAME: CS6401 OPERATING SYSTEMS UNIT I OPERATING SYSTEMS OVERVIEW

CLASS: II YEAR / IV SEMESTER CSE SUBJECT CODE AND NAME: CS6401 OPERATING SYSTEMS UNIT I OPERATING SYSTEMS OVERVIEW CLASS: II YEAR / IV SEMESTER CSE SUBJECT CODE AND NAME: CS6401 OPERATING SYSTEMS SYLLABUS UNIT I OPERATING SYSTEMS OVERVIEW Computer System Overview-Basic Elements, Instruction Execution, Interrupts, Memory

More information

Chapter 3 Process Description and Control

Chapter 3 Process Description and Control Operating Systems: Internals and Design Principles Chapter 3 Process Description and Control Seventh Edition By William Stallings Process Control Block Structure of Process Images in Virtual Memory How

More information

Processes Prof. James L. Frankel Harvard University. Version of 6:16 PM 10-Feb-2017 Copyright 2017, 2015 James L. Frankel. All rights reserved.

Processes Prof. James L. Frankel Harvard University. Version of 6:16 PM 10-Feb-2017 Copyright 2017, 2015 James L. Frankel. All rights reserved. Processes Prof. James L. Frankel Harvard University Version of 6:16 PM 10-Feb-2017 Copyright 2017, 2015 James L. Frankel. All rights reserved. Process Model Each process consists of a sequential program

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

Preview. The Thread Model Motivation of Threads Benefits of Threads Implementation of Thread

Preview. The Thread Model Motivation of Threads Benefits of Threads Implementation of Thread Preview The Thread Model Motivation of Threads Benefits of Threads Implementation of Thread Implement thread in User s Mode Implement thread in Kernel s Mode CS 431 Operating System 1 The Thread Model

More information

Chapter 4 Threads, SMP, and

Chapter 4 Threads, SMP, and Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 4 Threads, SMP, and Microkernels Dave Bremer Otago Polytechnic, N.Z. 2008, Prentice Hall Roadmap Threads: Resource ownership

More information

Systems I: Programming Abstractions

Systems I: Programming Abstractions Systems I: Programming Abstractions Course Philosophy: The goal of this course is to help students become facile with foundational concepts in programming, including experience with algorithmic problem

More information

Parallelizing Windows Operating System Services Job Flows

Parallelizing Windows Operating System Services Job Flows ABSTRACT SESUG Paper PSA-126-2017 Parallelizing Windows Operating System Services Job Flows David Kratz, D-Wise Technologies Inc. SAS Job flows created by Windows operating system services have a problem:

More information

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective Part II: Data Center Software Architecture: Topic 3: Programming Models CIEL: A Universal Execution Engine for

More information

Chapter 3 Processes. Process Concept. Process Concept. Process Concept (Cont.) Process Concept (Cont.) Process Concept (Cont.)

Chapter 3 Processes. Process Concept. Process Concept. Process Concept (Cont.) Process Concept (Cont.) Process Concept (Cont.) Process Concept Chapter 3 Processes Computers can do several activities at a time Executing user programs, reading from disks writing to a printer, etc. In multiprogramming: CPU switches from program to

More information

Diagram of Process State Process Control Block (PCB)

Diagram of Process State Process Control Block (PCB) The Big Picture So Far Chapter 4: Processes HW Abstraction Processor Memory IO devices File system Distributed systems Example OS Services Process management, protection, synchronization Memory Protection,

More information

Part V. Process Management. Sadeghi, Cubaleska RUB Course Operating System Security Memory Management and Protection

Part V. Process Management. Sadeghi, Cubaleska RUB Course Operating System Security Memory Management and Protection Part V Process Management Sadeghi, Cubaleska RUB 2008-09 Course Operating System Security Memory Management and Protection Roadmap of Chapter 5 Notion of Process and Thread Data Structures Used to Manage

More information

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Chapter 2 Operating System Overview Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Operating systems are those

More information

Chapter 2 Processes and Threads

Chapter 2 Processes and Threads MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 2 Processes and Threads The Process Model Figure 2-1. (a) Multiprogramming of four programs. (b) Conceptual model of four independent,

More information

Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.1

Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.1 Job Reference Guide SLAMD Distributed Load Generation Engine Version 1.8.1 December 2004 Contents 1. Introduction...3 2. The Utility Jobs...4 3. The LDAP Search Jobs...11 4. The LDAP Authentication Jobs...22

More information

Threads, SMP, and Microkernels

Threads, SMP, and Microkernels Threads, SMP, and Microkernels Chapter 4 E&CE 354: Processes 0 Multithreaded Programming So what is multithreaded programming? Basically, multithreaded programming is implementing software so that two

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

Threads, SMP, and Microkernels. Chapter 4

Threads, SMP, and Microkernels. Chapter 4 Threads, SMP, and Microkernels Chapter 4 Processes Resource ownership - process is allocated a virtual address space to hold the process image Dispatched - process is an execution path through one or more

More information

Parallel Programming Languages COMP360

Parallel Programming Languages COMP360 Parallel Programming Languages COMP360 The way the processor industry is going, is to add more and more cores, but nobody knows how to program those things. I mean, two, yeah; four, not really; eight,

More information

Chapter 14 Operating Systems

Chapter 14 Operating Systems Chapter 14 Operating Systems Ref Page Slide 1/54 Learning Objectives In this chapter you will learn about: Definition and need for operating system Main functions of an operating system Commonly used mechanisms

More information

CS370 Operating Systems Midterm Review

CS370 Operating Systems Midterm Review CS370 Operating Systems Midterm Review Yashwant K Malaiya Fall 2015 Slides based on Text by Silberschatz, Galvin, Gagne 1 1 What is an Operating System? An OS is a program that acts an intermediary between

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

Configuring WebConnect

Configuring WebConnect CHAPTER 6 WebConnect provides seamless integration between multiple internal and external web servers through a single URL. Making use of a single database and a customer-defined rollover sequence, WebConnect

More information

Handling Multithreading Approach Using Java Nikita Goel, Vijaya Laxmi, Ankur Saxena Amity University Sector-125, Noida UP India

Handling Multithreading Approach Using Java Nikita Goel, Vijaya Laxmi, Ankur Saxena Amity University Sector-125, Noida UP India RESEARCH ARTICLE Handling Multithreading Approach Using Java Nikita Goel, Vijaya Laxmi, Ankur Saxena Amity University Sector-125, Noida UP-201303 - India OPEN ACCESS ABSTRACT This paper contains information

More information

The MPI API s baseline requirements

The MPI API s baseline requirements LASER INTERFEROMETER GRAVITATIONAL WAVE OBSERVATORY - LIGO - CALIFORNIA INSTITUTE OF TECHNOLOGY MASSACHUSETTS INSTITUTE OF TECHNOLOGY Document Type LIGO-T990086-01- E 01/26/2000 The MPI API s baseline

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

System Call. Preview. System Call. System Call. System Call 9/7/2018

System Call. Preview. System Call. System Call. System Call 9/7/2018 Preview Operating System Structure Monolithic Layered System Microkernel Virtual Machine Process Management Process Models Process Creation Process Termination Process State Process Implementation Operating

More information

Processes, Threads, SMP, and Microkernels

Processes, Threads, SMP, and Microkernels Processes, Threads, SMP, and Microkernels Slides are mainly taken from «Operating Systems: Internals and Design Principles, 6/E William Stallings (Chapter 4). Some materials and figures are obtained from

More information

Processes and Threads

Processes and Threads Processes and Threads Giuseppe Anastasi g.anastasi@iet.unipi.it Pervasive Computing & Networking Lab. () Dept. of Information Engineering, University of Pisa Based on original slides by Silberschatz, Galvin

More information

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

Quiz on Tuesday April 13. CS 361 Concurrent programming Drexel University Fall 2004 Lecture 4. Java facts and questions. Things to try in Java

Quiz on Tuesday April 13. CS 361 Concurrent programming Drexel University Fall 2004 Lecture 4. Java facts and questions. Things to try in Java CS 361 Concurrent programming Drexel University Fall 2004 Lecture 4 Bruce Char and Vera Zaychik. All rights reserved by the author. Permission is given to students enrolled in CS361 Fall 2004 to reproduce

More information

Applications, services. Middleware. OS2 Processes, threads, Processes, threads, communication,... communication,... Platform

Applications, services. Middleware. OS2 Processes, threads, Processes, threads, communication,... communication,... Platform Operating System Support Introduction Distributed systems act as resource managers for the underlying hardware, allowing users access to memory, storage, CPUs, peripheral devices, and the network Much

More information

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure CSE 451: Operating Systems Spring 2012 Module 3 Operating System Components and Structure Ed Lazowska lazowska@cs.washington.edu Allen Center 570 The OS sits between application programs and the it mediates

More information

Core Java Syllabus. Pre-requisite / Target Audience: C language skills (Good to Have)

Core Java Syllabus. Pre-requisite / Target Audience: C language skills (Good to Have) Overview: Java programming language is developed by Sun Microsystems. Java is object oriented, platform independent, simple, secure, architectural neutral, portable, robust, multi-threaded, high performance,

More information

Operating Systems. Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) alphapeeler.sf.net/pubkeys/pkey.htm

Operating Systems. Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) alphapeeler.sf.net/pubkeys/pkey.htm Operating Systems Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000) armahmood786@yahoo.com alphasecure@gmail.com alphapeeler.sf.net/pubkeys/pkey.htm http://alphapeeler.sourceforge.net pk.linkedin.com/in/armahmood

More information

Announcements. Program #1. Reading. Due 2/15 at 5:00 pm. Finish scheduling Process Synchronization: Chapter 6 (8 th Ed) or Chapter 7 (6 th Ed)

Announcements. Program #1. Reading. Due 2/15 at 5:00 pm. Finish scheduling Process Synchronization: Chapter 6 (8 th Ed) or Chapter 7 (6 th Ed) Announcements Program #1 Due 2/15 at 5:00 pm Reading Finish scheduling Process Synchronization: Chapter 6 (8 th Ed) or Chapter 7 (6 th Ed) 1 Scheduling criteria Per processor, or system oriented CPU utilization

More information

Eastern Mediterranean University School of Computing and Technology Department of Information Technology. ITEC202 Operating Systems

Eastern Mediterranean University School of Computing and Technology Department of Information Technology. ITEC202 Operating Systems Page 1 of 8 ITEC202 Operating Systems, Midterm Exam Eastern Mediterranean University School of Computing and Technology Department of Information Technology ITEC202 Operating Systems ITEC 202 Midterm Examination

More information