Presentation is loading. Please wait.

Presentation is loading. Please wait.

Summer 2015 SILICON VALLEY UNIVERSITY CONFIDENTIAL1 Operating Systems Dr. Jerry Shiao, Silicon Valley University.

Similar presentations


Presentation on theme: "Summer 2015 SILICON VALLEY UNIVERSITY CONFIDENTIAL1 Operating Systems Dr. Jerry Shiao, Silicon Valley University."— Presentation transcript:

1 Summer 2015 SILICON VALLEY UNIVERSITY CONFIDENTIAL1 Operating Systems Dr. Jerry Shiao, Silicon Valley University

2 SILICON VALLEY UNIVERSITY CONFIDENTIAL2 Deadlocks Overview  System Model Processes Requesting / Releasing Resources through System Calls.  Deadlock Characteristic Necessary Conditions for Deadlock.  Deadlock State: Every process in the set is waiting for an event caused only by another process in the set.  Methods for Handling Deadlocks. Deadlock Prevention: Ensure one of the four necessary conditions does not occur: Mutual Exclusion, Hold and Wait, No Preemption, and Circular Wait. Deadlock Avoidance: Operating System have a priori information about how each process will utilize system resources. Deadlock Detection: Invoke an algorithm to determine whether a Deadlock has occurred.  Recovery from Deadlock. Manual Recovery. Automatic Recovery.  Process Termination  Resource Preemption Copyright @ 2009 John Wiley & Sons Inc.

3 SILICON VALLEY UNIVERSITY CONFIDENTIAL3 Deadlocks System Model Deadlock Problems Becoming More Common:  Number of processes contending (Multithreaded processes).  Many resources types within system with multiple instances. Types: Memory Block, CPU cycles, Files, I/O Devices ( Type = printers & 2 instances, Type = CPU & 4 instances ). System Model  Operating System typically do not provide Deadlock Prevention.  Process must request resource / release resource.  Process utilize resource using Normal Mode of Operation: Request ( open( ), allocate ( ) ): Granted or wait for resource. Use: Operate on the resource. Release ( close ( ), free ( ) ): Release the resource.  System Table used for recording / queuing: Records resource free or allocated (process allocated). Queue of processes waiting for resource. Deadlock State: Every process in the set is waiting for an event caused only by another process in the set. Copyright @ 2009 John Wiley & Sons Inc.

4 SILICON VALLEY UNIVERSITY CONFIDENTIAL4 Deadlocks Deadlock Characterization In Deadlock:  Processes Never Finish Executing, and System Resources are Tied Up, Preventing Other Jobs from Starting. Necessary Conditions Held Simultaneously:  Mutual Exclusion One process is holding resource and others waiting for resource.  Hold and Wait Hold one resource and acquiring another held by other processes.  No Preemption A resource can be released voluntarily by process holding it.  Circular Wait A set of waiting processes, where each process is waiting on process before it. Copyright @ 2009 John Wiley & Sons Inc. pthread_mutex_lock ( &mutex1 ); pthread_mutex_lock ( &mutex2 );... pthread_mutex_unlock ( &mutex1 ); pthread_mutex_unlock ( &mutex2 ); pthread_mutex_lock ( &mutex2 ); pthread_mutex_lock ( &mutex1 );... pthread_mutex_unlock(&mutex2); pthread_mutex_unlock(&mutex1); Process 1Process 2 Blocking

5 SILICON VALLEY UNIVERSITY CONFIDENTIAL5 Deadlocks Principle of Deadlock Defined as the permanent blocking of a set of processes that complete for system resources. Copyright @ 2009 Pearson Education, Inc. Car 1 traveling North, needs quadrant “a” and “b”.

6 SILICON VALLEY UNIVERSITY CONFIDENTIAL6 Deadlocks Deadlock Characterization Resource Allocation Graphs  Tool in characterizing the allocation of resources to processes.  Processes and resources represented by a node. Copyright @ 2009 Pearson Education, Inc. Graph edge from process to resource indicates request. Graph edge from resource to process indicates resource granted. Deadlock: Circular WaitNo Deadlock

7 SILICON VALLEY UNIVERSITY CONFIDENTIAL7 Deadlocks Deadlock Characterization Resource-Allocation Graph  Directed Graph: Request Edge: Process Pi request an instance of Resource Rj. Assignment Edge: Resource Rj allocated to Process Pi. Copyright @ 2009 John Wiley & Sons Inc. Processes = { P1, P2, P3 } Resources = { R1, R2, R3, R4 } Edges = { P1  R1, P2  R3, R1  P2, R2  P2, R2  P1, R3  P3 } R1 o R3 o P1P3P2 R2 o R4 o P1: 1)Allocated instance of R2. 2)Request instance of R1. P2: 3)Allocated instance of R2. 4)Allocated instance of R1. 5)Request instance of R3. P3: 6)Allocated instance of R3. 1 2 3 4 5 6 6) P3 release R3. 5) R3 allocated to P2. 4) P2 release R1. 2) R1 allocated to P1

8 SILICON VALLEY UNIVERSITY CONFIDENTIAL8 Deadlocks Resource-Allocation Graph  Cycle: For Resource Type with One Instance Deadlock. Copyright @ 2009 John Wiley & Sons Inc. R1 o P1P2 R2 o 1 2 3 4 P2 requests instance of R2. R2 has one instances, allocated to P1. When resource type has exactly one instance, then a cycle imples that a Deadlock has occurred. P1: 1)Allocated instance of R2. 2)Request instance of R1. P2: 3)Request instance of R2. 4)Allocated instance of R1.

9 SILICON VALLEY UNIVERSITY CONFIDENTIAL9 Deadlocks Resource-Allocation Graph  Cycle: For Resource Type with One Instance Deadlock.  Cycle: For Resource Type with 2+ Instances Does not imply Deadlock. Copyright @ 2009 John Wiley & Sons Inc. R1 o R3 o P1P3P2 R2 o R4 o 1 2 3 4 5 6 P3 requests instance of R2. R2 has two instances, but both allocated to Process P1 and P2. P3 will block, but will deadlock ( two cycles ) because P1 is waiting for R1 and P2 is waiting R3.

10 SILICON VALLEY UNIVERSITY CONFIDENTIAL10 Deadlocks Resource-Allocation Graph  Cycle: For Resource Type with 2+ Instances Does not imply Deadlock. Copyright @ 2009 John Wiley & Sons Inc. R1 o P1P2P3 R2 o 1 2 P4 1)Process P4 releases instance resources R2. 2)Resource R2 allocated to P3. Breaks cycle.

11 SILICON VALLEY UNIVERSITY CONFIDENTIAL11 Deadlocks Methods for Handling Deadlock  Prevent deadlocks by constraining how requests for resources can be made: Adopt a policy that eliminates one of the conditions.  Avoid deadlocks by making appropriate dynamic choices based on the current state of the resource allocation.  Detect the presence of deadlock and take action to recover.  Deadlock condition when four simultaneous conditions occur. Policy Decisions:  Mutual Exclusion  Hold and Wait  No Preemption Circumstance that might occur depending on the sequencing of requests and releases by the involved processes.  Circular Wait Copyright @ 2009 Pearson Education, Inc. Possibility of Deadlock Existence of Deadlock

12 SILICON VALLEY UNIVERSITY CONFIDENTIAL12 Deadlocks Methods for Handling Deadlock Operating System can use:  Deadlock Prevention – Set of methods for ensuring at least one of the necessary deadlock conditions cannot hold. Constraining how requests for resources can be made. Deadlock condition when four simultaneous conditions occur: 1) Mutual Exclusion 2) Hold and Wait 3) No Preemption 4) Circular Wait  Deadlock Avoidance – Operating System has advance information on resources a process will request and use. Operating System can decide for each request whether or not the process should block. Consider resources available, allocated, future requests, and future releases. Algorithm examine state of the Operating System to determine deadlock.  Deadlock Detection and Recovery Algorithm examine state of the Operating System to determine whether a deadlock has occurred. An algorithm to recover from the deadlock. Copyright @ 2009 John Wiley & Sons Inc.

13 SILICON VALLEY UNIVERSITY CONFIDENTIAL13 Deadlocks Methods for Handling Deadlock Operating System can use:  Manual Recovery Methods System performance deteriorates. Unable to identify cause of deadlock. But … least overhead than Deadlock Prevention, Deadlock Avoidance, and Deadlock Detection techniques. Which Method Used: Manual Recovery  Deadlocks occur infrequently.  Less expensive (implementation, extra resources) than Prevention, Avoidence, or Detection and Recovery Methods. Other methods must run continuously.  Other system problems can resemble deadlock condition, and Manual Recovery need to be used anyway. Copyright @ 2009 John Wiley & Sons Inc.

14 SILICON VALLEY UNIVERSITY CONFIDENTIAL14 Deadlocks Methods for Handling Deadlock Deadlock Prevention  Constraining how requests for resources can be made. For Deadlock to Occur, Four Necessary Condition  Mutual Exclusion Deadlock occurs when using Mutual Exclusion for nonsharable resources. Cannot deny Mutual-Exclusion because some resources are nonsharable. Sharable resources CANNOT be involved in a Deadlock.  Hold and Wait A process requesting a resource, it MUST NOT hold any other resources.  Require process to request and be allocated all resources before exe.  Resources are allocated and unused for long periods of time.  Starvation caused by resources allocated to other processes.  No Preemption Deadlocks occur when there is no preemption of resources that have already been allocated.  Possible prevention require releasing all resources when another resource cannot be allocated to it (process must wait). Try to allocate all resources again.  Technique used for CPU registers and memory allocation. Copyright @ 2009 John Wiley & Sons Inc.

15 SILICON VALLEY UNIVERSITY CONFIDENTIAL15 Deadlocks Methods for Handling Deadlock Deadlock Prevention For Deadlock to Occur, Four Necessary Condition  Circular Wait Prevent Deadlock by imposing ordering of all resources and each process must request resources in an increasing order of enumeration. Resources acquired in proper order responsibility of software programs. Mutual Exclusion locks to protect order in the system. Copyright @ 2009 John Wiley & Sons Inc. pthread_mutex_lock ( &mutex1 ); pthread_mutex_lock ( &mutex2 );... pthread_mutex_unlock ( &mutex1 ); pthread_mutex_unlock ( &mutex2 ); pthread_mutex_lock ( &mutex2 ); pthread_mutex_lock ( &mutex1 );... pthread_mutex_unlock(&mutex2); pthread_mutex_unlock(&mutex1); Process 1Process 2 Ordering INVALID

16 SILICON VALLEY UNIVERSITY CONFIDENTIAL16 Deadlocks Methods for Handling Deadlock Deadlock Prevention Deadlock Prevention Algorithms  Algorithms prevents Deadlocks by restraining how requests can be made. Prevents one of the necessary conditions from occurring. Restrictions on when resource can be requested. Holding onto and releasing resources to maintain ordering.  Problem with algorithms are low device utilization and reduced system throughput. Copyright @ 2009 John Wiley & Sons Inc.

17 SILICON VALLEY UNIVERSITY CONFIDENTIAL17 Deadlocks Methods for Handling Deadlock Deadlock Avoidance  Require additional information about how resources are to be requested. Process1 requests in order R1 and R2. Process2 requests in order R2 and R1. Operating System can determine if Process1 or Process2 should wait, based on:  The resources currently available.  The resources currently allocated to each process.  Future requests and releases of each process. Algorithm: Each process declare the maximum number of resources.  Given a priori information, algorithm can be constructed to avoid Deadlock.  Algorithm dynamically examines resource-allocation state. Resource-allocation state is the number of available and allocated resources and the maximum demands of the processes. Copyright @ 2009 John Wiley & Sons Inc.

18 SILICON VALLEY UNIVERSITY CONFIDENTIAL18 Deadlocks Methods for Handling Deadlock Deadlock Avoidance  Safe State The Operating System can allocate resources to each process in some order and avoid a deadlock. Safe Sequence: 1) Sequence of processes such that for Pi, resource requests can be satisfied by current resources and resources held by Pj, where Pj < Pi. 2) If Pi cannot get a resource held by Pj, then Pi will wait until Pj completes. When Pj completes, Pi will allocate all its resources, completes its processing, and release its resources.  UnSafe State Does not have a Safe Sequence. UnSafe State may lead to a Deadlock.  Avoidance Algorithm Ensure Operating System remains in the Safe State. Resource request only granted if the allocation leaves system in Safe State. Resource Utilization may be lower than Operating System without Avoidance Algorithm. Copyright @ 2009 John Wiley & Sons Inc.

19 SILICON VALLEY UNIVERSITY CONFIDENTIAL19 Deadlocks Methods for Handling Deadlock Deadlock Avoidance Copyright @ 2009 John Wiley & Sons Inc. Max Resources = 12 Free Resources = 3 Maximum Needs Current Needs P0105 P142 P292 NOT SAFE: Deadlock: BLOCK 1)P2 add 1 resource. Free = 2 Algorithm: Pj < Pi 2)P0 wants 5 resources. P0 waits. 3)P1 wants 2 resources. P1 completes. Free = 4 4)P2 needs 6 resources. P2 waits. 5)P0 and P2 Deadlocks. SAFE: No Deadlock: OK Allocate Resource 1)P1 add 2 resources. Free = 1 Algorithm: Sequence of processes such that for Pi, resource requests can be satisfied by current resources and resources held by Pj, where Pj < Pi. 2)P1 completes, returns 4, Free = 5 3)P0 add 5 resources. Free = 0 4)P0 completes, returns 10, Free = 10 5)P2 add 7 resources. 6)P2 completes, returns 9, Free = 12 P2 should not have been granted 1 additional resource. If P2 was made to wait until either of the other processes completed, then deadlock would be avoided. NOTE: Avoidence algorithm could make a process wait, even though resource was available.

20 SILICON VALLEY UNIVERSITY CONFIDENTIAL20 Deadlocks Methods for Handling Deadlock Deadlock Avoidance  Resource-Allocation-Graph Algorithm  Request, Assignment, Claim Edges Claim Edge: Process Pi may request Resource Rj. Claim Edge becomes Request Edge. If Claim Edge change to Request Edge creates a cycle,  Process must block. NOTE: Cannot be used with multiple instances of resource types. Copyright @ 2009 John Wiley & Sons Inc. R1 o P1P2 R2 o R1 o P1P2 R2 o 1) Claim Edge becomes Assignment Edge. 2) Assignment Edge can cause cycle. P2 must wait for R1 before P2 can request R2. 3) If P1 request R2, Deadlock would occur.

21 SILICON VALLEY UNIVERSITY CONFIDENTIAL21 Deadlocks Methods for Handling Deadlock Deadlock Avoidance  Banker’s Algorithm: Handle Multiple Instances of Resource Type Analogy to banking never allocated its available cash in such a way that it could no longer satisfy the needs of all its customers. Supports multiple instances of resource type. 1) Process declares max number of instances of each resource type. 2) System determines if system in safe state when allocated.  Safe state is when the system can allocate resources to each process and still avoid Deadlock. 3) If not, then process will block. Data structures ( state of resource-allocation )for Banker’s Algorithm N = Number of Processes M = Number of Resource Types Available [ M ] : Number of available resource instances of each type ( M ). Max [ N ] [ M ]: Maximum demand of each process ( N ). Allocation [ N ] [ M ]: Number of resources of each type currently allocated to each process. Need [ N ] [ M ]: Remaining resource need of each process. Need[ N ][ M ] = Max[ N ][ M ] - Allocation[ N ] [ N ]. Copyright @ 2009 John Wiley & Sons Inc.

22 SILICON VALLEY UNIVERSITY CONFIDENTIAL22 Deadlocks Methods for Handling Deadlock Deadlock Avoidance  Safety Algorithm Determine whether system is in Safe State. M = Number of resource types N = Number of processes Available = Number of available instances of each resource type Work[ M ] = Available [ M ]and Finish [ N ] = FALSE I = 0, 1,... N-1 ( counter I is the process index ); 2) Find index I such that: Finish[ I ] == FALSE Need[ I ] <= Work <Remaining resource need of Pi is less than the available instances of the resource type> If Pi does not exist, goto step 4. 3) Work = Work + Allocation[ I ] <Found Pi, reclaim all resources, available Finish [ I ] = TRUE resources and allocated resource of Pi> Goto step 2 4) If Finish[ I ] == TRUE <If all processes have been checked and TRUE, then system is in Safe State> Copyright @ 2009 John Wiley & Sons Inc.

23 SILICON VALLEY UNIVERSITY CONFIDENTIAL23 Deadlocks Methods for Handling Deadlock Deadlock Avoidance  ANO Copyright @ 2009 John Wiley & Sons Inc. Resources: A = 10, B = 5, C = 7 Allocation Max Need Available A B C A B C A B C A B C P0 0 1 0 7 5 3 7 4 3 3 3 2 P1 2 0 0 3 2 2 1 2 2 P2 3 0 2 9 0 2 6 0 0 P3 2 1 1 2 2 2 0 1 1 P4 0 0 2 4 3 3 4 3 1 Resources: A = 10, B = 5, C = 7 Allocation Max Need Available A B C A B C A B C A B C P0 0 1 0 7 5 3 7 4 3 2 3 0 P1 3 0 2 3 2 2 0 2 0 P2 3 0 2 9 0 2 6 0 0 P3 2 1 1 2 2 2 0 1 1 P4 0 0 2 4 3 3 4 3 1 P1 = Request (1, 0, 2) Granted ( SAFE ) New Available = (2, 3, 0) P4 = Request (3, 3, 0) FAIL: Not Enough Resources P0 = Request (0, 2, 0) (0, 2, 0) <= (2, 3, 0) OK New Available = (2, 1, 0) NOT SAFE Cannot Provide Resources for: P3 (0, 1, 1) P4 (4, 3, 1)

24 SILICON VALLEY UNIVERSITY CONFIDENTIAL24 Deadlocks Methods for Handling Deadlock Deadlock Detection Without Deadlock-Prevention or Deadlock-Avoidance Algorithm, Deadlock may occur. What can be done to detect Deadlock?  Algorithm to examine state of Operating System to determine whether a Deadlock has occurred.  Algorithm to recover from the Deadlock. Detection-and-Recovery Scheme Overhead:  Run-time costs of maintaining the necessary information.  Executing the detection algorithm.  Losses (i.e. process execution, blocked resources) inherent in recovering from Deadlock. Copyright @ 2009 John Wiley & Sons Inc.

25 SILICON VALLEY UNIVERSITY CONFIDENTIAL25 Deadlocks Methods for Handling Deadlock Deadlock Detection Resource Single Instance Wait-For Graph: Variant of the Resource-Allocation Graph.  Pi  Pj Edge consolidates two edges Pi  Rq and Rq  Pj.  Deadlock occurs when graph contains a cycle.  Overhead to detect Deadlock: System must maintain the wait-for graph. Periodically invoke algorithm that searches for cycle in the graph. Order of n squared. Copyright @ 2009 John Wiley & Sons Inc.

26 SILICON VALLEY UNIVERSITY CONFIDENTIAL26 Deadlocks Methods for Handling Deadlock Deadlock Detection Resource Single Instance Wait-For Graph: Copyright @ 2009 John Wiley & Sons Inc. R1 R2 P1 R3 P2 R4 R5 P3 P5 P4 P1 P2 P3 P5 P4 Resource-Allocation Graph Wait-For Graph P1 is waiting for P2 to release a resource that P1 needs.

27 SILICON VALLEY UNIVERSITY CONFIDENTIAL27 Deadlocks Methods for Handling Deadlock Deadlock Detection Wait-For Graph Cannot be Used in Resource-Allocation System with Multiple Instances of a Resource Type. Multiple Instances: Bankers Algorithm Algorithm for Multiple Instance of Resource Type:  N = Number of Processes M = Number of Resource Types  Available [ M ]: Number of available resources of each type.  Allocation [ N ] [ M ]: Number of resources of each type currently allocated to each process.  Request [ N ] [ M ]: Current request of each process,  Algorithm investigates every possbile allocation sequence for the processes that remain to be completed. Copyright @ 2009 John Wiley & Sons Inc.

28 SILICON VALLEY UNIVERSITY CONFIDENTIAL28 Deadlocks Methods for Handling Deadlock Deadlock Detection  Detection Algorithm Determine whether system is Deadlocked. M = Number of resource types N = Number of processes Available = Number of available instances of each resource type Work[ M ] = Available [ M ]. If Allocation NE 0, then Finish [ N ] = FALSE I = 0, 1,... N-1 ( counter I is the process index ); 2) Find index I such that: Finish[ I ] == FALSE Request [ I ] <= Work <Remaining resource need of Pi is less than the available instances of the resource type> If Pi does not exist, goto step 4. Work (No resource) > 3) Work = Work + Allocation[ I ] <Found Pi, reclaim all resources, available Finish [ I ] = TRUE resources and allocated resource of Pi> Goto step 2 4) If Finish[ I ] == FALSE <If all processes have been checked and TRUE, then system is in Safe State> Copyright @ 2009 John Wiley & Sons Inc.

29 SILICON VALLEY UNIVERSITY CONFIDENTIAL29 Deadlocks Methods for Handling Deadlock Deadlock Detection: Not Deadlocked Copyright @ 2009 John Wiley & Sons Inc. Request [ I ] < Work ? Yes: Work = Work + Allocation AllocationRequestWork (Available) A B C P00 1 00 0 00 0 0  0 1 0 P12 0 02 0 20 1 0  No P23 0 30 0 00 1 0  3 1 3 P32 1 11 0 0 P40 0 2 Once reclaimed resources are available, the requests can be allocated and request goes to (0, 0, 0). P1, P2, P3, P4 will be able to satisfy their resource request.

30 SILICON VALLEY UNIVERSITY CONFIDENTIAL30 Deadlocks Methods for Handling Deadlock Deadlock Detection: Deadlocked Copyright @ 2009 John Wiley & Sons Inc. Request [ I ] < Work ? Yes: Work = Work + Allocation AllocationRequestWork (Available) A B C P00 1 00 0 00 0 0  0 1 0 P12 0 02 0 20 1 0  No P23 0 30 0 10 1 0  No P32 1 11 0 00 1 0  No P40 0 2 0 1 0  No When P2 has additional request for resource C, the system becomes deadlocked because P1, P2, P3, P4 can no longer satisfy their resource request.

31 SILICON VALLEY UNIVERSITY CONFIDENTIAL31 Deadlocks Methods for Handling Deadlock Deadlock Detection Detection-Algorithm Usage When to Invoke?  How often does a deadlock occur? Frequent deadlocks require frequent detection algorithm ( resources are locked and idle ).  How many processes are affected by deadlock? Extreme case require detection algorithm everytime a resource allocation fail. Able to identify which process and resource caused the deadlock.  Periodic intervals: Once per hour.  CPU utilization drops below 40% (processes become locked out). Copyright @ 2009 John Wiley & Sons Inc.

32 SILICON VALLEY UNIVERSITY CONFIDENTIAL32 Deadlocks Methods for Handling Deadlock Recovery from Deadlock Operator Deals with Deadlocked Processes Manually Operating System Recover Automatically Two Options for Breaking Deadlock:  Process Termination Abort one or more processes to break circular wait. Operating System reclaims all resources from aborted process. Expensive, wasted computer time for processes. Selective abort of deadlocked processes  Overhead, run detection algorithm after each process is aborted.  Selecting process a policy decision: minimum “cost”.  Lowest priority, process compute time, process resources currently used, how many resources to complete, how many processes need to be terminated, process interactive or batch. Copyright @ 2009 John Wiley & Sons Inc.

33 SILICON VALLEY UNIVERSITY CONFIDENTIAL33 Deadlocks Methods for Handling Deadlock Recovery from Deadlock Two Options for Breaking Deadlock:  Resource Preemption Preempt resource from one or more of deadlocked processes. Successively preempt some resources from processes and give those resources to other processes. Possible issues:  Select resource and process (victim).  Number of resources a deadlocked process is holding.  Amount of time process has executed.  Minimize cost.  Rollback.  Rollback process to safe state (difficult) or process termination.  Requires Operating System to keep more information about the state of all running processes.  Starvation.  Preempt same process.  Include rollbacks as cost factor to ensure a process is picked as a victim only finite number of times. Copyright @ 2009 John Wiley & Sons Inc.

34 SILICON VALLEY UNIVERSITY CONFIDENTIAL34 Deadlocks Summary Deadlocked State: Two or more Processes are Waiting Indefinitely for an event. Deadlock Occurs when Four Conditions Occur Together:  1) Mutual Exclusion. 2) Hold and Wait. 3) No Preemption. 4) Circular Wait. Avoiding Deadlock:  A priori information about how each process will utilize system resources. Preventing Deadlock:  Protocol to ensure that Deadlock does not occur.  Detection and Recovery. Detection Algorithm to identify Deadlock. System Recovery by terminating deadlocked processes. Preempting Resources from deadlocked process.  Preemption Issues: Select process and resource, rollback, and starvation. Copyright @ 2009 John Wiley & Sons Inc.


Download ppt "Summer 2015 SILICON VALLEY UNIVERSITY CONFIDENTIAL1 Operating Systems Dr. Jerry Shiao, Silicon Valley University."

Similar presentations


Ads by Google