Everybody, it's midterm week. All right, so today's the last day of material. We're going to do this week. We're going to try to get through address translation, a couple of methods of address, so until soon. Partly because address translation problems are a good midterm problem. So the material in the midterm will cover through what we get through today. On Wednesday, we'll do review. And then on Friday, we'll have the exam. That's most of what I just said. Yeah, so on Wednesday, we will go over the practice midterm that's posted on the website. And recitations this week will cover one of the other two midterms. I don't know if it has just decided which one or not. It'd be a surprise. So there are solutions for those up there. The practice one there aren't, but we'll go through it on Wednesday. And assignment two is up, but of course, there's pieces that are missing. Those pieces will start to be filled in, because that's kind of approximately where you guys should be at this point in the semester. So questions about virtual addressing. So remember, Wednesday, we looked at problems with direct physical allocation of memory. And we came up with this great idea for an abstraction that would solve these problems that we call address spaces. And then on Friday, we talked about address translation, this idea that rather than giving processes direct access to physical memory address, we wouldn't introduce this level of interaction that would give us all of these nice properties. So today, we're going to start talking about how we actually do that. So this ideal view of memory that we're going to be able to provide to processes, how do we actually implement that? How do we get it to work? There's a lot of fun challenges here because there's a lot of performance issues. So any questions on the material leading up to today? Thor's got his shades on, man. I must be like, must be so bright, he's got to wear shades. All right, so remember that we pointed out that translation is control. By giving processes references to objects, in this case, to memory, I force them to translate them, which gives me some special power. So what are some of the things that providing a reference to a process allows me to do to that object than that I wouldn't be able to do otherwise or wouldn't be easy to do otherwise? Wembley. Yeah, so I can share references. I can give multiple processes references to the same object, which is kind of nice. They don't need to know that they're sharing that object, but they might be. What's something else I can do? Kevin. Yeah, so I can change the reference itself. I can change what it points to. What else does that allow me to do that object back there? What's a form of alteration that I might be particularly interested in? Let's see. Thor. Yeah, so I could revoke references. So that's a good example. I could say, hey, I'm not going to translate that for you anymore, because the process never really knew what was behind that reference. There's no way for it to get at it anymore. I put myself in control of the process's ability to use a particular resource. And then what's something else I might want to do? Sirach. In the vein of altering. Yeah, so we're going to talk a lot about this after spring break. So I can move things around. I can take something. I don't have to tell the process where it is. And the process may, all I give it is a reference. And I say, when you try to translate this, I'll make sure that this is somewhere where it's useful to you. So I think we got all of them. I can revoke them. I can share them between processes. I can move them around without altering the reference itself. And I can alter other things to do other things to their reference object, without altering the reference. So when we start thinking about virtual address is in physical address. So the address space abstraction fundamentally required doing something. When we start talking about address spaces, we said we're going to give every process this nice uniform view of memory. They're all going to see memory the same. What was the direct implication of that abstraction? What can we no longer do? Yeah, I can't be talking to a physical address, because we talked about every process sees their address space starting at 0, running up to LXFFF or whatever. So there's a fundamental implication there, which is that processes aren't seeing real memory addresses anymore. If they were, I'd have to give them every one of them 4 gigabytes of separate memory. And that would be an awesome machine, but it would be very expensive. So we don't do that, right? And then so we refer to the data access via the memory interface as using virtual addresses. And how do we distinguish between virtual addresses and physical addresses? What do we know about a physical memory address? What does it point to, for example, Dan? Yeah, it points to memory. Imagine that, right? A physical memory address points to memory. What about a virtual address? What does a virtual address share with a physical address, and how is it different? Gina, OK, so what is virtual memory, right? Just follow the string of your, somebody want to clarify this answer, Peng. OK, so it can point to a number of different things. What does it share with the physical address? I mean, what's the same? Isn't that quite what I wanted? They share the same interface. Loads and stores, right? I perform loads and stores on physical memory addresses, and I perform loads and stores on virtual memory addresses. Where those loads and stores come from, right? So where the loads come from, where the stores go, guarantees the kernel makes about the permanence of that data. And even when we started talking about memory that points to devices, some of the semantics of how those memory addresses change can be different, right? But virtual addresses extend the physical address at interface, right? But they allow the kernel to have a great deal of freedom and how things work, right? And as I just said, the virtual addresses have much richer semantics, right? So virtual addresses can point to different things, to memory, to another machine, to a device, to a file, right? They can be both permanent and impermanent. They can look like memory. Sometimes they are memory, right? Or they can look like a disk. Sometimes if you write something into them, the kernel will actually persist that object, right? And then finally, protection as well, right? I can revoke them. I can share them between processes. I can make sure processes only have access to certain ones, right? So there's a lot more richness here, right? All right, so where do virtual addresses come from, right? There were a couple of different times where we create virtual addresses during the process life cycle. Some of these are most, all these are system calls. Masakazu, what is, what creates virtual addresses using the elf file as a blueprint? What's that? Still can't, I don't think that's right. I'm not hearing the right thing, look. Exact, right? This is where a big bunch of virtual addresses get created, right? It's by exact. Exact starts up, exact tells the operating system, here's what I want my virtual address space to look like and big bunches of virtual addresses get created at that time, Jeremy. Jeremy's jumping ahead, right? Fork, okay, so Fork creates a copy of the virtual address space of its parent, right?  And then what are these two last ones here? Should definitely get the third one. Somebody in the back, Anurag. Yeah, S-break, right? So S-break is a system call that extends the heap. It tells the system I'd like to move the breakpoint between my heap and my stack, and that's usually used by malloc to get more pages for the malloc alligator. And then what's this last one here? Anybody remember? We didn't talk much about it. Actually, I want to take a guess. Not a brave man, Jen? M-map, right? So M-map allows me to create virtual addresses that actually point to regions of a file, right? And this can actually be a pretty nice way to use files. So again, think about it this way, right? If you want to use read-write, read-write have their own, is a certain interface to a file, right? You read, you get a certain amount of data back, you write, there's semantics with how the file pointer moves around. M-map gives you a very different view of a file, right? It looks like memory, right? It allows you to do some different things. It frequently simplifies working with files in certain cases, right? All right, so brief digression into the specifics of system 161 and the MIPS machine that you're working on, right? So we're emulating or simulating a 32-bit MIPS architecture. Address is our 32-bits wide. What are the four address regions that the MIPS architecture defies? Two of these are particularly important for you to know about. Do you know? You're so close. There's just one word about that answer that was wrong. There's that there is a segment from 0x0 to 0x80 million. What is that segment reserved for? I'm hearing muttering, but no answer. Those are user virtual addresses, right? So process virtual addresses, these are addresses that can be translated while running in unprovenged mode, right? And they are translated according to mappings that the kernel sets up and we'll talk more about that today, right? So this is two gigabytes of process virtual addresses. So every process virtual address space lives in this area, right? Every process on the MIPS machine that you guys are developing on, process virtual address space is started 0x0 and they ended 0x80 million, right? Every process has a uniform and identical view of memory, two gigabytes of it, right? That starts from 0x0, runs up to 0x80 million, okay? What's the next region? Also fairly important for our purposes, tau. Next memory region on MIPS, okay? Yeah, so there's a direct mapped area, right? So first of all, everything above 0x80 million are kernel addresses, right? Kernel virtual addresses that can only be translated while running in privileged mode. An attempt to translate an address above 0x80 million when you're not running in privileged mode will produce an exception, usually a fatal exception. It means that the process was trying to get it memory that it's not supposed to get it, right? The next 512 megabytes are kernel direct mapped addresses. They are only accessible by the kernel and the translation is done using simple arithmetic, not even arithmetic, bit masking, chop off the top bit and you're done, right? So 0x80 million maps to 0x0 in general addresses in this region mapped to the address minus 0x80 million. So for example, if you're running in the kernel, right? And let's say the kernel wants to touch the byte of memory at address 32. How would the kernel construct a virtual address that it knows will map down to that byte of memory? Josh, I'm running in the kernel. I want to touch physical address 32. Which virtual address do I use? I want to touch 32. I don't know why. Just sounds like a good address. How do I get to 32? Exactly. I add 0x80 million and I get what I want, right? So if I want to touch physical address 32, I take 32, I add 0x80 million and I'm done, right? And the processor will subtract 0x80 million and get me back to 0x32. You guys will get used to this when you're doing assignment 3 because this is how you guys get access to the first 512 megabytes of physical memory. And on your machine, we'll never run it with more than 512 megabytes. We won't even run it with more than 4 megabytes or 8 or 16 or something, right? So you'll always be able to use this region to address all of the memory on your machine, right? There's two more regions that I'll cover a little bit more of an excitation that we won't slow down to talk about too much today. There's a direct mapped address area. This is typically where we put devices and other things that kernel wants to communicate with that look like memory but don't observe memory caching semantics. And then the top 1 gigabyte are kernel virtual addresses. So these are like virtual addresses that are used by user programs. They're translated in the same way, but they're only accessible to the kernel, right? All right, any questions about virtual addresses before we talk about how to implement virtual addresses? OK, so the goal with all the translation mechanisms we're going to talk about, our goal is very simple. It's performance. So user programs and the kernel and other things access memory a lot, right? And we want these translations to proceed almost all the time without any help from the kernel. So I just gave away the answer, but what would happen? I mean, what would happen if instead of just making this fast and efficient, every time I wanted to use a memory address, I had to make a system call? Well, what happened to your machine? Mooged it. Yeah, so what would happen overall? Yeah, it'd be terrible, right? I mean, it would be really, really slow. Memory's fast, right? I mean, it's not as fast as registers, but we're still talking maybe a couple hundred cycles. It can take thousands of cycles to get in and out of the kernel, right? So if every time I had to translate a byte of memory, remember, we're still talking about how to do this, right? We've set up this level of indirection. We're not giving out addresses to physical memory to processes. We've created virtual addresses. We're going to use them. We're going to translate them. We just don't know how, right? But this is our problem, because if we force the kernel to be on the path for every address to handle this, then this would just be way, way, way too slow, right? And this is another nice case of an example of the split between policy and mechanism, right? And this is another nice example similar to some of the stuff we looked at on the CPU, where there's been cooperation and sort of co-development of hardware capabilities designed to support system policies, right? So the kernel wants to be in control of address translation. That gets us all of those nice features, right? We're going to talk about ways that the hardware can help it do that, right? One of the ways the hardware helps is by making this process fast while still allowing the kernel to be in charge, right? It says, you're in charge. You're telling me where these addresses map, and I will help you make that mapping really fast, right? So here's an example of one way that we could do this, right? So when a process tried to translate a byte of memory, there could be some sort of way for it to ask the kernel what physical, I know I've got these address spaces and I know these virtual addresses aren't real and that's all nice and everything, but like I want to store a byte, you know? Like tell me where this, where is this byte? You gave me this mysterious address, oh it's 10,000, and just tell me where it is, you know? Just tell me where it is and then I'll just, and then I'll just use that address, right? So what's the problem with this? What's the problem with this? There's a bunch of problems with this actually. AJ, well, right, but the point is that I'm going to hand it back a physical address, right? And that physical address won't be shared, right? So remember this is a process, a particular process asking the kernel and so it's translation of OX 10,000 is going to be unique, we think, right? What would be the problem with this, Tim? Yeah, so now I've handed out this address, right? So how do I revoke it? I told this process, hey, you can, first of all, this requires that I allow processes to use physical addresses at all, right? And I said I didn't want to do that because now, you know, maybe what happens is later I want to use this physical address for something else, right? But now this process is allowed to use this address. So this is not good, right? In order for us to get this level of indirection and all the nice properties that are associated with it, all physical addresses have to be hidden from user processes. I can never give a user process the ability to translate a physical address. If I do that, then it's maybe it looks small, right? But it's some small chink in my dam that eventually is going to destroy, right? So every address must be translated, okay? So here's what happens instead, right? So a process executes a store instruction, right? Like whatever it is, store word or whatever, and it says store to address OX10000, right? What kind of address is that? It's a virtual address, right? And it's unique to this process, right? This process has this address, some other process may have the same address but they're not the same, right? So remember, I need those two pieces of information to identify a virtual address. The process ID, some information about it, and the virtual address. The virtual address is no longer meaningful by itself, right? The process says store to this. So now we're gonna introduce a new protagonist here, the MMU, or memory management unit. So the memory management unit is a piece of hardware that is on the kernel's team and under the kernel's control. But the MMU is there to help us make this process fast. Then we'll talk a little bit about what the MMU does, right? But the MMU is the kernel's buddy, right? And it does the kernel's bidding, right? The kernel is in charge of telling the MMU what to do, right? However, it's sometimes the MMU doesn't know what to do, right? So in this case, for example, this may be the first time that this process used virtual address OX10000. So the MMU doesn't know what to do. And so what it does is it says kernel, what the heck am I supposed to do with this address, right? I had no idea where it goes. You never told me anything about this, right? This causes an exception, okay? This is the first time I use this address. Now what happens? I just, I have an exception that's caused by the processor, in this case by the MMU. What happens when there's an exception? What's that? I jump into kernel mode and I jump into the exception handlers and I start processing the exception, right? So the kernel wakes up, looks around and says, oh, heck, this is problem, I shouldn't say that. There's this problem with the MMU. The MMU needs my help, right? The MMU is asking me, how do I translate this, right? The kernel is in charge of doing one of two things. Either it can tell the MMU how to translate the address, right? So that's the common case, right? What else might happen here? Dan, well, so I could give the address, right? I could say, hey, okay, this is an address I know about, right? But what else might happen here, right? What might the process be trying to do? Book, you want to help them? Well, we'll talk about when things start moving around a little bit, but that's not what I have in mind. Yeah, actually. Yeah, what if this process is trying to use an address that I haven't given permission to use, right? So it's possible there is no valid translation for this. It's possible simply that this address is not part of the process's address space. It's never been loaded in the process address space and the process is therefore not allowed to use it, right? Maybe if this address was 0x0, right? And this was an all-pointer exception that would look a little bit more familiar, right? So the kernel has to do one of two things. Either has to tell the MMU, right? So keep in mind, right? The process is in the middle of executing this instruction, right? This is a hardware instruction. It's doing a store. Either that instruction has to complete, at which point the process is allowed to assume that the byte of memory that it stored to that address is there or something else has to happen, right? There's no way to raise an exception, right? To throw an exception or something, right? Like this is a hardware interface, right? So either the store has to complete or something else has to happen, right? So let's say that this process isn't allowed to use this address. What happens next? I'm pretty sure you guys have seen this before. Maybe. Spudzer. Yeah. Segmentation fault. Core dumped, right? That's where this comes from, right? You try, what's that? Oh yeah, well that's, yeah. If this happens, okay. If this happens in the kernel, then something very bad's gonna happen, right? But if it happens in your user program, the kernel will trap it.  And if frequently if you're running C, what'll happen is that that will cause the C interpreter to dump some in state about what happened, right? So segmentation fault, core dumped. That's what happens if you try to, use your process, tries to translate an address that the kernel doesn't know how to translate. It just gets killed, right? All right, so in this case, we're assuming that we could find a valid translation for the address, so all is well. The kernel is gonna tell the MMU this address, right? This address maps to physical address, whatever it is, right? And the MMU will say, okay, great, right? And then it will allow the store to complete, okay? The nice thing about this, right? So let's walk through what just happened, right? I'm a user process. I'm translating 0x10,000. The MMU doesn't have any state. It doesn't know what happens with this address. It asks the kernel. The kernel tells it how to translate it, right? And then I allow that, now the next thing that will happen is that store will actually complete, right? To the address that the kernel specifies. Note here that the process has no idea what physical address is being used, right? This is never communicated to the process. The process thinks it just did a store to 0x10,000. That's all it knows. The nice thing is, later, assuming that, you know, the state on the MMU hasn't been cleared for some reason, let's say the process now does a reader store from 0x10,000, right? So now what happens? Yeah. Well, is the, so okay, here's the question. Does the MMU need to ask the kernel now? No, right? This is the whole point of doing this, of having an MMU, right? If I had to ask the kernel every time, then I'd be back to that world where the kernel was essentially involved in every translation and your system would take weeks to boot, right? Instead, what happens is, once the MMU has this address translation cached, it no longer needs to ask the kernel for help. And then this translation could proceed extremely quickly, right? So what I've done is, again, the first case here was a chance for the kernel to set the policy about how this address was translated, right? Then, as the process continues to use it, as long as there hasn't been a change in how this object is mapped, those translations can be done quite efficient, right? What about this address, though? 0x20,000, what happens here? Quiet group today. I'm gonna go, what is your name? Gee, what happens? Right, I don't have a mapping for this, right? So I'm gonna ask the kernel and then what could potentially happen here? Let's say the kernel says, I don't know anything about that. I never told the process it could use that address. What happens then? Lovely. Core down? Boom! Kill process. You know, the kernel just loves doing that to break out that graphic. Okay, there's a little bit of the process left, right here. Not much, pretty much total annihilation. Okay, so yeah, if the process tries to translate something it doesn't know about, that's the only thing I can do, right? There's no way to return an error from a stored instruction, right?  All right, so now let's start talking about some ways to do this, right? Yeah, Wembley. Okay, so here's the idea, right? So let's say, let's go through this example again. Yeah, so let's say that this, okay, let's try to use this graphic to illustrate Wembley's point, right? So let's say that this address is now used by a different process, right? What does the kernel have to make sure of? So first of all, if this address is being used by a different process, what has happened in between the use of those two addresses? Yeah, there's a context which has taken place. And what does the kernel have to do on a context switch now? At minimal, it has to clear out the MMU, right? Because those translations are only valid on a per-process basis. Now there's, sometimes you can save them and reload them later, right? But the simplest approach is just to tell the MMU, forget everything I ever told you, right? I'm starting a new process. What this will mean is when a process starts to run, what will happen at the very beginning when the process is first executing? I perform a context switch and I start the process going, what will happen probably in the first 10, 15, 20 instructions it executes? Sam, what will I see a lot of? Yeah? Right, so the MMU is gonna be asking the kernel a lot, how do I translate these addresses? Because now the MMU knows nothing. So if I clear out the MMU on a context switch, any address that's used by this process will produce a memory related exception that the kernel will have to handle. I haven't told you exactly about the semantics for how these get translated in ranges, right? We'll talk about that for the next week or so, right? But when a process starts to run, again, the MMU has no idea potentially how to translate any addresses. So it has to sit there asking the kernel a couple times and then hopefully as the process continues to run, those translations start to happen automatically, right? So when a process begins after a context switch, it takes a little while to warm up the MMU, right? We think of, if you think about the MMU as a cache, this is warming up a cache, right? Bringing stuff into the cache and then hopefully as I run, I get to use that warm cache, right? Good question. Any other questions about this? Yeah, actually. Yeah, so, okay, so we will talk much more about how physical memory gets allocated, right? So this is assuming that you're right. At some point, the kernel made a decision and said, for this process, I'm gonna allocate this piece of virtual memory, right? Sorry, a physical memory that's gonna be translated about this and we'll talk about how physical memory actually gets shared and how these mappings get changed over time. Yeah, Sean. Okay, good question. How does the MMU stay secure? What do people think? Clearly, there's a way to communicate with the MMU. And what, yeah, same. So it could, okay, so sometimes MMUs will allow you to attach a process ID to a translation, right? What this allows you to do is it actually allows you to have two translations in the MMU for the same virtual address, but distinguished by process IDs, okay? So that's not quite what I was thinking about, Jeremy. Exactly. So the MMU is controlling the MMU, loading and clearing translations requires privileged instructions that only the kernel can access, right? It's a great question because if users could control the MMU, then they could basically have access to any memory on the machine they wanted, right? All they have to do is load a translation that points to it and then use it, right, AJ? Yeah, you can do that, right? And sometimes that will help, right? So you can say, okay, you know, rather than clearing out the MMU every time you're gonna save the translations that are loaded and then reload them. And in fact, if you want to for assignment three, you're welcome to do just that. It turns out that it's surprisingly, it doesn't create that big of a performance difference, but it does help with reducing the number of translations that have to be reloaded, yeah. Ah, good question, yeah. So we'll talk more about this, right? So how does the MMU decide what translations to store? So this becomes very hardware specific, right? On the MIPS architecture that you guys are programming for this class, you actually have control of the translations that are in the MMU. That's not always the case, right? On some architectures, including x86, which is, like I've heard a little popular, the MMU is actually loaded by hardware, right? And we'll talk in about a week about how that happens, right? What happens is that the kernel tells the MMU something about the data structures that it's using to store these translations, but hardware will actually go into those data structures when it needs to and pull out translations and put them in the MMU, right? Your system has what's called a software managed TLB or MMU, but other systems actually use hardware to load these. But yeah, these are all great questions and we're gonna get to this now, yeah. Yeah, I don't, you know, that's a great question. I mean, on the machine you guys are programming, there's a specific set of instructions so they're provided by the processor for manipulating that we're gonna call this a TLB in just a minute, right? A translation look-aside buffer, right? Where these translations are stored. On other machines, I don't know, you're right. It could be, I could have a little memory, a piece of memory that when I write into those translations end up in here, that would be another way to do it. I don't know if it's actually done that way or not. What's that? Yeah, I don't know, that's a good question. I mean, you probably have to hardware those addresses so the MMU always knew where they were, right? Great, so let me go on and let's at least get through kind of one way of translating addresses. So again, remember our goals are we want to, so there's two goals, right? One is that we wanna cover a fair, we wanna allow the MMU to be efficient, right? So if we look here, right? Let's say we had to load a separate translation for every byte of memory into the MMU, okay? So I do a store to 0x10,000, I have to load a translation, I do a store to 0x10,001, I have to load a translation, right? What would be the problem with that? Yeah, I mean, I'm doing, now I'm doing a lot of loading into the MMU, right? And to some degree, that would be terribly efficient. If you did things with that granularity, you would essentially be translating almost every memory address, right? So what we want is a way to tell the MMU efficiently how to translate not just one address, but a whole set of addresses, right? A whole region of memory, right? A whole region of the address space, okay? So one, yep, boom, I still like that. I just wanted to see that again. So one way of doing this is to use what's called base and bounds, right? So we're gonna build up from the simplest possible scheme and then we'll come up to things that are more modern and actually used today, right? So base and bounds mapping is very, very simple. I assign each process a base, right? A base physical address and a bound. So the way, and we're gonna talk for each of these, how we perform a couple of things, right? So the first thing we have to do when we load a translation is we need to check to make sure that translation is actually valid, right? We talked before about what happens when the translation wasn't valid, but we didn't say how the kernel actually has to check that or how hardware checks, right? So on base and bounds addressing, the virtual address is okay if the virtual address is less than the bound, right? That's just, this is very, very simple and I'll show you an example of this in a second, right? Translation is extremely simple, right? Extremely, extremely simple, right? It's just one operation. I take the virtual address and I add the base to it. I add the base physical address. So what I've essentially done is I've taken the address space and I've loaded it starting at some physical address and just moving upwards until I get to the bound, Jeremy. No, well, we'll come back to paging. It's a good question. So here's an example of how this works, right? And you guys are probably thinking this doesn't work with address space and you're right, but let's go sort of talk about why. So OX 10,000 heads to the MMU. The MMU is gonna ask the kernel, how do I do this? The kernel is gonna say for this process, its base physical address is 40,600 and its bounds is OX 30,000. So there is a region of memory starting at 40,600 with size 30,000 that this process is allowed to use. How do I translate this physical address given base and bounds? So first of all, how do I check that it's a valid virtual address? Who remembers the slide before this? Wembley. If the virtual address is less than the bounds. If the virtual address is less than the bounds. What does this mean about the size of my virtual address spaces? What are they limited by in this scheme? They're limited by the bounds, right? So this guy's virtual address space is only 30,000 bytes big. And that could be a problem, right? Because we wanted these huge sparse address spaces. So this is not going to, this is not super compatible with our address, our address abstraction. Yeah. Sure. No, no, the check is on the physical address, on the virtual address, right? And it's just whether it's lower than bounds, but then the bound, right? Because what we're going to do next, so how do I translate this now? Okay, so I've said this is lower than 30,000, it's okay. How do I actually perform the translation? Yeah, so what is this translated to? 50,600, right? So my base and bounds identify an area of physical memory that this process is allowed to use and the virtual address simply addresses into that, right? So 10,000 from the start of this, it looks about like about a third, right? That's where this byte goes in physical memory, right? What about this address? Where does this go? Anyone do hex math rapidly in their head? Yeah, me neither. It turns out it goes here. Who knew? Right, but again, base plus bounds, sorry, base plus physical address, I check it against the bounds, it's lower than the bounds, just barely. And then I add the base, okay? What about this one? What happens now? What's that? And then what? Boom, there we go, right? So this address cannot be translated and this produces a fatal exception, right? So what's good about this? What's good about it is primarily that it's very simple. There's only two things I need to tell the hardware for each process, that's great, right? That means that the MMU can potentially store a bunch of different base and bounds for lots of different processes and I don't have to tell the MMU what to do very often, right? When the process starts running, I say, here's the base and bounds and then basically the MMU should be able to translate every address, right? In the process's address space, that's nice, right? The other thing about this is that the translation at the hardware level is very, very simple, right? So we also have to think about the fact that again, every address that the process is using is being translated every single one. So anything that goes on this path is, this is a very hot path at hardware, right? Like this gets hit every time I do a load or a store. The nice thing about this is it's very, very easy, right? I mean, these two hardware operations can be done, you know, potentially in parallel and very, very, very rapidly, right? So this is good, okay? What's the big problem with this though? I hinted at it a couple of times, Jeremy. Yeah, this is a terrible fit for our address space abstraction, right? Address spaces, remember address spaces were this nice idea that made everything look uniform but the price that we paid for that is that we gave every process this illusion that it had, you know, like four or two gigabytes of completely contiguous address space, right? And so in order to support this illusion we had to figure out how to handle the sparseness, right, of this address space. The idea that most processes are gonna have a tiny, tiny, tiny fraction of their address space in use and there's gonna be huge gaps between it, right? On this, you know, if I wanna give a process a two gigabyte address space I have to find two gigabytes of contiguous memory, right? It's probably on a machine that doesn't even have two gigabytes of memory, right? So this is a total fail when it comes to our address space abstraction. And if we even did this, right? What will we lose, what's our big problem? Where do we lose memory? We're gonna have fragmentation, what kind? Nick, we're in external? Who thinks we're gonna have external fragmentation? What are you saying? What about internal fragmentation? Yeah, I mean, remember these address spaces are mostly empty, but I've gotta allocate them contiguously in physical memory and so I'm gonna have lots and lots of areas inside those that aren't being used, right? But I can't reclaim, right? I have a big internal fragmentation problem. So again, let's say that I did this and maybe what I do is I say, well, I can't give you four gigabytes because I only have four megabytes of memory, right? So now I make my address space like, I don't know, a megabyte big or like half a megabyte or something, right? It's gonna be very small. Even if it was that size, I'd still have all of this wasted space in there, right? So if this was what the allocations look like, even on a much smaller address space size, I would still have all of this wasted memory inside my address space that I can't reclaim, right? So the base and bounds, one base and bounds is clearly, you know, a terrible, terrible fit for our address space abstraction. But can we, the question is, can we extend this idea? So what we're going to do instead, right, is we're gonna look at this picture, right? And we're gonna say, hey, look at this. So I have an area of the address space that's used for the code. It's set up by exec, right? All of that code pretty much gets packed and they're pretty good by exec when it starts up, right? Then I've got another area here that's used for the heap, right? And that, you know, grows a little bit when I call S-Bright, but that's pretty contiguous as well. And then maybe I have some libraries in here and then I have a stack for each one of my threads. But in general, I've got this address space that's mostly empty, but then I have a few parts of it that have some useful things, right? So rather than using one base and bounds, I use multiple base and bounds. I say a process can have multiple base and bounds and what I do is I call each one a segment, all right? And so now we've come to the point where you can understand that mysteriously error, segmentation fault. That's where this comes from, right? Sorry, that's where the error comes from. The error comes from the fact that these are segments and we call the process of setting up an address space in this way segmentation. So, and a nice thing is we can use segments, there's a nice mapping between these logical areas inside the address space where I'm using to store code and data and stacks and things like that and separate segments, right? Each segment can be a separate size, right? Each segment can be protected differently. Remember when I looked at the PMAP output for a process, I saw that some segments were marked as executable, some are marked as read only, right? So now the nice thing is I can assign each segment, right? Portion of the address space with different permissions. Well, and that's the end of the slide, yeah, Jeremy. Ah, okay, so we'll talk about that, right? Like I should be able to change the size of a segment, right? Now, figuring out how to do that in physical memory can be tricky, right? But how do I, so here's a good question. Base and bounds addressing, how do I change the size of a segment? What do I do? Let's say I've loaded the segmented to the MMU, I've told it the base and bounds, and then the process wants to make it bigger, yeah, on it. Change the bound, right? I say, okay, well, you know, you called S break, you wanted a few more pages, I need to make your heap a little larger, so I'm gonna tell the MMU, and move the bound up a little bit, right? Jeremy. I guess you would, yeah, yeah, that's annoying. Yeah, you'd probably have to move the base downward in that case, right? That's good. Yeah, so the translation process is the same, right? Let me get through this, and then I think what we'll do is we'll finish this on Wednesday before we do review, because there's just a little bit more about segmentation, but I wanna get it done for the exam. Good, good, good for exam questions. So this is very similar to base and bounds. Every segment now has a start virtual address, right? So this is different from base and bounds. Why do I need a start virtual address for a segment? What was this, or let's put it this way, what was the start virtual address implicitly for my base and bounds addressing? It was zero, right? But now I not only need to tell the MMU where this is in physical memory, but I have to tell it what segment is this in virtual memory, right? So where does it start in the address space? Then I give it a base physical address and a bound, right? The bound indicates both the size of the virtual address space that I'm allocating for this and the size in physical address space, right? Those two sizes are the same, right? So when I try to translate a virtual address, what I do is that I need to see if it's inside some segment. So does there exist a segment where the virtual address is between the beginning of the segment, the segment virtual address start, and the segment VA start plus the segment bound, right? So does this address fall into some segment that I've allowed the process to use? If the answer is yes, then I know how to translate it. If the answer is no, then kaboom, right? And then the translation progress. So once I find the segment that contains this virtual address, the physical address, I take the virtual address, I subtract the segment virtual address. So that gives me the offset within the segment and then I add that to the base, right? So here when I talk about segment start, I'm talking about the start virtual address and the base is the base physical address, right? Does this make sense? This is a little extension of what we did for base and bounds, right? You can think about this again. For base and bounds, these segment starts with all zero, because there was only one segment that started at zero. Segment start is a virtual address. Yeah, I should make this slide a little more clear, right? Segment start is the start of it in the virtual address space. Segment base is the start of it in physical memory, right? So remember, the goal is to translate my virtual address to a physical address. So I find the offset within the segment and then I add it to the physical address, okay? So we will finish this on Wednesday, for room. So yeah, so what would you do? So the idea is, you're saying I have a segment that gets a little bit bigger, right? But maybe there's another segment next to it or something. So what do I need to do, fundamental? Yeah, right? No, no, I understand your question. I'm asking you what the answer is. Right, so I need to make it a little bit bigger and you're, what do you mean? I don't have any physical memory left.


Hey everyone welcome back to figure fantasies so today we'll be exploring ways on how to farm diamonds as you know guys it's very important that we have diamonds for recruitment and also in purchasing your fish bones so this is actually very important as well so without you know delay I'd like to show you guys a little chart that I made in farming for diamonds these are the recurring sources that you have we'll discuss later the you know the various the various sources with varying results okay or varying outputs so for this one you have your diamonds you have your daily task and weekly task so you'll be getting a max of 120 gems for that at 30 days that's roughly around 3600 gems monthly for weekly you're gonna get this is going to be weekly task so 300 gems times four is also a one two gems monthly daily sign in provided that they renew this monthly um I'm sorry that they renew this every 10 days then we got get to have 120 1200 for 10 days times three so that's 3600 gems monthly if they renew this so and also wish list 500 gems times four weeks because the 500 gems can be selected every weekend so that is 2000 gems monthly bro club these are your very minimum achievements at 20 gems per day times 30 days is he 600 bro club season is also this is the lowest achievement as well at 200 gems monthly and your total gems monthly is going to be at 11200 so for those who are not really familiar where they are I'm gonna I'm just gonna take you guys to where I'm going to look for them so this is your daily task this is as you can see here 100 then you have another 20 here somewhere here here then your weekly task is this one to get another 300 here this is per week your daily sign in guys is going to be here so this is the 10 day event that I'm referring to we also get a total of 1200 gems for 10 days um hopefully this is renewable every 10 days then we have your wish list um your wish list is actually here this is nothing right now because they already awarded the gems for this but for the selection for the wish list you can select 500 gems as well every weekend then you can get it for four weeks then for your bro bro bro club so you you'll be getting um ranking rewards as you can see here the lowest that I computed for was 20 but depending on your performance like for me I'm at 11 to 100 so that's 40 daily okay so you have to place yourself within these brackets to get the highest reward possible then for your season reward for this one again the lowest is going to be 100 then 11 to 100 it's 200 for me as well so again bro club varies in rewards but it's a consistent reward weekly and also for every season the other thing that we're going to talk about guys I'm gonna I'm gonna go back to that um um what do you call this notepad that I presented earlier but in terms of the various other sources for diamonds that you can farm in is going to be here so the stage clears this one uh what do you mean the stage clear the chapter clears will give you around 5250 diamonds which is actually good but this is until you finish this the next is going to be your um uh where do we go from here main story so for your main story this also varies depending on where you are up to right now and what have you accomplished so far so these are sources as well then the next is going to be nightmares so there are certain stages in nightmare that you can get as you can see um you can get the diamonds from other stages here next is also final battle you can get diamonds as well um in some of the stages um as a common reward I already passed it some some of the stages and also for the big three so for the big three some of the first clear rewards are also diamonds um it's not reflected here depending on yeah like for example this stage um 13 floor uh also this one and also this one okay now and we're going to go to sacred tour so for your sacred tour you can also get a couple of diamonds here actually it's every battle it's a part of the battle reward so again diamonds it doesn't necessarily need to be swept but again for the battle rewards as long as you you have a one star you can get the diamond for these stages next is going to be your I don't know if you guys have reached this far already but you will be getting from the beginner pack um so this is a total of 1900 crystals sorry diamonds uh crystals can be can be used um once you finish beginner then you'll be going to intermediate which where I am right now so this is also 1900 and I assume that advanced and um this one the superior is going to give you 1900 unless they all they increase the reward for the stages so next is going to be your otaku um you're gonna get you're gonna get diamonds in your otaku guys so otaku zone so for your otaku this is where you're gonna get diamonds so the object reward preview um and the rewards that you'll be getting here part of it are diamonds and the last on my list is going to be your collector list so these ones I already finished if you didn't notice that this gives you diamonds this is easier to progress these are the ones that I'm still you know waiting for to receive so more or less you we have a lot of diamond sources but again guys it would really depend on how you progress further these are the only guaranteed sources that we have for probably if we're done with the rest then these are consistently monthly which is pretty much a small amount so we're going to rely so much on the events on the content that's going to give us diamonds because with only 11,200 monthly this is actually very small that that is divided by let's say divided by four that's only one someone per week roughly roughly so again um diamonds uh we're going to rely heavily on the event but please make sure that you go over through all the content that I mentioned take advantage of those and also don't forget to do these tasks weekly daily weekly daily sign-in wish list bro club daily bro club season and hopefully you know it will end up a you know or it will end up to a hefty amount uh once um every end of month comes so best of luck to you guys to your farming hopefully this guide helped you and uh hopefully we could get more events in the future wherein we could get more diamonds for sure okay guys so um if you've stuck this far please do consider subscribing because this helps my channel a lot and also guys don't forget to click that bell icon you don't miss any figure fantasy videos in the future and also don't forget to click that bell icon thank you guys stay safe take care this is the warden and I'm out of here


Systematics, biological systematics is the study of the diversification of living forms, both past and present, and the relationships among living things through time. Relationships are visualized as evolutionary trees synonyms, cladograms, phylogenetic trees, phylogenies. These have two components, branching order showing group relationships and branch length showing amount of evolution. Phylogenetic trees of species and higher tax are used to study the evolution of traits e.g., anatomical or molecular characteristics and the distribution of organisms' biogeography. Systematics, in other words, is used to understand the evolutionary history of life on Earth.


Welcome to today's edition of Frightfully Forgotten, but to start things off, what are we drinking today? Uh, Gatlin's Fall Harvest, October Fest. Mmm. Today we're gonna be bringing to you 1974's Frightmare, or sometimes called Cover Up. It is directed by Pete Walker, kind of started off with these schlocky kind of sexploitation type movies. Then got into some real decent horror, he did The Comeback, which we had covered quite a while ago. Sheila Keith is in this and she was also in The Comeback. She's kind of like that Mrs. Doubtfire kind of woman. Hello! Rupert Davies is in this and he was in a lot of stuff, but we just got to mention Dracula has risen from the grave. So the movie starts off in black and white. This gentleman going to this kind of trailer. I'm in a bit of a mess. You said I could come back. You see the interior, but you don't see who's in there with them.  We're then show inside of a court two figures and shadows who are being spoken to by the judge with that sick wig. That British wig thing. Judge is sentencing them, committed in a mental institution. We're then introduced to one of the main characters, Debbie. And she's 15 years old and she's a bit of a rebel. She's got this kind of badass boyfriend that's in this British biker game. Yeah. They're in the disco. This disco is awesome. I want to be in this disco drinking and dancing. It looks like tons of fun. Just by looking at her, the bartender is like, yeah, I'm sorry. You're not of age. You're underage. I can't serve you.  What? He said what? He called me a young tart. He wouldn't serve me.  Then they flee because the cops are coming. We're then introduced to Debbie's older sister, Jackie, who's at this dinner party. She's hitting it off with this young psychiatrist and they decide, well, okay, maybe we'll go out sometime. She goes back home and sees that Debbie has just gotten home and it's very late and she starts chastising her. She comes back at her and says, well, you leave at all weird hours of the night. I have no clue where you're going. Where are you going anyways? Yeah. She doesn't tell her, but she gets up and leaves. Yeah. Drives way out to the country to this kind of farmhouse. She's visiting what appears to be, well, her parents. She brings this package when you don't really know what's in it. A couple of days later, Jackie gets a phone call from her dad calling him secret. He's like an old-style British payphone to the booth. He says he's worried about his wife, takes out this package and unwraps it and says, well, see what your mother's been doing. Yeah. He shows her what's inside, but we don't see what it is. She does.  We then see this woman at this mysterious farmhouse. Find out she's there for a tarot card reading. She flips over the death card, right? Jackie's new boyfriend, the psychiatrist, he's supposed to come over to pick up Jackie for a date. Debbie's there and so he ends up talking with her and sort of trying to sort out... their problems. Yeah, exactly.    Meanwhile, Jackie's psychiatrist boyfriend, he starts doing some digging into the family. Turns out that it's Jackie's parents were in a mental institution and it was them two who were put away. Somebody else comes to that farmhouse for a reading, for a tarot card reading. She's kind of had enough of this woman. She stands up to walk away and all the doors are kind of locked and she uncovers this blanket over doorway and we don't see what she sees, but... Yeah, but she's terrified. Yeah, she's terrified. Dorothy pulls out a hot poker from the fireplace and just rams it right into her stomach. Pails her. Dad, he's just coming home from like work or something. Early. Yeah.  And she looks up and she's like, help me. Oh, what did you do? What did you do to her? Debbie and her boyfriend flee the scene basically, right? Because they're getting chased by the cops now. Brings her boyfriend to this deserted sort of farmhouse.  And so he goes into the farmhouse to find out what's going on.  It kind of, it almost mirrors the comeback in terms of the way it's written, right? And the way it's unveiled, everything kind of, it slowly gets revealed. Yeah. There's not one big reveal. Yeah. There's little small reveals throughout the movie which kind of recluse it.  They give you little hints that like make you question something very slightly. But then you think, ah, that's probably nothing. That's probably whatever. I'm reading too much into that little line she just said. But later on it's like, oh no, I wasn't. That was a big clue. It's one of those movies that it may take two watches, right, to get everything. Because it's very easy to miss this, to miss certain clues. So many different little plot lines. Like there's the plot with the mysterious old couple at the farmhouse. The daughter bringing them these packages. Then there's the plot line with Debbie being a misfit with this biker guy. Then there's the psychiatrist's boyfriend plot. At the end like, okay, it's all related. Yeah, yeah, it all makes sense, right? It's a tragic story too, right? Yeah.  Yeah. They don't want to get found out for what's going on. He's also getting dragged into the worst parts of this again, right? Yeah. And he knows what's going to happen. But he just loves his wife so much and he just doesn't want to see anything happen. Yeah, that's the neat aspect about this movie is like how love corrupts in a way. He's not doing anything just covering it up for her because he loves her so much. The directing and the acting for this movie are really superb. Superb. Superb. Sheila Keith as Dorothy Yates, she does such a great job of portraying like two sides of Madness. Like the side of Madness where she's kind of like confused and upset about what she's going through. But then to the other side where she's just like loving it and loves doing this to people. The Madness is actually taken over, right? Yeah, like that scene where she's drilling. She is terrifying.  No, that's for sure. I wouldn't want a tarot card reading from her. The way it's directed is intriguing. The angles that he uses, right? And the cuts, the shots. I think they're awesome. It's framed in a way where you don't see too much. And Rupert Davies as the husband is again like he compliments Sheila Keith's performance so well because he's so believable as being like this poor to strong man. Man, like by the end where he's just to shovel and he's had nice hairs all over the place. Like not one performance seems like a performance, right? So it feels real. Feels very real. Even the girls too, right? The whole yin and yang between the two of them. Because they're so opposite. Yeah. And you feel it too, right? They're always bitching at each other. Settings that they have. You mentioned the disco.  I wish I was in that disco. Same with the farmhouse. Yeah. That farmhouse looks awesome. That giant hearth and everything with the fireplace. Like fuck, I wish I lived there, not with the wife. Yeah, but it's a really cool setting. The university type of, they're like fancy apartment. Before anyone even opens their mouths to say a line, you already know what these people are all about just by the setting they're in. Yeah, exactly how they live. This whole idea of people having gone away to either jail or to missile them to be rehabilitated and they get out. Yeah. But they really aren't. Sex offender released back into society and they show a picture of the guy. Yeah. Then why did you release him if you have to let us know? Exactly. Right? Yeah, so it mirrors real life. Yeah. You know, sadly. Yeah, exactly. So if you want like a really good, smart, well-paced like British slasher film, because it's kind of half slasher, half mystery, really check out Frightmare. The name has nothing to do with the movie at all, like Frightmare. You think it has to do with nightmares or dreams or something, but not at all. That's why cover-up makes more sense. So if you're a fan of like The Comeback, other movies by Pete Walker and you haven't seen Frightmare, check it out. Yep. And keep drinking. And eating.


Everybody forced here hoping 2023 top scrim baseball hobby in jumbo a box mission number 21 Random teams Let's go ahead and get started. Thanks for joining everybody That's what Steve's doing right now for hobby for jumbo. Let's do it guys baseball is full. Let's get basketball What's the leaf leaf metal pop century pop century and they're And see football I feel like after ripping open all these packs and stacking cards. I'd be pretty good at the stacking cup thing It's all out of ESPN one time This kid you're stacking some cups, that's for sure Just on whatever man. I don't know ESPN family of networks Okay, how many rushing yards is E. Kalei gonna have this year for the Patriots over under Seven I think right on seven yards Seven yards per carry No, seven yards for some carries That's yeah, one yeah No gain on six of the carriers and he gets seven yards on the last one Well, you like top show them empty packs. Yeah, I'm just kidding I would have been really mean I don't know when does it come out? Oh Man better start ready to get the grip strength thing Purple speckle rookie out of their miscarcita ease the 299 it does come out pretty soon actually Lane is right refractor. He meant as guardians It's because you pulled a super of one soda rookie prism alvarez for the Mets This is Josh John Yeah, I was actually pretty insane George Springer Strider refractor of trout Trout arena Rikki prism von grissom for Atlanta You're back there right Nelson time for Max. I was like, oh All right, then that's how you get into the tops chrome dust. I think I am addicted tops chrome dust I've been like really getting a craving to break at like 4 a.m Oh Y'all got any more Where's pristine at I love packs. I love packs so much I wonder if they'll change it or at least like at least if they're gonna do that get the packs to where they're like they open Right, like I don't know who the factor yell. It's Aqualaba to 1.99 is long go for the D bags one of the tops guys is like introducing your factor What's Richardson he goes and here's John Smith?  So if you have any complaints go to him Yeah, just remember that that was good stuff refractor Max shares or Mets Sub Jacob Gunner base purple refractor rookie Gunner Henderson 190 of 250 Do you have some sandleads the room Baltimore? Pull heat Alvin. That's going to mad. Yeah, that's some heat right there Donnie, which is your favorite baseball player named Gunner? Good choice. I think there's a gunner hogland I think with the Blue Jays prospects refractor Ben and Tendi White Sox via that guy Chris and rookie Javier Assad for the Cubs Yeah, as I set the cards down Properly 900 yards. That's a lot. I Think around 600 might be fair physique That might be a fair like hopeful Yes, I think what do you mean by blocks? Oh pancakes Over under is zero 0.5 what we go 0.5 give him to Donnie's taking the over he had 0.5. He's taking the over He's a gambling man. I Should save a trash bag full of just empty packs and stuff and use it as confetti like dump it on somebody Hi birthday Sean is the empty top chrome packs onto them empty You just won the the top loading bowl We should get rich to sponsor one of the bowl games in Orlando because they didn't have anybody sponsored bowl games Nowadays, we'd be like we'd be like the 10th most popular sponsor probably the late in sports cards penny sleeve bowl That's what we'll call it the late in sports cards. We'll give out one one single penny sleeve to every person Person that attends You know, it'll be hosted at the The dimmer's they'll dip a dome the Orlando or late Orlando dome The Orlando dome Yeah, sweet victory is the halftime show It's be great Gunner all chef ski. Oh, no, that's a football player Nice Jacob. Whoa It was cracking on my knuckles camera got bumped Didn't the Cardinals went against Oakland's I would hope so Oakland's not very good I'm going way under 800 yards for Zeke.  Wow. Oh, man 21 of 25 whoo the color match That's unreal No way Alvin no way Mama Mia I Sounded like Chris Pratt right there Mama Mia That's just like Chris Pratt refractor Chris Brian. That was probably better than Chris Pratt honestly refractor Chris Bryant Well, I still haven't watched it so I can't make a Prison Bob Iwai junior for the Royals. I haven't finished yet, but I got like an hour of it It is it is exactly like it's literally like that is Chris Pratt just saying the Mario lines He's not a like he's not voice acting. He's just saying the lines rookie auto is buddy Kennedy Diamondbacks That is a spicy gunner. He got Michael Harris rookie Jacques Peterson refractor prison rookie Cal steves and cow Fractor air your dawn Russian Future Stars Josh Jung about the voice for the name of who's doing that's what that's exactly what the studio would agree with apparently Who made the movie do Warner Brothers something on even though universal universal? I like money. It's a Chris Pratt So you just want me to talk like myself Whatever What's up, Dean Yeah, we're through two hobby boxes and the gunner color is nuts Fractor is Rendon Angels Magenta speckle Raphael Devers at a 350 the Red Sox best card to break so far if you ask me right there Fractor Shane Bieber guardians Bebes No rookie prism is a von here ever Cardinals can't prove anything. I'm not wearing a Boston shirt base Jersey Salvador Perez Kansas City Chichai Ali rochman Refractor McCutcheon for the Pirates rookie Jordan Walker Cardinals Prison rookie is Michael grow for the Dodgers you ever seen today to be in the pick and destiny Yeah, refractor Michael could afford a map giants Yeah, it's a cart car chase city car chase It's a The part at the end. We're doing they have the car chase Okay, I can't say the rest of songs a lot of like curse words But I'm not doubting that No, I just sleep. I'm gonna They have a censor version I'll play it for you Catch a city patrol. It's rock. Let's roll The cops Because they stole the pick of destiny It's first grade SpongeBob my brain doesn't work right why is that Why is that card backwards look it over it's a Chris sale base card anybody was wondering Hello Viking warrior It's great, I know Now don't he likes it guys that's what he meant to say But I'm much more enthusiastic got Adley Fractor say Suzuki Cubs Prism a mitch hander for the Giants Fractor rookie eaten for the Royals, which I was eating right now. Yeah Well, you wish you were eating Seabass Jordan Walker refractor Robbie Ray Robert Ray Yoshida rookie when gents out of 399 Stevenson for the Reds Refractor rookie cow The ace Cal Stevens Prism rookie Miguel Vargas Dodgers. Oh, yeah, probably Viking. I don't see why not Rookie refractor Otto Ryan Cridler to 499 for the Tigers Refractor rookie Tristan Cosas Red Sox Prism is Gossman Blue Jays Refractor is Strowman Cubs What else? What else? 88 Morrell Ruchman Titans Refractor Wheeler Phillies Michael Harris photo negative Max Meyer Marlins Fractor is Gossman Blue Jays Josh Zhang and a Prism Refractor of Kane Kavali last hobby box Just need to get you a nice as equal tovar the rocking spot It's good player You and are you insinuating that I'm not I mean After plat anniversary good Lord. Yeah Sort of Finally the guy from office space it always like straightens a stapler and all that Yeah, I know he's under investigation. That's what I know All right, last hobby box Prism rookie Jordan Walker a nice card Cardinals Ricky Otto Tommy Henry Diamondbacks Fractor Dalton Varsha Prism refractor is Corbin Burns for the Brewers Fractor Mount Castle Orioles Rookie short print photo variation Nice card Texas. You got Abrams future stars Padres 88 is Xander Rookie refractor Gunner Henderson for the Orioles Prism Otani Angels Nice prism there Fractor Xander Most of them aren't like that aren't like Adley or like Carol. Yeah, unless you get like numbered ones I haven't seen a number one yet though, but I've seen them on eBay Refractal of Mayhew for the Yankees. They have like gold speckle and like green speckles and stuff like that in the variations orange wave Ozzy Abbey's Atlanta eight of 25 Good color of these hobby boxes refractor Harper Phillies Prism rookie Garrett Mitchell for the Brewers Kunia refractor rookie Langoliers A's Focus on the card Magenta speckle Julia Rodriguez out of 350 Mariners and I like bone refractor Jumbo time I wumbo you wumbo he she we wumbo Wombology it's first grade. Yeah, let's see how we're doing on some spots 16 to go and select H2 five box crown Royale Team all is still at 26 to go Okay I think the bypass will go up in value if you don't sell the top probably not Alex Adley base. I wouldn't think so Especially base and like not numbered Josh Jung 88 rookie refractor Otto Adley Ruchman 69 of 499 Alvin dude, what is going on? This is unreal Still Still unreal 69 of 499. Do you mean our website links refractor rookie Ezekiel Tovar Rockies Alvin has just Destroyed this break This is the same man black and white Chris Bryant Rockies photo negative. I mean photo negative not black and white Jock Peterson refractor the tops website Do you mean like how did we get a case got prism Bobby with junior The Royals refractor you Darvish at the color pop on that one We got most of ours from distributors the distribution Mr. Strider future stars prism is the Domes for the Brewers Fractured J ran for the Guardians. So it's like You can just different avenues when you when you have a hobby license to acquire product different distribution methods than just Like release like that So usually what tops does now is they allocate a certain amount to like sell on the website and then the rest is like distributed like hobby shops Ricky Otto will Brennan Guardians with Fractor on your cruise Pirates Carol base Yeah, well Josh Jung Pepe Sylvia, it's always Sony Fractor McCutchen. I I Like the show Remember I got you a jersey card again is a Zach cranky from a popka, Florida Zach a cranky game use Jersey for Kansas City Prism rookie of on her era Cardinals got refractor Stephenson Reds Magenta is rookie Cabrera Yankees the 399 Prism rookie Simeon Woods Richardson twins and refractor Rendon.  We've got a purple rookie out of Mets Mark Vientos a 37 of 250 Fractor rookie morale Cubs. Let's pack Money bag yo one of one. I wonder how many more money bag yo one of ones there are Saved any money for the the Reds the next year's breaks Jordan Walker Sours Abrams 88 judge sorry guys, sorry Prism Miguel Cabrera for the Tigers in refractor of Sean Murphy Prism rookie is a Ryan Nelson d-back same refractor is that gallon Guys SMC Jubei in you join pop century Got prism Logan Webb for the Giants refractor rookie Fujinami a's Got an Adley rookie Harris Josh Jung Purple speckles Stephen Kwan out of 299 Cleveland There we go. Prism Kibrian Hayes rookie refractor Perez white socks 88 Bregman rookie auto Nate Eaton Royals refractor is avicile Garcia Yoshida Caroline HR. So yeah, exactly Steve Bobby with future stars trout and wander refractor Prism Trevor story Red Sox rookie refractor Josh Jung for the Rangers Jordan Walker based had the color Olsen prism Contreras Cardinals and refractor Verlander I guess we are behinds a Platinum University took longer than expected Cards facing every which direction Rookie base auto Cubs Christopher Morrell Nice one there refractor Cattel Marta Magenta out of 399 Brandon Crawford Giants What is up with the focus right now? This is insane. Is it the card back there? Move a side gunner Grabbing all the focus refractor is Luis Castillo Mariners Prism Herman Marquez Rockies rookie refractor Alex Paul Nationals Adley future stars. We got steer rookie prism for the Reds And a refractor rookie guardians Tyler Freeman Rarity rookie refractor auto Brandon Hughes the 499 Cubs rookie refractor Max Meyer Marlins The is max short for maximum Maximum Meyer vado Kershaw refractor Soto. Yeah, there are some personal tonight. It's all full though There's like 20 some odd boxes already ordered and we have to be done a few minutes before midnight because there's Maintenance on the internet tonight like the whole area Maybe if it'll be fun I'm not in this area 88 Josh Jung.  You're in it What do you have I Just back working at 350 Michael Massey for the wrong It's your fracture if on her Eric Cardinals like it went in in the last one of media. It's not great Yeah, we do have fiber Steve will you have fiber? Just have some maintenance going on tonight We've known about it for like Month and a half prism extras or Mets rookie refractor Assad for the Cubs. I don't know what is going I don't know the cameras want to focus tonight. I'm about the body saying this camera Sam's gonna be a witness. We'll have to take him out to Prism is Ballinger Cubs refractor Miguel Cabrera Tigers Camera is struggling. I'm gonna have to move the gunner. Got a blue We refractor rookie auto Dodgers color match six of 150 Miguel Vargas Nice Miguel Vargas Jordan Walker rookie refractor as well show hey Tentacolor Titans J ram refractor J rod Another Jersey. That's the third one of the break and it is an Alex Bregman gold 40 of 50 Stroh's game-worn Jersey Prism bar show blue J's rookie refractor Brewer Scarrett Mitchell. Hopefully there's a super in one of these Wave the 75 Dodgers Mookie Betts Prism Corey Seeger Rangers rookie refractor Guardians Oscar Gonzalez 88 Morrell rookie auto Jared Schuster Braves refractor Ricky K. Kevally Nationals You know he's a base cards later Titans Acunia refractor Castellanos Yeah, Carl heard that man Josh Jung Prism Lemay Hugh Yankees refractor rookie is Vargas Dodgers Adley base Harris Prism rookie Rosario Padres refractor bucks and Twins. All right last box of the break All right, what's got spots left? See you got selects. We got Carl Rale. No pop All football besides draft Prism Lindor Mets factor Cal Ralee I Guys to get basketball and football and pop sentry filled on up orange wave Alec Monella 3 of 25 for the blue J's Prism Schorber Phillies refractor Wheeler Phillies It was each of the pads It is one of the signings of the offseason for sure He will be one of the running backs this season Guardians J ran purple speckle rookie auto Francisco Alvarez 278 of 299 Mets Congrats to the Mets refractor of Jock Peterson for the Giants You should be able to change it during the checkout process The last step would be to pay now and then you just choose which payment you put in like a credit card or something It's the only way I know Might be different for PayPal or something. Rutschman Titans refractors say a Suzuki Prism Joe Ryan for the twins refractor J Ram Guardians I got select H2 16 to go select H2 basketball Breaking in just a bit crown team all is at 23 to go as well each to down to 14 Ten a color ohtani prism JD Martinez Dodgers refractor Robbie Ray purple rookie auto Bryce Johnson 182 of 250 Giants refractor of Lattie, Jr. Magenta speckle out of 350 twins Royce Lewis Cunha rookie refractor Gunnar Henderson prism Stephen Kwan guardians refractor Libertura Cardinals Now prism Nelson Velasquez rookie Cubs refractor rookie Langaliers 88 morale rookie auto Logan Ohapi angels refractor rookie Cody Clemens Phillies Corbin Carroll Technicolor Titans J Ram refractor rookie Tristan Casas Red Sox Time to do a Recap thanks for joining everybody. We got finest and tribute up next all of our numbered cards. We had Osvaldo Cabrera Tyler Stevenson Brandon Crawford Julia Rodriguez Royce Lewis Michael Massey Raphael Devers Steven Kwan Evan Longoria mookie bets Alec Manoa Ozzy Albees We have three jerseys, which is kind of insane Salvador Perez Zach Grankey two Royals there gold to 50 Alex Bregman autos Logan Ohapi Jared Schuster Christopher Morel Nate Eaton Will Brennan Tommy Henry buddy Kennedy Fractor Brandon Hughes and Ryan Creyler purple speckle Carlos Perez true purple Bryce Johnson mark vientos purple speckled Dermis Garcia and true blue Miguel Vargas In a purple rookie refractor Gunnar Henderson Orioles a 250 rookie refractor auto Adley Rochman 69 a 499 Purple speckle rookie auto Francisco Alvarez 299 for the Mets and a true orange rookie of Gunnar Henderson 21 of 25 Congrats Alvin killed it with the Orioles Moving on to Finishing Tribute


Hello, I'm Javier Hernandez, reporting from Washington. In order to sustain staffing levels and initiate program enhancements, the federal judiciary is asking for a 7.6 percent budget increase for fiscal year 2009. Judiciary officials proposed a $6.7 billion budget to appropriation subcommittees in both the House and the Senate. The judiciary is requesting $6.7 billion an increase of $475 million over the 2008 enacted level. 86 percent of the increase is for standard pay and non-pay inflationary adjustments and for adjustments to BASE, reflecting increases in space, information technology, defender services and court security programs. Gibbons added, in the near term, the judiciary is in good financial shape, thanks to a emergency support last year. We are particularly appreciative of the $25 million you provided in emergency funding to respond to workload associated with immigration enforcement initiatives. Gibbons, and administrative office director James Duff, testified that an aggressive cost containment program helped the judiciary reduce its appropriations requirements. Gibbons cited innovations in information technology and initiatives to control personnel costs. Duff mentioned a new agreement with the General Services Administration. I signed a memorandum of agreement which was co-signed by GSA Public Buildings Service Commissioner that changes the way rent will be calculated for all federally-owned courthouses to be delivered in the future. It also applies to 32 of our existing courthouses. The new agreement ties rent rates to the cost of constructing a building instead of fluctuating market values. That should save the judiciary millions of dollars. The committees will review the request and send it through Congress in the coming months. The 2009 fiscal year begins October 1st. Reporting from Washington, I'm Javier Hernandez.


Hey guys, it's Nate, aka The Foot Accountant. Welcome back to the channel. We're talking about award winner SBCs today, based off of the Luca De Young SBC that we got yesterday. I want to talk about the market as well in terms of the 92 plus tots. Are we finally going to see that 89 rated five gold, wait, 89, five rare player pack SBC. If there's any day that comes, I feel like it might be today because we have the 90 plus double from last week expiring today. So I'll talk about that in a second as well as well as the upgrades for champions lead cards. David Alibis now at 95, Goretzka, Kings of the Coman are both 95s and Diego Carlos got his upgrade to a 93. So we're going to look at those upgrades, look at what happened with the market. If you guys bought some of the cards I suggested in yesterday's video, you definitely could have made a profit today with some 82s, 83s, and 84s that went up because of this SBC and because of the 92 plus team in the season. So let's talk about this award winner Luke De Young first, right? EA dropped this SBC today to commemorate Luke De Young as the man of the match for the Europa League final, giving him a 95 rated card. Honestly, it's not really a meta card, but I think this has to be a like top three or top four dynamic image that I've seen in FIFA five star week foot three star skills. And I think he's got like a maxed out heading statistics because when they tweeted this card out today, they're like he can score goals with his head, which I think he might have done in the Europa League final. He might have scored a header goal. I think he had two goals. He was made of the match. 99 stamina, 99 strength, 99 heading, 99 composure, agility and balance is not there, but he's a pretty tall guy, six foot two, medium high work rates is very interesting. But this is almost just like a card collectors type of item. It just looks cool with that dynamic image. That's just like a cool card. I honestly want to have my club because of the dynamic image. So that was an 84 rated squad for this Luke De Young today. But again, since we got this SBC that opens up the door for a possibility that we could get a Champions League man of the match as well. A Champions League man of the match award winner in the next couple of days. Earlier today, I posted this picture right here of Manuel Neuer because I thought that Manuel Neuer was the man of the match from yesterday. But what I was informed of later was this guy, Kingsley Coman was actually the UEFA Champions League man of the match. So I don't know if this plays at all into who would end up getting the SBC. But I would have to lean towards the fact that Kingsley Coman since he actually got the man of the match award from UEFA would probably be the one to get the SBC in game. That also, you know, I would have loved to see a Neuer, right? Because a Neuer card, imagine having this card in foot that would be sick, right? 97 or like even 96 rated Neuer would be freaking nasty. But since Kingsley Coman already has a 95 rated card as updated just earlier a couple hours ago. What would a Europa League or excuse me, what would a award winner Kingsley Coman SBC really look like? Honestly, I have no idea, but it would probably be around the same level as this. Maybe even a tad bit higher if they wanted to give him like a 96 or a 97. That would be sick. Please EA just go all out and do it.  Just go ahead and do it, right? So there's a possibility that we get a Kingsley Coman. Now I guess if EA just want to put out whatever SBC they want to put out anyway, they could put out a Neuer card like this. I mean, I'm sure there's some site out there on the internet that had Neuer as possibly the man of the match over Kingsley Coman, which they could use to back that decision up. So I'm not saying that we won't see a Neuer SBC. I'm just saying it's most likely that we'll see a Kingsley Coman SBC if there is one coming because of him getting this award. So I like that, right? I like this from EA. This is a GG. I know a lot of you guys have been asking me, are we going to get award-winner SBCs for the player of the years, you know, for the League Un, for the La Liga, for the Bundesliga, for Serie A? I doubt it. I don't think we will because I think those would have come out already in foot. If we're getting any more award-winner SBCs, I think it just has to be a man-of-the-match SBC, kind of like this one for De Young before the Champions League. That would be the only other one that I would expect to actually come out in terms of an award-winner SBC. Now, again, let's keep it on UCL and talk about some of the upgrades. If you do want to do this, David Alaba, he did get a pretty saucy upgrade. Plus three overall on the card and he got a lot of plus threes in stack categories as well. If you take a look around the card, I do remember he had 89 dribblings. We got boosted up to 92. A lot of plus threes in those categories. 85 rated squad for this, which actually probably is, he's probably a bit cheaper right now than what he has been the entire week. The footbin, he must have just been updated because footbin isn't even showing this. But 119K for this SBC, I mean, it's been over 160,000 coins for the past week as SBC fighter has been pretty inflated and pretty expensive. So that's something to kind of look at. You have a couple hours left to do that. If you're interested in it, that is still out in the game as well. And of course, if you wanted to do under Herrera just for some cheap 92 rated SBC fighter, he is still here as well. But I guess that's kind of cool that we got to wait until the upgrades actually happened for those cards. Speaking of upgrades, let's take a look at Leon Goretzka. I want to show you this card. This card right here is honestly, this might be record breaking FIFA Ultimate Team, man, because the amount of in-game stats that this card has, I think, has to rival the most that we've ever seen on a card in FIFA history. Look at that card, bro. Not a single stat under 92. If you go to Footbin and look at the in-game stat calculator, check this out. Check this out right here. Leon Goretzka, out of 2800 possible in-game stats, this dude has 2,647. He is only 153 in-game stats away from having a perfect card. That's honestly wild. That is honestly incredible. I think that has to be the most in-game stats on any card in this game. I think it has to be. There's no shot. Maybe how much does De Bruyne have? I guess this is the only item in FIFA 20 that I would think maybe has more, because De Bruyne has a 99 and a 98. Okay, 2681. So Goretzka only has 2647, right? So never mind. The KDB actually has more than Goretzka, but still, I mean, this is just like from an all-round perspective. This card is just incredible. It's ridiculous. And if you need a midfielder in the Bundesliga, this is your guy, right? The Koman got his upgrade as well, 95. He's got, you know, in insane looking cards, with all the rest of these upgrades, which is dope. The other one that I wanted to show you was Diego Carlos got his 93 as well. He has now pushed up two ratings higher than his team in the season. And if you did, if you turned this card into an SBC at some point during team of the season or earlier this year, you are not feeling too happy about that, because this card looks incredible now and it's even higher rated than the team in the season, which is wild. It's honestly pretty crazy, but that's where it is right now. GGs to Sevilla for winning the Europa League and getting that designation. So that's where some of those upgrades happen today. I honestly think they happened, like, very, very recently. And that's why you're seeing a lot of these cards searched up at the front of Footbin, because those upgrades literally just happened not too long ago. I mean, even Footbin isn't showing the 95 on the alibi. But let's talk about some of the SBCs that came out yesterday as well and if there could be more today. So yesterday, after having no content on Saturday and Sunday, we had three SBCs. We had the 92 plus team of the season guaranteed. We had a Luke DeYoung man of the match, of course. And then a preseason challenge, which this one was interesting to me, right? I literally said in my video yesterday that they're not really putting out a lot of pack supply SBCs and we actually got a pack supply SBC today with this preseason challenge. Now it was untradable, so it didn't affect the actual tradable supply on the market, which is a good thumbs up for me or for you guys if you invested in some of that SBC fodder because since the 92 plus Tots came out today and since that Luke DeYoung came out today, there was a lot of cards that moved upwards in price. If we take a look at some of the cards on the market right now, some of these cards, if you go back and look at the prices last night that they were on the video when I recorded last night, Audun Geese I think was like 5,000 coins. Now he's basically like 6 to 7K. Basically all 83s earlier before the SBCs were dropped today were down in the 5K range and if you bought some of those, you're feeling good because a lot of these guys are back up to like 6.7, 6.8K. Again, back to foot bin for an example. Wow, he's actually still 9K. Never mind, updated two hours ago. So that is a not accurate price. But this guy was 5,000 coins after squad battle supply Sunday night, Monday morning. The SBC came out, boom. My guys up to 8,000 coins. Looks like there was somewhat of a leak where he actually boomed up ahead of time. People bought a lot of these cards up and then he kind of stayed around 8,000 coins and is now back down. So honestly, if you're interested in some of these 83s, I think there's going to be more SBCs that come out. I know they're up a little bit from where they were on Sunday night, Monday morning but these cards have potential to continue to go higher. Again, this guy was 5.2K all the way up to 9,000 coins, 8,500. Now kind of dropping back down. So if I start to see these guys in the low sixes for sure, I'm going to get interested again because I know for a fact there's more SBCs coming this week. It's just the way they're running this game right now. They're putting out those upgrade pack SBCs a lot. Like almost every other day. I would honestly not be surprised if even today we had that 89 rated, the 89 rated 5 player SBC. 5 times 89 plus, right? I think that's what I should actually call it. But if that SBC comes out, you're going to see more of the higher tier market move. Again, watch Rakitich, watch Pianich, Benucci, the gold or UCL items that are in the cheapest players by rating section for the 85, 86, 87 ratings. Now again, I'm not guaranteeing that that 89 plus comes out today. But seriously, like if this stuff is just getting really cheap just for the rating and the amount that I think it could go up, even if we get a Kingsley Coman man of the match SBC, right? How much is that going to cost you? If they're requiring a 95 rated, Luke the Young is costing you an 84 rated squad. I would venture to say that if they put out a Kingsley Coman man of the match item, that card would probably run you around the range of an 85, maybe an 86 rated squad as well, making that like a 200,000 coin SBC because his 85 rated Champions League go to the final card is also 200,000 coins right now as well. So that would kind of make sense to me if they did that.  When would a Kingsley Coman like that come out? I do not know if it would come out soon, probably a couple days away. How long is the Luke the Young out for? That'd be my one question. So it's out for a week. So maybe we see later this week a Kingsley Coman SBC, if there's a dynamic image of Kingsley Coman. I mean, shoot, they could even use this dynamic image of Kingsley Coman holding the man of the match trophy from the away website. If they really wanted to, I hope they don't.   So again, just a quick rundown again, a short video today boys because there's just not a lot going on in this game right now. There were the final upgrades to road to the finals and to these UCL showdown SBCs. You have a couple hours left on Alaba if you do want to craft him. The Young came out. That means I do think we will get Coman and we did get another Tots upgrade SBC with a 92 plus. And in my opinion, I think we will get another upgrade type of SBC today on Tuesday as well. So just keep your eye out for some of that stuff. Other than that, there's really not a ton going on right now in FIFA Ultimate Team. So enjoy some of the upgrades if you're happy with those dudes. I bought some of the Paredes cards. Last week, this guy was like 1,000, 1,500 coins and I sold them all for 4K today just because I still had those, got it out. I bought this Neuer last night during squad battle rewards for 106. He is still extinct at 120. So again, just something that was a very easy call of noticing supply on the market that carbons extinct before and he kind of rose back up to that extinct price range. So I know it's August boys.  If you enjoyed this video, smash the thumbs up on it. Comment down below if you have any questions and subscribe to the channel if you're new. It's been Nate, The Foot Accountant. Catch you guys later. Peace.