Chapter 2: Processes, Threads, and Agents
|
|
|
- Berniece Arnold
- 10 years ago
- Views:
Transcription
1 Process Management A distributed system is a collection of cooperating processes. Applications, services Middleware Chapter 2: Processes, Threads, and Agents OS: kernel, libraries & servers OS1 Processes, threads, communication,... Computer & network hardware OS2 Processes, threads, communication,... Computer & network hardware Platform Node 1 Node 2 Beneath the aspect of communication, the organisation and management of processes has to be considered. Some aspects in this are Control flows in processes Organisation of processes Allocation of processes Scheduling 1 2 Processes Processes Processes can be in several states: A process is a program which is currently executed; the execution is strict sequentially Very often, a large number of concurrently running user processes and system processes exist Resources of processes: Disk storage CPU time Access to I/O resources... When several processes want to access the same resource, an efficient coordination of these processes is necessary State running ready waiting blocked new killed terminated Meaning Process operations are currently executed A process is ready to run but waits for a processor to become free A process waits for an event (e.g. a resource to finish its task) A process waits for a resource used by another process A process is created A process is terminated before ending its task A process finishes after working on all of its instructions At each time, only one process can be executed on a processor! 3 4
2 Processes Processes Transitions between process states can be described by using state diagrams Example: The operating system is responsible for: Creation and destruction of user processes and system processes Sharing memory and CPU time new admitted interrupt exit terminated Provision of mechanisms for communication and synchronisation between processes Intervention in case of deadlocks ready I/O or event completion scheduler dispatch waiting running I/O or event wait For the operating system, processes are represented as process control blocks (PCB) PCBs contain all information relevant for the operating system 5 6 Process Execution Multiprogramming vs. Multitasking The main memory contains the operating system kernel and (build upon it) a command interpreter (CI) A raw division of operating systems can be made by process execution management: Single-Tasking: a process is exclusively loaded into the memory when executed memory free CI kernel job request Multiprogramming, Multitasking: several processes are in memory simultaneously memory free process CI kernel (partly the process can overwrite CI!) memory P3 free P2 P1 CI kernel 7 Difference Multiprogramming Multitasking In multiprogramming the user cannot be interrupted when using the CPU; this can cause a blocking of the whole system for processes which need high CPU capacity. In multitasking a process can get an interrupt to stop working. Additionally, a time span can be defined which gives the maximum duration of CPU usage for one process (time-sharing). By time-sharing, an interactive usage of the system by several processes is possible. A user executing one process seems to use the CPU exclusively. 8
3 Scheduling Scheduling Scheduling is the process of managing the access to resources, especially the CPU, by several processes. Scheduling is made in different temporal dimensions: The long-term scheduler (or job scheduler) chooses processes to be load into the memory Processes migrate between these queues: new process ready queue CPU terminated process The short-term scheduler (or CPU scheduler) decides when already loaded processes are allowed to use the CPU The scheduling manages several queues: Job queue contains all processes in the system. Ready queue contains all processes load into the main memory, which are in the state ready. Device queues contains all processes currently waiting for an I/O device. I/O I/O queue child executes interrupt occurs I/O request time slice expires fork a child wait for an interrupt 9 10 Processes and Threads Threads Traditional operating system Each process has its own address space and an own control flow. A scheduler is responsible to allocate the operating system's resources for running processes. computer process Execution environment for process Address space Distributed systems A single control flow is no longer acceptable: Several clients can wish to access a server process simultaneously A speedup can be obtained by executing process operations and communication operations in parallel threads process Synchronisation and communication between threads Files, windows,... Can only be accessed from inside the execution environment For these reasons, several control flows inside a single process are needed which can share process resources and work concurrently. Threads process When needed, threads can be created and destroyed dynamically. Threads can be called small processes, and sometimes they are denoted as lightweight processes
4 Threads Each process has an own program counter, stack, registers, and address space. It works independently from other processes but is able to communicate with them. Each thread as well has an own program counter, stack, and registers, but there is only one address space for all threads belonging to a process. Thus, all threads can share global variables. Threads A process can create several threads which work together and do not disturb the work of the other threads. fork(...) task create(...) States of threads join(...) running, the thread was assigned to a processor blocked w.r.t. a semaphore ready, the threads waits on a processor to be assigned to terminated, all operations are finished, the thread waits to be destroyed Execution of threads A scheduler assigns CPU capacity by a given scheme to make all processes work 'simultaneously'. Inside these processes, threads are executed by using FIFO or Round Robin (time-sharing) Thread Management Why Threads? Name self() create(name) exit() join() detach() cancel() masking prevention Description Gives back the ID of the current thread Creates a new thread Finishes the current thread Waits for another thread to finish; possibly gives back a result Detaches a thread from the other ones, i.e. no other thread will wait for results of this thread Asynchronous finishing of a thread's work A thread can define areas in which a cancel() can be delayed (masked) A thread can define a cleanup handler which is executed in case of an unmasked cancel() e.g. for garbage collection + Speedup by working on several process sub-tasks in parallel + Threads can be created more easily than new processes +A context change between threads is cheaper than the operating system's context change between processes + Threads inside a process share data and resources... but: the division of a tasks into threads is difficult or even impossible When using threads, they have to be protected against simultaneous access to process resources. Therefore, coordination mechanisms are needed. Additional communication overhead and concurrent programming by using monitors, semaphores,... Decreasing efficiency when inconveniently dividing a task into sub-tasks 15 16
5 Thread Implementation Implementation of Threaded Servers There are two implementation possibilities: User-level threads (creating and destroying threads as well as context changing is easy. But when a thread blocks, the whole process is blocked as well.) Common model for implementation: Dispatcher/Worker model Kernel-level threads (thread operation become as costly as process operations.) Efficient method: combine both thread variants Threads in Client and Server Server-Threading Architectures Thread 1 generates result Thread 2 makes requests to server Queuing of requests Input/Output I/O workers remote objects per-connection threads remote objects per-object threads I/O remote objects Requests N Threads Client Client Server Implement an own thread for requests. Thread 1 is not blocked while thread 2 waits for a result. Server: Worker Pool Architecture The server creates a fixed number of worker threads. A dispatcher thread is responsible for receiving requests and assigning them to the N worker threads. (Disadvantage: the fixed number of worker threads can sometimes be to small; additionally, many context changes between dispatcher thread and worker threads have to be made.) 19 a. Thread-per-request b. Thread-per-connection c. Thread-per-object a. For each request, a new worker thread is created. Disadvantage: additional overhead for creation and destruction of threads b. For each connection of a client a new thread is created. This decreases the ration of creating and destroying threads. Disadvantage: higher response times for single connections if many requests are made on such a connection. c. For each object a new thread is created. This thread is responsible for all connections opened by its object. The overhead (create/destroy) is further reduced, but the response times can go up. 20
6 Distribution Transparency for the Client Replication transparency on the client's side can be realised by using threads: if a request is sent to several severs in parallel (robustness), the client could use a proxy knowing all replicates. This proxy now can use several threads, one for each replicate, to simultaneously contact all servers and collect the results for computing a final result for the client. 21 Example - Threads in Java Thread(ThreadGroup group, Runnable target, String name) creates a new thread in state SUSPENDED. The thread belongs to a group group and is identified by name. After being created, the thread calls the method run() of the object target. setpriority(int newpriority), getpriority() sets/gets the priority of a thread. run() the run() method of the target object is executed. If the object has no such method, the thread executes an own (default) run() method (thread implements runnable). start() the current state of the thread is changed from SUSPENDED to RUNNABLE. sleep(int millisecs) the thread is suspended (state SUSPENDED) for the given time span. yield() transition to state READY, calling the scheduler 22 Example - Threads in Java destroy() destroying the thread. thread.join(int millisecs) the thread is blocked for the given time span. If the called thread terminates before the end of this time span, the blocking is cancelled. thread.interrupt() the called thread is interrupted in its execution; by this, he can be invoked from a blocking call like sleep(). object.wait(long millisecs, int nanosecs) the calling thread is blocked till a request notify() or notifyall() in object is made; if the given time span end before this or if an interrupt() comes in, the calling thread is also invoked. object.notify(), object.notifyall() invokes the thread resp. All threads which have called wait() on object. Combination of Communication and Processes Processes are working on (sub-)tasks Communication services enable a cooperation of processes But: as well process execution as communication can be very time-costly: A computer is heavily loaded and needs much time for working on a process Exchanging (many) data frequently Transmission of code A process can be migrated to another host for a faster execution If several request (which build upon the results of the request made before) have to be made, the computation and generation of the next request can take place at the target host: no more data exchange is necessary by using the network A client can dynamically be enhanced by new functionalities 23 24
7 Dynamic Enhancements Models for Code Migration Transmission of code and initial state Sending a search client e.g. Java Applets Additional transmission of execution state Using a code repository, a client can dynamically be enhanced by interfaces to new servers. This enables the implementation of 'lightweight' clients without the need to determine all used services before runtime. Problem in heterogeneous systems: how to achieve a correct reconstruction of a process on the target platform? Migration in heterogeneous Systems Idea: Restrict migration to fixed points in time of the program execution: only when a sub-routine is called The system manages a so-called migration stack in a machineindependent format as a copy of the normal program stack The migration stack is updated when a sub-routine is called or ends In case of a migration, migration stack and global program data are transmitted The target host gets the migration stack, but has to get the routine code for its platform from a code repository Better solution: using a virtual machine Java Scripting languages 27 Mobile Agents An agent is a piece of software, which works on a task autonomous, on behalf of a user, and together with other agents. Not each migrating process is a (mobile) agent: Process migration the operating system decides the migration of processes. Details are hidden for the application. Agent migration the agent decides its migration activities itself, depending on its internal state. It is able to initiate its own migration. Not each migrating process is directly called an agent; but in the following, only agents are talked about. 28
8 Agent Migration Strong agent migration State of data and execution are to be transmitted The whole transmission process (getting state, marshalling, transmission, and unmarshalling) are transparent Slow and costly because of possibly large states Weak agent migration Only data state is transmitted An own start method interpolates form data state, where to continue with the agent execution Faster, but more complicated to program Remote access in distributed systems: Communication mechanisms need the transmission of: Remote Procedure Call control Remote Method Invocation control + code Weak agent migration control + code + data Strong agent migration control + code + data + state 29 Mobile Agents Host 1 Host 2 Host 1 Host 2 MA RPC-based stationary agent mobile agent Steps for migration: Serialisation of code Transmission of code (and state) De-serialisation of code mobile agent (deleted) local communication MA migration-based network traffic (RPC) network traffic (migration) (sometimes) additional steps: Class loading on host 2 Deletion of agent from host 1 to prevent from agent copies Prevent agent loss 30 Agent Example: D Agents Supports writing agents in different languages: Java Tcl Scheme Communication and migration overhead not as low as possible Strong mobility Migration in D Agents Scripting Languages proc factorial n { if ($n 1) { return 1; # fac(1) = 1 expr $n * [ factorial [expr $n 1] ] # fac(n) = n * fac(n 1) set number set machine # tells which factorial to compute # identify the target machine Agent Server searched = searched + 1; jump B; meet with search-engine; 1. Capture agent state 2. Sign/encrypt state 3. Send state to B searched = searched + 1; jump B; meet with search-engine; 6. Resume agent 5. Restore state 4. Authenticate procedures variables Scripts to execute agent_submit $machine procs factorial vars number script {factorial $number Weak Mobility (create a new agent) agent_receive # receive the results (left unspecified for simplicity) Machine A Machine B 31 Simple example: a Tcl-Agent in D'Agents transmits a script to a remote host 32
9 Migration in D Agents Scripting Languages all_users $machines proc all_users machines { set list "" foreach m $machines { agent_jump $m Strong set users [exec who] Mobility append list $users return $list set machines set this_machine # Create an initially empty list # Consider all hosts in the set of given machines # Jump to each host # Execute the who command # Append the results to the list # Return the complete list when done # Initialize the set of machines to jump to # Set to the host that starts the agent # Create a migrating agent by submitting the script to this machine, from where # it will jump to all the others in $machines. agent_submit $this_machine procs all_users -vars machines -script { all_users $machines agent_receive #receive the results (left unspecified for simplicity) Chapter Simple 2: example: Processes and the Threads agent migrates to several hosts 33 Implementation For migration to and execution on a remote host, an agent needs a special execution environment: 1: transmission by or TCP/IP 2: the server manages agents and their communication as well as authentication services 3: Common Agent RTS (Run-Time System) provides basic services for agent support: start, termination, migration,... 4: several language interpreters allow the agents to be realised in several languages Layer 2 to 4 enable an execution of agents in a heterogeneous environment by separating them from the underlying platform Agent platform 34 Mobile Agents in Java (Voyager) Many agent platforms allow an execution of agents written in Java, because the concept of Java is platform-independency by using a virtual machine. An example is the agent platform Voyager. This platform provides Java classes for the management and the migration of agents. As in D'Agents, the mobility can be easily embedded in the agents. IMobileAgentMini.java: public interface IMobileAgentMini { void start(); void goal(); Interface definition for an agent 35 Mobile Agents in Java (Voyager) Loading of classes for management and MobileAgentMini.java: mobility support of agents import java.io.*; import com.objectspace.voyager.*; import com.objectspace.voyager.agent.*; Serialiseability for code transmission public class MobileAgentMini implements IMobileAgentMini, Serializable { public void start () { try{ Agent.of(this).moveTo("//hostname:8000", "goal()"); catch(exception exception) { System.err.println(exception); System.exit(0); Migration by specifying target host and port as well as code to be transmitted public void goal() { System.err.println("-> done\n"); 36
10 Mobile Agents in Java (Voyager) Why Mobile Agents? AgentStarter.java: import com.objectspace.voyager.*; import com.objectspace.voyager.agent.*; public class AgentStarter { public static void main(string[] argv) { try { Voyager.startup(); Start of agent environment // add mobility part IMobileAgentMini mobileagent = (IMobileAgentMini) Factory.create( MobileAgentMini.class.getName()); Initialisation of agent System.err.println("-> start migration"); mobileagent.start(); catch(exception exception) { System.err.println(exception); System.exit(0); Voyager.shutdown(); Chapter 2: Processes and Threads 37 transferred data / kbytes migration based RPC based number of colums/rows in table Example: search a remote table for a particular value 38 RMI vs. Agents in a Local Network Network Load time in ms one migration equals migration with class loading 1430,1 - remote CORBA communication (e.g. check status) 0, remote CORBA communication (100 byte) 1, remote CORBA communication (1 Kbyte) 3,8 372 remote CORBA communication (10 Kbyte) 23,1 62 time in ms one migration equals migration without class loading (status only) 19,38 - remote CORBA communication (e.g. status check) 0,9 21 remote CORBA communication (100 byte) 1,2 16 remote CORBA communication (1 Kbyte) 3,8 5 remote CORBA communication (10 Kbyte) 23,1 0,8 The slower the network, the more suitable are mobile agents: 2 1 RPC Mobile Agent Request Serialisation Reply De-serialisation 0% 20% 40% 60% 80% 100% RPC Marshal Request Request Unmarshal Request Service Marshal Reply Reply Unmarshal Reply data transfer over network CORBA: communication using RPC resp. RMI 39 Important in wireless networks: the risk of connection loss is a strong motivation for mobile agent usage 40
11 Stationary vs. Migrating Agents Not each agent needs to be mobile; there is also the concept of stationary agents. The main difference between normal objects and stationary agents is the autonomy. Agents in Distributed Systems There is no general agreed definition of agents. On the other hand, agents can be characterised by several properties: Stationary agents Are placed on a host for particular tasks e.g. local search service database services accounting Advantages: Mobile agents Are able to migrate to other hosts e.g. distributed search service conferencing services mobile communications reduction of network load division of tasks to several agents better flexibility and location transparency Property Autonomous Reactive Proactive Communicative Continuous Mobile Adaptive Common to all agents? Yes Yes Yes Yes No No No Description Can act on its own Responds timely to changes in its environment Initiates actions that affects its environment Can exchange information with users and other agents Has a relatively long lifespan Can migrate from one site to another Capable of learning Problems: location of agents migration management, Agent Technology By the definition of lots of agent concepts, lots of different agent systems are originated. It would be advantageous to enable an inter-platform communication and migration. But this only is possible with lots of additional efforts. As a solution, the Foundation for Intelligent Physical Agents (FIPA, has developed a general architecture model for agent platforms: Agent Communication Languages Mobility was no central topic in FIPA's work. The main topic was the standardisation of a uniform Agent Communication Language (ACL) which defines basic message types. The transmission of such messages builds upon communication protocols like TCP/IP. Message purpose INFORM QUERY-IF Description Inform that a given proposition is true Query whether a given proposition is true Message Content Proposition Proposition QUERY-REF CFP PROPOSE ACCEPT-PROPOSAL REJECT-PROPOSAL REQUEST SUBSCRIBE Query for a give object Ask for a proposal Provide a proposal Tell that a given proposal is accepted Tell that a given proposal is rejected Request that an action be performed Subscribe to an information source Expression Proposal specifics Proposal Proposal ID Proposal ID Action specification Reference to source 43 44
12 Agent Communication Languages FIPA's ACL allows a message exchange with a defined semantic. Example: Field Purpose Sender Receiver Language Ontology Content Value INFORM max@ elke@iiop://royalty-watcher.uk:5623 Prolog genealogy female(beatrix),parent(beatrix,juliana,bernhard) Concluding can be said, that there are two kinds of communication between agents: Migration (with local method invocations) and message exchange 45
Operating System Tutorial
Operating System Tutorial OPERATING SYSTEM TUTORIAL Simply Easy Learning by tutorialspoint.com tutorialspoint.com i ABOUT THE TUTORIAL Operating System Tutorial An operating system (OS) is a collection
Network Attached Storage. Jinfeng Yang Oct/19/2015
Network Attached Storage Jinfeng Yang Oct/19/2015 Outline Part A 1. What is the Network Attached Storage (NAS)? 2. What are the applications of NAS? 3. The benefits of NAS. 4. NAS s performance (Reliability
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Processes and Non-Preemptive Scheduling. Otto J. Anshus
Processes and Non-Preemptive Scheduling Otto J. Anshus 1 Concurrency and Process Challenge: Physical reality is Concurrent Smart to do concurrent software instead of sequential? At least we want to have
Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu
Introduction to Operating Systems Indiana University Chen Yu Perspective of the Computer System Software A general piece of software with common functionalities that support many applications. Example:
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
ELEC 377. Operating Systems. Week 1 Class 3
Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation
Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents
Agent Languages Requirements Overview Java Tcl/Tk Telescript Evaluation Franz J. Kurfess, Cal Poly SLO 211 Requirements for agent Languages distributed programming large-scale (tens of thousands of computers)
Module 8. Industrial Embedded and Communication Systems. Version 2 EE IIT, Kharagpur 1
Module 8 Industrial Embedded and Communication Systems Version 2 EE IIT, Kharagpur 1 Lesson 37 Real-Time Operating Systems: Introduction and Process Management Version 2 EE IIT, Kharagpur 2 Instructional
Virtual machine interface. Operating system. Physical machine interface
Software Concepts User applications Operating system Hardware Virtual machine interface Physical machine interface Operating system: Interface between users and hardware Implements a virtual machine that
Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware
Middleware 1 Middleware Lehrstuhl für Informatik 4 Middleware: Realisation of distributed accesses by suitable software infrastructure Hiding the complexity of the distributed system from the programmer
Chapter 2: OS Overview
Chapter 2: OS Overview CmSc 335 Operating Systems 1. Operating system objectives and functions Operating systems control and support the usage of computer systems. a. usage users of a computer system:
Road Map. Scheduling. Types of Scheduling. Scheduling. CPU Scheduling. Job Scheduling. Dickinson College Computer Science 354 Spring 2010.
Road Map Scheduling Dickinson College Computer Science 354 Spring 2010 Past: What an OS is, why we have them, what they do. Base hardware and support for operating systems Process Management Threads Present:
Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems
Lecture Outline Operating Systems Objectives Describe the functions and layers of an operating system List the resources allocated by the operating system and describe the allocation process Explain how
Introduction. What is an Operating System?
Introduction What is an Operating System? 1 What is an Operating System? 2 Why is an Operating System Needed? 3 How Did They Develop? Historical Approach Affect of Architecture 4 Efficient Utilization
Multi-core Programming System Overview
Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,
Replication on Virtual Machines
Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism
SYSTEM ecos Embedded Configurable Operating System
BELONGS TO THE CYGNUS SOLUTIONS founded about 1989 initiative connected with an idea of free software ( commercial support for the free software ). Recently merged with RedHat. CYGNUS was also the original
Linux Process Scheduling Policy
Lecture Overview Introduction to Linux process scheduling Policy versus algorithm Linux overall process scheduling objectives Timesharing Dynamic priority Favor I/O-bound process Linux scheduling algorithm
The ConTract Model. Helmut Wächter, Andreas Reuter. November 9, 1999
The ConTract Model Helmut Wächter, Andreas Reuter November 9, 1999 Overview In Ahmed K. Elmagarmid: Database Transaction Models for Advanced Applications First in Andreas Reuter: ConTracts: A Means for
Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:
Chapter 7 OBJECTIVES Operating Systems Define the purpose and functions of an operating system. Understand the components of an operating system. Understand the concept of virtual memory. Understand the
Operating System Components and Services
Operating System Components and Services Tom Kelliher, CS 311 Feb. 6, 2012 Announcements: From last time: 1. System architecture issues. 2. I/O programming. 3. Memory hierarchy. 4. Hardware protection.
Chapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
Operating System: Scheduling
Process Management Operating System: Scheduling OS maintains a data structure for each process called Process Control Block (PCB) Information associated with each PCB: Process state: e.g. ready, or waiting
Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:
Tools Page 1 of 13 ON PROGRAM TRANSLATION A priori, we have two translation mechanisms available: Interpretation Compilation On interpretation: Statements are translated one at a time and executed immediately.
Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6
Multiprocessor Scheduling and Scheduling in Linux Kernel 2.6 Winter Term 2008 / 2009 Jun.-Prof. Dr. André Brinkmann [email protected] Universität Paderborn PC² Agenda Multiprocessor and
CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun
CS550 Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun Email: [email protected], Phone: (312) 567-5260 Office hours: 2:10pm-3:10pm Tuesday, 3:30pm-4:30pm Thursday at SB229C,
Middleware: Past and Present a Comparison
Middleware: Past and Present a Comparison Hennadiy Pinus ABSTRACT The construction of distributed systems is a difficult task for programmers, which can be simplified with the use of middleware. Middleware
Operating Systems Concepts: Chapter 7: Scheduling Strategies
Operating Systems Concepts: Chapter 7: Scheduling Strategies Olav Beckmann Huxley 449 http://www.doc.ic.ac.uk/~ob3 Acknowledgements: There are lots. See end of Chapter 1. Home Page for the course: http://www.doc.ic.ac.uk/~ob3/teaching/operatingsystemsconcepts/
Middleware Lou Somers
Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,
Technical Properties. Mobile Operating Systems. Overview Concepts of Mobile. Functions Processes. Lecture 11. Memory Management.
Overview Concepts of Mobile Operating Systems Lecture 11 Concepts of Mobile Operating Systems Mobile Business I (WS 2007/08) Prof Dr Kai Rannenberg Chair of Mobile Business and Multilateral Security Johann
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL This chapter is to introduce the client-server model and its role in the development of distributed network systems. The chapter
CHAPTER 15: Operating Systems: An Overview
CHAPTER 15: Operating Systems: An Overview The Architecture of Computer Hardware, Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander John Wiley and Sons 2010 PowerPoint
OPERATING SYSTEMS SCHEDULING
OPERATING SYSTEMS SCHEDULING Jerry Breecher 5: CPU- 1 CPU What Is In This Chapter? This chapter is about how to get a process attached to a processor. It centers around efficient algorithms that perform
Computer Organization & Architecture Lecture #19
Computer Organization & Architecture Lecture #19 Input/Output The computer system s I/O architecture is its interface to the outside world. This architecture is designed to provide a systematic means of
Division of Informatics, University of Edinburgh
CS1Bh Lecture Note 20 Client/server computing A modern computing environment consists of not just one computer, but several. When designing such an arrangement of computers it might at first seem that
Chapter 11 I/O Management and Disk Scheduling
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization
Chapter 2: Remote Procedure Call (RPC)
Chapter 2: Remote Procedure Call (RPC) Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) [email protected] http://www.iks.inf.ethz.ch/ Contents - Chapter 2 - RPC
Transparent Redirection of Network Sockets 1
Transparent Redirection of Network Sockets 1 Timothy S. Mitrovich, Kenneth M. Ford, and Niranjan Suri Institute for Human & Machine Cognition University of West Florida {tmitrovi,kford,nsuri}@ai.uwf.edu
Virtual Machines. www.viplavkambli.com
1 Virtual Machines A virtual machine (VM) is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software
Contributions to Gang Scheduling
CHAPTER 7 Contributions to Gang Scheduling In this Chapter, we present two techniques to improve Gang Scheduling policies by adopting the ideas of this Thesis. The first one, Performance- Driven Gang Scheduling,
Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation
Objectives Distributed Databases and Client/Server Architecture IT354 @ Peter Lo 2005 1 Understand the advantages and disadvantages of distributed databases Know the design issues involved in distributed
Agenda. Distributed System Structures. Why Distributed Systems? Motivation
Agenda Distributed System Structures CSCI 444/544 Operating Systems Fall 2008 Motivation Network structure Fundamental network services Sockets and ports Client/server model Remote Procedure Call (RPC)
Distributed Data Management
Introduction Distributed Data Management Involves the distribution of data and work among more than one machine in the network. Distributed computing is more broad than canonical client/server, in that
This tutorial will take you through step by step approach while learning Operating System concepts.
About the Tutorial An operating system (OS) is a collection of software that manages computer hardware resources and provides common services for computer programs. The operating system is a vital component
Real Time Programming: Concepts
Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize
JADE: Java Agent Development Framework What is it? How can I use it?
JADE: Java Agent Development Framework What is it? How can I use it? Based on Online documentation of Jade http://jade.tilab.com/ 1 Overview Agent Communication Language Jade Features The agent Platform
Infrastructure that supports (distributed) componentbased application development
Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication
Mutual Exclusion using Monitors
Mutual Exclusion using Monitors Some programming languages, such as Concurrent Pascal, Modula-2 and Java provide mutual exclusion facilities called monitors. They are similar to modules in languages that
10.04.2008. Thomas Fahrig Senior Developer Hypervisor Team. Hypervisor Architecture Terminology Goals Basics Details
Thomas Fahrig Senior Developer Hypervisor Team Hypervisor Architecture Terminology Goals Basics Details Scheduling Interval External Interrupt Handling Reserves, Weights and Caps Context Switch Waiting
Process Scheduling CS 241. February 24, 2012. Copyright University of Illinois CS 241 Staff
Process Scheduling CS 241 February 24, 2012 Copyright University of Illinois CS 241 Staff 1 Announcements Mid-semester feedback survey (linked off web page) MP4 due Friday (not Tuesday) Midterm Next Tuesday,
Transparent Redirection of Network Sockets 1
Transparent Redirection of Network Sockets Timothy S. Mitrovich, Kenneth M. Ford, and Niranjan Suri Institute for Human & Machine Cognition University of West Florida {tmitrovi,kford,[email protected].
Cloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
Readings for this topic: Silberschatz/Galvin/Gagne Chapter 5
77 16 CPU Scheduling Readings for this topic: Silberschatz/Galvin/Gagne Chapter 5 Until now you have heard about processes and memory. From now on you ll hear about resources, the things operated upon
How To Write A Network Operating System For A Network (Networking) System (Netware)
Otwarte Studium Doktoranckie 1 Adaptable Service Oriented Architectures Krzysztof Zieliński Department of Computer Science AGH-UST Krakow Poland Otwarte Studium Doktoranckie 2 Agenda DCS SOA WS MDA OCL
CPU Scheduling Outline
CPU Scheduling Outline What is scheduling in the OS? What are common scheduling criteria? How to evaluate scheduling algorithms? What are common scheduling algorithms? How is thread scheduling different
Scheduling. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum
Scheduling Yücel Saygın These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum 1 Scheduling Introduction to Scheduling (1) Bursts of CPU usage alternate with periods
Infrastructure for Load Balancing on Mosix Cluster
Infrastructure for Load Balancing on Mosix Cluster MadhuSudhan Reddy Tera and Sadanand Kota Computing and Information Science, Kansas State University Under the Guidance of Dr. Daniel Andresen. Abstract
Operating Systems Overview
Operating Systems Overview No single definition, but many perspectives: Role in an overall system: Intermediary between computer hardware and everything else User view: Provides an environment, preferably
Linux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
Chapter 14 Virtual Machines
Operating Systems: Internals and Design Principles Chapter 14 Virtual Machines Eighth Edition By William Stallings Virtual Machines (VM) Virtualization technology enables a single PC or server to simultaneously
Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture
Introduction to CORBA 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture 1. Introduction CORBA is defined by the OMG The OMG: -Founded in 1989 by eight companies as a non-profit
How To Understand The Concept Of A Distributed System
Distributed Operating Systems Introduction Ewa Niewiadomska-Szynkiewicz and Adam Kozakiewicz [email protected], [email protected] Institute of Control and Computation Engineering Warsaw University of
IMPLEMENTATION OF AN AGENT MONITORING SYSTEM IN A JINI ENVIRONMENT WITH RESTRICTED USER ACCESS
IMPLEMENTATION OF AN AGENT MONITORING SYSTEM IN A JINI ENVIRONMENT WITH RESTRICTED USER ACCESS Marietta A. Gittens (Dr. Sadanand Srivastava, Dr. James Gil De Lamadrid) {mgittens, ssrivas, gildelam}@cs.bowiestate.edu
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
Have both hardware and software. Want to hide the details from the programmer (user).
Input/Output Devices Chapter 5 of Tanenbaum. Have both hardware and software. Want to hide the details from the programmer (user). Ideally have the same interface to all devices (device independence).
A Comparison of Distributed Systems: ChorusOS and Amoeba
A Comparison of Distributed Systems: ChorusOS and Amoeba Angelo Bertolli Prepared for MSIT 610 on October 27, 2004 University of Maryland University College Adelphi, Maryland United States of America Abstract.
Operating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
CS420: Operating Systems OS Services & System Calls
NK YORK COLLEGE OF PENNSYLVANIA HG OK 2 YORK COLLEGE OF PENNSYLVAN OS Services & System Calls James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts,
Distributed Systems Lecture 1 1
Distributed Systems Lecture 1 1 Distributed Systems Lecturer: Therese Berg [email protected]. Recommended text book: Distributed Systems Concepts and Design, Coulouris, Dollimore and Kindberg. Addison
Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University
Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns
Multiprogramming. IT 3123 Hardware and Software Concepts. Program Dispatching. Multiprogramming. Program Dispatching. Program Dispatching
IT 3123 Hardware and Software Concepts Operating Systems II October 26 Multiprogramming Two or more application programs in memory. Consider one CPU and more than one program. This can be generalized to
Tier Architectures. Kathleen Durant CS 3200
Tier Architectures Kathleen Durant CS 3200 1 Supporting Architectures for DBMS Over the years there have been many different hardware configurations to support database systems Some are outdated others
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
CSE 544 Principles of Database Management Systems. Magdalena Balazinska Fall 2007 Lecture 5 - DBMS Architecture
CSE 544 Principles of Database Management Systems Magdalena Balazinska Fall 2007 Lecture 5 - DBMS Architecture References Anatomy of a database system. J. Hellerstein and M. Stonebraker. In Red Book (4th
Lecture 7: Java RMI. CS178: Programming Parallel and Distributed Systems. February 14, 2001 Steven P. Reiss
Lecture 7: Java RMI CS178: Programming Parallel and Distributed Systems February 14, 2001 Steven P. Reiss I. Overview A. Last time we started looking at multiple process programming 1. How to do interprocess
Origins of Operating Systems OS/360. Martin Grund HPI
Origins of Operating Systems OS/360 HPI Table of Contents IBM System 360 Functional Structure of OS/360 Virtual Machine Time Sharing 2 Welcome to Big Blue 3 IBM System 360 In 1964 IBM announced the IBM-360
Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest
Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest 1. Introduction Few years ago, parallel computers could
CPU SCHEDULING (CONT D) NESTED SCHEDULING FUNCTIONS
CPU SCHEDULING CPU SCHEDULING (CONT D) Aims to assign processes to be executed by the CPU in a way that meets system objectives such as response time, throughput, and processor efficiency Broken down into
1 Organization of Operating Systems
COMP 730 (242) Class Notes Section 10: Organization of Operating Systems 1 Organization of Operating Systems We have studied in detail the organization of Xinu. Naturally, this organization is far from
DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service
DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service Achieving Scalability and High Availability Abstract DB2 Connect Enterprise Edition for Windows NT provides fast and robust connectivity
Operating Systems Lecture #6: Process Management
Lecture #6: Process Written by based on the lecture series of Dr. Dayou Li and the book Understanding 4th ed. by I.M.Flynn and A.McIver McHoes (2006) Department of Computer Science and Technology,., 2013
Chapter 11 I/O Management and Disk Scheduling
Operatin g Systems: Internals and Design Principle s Chapter 11 I/O Management and Disk Scheduling Seventh Edition By William Stallings Operating Systems: Internals and Design Principles An artifact can
Event-based middleware services
3 Event-based middleware services The term event service has different definitions. In general, an event service connects producers of information and interested consumers. The service acquires events
Code and Process Migration! Motivation!
Code and Process Migration! Motivation How does migration occur? Resource migration Agent-based system Details of process migration Lecture 6, page 1 Motivation! Key reasons: performance and flexibility
Trace-Based and Sample-Based Profiling in Rational Application Developer
Trace-Based and Sample-Based Profiling in Rational Application Developer This document is aimed at highlighting the importance of profiling in software development and talks about the profiling tools offered
The Service Availability Forum Specification for High Availability Middleware
The Availability Forum Specification for High Availability Middleware Timo Jokiaho, Fred Herrmann, Dave Penkler, Manfred Reitenspiess, Louise Moser Availability Forum [email protected], [email protected],
Comp 204: Computer Systems and Their Implementation. Lecture 12: Scheduling Algorithms cont d
Comp 204: Computer Systems and Their Implementation Lecture 12: Scheduling Algorithms cont d 1 Today Scheduling continued Multilevel queues Examples Thread scheduling 2 Question A starvation-free job-scheduling
Distribution transparency. Degree of transparency. Openness of distributed systems
Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science [email protected] Chapter 01: Version: August 27, 2012 1 / 28 Distributed System: Definition A distributed
Types Of Operating Systems
Types Of Operating Systems Date 10/01/2004 1/24/2004 Operating Systems 1 Brief history of OS design In the beginning OSes were runtime libraries The OS was just code you linked with your program and loaded
Software design (Cont.)
Package diagrams Architectural styles Software design (Cont.) Design modelling technique: Package Diagrams Package: A module containing any number of classes Packages can be nested arbitrarily E.g.: Java
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.
Chapter 2 TOPOLOGY SELECTION SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Topology selection criteria. Perform a comparison of topology selection criteria. WebSphere component
Distributed Systems. Security concepts; Cryptographic algorithms; Digital signatures; Authentication; Secure Sockets
I. Introduction II. Fundamental Concepts of Architecture models; network architectures: OSI, Internet and LANs; interprocess communication III. Time and Global States Clocks and concepts of time; Event
Kernel comparison of OpenSolaris, Windows Vista and. Linux 2.6
Kernel comparison of OpenSolaris, Windows Vista and Linux 2.6 The idea of writing this paper is evoked by Max Bruning's view on Solaris, BSD and Linux. The comparison of advantages and disadvantages among
Distributed File Systems
Distributed File Systems Paul Krzyzanowski Rutgers University October 28, 2012 1 Introduction The classic network file systems we examined, NFS, CIFS, AFS, Coda, were designed as client-server applications.
Operating System Structures
COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating
