Well, well, well, ladies and gentlemen, have we found Hitomi's replacement? I'm just kidding. I'm just kidding. Hitomi is obviously irreplaceable, however, she has been copywriting me lately whenever I talk about her, you know?  Plus, she never honored my cookie sponsorship. Hitomi's very vegan cookies are available on frankiesfreerangefoods.com. We have dark chocolate with walnut and hazelnut as well as white chocolate with macadamia nut too, organic, vegan, minimally inflammatory, delicious cookies available for you guys.  And hey, maybe we'll have Owan's very vegan cookies. I'll have to come up with a creative name for her. And as you can see, she is very intelligent, just like Hitomi, you know, tons of knowledge available on her Instagram, tons of knowledge. And you know, we can tell she's obviously very, very smart about diet and nutrition. We have a lot to learn from her.  But apparently she is vegetarian. I'm a fan. I'm definitely a fan. And she has friends. Ooh. Okay. Okay. Okay. Okay. I'm going to be eating a day simple plus vegetarian. Good morning. Feeling very sluggish today. I was supposed to get up at six today and I just could not. I think my period is coming. I'm having some slight cramps right now. And I just feel more tired. I mean, yeah. You know, taking some fluoride straight to the dome in the morning in a high MF apartment. Yeah.  You know, what do you expect? What do you expect? I mean, yeah, you know, taking some fluoride straight to the dome in the morning in a high MF apartment. Yeah.   What do you expect? Oh wait. She does have a giant five gallon water jug here. So maybe not too much fluoride. Maybe she's just getting some plastic. As usual, it's eight AM already. So I'm two hours later than what I'm supposed to get up. But I'm going to do a what I eat in a day and show you guys everything I eat today. All right. Let's make a smoothie. There's a fly in my kitchen right now. It's flying around. Yeah.  There's a fly in my kitchen. He's flying. I can't. I can't. You know, I do see the similarities with Atomi, you know, kind of half naked, has a serpent tattoo. It's scary. There's bananas. You know. Well, I like her though.  I feel like my brain is really not functioning right now. Oh, you don't have to tell us, sweetie. Why on the morning that I decided to film? I think that's every morning. I feel like this is a good amount.  This is just what I do. Don't do it. No, she's just right into it. This is what I do. I mean, do they all have the same editors? Like the cheesy, cheesy, cheesy editing with the elevator music in the background? Literal elevator music. I'm going to put some chia seeds on top. It's looking pretty good until the bird food.  I mean, it doesn't look like they're organic, which is the main thing you need to do to reduce the agrochemicals and the negatives. And oat milk, especially most brands, they're adding like synthetic chemicals and stuff in them that you don't really want to be consuming. But if it was homemade oat milk with all organic ingredients, I think this would be good. I mean, we could kind of just disregard the chia seeds because they come out the same way they came in. But it's not bad. At least it's some calories. At least it's some calories. I could honestly make something similar to this that I would eat that would be kind of healthy. But, you know, you could swap out the peanut butter for macadamia nut butter. You know, you can make macadamia nut milk instead of oat milk. The bananas aren't that bad of a choice, but you could use other fruits as well. And then the oats, it depends.  I don't think it's that big of a deal. Okay, now I'm going to take my supplements. I have vitamin K2 and D2. She's just like so unmotivated. Like she doesn't want to be doing anything.  Ah, hey guys, here's my supplements. It's like she hates us. FB100 complex. I'm going to take two capsules.  We like, we need girls to slam the door in our face and pepper spray us until we go away. And that, anyway. Vitamin D3 plus K2. Usually the form of K2 is MK7 instead of MK4, which isn't that available. And the dose of D3 is usually way too high. So I would just swap that out for an MK4 supplement and get plenty of sun. The B100 complex, all of the synthetic B vitamin dosages they put in most supplements are way too high on toxic, which is why we came up with a natural B complex on organsupplements.com. And then fish oil is just oxidized poison. Should not be taking it under any circumstance. Just have fish once a week, once every two weeks. Most of the stuff, I mean, I wouldn't take any of these supplements personally, but you can make some slight adjustments to something reasonable. Organsupplements.com. Also, I cannot swallow multiple pills at one time. I wouldn't guess that. It's impossible for me. So I have to do all of this individually, which is so annoying. I bet she can do it once she's drunk. Okay, let's get dressed and go get coffee. I've kind of been putting it off because I don't know if that's her real hair. I don't see the walk over there, but I feel so sleepy. I need some caffeine. This is girls in 2023.  Look at her. The background in this, her closet with like thousands and thousands of dollars of nice stuff is a testament to, hey, maybe some people have a little too easy of a life. Maybe we need to put him in the mines and have him dig sand for a few hours. You guys know like the UFC fighter, Francis Negati. That's literally what he needs to do.  I mean, right now, so... I mean, she's wearing braces. She's still in her teens. Okay, so I'm getting a little bit hungry because...  Oh, I see an egg in there. Oh man, imagine if I would have missed that. Is that an egg? Imagine if I missed it and like the rest of the day was completely vegan. Imagine. I'm hungry because... Yeah, that's gotta be an egg. My breakfast was kind of small, so I'm just... One egg. ...making a salad... As our sole source of animal nutrition. I guess it's kind of like a brunch. I'll probably eat something else later, but for now. I just want something really crunchy and chewy because I only have liquids this morning. Is that an avocado? No, right? It looks really big. Oh, it must have been. It looked kind of big for an avocado. You know, this is actually a pretty big salad.  Let's see. Because after this, I'm gonna choose some... Honestly, I don't know how they stomach half it. They must be so ravenously hungry from not having enough animal protein in their diet that they can just down this giant... I feel like this would completely fill up your stomach and you have to sit there and let the food push through to stomach the rest of it. Light stretches, light workout, and let's see if I get hungry. And there's people that do this, too. I forgot what it's called. They'll just eat really high volume, low calorie vegetables the whole day just to keep their stomach full, to lose weight or think they're being healthy. When in reality, if you just had one bite of steak, that would be more nutritious and keep you fuller for longer than this bowl of nonsense. It's just like just clearing out your digestion. They're still wearing my pajamas and maybe getting some agrochemicals for whatever was sprayed on all those leaves. She doesn't look too physically energized with how she flopped that yoga mat on the floor. You know what the boy's on TikTok are saying now? Pretending to Asian girls? If it ain't rice, it ain't nice. If it ain't... If it ain't rice, it ain't nice. I don't think anyone with a serpent tattoo is nice. Looks like some tofu, seitan, seitan tempeh, whatever we want to call it. The evil meat replacement. I don't know what type of oil that was, but... If it's olive oil, not that bad. If it's a seed oil, at least you didn't put that much. So we got some type of... sauced tofu. This is very traditional Asian food, I guess. Bowl of rice.  Rice, I cannot live without white rice. I do actually eat this every day. Cannot live without rice. That's just the Asian in me. At least she's honest and straightforward. I'm not acting too much.  Okay, it's time for dinner. I'm going to try and make this ramen that I'm obsessed with. I got it in Bangkok. It's called Tantanmen ramen. I thought I would learn how to make it because I can't just fly to Bangkok every time I want to eat it. That sounds very... I can't just fly to Bangkok every time I eat it. Well, I can't just fly to Bangkok every time I want to eat it. The way she phrased that, it sounds like she actually could. I saw this recipe on YouTube. I'm going to try and make it. Do I have the recipe on my Apple Watch? Just ask them straight. Hey, listen, maybe...  Is that how you say her name? Listen, maybe if you didn't have the Apple Watch, if you didn't have the tablet, the cell phone, the high Wi-Fi apartment, maybe if you were with me in my metal tent, you would feel a lot more energized and motivated and your brain would start functioning. Onion tofu that I like more. Oh, more tofu. That's exactly what this diet needs. Another giant bowl of tofu. And make the broth. You know, I'm sure someone has figured out the amount of estrogen you need to actually grow breasts. I was about getting into that today. It looks like some... I'm guessing that's some type of beer. I mean, that's... There's no way that's going to be good. She just sauteed two vegetables for, like, what, a few minutes and then added some chili oil. What's the liquid base? Is this like a canned stock? Did I miss what that... I have no idea what that was. Did she say what it was? I mean, it's just onion garlic and some type of nut butter. What is that? What is that? I mean, it's got to be a beer or something, right? Okay, so there's some sauces and sugar or something in it. Okay, I don't know if it's going to be good or not, but I try my best. This is kind of ugly. I don't know how to arrange this. Okay, the moment of truth. If it's bad, I'm going to be so sad. It's almost like she wants it to be bad. I just put a little bit too much chili oil, I think. You want to taste it? It doesn't taste like that one, but it tastes good on its own. Oh my God, I definitely put way too much chili oil. Oh, of course.  I've had enough of this video. I've had enough. Oh my God. Oh my God. This is honestly... She deserves all the subs because she's honest. Like, we know all of these vegan influencers and these liars, like, they'll go through... We know they're throwing out the food after they make it and they order takeout. At least she admits it was bad, you know? At least she admits it was bad. I mean, of course. It's some vegan ramen. You need like a pork broth or a beef broth or a decent base to it for it to taste good. You know? Wherever she got the dish in the restaurant, they're probably throwing all sorts of stuff in it that she didn't... Okay, I didn't even know.  I just guessed and I was right. That's the thing, bro. If I was half of a tall... I'd actually be too pretty. I'd have to get like Korean girls or something, you know? Because the other Asian girls, like... I'm not gonna be mean today. Never mind. You know how it is, you know?  But like the actual pretty Asian girls, like... I gotta be a little... They like the tall, pretty boys, but... They actually don't have to flee their country to get a boyfriend. So, I'm surprised she didn't just take the egg out of the salad and call it vegan. I mean, dogs aren't vegan. You know, you can't be vegan and have a dog. That's not allowed. But she did have... Hey, look. One egg in the salad, I guess. That's all the animal nutrition she needs for the day. I mean, it could be better. It could be worse. Awan da queen.  I love that you prioritize your health both mentally and physically. I also have the bad habit of putting off my health when I'm busy, but your vlogs always remind me to do... I mean, this is a problem. These girls think that this is healthy. That not having any animal foods whatsoever in their diet is healthy. But hey, maybe you can look pretty good when you're young on this diet, but that's anyone. If a girl is young and hot, she could have vodka and pizza for 10 years and still be hot, but eventually it's gonna catch up to her. You know, the people that look good in their 30s, 40s, 50s are the ones that actually have things correct. I mean, I don't know how many of these views are real. I don't know how much of this is fake. Usually 62 comments on 50k views is a little fishy. But hey, look, she's kind of a baddie. And just the thumbnails. I mean, this is just like classic pinter. Maybe this is what I have to do, bro.  Anyway, hope you guys are enjoying your Sunday. Big, super bold day, so I'm sure you guys are gonna be relaxing later. So as I said earlier, you guys can go to, I guess we could show you guys, you guys can go to frankiesfoods.com where we have a variety of unique and interesting products ranging from meats to fermented foods. We just added the sourdough starter and the mentioned tatami's organic chocolate chip cookie bars. We have the ingredients listed here, guys, if you'd like to try them out. But as always, guys, please drop a like on the video. Leave a comment down below. Subscribe and check that notification bell. And you guys can also check out frankiesfoods.com if you guys would like to see all of my other businesses as well as social media pages. Thanks again for joining, guys, and we'll see you soon.


Is topicalization of subjects the only problem? No, Chinese learners of English also topicalize objects of sentences. They produce sentences in which objects are topicalized. The problems are similar to those created by subject topicalization. Look at this sentence, for example. Concerning internships, job seekers find them practical. Again, the way to correct these sentences is to remove redundant words and phrases. So what's redundant here? Which words are extra? Concerning and... Them, because this word refers to internships. Oh yes. So the sentence should be, job seekers find internships practical. Well done, Coco. Let's have a look at another one. Ask for salaries, graduates find them low. That should be... Graduates find salaries low. That's fine. And this one, for graduates, it is difficult for them to get a job. It is difficult for graduates to get a job. Very good. Are there any other ways to write this sentence? Maybe use graduates as a subject. How about this? Graduates is difficult to get a job. No, that's very Chinese. Graduates are not difficult. Well, most of mine aren't. Getting a job is difficult. So we need a verb to go with graduates. Yes, we can use the verb find. All right. Graduates find difficult to get a job. Not quite. You need to put something between find and difficult. Graduates find it difficult to get a job. Great. Let's find another sentence with the same problem. Students are hard to gain workplace experience. Are students hard? Of course not. Gaining workplace experience is hard. So you can write. Students find it hard to gain workplace experience. Good work. I think I understand now. Well, here are some sentences that look different from the ones we've been looking at, but they have the same problem of topicalization. This time there is, or there are, has been used to introduce a topic of a sentence in the front position. For example, there are many employers look for good communication skills. That's Chinglish. You have two main verbs, are, and look. Employers is the subject, so look is the main verb. But it's easy to create these sentences too. By removing unnecessary words. Of course. Yes. Do that now. Many employers look for good communication skills. Great. Let me see if I've made any similar mistakes. Yes, here's another sentence. There are many experts predict e-business will grow. I can change that to many experts predict e-business will grow. Very good. You could also keep there are, but change the rest of the sentence. Want to try? Change the second verb into a gerund. There are many experts predicting e-business will grow. Yep. Now write a relative clause after experts. There are many experts who predict e-business will grow. Excellent. So let me change this one. There are many jobs require good communication skills. Go ahead. Three versions. Okay. So first, remove there are many jobs require good communication skills. Second, change the second verb into a gerund. There are many jobs requiring good communication skills. Yep. And third, write a relative clause. I can't write who this time. I can write that. There are many jobs that require good communication skills. Great sentences Coco. I think you're getting the hang of this now. Thank you very much for helping me Peter. This is very useful. You're welcome.


Good morning. Good morning. All right, so it's Wednesday. The midterm is Friday, OK? Canceled? No. I mean, you're welcome to act as if it is canceled. And in that case, your grade on the midterm will be canceled. So OK, so what I thought we would do today is I wanted to take some time to review. I saw this practice in Sam yesterday. So just let me do some course notes. I don't have any slides today. We're just going to go through the exam again. You guys are welcome to ask any questions you want to about the material, right? So we cover a couple of things.  He's feeling a little randy this morning. OK, so a couple of course notes. So I think finally we have an assignment one solution that makes sense. So if you guys downloaded it previously, please download it again. Thanks for pointing this out in the forums. Actually, the forums have been really helpful. I went on there a couple of days ago and I wonder if there's anything interesting happening. And someone had pointed out that solutions that was wrong. So that was awesome to find out. I mean, it wasn't awesome to find out, but it was nice to find out. So anyway, the link now to the solution that should work, the code that you get should work, and it solves some problems that people have noted in the forum. So please, I would suggest everybody take a look at that code, even if you're going to use your own code. Just download it. Look at sync.c side by side with yours. Make sure things look kosher. It might do some error checking that you don't do, which might be good to emulate. Or there might be a corner case that our tests haven't hit yet that it fixes. It's not that much code to look at. Really, again, the things that you should have working, if you want to sign it to to work, are locks and condition variables. As long as you didn't break our semaphores. If you didn't change your semaphores, those are the two things to focus on. So today, because of the class, the way I want to do things today, can anybody who is sitting somewhere where they can't easily talk to somebody else, like you, you, you, that's it. Can you guys move closer in? Because I want you guys to spend some time discussing the exam problems with somebody today as part of class. So if you're sitting by yourself, find somewhere where you can kind of join a group. So as far as the midterm, so the midterm will cover. So essentially, again, the practice midterm I sent out is identical in format to the actual midterm. Except for the fact that I didn't write any multiple choice questions. The multiple choice questions on the midterm are drawn exactly from the slides, right? Like here is how I created the questions. I went through the slide decks for the class and I found things that were on the slides and I use them to create multiple choice questions. And usually, the multiple choice questions borrow like the same language from the slide, like they're identical. So if you know the material on the slides, the multiple choice questions are designed to be easy, right? They're really not designed to be tricky or hard. They're not complicated, right? The short answer questions are also designed to test your understanding of material that we've gone over in class, right? So the short answer questions will ask you to do things or to demonstrate some knowledge in English, right? By writing down a couple of sentences. But those are also sort of drawn directly from the material. The long answer question is going to ask you guys to think a little bit, right? So it's going to ask you to apply some of the principles that we've learned in class. Nice suit, by the way, look at the chart. Hope you dressed up for the midterm, too. So that's going to ask you to synthesize some knowledge, right? So this isn't just a regurgitation exam, right? The multiple choice questions are highly regurgitative. The short answer questions are mildly regurgitative and the long answer question is designed to not really be regurgitative, right? It's designed to ask you guys to apply some of the design principles we've talked about over and over again in class, right? But what I'm hoping is that there's not too much stuff on these exams that's really highly mechanical, right? So there's one question on the practice exam that's a little bit mechanical. Maybe that will give you guys a little chance to do something easy, but most of it is designed to get you thinking, right? So what I thought we would do today is quite simple. So I had the exam, again, the point values on the exam are designed to estimate the amount of time that you should allocate for each problem, right? So there will be six short answer questions of which you are expected to answer four, right? You will get a maximum of 20 points for that section. There are two options for the long answer, each one is worth 20 points, right? You pick four questions from the six. If you answer more, since they're short, we will grade the extra ones and we'll give you the sum total of your best four scores. On the long answer question, you know, we're not gonna grade both. So if you decide to answer both, that's five, but we will simply pick probably the first one on the exam and grade them, right? All right, any questions about the format? All right, so I learned, some of you guys are in Steve's class, I learned this new word recently, it's called invigilation. I'm not even sure that, I don't know, I've never heard that word before, okay? But let me make it clear how the exam on Friday is going to work, right? I'm gonna hand out the exam, it's a 50 minute exam, all right? I'm gonna hand it out at nine a.m., right? Nine o'clock on the dot. And at 9.50, if your exam isn't in the box outside the classroom, your score is gonna start to fall rapidly, right? So I think what I'll do is I'm just gonna deduct five points for every one minute that your exam is late, okay? Given that you probably are gonna earn about one point per minute, if you do the exam well, my suggestion is don't take that penalty, okay? It's your, I'm gonna put a clock in here, right? It could even have seconds if you guys want. I'm happy to set it a minute ahead or something. But there's no other way to do this. When I did the preterm exam, there were people in this room who I had to literally grab the exam out of their hand, right? I'm not playing that game on the midterm, right? If it's not in the box, you're gonna start to lose points, right? It's very simple. And if you show up late, tough, okay? So some of you guys are still drifting in today. Whatever you did today to get to class at whatever it is, nine, 10, you need to do that minus 20 minutes on Friday if you wanna be here at nine o'clock, right? Because that's when the exam will start and I don't care when you get here, right? If you come in at 9.30, you know, I hope that you can answer the questions rapidly, right?  That exam is also gonna be given at nine a.m. You know, it just has to be at some time. I will email you if you are taking the exam tomorrow because it will be gone Friday. I think most of you guys have contacted us already. If you need to take the exam tomorrow for some reason, please email the core staff. I will contact the people who I think are taking the exam tomorrow and tell them where the exam will be, right? That's gonna be the exactly same format. It's a different exam, right? So, you know, I mean, there's no real advantage to taking it tomorrow, right? There's no advantage to taking it Friday either, right? I would like people to take it Friday, all right? Any questions about formatting, coverage, et cetera, et cetera? The material covered on the exam is essentially up through Monday. I don't think that there's a question about page replacement algorithms, but there are questions that relate to swapping, right? So, swapping is something we kind of covered last Friday and then reviewed a little bit on Monday, right? So, I would look at the notes all the way through Monday, right? But, again, as far as I know, there's nothing on page replacement, although I can look and make sure. All right, so here's what I thought we would do today. Again, there's, I don't know if we'll get through the whole exam, right? But what I thought I would do is, why don't we, how many people have looked at the practice exam already? All right, cool. So, why don't we do this? I'm just gonna put up a question on the board, and I don't know what the best way to do this is. Maybe I should play like a minute worth of classical music to stimulate your brains.  Let's just discuss amongst yourselves, right? So, why don't I put up a question, and I'm gonna give you guys a minute or two to talk about it in small groups, and then we'll go through the question together, okay? So, the first question on the short answer, again, there's no multiple choice on this exam. So, explain the trade-offs inherent to the scheduling quantum length. What happens when it gets very short? What happens when it gets very long? So, the short answer questions on the exam, you know, I gave you guys a lot of room on the practice exam, I'm gonna do that on the midterm as well, just in case you guys like to light really big or something, but these are designed to be answerable in three or four sentences, right? So, if you find yourself writing pages and pages, then either you're probably overthinking the question, or you're overthinking your answer, right? So, okay, so, five points for this question, first question, I'll give you guys, I don't know, two minutes, discuss amongst yourselves in sort of local groups, which involves talking, which means the room should get loud. Keep talking. Brain music. Yeah, I know, it's like being in an apartment store. Yeah. What do you think? Come here. What do you think? Come here. Hey, hey, you're my kiss, you're my kiss, thanks. All right, 30 more seconds. You got a little extra time on this one, so you're probably done with 30 more seconds to think about it. All right, 10, nine, eight, seven, six, five, four, three, two. All right, who wants to take a stab at the question? What's a trade-off inherent scheduling quantum length? Okay, how about this? Who wants to talk about what happens when it gets really short, right? Context with overhead means what? Efficiency is a little why. No, tell me why, though. I mean, you guys are on the right track, you've got the right, you mentioned some of the right things, right? But what are the two things that are competing for time on the CPU here, right? One is the actual time it takes to schedule a process, and then I let it run, right? So if it takes, let's say it takes 10 time units to schedule a process and I only let it run for one time unit, right? So now essentially, or let's say it takes nine time units. So 90% of the time on the CPU is being spent at schedule and in only 10 of it is being spent on actual work, right? Okay, so what about the other direction, right? This sounds terrible. I mean, why not just give processes these massive long quanta, right? That way I can, I mean, that's clearly the way to minimize the overhead of scheduling, right? To make the quantum longer and longer. Who wants to tell me what happens when that happens? So why will responsiveness suffer? That's true, that's correct, but why? Because what's the thread that I'm worried about here? What's the thread that's gonna cause responsiveness to suffer? What's that? Well, no, the thread that yields very quickly is not the problem here, right? What causes the problem, doubt you. I'd say kernel or something clicks on a word. Kernel is not gonna, if it's too long, then it's gonna take too long for the user to actually get the program running. Right, so what kind of thread is it that's blocking the thread that I want to run? Ben, it's a CPU bound thread, right? If threads always yield before their time quantum is up, then I don't necessarily have this problem. But some threads are doing something that's CPU intensive and are never actually going to call yield or execute a system call, and they're just gonna sit there, churning out digits of pi or whatever, until they hit the edge of their quantum, right? So that's the thread I'm worried about. On a system with no CPU bound threads, longer time quantum might make a lot of sense, right? But the thread that causes this problem is the thread that runs to the end of a time quantum, it blocks, right? So okay, so let me, you know, we've done one question, I'm gonna move on to the next one, but let me just make some observations. So you guys are really good at telling me what's gonna happen, right? But on the exam, I want you to tell me why, right? Like tell me, you know, come up with an example, come up with a scenario, right? In which one of these things is bad, right? So with a short time quantum, you might, you know, you wanna say, well, you know, because context which overhead is fixed and the scheduling overhead might be fixed, if I reduce the time quantum, then clearly the ratio of time spent scheduling and time spent actually doing useful work starts to get low, right? And vice versa with the other scenario, right? But the CPU bound thread is the problem, right? That's the thread that's gonna exhaust this quantum. All right, questions about this question before we go on? Okay, next short answer question. All right, this one's kind of mechanical, right? Okay, base and bounds. So I'm giving you a segmentation base and bounds tables for the currently running process and I'm giving you five pseudo assembly instructions. These are not actually MIPS, but you can tell what they are, their loads and stores. So, five of these, five minutes. Tell me what's gonna happen. I'll give you guys two minutes to think about it starting now, go. What are the two arguments? There, sorry, sorry, just that's a good, that's a good clarification. There are not two arguments, those are numbers. The comma is just showing you where the thousand's place is. Sorry, that is confusing, I should have fixed it. Also note that this problem uses decimal arithmetic, okay? That's intended to make it easier. So, let's go through the question. All right, we've got a segmentation table and as somebody pointed out very carefully, those commas are not there to indicate arguments, they're there to indicate the thousand's place. I'll make sure I clean this up for the actual exam. Okay, right, base time arithmetic, design to make things easy. Operation number one, a load from address 1200. What happens, anybody? Somebody raise their hand who wants to translate this instruction. Right back here, okay. Yeah, it will load from. 650, okay, how did you do that? Okay, right. Okay, exactly right, that will do a load from physical address 650. Did everyone understand how this happened? Can I go through that? Yeah, sure, exactly. First thing I do, right? What's the virtual address that's being used? It's virtual address 1200, right? First thing I need to do is I need to find if there's a segment that exists that contains this virtual address, right? So, the segment contains the virtual address, if the virtual address is between the base virtual address for that segment and the base plus the bound, right? The bound is the size, okay? So, in this case, I look at my segment table and I find out that there does exist such a segment, right? In fact, that segment is the first one in the table. It has base virtual address 1000 and bound 500, meaning that this map's virtual address is from 1000 to 1500, of which 1200 is in between there, right? So, now I verify that the address is valid, okay? That's step one, right? The next thing to make sure, right, is that the process has the permissions necessary on this segment to do the instruction that it's trying to do, right? So, the permissions that are up here for this segment are that it can be read from, right? And this is a load, so I'm fine, right? Now, I know that the segment exists and I can use the segment the way the instruction wants to. The third thing I need to do is actually translate the address, right? So, now it's just math, okay? I've got address 1200. I subtract off the starting virtual address. I get an offset from inside the segment of 200 and I add that to the base physical address to get 650. Yeah? In a question, it is also possible that two segments have overlapping regions? It is bad, actually it is possible, right? I thought about that and I didn't do anything that mean, right? But, yeah, so we didn't necessarily talk about that, but there's no reason that a segment couldn't overlap another segment, either in the virtual address space or in the physical address space. So, I could have two segments with different permissions, different parts of the virtual address that point to the same physical memory. I don't know why, but you could. All right, I don't want to do all of these because these are kind of dull, all right? But, let's do the second one, okay? This is a stored address, 140,000. Who wants to translate this address? Tell me what happens. Somebody on this side of the room. Yeah? Sure. If the first one did not have to read permission, then what would have happened? Well, we'll get, let's do one of those later, but let's do the second one, right? Stored address, 140,000, okay? What's the first thing I need to do? Check if there's a segment defined. So, is there a segment defined that contains this address? Yes or no? Yes, yes. Which one is it? The second one, right? This contains virtual addresses from 130,000 to 150,000. The bound is 20,000, okay? Now, this is a store. Does the process have permission to write to this segment? Yes, okay, so the address could proceed. That's nice, all right? Now, what happens? How do I translate this address? What's the first step? Two steps, math. Yep, I get my offset into my segment and that gives me what, Robert? 10,000 and then what do I do with that 10,000? Add it to my base, no, not to my bounds. Add it to my base physical address and that gives me what? 21,000, all right? Is it easier to do these in decimal? Because I can do them in hex on the exam. Okay, good. Because I've always felt, you know, I hated doing hex math on exams, right? Unfortunately, as a computer scientist, you probably should have been learning base 16 all along, right? If this was the matrix we would have identified you as future computer scientists at birth and we would have made sure that you were taught base 16 arithmetic as if it was completely natural, right? Most of us aren't, okay. Let's do one more. Let's do, let's do number five, all right? Store to address 1,000, right? What happens? Five. What's the fault? Why? Because the process does not have permissions to write to this segment. This address, the segment is in the segment table, right? But I don't have permissions to do a store. I only have permissions to do loads, all right? Very quickly, what happens to these other addresses? What about this guy? Boom, why? Because it's not a store. There's no segment for this, right? What about this guy? Will this guy succeed? No, why not? Out of bounds, right? This segment only covers 83,000 to 84,000 and this is going to 84,100. No, no. The first two do not, the last three do, right? The last three all raise exceptions. Now on a test, like the one you're gonna take Friday, I would want to know what, why, right? So it is not sufficient to answer this question by just telling me what, when I'm asking you, what would happen, right? A TLB exception is part of it, but I would also like you to tell me, this would raise, sorry, a segmentation violation in this case, there's no TLB, this is a segment table. So this address cannot be translated, or more precisely, this instruction cannot execute either because the address can't be translated, it's not in the segment table, or because the process is trying to perform an operation that's not allowed in this segment, or in one case, essentially this address boils down to the same problem. There really isn't a segment defined that contains this address. It looks like it might be in this one, but it's not, right? So really it's the same problem we had in this guy. This guy is almost clearly not in any segment, right? Because unless this one had a massive, massive bound, it wouldn't contain this guy. But this guy is, it really has the same problem, right? Despite the fact that there's something that looks like it might contain it, right? Okay, question's about this question, right? I don't like this kind of problem, right? There will be a problem like this on the exam, there might be two of them, but I think these problems are boring. Okay, maybe you think they're great, but I don't, so, and I get to write the exam. All right, so let's go on to the next problem, okay. All right, here we go. So this, I'll let you guys read this, but let me summarize quickly. One disadvantage of multi-level page tables is the page tables themselves can get big, right? Remember we pointed out, can you guys, can we have one conversation? Thanks, you guys have been talking for about 10 minutes now, it's irritating. All right, so the page tables themselves are fairly large, right? Remember my top and second level page table structures are 4K, assuming I have 4K pages on a 32-bit wide architecture, okay? So once possible solution here is for the kernel to actually swap the page tables themselves out to disk, right? So page tables are just memory, right? I can move memory to disk, okay? So what the question asks is, it points out that, yeah, I can do this and I can reduce the amount of memory and use, but why would this cause problems, right? And specifically, think about the process of translating an address in the kernel if some of the page table structures themselves are on disk, all right? I will give you guys the requisite two minutes and don't let the music lull you into a state of stupor. You need to talk about the question. Come here, doc. What's that? It is. It is? It's like just smiling. That always works. Hey. Ooh, no. No. Are you gonna help them cheat on the exam? You're gonna help them?  Go. You're like Sean. Hang on, Sean. Let's keep going. Anybody want to, what, okay. So what, what is the difficulty? Anybody come up with the difficulty they want to propose? Okay, disk is slow. That's a fact, right? So, but, but what does this mean in this particular case? Right? Okay, so it might cause more swapping. Why? Why would it cause more swapping? Right, but, okay. So, so think specifically about the process of translating a virtual address. All right, Robert? Right? If it's out on disk, you pull it there. Okay, but also what do I have to do? Right, so, so what, what was I doing when I was looking up in the page table? I was handling a what? A page fault. Now what happens if one of the pages is on disk that's part of the page table itself? What am I gonna generate? A multiple what? Page fault. Page fault. So the process of handling a page fault can now generate page faults. Okay, do you guys understand why this is? A process faults on a virtual address, right? That virtual address is in memory, but the data structure that I need to find that out is not, okay? So now when I do a lookup into my page table that causes another page fault, right? Which I now have to handle recursively, right? So how many, so now if I, let's say I have a two level page table. How many disk IOs might I have to do in the worst case to translate? So normally if I'm swapping in a page, right? How many disk IOs do I have to do? Or how much disk IO do I have to do? I have one page, it's out on disk. The process tried to use it. How many bytes do I need to read in? 4K, assuming 4K pages, one page, right? Now let's say I have two level page tables and all of the page tables for the process are on disk. How many IOs might I have to do? Three times 4K, right? Because I might need to read in the top of the first level structure of the page table and then I might need to read the second level structure of the page table as well, right? But the specific, if you answer this question and all you did was mention the fact that handling a page fault could generate a page fault, that's all you would need here to get full credit, right? You'd partial credit for talking about the fact that clearly it's slower because I have to do more IO, but the real challenge here is that when I'm on the page fault handling path I can now generate another page fault. That page fault has to be handled and then I have to return to handling the first one. All right, any questions about this? This problem's a little harder, I think. Right, so, right, but normally the way I do this, if I put these, if I actually swap them, what I do is I use kernel virtual addresses, right? And I essentially allow the same mechanism, right? So the kernel is just using memory, right? So the kernel would just do a read from the top level page table. And what would happen is the TLB would, you'd have the same procedure, right? The TLB would say to the kernel, hey, I don't know where this address is and the kernel would have to fix that problem first, right? So you're right, I couldn't move them in some other way, but this is assuming that I'm using the virtual address mechanism, yeah. Yep? The second level of this. So, but in general, like, I mean, if a process is an actor for a long period of time, right? And the process has memory that is devoted to page tables, right? That's the situation where I might want to move that memory out, right? It's really the same procedure as swapping, right? It's the same cost-benefit analysis. Will I need to use the page tables for this process for a long enough period of time to justify putting them on disk, right? And freeing up that memory, right? Okay, I put a couple of questions on here that I wasn't sure how hard they were. I think this one was one of the hard ones. So just be glad it's on the practice exam and not on the real exam. All right, so let's do another one. Where did, stop it, okay. All right, let's do one more of these and then let's look at the long questions, all right? So, okay, I'm just gonna put this one up here. You guys can work on this. This is essentially another one that's basically straight from the slides. Let's do this one, this one's more interesting, okay. So, a 32-bit wide architecture allows a system to map to address at most four gigabytes of memory, right? That's how wide the address is, right? But the machine on my desktop has 16 gigabytes of it, okay? So, what the question I asked you to do is propose a solution for this issue, right? On a 32-bit wide architecture, a process can address at most four gigabytes of memory. And if you remember how MIPS is set up, the top two gigabytes of that virtual address are reserved for the kernel, right? So, the process can't even use that. So, the most a process can address is actually two gigabytes. On some architectures like x86 under Linux, it's actually three gigabytes, the kernel sneaks into the top one gigabyte. But the point is that on some level, I can have more, now I can have more physical memory than I can address using a 32-bit wide address, okay? So, the question is, how do I solve this problem? Or, there's another option in the question which is, tell me why maybe this problem isn't quite as serious as I might make it out to be, all right? Two minutes, go. I'm just turning the volume up and out. I have no idea what's playing in any moment. All right, let's talk about this, this problem. Okay, so, I've got a machine has more than four gigabytes of memory. It has 16 GB of memory, right? So, how can I support this? How am I gonna put all this memory to use? Okay, so I could use a 64-bit virtual address space. Now, what are the implications of this? Well, so my page table entries are now probably at least, what? Twice as big, right? What other pieces of hardware are gonna be affected by this? No, the registers on my machine are gonna have to be 64-bits wide. What else is gonna have to be 64-bits wide? Specifically it's involved in page fault handling. The TLB, right? Which is probably going to mean that I have to use a smaller size, right? Because I'm essentially, one of the things that TLBs do is just, part of the limitations on their size is the number of bits that they're actually matching, right? So if I ask it to match 64-bits, then that's gonna be a larger challenge and I'm probably gonna have to have a smaller TLB, right? So the fetching could be easy. No, no, so the point is that my page tables might get bigger. The TLB has to hold wider addresses. Yeah, I can move some stuff around. I might move some, so what about how many levels am I gonna have in my page tables now? Potentially to translate an address, right? Let's say I use my old approach and I have some sort of offset and let me think about how to do this in a pretty way. Let's say my offset is now 14-bits and so my top are both 25-bits wide, right? So those are starting to get really big, right? So I might need to go with like a four or five or six level page table, right? And that's starting to get kind of disgusting, right? But let me ask you something, 64-bits, how many bytes of memory can you address with 64-bits? I think it's like more than the number of atoms in the universe or something like that, right? Or it's getting close, right? So do you really need that many bits? I like that, yes. We're going to 64, right?  We're going to seven blades. All right, well, okay, no, no, no, but we have a dissenting view in the back of the classroom. So you're saying you don't need it because it's by process. So again, I'll ask my original question. How do I put my 16 GB of memory to use? So even if I'm using 32-bit addresses and my virtual addresses for the process are 32-bits wide, if I have multiple processes, I can still get 16 GB allocated. I can't allow one process to allocate all of that memory, but even if a process can only address two GB, eight processes might be able to share all that memory. Now what's the one complication here, right? What does the kernel have to be able to do in order to run a system with 16 GB of memory? Well, let's say I can do this, right? But more specifically, what does the kernel have to do? If I have 16 GB of memory, the kernel had better be able to what? We've already talked about ways to keep track of this, but I'm saying what does the kernel have to be able to do? It has to be able to address all of memory, right? So if I use a 32-bit wide address, I can only access four GB of memory. So there has to be some change to the hardware architecture that do to allow the kernel to address larger pieces. So for example, I might have like one additional register on the hardware that gives me a view, right? So if I have 64 GB of memory, I might break that into four GB chunks. And then in order to address the second four GB chunk, I set a register and then my address space starts from zero. So it's essentially bit extending the 32-bit wide address slightly, right? But the point is that even if the process continues to use 32-bit wide addresses, the kernel needs a way to address all of the memory. And essentially, whatever mechanism you use, it's equivalent to essentially bit extending the address slightly. Not all the way to 64 bits. That's a little extreme, right? But maybe to 40, right? All right, so let's do, let me see what time this is. Okay, we only have about 10 more minutes. So I'm gonna just jump ahead. The next question I think is one that you guys can look at on your own time. This is a little more straightforward. And then let me, so let's look at the long answer questions, right? So you're gonna pick one of these to answer. And again, I want you guys to spend a little more time thinking about how to answer this question, right? So one of the things on the exam that I'm gonna send a caution, you is don't get bogged down in the short answer questions. Pick four, right? Three or four sentences trying to answer them as clearly as possible and then move on, right? Because there's a lot of points in this section, okay? So let me describe both problems quickly. And then we will, I'll give you guys a few minutes to talk about either one, all right? So the first one essentially allows you to ask you to look at fork, right? Fork is expensive, right? And a big part of the expensive fork is copying the address space of the process, right? So what this question allows us to do is to propose a way to address some of that cost, right? And specifically it gives you a hint, right? One of the design principles that we've talked about in this class, right? Remember we looked at this when we looked at demand paging. If you wait to do something you might never have to, so doing things right up front, what you might wanna do is find a way to wait to do them as long as possible, okay? Second question here is on priority inversion, right? And this one is a little bit longer, but let's see if I can get both on the slide and their entirety. Yes, okay, great. So, and I won't describe this one in detail, but the point is this describes a system that uses strict priorities to schedule threads and it asks you to describe a scenario when that might have a bad interaction with scheduling primitives. So what I'm really asking you to do here is first of all, describe a problem that can occur if I have strict priorities and I combine them with a resource that's guarded by a lock and the second part of the question is, propose a solution for that problem, all right? So, unfortunately we don't have too much time and I wanna have at least a few minutes to discuss these. So why don't I give you guys five minutes to talk these over and then we will reconvene, all right? And starting now, go. Do you already know the answer? What's that? You know all the answers. Give me a little hairdo. I didn't bring the ribbon for it. What ribbon? There we go. Looking good, chitch. Let's talk about this for just a second. We don't have much time, unfortunately. But let's just mention a few things about this. So does anybody wanna provide some insight into question one? Did anybody start thinking about question one? Yeah, Isaac. Oh, it's a copy and write. Yeah, so what do you do? What does copy and write do? Well, okay. You're very close. You just read the very end, right? So here's the idea, right? The idea is that when I run a fork, I don't copy the address space immediately, right? I could copy all of the memory pages. Every page it's used by the parent, I could copy it all to separate private memory for the child, right? But if the child calls the exact, immediately, I'm just gonna blow away that address space anyway. I'm gonna have to set it up again, right? So I don't wanna do that. So what Isaac said, the first part of this is right. I don't copy the address space immediately, right? What I do is I create pointers to the memory that's in use by the parent. So the parent and child on our sharing memory pages, right? Now, the problem is that the memory is supposed to look private to the child. So how do I need to set up those pages so that the child can't change them? Right, right, right. But the point is that I need to set these up as read-only pages in the child so the child cannot change them, right? And actually, I need to set them up as read-only pages for the parent, too, because as soon as either the parent or child changes the page, then I need to do the copy. But the point, the only thing that Isaac messed up was that this is done on a page granularity, right? It's not done for the whole address space. I do it one page at a time. And what can happen is that for processes that fork and don't call exact, they actually share a lot of pages. And one of the types of pages that they share are code pages, right? Those pages are never written to. And so it's possible that those pages will be shared by the parent and child for the life of the process, right? Data pages I might need to create new copies of, but code pages might never change. And if I run an exec, then the likelihood is the all I do is I do a read from a code page that's shared with the parent and then I immediately call exec and I've avoided doing all this extra work, all right? Second question, anybody have an insight here? Can anybody describe the situation that can occur that will block the high priority thread from running indefinitely? No, someone other than Isaac? Yeah, D. Yeah, I have resources that have been blocked by the voice that I would have sent. There's a needle-level process, a level of priority that blocks the process from running. Right, so this is exactly, and let me try to explain this again. This is very clear, so I'm not gonna explain it more clear. I'll just explain it again. The lower priority process grabs a lock, okay? At the beginning of time, the higher priority process is not runnable. The lower priority process grabs a lock, okay? Immediately or soon thereafter, it's preempted by the medium priority process, which continues to run indefinitely. At some point, the high priority process becomes runnable, but in order to make progress, it has to grab the lock. The lock is being held by the lower priority process, but the lower priority process can't run because the medium priority process is always runnable. Imagine the medium priority process is just sitting there doing some long running computation, right? So now what do I have? The high priority process is ready to run, but because it cannot preempt the resource, it can't get the lower priority thread unblocked. So the higher priority thread is now waiting for the lower priority thread, which is exactly what we didn't wanna happen when we set up this priority system, and we said the priority's gonna be imposed strictly, okay? So what's a solution to this? What's one possible solution? So there's an idea called priority inheritance, well, how does that work? All right, how would I apply that to this problem? Dachi? So give a high priority to the lower one so they won't finish it. So I think if you flip that around, you'll have a more convincing answer, right? So there are times in which I wanna elevate the priority of the lower process when, when the higher priority process is waiting on a resource that, so implementing this requires some mechanism for understanding that this is happening, right? If you just try to do this on a system, it doesn't work. The system has to recognize that the high priority process is blocked by a lower priority process and elevate that priorities, that process's priority. So what happened in this case is, as soon as the high priority process began waiting on the lock that the low priority process held, the low priority process would inherit the higher priority process's high priority, and this is really confusing, even as I'm thinking about it, right? And it would finish, right? It would block the medium priority thread. As soon as it drops the lock, its priority goes back to low, right? And then the high priority thread could continue, right? So this is a way to solve this problem, right? All right, questions on these long format questions, right? These are drawn from examples that people might have heard about already, so it's possible that you'll know something about this. I think the ones on the exam are actually a little bit more obscure, yeah. So if people need to leave, go ahead and leave, and I need to start packing up, but I will go over the solution again. So the solution is essentially allowing the low priority thread to have its priority boosted while it holds the lock, right? Because the high priority thread is waiting for it, and so the low priority thread gains high priority, finishes running, and then drops the lock. Come up and ask me if you need another explanation.


statistics and excel poisson distribution formula get ready taking a deep breath holding it in for 10 seconds looking forward to a smooth soothing excel first a word from our sponsor yeah actually we're sponsoring ourselves on this one because apparently the merchandisers they don't want to be seen with us but but that's okay whatever because our merchandise is is better than their stupid stuff anyways like our crunching numbers is my cardio product line now i'm not saying that subscribing to this channel crunching numbers with us will make you thin fit and healthy or anything however it does seem like it worked for her just saying so yeah subscribe hit the bell thing and buy some merchandise so you can make the world a better place by sharing your accounting instruction exercise routine if you would like a commercial free experience consider subscribing to our website at accountinginstruction.com or accountinginstruction.thinkific.com here we are in excel if you don't have access to this workbook that's okay because we'll basically build this from a blank worksheet but if you do have access three tabs down below example practice blank example in essence answer key practice tab having pre-formatted cells so you can get right to the heart of the practice problem blank tab blank worksheet so we can practice format in the cells within excel as we work through the practice problem let's look at the example tab to get an idea of where we will be going we've been thinking about different families of curves that might be useful in different situations to help give predictive power last time talking about a uniform distribution which is a very easy formula and curve to look at we have the straight line this time a little bit more complex curve the poisson distribution so we'll start off just listing the conditions in which a poisson distribution may be useful we'll make the formula which can look intimidating but we just want to give the formula and and then note that in practice it might be useful just to know the conditions where the poisson distribution would be useful and then apply the poisson distribution possibly with an excel function such as poisson dot dist then we will be taking a look at some of the components of the formula and how we might represent them in excel and then in future presentations we'll actually use the poisson dot dist formula to create a table and to create our graph over here which we can then change uh with our factor up top and then we'll actually also generate some data not with a random generation tool or not the same formula we used in prior presentations but a different kind of random generation tool that will be in alignment with a poisson type distribution so that's where we're headed let's go to the blank tab so first we just want to list out the conditions up top i'm just going to copy and paste them you can type them in uh if you so choose these are the conditions where a poisson distribution might be useful i won't go into them in detail here because we talked about them in a prior presentation but just remember if these conditions are met then you're thinking okay maybe the poisson distribution can give us predictive power about a certain data set right so an event can occur any number of times during a time period events occur independently the rate of occurrence of occurrence is constant that is the rate does not change based on time the probability of an event occurring is proportional to the length of the time period all right let's actually build the formula now i'm going to use our our tool to do that insert and we're going to go into our uh equation and then here's our equation i'm going to do an ink equation and just type it into our ink equation again so i've got the writer tool down here i'm just going to say this is going to be p of x boom and then i'll put brackets around it so p of x that looks good so far equals and we're going to say then we need i'm going to put a lambda here which is often used for the mean here so i'm going to say lambda and then to the x and then times e which we'll talk more about in a second e to negative lambda see if i can that's it well it's still picked it up look at that and then i'm going to put that over x and then factorial which is an explanation so this looks like more of an intimidating type of formula here but we just want to get an idea of the formula and of course we'll be using functions as well so let's just take a look at p of x equals then lambda to the x times e to the negative lambda over x factorial now the lambda is basically going to be uh the mean which we've represented in the past with a mu which looks like a u in essence uh so or an x bar so you could possibly see those uh in the case in in place of a lambda but the lambdas often used when we're talking about a poisson distribution e as a constant similar to pi so we'll talk more about that in a second and then the exclamation is a factorial and we'll talk more about that in a second so that looks good let's go ahead and insert it so i'm going to pull this to the right let's make it a little bit larger home tab font group and let's just bring it up i'll just say up to like 24 okay and then i'm going to make it a color so i can't see the grid lines in the back because i like the grid lines but i don't want to see them in my formula so i can go to the home tab font group and then in the bucket drop down let's make that like the orange now i'm also going to format the entire worksheet and then we'll talk a little bit more about some of the components of this formula to get an idea of what's going on with it so i'm going to select the entire triangle right click on the selected area format the cells and then i'm going to say this is going to be currency negative numbers bracketed and red no dollar sign i'm going to get rid of the decimals for now and then add them as needed okay i'm also going to go to the home tab font group and make the whole thing bold so there we have it now let's just talk about some of these components in our formula remembering not to be too intimidated by the formula because we will be using excel functions so if we can see where the poisson distribution is applicable then you can use the excel functions possibly instead of you know using a formula calculation but just to represent these in excel remember that or the e is a constant so it's a constant and it's and we can do a formula in excel to get that e constant so it's kind of like pi that it has that constant i'm going to make this cell a little bit smaller so the formula is going to be equals exp and then i'll just put a one there and there it is and enter now if i add decimals home tab number group adding decimals you can see it it basically goes on forever so we can approximate it to however many decimals using excel is great of course because it allows us to use you know the actual number so then we're going to say that the factorial which is represented with an exclamation mark so that's just it's not like it's rep the exclamation and the e it's not like those are representing you know other other numbers we're going to be plugging into there right the e is the constant kind of like pi and the exclamation is a factorial so factorial orial so if i said five exclamation what does that mean that would be like saying five factorial which is like if i list out five four three two one then we would just multiply these out right this is going to be equal five times four this is going to be equal to the result of 120 times three this is going to be equal to the result of 60 times two and this is equal to the result of 120 times one which of course is still 120 so five factorial is 120 so we can also just so we can see those those functions e if i was to put an excel function in excel would be an equal sign but i want to see the formula so to see the formula i want to put this here and then the equal sign of exp and then a one that's that's going to be the function that allows us to calculate the factorial here of 2.71 so on so forth i mean that it allows us to calculate the e that we did up top here and then the factorial there's a function for that and that's going to be this so i can see the function equals factorial and i'll just close up the brackets like that so there we have it so if i if i did that for factorial of five it would be equal to factorial brackets five close the brackets which gives us that 120 that we got up top okay so then we've got the mean so let's put this let's put this over here so we can see it i'm going to make a skinny column and i'm going to say we have the mean might be represented by a mu or or a lambda which we have up top so let's take a look at how we can insert those there's a couple ways we could do it we saw about in a previous presentation but i think the most common way would be going to up top insert and then go into the symbols and then i've got the normal text on this side and i'm looking at the greek and coptic greek and coptic and i'm looking for these letters i have them down here because i've been using them quite often so i can't i don't know the greek alphabet so it takes me a little bit of hunting and searching but the mu is like the the uh an m so if you search around a bit if you go into greek and coptic you'll find these there's the mu and then there's the lambda right so i can pull in like a mu let's do that insert and then it puts it down there and then i'm going to hit enter so it doesn't mess up my formatting and then i'm going to go back into it and say or and then let's pull in the lambda so i'm going to go into the insert up top symbols and then the lambda is going to be next to it in the greek and coptic there it is and now both of those should be pulled down here into my recently used symbols and it'll be a lot easier to find if i need to represent those so there's those two and uh and then we've got the variance which you'll recall was sigma squared so normally i would go to the home tab symbols and then symbols and then again usually i would have uh the sigma down here but if i was to go up and find the sigma up top so here it is and then once you once you insert it it'll be down here in your favorites so we'll say okay then i'm going to hit enter to square it i'm going to double click in here put a two and then select that two just the two not the whole cell right click on it right click on the two and format it and i'm going to make it a subscript boom so now we've got sigma squared for uh the variance so so there we have uh that and then uh so for the point let's say for the poisson the mean and variance are equal so for the poisson distribution then the mean and the variance are generally equal which is could be a useful thing to know so we can say that the mean often represented by a mu or with the poisson distribution a lambda so let's enter that insert symbols symbol the lambda insert and i'm going to say equals so it doesn't mess up when i type something else into it double click equals and then the variance sigma squared insert symbols the sigma is now in recently used insert and then close this out enter going back into it typing a two selecting it right clicking on the selected area and saying that we want to format it as a subscript and enter so so there we have it just just a couple just some of the uh of the information for that could be useful for the formula now in the following presentation what we'll do is we'll get right into using the function which is going to be equal to the poisson dot dist right and that's what we really want to go but some of these tools could be useful when you're when you're then trying to analyze some of this stuff and you want to represent something with uh the the the mean as a lambda or a mu or the variance and the sigma square and so on and so forth within excel so there's just some ways that we can populate that i'm going to then highlight this and go to the home tab font group we'll make this blue and bordered as is our general custom and then these items let's make these blue and bordered so i'll select these to here maybe and make that blue and uh bordered as well let's do a quick spell check review spell check it constant constant uh let's change that poisson for i don't that's a name i'm going to ignore it for now mind i'm going to ignore for now variance let's change that and okay so there we have it so hopefully i spelled poisson distribution correctly and we'll continue on with it next time