Extracting Concise Bug-Fixing Patches from Human-Written ...
1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit....
-
Upload
marcia-young -
Category
Documents
-
view
213 -
download
0
Transcript of 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit....
![Page 1: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/1.jpg)
1
Announcements
• The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit.
• Comments for the code should be on the parts you wrote for the assignment.
![Page 2: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/2.jpg)
2
Concurrency: Deadlock and Starvation
Chapter 6
![Page 3: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/3.jpg)
3
![Page 4: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/4.jpg)
4
Deadlock
• Permanent blocking of a set of processes that either compete for system resources or communicate with each other
• No efficient solution
• Involve conflicting needs for resources by two or more processes
![Page 5: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/5.jpg)
5
Deadlock Example
P1 P2 . . Get A Get B
. . Get B Get A . .
Release A Release BRelease B Release A
![Page 6: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/6.jpg)
6
![Page 7: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/7.jpg)
7
Deadlock Example
P1 P2 . .
Get A Get B . .Release A Get A . .Get B Release BRelease B Release A
![Page 8: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/8.jpg)
8
![Page 9: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/9.jpg)
9
Deadlock Environment
• Mutual exclusion– Only one process may use a resource at a
time
• Hold-and-wait– A process may hold allocated resources
while awaiting assignment of others
• No preemption– No resource can be forcibly removed form a
process holding it
![Page 10: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/10.jpg)
10
Condition for Deadlock
• Circular wait– A closed chain of processes exists, such that each
process holds at least one resource needed by the next process in the chain
![Page 11: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/11.jpg)
11
Deadlock Prevention
• Mutual Exclusion– Must be supported by the operating system
• Hold and Wait– Require a process request all of its required
resources at one time
![Page 12: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/12.jpg)
12
Deadlock Prevention
• No Preemption– Process must release resource and request
again– Operating system may preempt a process to
require it releases its resources
• Circular Wait– Define a linear ordering of resource types
![Page 13: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/13.jpg)
13
Deadlock Avoidance
• A decision is made dynamically whether the current resource allocation request will, if granted, potentially lead to a deadlock
• Requires knowledge of future process request
![Page 14: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/14.jpg)
14
Two Approaches to Deadlock Avoidance
• Do not start a process if its demands might lead to deadlock
• Do not grant an incremental resource request to a process if this allocation might lead to deadlock
![Page 15: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/15.jpg)
15
Determination of a Safe StateInitial State
![Page 16: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/16.jpg)
16
Determination of a Safe StateP2 Runs to Completion
![Page 17: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/17.jpg)
17
Determination of a Safe StateP1 Runs to Completion
![Page 18: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/18.jpg)
18
Determination of a Safe StateP3 Runs to Completion
![Page 19: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/19.jpg)
19
Resource Allocation Denial
• Referred to as the banker’s algorithm
• State of the system is the current allocation of resources to process
• Safe state is where there is at least one sequence that does not result in deadlock
• Unsafe state is a state that will lead to deadlock if no resources released and rest requested.
![Page 20: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/20.jpg)
20
Reusable Resources
• Used by only one process at a time and not depleted by that use
• Processes obtain resources that they later release for reuse by other processes
• Processors, I/O channels, main and secondary memory, devices, and data structures such as files, databases, and semaphores
• Deadlock occurs if each process holds one resource and requests the other
![Page 21: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/21.jpg)
21
Consumable Resources
• Created (produced) and destroyed (consumed)
• Interrupts, signals, messages, and information in I/O buffers
• Deadlock may occur if a Receive message is blocking
• May take a rare combination of events to cause deadlock
![Page 22: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/22.jpg)
22
Example of Reusable Deadlock
• Deadlock occurs if receive is blocking
P1. . .
. . .Receive(P2);
Send(P2, M1);
P2. . .
. . .Receive(P1);
Send(P1, M2);
![Page 23: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/23.jpg)
23
Deadlock AvoidanceSummary
• Maximum resource requirement must be stated in advance
• Processes under consideration must be independent; no synchronization requirements
• There must be a fixed number of resources to allocate
• No process may exit while holding resources
![Page 24: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/24.jpg)
24
Sites on Deadlock
• http://access1.sun.com/techarticles/CAT/deadlock.html
• http://www.javaspecialists.co.za/archive/Issue093.html
• http://news.zdnet.com/2100-9595_22-982905.html
![Page 25: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/25.jpg)
25
Deadlock Detection
![Page 26: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/26.jpg)
26
Strategies once Deadlock Detected
• Abort all deadlocked processes• Back up each deadlocked process to
some previously defined checkpoint, and restart all process– Original deadlock may occur
• Successively abort deadlocked processes until deadlock no longer exists
• Successively preempt resources until deadlock no longer exists
![Page 27: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/27.jpg)
27
Selection Criteria Deadlocked Processes
• Least amount of processor time consumed so far
• Least number of lines of output produced so far
• Most estimated time remaining
• Least total resources allocated so far
• Lowest priority
![Page 28: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/28.jpg)
28
Strengths and Weaknesses of the Strategies
![Page 29: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/29.jpg)
29
Real World Solutions
• Integrated Deadlock Strategy– Group resources into different classes and
enforce a linear ordering strategy.• Prevention (avoiding circular waits)
• Within classes can still have multiple access.
![Page 30: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/30.jpg)
30
Example Classes
• Swappable space : Virtual Memory– Must make all requests at the same time.
(Avoiding the Hold-and-Wait problem)
• Process Resources : Assignable devices (ex: tape drives and files)– Know ahead of time (avoidance)– Linear ordering (circular wait nullified)
• Main Memory : – Preemption -> swap out to virtual memory
![Page 31: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/31.jpg)
31
Example Classes
• Internal Resources : I/O channels– Resource ordering.
![Page 32: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/32.jpg)
32
Dining Philosophers Problem
![Page 33: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/33.jpg)
33
Dining Philosophers Problem
![Page 34: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/34.jpg)
34
Dining Philosophers Problem
![Page 35: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/35.jpg)
35
Dining Philosophers Problem
![Page 36: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/36.jpg)
36
Dining Philosophers Problem
![Page 37: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/37.jpg)
37
Deadlock in OS
• Most Operating Systems assume deadlock won’t occur.– Within the kernel processes.
• Make all kernel level resource allocations deadlock free.– Get all.– Preemption.– Linear ordering.
• Side Note: Interrupts can play havok in OS design.• How does the kernel determine what is a resource
to be concerned about?
![Page 38: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/38.jpg)
38
UNIX Concurrency Mechanisms
• Shared memory– Block of memory that both processes have access
to. Similar to a pipe, with fewer built in controls.
• Pipes– Sending messages but a fixed byte size to store the
message.
• Messages (msgsnd and msgrcv)– Able to store messages in a queue.
– Blocks on send when queue full and on a read when queue empty.
![Page 39: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/39.jpg)
39
UNIX Concurrency Mechanisms
• Semaphores (semWait and semSignal)– Can be managed in sets
• semctl : Used to initialize all semaphores in the set to the same value at the same time.
• sem_op : Pass in a set of individual operations to be performed in order.
• Signals– Very similar to an interrupt, but all signals have the
same priority level.– Type determines what happens when received.
• SIGKILL : Kill the process• SIGCHLD : Inform process on the death of a child
![Page 40: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/40.jpg)
40
Linux Kernel Concurrency Mechanisms
• Has a set of atomic operations. (atomic_t)– Operations execute without interruption and
without interference.
– atomic_dec_and_test : Subtract a 1 from the variable and return 1 if equals 0.
– atomic_int_and_test : Add a 1 to the variable and return 1 if equals 0.
– atomic_read : Gets the value of the atomic variable.
– atomic_set : Sets the value of the atomic variable to the specified value.
![Page 41: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/41.jpg)
41
Linux Kernel Concurrency Mechanisms
• Spinlocks– Very similar to semaphores but designed for shorts
waits.
– Doesn’t put the thread to sleep while waiting for the spinlock to release.
– Can be done with interrupts enabled or disabled.
• Semaphores– Puts the thread to sleep if semaphore unavailable.
– Can be done with interrupts enabled or disable.
![Page 42: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/42.jpg)
42
Linux Kernel Concurrency Mechanisms
Used when code is reordered to optimize processor efficiency.
a = 1;b = 1;
![Page 43: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/43.jpg)
43
Solaris Thread Synchronization Primitives
• Mutual exclusion (mutex) locks– Basically a binary semaphore.
• Semaphores– Basic counting semaphore.
• Condition variables– Allows a thread to wait until a specific
condition occurs.– Used with a mutex lock.
![Page 44: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/44.jpg)
44
Condition Example
mutex_enter(&m)
while (some_condition) {
cv_wait(&cv,&m);
}
mutex_exit(&m)
![Page 45: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/45.jpg)
45
![Page 46: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/46.jpg)
46
Extra Slides
![Page 47: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/47.jpg)
47
Example of Deadlock
![Page 48: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/48.jpg)
48
Another Example of Deadlock
• Space is available for allocation of 200Kbytes, and the following sequence of events occur
• Deadlock occurs if both processes progress to their second request
P1
. . .
. . .Request 80 Kbytes;
Request 60 Kbytes;
P2
. . .
. . .Request 70 Kbytes;
Request 80 Kbytes;
![Page 49: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/49.jpg)
49
![Page 50: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/50.jpg)
50
Possibility of Deadlock
• Mutual Exclusion
• No preemption
• Hold and wait
![Page 51: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/51.jpg)
51
Existence of Deadlock
• Mutual Exclusion
• No preemption
• Hold and wait
• Circular wait
![Page 52: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/52.jpg)
52
Determination of an Unsafe State
![Page 53: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/53.jpg)
53
Determination of an Unsafe State
![Page 54: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/54.jpg)
54
Resource Allocation Graphs
• Directed graph that depicts a state of the system of resources and processes
![Page 55: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/55.jpg)
55
Resource Allocation Graphs
![Page 56: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/56.jpg)
56
Banker’s Algorithm
![Page 57: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/57.jpg)
57
Banker’s Algorithm
![Page 58: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/58.jpg)
58
![Page 59: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/59.jpg)
59
Linux Atomic Operations
![Page 60: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/60.jpg)
60
Linux Atomic Operations
![Page 61: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/61.jpg)
61
Linux Kernel Concurrency Mechanisms
• Spinlocks– Used for protecting a critical section
![Page 62: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/62.jpg)
62
![Page 63: 1 Announcements The fixing the bug part of Lab 4’s assignment 2 is now considered extra credit. Comments for the code should be on the parts you wrote.](https://reader035.fdocuments.in/reader035/viewer/2022062720/56649efe5503460f94c13881/html5/thumbnails/63.jpg)
63