* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Migration
Survey
Document related concepts
Transcript
Advanced Operating Systems Lecture 12: Process migration University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani Univ. of Tehran Distributed Operating Systems 1 Covered topic Process migration, Why? And how. References Chapter 3 of the text book Fred Douglis and John Ousterhout, “Transparent Process Migration: Design Alternatives and the Sprite Implementation” Univ. of Tehran Distributed Operating Systems 2 Outline Motivation for migration How does migration occur? Resource migration Agent-based system Details of process migration Problems Univ. of Tehran Distributed Operating Systems 3 Motivation Key reasons: performance and flexibility Process migration (strong mobility) Improved system-wide performance – better utilization of system-wide resources Idle workstations Code migration (weak mobility) Shipment of server code to client – filling forms (reduce communication, no need to pre-link stubs with client) Ship parts of client application to server instead of data from server to client (e.g., databases) Improve – agent-based web searches4 Univ. of Tehran parallelism Distributed Operating Systems Motivation Flexibility Dynamic configuration of distributed system Clients don’t need preinstalled software – download on demand Univ. of Tehran Distributed Operating Systems 5 Migration models Process = code seg + resource seg + execution seg Weak versus strong mobility Sender-initiated versus receiver-initiated Sender-initiated (code is with sender) Weak => transferred code (program) starts from initial the state (Java Applets). Simple Strong => move execution segment Client sending a query to database server Client should be pre-registered Receiver-initiated Java applets Receiver can be anonymous Univ. of Tehran Distributed Operating Systems 6 Who executes migrated entity? Code migration: Execute in a separate process [Applets] Execute in target process Process migration Remote cloning Migrate the process Univ. of Tehran Distributed Operating Systems 7 Models for Code Migration Alternatives for code migration. Univ. of Tehran Distributed Operating Systems 8 Do Resources Migrate? Depends on resource to process binding By identifier: specific web site, ftp server By value: Java libraries By type: printers, local devices Depends on type of “attachments” Unattached to any node: data files Fastened resources (moved only at high cost) Database, web sites Fixed resources Local devices, communication end points Univ. of Tehran Distributed Operating Systems 9 Resource Migration Actions Resource-to machine binding Unattached Process-toresource binding By identifier MV (or GR) CP ( or MV, GR) By value RB (or GR, CP) By type Fastened Fixed GR (or MV) GR (or CP) RB (or GR, CP) GR GR RB (or GR) Actions to be taken with respect to the references to local resources when migrating code to another machine. GR: establish global system-wide reference MV: move the resources CP: copy the resource RB: rebind process to locally available resource Univ. of Tehran Distributed Operating Systems 10 Migration in Heterogeneous Systems Systems can be heterogeneous (different architecture, OS) Support only weak mobility: recompile code, no run time information Strong mobility: recompile code segment, transfer execution segment [migration stack] Virtual machines - interpret source (scripts) or intermediate code [Java] Migration on Only subroutine Or method Call Migrate stack Univ. of Tehran Distributed Operating Systems 11 Cost of migration Multiprocessor: nondistributed loss of the lines associated with the process in the processor's instruction a data caches Distributed environment Moving a process's virtual memory Forwarding a process's IPC (local and network) messages, informing senders of the process's new contact information. Moving information of files. the open file table, the file descriptor table, the file offset, dirty blocks in the buffer cache, &c Moving the process's user-level state: registers, stack, &c Moving the process's kernel-level state: pwd, pid, signal masks, &c Univ. of Tehran Distributed Operating Systems 12 Cost of migration (partial migration) Migration of the whole process too expensive. Move certain aspects of a process The remaining portions of the process create residual dependencies -- the migrated process still relies on the original host to provide the services that were not migrated. Univ. of Tehran Distributed Operating Systems 13 Migrating Virtual memory Freeze and copy migration: Suspend or freeze the process on the original host, and then to copy all of the pages of memory to the new host. Once all done, process can be resumed on the new host. Simple, clean and easy to implement. Does not create a residual dependency Many pages which are never used may be copied and sent over the network If the process is migrated several times, this cost adds up Do nothing while copying? Univ. of Tehran Distributed Operating Systems 14 Migrating Virtual memory Precopying: The process runs on the original host, while the pages are being copied. It is clean -- it does not create any residual dependencies. Copying pages that may never be used. Dirty pages must be transferred. Can be more expensive lazy migration: like demand paging. It creates residual dependencies Univ. of Tehran Distributed Operating Systems 15 Migrating Virtual memory Distributed file system: a memory-mapped file. the process's memory can be migrated simply by flushing the dirty blocks and mapping the file from a different host. Isn't as clean as it may seem Univ. of Tehran Distributed Operating Systems 16 Migrating Communication Channels If a process migrates, its communications must be able to continue. Inform "interested" processes of the new location of a migrating process. Unclean, unnecessary messages, how to know other communicating clients? link redirection or forwarding at the original host of the migrating process. Residual dependency and can increase the latency involved in sending messages to the migrated process, but makes the process of migration itself cheaper Univ. of Tehran Distributed Operating Systems 17 Process with open files Show up at the new host and re-open the files. But, in truth, there is a great deal of state associated with an open file. Consider the system-wide open file table, the cached inodes, dirty blocks that may live only in the local buffer cache, &c. fork()'d proceses share the same file offset. it is often much easier to leave the process dependent on the old host for file service. Univ. of Tehran Distributed Operating Systems 18 Migrate kernel state It is often easier to leave a migrating process dependent on a prior (or perhaps first) host for these services. Checkpointing and recovery: A process's state to be saved to a file (much like a persistent object) and then a new process to be created (restored) based on this checkpoint file. This checkpoint file contains all of the "goods" including the kernel material. Univ. of Tehran Distributed Operating Systems 19 Migrate? Or not migrate? Several things to consider If the home host suffers from a bursty load, it may not make sense to migrate a process -- the home host will be free again, soon. Processes with significant virtual memory or IPC usage or many open files are poor choices for migration. Historical consideration: long running processes are better candidates than recent arrivals – they are likely to continue to run for a long time. Short lived processes are likely to complete shortly after migration, offering little gain to amortize the cost of migration over useful work. Univ. of Tehran Distributed Operating Systems 20 Design Issues Measure of load Types of policies Queue lengths at CPU, CPU utilization Static: decisions hardwired into system Dynamic: uses load information Adaptive: policy varies according to load Preemptive versus non-preemptive Centralized versus decentralized Stability: l>m => instability, l1+l2<m1+m2=>load balance Job floats around and load oscillates Univ. of Tehran Distributed Operating Systems 21 Components Transfer policy: when to transfer a process? Threshold-based policies are common and easy Selection policy: which process to transfer? Prefer new processes Transfer cost should be small compared to execution cost Location policy: where to transfer the process? Select processes with long execution times Polling, random, nearest neighbor Information policy: when and from where? Demand driven [only if sender/receiver], time-driven [periodic], state-change-driven [send update if load changes] Univ. of Tehran Distributed Operating Systems 22 Sender-initiated Policy Transfer policy Selection policy: newly arrived process Location policy: three variations Random: may generate lots of transfers => limit max transfers Threshold: probe n nodes sequentially Transfer to first node below threshold, if none, keep job Shortest: poll Np nodes in parallel Distributed Operating Systems Choose least loaded node below T Univ. of Tehran 23 Receiver-initiated Policy Transfer policy: If departing process causes load < T, find a process from elsewhere Selection policy: newly arrived or partially executed process Location policy: Threshold: probe up to Np other nodes sequentially Transfer from first one above threshold, if none, do nothing Shortest: poll n nodes in parallel, choose node with heaviest load above T Univ. of Tehran Distributed Operating Systems 24 Symmetric Policies Nodes act as both senders and receivers: combine previous two policies without change Use average load as threshold Improved symmetric policy: exploit polling information Two thresholds: LT, UT, LT <= UT Maintain sender, receiver and OK nodes using Univ. of Tehran Distributed Operating Systems 25 Case Study: V-System (Stanford) State-change driven information policy Significant change in CPU/memory utilization is broadcast to all other nodes M least loaded nodes are receivers, others are senders Sender-initiated with new job selection policy Location policy: probe random receiver, if still receiver, transfer job, else try another Univ. of Tehran Distributed Operating Systems 26 Sprite (Berkeley) Workstation environment => owner is king! Centralized information policy: coordinator keeps info State-change driven information policy Receiver: workstation with no keyboard/mouse activity for 30 seconds and # active processes < number of processors Selection policy: manually done by user => workstation becomes sender Location policy: sender queries coordinator WS with foreign process becomes sender if user becomes active: selection policy=> home workstation Univ. of Tehran Distributed Operating Systems 27 Sprite (contd) Sprite process migration Facilitated by the Sprite file system State transfer Swap everything out Send page tables and file descriptors to receiver Demand page process in Only dependencies are communication-related Univ. of Tehran Redirect communication from home WS to receiver Distributed Operating Systems 28 Overview of Code Migration in D'Agents (1) A simple example of a Tel agent in D'Agents submitting a script to a remote machine (adapted from [gray.r95]) proc factorial n { if ($n 1) { return 1; } expr $n * [ factorial [expr $n – 1] ] # fac(1) = 1 # fac(n) = n * fac(n – 1) } set number … # tells which factorial to compute set machine … # identify the target machine agent_submit $machine –procs factorial –vars number –script {factorial $number } agent_receive … Univ. of Tehran # receive the results (left unspecified for simplicity) Distributed Operating Systems 29 Overview of Code Migration in D'Agents (2) An example of a Tel agent in D'Agents migrating to different machines where it executes the UNIX who command (adapted from [gray.r95]) all_users $machines proc all_users machines { set list "" foreach m $machines { agent_jump $m set users [exec who] 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 } Univ. of … Tehran Distributed Operating Systems for simplicity) agent_receive #receive the results (left unspecified 30 Agents Software agents Autonomous process capable of reacting to, and initiating changes in its environment, possibly in collaboration More than a “process” – can act on its own Mobile agent Capability to move between machines Needs support for strong mobility Example: D’Agents (aka Agent TCL) Support for heterogeneous systems, uses languages Univ. of interpreted Tehran Distributed Operating Systems 31 Implementation Issues (1) The architecture of the D'Agents system. •Lowest: communication •Server: agent management, comm. Among agent, auth. •RTS: start & end agents, Etc. Univ. of Tehran Distributed Operating Systems 32 Implementation Issues (2) The parts comprising the state of an agent in D'Agents. Status Description Global interpreter variables Variables needed by the interpreter of an agent Global system variables Return codes, error codes, error strings, etc. Global program variables User-defined global variables in a program Procedure definitions Definitions of scripts to be executed by an agent Stack of commands Stack of commands currently being executed Stack of call frames Stack of activation records, one for each running command Univ. of Tehran Distributed Operating Systems 33 Software Agents in Distributed Systems Property Common to all agents? Description Autonomous Yes Can act on its own Reactive Yes Responds timely to changes in its environment Proactive Yes Initiates actions that affects its environment Communicative Yes Can exchange information with users and other agents Continuous No Has a relatively long lifespan Mobile No Can migrate from one site to another Adaptive No Capable of learning Some important properties by which different types of agents can be distinguished. Univ. of Tehran Distributed Operating Systems 34 Agent Technology The general model of an agent platform (adapted from [fipa98-mgt]). Univ. of Tehran Distributed Operating Systems 35 Agent Communication Languages (1) Examples of different message types in the FIPA ACL [fipa98-acl], giving the purpose of a message, along with the description of the actual message content. Message purpose Description Message Content INFORM Inform that a given proposition is true Proposition QUERY-IF Query whether a given proposition is true Proposition QUERY-REF Query for a give object Expression CFP Ask for a proposal Proposal specifics PROPOSE Provide a proposal Proposal ACCEPT-PROPOSAL Tell that a given proposal is accepted Proposal ID REJECT-PROPOSAL Tell that a given proposal is rejected Proposal ID REQUEST Request that an action be performed Action specification SUBSCRIBE Subscribe to an information source Reference to source Univ. of Tehran Distributed Operating Systems 36 Agent Communication Languages (2) Field Value Purpose INFORM Sender max@http://fanclub-beatrix.royalty-spotters.nl:7239 Receiver elke@iiop://royalty-watcher.uk:5623 Language Prolog Ontology genealogy Content female(beatrix),parent(beatrix,juliana,bernhard) A simple example of a FIPA ACL message sent between two agents using Prolog to express genealogy information. Univ. of Tehran Distributed Operating Systems 37 Next Lecture Files in distributed systems. References Chapter 10 of the book Univ. of Tehran Distributed Operating Systems 38