An Overview of Locking in the FreeBSD Kernel

Video thumbnail (Frame 0) Video thumbnail (Frame 6452) Video thumbnail (Frame 11167) Video thumbnail (Frame 12915) Video thumbnail (Frame 15220) Video thumbnail (Frame 17867) Video thumbnail (Frame 20317) Video thumbnail (Frame 25841) Video thumbnail (Frame 31090) Video thumbnail (Frame 32217) Video thumbnail (Frame 36927) Video thumbnail (Frame 40054) Video thumbnail (Frame 42197) Video thumbnail (Frame 46252) Video thumbnail (Frame 47502) Video thumbnail (Frame 51616) Video thumbnail (Frame 56015) Video thumbnail (Frame 57157) Video thumbnail (Frame 66334)
Video in TIB AV-Portal: An Overview of Locking in the FreeBSD Kernel

Formal Metadata

An Overview of Locking in the FreeBSD Kernel
Title of Series
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
The FreeBSD kernel uses seven different types of locks to ensure proper access to the resources that it manages. This talk describes the hierarchy of these locks from the low-level and simple to the high-level and full-featured. The functionality of each type of lock is described along with the problem domain for which it is intended. The talk concludes by describing the witness system within the FreeBSD kernel that tracks the usage of all the locks in the system and reports any possible deadlocks that might occur because of improper acquisition ordering of locks.
Slide rule Functional (mathematics) Overhead (computing) Thread (computing) Link (knot theory) Multiplication sign 1 (number) Semantics (computer science) Rule of inference Variable (mathematics) Wiki Exclusive or Read-only memory Term (mathematics) Queue (abstract data type) Energy level Extension (kinesiology) Condition number Block (periodic table) Interface (computing) Interactive television Term (mathematics) Semantics (computer science) Cartesian coordinate system Open set Hierarchy Type theory Data management Process (computing) Software Personal digital assistant Computer hardware Function (mathematics) System programming Interface (computing) MiniDisc Condition number Right angle Musical ensemble Videoconferencing Block (periodic table) Arithmetic progression Family Reading (process)
Email Trail Group action Thread (computing) Code Multiplication sign Insertion loss Disk read-and-write head Wave packet Web 2.0 Frequency Mathematics Propagator Bit rate Term (mathematics) Operator (mathematics) Hash function Queue (abstract data type) Data structure Implementation Block (periodic table) Point (geometry) Data storage device Variable (mathematics) Thread (computing) 10 (number) Befehlsprozessor Frequency Order (biology) Pattern language Block (periodic table) Writing Reading (process) Library (computing)
Thread (computing) Latin square Multiplication sign Point (geometry) Moment (mathematics) Electronic mailing list Planning Insertion loss Thread (computing) Number Word Term (mathematics) Hash function Right angle Data structure Block (periodic table) Implementation
Trail Thread (computing) Block (periodic table) Multiplication sign Point (geometry) Thread (computing) Computer programming Frequency Data management Data structure Block (periodic table) Implementation Metropolitan area network
Email Mobile app Multiplication sign Weight Student's t-test Mass Thread (computing) Ring (mathematics) Bit rate Bridging (networking) Right angle Data structure Block (periodic table)
Point (geometry) Trail Mobile app Thread (computing) Multiplication sign Decision theory 1 (number) Set (mathematics) Insertion loss Menu (computing) Likelihood function Event horizon Variable (mathematics) Programmer (hardware) Exclusive or Propagator Term (mathematics) Authorization Data structure output Metropolitan area network Physical system Condition number Exception handling Multiplication Weight Variable (mathematics) Exclusive or Category of being Arithmetic mean Data management Frequency Event horizon output MiniDisc Right angle Queue (abstract data type) Quicksort Table (information) Electric current Recursion
Dataflow Scheduling (computing) Group action Context awareness Thread (computing) Latin square Ferry Corsten Connectivity (graph theory) Multiplication sign Sheaf (mathematics) Maxima and minima Mereology Field (computer science) Twitter Pointer (computer programming) Mechanism design Befehlsprozessor Kernel (computing) Energy level Software testing Data structure Area Context awareness Cellular automaton Sampling (statistics) Staff (military) Bit Deadlock Thread (computing) Exclusive or Pointer (computer programming) Befehlsprozessor Resource allocation Computer hardware Sheaf (mathematics) Interrupt <Informatik> Right angle Scheduling (computing) Data structure Physical system Programmschleife Modem
Point (geometry) Scheduling (computing) Group action Thread (computing) Overhead (computing) Code Multiplication sign Adaptive behavior Sheaf (mathematics) Traverse (surveying) Field (computer science) Expected value Propagator Term (mathematics) Befehlsprozessor Flag Selectivity (electronic) Data structure Physical system Mapping Graph (mathematics) Planning Bit Line (geometry) System call Vector potential Subject indexing Pointer (computer programming) Software Right angle Pattern language Quicksort Fiber bundle Block (periodic table) Scheduling (computing) Family Row (database)
Point (geometry) Reading (process) Trail Mobile app Implementation Addition Parity (mathematics) Set (mathematics) Insertion loss Polarization (waves) Number Mechanism design Propagator Term (mathematics) Data structure Implementation Metropolitan area network Social class Exception handling Multiplication Graph (mathematics) Weight Cellular automaton Video tracking Electronic mailing list Shared memory Code Instance (computer science) Semantics (computer science) Exclusive or Type theory Category of being Word Personal digital assistant Pattern language Right angle Codec Hacker (term) Table (information) Data structure Reading (process)
Web page Demon Slide rule Implementation Functional (mathematics) Code Multiplication sign 1 (number) Set (mathematics) Parameter (computer programming) Mereology Variable (mathematics) Product (business) 2 (number) Exclusive or Propagator Bit rate Term (mathematics) Flag Interrupt <Informatik> Metropolitan area network Condition number Social class Physical system Mapping Block (periodic table) Basis <Mathematik> Variable (mathematics) Oscillation Distance Type theory Word Condition number Right angle Quicksort
Point (geometry) Thread (computing) View (database) Block (periodic table) Multiplication sign 1 (number) Bit Repetition Computer programming Exclusive or Data management Message passing Kernel (computing) Propagator Kernel (computing) Operator (mathematics) Interrupt <Informatik> Musical ensemble Metropolitan area network Physical system Social class
Functional (mathematics) Existence Thread (computing) Code Latin square Multiplication sign Water vapor Parameter (computer programming) Mereology Rule of inference Number Product (business) Deadlock Hierarchy Interrupt <Informatik> Information security Metropolitan area network Social class Physical system Addition Algorithm Mapping Block (periodic table) Code Planning Sound effect Bit Line (geometry) Measurement Exclusive or Message passing Personal digital assistant Order (biology) Universe (mathematics) Buffer solution MiniDisc System identification Social class Text editor Quicksort Operating system Reverse engineering
Web page Slide rule Scheduling (computing) State of matter Cellular automaton Multiplication sign Queue (abstract data type) Primitive (album) Office suite Rule of inference Physical system Task (computing)
all if he does I'm not aware of it well historically that's the way we did but the the the right the that's a good thing we have to work on questions comments posted taxes and the human interactions between the per year for each of the extent to which the Americans would like that if I go to the semantic extension about the band played in the solution and that is where that's time it statementing it sleeping habits of the departments and going to make is that I would become evident wanna talk about terms that versus sleep use OK so the method is shown short-lived that's where mu that they've been essentially new that as we have that what's called a blocking new text and about backing new taxes 1 level spend and then if they can't get the resources in a black on it turns out the campaign about problems and 7 using new taxes it was that can always right and if this is the has and that is a legacy of Usenet available land for a new text that's the process can is holding and they knew that passes when the guy up because they're running up and running as soon as they get started and then and then then it releases them so eventually we can get there the balance between backslash an activity in the ones down here with the sleek used on sleep cases while something where you need to wait for something to happen like your work and for the disk to deliver a block and simply spectacular new band is not gonna make you give up a lot we taxes scandal around the basket links allow new text-handling threads to and I have no will cause you to be able to make forward progress OK so the so that new taxes we have these things called the on new taxes on which a general use of black and faxes we have made the right acts which are from your taxes that have shared exclusive semantics user exclusive use only and not really must which give you fast access for things that I read much like and as I come back and look at each of these in detail when I relax the user so it can families and the sleep queue interface out again as what was the time sweet typically where it was something that we could have some outside stimulus you waiting for packet arrival network you're reading for black to a on it up from a desk you're waiting for the user to type something up so they can be potentially a fairly long time before all of these will come back OK so I have shown exclusively on axis as 1 of the fastest and simplest of the fleet warehouse the condition that which is really just like the back and the traditional sleep and wake up that I described earlier I have the all singing all dancing lab manager of full functionality sleep blocks with the commensurate high overhead of using them because they do a lot of stuff and the witness subsystem and where it is as with standard then that's would make sure that you don't like the latter these rules that I'm going to talk about as we go through these different watch but I saw how under put these slides up on the the wiki page if you wanna get and later you can do that and this is the place to refer to if you want to ask you for it that the Executive Summary around it so the 1st
thing I wanted was to look at the data structures that we use for managing these blocks terms that the things that are used by the short term you Texas and of as it says that the pattern new taxes the reader writers in the read mostly locks and these are designed these new taxes are designed for our holding just for a short period of time usually just tens of instructions say you know what I you check about you and take some further action on it or you need insert something when less training takes up marvelous store in the district suggesting that wanted to change you know that have pulling stuff out from underneath you why you're trying to rehearsal so you can't don't operation you give it up and and in the cup final typically see that you new text you do if you want to C code in a new to give it up like I said it's names to protect the read and write access to data structures are people make the mistake of forgetting that they need to check if that they need to protect the operated at a settlement from the last I know you're not going to change it you still lead the whole the new tax so that then that pull out from underneath you OK you're not allowed to go on a times that allow you request and long-term sleep tight lock that is just another out of when the things the witness COBOL check for what it meant rat and a quarter of a sleek black and you're about to go to sleep while you hold a new tax than it was panic in complain wine involved but 1 of the things that we do have is that we track the current lab hold so whenever his head we know who wants that well and the reason that we need to do that is so that we can do that's called primary propagation on at the Apache web priority quietly propagation it has that you may have some relatively low priority throughout that country on and that's an intact and then that's blocked because some higher-priority thread comes along that that that's the CPU and that's in really high priority important led them to hunt and they made the new taxes have about as low priority that but the idea that can't bang because as is higher priority things that all have the CPU's and so the idea of primary propagation is that when this irony around comes along and it seems that this is the fact that it needs new text it needs is about as low priority thread it template I had nothing is high priority to that low priority threat so that library 3rd of mixed up in the queue to understand what's happening I take that surround it releases the new text and that anyone take on it before and after that the the the hit back to us new taxes variables in the math we got so that's the notion of high rate of propagation in order to be able to do that we need to know who hold the new text but so
transparent women tension because the thing that does this and I have some this approach of the things that need to be either do we know have a shadow so that we can quickly find the time span all that is that the band structure that essentially keeps track of everything that's going on
so just as the at the that this is a picture of the terms that structure and you can see know we have the Hashemite across the top and so we're hashing based on people out that interested in and so it's a more interesting hearing lab 18 so we we this hashing out we would find this entry here were just that's for Latin and then we can say we have been the the lack at the moment this thread number 1 here I will infer that we have words member to interesting and what benefit from this right when we have a list of all of the new tax is that it currently holds so it's currently hold then lack 18 here and lock 50 right so but just back up again here are some of the
chapter allows us to quickly find black 10 that after we have refined at times that it in turn plans to the thread that holds lack and it is also list of any threads that are waiting for that loss OK now at times that 1 of the entries 1 of these
entries here is needed each
time the thread blocks so any time you bought we want at times had that the structure which that type of and that in your way and potentially 1st now remember that these new taxes the things that only have a very short periods of time the last thing in data was the 1 man 1 of those at those things me We're taking something that you know is going to be 110 inspection when we go out and do some repairs and inspections demanded something to keep track that I don't think so so how are we going to deal with this we hope that they the cannot only black on 1 thing at a time you could have a bench lot for economic program that that when you get out you're not going anywhere so I hope that what happens is that when you create a threat said 1 of the things that we do is we also at the same time and matter a turnstile for you and that's your time style and so when you should watch secession up to the new text and try and that it's only have so that we can the turnstile that management style and that's the 1 that we
use here OK so the hinterland it that new text nobody's weightings everything's fine this doesn't yet exist now threatened to cancel at the time was packed and so until this time span which was allocated that went to him and set this app and we can well and as you say here and now all construct ring that has lot to this new tax and also has a tensile that it turns over and magnetic everybody got this here and so I I mentioned this picture not be here's a little plant messed up and that the tensile in use of the evidence that it had been turned on in the meantime and that once upon a time is that we had to use the next 1 here from when doesn't have to tune as the next 1 we select a run this is because it's higher priority than spread rate and so when women back up and to acquire the right to bear bridges timestamp this turnstile still in use because of red here but it could can't read that nice the time so as we get the 3 times that the 2 and offered to those met and found that happiness that this and when you get us but you know who cares and every time a student in Manhattan and at times that have here any more than we do know from the structure the the 3 the 3 goes running off yes but it would not work on usually cut mass the tightly coupled multiprocessor here let no that would potentially not work well OK right so this is
that's essentially that right you put that at times that when you show up when you're making your batteries that Manitou so that when you gave us that it's a chance and that's here above the other times that saved in return is threats reckoned OK at the catalog of and even the threat that's about to be and then we recursively propagate higher priority to the whole had the best until such time as it releases so again if we
look at this picture here I have friend that's a threat to mankind and is blocked the red man because thread 1 holds the new tax at this point but if the programmer didn't threat properly then we will get a thread threes primarily to thread when until such time as a threat none gives up the new text that we want and what it was then that one's priority will be pushed back then and in all likelihood red 3 will then get around and weight so that's how we implement the forward yes hence the 1 that implemented this stuff so and these things the so
sled close on so it came as no I'm not good at turnstiles except that all this certain properties that that had these dark and vise versa as it is and use that showed exclusive apps condition variables like works that sort of 2nd big black that under these are the ones that are doing long-term sleeps are typically wedding fried advanced user input in how once again it take for user input to occurring on I have had a heart attack in overtight again know I that doesn't have a propagation because time standards you may have missed a continent or whatever the event is happens this you know on the menu you that crime and the entire system if the disk that hasn't been there yet you can't on and you can't get that overlap and the data right because that's the meaning of having up back so when I don't know other stuff and you were providing propagation because it's just not a sort of sensible thing do I have been allowed under the turnstile out when you request asleep you locked and that gets back to this whole business of this that with with the turnstile collapse these are things where they can have get back if we just get you recursively and the things that are backing you to write and they can have a around because the note that run because have a high enough priority be allowed to run the have you where the whole of the terms that type of whack you now have remained beyond that that the court was just making you want is going to sound that and so on it is not permitted to wear any kind of a turnstile tables that menu of course 1 of these longer-term loss OK now madam and the Protestant structure we kept track of who had the lab and understand about others we can track who is the exclusive lampholder out that of course we don't have the authority to deal with the if you have multiple of shared what holders then the structure as it's shown previously that doesn't have the ability or that we don't have the ability to track the showed what colorful talk about that when we get to that point OK all these last mentioned be because and a decision on whether it's recursive is the surrounded by and where sets upper left in the 1st place there's when you create it you can say the slack was allowed to be recursive what I mean by a recursive but what I mean is that if you already hold the lack or not and had to get another you can say that X marked exclusively again and you will be able to get it it's not something we can have an get panic saying recursive all up it's not recursive but it has recursive managers dutifully give you find another exclusive wrath and is that what that's a bad time for the recursive what the yes it will have that I meant to speak to some of these things so that applied to the Lax because I think I this rollout of those questions were which panoramas
what we're about to do OK so just think about this flow in critical sections which I haven't said about yet and these are in some sense a locking mechanism of a critical section on is bounded back critical and and critical exit and I because 1 of these critical sections the thread can be preempted by another threat so it cannot be thrown off the the CPU and its impact can minimax related to another CPU we had some so you know opening the granting of a similar to that and you know you can do that so that the 2nd cell the single-threaded prior well you'd you'd black that interruptions and will prevent your self from being the schedule well these are useful for perceive you data structures so for example this typically around you perceive you and so if you're going to manipulate that you can just go but you know so that has that resulted an enemy but sperm that CPU I could do with a critical enter and exit and the part where you're going to manipulate the kill is sufficient to protect it and you don't have to have some kind of new text which is a potentially dominate it conflict with that of others in some and CPU-specific memory-allocation structures so if you have a mammoth allocated per CPU up again you in Latin right that Patterson and I emphasize that does not protect system-wide data structures so this is useful and and on that very constrained context OK so far but about acquiring it as the test has already described as having this actually uses companions want all the components were you basically said they compare that to the rest of the application and that then if they match then you stick this in there OK so so then that this action burst onto that is we have a good feel for a laugh and if not the answer that it has this stake in this stuff's background you buy a new text on is stored in them and it gets higher than we have a pointer to the thread's structure of wherever holds a lot so clear that the 2 a social trend but what we do is we compare the lack of field with new tax on around and the best that's in then we spent some atomically stored in the pointer to the acquiring thread and but we don't use the the time that was what was was there previously so you have that the you came back in and what came back was mutex on and then you know you got it and came back is a pointer to a through that's not so then you can get it the other day so not bad you at the back and that's the the the mechanism that were using up and demanded by you just start new attacks on but now that you know and now it's it's long and don't check and see if there were others that wanted but we'll get to that apply some stuff
and then we've got the the new taxes these exclusive access only then that sample has spent on then and then the new text to be available once in a while there's the new text that is in a critical section and so it can't be pre-empted until it gives that thing not all this is to avoid some that possible parallax on it's actually more expensive to obtain and a black new text and so it's really only use for a very low level scheduling staff and little bit of the context switching stop you unless you happen to be working in at 1 little area you're not going to be using spin you kept you're using the regular black in taxes on that which but what I'm about described
here yes and I asked John and he said there were more expensive it is up we right that's that's let we do make up and we can have this this later and go to that as the the right so but blocking new taxes actually use what's called adaptive spinning so in some sense we get the benefits of the spending without necessarily I haven't some the other of drawbacks to it as a mean bag of adaptive spent while we will spend in informal family of the of the of the lack is currently running so that the honor of the latter is currently running the expectation is that that much further to go out and then they're going to be done and then we'll get so that's the plan for that on the other hand if there are not many in their hand up well impending moves us to black because of the potential is the the the we're going to be able to get that and it also meant that it we had a higher priority is gonna propagator priority to that particular the thread and then that will be posted up and to running back and give it up so we get back OK what Endre the Nansen was done with that well or with the new text the letters or waken and again this might seem counterproductive because here for the 1st about we met at 3 things that have another 1 gets the others go back to sleep and that doesn't seem like a particularly effective way to do things but it was stupid to release an uncontestable out so this is just the start that something in that we now have to and the time span traverses certain do lots of things so we don't have the hands when the 1st thread gives it up and that passed things get done and all the terms that it came back to the rooms itself and we have this and just scheduling those things sequentially anywhere on that because they have the same priority in the disordered map and even when they are scheduled concurrently the action as it is probably the thing and so that's good news adaptive spinning anyway not just an immediately but the Minnesota and just wait for inbound they've you'll eventually get and so then it's sort of parenthood and that would make them all up but we actually look at what happens in a section more sensible way
now not taxes it when you want a question but you have to go off and in it you know at them initially has them in the witnesses this is running again registered with with this current and passing when you're done that then got this essentially shut back then deallocate them in d register them from the witness code itself and that's as I know that a lot of work it's not a trivial amount of work and so think that you have something where you need a new tax that's just well for some is a very short lived there the structure of the whole thing out of creating in turn down the new text can ban on the the cost of of using that data structure and so on so forth such things there is a cost however preallocated new taxes and so when you need a new tax instead of going to the creation of business is the new text and were check out lecture mutant tracking a book that allow you actually have government X in your data structure it's just a matter of a to that line it's allocated over there in the poem and have so bad you use something like this where the plant system calls it is where the classic as work it's used it means a structure to track upon a request from the time that you do in the portal to select system call and tell that I have a bit of money the poll described as an and you know we've got that I had been with the networking coming in you just select the 1 that you know it can be about record at a time between when you go in and the selected returns and this and that and then was to protect the couple or flag fields or something it's in that data-structure data-structures no need for bad pointers along and so you know but an index and I would quadruple the size of it in the whole overhead of doing that for quite a descriptor that European art would be prohibited such as the quicker to just say the graphs these patterns use them for a new non- setting in clinical found back were done so kids DECtrace namely with it next to the point where
the latter can read about walks and new directors as a set this exclusive access on but now that we will also be able to do shared semantic so that we can have multiple medicines and single-threaded radios we have since were using that that yes because these are the new terms a new text type that again you have the whole read about overlap when you're going to go to sleep when you're going acquire a long-term long that would prevent the aggregation exclusive was of access of that's just what turnstiles and we do not provide very propagation up for the shared access in this case a cell if you allow the best about of managers and that comes along and the writer has a higher promoted was that the weight for all that we used to go to get the app up but we don't have any way of knowing who they are so we can propagate priority to it all consequently it that's going to be much employees need to use some other mechanism we so have in this case or allow you to our specified it's OK recast number on you Texas if you recurse that's enough others regard request is referring to the exclusive access
than in this class we have we read mostly locks and why this is at the necessary properties the reader right except that they ate many propagation for the shared access so if you know that the parity propagation of what we can do that here and we have to do that in the sense that they showed up hundreds of command a tracking data structure so much that you provide a turnstile when your blanking it in this case you have to put back on the data structure that we can then lead together in a big long list so we now know who the the readers off and so now I can do prior to that issue that we can just run down the list so about men when you call in to do a shared access lap you also have to pass and they pointed to this tracking data structure so it's an issue where you know about the polarity propagation then you're using a loss now that the notion of this is the man designed for fast access for readers so assuming it only relatively few writers they and lot again the idea is as I said it may look mostly just reading and you happen to be ready very often the battle of FastPath so in essence what we do is we really without a lack in and see if any bad stuff happened in if it doesn't have a back up until all things the hard have the front of the good example read mostly data-structure but also for example I would actually and that's very likely to just look about and so that the locus of that go quickly when you do an update to the routing table course than the idea of bebop so if you use 1 of these in an instance where you have a wedding going on but it's not going to it's going to be inefficient the best way to implement this and it is actually a patented by idea CEO is the magic word there and that know has anyone would you feel kind to use the patented implementation at no cost by the Linux beats this criterion but for this is not GPS and so we have to use a somewhat slower technique to avoid doing that way and in the press that this new approach to when no no not for a while I have been actually graph IBM but you know have to do is when the point was that the pattern if we let all of our for perfect competitors uses you know we wanted to be out there and some of them are coming from but it's kind of a pain OK
I have just at the the things that all of the short-term type blocks maps that are you can have an hour and half for short term is you can follow long basis now that interacts that I want to relax the fastest and simplest of these is the shared exclusive locks and and President about should exclusive access you can specify that you can recover costs the NASA so indicate that that if a signal comes in while you're asleep you would like to wake up and handle that signal it as I just said learning about that and then the great capabilities and conclude that 2 does not that implement priority propagation because it's pointless as for the reasons I described earlier you also see a lot
of people doing explicit sleep and wake up time the system that on it's typically things like demons they're just whatever pen mean back and back-and-forth so they'll be but the there and that's swapping or paging or whatever and they have to slow and then win whatever someone decides they need it around the issue would wake up and it does some stuff for 1 minute goes back to sleep so that sets of sleep and wake up so that you will see what is written as sleep and wake up at that in this sort of production and I forget what code that I should at the very beginning that we're not going to lose about what flags and somewhat flags and so on and the sleep and wake up at inside of these condition variable functions and some of you know sort of being used in that way the CV under type of stuff the answer to that right and optionally time user wanna sleep and I'll 105 seconds that were pursuing up comes in I wanna be interrupted would not be interrupted whatever I have to look inside and then you do got the 1 that that just now of the the ones as well I the was it's been waiting longest 1 wake everybody up this would for behavior and you have the Hörmander new tax I have before wakening were waiting on and if you about when we add that the new text is released as part of going to sleep and night don't really described that aspect of it but if you think about what you have in your text to check that the that lack flags and so on and you have that right that's that available belligerent before you buy completely to sleep the class that you had you know that's the new taxonomic oscillate between the time and this new tax and timely that the same someone has no man the back up but since you haven't gotten to sleep now that I have business and wake up OK and warehouse but I have a slide and is known as Ivan if you wake up and remember that forever word which we really don't like so I hope that you have with the new taxes you have a new text is actually passed as a parameter to slide and it says 1 had gone to sleep then release this new chapter and that it's really quite a word that when you wake up the himself flight to sleep says and I don't really need it when I wake up this too very well and will check that since I wanted the textbook rate of course that I so we found
that the most full-featured on about same lab manager all of these can you jump through hoops and do all kinds of exciting things Chinese news that's you can do it requires can request that time out on rock bias and you can do up a program to upgrade it what's called an exclusive upgrade which says I have to show that I want to to be turned into an exclusive lack and that a announced again exclusively at between but I asked for where and when I get and it's something that somehow manages to sneak in and get the exclusive lap beforehand that it had been you need to let me know that also that can potentially go back and check things together but height of side of the band a pass the ownership of the land from the thread to become and this probably sounds a little bit weird why would you wanna do that I have you have it has that man and if you want the that you have to rather needs to be a 1 realizes that what and it's not if if like I acted in 1 of you know that it's like no wait a minute you're not supposed to do that that's not your lap as my talk Lions man and then I didn't be around anymore by the time it needs to be unlocked so the example that I have and I mean that 1 2 blocks of a you know of a food class the fat and you eventually what year it now and I initiated I actually built for that I owe to complete and in fact it's run the idea was completed I may be completely X and that the system and not exist anymore at all and synonymous with the market also plans are happening is the UN's would decide yet I'm here after the system I turn around and say what I had was about knowledge of this I'm that injured this anymore I'm just going back to the kernel and as something like the g yep threat of you are more than rep thread for the device for what can another optimally said at the end of the operation and the threat is a common thread in this by the kernel so always happy and you have we then back again getting lab manager for a decade but it just has enough users that it doesn't ever seem to quite go away and constant let's it does matter that implement priority propagation the notion yeah so that they can get here is that of the about but the
reader Lax here the exclusive of Lax here are that can happen is that if there's enough people coming through when using the shared ones you can stand for an exclusive access to us so because question its of access folder shared ones go when we just keep an abject all the time but you may never get to the point where the exclusive guy gets it that with the Lap Manager
Lax notes that ever pending request for an exclusive what we will not allow any more blocks to come in and so then what 10-point drain way so we do that ensure that the exclusive access can have and the other is is that I'm 1 of those is correct and that is not correct the just different algorithms and you need to know what they are not when you're deciding which for years what can I say so
I would make this stuff work and play well together well in the past we must turn our just like that all that no you have this kind thing before you had that final lap in whether the correct waters were of everything and it was a documented in the comments for the most part when they were up-to-date written on then it can worked OK it when we had single-threaded pronounced but once we start getting all these new taxes and you have just an explosion of the number of maps that in the system it becomes virtually impossible to really know what the correct watering for lacking up without getting yourself into that deadlock and that is known a situation which is rather unpleasant I have so the essential to what has to deal with that lot planning was and believe that is the way it was to start with and that in Unix but in some other operating systems is turned on the assessment and then it matches for the Latin when it sees that lack a disk of those 2 threads a dialog where the that on plants that Maxim on I don't has shown that what has your Emacs editor that you hadn't saved the buffer for well the so many of us that that has been used in your text since the beginning of time and still use to that but is now being checked by the this code is once all partial ordering and the and the measuring is that we put the Lax in the classes so we had a class 1 here is all of the other 1 locks so there's all 101 primal and double bonds and has to go out to an not 2 primary nobel prize and then it's just to various of rules you can only have 1 laugh at a time in a class and you can a quite a lot in a higher than the class and when you're the young so we have 2 threads you're and B and comes along and gets wet number 1 here and from the comes along and and like 2 and something that's fine if you're looking at 1 lot of new possibilities for dialog but now that comes along and wants to wear that meets the criterion is today the class and a rise to lose out on 1 so that's all fine but perhaps because the red be it there's a whenever the enhanced and then over here the whole that's what if we just look at this product and we know that we did not perceive time 101 ion and read the steps but the the the houses are OK and that is a good plant numbered class someone already holds so I can't do that and temporarily get my order to the going to I want us threat a security gap that it's going to really get to have that steady and less than and now that the WAN really get I 1 and come back in we acquire 2 and everybody's happy and we have that lot now but as I say universe this was just sort of a man thing and everyone to a new with the relative when the old days but that with the addition of actin he just became untenable and so on a single and came into existence to actually how about that and since then I have to go back to describe something has to go into these classes on what we're doing is and how have the parameters have sound idea that it's a little bit tenuous to expect them to do that would every lap in the system and so in fact what happens is a lot of things with a predefined certain classes in western those I have enough of this just figures it up on its own auditors who comes up and it matches the war in which things are used and it but has its own notion I know about what the supposed to be and then when it sees a violation of the hierarchy is a complex and with that the the well known as a reward kind of thing that you regretted the land at this line of this function and this this and this and function and you can have and of this 1 you have got to the other water and now you so how can it possibly figure all that well the answer was that and that and in the case of the parts of the shouldn't be programming in the wrong order so you should know that should be so that's there and turns out that I'm going to start up code most of the interesting what's in Texas have already been created and so on and then used in the right way and so there is no less gets it right and you only need to do a little bit of strategic identification pre identification and all this kind of work that so we started out with about what water reversals which in fact man that ever really be a problem but that up there is the less aware and people spend you know amounts apparent debating how best to fix these things but certainly but it has a constant headache although there most is you know that if you're not getting our message is you're not going to be getting that locks in the system and in you but that's the sort of not as a system that's not going to die lacking unlike some other systems have and that the matter is is is all that is why this other witnesses are also extremely valuable when you're jumping into a piece of code that you haven't looked around for a while maybe never worked on and see what we know about the water is but I think the you 1 you I and and specifically about doing things in where the water is run by half something at effects that can often be a little more difficult but as say much of the effects it's fixed and you just know enough to get locked from that but right so that is what I have to say I am I met
put the slides up and I want to do a last night and I couldn't get it works only up to the end but I haven't put the slides that I have on the the week you page whatever it is and I will have about 3 minutes for questions you certainly get witness to dump out the state of what watering rules that task John you know the answer to the 1st question then in the there also this the interlocking still not much so of is all the under I have to mention about those here who the the the earlier and the other and the yeah well that was 1 of the 1st places look when I went to read the chapter in I only went on to a 3 wild-goose chases cell the eyes yeah of they are using the wake up primitive in this system so they identify whatever is the threat that should be awakened and then they issue wake up ticket office lead to put on the run queue they all that opposes that is put on a run queue and then the schedule will decide when you get actually run OK anything else stunned them all and I said but you very much time