All right. Good morning, everybody. It's Wednesday. Why don't everybody stand up and we'll, yeah. Everybody. There we go. All right. A little bit of a stretch this morning. So Friday is the exam. Today we're going to talk about we're going to finish segmentation. We just have a few slides on segmentation, and then we will go over the practice exam from last year. Or at least portions of the practice exam that are relevant. We'll talk a little bit about the solutions and how people think about things. So first of all, I just want to finish talking about segmentation, because there probably will be a question about segmentation on the exam. So on Monday, we talked about different ways of efficiently translating virtual addresses to physical addresses. We had goals for this. The goal was that the operating system would be able to tell the hardware periodically not every time, because that's too slow, but tell the hardware how to translate virtual to physical addresses. And the hardware would be able to do that translation on the fly very efficiently. And this is important, because we are translating every address, every time a user program or even, frequently, the kernel uses a memory address, the hardware has to translate it. So this needs to be fast, and there also needs to be a way for the operating system to set the policy. So we're talking about mechanisms for address translation, but also those mechanisms have to be flexible enough to allow the operating system to dictate what the policy is. So we talked about base and bounds. Base and bounds is potentially the simplest, and we talked about how that wasn't a good fit for our address base abstraction, because base and bounds gave each process one contiguous piece of physical memory, but our address-based abstraction produces a virtual address space that's very, very sparsely populated with actual data. So mapping that onto base and bounds didn't work. The way that we extended this idea and made it fit our address-based abstraction better was we introduced the idea of segments, or allowing a single user process to have multiple base and bounds. It's a pretty simple extension of the original base and bounds idea. And now what we can do is we can essentially, let's see if I have this nice picture of the address base somewhere back here. No, no, wait till I'm back. Oh, this is, oh, those. So where did it go? Here we go. So we can have one segment for the code, one segment for the heap, a segment for a stack, a segment for any libraries that might be loaded, et cetera. And we can avoid all this wasted space that we were going to have with base and bounds, all this internal fragmentation. So the idea is that, again, this is a pretty simple extension of base and bounds. There's one additional piece of information I need because in base and bounds, the implicit starting place of the one segment per process was address 0. So now I need to, for each segment, record where does it start in the virtual address space? Where is it mapped to in the physical address space, the base physical address, and how large is it? So I have a virtual address, a physical address, and a bound. In order to check if a particular virtual address is valid, I look to see, is it, does a segment exist for this process that this virtual address is inside? If the answer is yes, then the address is considered valid. If the address is no, then I have an invalid address that's being used, and I need to decide what to do, potentially that kaboom graphic. And then in order to translate this, I compute the offset into that segment. I do that by subtracting off the segment starting virtual address, and I apply that offset to the base physical address. So here is a graphic showing how this is done. So beginning of time, MMU has no state, knows nothing. Sees a process using virtual address 10,000. What happens next, Andrew? Yeah, it's going to produce an exception. It's going to tell the kernel, hey, the process tried to translate this address. I don't know what it is. So let's say this is a valid address. What does the kernel have to tell the MMU, Paul? Well, it needs to tell that it's valid, but is that enough? What else does the MMU have to be able to do before this instruction can complete? Jeremy? Yeah, I need to know how to translate it. Again, there's no failure here. I'm using memory. Either the process dies, or this is translated transparently by the MMU. So in this particular case, let's say that what the kernel tells the MMU is, yes, in fact, this process does have permission to use this virtual address. And in fact, that virtual address is inside a segment that starts at virtual address 0x10,000. The base physical address, this is where this data is stored in real memory, real actual physical memory, is 43,000. And the bounds are 1,000. So again, our check says, is this address inside a segment? So is it between the segment start and the segment end? The segment start is 0x10,000. The segment end is 0x11,000 in virtual address space. And so this is a valid address. What does it translate to? So here's a good question. Is the base a physical address or a virtual address? I hear physical. I hear virtual. I hear lots of right answers. Who wants to challenge the premise of this question? Rumbly? No. Who wants to say it's a virtual address? Frank wants to, you want to say it's a virtual address? No. It's neither. It's just a length. It's just the size of a segment. It's applied to both the physical and virtual address. This segment should have the same length in virtual address space and in the physical address space. So the bounds is just a length. It's just a scalar quantity. It's not an address. It cannot be translated. It's used to check that the address is valid and determine the size of this segment. So Frank was partly right. This does translate to a physical address. What address does it translate to? Tal, you think it's what? 10,000, so that'll be 53,000. Who thinks that's the correct answer? Anybody else want to put up a different proposal for how to translate this? Let's go back a slide. How do I translate a virtual address? I take off the segment start from the virtual address and I apply it. So think about it. There's some piece of the virtual address space and there's some piece and it maps to somewhere in physical address, the physical address space. So I need to compute how far into the segment is this address and then apply that to the base physical address. So back here, who wants to give this another shot? Yeah, Nick? 43,000. How did he do that? This is the start of the segment. This is the address I'm translating. I take this address, I subtract the start. What do I get? Zero. I add that to the base address and I get 43,000. And again, so this is designed to express the fact that this segment in virtual address maps to some piece of physical memory. How large is this piece of physical memory? Look, how large is the segment? Swetha? Yeah, talking about segmentation, Sean. 1,000, yes, OX 1,000 or 4,000 or whatever it is. Hex, it's 1,000 hex. That's how large the segment is. So the distance between the start and the end of physical memory is 1,000. So there we go, 43,000. What about this address? What happens if the process tries to translate this address? Alyssa. Yeah, so what does the MMU have to do? Well, do we know if it's valid or not? It has to ask the kernel because this does not fall into the segment that the MMU knows about. The base of the segment is OX 10,000 and the bounds is 1,000. So the segment starts at virtual address OX 10,000 and extends to virtual address OX 11,000. And this address is not inside that, so it has to ask the kernel. And now let's say the kernel says, oh, yeah. I hadn't told you this yet, but the process also has another segment. Starts at OX 100, extends for 500 hex, and is located currently at 16,000 in the physical address space. So how do I translate this address? Remo. So that gives me what? 300? OK. And then what do I do with that? And so what do I get? OX, yep. So this maps somewhere else. And in fact, the base for this was 43,000. The base for this was 16,000. So this is actually more towards the front of the virtual address space, but it actually maps. This maps towards, well, actually, you're right. These map in order. They're just not in order here. So I took the virtual address, I subtracted the starting address, and then I added that to the base. This is not, once you do a couple of these, these are not too hard. Subtract the beginning of the segment, add that to the base physical address. What about this? The valid hex address. What happens here? Jeremy? Yeah, no, I mean, is this an invalid address? No. It just happens to spell something funny, right? What happens? Bethany? No. I mean, is it inside a segment that the MMU knows about? No. So what does the MMU have to do? Well, does the MMU know whether that segment exists or not? Yeah. Ask the kernel, right? And in this case, because this is a funny address, I just killed the process. But I don't want to make you guys prejudice against dead beef, right?  On your OS161 kernel, dead beef will never be a valid user address. Why is that? Maneesh, what's that? I can't hear you. No, it's not greater than 2 to the 32. Anything with 8 hex digits is less than OXFFFF. It has 8 hex digits, right? But where would this address be? Remember the MIPS memory map, Thor? It is outside the 2 gigabyte virtual address space that user processes are allowed to translate, right? Remember, user processes could translate virtual addresses from OX0 to OX80 million, right? This is bigger than that. And so if a user process tried to translate this, it would always be somewhere in the kernels portion of the 4 gigabytes, and it would be killed, right? But again, don't prejudice yourself against dead beef, right? Dead beef on certain systems is maybe a translateable address, right? OK, I think that's the end of, yeah. OK, so that's the end of one I want to cover on segmentation, right? So to kind of, as a nice segue, why don't we do the segmentation-related question from the practice exam first? Let's see if I can get this as big as possible. There we go. OK, this is going to give me a hard time, isn't it? All right, everybody see that? OK, so we just did this. There's one little extension to this, which I think you guys will maybe be able to make sense of, right? So here's a potential segmentation question from the practice exam, right? This is the segmentation base and balance table that's currently loaded into the MMU for the process that's running, right? On exams, this is why they call me Jeffrey the beneficent. I typically use base 10 arithmetic on exams, right? So no hex addition, right? Hex is part of real life, right? But I remember sitting there on exams like trying to remember what D plus A equal, then it's just stupid, right? So hopefully this will give you guys an easier time, right? So just do arithmetic the way you were taught with your 10 fingers and you'll be fine. OK, so here's our table, right? And here are four potential queries to the MMU from the process, right? These are addresses that the process is trying to use, right? And I've divided these into loads and stores and you'll notice that the segments here are annotated with permissions, right? Which is something that I could do. I could tell the MMU this segment is marked read only or read write or whatever, OK? So a load from address 1,200. Yeah, what happens? And where does it, yeah, you also have to tell me from where from? From where from, right? What would happen, right? So you're saying this would result in a successful load and where would that load come from, right? So you did that correctly, but where physical address does this load come from, yeah? And so what's the answer? 700. How many people think that's right? OK, how did we do this, right? We took 1200. We looked in our segmentation table. We found a segment that that address is inside. So we know that this address is valid, right? It's inside this segment, right? It's between the base, which is 1,000, and the top of the segment, which is the base plus balance, or 1450. And then to translate it, we took the offset into the segment, which was 1,200 minus 1,000. That's 200. And we added it to the physical offset, right? And we got 700. Finally, what's the last thing we would have to do to make sure this instruction was able to proceed? Yeah, Nick? Check the permission. So this segment is marked as read, and this is a load. So we are all good, OK? What about a store to address 140,000 Richard? First tell me, is this a valid address? Is there a segment that contains this? Simon? Yeah, that's exactly right. So two things we had to check. We had to check whether it's valid, right? So it turns out that this address is inside this segment. It's between 130,000 and 141,000. It's right at the top, it turns out. And we mapped that to a physical address by computing the offset, which is 10,000, and applying it to the physical offset. So this is 10,000 plus 20,000. That gives us 30,000. And this is a store, and the segment is marked read, right? So we're done, all right? Let's do maybe one more. Let me see which one of these are. Well, OK, what about number three? Yeah, sure. So the offset is computed by taking the virtual address and subtracting the base of the segment, right? So 140,000 minus 130,000. Yeah, so that's why it's 10,000. What about a load to 36,788? Tom? Yeah, so essentially what would happen here is that the MMU would raise an exception and ask the kernel if there was a segment that existed. And maybe there is, maybe there isn't. But essentially, the MMU cannot translate this address. It has to ask the kernel for help, right? What about a load to 84,100? Robert, you can't really see. Yeah, well, yeah, but what was your answer based on your lack of, he thinks it fits into the third segment, and is he right? Yeah, it does, right? Wow, no visibility, right? I'll give you a blurry version of the exam tomorrow. Maybe you'll do better. OK, so 83,000. This is the offset. It fits into this segment. It starts at 82,000, and ends at 85,000. And we compute the offset. We apply it to the physical offset, and we get 2,100. Arithmetic. All right, finally, the last one, a store to address 1,000. What happens? Yeah. Yeah, so this will cause an exception, right? The MMU will say, I know how to map this address, but this operation is not permitted inside the segment, right? And again, this is another case where the MMU will actually ask the kernel what to do, right? Because there are cases where the kernel might mark a segment as read only, but later relax that and actually allow rights to it, right? So in this case, I would say, hey, kernel, there's this operation to this segment. Is it OK or not, right? Yeah. Yeah. I have a few questions. Sure. Yeah, so yeah, I will make that clear, right? And I think on the exam that I wrote for today, I was clear to make sure it says virtual base, right? Yeah, that's a good point. Yep. It was trying to look 85,000 that would not be a valid address. Oh, gosh, corner cases. Yeah, I think. So the question is, is the bounds inclusive or not, right? And I'll make sure that that's specified on the exam, right? I think it would actually have to be below inside the segment, right? So I think that would actually fail, right? So there's a corner case here, which is, is it less than or less than equal to the base plus the bounds? It's a good question. Certainly, we won't ding you for that if we don't make it clear. Yeah, Tim. Yeah, so the question is, is it strictly so, well, that's not what I want to do. If you looked at the slides, I think it said less than, right? So in this particular case, that would fail, right? Because it is not less than the base plus the bound. It is equal to, right? There certainly has to be some agreement about that between the kernel and the MMU. Otherwise, you could have addresses that could map into two different segments. That would be not good. All right, good questions. Let's do a different problem. Does anybody have any requests? What's that? Yeah, number one to seven. All right. Well, that's something I wanted to do. Let's see. So we haven't talked about page tables, so there's not going to be a question on this. This question will be there. OK, we'll come back to this question. I think that's a valid question. So what about question number six? I'll give you guys a minute to think about it. You guys have seen this practice example before. Explain how multi-level feedback queues can starve processes and propose a solution to this problem. Wembley, take the first part of the question. Right. So what, so what? I mean, that is what happens, right? But how can that lead to starvation? Right? Right, so remember with MLFQ, if I block before the end of my quantum, I go up. And if I hit the end of my quantum, I go down. That doesn't have to lead to starvation, right? So what happens, for example, if I have just a couple of CPU bound threads that are running? You know, and let's say I start them at the top queue, what happens to all of those threads? Where will they end up? Yeah, correct. Well, OK, they will get a chance to execute, but what queue will they end up in? I have three CPU bound threads in MLFQ implementation that are just never going to yield. Yeah. They're going to end up at the bottom, right? Will they starve? No, there's no other threads in the system, right? So when the MLFQ scheduler runs, it's going to look at the queues, and it's going to say there's nothing in the top queue. There's nothing in any other queue. I'm just going to keep flooding these threads right. So that doesn't lead to starvation. What if I have three IO bound tasks, right? Or three interactive tasks that are sleeping frequently, right? Where will they end up? They'll all end up at the top, right? Won't anybody starve? No, they're all running together, right? So again, describe a case where I could see starvation. I have more. OK, I have more, right? Yeah, Frank. Right, so here's the thing to keep in mind, right? When MLFQ works, it works, why does it work, right? Why does a low priority thread ever get a chance to run on MLFQ, right? I'm always picking the high priority threads first. Why does it ever get a chance to run? Yeah, so the idea with MLFQ is that the reason why a CPU bound task or thread that drops to the bottom queues ever gets a chance to run is because threads that are in the top queues are supposed to be sleeping a lot. So there are supposed to be times where the scheduler will look at the queues. And despite the fact that there are threads that will be in the top queue, they're not ready to run. They're on the waiting queue, right? They're waiting for some IO to happen, right?  They're all waiting. They're all sleeping. So that's when those CPU intensive tasks get their chance, right? When all of the IO intensive tasks are asleep, right? So it's OK. So I mean, clearly this question implies that starvation can happen. So let's keep thinking about how. And come up with kind of a concrete example of how this would work. Yeah, Albert. What's that? Right, so if there is always an IO, right. So that's exactly how starvation will happen, right? But what will lead to that condition, right? Give me an example of a case where that could happen. Nick, is your name Nick? John. Matthew. What is it? It's always one or two people. Mike, I'm not sure. So embarrassed. Still learning names. Jeremy. OK. Yeah, so again, the idea is that there's always an IO intensive task that's ready to run. OK, but why would this happen, right? What's that? No, because remember, the ideas these tasks are always going to be at the top, right? The idea is that the IO intensive task will always run for a short period of time and then block, right? Damn. OK, so there could be a lot of them, right? So if I have a lot of them, if I have many, many, many, then the idea is that the probability that there's always one ready to run is pretty good, right? But what's the other important variable here that nobody has identified, right? What do IO intensive tasks do, right? They wake up, they compute briefly, and then they sleep. And while they're sleeping, that's when the CPU bound threads potentially have their chance. So what's an important aspect of their behavior that we need to think about when we talk about salvation, Paul? That's not what I'm thinking of, Sean. How long they sleep, right? Even if I have a lot of interactive tasks, right? If they sleep for long periods of time, right? Let's say my interactive tasks wake up, they compute for one time, and they sleep for 1,000, right? Then even if there's like 100 of them, there will be periods of time when they're all sleeping, right? And when they're all sleeping, that's when those CPU intensive tasks get their chance, right? On the other hand, even if I have a small number of CPU intensive tasks, but the sleeps are very short, I can starve CPU bound tasks, right? Let's say I have two blocking tasks, right? But they compute for one time unit and block for one time unit, right? With the strict MLFQ implementation, right, I'm going to run them, they're going to block before the end of their time quantum, they're going to stay at the top, but they're going to be back from the ready queue before you can say whatever. So even a few of those, right? Even if I only had three or four tasks like that, I could still starve my CPU bound threads, because there's always an IO bound thread that's ready to run, right? So the amount of time the IO bound thread spends sleeping is extremely important into figuring out whether or not you're going to have starvation, right? Any questions about that? It's an important aspect of MLFQ, Oh, yeah, well, no, that's what we're talking about, right? So the other thing we talked about with MLFQ, right, is if I need to decide how to handle yield, right? If I yield, the problem is I'm right back on the ready queue, right? So probably I don't want a reward task for yield, right? Because then, if I'm smart, my way to gain the system is just compute, compute, compute, compute right before I get to the end of my time quantum yield, right? I'm ready to run again, so I can essentially remain in that queue forever, right? So that's not good, right? So I probably need to actually look at blocking behavior, right? So I need to reward threads that move from the ready queue into a weight channel or a weight queue of some kind, right? But again, how long they spend waiting is kind of important. All right, and we talked in class about one solution to this problem that's kind of gross. Does anyone remember what it is? Nothing. Yeah, it's like there's this concept in the Old Testament of the Jubilee year. Every seven years that everybody takes all their money and puts it in one big pile and then just redistributes it between everybody evenly again. Sound like, I don't know, today in America, that kind of sounds like a nice idea. But that's kind of what we're going to do, right? So periodically, we're just going to say, OK, we've rewarded you guys for long enough. We're going to throw you all back in the same queue, and then the CPU intensive task will get their chance again, right? Because now they're competing on equal terms with all the Iobon tasks, right? Any other questions about this? Sorry for my bit of socialist reference there. OK, let's see here. I think there was one more of these I wanted to look at. How are we doing on time? 10 more minutes. Well, let's see. It's not that interesting. What about this guy? Oh, I think that one's kind of obvious. So why don't we look at the long answer questions for the last 10 minutes? OK. So OK, why don't we look at the priority inversion question? This is a neat question, I think. It won't be on the exam, sadly, because you've already seen it. But you might want to think about the interaction between synchronization primitives and priorities and schedule it in general, right? So here's the issue, right? So we talked about how priorities are an input into the scheduling process that it's designed to give the scheduler some external feedback about what to do, right? And some schedulers, for example, like the rotating staircase we talked about, uses a priority as a way of dividing up resources, but has nice ways of guaranteeing that starvation doesn't happen, right? Because in every large time quant of every thread in the system gets a chance to run regardless of its priority, right? So that's one of these nice things we talked about, about the things like the rotating staircase, right? So but in certain types of systems, priorities are used in a much more strict fashion. So for example, as soon as a high priority thread is ready to execute, it will always preempt a low priority thread, right? And this is done for good reasons sometimes, right? So we talked about, for example, these real time systems where I might actually, you know, if the high priority thread is the thread that's going to stop the robot wheels from turning, right? And the low priority thread is the one that's sending a message back to Earth, right? Then the high priority thread might say, you know what? That message is not going to be very useful if we're at the bottom of a ditch, right? So maybe you need to stop doing that, even if it causes you to fail, and I need to run so that I can steer. So but this can have these sort of ugly interactions of the synchronization primitives. And this question is entirely, in fact, it's not at all sort of made up, right? So this kind of system actually, this kind of problem actually happened, and there's sort of a famous story about, I think it was one of the Mars rovers that suffered from this problem. What was that? Pathfinder. Yeah, Pathfinder, right? So one of the Mars Pathfinder rovers had this exact issue, right? So again, so here's our scenario, right? We have a system with three threads, right? One at high, one at medium, and one at low priority, all right? Now let's say that we have a shared resource on the system that's protected by a lock, OK? And these locks are the kind of locks we talked about when a thread is holding them. Other threads will have to wait, right? And again, this is a non-preemptible resource. So what I just said, right? If I have the lock, you've got to wait for me to finish, OK? So can anyone, I mean, again, the solution to this is out there, and people may have read the story already, but can anyone describe a situation that would cause a high priority thread to become blocked? Essentially indefinitely, right? So again, our goal here is to schedule the system so the high priority thread always runs when it's ready to run, OK? But can anyone describe a scenario on this particular system where an ugly interaction between this synchronization primitive and this strict priority scheme would cause the high priority thread to potentially be blocked, again, forever, right? Or at least for an indefinite period of time, for a period of time that is completely outside of its control? Anybody want to pose a guess? Yeah, right? OK, right, so this is exactly right. So this is what happens, right? The low priority thread acquires the lock, or holds the lock for some reason. It had a chance to run, it grabbed a lock, right? The high priority thread needs to access that shared resource, so it needs the lock as well. So now what happens is it starts waiting on the low priority thread. Now, normally, so let's say that was our situation, right? So let's say you just had those two threads, high priority thread, low priority thread, low priority thread grabs the lock, starts doing something, high priority thread has to wait. What would happen? What would normally happen, Jen? Right, so high priority threads can't run, because the low priority thread is blocking it. But assuming that the low priority thread is running, it's going to finish, right? The critical section is bounded, it does whatever work it needs to do, it drops the lock, and the high priority thread gets to run, right? What causes the problem here is this medium priority thread, because the medium priority thread will always print the low priority thread, right? This is a strictly scheduled system, right? So when the medium priority thread is ready to run, the low priority thread has to wait. And now what can happen is that the medium priority thread is running and doing a bunch of random stuff, right? The low priority thread is blocked waiting for the medium priority thread, and the high priority thread is blocked waiting for the low priority, right? So the high priority thread is now, and again, this is exactly what we didn't want, right? Because the high priority thread is now essentially blocked by two threads with lower priority. Does everyone understand how this happens? So on Pathfinder, I think, if I remember correctly, the medium priority thread was some sort of communication related thread, right? That was in charge of communicating with Earth. And it ran a lot, right? And when it ran, it did stop. It took a while, right?  It'll just preempt it, right? But the high priority thread can't run, right? And so the medium priority thread's sitting there sending its long love letters back to Earth and talking about all the cool rocks that it found and stuff. And in the meantime, the high priority thread is like, I'd like to move so we can find some more rocks and can't do it, right? Does everyone understand how this happens, right? And again, keep in mind, the medium priority thread is critical here. Without it, you can't have this sort of indefinite weight. Yeah? Well, remember, the low priority thread just holds the lock, right? But it can't make forward progress because it's blocked by the medium priority thread, right? So what we want to happen here is we want the low priority thread to be able to finish whatever it's doing, right? So you could talk about ways that the high priority thread could just like whack the low priority thread, take the lock from it, and run off, right? But let's assume that that's not safe, right? So now, so people understand also what this is called priority inversion, right? Because again, what we want is the high priority thread to preempt the low priority thread. What's happening is the high priority thread is being prevented for making progress by two threads with lower priority thread. So what's a potential solution to this problem? Now all these hands go, great. Yeah. Yeah, so most solutions to this, and there's a number of ways of mechanisms for doing this. We could talk about a few of them, right? Involves some form of priority inheritance, right? Priority inheritance is the concept that if I'm waiting on a thread, right? If for whatever reason, a high priority thread is waiting on some other thread or task, then that thread that's causing it to be unable to make progress inherits the priority of the task that it's waiting on, right? And so I mean, can anyone, like, let's say we have a priority-based system, what would be one way of doing this, right? Or what are some requirements of this solution, right? What do I need to be able to detect, first of all? So it's a nice idea, right? It's the right idea. But what do I need to be able to do in order to implement it? Yeah? I love the logic. Yeah. So the first thing I need to be able to do, right, that might be a little bit subtlest, I need to be able to detect when this is happening, right? So when the high priority thread is blocked, right? Because the high priority thread could be blocked for all sorts of reasons. It might be doing IO, it might be doing other things, right? But in this particular case, right, when it goes to acquire the lock and is put on the, you know, let's put this in OS 161 terms, right? Goes to acquire the lock, it's put on a weight channel, right? I have to be able to figure out who holds the lock, what's the priority of the thread that's holding the lock? And if the priority of that thread is lower than the thread that's trying to acquire it, I need to do something to boost it, right? So we talked just very briefly, right, about lottery-based schedulers, right?  So how could you do priority inheritance with a lottery-based schedule? What would be the mechanism? So with a priority-based schedule, I just say, I identify the thread I'm waiting on and I, you know, I give it my priority, right? I'd say, until you're not blocking me anymore, you are now a high-priority thread, right? Because you're forcing me to wait. How would I do this with a lottery? It's kind of an elegant solution to this using lottery schedulers.  Remember, lottery-based scheduler, everybody has some number of tickets, right? The system holds a lottery. Chooses the thread to run, yeah, remember. Yeah, sometimes all of them, right? So a high-priority thread might say the low-priority thread, here. I've got all these tickets, right? I can't use them because I'm on the waiting queue, right? Waiting for you, right? So here's all my tickets, right? Go play the lottery. Now you're going to win, right? Now you have a much higher probability of running, right? Again, a lottery scheduler is not, a lottery scheduler does not suffer from starvation, but a lottery scheduler could still have this priority inversion problem, right? Or at least what could happen on a lottery scheduler, right? The medium thread would not be able to prevent the low-priority thread from running forever, right? But it would slow down the low-priority thread quite a bit, right? Because if I assume the medium-priority thread has more tickets, it's going to win more often to get a chance to run more often. Meanwhile, the high-priority thread is still waiting, right? So a lottery scheduling would make this problem a little bit nicer, right? It wouldn't lead to indefinite starvation, but it would still have this priority-inherence problem, in problem, right? Where a high-priority thread is waiting on a low-priority, right? So with lottery schedulers, one of the nice things they proposed when this idea was introduced was, yeah, this idea of transferable tickets, right? So I give you my tickets and now you can play with my, you can play with my chips, right? All right, any questions about this type of question? Yeah, Sean? No, not necessarily, right? I mean, any scheduler to some degree becomes more, yeah, as the number of threads increases, right? Any scheduler becomes more challenged, right? Because I have more, you know, if I have, again, we talked about this, right? If I have four cores and four threads, I'm in good shape, right? I don't need a schedule, right? But as the number of threads starts to go up, number of tasks starts to go up, dependencies between tasks start to emerge, and so any scheduler starts, right? But a lottery scheduler, it's the same mechanism, right? I just have more tickets, I have a big lottery. That's a good question. Any other questions about this question or any other ones on the practice exam or anything? All right, so Friday. We will start at 9 a.m. sharp just to prepare people. I don't know how to do this, but I think I'm going to ask people to kind of leave coats and book bags, like maybe in that hallway back there or in the front of the room or something, just so I don't have to worry about this. We had an incident last year at the midterm that I don't want to repeat. So please bring a pen. Please bring your UB ID card. Please be here at 9. If you miss it, sorry. If you're late, then you'll have to work a little bit faster. So we'll see you on Friday. Good luck.


umpteenth press conference of the administration. The president will have an opening statement. It's a half and half, far and domestic. Helen will open right, and Mike will follow, and Helen will close at the appropriate time. Joanna's on the front row for the first time in history. Follow-up pertain to the answer. If he doesn't answer the question, then try to get another question in. But don't do a two-part follow-up, you know, one on Europe and one on Far East. Uh, anything else? Okay, good luck. President of the United States. Please, I have a brief statement here before taking your questions. I'd like to touch briefly on two important issues. First, the deadline for Americans paying their taxes, April 15th, will be upon us in less than a week. April 15th is also the date that the Congress is required to complete work on a budget resolution. Tens of millions of Americans will meet their deadline.  But will Congress meet its deadline for the budget resolution? We hear the same tattered old argument that the American people are undertaxed. Well, the American people are not undertaxed, but their patience is overtaxed. Today, taxes take the same share of the gross national product as during the 70s. But government spending as a share of gross national product has soared up and up. So I urge the Congress to forget about raising taxes and concentrate instead on controlling spending and putting governments' financial house in order. And that'll help our economy and continue the best economic expansion this country's seen in a quarter of a century. Second issue is aid to the Nicaraguan freedom fighters. Two events in recent weeks have underscored the urgency of our aid request to the democratic resistance. First, the Nicaraguan communists sent troops into Honduras on a search-and-destroy mission to kill off the freedom fighters. Second, the Sandinista Communist torpedo the Contadora talks. Talks conducted with 12 other Latin countries who seek peace in the region. And these events demonstrate that the Nicaraguan communists will never make peace with their neighbors or with their own people unless the pressure on them increases. The communists must realize that they cannot crush their opponents and our assistance can ensure that the freedom fighters are not crushed. That assistance will give Nicaraguans a choice and it will give diplomacy a chance. Four out of five Central American countries now have democratic governments, democracies that are bipartisan policies that help to bring about. We must stick to this bipartisan strategy and this coming week the House of Representatives will be called upon to maintain that tradition. Action now is essential. We cannot afford further delay. This proposal must not be held hostage to any other legislation. Through its vote next week, the House can show the world that the United States is determined to defend freedom in Central America. The Union, Fidel Castro, and the Sandinistas are determined to make the region a communist enclave. Well, we must not, and we will not, permit that to happen. Mr. President, do you have any solid evidence that Gaddafi is responsible for the recent acts of terrorism and if you are contemplating major retaliation, won't you be killing a lot of innocent people? I'd like to follow up. Helen, we have considerable evidence over the quite a long period of time that Gaddafi has been quite outspoken about his participation in urging on and supporting terrorist acts, kind of warfare as he has called it. Right now, however, I can't answer you specifically on this other because we're continuing with our intelligence work and gathering evidence on these most recent attacks and we're not ready yet to speak on that and any action that we might take would be dependent on what we learn and so I can't go further. Mr. President, I know you must have given it a lot of thought, but what do you think is the real reason that Americans are the prime target of terrorism? Could it be our policies? Well, we know that this mad dog of the Middle East has a goal of a world revolution, a Muslim fundamentalist revolution which is targeted on many of his own Arab compatriots and where we figure in that, I don't know, maybe we're just the enemy because it's a little like climbing Mount Everest because we're here, but there's no question that he has singled us out more and more for attack and we're aware of that, as I say, we're gathering evidence as fast as we can. Mr. President, Colonel Gaddafi threatened today to escalate the violence against American civilians and military targets throughout the world if his country is attacked. Does he have the ability to strike here on American soil? Well, he has, we know that there are a number of his country, but in this country he has even suggested that he could call upon people to do that and we certainly do not overlook that possibility. We're going to be on the alert, non-guard for anything he might do. He has threatened repeatedly and recently that he will bring that kind of warfare to our shores directly here. Of course, it's kind of hard to keep up with him because just a short time after this recent TWA explosion, he went on the air to state that this was an attack on innocent civilians and pure terrorism and he wouldn't have anything to do with that. That's the same man that referred to the slaughter of the innocents in Rome and Vienna airports as a noble act. So I don't know whether you count on what he says for your real information. I think you just ignore that and go looking for facts. What precautions would you say Americans can take to prevent terrorist attacks at home? Well, we're doing everything that we can and I think all of the law enforcement agencies of America are alerted at this fact and we're not entirely helpless because as I pointed out, I believe, sometime recently or the last time we were here, that in the last year that we have aborted through our intelligence gathering and cooperation with our allies, we have aborted 126 planned terrorist attacks that never took place because of our having the information in advance. Joanna? How can you write with those mittens on? No. Mr. Kaufman, you have said that the Gulf of Sidra maneuvers were designed to protect U.S. maritime rights. As Commander-in-Chief, can you tell us what was so strategically important about the Gulf of Sidra in particular or the concept of freedom of navigation in general that you would risk the lives of American soldiers? When we first came here, there had been a couple of years. That area of the Mediterranean, maybe because of its width and openness, has long been the place that has been chosen by our sixth fleet there for the practice maneuvers that it must continue to take. And those maneuvers are very often very similar because you have new recruits and new crews and so forth and you have to keep in practice. And he then, before we were here, he drew that line and said that the waters behind that line were his. The rest of the world denied that and said those are international waters. For whatever reason, our Navy did not perform those maneuvers for a couple of years and when we came here, it was presented to us that if we did not just resume our normal practice, we could then give credence to his claim and just by not ignoring that line established the fact that it was his private preserve. And this was presented to me and after all full deliberation and consultation, I ruled that those who said this were right and that we should resume what had been a matter of practice with the sixth fleet before. And so we did. And in 1981, we returned to having the maneuver. Now, it doesn't mean that you sail in with a whole fleet just from your nose at him across that line. You conduct the maneuvers out in the Mediterranean but it does mean that there are some ships on the flank, some planes, that in the exercise will cross that line. So it isn't, as I say, a nose-to-nose confrontation that you make just to show off. And this was true in 81, but if you recall in 81, two planes he sent out fired upon planes of ours and we shot down those two planes because I had ruled that anytime there is going to be a possibility of hostility against our forces, they're going to be allowed to defend themselves. Now we did that. Now this maneuver was the seventh such maneuver that we have had in that area. So it wasn't an unusual thing that we set out to do. And he did open hostilities and we closed him. My perception, however, that the administration was hoping to provoke Gaddafi and was prepared to escalate the military confrontation in the Gulf of Sidra. And I guess I was just wondering whether you had given thought to the number of American lives that might have perished there. I have to tell you that there's no decision that anyone in this office has to make that is harder to make than placing these young men and women of ours in uniform in a place where their lives are endangered. It is the most difficult thing to do, but it was not a deliberate provocation and not sitting back saying, oh, goodie, he's going to show his hand and we'll clobber him, not at all. But even the Soviet Union recognizes those as international waters. And again, just by usage or non-usage there of that area, what had been a normal practice for us for a number of years, would, as I say, lend credence to his claim and one day you'd just find that the world had accepted this. So I think we've done this before in other waters and other parts of the world and other nations have also to make sure that international waters are recognized as such. And so there are times when, yes, when people have to be endangered, but not idly and not just for a provocation. Chris? Mr. President, the U.S. is once again asking the western allies to join with you and isolate Gaddafi. So far they have expelled some Libyan diplomats in Paris and in Bonn, but they've taken no economic sanctions in the wake of these most recent attacks. How much of a disappointment is it to you that the Europeans have not followed suit and what do you plan to do about it? Well, we're continuing to communicate with them and talk with them. And we're encouraged by what we've seen in these two countries who have taken some actions along this line. And I'm quite sure that this will be a subject we'll be talking about at the forthcoming summit with our allies. If I could follow up. You've used some very tough rhetoric about Gaddafi.  Do you ever worry that perhaps you're giving him exactly what he wants, the recognition of the highest office in this land? You know, I'd never used the term mad dog before, but I saw one of you using it on television tonight and I thought it sounded good. Mr. President, on the 20th of May, when the new U.S. submarine goes to sea for the first time, the United States will exceed the number of weapons allowed by the SALT II treaty unless you take two Poseidon-class submarines out of service. Will you do that? Bill, I am waiting right now. We've been, we've touched upon this and discussing it, and I'm waiting for further reports on the actual violations of the Soviet. I know that I set a policy some time ago that we would continue to observe the restraints of the SALT II treaty, but in keeping with whether the other signatory to the treaty did so also. Now, there are, there have, we know there have been violations and we still have not come down hard on what, what balances what and what we should do, but we are willing to observe those restraints if they are willing also. And I'm waiting for, we've had a lot of other things on our plate, so we just haven't made a decision on this. Sir, might you try what's being called a proportional response, which is to say, instead of cutting up those old submarines just dry docking them, which sort of walks the line in between? Bill, this is all the kind of thing that we're talking about and we just have not made the final decision as yet. Sam? Sir, a lot of people are saying that Michael K. Dever is making a lot of money because of his influence with you and that that's wrong. What do you think? I have noticed all of that and I've been very distressed by it, Sam. I have to tell you that I have the utmost faith in the integrity of Mike Dever and I've known him probably longer than anyone else in the, in the administration back here. And I also have to tell you that Mike has never put the arm on me or sought anything or any influence from me since he has been out of government. So I think maybe the criticism is just because he's being darned successful and deservedly so. Sir, not just to beat up on Mike Dever, there are others who have peddled their influence either real or perceived and some of them are doing it for governments with which you have a quarrel. Angola comes to mind. What do you think about Washington PR firms trying to put the best foot forward for governments that we have a quarrel with? Well, again, it's private enterprise, I guess, in our country. They don't become my favorite person if they do that, but and I wonder sometimes what their motives are or whether they fully appreciate the nature of their client. But there's no way that I think that we should suddenly raise their taxes or something. Decide in the next few days whether to fund a fourth shuttle orbiter to replace the Challenger. Do you have a sense now whether you might agree to do that and if so, how you can fund it given the restraints of Graham Rudman? I'm going to wait till I see what the proposal is when it comes to me. I've heard rumors and talk of this. I would hope that we can continue this. This was the request from every one of the families of those people who lost their lives on the Challenger that we continue this program. And I said to them that was that's what I wanted to do and would hope that we could do. White House has been requested by Senator Hollings to turn over the telephone logs of conversations that the Challenger launched to determine whether there was undue pressure put on NASA to launch the Challenger. Do you agree that those logs ought to be given to the Senator? I don't know. I'll look into that, but I can tell you this, that all of this attempt to focus on it, that somehow they were pressured to go off beginning with myself. No such thing has ever taken place. We don't know enough about that kind of thing to know whether we should advise them to take off or not. There have been some reports today that say that you have already made a determination to retaliate, and yet your remarks earlier you said any action that we might take would be dependent on what we learned. Do I take that to mean that you have not made any decision on retaliation yet? This is a question that, as I say, is like talking about battle plans or something. It's not a question that I feel that I could answer except that you all know that you've heard me on record for several years now, that if and when we could specifically identify someone responsible for one of these acts, we would respond. And so this is what we're trying to do, is to find out who. Who's responsible for a fine sergeant in our military dead and 50 young Americans lying in a hospital wounded because of that dastardly attack in West Berlin? And if there's a notification enough to respond, then I think we respond. And I've said that over and over again. There has at the same time been a lot of evidence or a lot of finger pointing towards Syria, but in recent months we have not heard anything that specifically targets the Syrians as also being perpetrators of terrorism. Is there a reason for that? Is it possibly because we think Mr. Assad can help get the Americans out of Lebanon? No, no, we'll go wherever the finger points. But so far, the leads have not gone in that direction on some of the more recent events. I'd like to switch subjects on you now, Mr. President. In view of your belief that a summit should be well prepared and produce substantive results, do you feel it's realistic to think that you can still meet your preferred June or July date? Well, it's getting pretty certain from our own standpoint that June is just about out now. Although we will be having some meetings at the ministerial level here that we've arranged with Dobrin and we'll have them here this month. It still could be possible, however, for July. But if not then, later, but I have made one thing plain, the fall months of our election are not going to be months that I will agree to a summit. And I will stick with that. So after June or July, what is your next best time in December? Whether it would be I would think after the election then. No, don't. Mr. President, this has been asking several forms. Let me try another. The reported electronic intercept, congratulations from Gaddafi to the People's Bureau in Berlin. Is that not sufficient evidence to tie Libya to the bombing of the disco? I'm not going to comment on anything that can reveal where we're getting information or whether we're getting information in that way or not. And I'm certainly not going to say answer anything that might endanger some possible sources for that. So I can't answer your question. Mr. President, thank you. There's a theory that air boil producers now are driving down the price of oil in order to hurt their competitors, including American oil producers. Do you think there's such a thing as oil that's too cheap? Well, I have to say that while we have said, we believe that this whole thing with the oil prices should be settled on the basis of the free market. The market in oil is not completely free. There are some major producers of oil who are governments, not private corporations or most people. And it's possible that what you want to keep your eyes open for when we talk about hoping that this will be that this whole thing will be stabilized the price of oil is you can't ignore the possibility well maybe somebody would think of driving it down to the point that they get rid of a lot of competition and then they would do what comes naturally to a monopolist and the price would start going up again as it once did when others had a very dominant voice and hold on the on the oil market. So when I say free market, and I really mean that, I at the same time think that we must keep our eyes open to see that no one starts playing tricks for some kind of illicit future gain. I follow up do you think that we're near that point and if so what kind of action would you take? Now I don't know whether we are or not near that point and as I say this is just this is really hypothetical this is something you say well this could happen and so we we mustn't just go blindly and pretend that not a thing like that could ever take place but then we would have to see what our options were. Jerry? Mr. President I got a question that's not hypothetical Vice President Bush has seemed to be talking lately about the need for low oil prices. Is he off the reservation? Do you disagree with what he's been saying? No he's in his own way and more specifically he's been saying pretty much what I've just been trying to say here now that the free market place is the one the answer to this but he has also been saying thing that if someone is going to destabilize the the whole petroleum industry by trying to take advantage of this present situation that we should be alert to that and what he had in mind was that obviously here the United States has vastly reduced the amount of oil that we have to import and now if we suddenly however have made it uneconomic to produce oil in our own country at the point that we have to go back to further imports we have among other things endangered our own national security this is the this is all that he's talking about but we're saying the same thing. A lot of Republican senators have been saying that he's really hurting himself politically. Do you agree with that? Some people must be reading things into this or maybe it loses something in that transmission from as far away as he is but actually if I have made it a point to get exactly and specifically what he said and I can't find myself quarreling with any of the remarks he's made. Mr. President the do you have any concerns that the escalation of tensions with Libya and in that region may further endanger the American hostages still being held in Lebanon and also do you have any news about their well-being that you might share with us? No we have constantly been contrary to what some people think working on that very problem those hostages they've never been out of our mind for a minute and our efforts have gone in every direction where there seem to be an opening the best that I can say for you to you is that with all the information we have it indicates that they are well but I I would hesitate to think that anything that we might do in retaliation for terrorist acts now and these most recent acts would actually affect them and their well-being but again we have to deal with this terrorist problem we cannot allow terrorists to believe that they can do this to the world Mr. President is the problem of terrorism so serious that it would be inappropriate to consider the lives of those few Americans in setting American policy? Well let me say that they would they would be a very great consideration always and it would have to be the situation depending on what all we learned that would lessen the importance of any American in view of the major target and the more people that might be threatened what we're talking about now is not just hit or miss as there going to be terrorism out there we're talking about the accumulation of evidence of specific acts that are threatened and that then we can take action in advance as I said we did last year 126 times to abort those efforts and this continues to go on so we're still hopeful that we're going to get those hostages back I think I should I've been kind of concentrating here in the Senate Mr. President critics say that your policy toward Libya has been too confrontational President Carter described Colonel Gaddafi as a pole cap and said you don't poke a pole cap to critics who say that military retaliation only begets more violence well I could answer the other thing that there's another side of that that if somebody does this and gets away with it nothing happens to them that encourages them to try even harder and do more and everyone's entitled to call him whatever animal they want but I think he's more than a bad smeller didn't the Gulf of Sidra suggest that perhaps military action here simply begat more terrorist response no if if he wanted to invent that as a provocation aimed at him I've explained what that was a practice that's been going on for several years a number of years before I came here long before those maneuvers held there and seven times since I've been here and so I he just had to invent that to get on the air Mr. President are we in a state of undeclared war with Libya? not on his side he's declared it we just haven't recognized the declaration yet nor will we no it's as I say we're going to defend ourselves and we're certainly going to take action in the face of specific terrorist threats all right and Andrea Mr. President Mr. Gorbachev really blasted you on Soviet television yesterday accusing you of provoking another cold war and criticizing you for refusing to negotiate on the test ban treaty for cutting the size of the UN delegation here is that the spirit of Geneva and what does it bode for the next summer? I wasn't aware that he said all those things things about me there he's must been reason reading I've done task too much why don't we send him some American newspapers no I think his communication directly to me has certainly been in the spirit of Geneva and my responses to him have been so maybe he was speaking to a different audience at that time but we're trying to go forward and as I say we're planning for a summit here I know that they were upset about the action with regard to the UN but that has been under consideration for a long time by us the Soviet Union's delegation was bigger than the next two top delegations in the UN put together which includes ours and there have been enough dissidents or enough defectors that we were aware that they weren't all delegates to the United Nations they had extracurricular activities that were not for our benefit can I just follow on that what do you think the effect of future decisions such as SALT II would be on the summit preparations do you feel in any way that your hands are tied on the SALT II decision which must be made before May 20 because of the summit preparations no we're very much aware of wanting to keep these going and many of these things are things we debated and discussed in the first summit meeting at Geneva in those private meetings and we'll be taking them up again in the next meeting trying to make some sizable and realistic gains in lessening the tensions it all comes under the head of what I told him when we first met and that is that the quote that I used was that countries don't mistrust each other because they're armed they're armed because they mistrust each other but what he and I had to do was find deeds not words that we could perform that would lessen that mistrust to the point that we could reduce these massive armaments you obviously condone the use of violence for the freedom fighters in Nicaragua why then do you condemn the use of violence for people your state department claims are freedom fighters inside South Africa we don't condemn we're trying every way we can to try and bring about meetings of the leaders on both sides we know that there are there are two factions in South Africa in the government of South Africa one of them stubbornly is holding to continuation of the past practices the other, and this includes President Bota once changed and has made a number of steps as many as he can get away with it's just like me dealing with the hill up here sometimes he can't get all that he seeks but we are continuing to urge and have made it plain and I can tell you that he has agreed with us that he finds the past system repugnant and is trying to get changes as quickly as possible we're going to try the question of freedom fighters again freedom fighters in Angola are being given American Stinger missiles are you at all concerned that such high technology American weapons might fall into the hands of terrorists not friendly to the United States I don't answer the questions on the nature of the armaments that we provide in cases like this first of all because I think if we feel that it is worthwhile for us to help militarily a force of that kind then there's no reason why we should help their enemies know what weapons they have or what weapons are being denied them so I'm not going to answer that as to whether we are or aren't with those Mr. President as you said in your opening statement it's budget season in congress and some senate republican leaders are warning that the tax reform that you badly want may die if the budget process doesn't get started moving soon and it's going to take leadership from you to get the budget process moving back to know what are your plans for pushing the budget process started pushing at about 9.30 or 9.45 this morning with the republican leadership of both the house and senate and we're going to keep on pushing with tax reform in this present time how many of you have made out your own tax forms yet all right there's no one doing it for me but I have to tell you I am more than ever convinced we must have reform because when I finally saw it it was all made out and I still didn't understand it sir if I may they say it's going to take compromise from you on the budget willingness to come down on defense spending something to get it moving are you willing to give up something well I'm I'm a little annoyed with the fact that not too long ago the congress of the United States agreed and we agreed to a compromise of a sizeable cut that would leave us with zero growth and then 3% and 3% for the next two years following now they approved that we gave a compromise but every time we make a compromise on defense spending the congress says well that's the point we start new bargaining from and we have so far given up or reduced the budget $294 billion over the next five years and in the world the way it is today and with the questions you've been asking me about Gorbachev and summit meetings and so forth I just think it is foolhardy to continue down that policy that the only place we can get savings in my budget I asked for the elimination of 44 programs that I and the cabinet and the people who run those programs believe they could well do without and the only budget consideration now is being given is to I think maybe tentatively eliminate three instead of the 44 but the problem with our situation the deficit spending and all is government spending too high it has gone way beyond the growth of our economy it had grown beyond the growth of the personal earnings of the people even though last month they increased by $19.5 billion and we just have to face that and unfortunately there's some people up there that for 50 years have been living in a world of running up debt and they can't get out of the habit I never did get back I was on my way back here no alright thank you are you the jakes that causes the orials to lose every time you show up in a game I feel that way I've been there four times and they've lost all four games and I don't think I'm welcome back Sam what should a cubs game next time cubs game next time how about the baseball team in Washington press that say I take you to something that'll make your high flow 127 countries about your leadership and this was done by Mr. Ben Peter who is the chairman and president of the international body builders of 127 countries and I was asked to give you this message and I've been trying to tell it to you forever thank you dear but I want to ask you will you accept the resolution because Mr. Ben Peter offers his headquarters in Montreal the reason he called on me is because I love Canadian birth being born in Toronto I have the details to have a great big party for all of us and he will pay all the expenses well I have to call on the black press tonight and I'll give him an answer what do I tell him all right I send a telegram to your office oh thank you you're only a man I have to tell him I have to tell him Mr. Ben Peter Mr. Ben Peter Mr. Peter


Mr. President, I am delighted to be able to present something very special to you. During the time that I served as your liaison with private sector organizations, I had the opportunity to get to know many leaders in various areas of our society, and they have provided a very special letter which I would like to read. We, the undersigned organizations, welcome the opportunity to join the national observance of Drunk and Drug Driver Awareness Week, December 11 through 17. We share your concern about drunk driving and pledge our continuing support not only during Awareness Week, but throughout the year. We will be alerting our employees and member organizations to the tragic consequences of this national problem and ask them to play an active role in promoting safe and responsible driving on our nation's highways, particularly during the holiday season. This is signed by many, many leaders of organizations, unions, businesses, ethnic groups, black leaders, many other groups, and I am just delighted to be able to present this to you today. Bill, if you'll help me. Thank you. Very good. And now I'm happy to present the chairman of your commission on drunk driving, John Volby. Thank you, Elizabeth, Mr. President, members of the Congress, members of our commission, the presidential commission, and friends of highway safety, I think I would have to say for everybody in the room. Mr. President, you gave us a task some 19 months ago, which I thought would take about 15% of my time, taken about 80, 85% of it, and I'm delighted to have had this great privilege of, again, working in an area that I started way back 30 years ago as commissioner of public works and more recently as sector of transportation, but I guess that was a dozen years or 13 years ahead of time because the public wasn't particularly interested at that time. The media wasn't particularly interested, and we had a hard job getting our message across. Thank God we've had some excellent support. We started off with a wonderful commission that you appointed of 32 people from various sectors of the private and public sector, and people who in most cases have not met each other, but we came together, rather unusual, with practically an anonymous report. It was unanimous in most respects, and I'm not going to try to detail some of the important factors in it. Time does not permit that, but I just want you to know that you've had a dedicated commission. We've had the support of Secretary Dole all the way up and down the line, of Administrator Steve, the head of the National Highway Traffic Safety Administration, which I formed back in 1970 when I was secretary, and it's done an outstanding job, and I just want to know that we're very pleased to be able to report to you, as we indicate here, that in 1982, 5,580 fewer Americans died on our highways than in 1981, 2,800 of whom would have been killed by drunk drivers. It was not the commission, my dear, Mr. President. There was a tremendous number of groups, the mothers against drunk drivers, the students against drunk driving, you name it. We've had them, truckers against drunk drivers, dealers against drunk drivers, physicians against drunk drivers, but it's been a marvelous, cooperative effort, and I'm very, very happy to present you with this final report. Well, John, Governor Volpe, I thank you very much for this report. I thank all of you, too. I'm delighted that so many were able to join us for this important event. Secretary Dole, distinguished members of the Congress, members of our commission, concerned parents and all who've worked so hard to prevent drunk and drugged driving, and of course, the surprise, Elizabeth, that you had here. I'm most grateful for that, and I'm going to take it back to the office, and I'm going to read all those names that are on that long sheet of paper, I assure you. Well, you've seen the beautiful Christmas decorations that are already up here in Washington. One of my favorites is the banner down near the National Christmas Tree. It says, peace on earth to men of good will. A little change in the usual expression there, but I think it's pretty suitable. We as Americans across the country, as we begin to gather with family and friends, today we're helping to make this holiday season what it ought to be, a time of peace and not of tragedy. Drunk or drug driving accounts for annual costs of over $20 billion in medical and rehabilitation costs, insurance payments, and lost production. There was a higher figure on the air last night, given on some of the news, much higher, several times higher than that for the total cost, if you added in a number of other elements, all of them which could be associated with alcohol and the abuse of it. Each year, drunk or drugged drivers cause half of all the highway fatalities, injure some 700,000 men and women and children. For those between the ages of 16 and 24, alcohol related crashes represent the leading cause of death. I know the members of the committee have found out all of these statistics. A drunk or drugged person behind the wheel of an automobile isn't a driver. He or she is a machine for destruction. The American people have paid the bills, seen the damage, and felt the heartache and I think they're saying enough. Last year, when we observed National Drunk and Drugged Driving Awareness Week, I said that if we worked hard enough, we'd make progress, and as John just told us, we have. 22 states and the District of Columbia have enacted tougher drunk driving laws, and in part because of those actions, last year the highway death toll in America did drop and the total drop was 10%. Reports so far this year show that the annual death toll is still dropping and again John gave us the figures on that and the credit for this great achievement goes to you here today and to thousands of others throughout our country have so diligently pursued community and legal action to end drunk driving. Your most important contribution has been a change in public attitude. Today drunk driving isn't a bad habit to be excused, it's a crime to be stopped. On behalf of the American people, I thank you. Let me also say a word of thanks to the members of our commission on drunk driving. You've done an outstanding job, both in heightening public awareness of the problem and in developing recommendations for dealing with it. And a special thanks to John Volpe and John, you've had a long career of distinguished public service. I could call you as I did, Governor, because that's a title you get for life. Mr. Secretary or Mr. Ambassador, it's another title you get for life. But today you're Mr. Chairman and in recognition of the leadership that you've given to this commission and of your faithful service to our country, I'm proud to present you with this Presidential Citizens Medal. Congratulations, my friend. In proclaiming our national drunk and drug driving awareness week, let's all do so with a renewed sense of commitment. Every accident that we prevent, we'll keep fellow Americans from suffering and give our nation a merrier Christmas. So I thank you all, and God bless you, and now I'll get over there and write with those pens that can only write one word at a time.


When they cut the cord with Tony Parker. There's only one reason to do that You are coaching a player who has more power than you do as the coach What mellow could do for the Rockets is what he refused to do for okc It's great that Tony Parker bought in It's great that Manu bought in But you can't expect every young player in the NBA, especially Kawai Leonard Who is the youngest MVP of a finals ever 22 years old? All Kawai Leonard's done his whole life has had doubters improve him wrong Kawai not LeBron Kawai not MJ, Kawai not magic, Kawai not bird, youngest finals MVP ever And all pop wants to tell you is get over yourself Well, maybe Kawai Leonard saying coach I was just getting into myself when they cut the cord with Tony Parker There's only one reason to do that and it's because he burned his bridge to Kawai Leonard But for however it happened and I'm gonna say it one more time I believe Tony Parker was 100% correct when he said his injury was a hundred times worse than Kawai Leonard's because he Did rupture and Kawai had a bruise a thigh bruise. Somebody just keeps throwing out there Well, he might sign long-term with the sixes He might have signed long-term with the clippers might sign long-term with the Celtics or this or that Don't mention anything about him returning to the Spurs But what if the Spurs are clear to deck because all these guys the Clay Thompson, the Kevin Brandt All these guys are gonna be available next year. Kawai is not trying to Join some super basketball team. He's not trying to join some organization. He's just trying to go to Los Angeles He doesn't have stipulations. Who's the coach? Who's the general manager? Who are the other players? He just wants to go to Los Angeles that being the clippers or the Lakers. So I wouldn't read too much into this I believe there's a lot of things that people might want to get Philadelphia or someone from the east involved because they Don't think that pop will trade him to the Lakers or trade him to the West We also have to remember that just four days ago where the Sixers were at was not even including faults in a trade For Kawai Leonard and so my my guess is that the Sixers not wanting to include faults The Celtics not even wanting to include Jalen Brown set the tone for San Antonio or the Lakers to revisit San Antonio say we are your best option and maybe once again not give them the offer the Spurs want If I'm Luke Walton, I don't love it that I'm not invited to that initial Recruitment meeting that that pitch meeting in number two I am stunned and disappointed in Luke Walton that it appears He's desperately calling around the league seeking advice on how to deal with LeBron James I thought Luke was more of his own man in one hand Coaching LeBron can be easy because you know what skip. He'll always show up He'll always be prepared. You know, he'll put the time in that's you know He'll give you a maximum effort. I give you that never gonna have to get that call Seeing LeBron is out this time of night LeBron is doing that when you have him is Championships or bust and everybody can't coach under that kind of scrutiny and stress Everybody can't play under that type scrutiny and stress And so when you factor all that in that he's on your team, he's a dominating presence It's going to be tough I think it's a great idea for Luke because Coaching LeBron James is gonna be like unlike anything he's ever experienced as a coach Obviously with the Lakers is a bunch of young kids when he had Golden State, you know They just nobody there wielded the power of LeBron James or and and even had his personality With dealing with LeBron James you at you are coaching a player who has more power With an organization than you do as the coach. Luke Walton can earn LeBron's trust, but you got to earn it It's not gonna be given and this is this is a tough guy. There's it Look, there's no question LeBron knows more of a basketball than Luke Walton So no question whatsoever like so he's going to have to go in there like Spolster did and prove to him He's going to help him out as a coach There's a lot of personalities to deal with for Luke Walton, but more than anything I think it's the Savvy the cerebral way that both LeBron and Rajan Rondo look at the game Think about the game and they will not for a second hesitate to challenge Luke with what his game plan is Schematically, what's happening how he is handling the game? So I think that will be a tremendous challenge for Luke Walton who hasn't had that type of pressure to win yet When Boogie got some of the Warriors the world freaked out and we said take a deep breath folks The guy's not coming back till March Who knows how long you'll play the Pelicans got better when he left there I my theory is Steve Kerr Saw how much Houston PJ Tucker pushed him around and thought you know what we can be way too finesse We need an edge in this locker room beyond Dramon There's an old NBA theory that I'm pretty sure Steve Kerr knows all too well because I think it started in San Antonio And it's called the one knucklehead theory and that theory goes that you can have one knucklehead on a basketball team A pro basketball team, but you can't have two because two will tear you all apart Boogie knows going to Golden State They're not depending on him to win. They won without him. They'll win again without him plus He's on a one-year prove-it deal Not only a prove-it deal to say I'm healthy guys I'm 25 and 13 again, but also I'm not that guy in the locker room anymore when you play with great players It's just so easy people say, you know some these games so much easier No, it's not because there's less shots There's less glory to be spread around and that stat sheet at the end of the day when they look at that Which all the players do he's gonna have a problem justifying his decision because they are the Pribil the huge favorite favorites to build a win Boogie signed with the Warriors Knowing who's on the roster knowing they're back-to-back champions knowing. He's coming off an injury also knowing I would imagine from his Representation that DeMarcus it is not about your points and rebounds and assists this year It's about how healthy you are at the end of the year and are there reports that you are bad for the locker room Melo's gonna have to accept. I'm not the superstar anymore I'm gonna have to be a role player maybe even come off the bench or he's gonna go out like Allen Iverson Iverson couldn't accept that role and his career ended maybe prematurely Because he wanted to still be the superstar He plays Iso ball in an era with ball movement and everything now. I don't like him. I agree with you Chris I don't really like him anywhere But if I had to put him somewhere, I'm gonna put him in Houston because Trevor reads a left He can step right in the Trevor reads a spot Camillo Looked more and more out of shape as the year went on last year in Oklahoma City And I thought they could utilize him as that spot-up shooter and in the end He can't even do that to Chris's point because you can't have him on the other end of the floor because he guards nobody And even Oklahoma City finally said there's a ton of money They just said we're gonna eat this LeBron and Chris Paul have had numerous opportunities to play with him and have done A hard pass on all of them. Here's the latest story Carmelo Anthony rumors Chris Paul's urging the Rockets to acquire him You think maybe the agents leading that story because Chris Paul's had opportunities to play with him and LeBron's had opportunities to play with him and D-Wade's had opportunities to play with him And they haven't what Mello could do for the Rockets is What he refused to do for Okay, see which is provide Ben scoring like if he if he could be a guy that you can three minutes a Quarter in the first half Run the offense through three minutes in the first quarter three minutes in the third quarter and then be a piece the rest of it Then there is at least some upside there The reality is Mello is in the playoffs was abysmal when you are a volume score since a you days Carmelo Anthony is always one in the high school rankings one of the best players College one of the best players straight jump shooter when you're playing three to five minutes You can't score in the same capacity. So they know how to be a role player


Hello everyone, I'm here at the plant-based cruise to Norway, and I wanted to show you all the cool food We just got on the ship What do we have here? We have coleslaw we have kale Kale on dish number two potato salad and oil free oil free kale and quinoa salad Lots of more salad ingredients and then my favorite green of all time What they call rocket here and lots of different dressings Pumpkin seeds we are getting our daily dozen check this out. Then we're into dairy-free cheese guacamole looks like hummus back there and Cold cuts. How crazy is that? Is there plant-based cold cuts on the trip? Just in case I'm going to get a close-up on that Is that clear what?