Welcome to Act the Crossroads. I'm your host, Tisha King, and I am so excited to have you join me here today. You know, we always talk about conversations that are real and relevant, and today is no different. I'm so excited to share with you our guest for today. But before we jump right into it, I want to kind of talk about things that are going on with our 2020 presidential debate and race for president. As you know, there are $1.6 trillion worth of student debt. That's right, $1.6 trillion. And all of our presidential hopefuls are speaking about what they can do to make a difference. There are different strategies that they want to employ, and none of them seem to be the perfect fit. As a person who's currently paying back her student loans and feels like it's never, ever, ever going to go away. I hope and long for the days when that would not be the case, not for my children or anyone's children. Well, for one such family right here in Honolulu, Hawaii, they do not have to face college debt at all. That's right. Today's guest is the recipient of the Gates Foundation Gates Scholarship Award. Is that correct? Yeah. Join me as we welcome Ariana Foe to our show today. Ariana. Ariana. Ariana Bowe to our show today. I looked at you with the hope of saying it right, and I still said it wrong. All good. It's all good because you are all good. Ariana, welcome to At the Cross Road. Thank you. It is such a joy to have you here.  I'm so excited. I want to jump right in and say congratulations on being the recipient of not one, but two scholarships. Tell us what they are. Yeah. So I received the Gates Scholarship and also Cross Bridge Math Scholarship. Wonderful. Now I want to say the Gates Scholarship is much different than the Millennial Scholarship from Bill or Melinda Gates. Is that right? Yeah. They transitioned from the Millennial Scholarship to the Scholarship that they have now. The Millennial Scholarship covered not just undergrad, but all the way through graduate school and the Gates Scholarship program that they have now is just graduate. Wonderful. So you get the opportunity to work really hard and get another scholarship from grad school. That's my plan. Good, good, good. Well, I want to know more about you. And I'm sure our viewers do too. Talk to us about your early childhood education. Where did you go to school? For elementary. Yeah. I went to Coco Head Elementary School. Okay. Wonderful. What was that like in elementary? I mean, were you an academic scholar in first grade? You know, that wasn't necessarily my focus at that time. I was like a seven-year-old, but I did, I was a part of the gifted and talented program that they had, which at the time was just kind of a bothersome thing for me because I was like, oh no, extra questions, like I have to do extra work. But I feel like it really kind of set me up to do well as I transition into middle school and then high school. Wonderful. So you had extra work because you were gifted and talented. So there, I know about that program and there, there is some testing that you have to complete to qualify for that. And as you moved on, you graduated from elementary school and there was a transition. Yeah. Tell us about that transition. What happened in sixth grade? So I went from a public co-ed elementary school and I started going to La Piatra, which is a private old girl school, where I picked all the way through graduation in my 12th grade year. And it was quite a transition. I wasn't necessarily used to all of my classmates being in different economic years than I was used to. I kind of came from a family that didn't necessarily have an incredible amount of money. And it was an adjustment being in a new environment where my friends had nice clothes and big houses and I didn't necessarily have much experience with that. That's wonderful that you were able to see those differences. I know your mom and I know that she is a hardworking woman and provided a really good lifestyle for you. Just a little bit different than what your friends may have had. Yes. So having made that adjustment, I think that it was first of all good of you and commendable for you to notice the difference, but you still seem to have turned out to be a well-rounded person. So you never had this temperament that said, what was me? No, it was pretty easy for me to keep a straight head about it because I had a lot of friends. Because of my experience not only in having a public school education but also private school education, I had friends from a lot of different social groups and economic factors. And they're all amazing. Yes. Right. Because in the end, people are people. Yeah, it's true. Right. And so it's not always about the social economic status. It's really about the heart of the person. Yeah. That's been my experience. Terrific. So now you made it into this school and you were working really hard and your academics. You seem to have a certain academic prowess. What did it take to get into the school and what made you choose that particular school? So I'm going to be going to Bowdoin College? No, no, no. No? No. Just about your 6th through 12th grade experiences. 6th through 12th grade. Okay. Sorry, I misunderstood. I apologize. I honestly don't remember very much about the process. I don't remember taking the SSAT, which I believe is a secondary school placement program, or placement test, and going high enough to get into these private schools. And genuinely, I chose La Piatra kind of less for all of the things that it offered and more just because it had a beautiful campus. Because that was what I cared about as a 6th grader. I understand that. So what was your impression when you first walked on campus? Take us through all the emotions and what it felt like. Mostly it was excitement. I had gotten a new book bag, and I had decorated it with glitter glue and stickers. All the things that mattered to 6th graders. All the things that mattered to 6th graders. And I was so excited. I got on campus and they gave me an iPad, which was... I was just blown away. I was like, wow. And being on such a... La Piatra used to be a villa that was owned by the Dillinghams, and it's like a house. It's a big beautiful place. And I was so grateful to be able to go to school in a place that was so beautiful and had so much life that felt like... And you connected in some type of way with all of that beauty. You fit right in.  Thank you. You're welcome. So there you are surrounded by beauty and nature. You've received a new iPad. You've got this sticker, glitter book bag. And you're ready to get into school. So tell me, what is your academic program like? Are you more inclined? Are you a bookworm? Or do you just have natural gifting? If you tell me you have natural gifting, I'm going to get upset because I have to study. And if you're one of those, you hear it once and you've got it. That's it. Interview over. I'll ditch you that type. Go ahead, tell us. I honestly didn't really... I wasn't necessarily really focused on academics at all in my first few years at La Piatra. I kind of naturally was... I read a lot as a child and I had... and my parents spent a lot of time... like they taught me how to count really early and how to read really early. And they were really interested in fostering my growth in that way. And coming into La Piatra, I didn't really notice a difference at first between my academic level and anybody else's really, or anything like that. I was more focused on making friends and having a good time as a middle schooler. And the academic part of it, when I started to focus more heavily on that, more as I was moving from middle school to high school and I realized that I could use these skills that I had to make myself an outstanding student. What are some of the characteristics of an outstanding student? I don't know if that's really for me to say. It must be. I don't know who else in this room has received any type of free money for education, but you are more than qualified to answer that question, Miss. Thank you. You're welcome. I really feel like what has helped me the most in that particular department is really just kind of... I really enjoy learning just for its own sake. And so in my free time, I kind of did my own research into topics that I was interested in. I read books about things. I said to my own research about stuff. And in that way, just kind of being... not trying to be somebody that I wasn't, just really leaning into the things that I already wanted to do that were my own interests. Being true to myself is such an important part of that for me. It's part of being an outstanding student or however you want to phrase it. So then the answer that you just gave, which I think is very, very true and honest, is in order to be an outstanding student, you need to have a love for learning. That's what you said. Number two, you said you read and became involved in things that you did research on things that you were interested in. So you had a certain type of independence or certain type of freedom with your studies.  Yeah, I feel like that was probably the biggest part of it for me. Fantastic. That was an excellent answer. It sounds like a scholar to me. I appreciate it. You're very welcome. Well deserved. So you went through that process all throughout middle and then high school at La Petra. And that school sounds really amazing. It's the Hawaii School for Girls. And so you live there? Are you on campus? Oh, no. It wasn't a dormitory service situation. Yeah, so I was living with my friends. That's normal. Okay. Wonderful. So you also had this very close knit. How many are in the school approximately or at least in your graduating class? In my graduating class there were 28 students and we were one of the biggest classes on campus. Oh, wow. Yeah. Wonderful. So it was a very... La Petra is a very small school and I think personally that was for me one of my favorite things about it was because you're saying it kind of created this community that I felt like is an integral part of and I knew that there were people I could reach out to for support and I had all these resources because it really felt like a community of people who were all interested in lifting each other up. Right. And probably your teachers knew you on a much deeper level. That's true. Yeah. I have become very close with a lot of my teachers over the years. Is that right? Yeah. So what was your favorite subject? If French was a language that you chose as your foreign language to learn, what was your favorite subject? Yeah. I would say probably my favorite... I really loved to learn French but also I enjoyed English quite a lot. I would say that those are probably my two favorite subjects. If we're going just by classes I've taken, I think my favorite class is probably dance. Oh. Actually, not really an academic class but I really enjoyed... One thing, like the thing that I really enjoy about all of those different subjects is the ability to kind of make it what you want it to be. Nice. Yeah. I believe that this school does allow for that. We're going to take a quick break and when we come back, we're going to hear more from Ariana Bowe and we're going to talk about her academic prowess and what it takes to earn the scholarships that she has earned so she won't acquire the debt that so many find themselves with. You are watching At the Crossroads and we'll be right back. Hi guys. I'm your host, Lillian Cumick from Lillian's Vegan World. We live every second Friday from 3 p.m. and this is the show where I talk about the plant-based lifestyle and veganism. So we go through recipes, some upcoming events, information about health, regarding your health and just some ideas on how you can have a better lifestyle, eat healthier and have fun at the same time. So do join me. I look forward to seeing you and... Aloha. Aloha. My name is Wendy Lowe and I want you to join me as we take our health back. On my show, all we do is talk about things in everyday life, in Hawaii or abroad. I have guests on board that will just talk about different aspects of health in every way. Whether it's medical health, nutritional health, diabetic health, you name it, we'll talk about it. Even financial health. We'll even have some of the Miss Hawaii's on board and all the different topics that I feel will make your health and your lifestyle a lot better. Wendy, I welcome you to take your health back. Mahalo. Welcome back. You're watching At the Crossroads with Keisha King and Ariana Bowe. She is the Gates Scholarship recipient as well as another scholarship where she doesn't have to pay anything for it to wish it. We are so proud of her and her academic achievements. Welcome back to the show, Ariana. Thank you so much. It is such a joy to have you. Just before our break, we were talking about dance and the fact that you can take dance or you were taking dance classes at La Pietra. La Pietra. La Pietra. Yeah, I'm just messing up all kinds of things today. Oh, good. Apparently, I didn't get the scholarship and this is why. I'm just kidding.   And now we find that you have these other talent. Tell us about dance. Well, I really enjoyed the, I took two dance classes in my senior year at La Pietra and it was my first time taking a real dance class and I was very young. I did ballet, I think. I did it with everyone. I was going to say with the little pink ballerina shoes. Yes, we were all on our toes in those. Amazing. So what drew you to take these two classes?  It honestly wasn't something I thought very hard about. It was offered as an alternative for PE and I liked PE but I was intrigued by dance because I enjoyed dancing just by myself at my own house. And I thought I might as well learn a bit more about it. Wonderful. It's amazing that not a lot of people can do that. You're working with your academic side and then now your self-expression side or creative side that right brain, left brain challenge is not always easy to kind of mix. So I'm glad for you that you did that. And as an aside note, I want to know, are you going to go see the Phantom of the Opera? I wish. I have a lot of friends who have seen it and have been talking to me about it. I would suggest if you don't go see it, connect with Ballet Hawaii. That's another group that I work with. They do great things. You guys know Ballet Hawaii. So go to Ballet Hawaii and you can watch some of the master performers that are participating in the Phantom of the Opera. So that's an aside. It's not a commercial for them, although it sounded like one. But go check that out and that way you can see that. Now moving forward, I want to talk about how in the world did you get your scholarship and how did you get your GPA that high? It was... in terms of finding and getting these scholarships, I was aware that just paying for college wasn't necessarily going to be really an option unless I chose to take a gap year and earn some money or find some other way of doing that. So I knew that I was going to be applying to a scholarship like that. So it was really self-directed. Very good. I spent a lot of time looking for scholarships and things like that. And in terms of staying qualified for these scholarships, I grew a lot from the community that my school offered. And taking opportunities to work closely with teachers if they offer and really work through things that I was struggling with, concepts, things like that. And just put a lot of time and effort towards doing well and succeeding at these things. Very good. So you took a lot of the pressure off your parents. I'm sure they appreciate that. And they're very proud of you. But then in addition to that, you were self-directed. You knew that it wasn't going to pay for itself and that the other option of taking a gap year might lead to venturing off into some career and not really ever having enough. And that's always a challenge. There's nothing wrong with taking that time, if necessary. But this route seemed to have worked for you quite well. So you came across that opportunity to apply for both of these scholarships and you won. You earned it. You didn't just win it. This wasn't some luck of the draw like a lottery. You earned it. What were some of the qualifications that were needed that you met? A lot of the... Both of the bigger scholarships that I won had a GPA cutoff that I met. Exceeded. And I also was... I found myself kind of from early on in high school being involved in a lot of different extracurriculars. There were a lot of different paths that I followed with that. I became the president of one of my school's community service clubs. I was teaching sex ed through Planned Parenthood's Outreach Program. I did some sports. What sports? I did air rifle retract, paddling, and judo. Not all at once. When did you sleep? When did you study? How could you do all of this? What I like about your story is that you are so well-rounded. You're not an academic who's only in the books. There's nothing wrong with those who are. But I think what has happened now is colleges and acceptance committees are looking for well-rounded individuals. They want to know that you have other things that you're involved in because it makes you more of a critical thinker when you have those types of skills. Would you not agree? I agree. Wonderful. So you knocked that out of the park and you received the reward scholarships and then you had to make the tough decision about what schools you would attend. So where have you chosen to go? Like I said before on accident, I'm going to be going to Bowdoin College. It's in Maine. Whoa, I just got cold. She said Bowdoin College. I think everyone got a chill in the studio. How are you going to go from Hawaii to Maine? It's going to be an adjustment. It will. But you've done that before. It's okay. I have faith that I'll go through. I do too. Now what will you major in when you get to this school? I won't be able to officially announce my major until I'm a sophomore because Bowdoin is designed to, is a liberal arts college. So it's designed to give students a range of experiences and opportunities before they really narrow down into what they want to do. But I have been really, really interested in studying psychology since I think late middle school. And that is really, really where I feel like I'm going to be the path I'm going to be following. Fantastic. I think you will be very good in that field. I think going from here to Maine, very unique choice. But this school, just like any other school you would have chosen, is going to be so fortunate to have you. I think you're going to offer so much. So grab your winter coat. Lots of them. You're going to need a scarf and a hat and some extra socks and mittens as well. But then get there.  And I want you to look right here at this camera and tell them what it takes. I think genuinely the best thing that you can do for yourself is to really follow what you're interested in and pursue those things genuinely. Because I think that the best kind of student you can be is one who is true to themselves and can be independent and self-directed in that way and can decide for themselves what they want and see the steps that they're going to take to get there. Fantastic. Listen to this valedictorian. She speaks so wonderfully. Very articulate and very low-spoken. Thank you so much for joining us today. I am very proud of you as an educator but also as a mom. I'm grateful. I'm glad somebody's got it out of here. You did wonderful. And I think that it's really special that you've chosen Bowdoin College because partly it's part of your last name. So that's an aside. This is why I didn't make academic scholarships because I don't look at the important things. They're important to me. But then the other thing is that your school's initials are BU. And I think that is so wonderful about what you've done. So great job. I wish you continued success and we want to hear back from you. So anytime you're in town, you or your mom will call and let me know what's going on. I'd love to hear from you. And as always, I am so grateful to bring you conversations that really matter to all of us right here in Hawaii and beyond. And our hope is to help reduce the debt one way or another. If we can stop students from accumulating all of this debt by earning scholarships, just like Ariana has done, then that's great. But if you have to take out loans, you have to do it responsibly and work. You have a job. You can work while you're going to school. So many have done it before you. We just encourage you to do whatever it takes for you to be happy and successful. And just like Ariana has said, Ariana has said, I got it right, right? Yes. Just like she has said, BU, find what you love and then study that, do the research and BU. Congratulations to Ariana Bow. Congratulations to her parents. And we wish you the best. Thank you for watching at the Crossroads. Aloha.


Okay, so today we're going to continue talking about why we need to multi-process, and then what we'll actually do is we'll get to the point where we can talk about how that happens. Somehow this year it feels like because maybe because of moving the synchronization material around, this seems to overlay a little bit better with the assignments you guys are working on. So some of you guys have probably looked, how many people have gone through the kernel entry and exit code in OS 161. Alright, I see a couple of hands. Well we'll look at that at the very end today and we'll look at how we actually switch between multiple processes or threads. Alright, so let's see. I'm still hoping that people who are working alone will contact the course staff. This afternoon, if you are working alone, you'll receive some instructions about how you're going to do assignment to. We don't expect you to do 100% of it and we're going to help you out a little bit and you'll need that as you write your design docs. So there's a reminder design docs and code reading questions for assignment 2 are due on Friday at 5. Any questions about logistics? Logistics question. Coming today, I promise. I'm so close. I was going to do it before class. Yeah, just keep complaining about it in Piazza because every time you do I feel bad. So it's working. Okay, so questions about interrupt handling, software interrupts, software exceptions, stuff from last time. Any questions about this before we go on? Because this is the basis of how we're going to implement preemptive multi-processed.  Three things. Going to interrupt or when a software interrupt or when a software exception happens, what does the system do? Three things. So it enters privileged mode. That's one. What else? Yeah. Saves the process state. And we'll actually see exactly how that happens today at the end of class. And finally, yeah, jumps to a predetermined location. And technically, well actually that's not true. But the processor itself does save some state automatically that indicates what happened. And that's something that's needed by the operating system, for example, because I might need to know which hardware device needs attention. But what we'll see today is that the operating system, when it jumps to that predefined location and begins executing instructions, the first instructions it's executing are actually instructions that continue the process of recording state necessary to process the interrupt. So this is sort of a collaboration between the hardware and software. So let's say a program needs attention and needs help. What types of things would a program want the operating system to help it with? What kind of things would a program or user application, an unprivileged program need the operating system to do on its behalf? Yeah. Create a new process? Yeah. Yeah. Like reading from a file, asking for more memory, these sort of examples of system calls. And you guys are going to implement a subset of these for assignment too. So this is how user programs work. Not how they do everything. Obviously, we want them to do as much as possible without needing the kernel. But when they need access to some sort of protective resource, they usually do this through a system call. Okay? Now, I have a system call I want to perform. What do I do? How do I get the kernel's attention? There's really two steps here. Yeah. Yeah. So I generate a software interrupt. And on MIPS, I use the syscall instruction to generate a synthetic interrupt that behaves exactly like a normal hardware interrupt. What else do I have to do? It's one other thing. Anyone has looked at the code? Yeah. What's that? Yeah. Well, not only arguments, because the system calls will take different clushions of arguments, but at minimum, I need to tell the operating system what system call I'm trying to perform. So I arrange some arguments to the system call, and I also load a flag into a register that tells the kernel what I want. Do I want to do a read? Do I want to do an open? Am I trying to clone myself? Whatever. Right? Yep, that's part two. And then I execute the system call instruction. And that will trap into the kernel. The kernel uses the number I've loaded into a register to figure out what to do, and uses the arguments that I've loaded into registers replaced on the stack or whatever as inputs to the function. So again, this is a lot like making a function call. The big difference is that we're crossing a protection boundary. So I'm using system call to get into the kernel, which is now excluding in privilege mode. But in a lot of ways, this is fairly similar to how you make a normal function call. All right? OK. So remember, the key difference between interrupts and exceptions is that interrupts are voluntary. Interrupts indicate that the program is trying to do something that it knew it needed the kernel's help to do. That's why it's making a system call. Exceptions are in non-voluntary. An exception takes place without the program knowing, either because the program wouldn't have wanted to do that stupid thing that it did, or because the program did something that ended up needing the kernel's help, but it didn't know that at the time. And we'll come back to that when we talk about memory, because that's the basis for how we do memory protection and implement virtual memory. All right. OK. So now, keep in mind that we talked about various types of limitations that multi-processing is trying to overcome, but the biggest one was you. You're slow. And we expressed some of these delays that were built into early computing systems in terms of many, many millions of clock cycles on a gigahertz process. So there's lots of time for the processor to work without you knowing before you will start to realize if certain things don't happen, if the audio stops playing, if the screen stops painting, if the scroll stops drawing at a certain rate, you'll start to notice. Even without you noticing, there's time to get a lot of work done. All right, so let's go back in time, and we'll talk a little bit about where the need to multi-process computers came from, because the earliest computers did not have multiple users.  And in general, it took a lot of effort to get the computer to do one thing. The general purpose computers we think about kind of arose in a weird way. I mean, they arose as sort of like a calculator on steroids, something that was designed to do a number of single things really well. So rather than having a specific circuit to do one kind of computation, at some point, we started to realize, hey, I can build this one thing that can do a lot of different types of computations. It was a little bit more general purpose calculator that was designed to do basically math. There's no notion of an interactive system back then. The way you interacted with the system was by poking it with wires, and hoping that it did the right thing. And this was sort of fun, because there was a small group of people who were in charge of working with these machines. If you read any of the reminiscing of the earliest guys who worked on some of these systems, you would be led into the room with the computer, and it was like you were in there, and you got to play with it. No one else cared. No one else cared.  If I let you in the room with the website for the class, you might be able to irritate your fellow students.  It was like a video game system, except a lot more boring. It didn't try to shoot you or whatever. And so keep in mind, a lot of the multi-processing stuff we talk about wasn't needed at the time, because you had a single machine that did one thing. How many people did it? Again, I'm going to show my age. Has anyone here, did anyone here have or interact with an old Apple II computer? Like an Apple IIe, IIGS? That was the souped up one, the IIGS that had graphics. It had color graphics. That was a big deal. So you guys would probably find this machine to be really strange, because if you turned on the machine, it didn't do anything. If you turned on the machine without a disk and the disk drive, I don't know if you guys know what a disk is, it would just sit there. I think a prompt would pop up, and it would just sort of blink at you, but it wouldn't do anything. The machine didn't have a hard drive. It didn't have an operating system. What it had was the ability to essentially read a disk. And what you would do is the disk had the entire computer program on it. There was no OS. You put the disk in. And if the disk was winter games, then you got to try to do the ski jump or whatever. No one could do the ski jump. That was the hardest game ever, old winter games. I mean, I know that ski jumping is actually difficult, but it should be easier on the computer, not harder. So yeah, you put that in, and then you would get to play your games for a while. And when you were done and you wanted to go do your word processing, there was no way to minimize the window. You had to turn the computer off, take the disk out, get your word processing disk, put that disk in, and boot the computer up again. And then you could edit your text documents. And when you were done with those, actually when you wanted to save something, it was a little bit complicated, because you had to take the disk out that had the computer program on it. You had to put another disk in, save your file, take that disk back out, and put the old disk back in. So clearly, those computers were really fun to use. And I'm sure I'm sounding like the old grumpy man. And my day was uphill to school both ways in the snow. But this is indicative of what early computers were like. Except early computers didn't even have those disks. You spent a month programming them by hand. And then, if you were lucky, they would do one thing for a couple of hours, like calculate missile trajectories or something. So at this time, there really wasn't much of a need for an operating system, because the computer didn't do anything. There weren't multiple programs running at once. There was just one program. And actually, it's kind of funny. If you look at sensor networks and these tiny, little embedded devices that people have started to do research on today, in many ways, those are really similar to these early computers. There's no memory protection. There's no notion of having multiple things run at one time. There is something that we call an operating system. So there's something called TinyOS. And there's other operating systems people have developed for these devices. But if you come back, you remember at the beginning of class, we said the operating system does two things. What are those two things? Multiplexing resources and providing abstractions. So on a device like that, what does the OS do? It only does one thing. Which one of those things does it do? It provides abstractions. Because there's only one program running. So I don't need to multiplex resources. I don't need to share the device between me and me. I just need some tools. So if you look at these tiny operating systems, they're frequently just big libraries for doing useful things with the device. But you don't need to multiplex it all. So for a long time, when computers were like this, there was really no need for an operating system. And there was really no need to multiplex resources in particular. So but at some point, more people wanted to use the computer. And this was sort of a problem. For a while, it was locked in the closet with the computer. And it was all mine. I could do whatever I want. And then people figured out these things were interesting. And so they decided that more people wanted to use them. But for a while, what we did in order to satisfy these people is we just put their jobs in a queue. So you came to the computer. This is maybe, I don't know, probably earlier than the Apple 2GS days. But you came to the computer and you gave it a program. And some of my professors, when I was your age, would talk about programming computers with punch cards. Has anyone heard of a punch card? It's weird.  No one? Apple 2? Those were awesome. OK, so you came to the computer with a punch card, and then you went home. And at some point, someone called you up and is like, your error message is ready for you now. It was like, you have a bug in line three. It took you a week to find that out. So you think debugging is hard now. Imagine if every time I ran your kernel, it took a week to produce a panic on the first line. That would be pretty frustrating. But that's how things worked for a while. And again, here, despite the fact that I'm getting more use out of the computer, I'm not doing things simultaneously. I'm just sort of turning over the computer to one job at a time. I run that job to completion. And then I run something else. And on a certain level, this can be really effective. And there are certain cloud computing systems that essentially function this way today. Sometimes when I'm talking about non-interactive tasks, I don't really care about interactivity. There's nobody sitting there with their eyeballs on the screen waiting for it to finish. So sometimes returning to some of these batch scheduling ideas now can be pretty useful. They actually get better performance for certain types of work. But at some point, computers got these monitors. And then they were like, things were moving around. And at that point, particularly when you started to get to the point where multiple people wanted to actually interact with the computer at the same time. Now we have a problem. And this is sort of another area of computing, but pre-PC, where these dumb terminals. I don't know. I should turn my mic off for a minute. Sadly, we still have some of these around at UB. I don't know why. I would have thought we would have gotten rid of them forever. But for a while, our vision of how computing was going to work was there would be one big computer locked away in a basement somewhere.  And you would sit down at one of these workstations. But essentially, that workstation, I don't know if these are actually thin clients, but not who cares. But that workstation was really just one of it. Imagine you took your computer and you hooked up like 500 monitors at the same time. And you put them all over the computing department. And anybody could sit down and log in and type. But essentially, they were all using your computer. This is kind of these old sort of shared multi-processing. And again, people who use these systems have great stories about them. You can imagine what would happen to this system an hour before your assignment to deadline. It starts to get really slow. And these systems, they were sort of just underpowered on some level. And so the screens would get laggy. And they'd be very difficult to interact with and stuff. But to some degree, no one, it's really fascinating. I mean, the personal computer was a pretty modern idea. For a long time, people thought computers would give these big, expensive things. And the idea that everybody has one, and everybody has one in their pocket, and they've got another one over there, and they've got another one because they like the form factor. That other one a little better would be pretty shocking to people like 30 years ago. Well, maybe 40 years ago. All right, so essentially, as more and more people want to use the machine, at some point, I was trying to make better use of system resources. And I also needed to focus on interactivity. So that's where operating systems came from. Partly to drive interactive tasks, but also partly to just make better use of limited hardware resources. Now, it's kind of weird because those limited hardware resources pretty quickly became practically unlimited. But for interactive systems, you guys still expect the illusion of concurrency. You still expect multiple things to be happening at the same time. And so the idea of multi-processing is still pretty important in this environment. Because, well, I don't know if I need to go through these carefully. So this is essentially what I just talked about. OK, so we did that. We did that. So let me go back to the idea of batch scheduling. So for a while, the way that we made better use of the computer was we just queued up jobs in front of it and we ran them till they finished. What's the problem with this approach? This goes back to one of the properties of the CPU that we discussed. So that's one problem, right? Is that I have jobs that have to wait. But look, if I can process, maybe that's a little bit of fairness issue, but if I can process every job as fast as I can, regardless of whether or not they're running at the same time, then who cares? Yeah, so the CPU in a batch scheduling system, unless these jobs are really, really carefully written, which is normally not the case, ends up spending a lot of time just hanging out, waiting for stuff to happen, waiting for the memory to get done with a particular operation, waiting for the disk. So the problem was that this particular approach doesn't necessarily make very good use of the system resources. And one of the things we're going to talk about back to scheduling is one of the goals of scheduling is to make efficient use of the system resources. You paid for that stuff that's in the computer, and you want it to move. You don't want to be that guy who's got one processor that's sitting there that might as well be powered off. You want to make all of the memory and the cores and everything on your system work together to move as fast as possible. Yeah, so essentially, any slower part of the system is going to cause the CPU to stall, and therefore there's an opportunity here to start to try to use that idle time. So you can imagine people that were running these early batch jobs, they're sitting there thinking, man, the CPU is only busy maybe 1% of the time. There's all these CPU cycles that I could do something else with if only I could figure out what to do with. So again, this is sort of where operating systems came from, particularly where multi-processing came from. How can I hide the latencies caused by slow hardware devices and keep the CPU busy? Now, today we're going to get to the point where we talked about preemptive scheduling. But I want to point out something, which is that hiding processor delays doesn't actually necessarily require that I be able to stop a job and start another job. All it requires is that jobs will cooperate to use the CPU more effectively. So for example, if I'm writing a particular program and I know that I'm about to do a disk operation, I can do that in a way that allows me to voluntarily give up control of the CPU and allow something else to run. OK, so let's go back to the illusion of concurrency. So if I'm going to run multiple tasks at the same time, then I have to be able to either, you know what, I have no idea what the slide means. That's old slides. OK, so imagine I have multiple interactive users on the same machine. Clearly, either multiple things need to be happening at the same time, or I need to be able to switch between things fast enough that the people who are watching the display don't realize what's happening. So now that I've got multiple people that want to use the machine, and I think we talked about this when we talked about synchronization, right? How do I actually do this? What was one of our properties of the way that operating systems work that gave rise to the need to schedule the system? How am I going to achieve the illusion of concurrency? Go back in time a week. You guys know the answer to this question. I've got one CPU. How am I going to make it look like I've got multiple things going on at once? Yeah. Yeah, so I'm going to switch back and forth between things. And more importantly, I'm going to do it so fast that you don't notice. That's the critical piece here, is that your perceptual limitations are what give rise to my ability to do this. Does anyone have a dog other than me? Does your dog like to watch TV? It does. So I've read that dogs actually, apparently, their visual processing is faster than ours. And so TVs apparently look really flickery to a dog. So you, like 25 frames per second, is completely OK to keep a human happy. For you guys, that starts to look like video.  This is not an interesting flip book. So if you were able to process things much faster, the type of tricks that we're going to play here wouldn't necessarily work. But because you have these perceptual limitations, I can get away with it. So here's what it looks like to you. It looks like Firefox and VirtualBox and your terminal are all painting the screen at the same time. What's happening is, if we zoom in here, this. So at very small timescales, what I'm doing is I run Firefox for a minute, I let it get some work done, and then I yank it up the CPU, and I run the terminal for a minute. I run Firefox for a minute, I run the terminal for a minute, I run VirtualBox for a minute. This is going on constantly. Your processor is constantly stopping and starting threads and using that to make it look like multiple things are going on at one time. So that is what creates the illusion of concurrency. And we refer to the process of stopping one thread and starting another as a context switch. Any questions about this? This is the goal. This is what we want to accomplish. Clearly, right now it's just a fairly fussy picture, but we'll talk for the rest of today about how we're going to actually do this. So how do we switch between threads? How do we stop one thread? And keep in mind, we want this to happen often. So this has to happen rapidly. We want to keep the overhead of the slow. And it also can't involve, necessarily, involve the threads themselves. So the first problem is this. How does the operating system get a chance to run? Remember, the operating system is the program that wants to implement this feature. But in order to implement a context switch, the operating system actually has to have control of the machine. So remind me how the operating system gets control. What types of things take place? Interrupts, right? So for example, the disk re-completes, the network has to pack it, OK, so that's one source of time where the operating system will get control, what's the other one? Yeah. Yeah, software exceptions, software interrupts, right? So anytime a program makes a system call, anytime a program does something dumb or I have some sort of VM-related exception, so these are my three cases, OK? Now the problem is, what do I do if none of these things happen? Remember your perceptual limitations. Let's say that I've started running a program, and it's running, and it's running, and it's still running. It hasn't made a system call. It hasn't generated an exception. Nothing is happening with hardware for whatever reason. Just sitting there. Maybe the program is sitting there in a while one loop, doing nothing, OK? And pretty soon, it's getting close to the time where it's like, I've got to send that next audio packet to the sound card, or Britney Spears will stop playing, and the thing's just sitting there. It's running, running, running. What do I do? How do I get control of the machine? So this actually could happen, right? So I had a friend used to have an old Mac before Mac came out with OSX, and earlier versions of Mac apparently had these weird scheduling bugs. One of them was on his machine, whenever he burned a DVD, the whole machine would just hang until it finished, right? He would hit Start, and then the machine would just hang. And then 10 minutes later, it would just pop up again. It's like, I'm done, right? So for whatever reason, that one program that was writing the DVD was able to just take over complete control of the machine, right? Where essentially, you took what you thought was a general-purpose computer, and for 10 minutes, it became a DVD-writing computer. And then when it was done, it went back to do another thing. So how do I get control? How do I ensure that I get control? Yeah. Yeah, so timer interrupts. Timer interrupts are really the basis of what we call preemptive scheduling. What I do is I configure a timer that will fire at a regular interval. That timer will generate an interrupt. This is like a hardware time. There's a clock on the hardware somewhere that's wired to one of the pins leading in to the OS. And whatever it is, that timer will fire. And this ensures that there's a bounded period of time over which the operating system is ensured to get control, right? No matter what else happens. It doesn't matter if system calls aren't being made. It doesn't matter if there's no exceptions. I will get control within this amount of time, OK? And so again, preemptive scheduling means that I don't wait for a thread to stop. I don't wait for a thread to stop or to make a system call or to do something that needs my attention in order to perform a context which I can perform a context which any time the timer fires. Now, I'm not necessarily going to perform a context which every time the timer fires, but I have the opportunity to do so if I want to. It means that the operating system gets control at a regular basis. And you guys know how the rest of this works, OK? So this goes back to the things that we used. This is the reason for the concurrency challenges that we discussed a week ago, right? Timer interrupts mean that at any point in time, particularly user threads, but even the kernel, if I don't do anything about it, can be stopped, right? Now, when I restart the thread, I don't want the thread to know about this. To the thread, I want it to just look like it was just executing instructions and then it kept executing instructions. To do this properly, it should be completely transparent to the thread, right? I have to make sure that this is the operating system's job to make sure this happens, right? So the thread is just, from the thread's perspective, it has its own CPU, right? Its own CPU that it always gets to run on. Behind its back, I'm grabbing it off that CPU. I might put it back on a different core if I have a multi-core machine. It might be stopped for a while. But from the program's perspective, from the thread's perspective, there's nothing weird going on at all, right? Now, if you're clever, obviously, you can see this happening, right? I could start a timer in user space and I could execute a few instructions and I could be like, wow, it took me a long time to execute those instructions, right? What happened? What happened was that I executed a few of them, I got yanked off the processor for a while, and I got put back, right? So it's not, I'm not going to claim that I can make threads not aware of this, right? But I don't want them to have to care about this, right? If they want to measure it, they can measure it whatever. Not necessarily anything useful to do with that information, right? But if they want to just act like they have their own processor, that's fantastic. That's what I want them to do, right? All right, so how do we do this? The trick is we need to save all the state that corresponds to the moment that the thread was interrupted. So I'm the thread. I'm using the processor. I'm going along. I'm adding things and subtracting things and loading things from memory, blah, blah, blah. And suddenly operate system-taste control. So I need to make sure that when I take control, I save every piece of state that the thread could possibly care about. And then when I put the thread back, I'm going to do the exactly same thing, right?  I don't really like your furniture. I have a larger television. I don't really like the walls. I'm going to change some things while you're gone. So they come in, but they say, I'm going to put everything back exactly the way I found it. So they come in, they write down where everything was, they take paint samples, they take a lot of photographs, and then they can do whatever they want. Then the house is theirs. They can repaint, they can put holes in the wall, whatever. Now the day before you get back, they start looking around and say, OK, what are we going to do to get this back to the previous condition? Because when you move back in, it should look the same. Or for example, let's say you're having to party at your parent's house over the weekend. You guys know how this works. So thread state, so here are the things that the thread is going to potentially notice if they're different. One is the registers on the CPU. This is pretty fundamental. This is what computing is on a modern processor. It's moving things in and out of registers, basically, and performing operations on things that are stored in the registers that are on the CPU. And the other thing is the stack. So essentially what the operating system does, the stack part we can come back to when we talk about VM. So I use memory protection to ensure that the thread's user stack does not change while it's stopped. The registers, on the other hand, I need to take care of myself. So here's an example of saving thread register state. Now remember when we talked about what happens when an interrupt is triggered, we said the first thing is the CPU records some state about what happened. I jumped to this fixed location, enter privilege mode, and begin executing instructions. So here's what I'm actually doing. Now I wish this wasn't rolling off the bottom. The saved state is sometimes known as a trap frame. The reason for this is that interrupts are sometimes known as traps. So this is the frame that was executing when a trap occurred. And that trap could be generated by a system call. It could be generated by a timer. It doesn't matter. Any time I have an interrupt or exception, I create one of these things because it saves the state that the user thread, it saves the state of the processor that users that saw when the operating system took control. Keep in mind, even if I don't stop the thread and start another thread, I'm still going to save this information. So sometimes what happens is the thread's running along, the timer fires. I jump into the interrupt handling routine. I enter the kernel. I look around. I say, hey, you know what? This thread can keep running. No problem. It's got more time. I don't have anything else to do right now. And what happens is I just go right back to that thread. This also happens sometimes when I handle things like memory-related exceptions. I may trap into the kernel, save the thread state, run some other instructions, and then go right back to the same thread. I just want to make sure you guys understand that this sort of saved state doesn't mean that I'm executing a context switch, but it is required to execute a context switch. OK, so if you guys have seen this code, I'll let Jinghao go through this in detail. Oh, here we go. So this is the beginning of a trap frame code. This is an assembly. And I think there might be, you know what? Actually, that's not true. I think this is essentially the first thing that the exception handling code does. So there's an entry point for the kernel. That stuff gets loaded at a predefined address that the processor will jump to when an exception or an interrupt happens. And this code starts. One thing I want to point out, if you guys have looked through the OS 161 source tree, particularly the assembly code is really well documented. So don't be afraid to look at it. David wrote this for people to use as an instructional operating system. So you're not going to find comments like this in Linux. That stuff's going to be like super arcane and weird. This stuff will tell you exactly what's happening. So what does he say? He says, OK, interrupts are off. The processor disables interrupts as part of the process of handling an exception. OK, so k0 contains the value for curthread. Not exactly sure what that means. k1 contains the old stack pointer. I think this is stuff that gets done right above this. And the stack pointer points to the kernel stack. So note that one of the first things I do when I enter the kernel after an exception is I stop using the user stack. Remember, I don't want the user thread to know that anything's happened. If I write a bunch of stuff into its stack, then it's going to know that something's happened. So when I'm allocating space on my stack, this is now the kernel stack. So the first thing it does is it allocates 37 words to hold a traffic. When you guys get into your case statement for your system calls, this is already on your stack. But it's actually allocated on your stack in assembly. So I bump up my stack pointer by, I think this is 38 times 4. And then what I start doing is I start saving registers. So at this point, I have not changed any of the registers from what the values I had when the user code was executing when the interrupt took place. I haven't written or modified any of the values that are guaranteed to be saved when an exception occurs. So there's two registers that a user program is not supposed to use because they're not guaranteed to be saved across exceptions. But the rest of the general purpose registers, the user program, is allowed to use and they will be saved. So here's what starts happening. This is my trap frame. So the trap frame contains all of these values. And these values are the registers that are exposed by the MIPS processor. You have A134, T0 through T3. There's a, I don't know exactly what those are. There's a return address. This is for function calls. So this structure represents the state of the MIPS processor that you're using. This is the trap frame that's created when you enter the code. Does anyone have any questions about this? I know this got a little, that's why I don't like to do OS 161 stuff in class. Any questions about what happened? So I wish I had more of the previous thing. Yeah, next slide. Oh, this one. What is the co-processor? Good question. I'm not even going to try to answer that question. Ask it on piazza and I'll look at it. I can't remember what the MIPS co-processor is actually responsible for doing. Yeah. Yep. Yep. No, no, so that's a great question, right? When an interrupt takes place or an exception takes place, I am not guaranteeing to the process that I interrupted that I can return the machine to the exactly same state that it was when the interrupt took place, right? Because stuff's going to happen. Time is going to go by. Packets are going to arrive. Other things are going to run, right? So in general, the larger state of the machine may change, right? A file might get created by another process. So I am not guaranteeing that the thread is going to see the exact. So for example, go back to our analogy of your trip away from home. When you come back to your apartment a week went by, right? The world is not in the exactly same state that it was when you left, right? There's stuff outside your apartment that's changed, right? All the tenant is guaranteeing is the inside of your apartment will be the same, right? In this case, the only thing the OS is guaranteeing is that your stack will not change. And technically, other threads in your process could corrupt your stack. But let's forget about that. And the processor has the same values in the registers, right? Again, there's no way for me to completely freeze the state of the machine. And in fact, doing so would mean that I couldn't let anything else run, right? Because it might change something. That's a good question. All right, so just a few more details before we wrap up for today. When I enter kernel mode, the kernel switches to a separate stack. Why would it do this? Why do I need a kernel stack that the thread is going to use when it's executing inside the kernel? Why not just keep using the stack it was already using? Yeah, we don't want to change the thread stack, right? Well, that's two reasons, right? One is we don't want to change the thread stack. The other reason is I don't trust the thread stack, right? The thread stack is out there in user memory. And who knows what the thread did with its stack, right? I just don't believe it, right? I don't trust the user memory. And I wouldn't write or read any of my own precious kernel information, right? So on OS 16.1, when you enter kernel mode, one of the first things it does is it switches the stack pointer to point at a kernel stack, right? And that's what's used to allocate local variables in the store state required to make function calls while I'm executing in the kernel, right? So, and again, let me go back to this piece of code. So down here where unfortunately you can't see, what starts happening is a bunch of instructions that take a value of a register, like let's say a zero. I take the value of a zero and I move it into here. I save it in the trap frame in that spot. And then the next instruction, what do you think it does? After I've done a zero, I move on to a one, right? And then a two and a three and then t zero, t one. So I save all of, I essentially copy all these values from the registers into these locations in memory, into the structure. Now on my way out, now I've done whatever it is I need to do, I've handled the exception, maybe I've switched threads, whatever. I'm about to start running the thread again, okay? The kernel is done whatever it needed to do. I want to let the thread continue executing in the user space. What do I do now? So if you look at these, there are two pieces of code, right? One is kernel entry that starts with a system call or an interrupt and saves all the state into the stack frame. And then there's also kernel exit, where whatever the kernel is doing is done and now I'm going back to user space. So what does that code look like? Yeah, it's the inverse of this process, right? So when I come in, I take all the registers and I copy them very carefully into this trap frame, right? When I go out, I take all the values in the trap frame and I copy them very carefully into the registers. When I'm done, the result is that the CPU registers have the exact same contents as they did whenever I first interrupted the process. And this is how I perform a context switch. So you might be thinking, well, what's the equivalent of syscall? Or essentially, what do I do to unwind the changes that I made in order to get into the kernel in the first place? There's a instruction called RFE. RFE stands for return from exception. And you could think of it as the inverse of what the processor did when it generated the, when it handled the exception in the first place, right? So it lowers the privilege level and then it jumps, it begins executing code in user, right? RFE is how I go from kernel mode back into user. So that's how I lower the privilege level so that I can begin to allow untrusted code to execute. All right, any questions about this before we talk about the overhead slide? Yeah. Yeah, yeah, so great segue. It's like, I feel like you're a plant in the audience that I put in there to ask that question. Yeah, so context switch overhead. So getting in and out of the kernel is not free. It requires work. I have to copy all of the state into memory and then there's a bunch of other things that happen. And so there's an overhead to perform the context switch. That overhead is incurred whenever I make a system call, whenever there's a hardware interrupt. I might, so if I'm handling a memory related exception, I might be able to get away with doing a little bit less work to get into the kernel, but still not great, right? So this is slow and this creates the cost to what we call transition between kernel and user mode or cross the kernel user boundary. You know, getting into the kernel, getting into privileged mode requires I save all the state and that creates an overhead. What that means, almost done, we'll get back to this when we talk about schedule, right? So ideally, you might think that, oh, this is great. You know, I had this way, now I can stop any thread and I can keep it stopped for an arbitrary period of time. So hey, let's make the machine look really, really concurrent, right? Let's start and stop threads really, really often. So you could imagine having a timer that fires really rapidly. That's constantly interrupting the CPU and I'm constantly going into the kernel and trying to decide what to do schedule-way wise, right? The problem with that is this overhead. Problem with that is that every time I have an interrupt or exception to handle, there's work that the kernel is doing, okay? And now, to some degree, it's not completely fair, right? What I was gonna argue is on some level, all kernel execution looks like overhead. It's stuff that the machine is doing that's not useful, okay? Now that's not entirely fair because the kernel does do some useful things.  Trust me, if I took your machine and I configured it somehow so that your kernel was running the most of the time, you'd be unhappy. The machine would be really slow, okay? You want user programs to run, right? You didn't buy Windows so that the Windows kernel could run all the time, right?  I don't know why people buy Windows. Anyway, but you had a reason for doing it. Maybe you wanted to use Internet Explorer. So you want Internet Explorer to run. You don't want the kernel to run, okay? Certainly, the context switch code, that's just pure overhead. That's totally useless, right? What am I doing? Again, it's like, if why don't people do this to other people's houses when they rent them? It's because who wants to spend two days of their vacation like moving stuff around, right? I just wanna move in and hang out, right? So I'll just be okay with where that share is because moving it is gonna take me 20 minutes that I'll never get back, right? So certainly, context switch is just pure overhead, pure overhead. I do it too much then there's a larger and larger and larger percentage of the time that the system is doing useless, useless work, right? Again, all I'm doing with all the saved state is I'm just gonna put it right back, right? So every one of those memory reads and writes is complete and utter wasted cycles, right? Okay, any questions about context switches? Yeah, what's that? Ah, great question, great question. So what happens if I get interrupted in the middle of my context switch? Is this, what I want this to happen? It sounds terrible, right? But remember, go back to our trustee comments in the source code. Interrupts are off. So one of the things the processor does for me when an interrupt is triggered is initially the interrupts are completely masked, right? So as the kernel starts to run it knows that nothing else is going to interrupt, right? And that gives me time to do some things that you're right. If I get interrupted in the middle of my interrupt handling routines you wouldn't want to write that operates, that'd be terrible, right? So the operating system controls the interrupt priorities to make this possible, but the processor's helping us out too, right? Great question. Any other questions? I think we're out of time. Okay, so on Friday we'll talk about threads, thread states and different ways to implement threading.


Love this love it. Love it. Pick this up at the bends for a dollar by weight less than a dollar by weight I had no idea what it was, but it's hey fellow buddies. Thanks for watching Amazing right? All right, let's get started Hey fellow buddies, thanks for watching. All right, you guys welcome to the channel My name is Courtney also known as a Bolo buddies and in this video We're gonna talk about big money Bolo's an item a Bolo is an item to be on the lookout for an item You can hopefully buy low and sell for a profit I posted this in my Bolo buddies Facebook group share your best January Bolo and I'm gonna tell you where they got it what they paid for it and what it sold for and if you're not in my Bolo buddies Facebook Group, I will link it down below definitely come and check it out It's a huge group, but look for the Featured post under the announcements where you can come and share Bolo This one comes from Bolo buddies member Franklin Hill ventures his eBay store is FH ventures I will link it down below. He is also on what not as Franklin Hill ventures. He sold this antiques antique Singer sewing machine on consignment. So his cost of goods was nothing He sold it in one of his antique booths for a hundred and seventy five dollars after booth and consignment fees He profited 95 and this is what it looks like. So he has I think multiple antique booths And he's really been hitting what not what not hard. I'm doing a really fantastic job over there with ephemera So definitely check him out. I am also on what not so if you're not following me. I'm linked down below come follow me So He is a Bolo buddies member Which means he has joined Memberships to be featured in this video if you would like to be a part of that you can join at level two And that means you're gonna get a pop-up of your eBay store or your YouTube channel And I'm gonna link you down in the description. Okay, otherwise it is an anonymous Posting so don't feel like if you share in the Facebook group, you know It's up to you if you want to share or not, but it is anonymous unless you remember Bought these beauties at a private estate sale for a dollar each sold for a hundred and nineteen It's a vintage mid-century modern atomic Burwood 3d flying geese wall plaque retro USA And this is what it looks like sold for a hundred and nineteen ninety nine That is fantastic He said most or he or she I'm not sure most of the comps were around 75 to 90 for the pair So I priced them high and wish for the best they took two months to sell That's awesome price it high Bobbin cases with bobbins got cheap in sewing boxes. I sourced through online estate sales. They sold fast So this is a nice little bread and butter I'm gonna pop it up here There's two different examples the first set sold for 16 and the second set sold for 2499 Bobbins did you know about vintage bobbins? I didn't a state sale on Saturday. Oh My goodness, this one's from Jerry Jerry has the best story. So I'm excited to read this I didn't a state sale on Saturday They wrote there really wasn't much to choose from but there were a lot of books on the bookshelves One of the shelves caught my eye because it was apparent that all of the books were the same series Turns out that they were all mid 2000 era reprints of the 1950s and 60s comic strip little Lulu There was a total of 42 books paid $20 for everything on the shelf which included a few more books that weren't little Lulu I wasn't real optimistic because the sell-through rate wasn't promising But like I said, there wasn't much to choose from there I started listing them in small batches and with two within two hours of listing the same buyer bought two of the lots I messaged him and told him that I still had many more to list and would he be interested in any more And I would make him a bundle deal. He said he would so I messaged him what I had left He ended up buying 31 of the books paying a total of a hundred and fifty eight dollars and ninety eight cents I covered the shipping which was twenty one fifteen media mail a very nice profit in a quick flip I still have several lots from this purchase that are waiting awaiting the right buyers That's what I say list it and forget it and wait on the right buyer to come along Alright awesome Purchased from another local reseller in a lot of vintage Christmas cost of goods was two dollars and fifty cents and took a best offer of $59 I absolutely love these I have sold these before they are definitely a bolo people collect these and look for these They are vintage Christmas putts elves and they're pine cones. They're little pine cones and they've got chenille Pipe cleaner arms if you guys watch the this is my bolo video I talk about my bolo that I sold This is one of the reasons why people spend big money on that bolo if you missed that bolo go check it out I'm not gonna tell you what it is And or what I sold it for it.    They listed it It's a money pile. This is a great example of why you should call it a money pile. I call mine a money mountain I think I paid around a dollar for it at a church rummage sale and sold it on posh mark for a best offer of $118 within a week buyer paid shipping. All right, you guys I challenge you To go get five items today from your money pile and list them If you're gonna do it How about if you do it put challenge accepted and tell me how many items you listed from your money pile Let's all do that and we can kind of hold everyone accountable. Okay This one here comes from Franklin Hill Ventures. Also. This was also in his Antique booth. He said picked up this 1629 Tyrell map sheet engraved by Andrea's Spangler at a yard sale for 35 sold it in his Bearden antique mall for 240 I love that I can see his booth. I would love to see pictures of his booth I it'd be so cool if he just did a video Showing all of his booths wouldn't that be cool. I know he's kind of taken a break from YouTube because he's doing so much on what not This one comes from PNZ No, not PNZ. What's PNZ PNZ. What is that like a radio station? What what is PNZ? It's PNW PNW flips Somebody tell me what PNZ is because I I'll Google it later or no I'll forget somebody tell me Paid a whopping 50 cents if that pick these up at an estate sale and they went for a best offer of $20 plus shipping and They are Sony DVC Premium digital cassette brick pack of six. Okay, so I'm at the Goodwill Ben's not it was a couple days ago and Literally me and this lady saw these cassettes at the same time and you know how like the Ben is like so far back I was like region for it region for it and I got one But man, she was quick She had something and she like swiped it all forward and she She got him Only got one. I think she got like two or three, but anyway, we both knew they were a bolo This one comes from stellar seller Sam. This is her YouTube channel She has a new channel and she is incredible her editing skills are awesome and she is so fun Definitely go and subscribe to her show her some love Tell her bolo buddies sent you in the comment of her video This is a Kota Paxi hiking bag sold on eBay within a few weeks of listing buyers all in for 46 96 costs less than a buck at the Goodwill Ben's I Purchased this No, I purchased about 200 art and literature books at an online estate for four hundred dollars There were about a hundred of them were selling so my cost was four dollars each This art book took two months to sell on Etsy for a hundred and twenty with free shipping This comes from eBay store the bulldog shop It's the painting of Hans Holben the younger by John Rowland's 1985 first US edition She said I find or somebody else wrote I find Etsy the best place to sell vintage books I had some books on Amazon for three years and never got a nibble. She said I hunt a hundred percent agree with you I've stopped listing valuable and rare books on Amazon. So they're saying Etsy is the place for Books so if you have rare and hard to find vintage books that are on eBay if you get list perfectly You can cross post them from eBay to Etsy. It's super easy I have a video that shows you eBay to Etsy, but you can also list into the list perfectly catalog I'm telling you you guys things that sell on some platforms sell better on other platforms I start on eBay and cross post a mercurial Poshmark. The catalog is a fantastic idea I show you how to do both. There's a video down in the description of There's a link to a video down in the description of this video and if you click on that It'll take you over and it'll walk you through the whole process. I'm a visual learner So I just do it for you. I show you how to do it If you watch that and you decide you want to try it, you can get 30% off your first month of list perfectly somebody had mentioned that I I mentioned list perfectly too much and Some other things that I mentioned too much But I will tell you guys that I'm going to continue to share with you guys things that I use in my business I really don't share with you a whole bunch of things But I do share with you the things I use because they help me and I think they would be useful tools for your business So they are referral links. There are links down below for other things that I use that I'm not going to mention So definitely check out the description And if you've already heard it, just click that fast forward through my little spiel Because those of you that are new and have not heard it Or maybe you need to hear it more than once before you're finally talked into it and then you message me and you're like I am so glad I did this. What was I waiting for? Yes? I do get those messages Alright, this is also from the bulldog shop through an online estate sale I bought a box of American girl doll books and catalogs for $11 making the cost of each about 50 cents The catalog sold on Etsy for 62 with free shipping some of the catalogs sold within days of listing them This one took six months. It's a vintage pleasant company American Girls Spring 1998 doll catalog pleasant company is the vintage. Okay, if it says pleasant company look it up This is also from the bulldog shop She said I love bleak and I think I said that right a long-time maker of fine Parin China in Ireland and all I and always look for collections of it at a state sales I paid five dollars for this teapot It sold for 110 with free shipping on Etsy and took about two months to sell Having the original box for any breakable adds value to the item So I always pick up an item with a box higher than other sellers. I'm sorry I always price an item with a box higher than other sellers items without a box Very good tip. And this is what it looks like And it looks like she's doing awesome over on Etsy She is bulldog vintage finds over there and the bulldog shop on eBay All right, let's check this one out. Here is another one I purchased about 50 Disney trading pens at an online auction for $54 So my cost per pin was about a dollar These are long tail items and I've sold half the pens over the last seven months This one just sold on eBay for a best offer of 62 plus shipping So she priced it high and she waited on the right buyer. It's a Disney pen st. Patrick's 2009 and it's plain and accordion digging through a hoarder a state Sale a hoarder house estate sale on the second weekend. Yes. I was there both weekends Purchased two IKEA bags of items for $40. This was one of the items a gun shaped hair dryer You caulk the hammer for the temperature settings and pull the trigger to make it start I didn't even look it up because it was too awesome to leave there sold for full asking price in a month $275, okay, I Feel like I just saw where somebody had this listing taken down for either a policy violation or a Vero I remember featuring this hairdryer in a video a long time ago I think it was in my weird Bolo items items that are weird or crazy that have sold. I mean, it was probably a couple years ago I don't remember it being a Policy violation or a Vero then I don't know if it has something to do with it being the shape of a gun He hasn't holstered so maybe I don't know but Do your research on this before you list it because I feel like I heard somebody say that in one of my videos One of the Vero policy violation videos if it was you let me know down in the comments Or if anybody has had this removed let me know because I'm not a hundred percent sure But I just want to put that out there just in case it's definitely a Bolo But you don't want to get your account in trouble either, okay found this cute vintage cat at the Goodwill for $1.99 I just had a feeling it would do well I listed it on the eighth and sold it on eBay on the 11th for full asking price of $28.95 and they paid shipping why am I smiling because I love things like this made in Japan One of my favorite things to sell our little figurines made in Japan Those are one thing that are breakable that I will pick up and list. I just love them and there's that word again Is it kitschy or kitschy kitsy? I don't know. I can't say it, but this one comes from eBay store found by Chance So cute. Oh my goodness. I would have put that thing on auction or priced at like at $100. It's so cute But I'm crazy like that. I will price things high sometimes and wait on the right buyer if it's a hard to find item This was at an estate sale fine last summer. I paid six and after about six months It finally sold for $44.95 and the buyer paid shipping. This was also sold by eBay store found by Chance vintage mid-century modern Ingrid Chicago party ball picnic camping retro dish set How cool is that? Found by Chance also sold this one my 11 year old Azure Found this mask at Goodwill for $4.99. This brand of masks had good comp. So she thought she'd give it a try It got listed on the 22nd for 48.95 and sold on the 24th for a best offer of 46.50 with buyer paying shipping a very Exciting return for an 11 year old. It is a wall mask and this is what it looks like Love this. Love it. Love it. Pick this up at the bends for a dollar by weight less than a dollar by weight I had no idea what it was But it said dr. Seuss on the tag. So I thought it it would have some value turns out. It's very rare sold saw three sold on worth point in 2022 two of them for 175 and 215 but I believe these were both Relisted so not good comps. The other one was a good sale at 120. So I listed mine for 150 It sat for about two months and I took an offer of 130 the buyer paid what it looks like How interesting is that? I've never ever seen it. It is a dr. Seuss vintage 2001 Gucci Gertrude McFuzz bluebird Stuffed Manhattan toy, huh? That's pretty fun Okay, I Found this Blanco sink 611 called decanter at Goodwill for $3.99 last Saturday and listed it tonight It's sold for full price within 15 minutes 500 plus the buyer paid shipping Blanco see green cog decanter with stopper Wayne Houston this is what it looks like Wow 15 minutes 500 bucks bam 399 at the Goodwill that's incredible All right, you guys we are gonna stop there Definitely check out the whole series. There are like a ton of videos for January There were so many people that shared I think over 300 Bolo's coming your way this month that people sold in January for big money so stay tuned for the ones that are coming and Check back for the ones that have already posted. Thank you guys so much for being here. Thank you for watching Let me know in the comments. Which item was your favorite Bolo leave me an emoji of your favorite emoji just put it in the comments and Be sure to like comment subscribe and share and thanks for watching This is also fat bye


In Christianity, Jesus is the central figure of worship, believed to be the Son of God and the Savior of humanity. And God as well, as the graphic here in the background shows, Christians worship Jesus. By saying he wasn't just a man, he was fully man and fully God. This is how Christians justify to worship a man and not discard it as paganism. However, if we look into the tradition of Judaism that Christianity is based upon, we can of course see in the Old Testament, that God most certainly is not a man. It says it clearly in the Old Testament. And this is why just by this graphic alone you can see that the Jews and the Muslims are worshiping basically the one God with certain different conceptions. However, the Christians in the middle are most certainly not worshiping the same God because their God is Trinitarian in nature and moreover he manifests himself in the man Jesus.


What does it take on these nights where it may seem like it's hard to get a flow?  As hard as it might be at that point in time, the big picture, I think. Understanding the big picture and where we want to be at the end of the day. The last team standing, what it takes to get there. It's hard, it's not easy, nothing's going to be handed to us on the silver platter. It's a grind, it's a marathon. And nights like tonight, you just got to dig deep and find a way to be infectious in a good way and be able to spread those good vibes on the court, on the bench, no matter what it is. Hustle plays, get the team going. I think the big picture perspective is the answer to your question. You guys, you get the W, but what kind of challenge is it when you're shorthanded, you just come off of a long road trip, second half or back to back? What kind of challenge is it to find that chemistry again with a lot of new faces and figure out ways? Well, yeah, that's been our challenge over the course of the season already, is finding the chemistry, new pieces to the puzzle and finding ways to make it work. But at the end of the day, it's what we can control. And I think that's where out as a group is trying to understand what we can control and stick with that. You know, when they're not let other things kind of waiver from that. Defensively, obviously last night, we got given a pretty good lesson on, you know, without able to defend good basketball and good movement, good players, good ball movement. And tonight, not the same movement, but, you know, there was glimpses there of playing really good defence. At the end of the day, you know, for us to be the last team standing, we're going to need everyone to be able to make an impact on the floor whenever they enter the game and find ways to be able to inject their juice on the team. Yeah. Hey, last night, Steve talked about the offense getting stagnant at times in the second half. That first half, I mean, I think with 17 assists on your first 20 bases, what was working so well with you guys offensively early on? What done good for us in the first half. I get jumbled under here, you're right. What was working so well offensively in the first half for you guys tonight? Moving the ball. I thought we moved the ball really good, obviously, with the 17 assists in the first half. We've done a good job of being able to find open guys, good to great, you know, being able to attack the paint, find open guys. You know, credit to their defence in the second half, too. They found ways to be able to stop that penetration, get the ball out of certain guys' hands. And again, back to the chemistry. It's just trying to find those guys on the floor that works. But at the end of the day, I think, again, if we're able to find a way to control the game on the defensive end and let that flow to the offensive end and now we're coming downhill with a little bit of momentum in transition, then that's how we would like to play. But, you know, credit to how they came out in the second half and were more physical and running around and made a scramble.


Transcribe. Family Theatre presents Anne Blythe, Jeff Chandler, and William Lundigan. Family Theatre's only purpose is to bring to everyone's attention a practice that must become an important part of our lives if we are to win peace for ourselves, peace for our families, and peace for the world. Family Theatre urges you to pray, pray together as a family. As part of its special holiday program, the mutual network in cooperation with Family Theatre and the Catholic Daughters of America bring you a half-hour dramatization of the presentation of the Christ Child in the Temple according to the law of Moses 40 days after his birth, starring Anne Blythe as Mary and Jeff Chandler as the narrator. William Lundigan will be your host. Do you complain, my child, that there is little to meditate upon commemorating the day that Joseph and I brought Jesus for the first time to the Temple? Yes, child, I know you realize it was an event worthy of remembrance and I have seen many of you devoutly celebrating this feast, the feast of the purification. Yet compared to his birth, for instance, this seems, does it not, less colorful or more remote or as your dramatist would say, a kind of anticlimax following the mighty nativity? It did not seem so to us. We shall have fine weather for our journey, Mary, much different from our last. Oh, my little one, my firstborn shall be presented to the Lord, the first begotten of God to be presented in his own temple. Oh, yes, beloved, oh, Joseph, this shall be a marvel to me as long as I am on earth. He cries in hungers like any other child, and yet behind this helplessness is omnipotence, behind those baby eyes all knowledge of heaven and earth. Tomorrow, thou lamkin of God, thou holy one, we shall go into the house of the Lord, thy father. For at that time we yet dwelt in Bethlehem, for no longer in the stable where he had been born. The Magi from the east had come and gone, but so far my enemy had not put it into the heart of Herod to seek my beloved. Jerusalem was still safe for us, and as you know, Jerusalem in terms of your miles is less than 15 from Bethlehem. Oh, there, let me help you up, Mary. I'll hold the child. Do not fear, I won't drop him. Now, put your hand on my shoulder. That's it. Our mode of travel was not a chariot or a motor vehicle, but the faithful donkey which had come with us from Nazareth. And the journey took hours rather than moments. But by contrast to our last when we had arrived fatigued and drenched with rain and could find no room in any house, this day was pleasant. Yep, yep. Come along. And with my small Jesus nestling in my arms and Joseph trudging beside us so patiently, I felt in my heart a great and possessing peace. I knew she was happy, for when we had cleared the town of Bethlehem and were alone, the three of us and the donkey, why she sang. She sang to the babe in her arms, and then her canticle which begins, my soul doth magnify the Lord. And I said to myself, who art thou, Joseph, son of Jacob, that he who made the heavens hath made thee custodian of his very family? For concerning the babe, does she not share parenthood with God himself? It was well to go to the temple, and the time had come. Generations upon generations earlier the Lord had commanded us through Moses. Sanctify unto me every firstborn that openedeth the womb among the children of Israel, as well of men as of beasts, for they are mine. And also he had said, If a woman bear a man child, she shall be unclean for seven days, and on the eighth day the infant shall be circumcised. But she shall remain three and thirty days until her purification. She shall touch no holy thing. Neither shall she enter into the sanctuary until the days of her purification be fulfilled. It was well to go to the temple, and the time had come. And yet I pondered the words, she shall touch no holy thing. And my glance fell on the holy one of Israel in her arms. And I said to Mary, Mary, I have been considering. Where the do we go? Why to the temple? For the days of purification are now accomplished. But it is the temple which ought to be purified by you. Joseph, it becomes us to fulfill the law and all justice. Truly this woman was the reflection and echo of her son, the morning star which appears before the son, the ark of the covenant, bearing within her the holy of holies, the son. What wonder then that she spoke so like her son? We arrived then at the tomb of Rachel, where we stopped and prayed. There was little to see, no great basilica, just twelve stones engraven with the names of our tribes, and more crudely, of generations of pious wayfarers. I have said that until then we had no knowledge of the design of herring to murder prematurely, my son. Yet we recalled, when we paused to pray, the words of our prophet Jeremiah's. Our voice was heard in Rahmal, weeping and loud lamentation, Rachel weeping for her children. And she would not be comforted, because they are no more. Until then and for some days to come, the words were but a prophecy. Nor could we guess how soon they would be fulfilled. But this was the first shadow of the day. For as we left the valley of Refiam, we rested beneath an olive tree, barren and it seemed somehow evil. An accountably fear gripped my heart, as if the cold breath of evil, perhaps the future sins of men, had enveloped my beloved, my firstborn. But this was the tree from which they fashioned the cross. Let us go, Joseph. You are pale, trembling. Yes, of course, let us go. Let me help you, Mary. Our spirits revived when we saw Jerusalem. Jerusalem, builded as a city that is compact together. And I cried, praise the Lord, O Jerusalem, praise thy God, O Sion. First, as you know, it was needful that I provide a gift for sacrifice. For it was written, sanctify unto me every firstborn. And again, when thy son shall ask thee tomorrow, saying, What is this? Thou shalt answer him, with a strong hand did the Lord bring us forth out of the land of Egypt, out of the house of bondage. For when Pharaoh would not let us go, the Lord slew every firstborn of the Egyptians, from the firstborn of man to the firstborn of beasts. Therefore I sacrificed to the Lord all of the male sex, and the firstborn of my sons I redeemed. Now to dedicate, or rather redeem to the Lord, a child, the price of redemption had been a lamb. But by God's grace we were poor, and ours was no longer a pastoral nation. And hence we were allowed to bring just two young turtle doves. Having procured the offering, I tethered the donkey, and we made our way at last to the temple. Strictly speaking, the temple proper consisted of the Holy of Holies and the Holy Place. Outside of this was a great altar whence comes the description of the death of the priest Zacharias, who was slain between the temple and the altar. And the altar was in the court of the priests. But there were many courts and enclosures, and the whole was popularly called the temple. That temple which our Jesus, now on his first visit and carried in Mary's arms, but bright-eyed and not asleep, would see so often, and say much concerning in his later life. We made our way through the court of the Gentiles. There were many who admired the babe, and I remember there were some Greek children who wanted to give him grapes. He always loved children, as well after he was grown as when he was a child himself. For he had been a child himself. Thus we passed along Solomon's porch, though Solomon's temple had been destroyed, and this one was largely the work of Herod, and through the Shushan gate which brought us into the Krel. But the temple was not to endure longer than another 73 years. Yet no one, not even the Romans, dreamed of that on this day. And now we entered through the beautiful Corinthian gate to the court of the women called the Azareth Nashim, and straight to the 15 steps leading to the court of the priests with the altar and the holy place beyond. It was at the top of these steps that the ceremony took place. One of the Levites on duty summoned the priest. It was my business to take the infant in my arms and climb the steps as if I had been his father indeed. Hold him thus, Joseph. Yes, I will be careful. Mary, peace be to you. Why Anna, oh I'm so glad. Wait, Joseph. This is Anna, the daughter of Fanuel, one of my tutors here in the temple when I was a child. Peace, friend Anna.  Here, let me see your firstborn. Let me hold him. She remains here day and night fasting and praying. She's done so for 80 years. I have heard of her. This is the Messiah foretold by the prophets. Little does the priest guess, or this Levite, who it is that sanctifies the temple this day. I pray you, say nothing for now. The priest is ready, friend. You will go up those stairs. I'll carry your doves. Here is the child. This is the last. That was the last, though I knew not what she meant at the moment. But perhaps I knew, but realized not in the ecstasy of holding the divine infant in my arms, and in the weight of my responsibility. For this was the lamb without spot, the final sacrifice. Yet I ought to have understood the significance, the theme for meditation for all of you, his later brethren. For I was redeeming him who redeemed all, presenting him to the Lord, according to our law memorial of our deliverance from Egypt. Buying him back, as it were, with a token offering of turtle doves. I was well versed in the law and knew why the Lord had demanded the presentation or redemption of only the firstborn. He might indeed have required the presentation of each and all, for all are his. But the firstborn, as chief of the family, represented all his brethren. The firstborn of a family stood for all his brethren. But are you not his brothers and sisters? Are you not through his baptism the adopted sons of God? And am I not your mother? Thus he offered himself not for one family, but for a greater spiritual family. He, firstborn of the faithful, presents himself as head of a mystical body. It was at that moment, my child, that he adopted you and each of you as his brethren. The ceremony accomplished, I descended the stairway. I was about to restore the infant to the arms of his mother when I beheld... Simeon! Give me the child. Now, O Lord, dismiss thy servant in peace according to thy word. For mine eyes have beheld thy salvation which thou hast prepared before the sight of all nations. A light to the revelation of the Gentiles and the glory of thy people is real.  I am his mother.  King Redeemer, the Holy One, expected for ages. For the Lord had promised me I should not shut my eyes in death until I had seen the promised Son of Man. Now, Lord, dismiss thy servant in peace. For your blessing, Holy Prophet, we thank you. Nay, nay, I will restore the child to her who bore him. Guard him well. Oh, we will guard him and cherish him and adore him. Guard him well, I say. For behold, this child is destined for the doom and the salvation of many, of many in Israel. And he is set for a sign, a sign that shall be contradicted.  From that hour I was never without suffering, yet Seminy had begun for me. For I understood from Simeon's words that somewhere, someday, be it far or near violent men, blind instruments of perhaps of your sins, my child, would wrench him from me, would harm and slay my beloved, my innocent one, my baby. How did I know, when I gave the infant of the Simeon, that I was Abraham and he, Jesus, the new Isaac? But Simeon knew, and he knew that as the world receives Jesus through Mary, the world must go back to the Father through Jesus and through Mary. And he knew, I think, that this presentation, which had become in my time a matter of form, was the truth, the sacrifice, and that our Jesus was a victim. Years later, after my passing, he became the final victim, the last, as Anna had said. Types and figures would, henceforth, vanish. There would be no more bullocks or lambs, but only the one lamb that Mary, on that day, had held in her arms. The sacrifice of which those others of Abel, of Noah, of Abraham, of Melchizedek, were but dim foreshadowings and imperfect symbols, and which would have no meaning or validity without the ultimate sacrifice of the cross.  At that moment, Mary, the daughter of Abraham, was exalted above the head and father of her people, for she also sacrificed her son upon the altar of the Lord. But with this difference, her son was divine. She had the sad assurance that her sacrifice would be accepted, and she was a mother. This is Bill Lundigan. In offering the story of the presentation of Christ in the temple some 40 days after his birth, family theater would like to extend to all its listeners its sincere good wishes for a happy and joyful and prosperous and above all, peaceful new year. And remind us all that the family that prays together stays together and that a world at prayer will be a world at peace.  William Lundigan was your host. The script was written by Fred Nevelo Jr. with music composed and conducted by Harry Zimmerman and was directed for family theater by Joseph F. Mansfield. This series of family theater broadcasts is made possible by the thousands of you who feel the need for this type program, by the mutual network which has responded to this need and by the hundreds of stars of stage screen and radio who give so unselfishly of their time and talent to appear on our family theater stage. To them and to you our humble thanks. This is George Crowell expressing the wish of family theater that the blessing of God may be upon you and your home and inviting you to be with us next week when family theater will present the finding in the temple starring Anne Blythe and Jeff Chandler. Join us, won't you? Family Theater is broadcast throughout the world and originated transcribed in the Hollywood studios and the world's largest network, the Mutual Broad Testing System.