Good morning. Good morning. Everybody have a good weekend? No. No. I agree with you. Still last night. Still last night. Still last night. Okay, so, other than other disasters that are going on in the world, today we're going to talk about some problems that we've created for ourselves. So, the last week we've talked about concurrency. We've talked about creating an illusion of concurrency inside the operating system through the threat of distractions. We've talked about context, which is our mechanism for allowing the system to be concurring by stopping one threat and starting another threat. Unfortunately this scenario for concurrency is going to create some problems for us. But specifically concurrent execution creates problems in making sure the data stays consistent and creates some challenges coordinating execution that's a giant spirit. I can't talk. Coordinating execution between multiple threats.  So, assignment zero is new today. Five thumb is holding office hours today from noon to two. I will be in my office after class if you'd like to come by if you need some help with things. But, assignment's new today at five. I want to get assignment zero in and move on. So, we can go on to the front side. Assignment one will come out as soon as possible. Probably today maybe five. Kind of a multiple page release. But at this point a lot of the tools that we need to release the assignments are already built. Hopefully assignment zero will go a little faster. We're still working on the recitation times. For now, we're going to stick with the ones that we had already established. Look on the website. Do note that the location of two of the recitations has changed. So, two of the recitations that were in Talbot 111 have been moved to Davis 113. Which is a much nicer room in a much nicer build. So, hopefully. Yeah, so finally, just in case you didn't realize this, when we sent emails to the class list other than suggestions for how I need to humiliate myself today after the new England football page rate lost. Emails we sent to the class list are kind of important. I try to keep them as brief and to the point as possible to please read them. When you email the staff and you say, hey, I don't know how to do this completely obvious thing that we explained over the class list about five minutes ago, then usually that makes us wonder if you really pay much attention or read. So, you're a class and we mail sent to the class list. There's an archive. I think the link to the archive should be in the emails itself if it isn't. I'll fix it. And if you need to review things, go in the archive and I'll be able to send with it. All right? Any questions about sort of administrative stuff? Okay, so let's review. So last week we talked about, again, about the CPO abstract, particularly threats. We talked about how to implement them. We talked about the goals concurrency. We talked about context switching. Any questions about stuff from last week? Any questions or any doubts? Desires to talk about things? Any questions? Okay. All right, welcome guys. Welcome. All right, so let's review. Starting in the back. I always get the same people in the back. I'm going to start in the front. I'm going to start in the middle. Operate systems. These go from privileges to complex resources. Good. Processors grant special privileges to the operating systems through. Well, the kernel is in the operating system and how do I do that? You're close. One more. So kernel. Kernel operating mode. When I'm in kernel operating mode, what can I do? I have access to what? A different view of memory. Okay, that's one thing. I have special instructions that I can execute and I have different view of memory. So, again, come back to memory in about a week. Okay. Interrupts. Three reasons that the operating system would start to execute. What are the things that will cause the operating systems to be getting run? Okay, there it is. And you took all three answers. Hardware needs attention. Hardware needs attention. Device requests some service. Software requests some service. Software wants to do something that will fire the operating system, namely perform a system call at the operating system. Do some work with devices or other pieces of the system that are privileged on the software's behalf. And finally, if the software does something unfortunate, then the software will generate an exception, which the operating system will have. Yes, you may. How do we have an exception? So, okay, fair enough. There could be cases where you're saying the hardware has some sort of fault or whatever. And those would be handled probably through the hardware interrupt method. From the perspective of the processor interrupts another exceptional condition in my book fairly similar. The difference is that there are instructions that I can execute as an application that will cause an exception. And again, everybody's favorite is spot by zero, but also things that use virtual memory will generate. It's just a little bit of a different method. I think it's worth separating those two for the purposes of software. But in general, you can think about hardware need and attention. Hopefully it will generate some sort of error. Because if the device just sits there not doing anything, then it might be very difficult for the kernel to figure out what's wrong. So the device is really dead. Right? If you go and just pull the device out of your system so it never generates another runner, never responds to another cameo, it's probably not going to put the operating system in a position where it really has very many good options. CPU limitations. So the two limitations of the CPU we talked about, the operating system tries to address one of them. Two problems, two limitations of the CPU that the operating system is going to try to pull the problem. Faster than other parts of this system. What's the other? There's only one processor. Or maybe there's four cores. But in general, the number of cores is less than the number of things the system is trying to do at any given point. Okay. Contact switching. What is the contact switch for you? Contact switching is where the process switch mechanism of multiplexing. Okay. And what? The contact switch I switch between two what? Two processors. Two processors or? In this class we think a little more about threads as the CPU abstraction. But there are times in which we will talk about switching between processes. If the processes have only one thread or if there's switching between two threads then half of people are allowed to switch between the processes. So if I switch between threads and those threads belong to the processes then I can talk about switching between the processes. Alright. Private thread state. Adress space. Well, average space is usually shared with the threads but what part of the average space? The whispering. The stack. The thread stack. That's where threads store local variables. So variable and function context store it on the stack. Those variables are private. Right? Alright. Contact switching creates the notion of what? What's the illusion that we were trying to create? Good currents. The illusion that one processor is being seamlessly divided between multiple tasks or sometimes we think of it as each task having its own processing, right? I'm executing instructions and it looks to me like a sequential seam of instructions despite the fact that the processor is being stopped and switched over to another thread and then switched back to me and so on. Okay. Thread state. So we talked about this a little bit on Friday. It's kind of slow down.  So threads, states of the thread can be over it. It's running. It's executing instructions on a core. Right? What about the ready state problem? It's ready to run but it's not starting yet. It's ready to run but it's not running at the moment. So it could be run. It could be skeptical. I couldn't move it out to the CPU and it could just keep on going. Right? Waiting, blocked or sleeping. Anybody? Waiting for a smile. Waiting for something to happen. But more importantly it's not ready. It cannot be run. If I started to run this thread, something that it's asked for to happen hasn't happened yet and it wouldn't, you know, something like, for example, if it made a system call, let's say it made a read system call. The semantics of the read system call are either that has to fail or I have to copy some data into a buffer that the thread has set up for me. So if the call is not done, the data has been copied and I start running the thread again and it's going to think there's data there and it's going to process garbage or some bit of data that's half-finished. So it means that something that the thread asked to do has been completed yet or some condition hasn't been met and to start the thread up again would cause it to be in some sort of bad state or to read. It's something that it's asked for hasn't been finished. Okay. Transition between thread states. Running to ready. What does this mean? What's that? Everybody has to go everything in this file. Okay. Why does the thread transition from the running state to the ready state? What I'm looking at is a context switch. A context switch. And a context switch that caused the kernel to de-schedule this thread or stop it from running. So that's another question. Alright. Running to ready. What did the thread do that caused it to leave the running state and enter the waiting state? System call. It made a system call. Ask the kernel to do it. I'm the kernel. Identify upon material. Alright. Waiting to the ready state. What happens to a thread right here? Still. Yeah. Something that was happening way before happening. And now the thread is ready to be run. Maybe I finished writing the data from the system call after the buffer that it established. And now I can start up again at some point. Running to running. Can you call that? Yeah. It's good. I scheduled the thread. And then finally, running to terminate. What happened in this case? Is there it has been completed or it has been completed? Right. Something happened that caused me to terminate.  Okay. So any other questions about the stuff that we covered last week? Yeah. Right. So I've had material on Friday's slides comparing implementations of threads in user and kernel mode. That is material is So that material is in the slides. I'm not going to cover it in class because I kind of think we need to keep going. But here's the deal I'll make with you guys. If I decide that I want that material on the exam, I will record maybe a 10 minute video and put it online where I cover those slides in the comfort of my own office. And then you guys can review. That stuff may appear on a test because it's a good design. There's good design questions there. But I would encourage you to review that material on your own. Same questions into the staff. Again, if I think I need to review it further, I'll just record it. Does that sound fair? Yeah, that's a cool topic. I wish I got there, but I don't want to. Okay. If a process spawns too many threads, does it get some help in the CPU? Does the CPU have to take care of number of threads created by a process? Right. So if a process, if a process on Linux, for example, creates a bunch of quote unquote then that does affect how it's going to. At the same time, the kernel is also aware of the fact that that process has a lot of threads. So you might think I can monopolize the CPU. I can get more than my fair share of time on the CPU by creating a bunch of threads. And I think, I don't know exactly how this works out. My guess is that that's true to a certain degree, but at the same time, you're not fully the kernel. The kernel knows what you're trying to do. The kernel knows that, hey, this process here has 10 threads. This other process here has one thread. And so the kernel can take those differences into account. So if I created a bunch of, like, thousand threads, I'm not in general going to get a thousand times more CPU time than I've had if I created a bunch of threads. The kernel is probably going to share a process across that level. And so that creates an we don't want to pin an incentive for processes to just one thread so that they can affect the schedule. We'll talk about that because we get to schedule it. All right, I have a question about this stuff. It's a good question. All right, so now let's talk about this problem that we've created for ourselves. We've decided computers got powerful and more people wanted to use them. We decided to start implementing this multi-programming abstraction and we started to do preemptive context question. We started to stop threads in the middle of something without asking their permission, without giving them any sort of notice, putting them aside, letting some other thread run and bringing them back. And that illusion is really powerful and useful. We talked about this last week. And, you know, threading can be a good mental model to approach how to structure GUI applications, how to structure anything that has a number of things that are going on at the same time. It can be useful to think about I'm going to start up a thread to do that task. To wait for somebody to click various pieces of the display to go and buy a certain part of a web page. And we also have showed that threading can highlight these caused by slow software devices. So rather than having to stop an entire process, I have one thread in the process that could be blocked waiting on network.io or file.io or something else while other threads in the process can continue to be used for work. So this is a good thing in general. The problem is if we go back to our example about the cooks that threading and concurrency particularly preemptive concurrency creates these problems. Which is that data there's two problems. What is coordination? So how do we allow multiple threads to coordinate and communicate effectively? We're going to talk a little bit more about coordination later in the week. What are the equally important, if not more important, this idea of correctness? So we need to establish in a way for multiple threads who are accessing shared data to ensure that those accesses are safe and that we can guarantee that the result is going to be as expected. The other thing that comes in when we start to talk about multi-threading and concurrency is that there are certain calls that have time based semantics. So if you look for example at the read system called let it's man page it states that when a read is performed if a process can show I actually don't know what the mechanism for doing this is but if there was a write that occurred and I can show that the write occurred before the read even if the write was done by another process the read is supposed to return the updated data so this is an example of time based semantics for a function called. If a read, if a write happened before read even by any other process on the system to the file then the read is supposed to be guaranteed to return the data that was written. And enforcing these kind of semantics requires synchronization. So again today we're going to focus on correctness. We're going to start building up in terms of like low level synchronization principles. And then Wednesday and Friday we're going to keep talking about higher level primitives that are built to solve problems. One of the things about synchronization is that the primitives that we talk about in this class and the mechanisms are very much responses to actual problems that systems design space. So we're going to talk about some general purpose primitives. And then there's a whole, if you go look at Linux or Windows they've got a dozen different synchronization mechanisms that are built around different patterns of data sharing. They're built to support a certain component of the system that shares data in a certain way of data efficient. We're going to talk about some of the ones that are more generally useful to solve a large array. And then the last thing I want to say is the thing that you guys are going to experience. So in general synchronization is a broader topic than just defined operations. So how many people have ever took a class that's really focused on multi-threaded programming using some of these tools? Good. At some level that's good because here it is, you're going to learn. But on the other level this is one of those parts of the class that's actually really applicable to everything other than operations. It's very likely that you guys will write multi-threaded code in your future programmers and you will need to use some of these ideas. One of the reasons that we talk about this in operating systems is that operating systems in many cases provide help in implementing some of these primitives and guarantee their brightness. The other thing that you get to do in this class is you get to work on quote-unquote patient zero mode, right, which is the operating system itself. So this is in many ways the gnarliest and the most difficult multi-threaded application that anybody needs to write. And you know, it's, why is this, right? Well, it's multi-threaded access to resources and these are inherently shared. Anything on multi-threaded is shared, right? I'm using a lot of threads within the operating system itself to hide some of the legacies that we talked about, right? And basically when I have a lot of shared state and a lot of threads I create all sorts of interesting synchronization. So the primitives that you guys are going to develop for Assignment 1, you will continue to use them and you will have to use them for Assignments 2 and Assignments 3, right? So if Assignment 1 seems a little bit arbitrary in terms of some of the things that you have to do, remember that you need to know how to use these primitives and know how to think about multi-threaded programming in order to do the later assignments. And of course, right, if the operating system goes bad then that's bad, right? I mean if your web server messes up it's multi-threaded programming and it dies if the OS messes up and that's a little bit more serious, right? Okay. So, concurrency implementing the illusion of concurrency using the mechanism of a context switch has implications for how you think about sequential execution, okay? And it's an application programmer and even within the current, right, right in the kernel, here are the things that you are no longer allowed to assume. Threads, well here's the things that you have to think about. Threads can be run in any way, right? You can't make any assumptions about how threads are scattered. At any point in time a thread can be stopped for an arbitrarily long period of time and restarted later. And when that thread is restarted the state of the world may have changed quite a bit. Now, the threads context and staff will be the same. But any other sort of shared state global variables can have changed, right? And so, this is the thing I would keep in mind. And finally, again, I mean threads can be stopped for arbitrary reasons. And this is unless you know other threads, unless you've done something about this by using a synchronization printer you have to look at your code line by line and essentially say if this code stopped to write to you and some other code ran and made and accessed these data starters, what would potentially happen? And this is this sort of incredibly defensive way in which I have to start thinking that's from a programmer when he worked with the rest of his clients. Something we'll come to later too is that things you know, I think people are tricked into these kind of erroneous assumptions by the semantics of language. So, for example you know, some hard restrictions may be atomic. We'll talk about atomic in a second. Lines of C code are never atomic. We never assume that the line of C code is atomic. You have no idea how that line gets compiled down by and what are the assembly instructions they could put out. So people will say well you know, I added one to this variable and it's just one line of C code so I figured that, you know, there was no way for the thread to be stopped. You know you look and it turns out it's three assembly instructions and your code got stopped after the first one for the second two. So this is the way to think about things. This is kind of like there's certain concepts in computer science that kind of really will mess with your mind. So recursion, I remember when I first learned about recursion, recursion is a difficult concept. It requires a certain amount of new thinking. This is the same thing. If you're feeling comfortable when you're writing some of the parts of the later assignments try not to feel that way. Try to look at them very, very closely and say okay am I making the assumptions that I should make that are up on this line. Now, again I just want to point out, in general these are good things. The reason why we've done this is so that the operands can make better decisions about how to schedule resources. But from the perspective of correct these things can be your head. They can get better. Alright, so let's go let me introduce an example. This is an example taken directly from the preterm exam. This is an example we'll use for all the rest of this class. So, consider this. I've got a thousand, so this is the fact that counts are kind of like the canonical example we talked about, this kind of I don't know why. Look through slide deck after slide deck. Maybe it's because people care about money. So I decided to connect this with something else you guys care about which is the brakes. This gives you some general sense of what my input of ratio is as far as conversion of the dollars and brakes. So I've got a thousand dollars in my bank account. Two of you guys are depositing money at the same time. One of you guys is depositing a thousand dollars. The other is depositing two thousand dollars. How many thousands of dollars should I have in my bank account when this finishes? Four thousand dollars. Not that much. This is really cell phone bank. Can you turn off your cell phones? I laid the point over there. Okay, so here's my snippet of code. Okay? Let's not get into an argument of whether this would compile or whether or not this is a good way to write your sponsor or whatever. This is how some person at your company who may be your boss wrote this. Okay? And what does this code do? Right? First thing it does is it acquires the balance in my account. The local variable. It increments that local variable by the amount that you're depositing. And then it stores that amount back into the account. And then there's this function at the bottom that sends me a little text message explaining that there's more money in my account. Okay? So assuming that there are two deposits that are happening concurrently and they're running in multiple threads on the same machine. Okay? What's the best case scenario here? What's the best case scenario from the perspective of correctness? Well, I want to have 4,000. Yes, that's true, right? But what's the way in which this is going to happen that in some level won't test any of ours on? You want to measure again? Well, okay, specific order, but more specifically what about these two threads? If the threads don't what, then there should be no problems by a guarantee. Right? Anybody? Right, so if these threads just execute one after the other, right, this thread runs and then by the schedule that thread it's finished, this thread runs, then there's no problem here guaranteeing that my final is what I want. Okay? So this is the best case, right? But again, we've created this concurrency monster and so at any point in this program, thread, you know, the red thread could be stopped and the blue thread could run. Okay? So let's go through a little less good example for me. Okay? So what's the slightly less good example? There's several ways that this can turn out. Okay? So the less good example is the red thread starts to run and it stores the balance local. At this point, bam! Contact switch. Do you like that? You working on that one? Bam! This is Jersey. Alright. So now the blue thread runs. Okay? Blue thread stores the balance locally. Okay? Bam! Contact switch. Red thread starts to run again. Okay? And the red thread finishes storing the balance into the account, which is now according to the red thread, $2,000. Alright? What does the blue thread do? What is the blue thread going to do? Well, it's going to overwrite it with what? Because the blue thread has not seen this update. And so the blue thread is just operated on its own local state. It's going to add $2,000 and it's going to store three bets. Okay? And now, you know, there's $1,000, that's just how to call it. Alright? What's the real bad case here? That's a much better question. No, no, same scenario. $2,000. $2,000, right? And I can essentially get to $2,000 by just inverting I can get to $2,000 by just inverting the previous example. So even if I just swap the two threads, I would end up with $2,000. Right? Because let's see here. Is that true? Yes. Yeah, here we go. Right? So this guy gets the balance and this guy gets it and it's also $1,000. He writes $3,000 so for a brief second of time I have $3,000. But then this guy runs and overwrites that balance with his local savings amount just $2,000. Okay? Does anyone have any questions about this? This is important to understand because this is kind of the root of this issue. This is the root of the problem. And again, this is usually done in these cities because it's easier to understand. But what really happens is that this happens this interleave and will happen at the assembly level. And so this interleaving could potentially happen in the middle of one of these instructions. Right? In the middle of the line of C code. So the line of C code might actually compile into loading the register or loading the value into a register for memory modifying the register and writing the register back. Right? So a single line of this code might pile down into three assembly instructions depending on the architecture that you're looking for. But I'm trying to explain it because it's easier to understand for people. This is just sort of race conditioning. Yeah, exactly. So what is this? This is a race condition. And when we talk about a race condition we say that the output of a process is unexpectedly dependent on timing or authoritative data. And the critical thing here is it's unexpectedly independent. We didn't expect that something about how those threads were scheduled would cause me to have either $4,000, $3,000 or $2,000 after the threads took leave today. Right? We didn't expect that. That's not the semantics that we want. Okay? There are cases in which in certain systems there can be timing dependent effects and you just don't really care. Maybe you have to guarantee that you're always... So for example there's not balance from my bank. Right? My bank usually has this disclaimer that says this account balance may or may not be up to date. And there might be actually no race conditions going down behind the scenes in terms of that when I check my balance to find out what things have finished it might be different, it might not show some of the latest things. There can be timing effects that are not race conditions because if the semantics of the operation don't guarantee that I see the latest result right? So again the critical thing in here is this is not what we expected to happen. We wanted to happen in general, again, you know banks should observe the the law of conservation by law of the conservation. Alright and then I want you guys to see I think it's kind of useful to see these things as kind of opposites. It's kind of this attention that's going on in the operation. So concurrency we implement concurrency by stopping and starting at any thread at any time, preemptive context version. Adamicity is something that we require in order to build synchronization primitives and that's the illusion that a certain set of executions that actually require multiple instructions happen kind of all at once, they're indivisible right? Adamicity is a good term it really describes what's going on. When we talk about database Adamicity it's actually about happening or not happening. On the operating system level we say from the perspective of another side that's accessing the shared state all those operations happen all at once and then there's no way for the thread to observe any of the shared state in kind of an intermediate state in an incorrect intermediate position. Like when a set of actions that I want to be atomic are kind of half done but not fully done. Okay? I'm seeing looks that either indicate that you guys are confused or that this is boring or I need to speed up or something. What is it? How many people think I should speed up? How many people think I should slow down? Come on. There's only one other option and I don't believe that all of you think the soup is just right. So show me that again. I'm serious. We can spend as much time as this has been you do. Speed up. Okay? Slow down. Stay steady. I made fantastic soup. I should do make some big soup on the side. Alright. So, again, animosity requires that I be able to stop and start threads but it also, sorry, animosity requires that I give threads some control over how this happens. Right? So, concurrency said, threads you have no control over how you're executed anymore. No control. I can stop you. I can start you. I want to tell you the same thing. Synchronization, animosity requires I think a thread some mechanisms for kind of autonomy. No, no, no, no. Don't let that guy run that instruction or don't stop me until I get to this certain point. We're going to talk about two ways of doing animosity in a few minutes. So, I think there's an interesting side here which is that so you can see that this kind of this tension that I'm building between which we get by adding concurrency and safety which we get by kind of getting rid of concurrency. Producing concurrency. And most modern operating systems have always started with speed and trying to get safe. And that's an interesting position because how do you think you find out about saving problems? Something breaks. Like Windows gets a call from some client says, probably this really weird problem and we destroyed a lot of data and we're getting sued and we think it's because of a bug in the operating system. And sometimes, that's the case. So, there are some new research efforts that are essentially trying to reverse this. So, what if I could build an operating system that was provably correct, provably safe and then work on trying to make it faster. So, in the first case, programmer effort goes to finding and repairing bugs and normally that's usually done after the fact. In the second case, I can guarantee that my kernel has a certain set of properties and then I try to work on making it more efficient. Well, not viable. So, there's a paper a couple years ago where they were actually at a formal correctness proof of a very small operating system kernel. And this took like 12 people five years or something. This was like a massive, massive, massive problem. But they did it and it was kind of cool. So, one of the abstractions that we use to think about this is what's called a critical section. A critical section is an area of code, sometimes we think about it as one function, sometimes it can span multiple functions or part of a function that looks atomic with respect to other threads executing inside that section. And the way we usually talk about this is there is only one thread quote unquote inside the critical section at one time. This is called mutual exclusion. And the guarantee, if we can provide this guarantee, then it allows us to make changes to state that require multiple instructions without worrying about the fact that anybody might observe the statement kind of at the long time. Because we have mechanisms to guarantee that this will all look like one operation. First, okay, so let's go back to our example, right? What is the local, so first question, what's the local state that's private to each thread? Who can identify that? GW has, right? This variable right here. It's a local variable, it's been clarified locally. So where does this variable live? Maybe in a register, but in general, threads that, right? It's that one piece of private data other than registers the threads right? What's the shared state that I'm accessing here? What's the problem? Why is there a, you know, what's the poor coordination? It's focused on what? Balance, balance, balance. Okay, good balance and good balance are functions, but what do they access? The account, right?  January. Did you use that one? Okay, good. Okay, now, here's the big question. I just told you what a critical section is. Who can identify the critical section? One, two, and three. One and three. Any other answers? One, two, and three. One and three. Right? This, this section of code, right? Why is this section in the critical section in this particular example? Because it beats without code. Because it's, it's, it's, it's, it's modifying an account, right? These are three instructions that from the perspective of another thread have to look like they all happened at once. I hold a balance, I modify it, and I write a channel. And to another thread that has to happen all at once, right? Because the problem before was that threads were, you know, basically were able to interleave these executions in a way that didn't produce their practice at all. A thread, so essentially what happened was that the other thread would start running right here, right? And it would see the account balance in this intermediate state. Because once I start this instruction, the next time that another thread can see the account is only once I've finished doing the department. That's the next time that another thread can see the account. This is going to be correct. Okay? Questions about, so the connection between the critical section and that is? Yeah. Joe, what's the, is there a quicker queue for us to tell which critical, like what determines it? Cool. I mean, so so in general critical sections, I mean, one of the one of the hard requirements is they have to modify shared states, right? That's not the only requirement, that's the hard requirement. In terms of, it's a great question. I bet, and I don't know the answer to this, but I bet there are software tools that are built to help identify these sorts of shared areas, right? And figure out what the semantics are. But in general, this comes down to programmer, programmer not, right? I mean, when you write this code, you have to think, what happens if the code stops right here? And another, another code runs. Now for this example, I don't want to give you the illusion that this is this easy. For this example, the only universe of code I've given you is this function, right? In general, there might be other functions. You know, take Guazmula, right? Actually, another good context for this example. Guaz is a nickname of mine. It doesn't really make any sense anymore, but if you want to know why it used to make sense. So anyway, so this is me, if you guys didn't get that. So there could be, you know, take Guazmula that also accesses the account. And in that case, that area would also have to be, we'd also have to make sure that that area isn't critical. So in general, it's hard to say, right? I mean, sometimes you have a critical section that's all organized around access to one shared state, right? And sometimes you have other critical sections that, you know, for example, you can think, you can imagine an operating system's people have really large pieces of shared state. If every time a friend needed to access any part of it that had to, you know, prevent friends from accessing all the other parts, there could be a big problem with performance. So sometimes you could probably reduce the amount of that through able money. Okay. So requirements for critical sections, right? Most fundamental is mutual inclusion. Mutual exclusion, right? No other threat should be in the critical state. I have to guarantee this. I need a mechanism to guarantee this, right? Second requirement is progress. Threads that want to enter the critical state, the critical section, should be able to eventually. If a thread, you know, needs to start executing instructions that are in the critical section and I force it to wait forever, this is not good, right? It's generally trying to do something useful, right? I don't want one of those balances to just stop forever, right? All right, and then performance, right? So in general, and again, this is tension, right? In general, we want to keep critical sections small because they limit concurrence, right? To prevent other threads from executed bodies of code. If that body of code is so large that there are large portions of it that that thread could have executed safely, then all I'm doing is I'm taking, you know, a multi-core machine or a multi-processing machine and I'm essentially reducing it into this machine that is much less parallel to what I would be, right? So again, the most broken way of doing this would be to say the entire kernel is a critical section, right? As soon as I enter a system called no other threads can run inside the kernel until that call finishes, right? But then, you know, I'm sitting there waiting for this guy out of the finish, right? That's terrible. No one else can run. So again, I mean, there are solutions to this problem. So for assignment 3 people have, you know, and it's not terrible solutions unless you tell people to use it, but there's one way of solving the assignment that essentially just has a huge locker on the entire VM system. And it says, you know, if one thread is executed, we just stop everybody else. We manage to mess that up too, but that's not necessarily a great idea. It really limits the form of the update. So there's two approaches to implementing, there's two mechanisms for implementing a critical section, right? One of them is quickly right now. So one mechanism is when a thread is inside the critical section, allow that thread to not stop, okay? So don't interrupt that thread, don't deschedule that thread until it exits, okay? The other approach is, I mean, this is my terminology, I call don't end, which means that when a thread is inside the critical section, use some way to keep other threads from entering that critical section, okay? So based on what we've talked about, how do I implement don't stop? It's actually up on the slide, right? Ah, here we go, someone's been reading the source code. Okay, so I'm a uniprocessor system, right? And again, this is kind of only of historical interest because on multi-cores these things just don't work, okay? But on a single-processor system when there was only one thread running at a time, if I could prevent that thread from stopping, by definition no other thread could be in a critical section, right? So whenever the critical section, I just don't stop executing the instruction. If I do that, then I'm okay, right? The only reason for that is that there's only one thread of execution running on the entire system. So on multi-cores this doesn't work, right? The way I do this is I do this by disabling intervals, or masking intervals. And that means that the hardware interrupts that would normally cause the system to schedule a new thread are not processed. And they're not processed until I leave the critical section and allow the system to start scheduling other things, right? Again, this design pattern is historical interest. The other thing that people would frequently do, right? The other reason why this doesn't work in many cases is, remember, I can't stop, right? Inside the critical section. I can't do anything that would stop. One way I would stop is a timer would fire and the kernel would stop. But the other way I might stop is I might do something that causes the kernel to stop me itself. So I might do this guy out, right? And I might voluntarily stop executing. So, you know, back when OS 161 was a single-processed system, we would have cases where people would think that they were implementing a critical section by disabling interrupts, but they would call a function that did I up and that function would actually cause some other thread to be skipped, right? And so they didn't get the kind of critical section that they were looking for simply because they weren't stopped preemptively. They asked me to stop. They called a function to ask the kernel I'm stopping because there's something I have to do that's going to take a little longer. Okay, so more generally we need a way to force other threads and so we'll review this at the beginning of class next time, but let me try to get through it a little bit, okay? The way we do this is we ask hardware for help. And hardware frequently provides one of two different atomic instructions. Now, in the interest of making sure that I don't confuse anybody, these are C implementations of these instructions. But this is not how you would implement them in hardware. This is just to show you what would work for me. But what hardware does, it looks like a test and set, right? So a test and set says I pass you a memory location and a value. And I want you to write the memory location but return the value that was there before you wrote when I asked you to write. Okay? And the system will guarantee that this happens automatically. So two test and sets happen in an interleaved set of variables of different things. The processor guarantees that the first one will execute completely before the second one. So questions about test and sets. Again, normally implemented like this, this is not a tough, right? Not a tough in any way. But what happens is that the CPU provides an instruction, a test and set instruction that guarantees this animosity through various tricks in hardware by locking buses and doing all sorts of things. Right? One of the things about these instructions on hardware is they tend to be fairly difficult because, again, at the hardware level, they're destroying. At the software level, they know it's okay but at the hardware level, they're actually destroying a hardware currency that happens behind the scenes. So generally, it's a program where you go to do it. Okay. I'm not going to talk about compare and swap because I want to get through this, right? But most processors provide either a test and set or compare and swap. On other processors including the MIPS that you guys are going to use, you can see that David has implemented a test and set for you in C using two MIPS instructions that themselves have animosity guarantees. So I encourage you to go look at that. I can point out, maybe first on one. I think I'm going to sign along with my point out where that code is and I would encourage you to go look at it. Okay, so let's try to finish this example using a test and set. Okay? So what do I need to do? I have this critical section which is lines one through three, right? These lines. So what do I need to do? Remember, I need to stop threads that are starting. Okay, so let's try this example, right? So I create a share variable that I'm going to use my test and set to change, okay? And then what I do is, when I start the critical section, I set the test and set to one, right? And then when I finish my critical section, I set it to zero. So I'm using the test and set to tell all the threads hey, I'm inside the critical section. Does this work? Why not? Because you're not checking the value, right? This just continues, right? So what do I need to do here? I need to check the value, right? Okay. So how do I tell if another thread is already set? So I have to use the return from test and set, right? Remember, test and set returns to old value, okay? So now here I'm going to test the value of the test and set, right? If it's one, it means that there's already another thread inside the critical section. So what do I do? Well, I, okay, I don't have any way of sleeping. Have I told you anything about sleep? That's a good answer, okay. But for this example, there's no sleeping, right? What do I do? I just check it again, right? So this is a valid way of doing this, okay? This will actually work. Of course, as you guys probably are starting to think, it's okay, right? So what are the problems? Right? And then I check this over and over again. So does anyone, everyone see how this works, okay? When the thread is inside the critical section, the test and set will return one. And I will continue to wait in this loop. As soon as the thread exits, it will send it to zero. Only, because test and set is guaranteed to be atomic, one thread that is waiting will get the return value of zero and proceed. And it will set it to one, and it will just keep getting one. So again, the hardware guarantees that one thread will be able to set this to one and it will turn zero. So is this like zero and one value we're setting, just a special register? It's a shared game, it's right up here. So this is some kind of regulation, right? That the test and set operate. And then the set and test just ensures that that entire thing gets done atomic, right? So what I don't want to happen is I don't want this guy to set it to zero, and that's to get the return value zero, because they'll both think I can go in. So the hardware guarantee is that no matter how many threads are executing this start talking over and over and over again, even on multiple cores, right? The same time, not even the spoken currency that I created using projects, which at the same time, right? One of them will get zero and the rest will get zero. Every time I set this to zero, the top will return one once. Sorry. And then for one thread, once, okay? And how does it decide which one gets zero? Don't worry about it. The scheduling, yeah. We'll just pretend that hardware does that properly, but hardware test and set will require to implement some of the features we talked about in the critical section before. So there was one thread on one core that was never able to set the test and set, that would be good. So again, we're going to go back to this on Wednesday, but the problem with this, as you guys would probably see, is not the slowest. So here's what happens, right? The red thread starts to run. It's the first thread in. It sets the test and set and breaks out of the loop. Test and set returns zero. What does the blue thread do? Let's say I have an inter-processed system, the blue thread starts to run. I just showed you.  It gets descheduled and the red thread and clear the test and set at which point the blue thread is going to progress. So on a unit-processed system, these primitives, if they're not used carefully, would be terrible, right? Because what's happening here? The blue thread is not performing any useful work. It's preventing the red thread from performing useful work, right? Because this guy is just going to spin until his time clock runs out at which point the red thread. All right, so again, we will come back next time to this story. Thank you. All right, and I'll see you guys next time. I'm going to take this off.


In this video we will discuss unstable nuclei and how they can decay towards more stable nuclei. Whether a system is stable depends on the energy of the system. Take the example of a ball sitting on the side of a hill. Is this a static system? Will the ball stay on the hill? No. We know that the ball will move to a lower energy state on the hill, gaining kinetic energy in the process. There are two important points regarding this situation. First, the motion of the ball is in a loud process, since gravity can pull the ball down the hill. Second, the kinetic energy given to the ball is a result of the work done by this gravitational force. The stability of nuclei is governed by similar considerations, with one very important extra point. That is the equivalency between mass and energy that was first formulated by Einstein in 1905. This is perhaps his most famous equation, equals mc2. Let's look at some particular cases of nuclear decay. Consider three atoms that all have 40 nucleons in their respective nuclei. These are potassium-40 with 19 protons and 21 neutrons, calcium-40 with 20 protons and 20 neutrons, and scandium-40 with 21 protons and 19 neutrons. Each of these atoms have a mass that can be measured, and the measured masses and kilograms are shown. While they are very similar, calcium-40 is very slightly lower in mass than both of its neighbouring mass-40 atoms. Since e equals mc2, if there is an allowed physical process that could convert potassium-40 into calcium-40, this change could lower the energy of the system, and the process might be spontaneously possible. Similarly, there could be an allowed physical process that converts scandium-40 into calcium-40, lowering the energy of the system. Note that the total energy still has to be conserved, so such a process must emit something that carries away the loss of nuclear energy, similar to the ball on a hill that ends up with kinetic energy.


Thank you for coming to this Unity Week event so my name is Cynthia and I'm part of the Unity Week committee member. I'm also a student leader in the ICC, the Intercultural Center. I'm here to introduce Tracy Rekker. Tracy Rekker is the executive director and co-founder of Longhouse Media. In the past 11 years she has facilitated work with over 3,000 youth and has made 360 short films and is currently in production of her third featured documentary. Ms. Rekker earned her master's in education from Antioch University's first people program. She specializes in Native American studies, traditional plant medicine and documentary film. So give it up for Tracy Rekker. Good morning. It's really good to be here. I've heard so much about this campus and this community so thanks for welcoming me. My name is Tracy Rekker and I'm an independent filmmaker and an educator and a major part of my life is the Native community working within, supporting, educating around, creating stories with. I love being Native. I love being mixed race. I love doing this work so I'm just here to share that with you. I start off normally by acknowledging the first people of this land that this is Indigenous territory we're on so I just want to give it up for that for a moment. Do many of you know who's traditionally on these lands in Highline and Des Moines? I'm guessing maybe Muckleshoot. It's the traditional Indigenous people so I encourage you to learn more about Muckleshoot and all the tribes that reside within this region. All right so I'm just going to tell you a little bit about my life experience and how I came to be a filmmaker and I'm really hoping that we can dialogue and that I can learn from you and you can ask me questions and that we can go back and forth. I'll talk a little bit and also show you some of the films that I've worked on. I am going to start though with the film. My very first love is the environment, the earth, plant medicine. That's where my heart is and so the first film is a story that I do with the Snoqualmie tribe and the Seattle Indian Health Board and it's trying to work with young people to learn plant medicine and it's intergenerational so I'll start that up. Montreal and today we are over in the Cabin Creek Zone which is just beyond Snoqualmie Pass gathering blue elderberries for medicine. So I had no idea how to collect elderberries, what they were, what they were used for. Now I know how to harvest them and I know that they were traditionally used to heal infections, viral infections. I get to learn new stuff that I don't really get to learn in school like learning about what berries you can eat. They haven't been fully produced yet and the blue ones mean they have been produced all the way and they're ripe. They learned quickly and have a good eye for what's ripe and what's not. This is a brown blackish one, such green. Well you have such a good eye, you're right. Take that one off and I'll put that in. And just got better and better as they started to harvest and got used to the tools and have been sampling what they're eating and did a great job returning the unripe seeds back to the land so that we'll see more elderberries here someday. Like I'm just rubbing, I just rub them, I go rub, rub, rub, rub, rub, rub, rub, rub. And there they go. The leaves go to compost but not in the garbage and the greens, the green berries go for seeds to make new elderberry trees. Where would you like to see more of these trees? By the sand a little bit. A little bit by the sand? Do you think they're going to like the sunny spot or the shady spot the most? I think you're right. They're naturally curious about it and that's the way that it should be. It's really really cool because you know you have that connection with your ancestors in your past and it's something that you don't get to experience in your everyday life and so now when we're just out here with the earth, with the air, you know it really lets you realize how lucky you are to be in touch with all this information that's been passed down through the ages. As tribal people we identify with being the people of land. We really learn from the land, I think is vital. These medicines have been here since the beginning of time. These medicines have been gifted to us as Indigenous people. We have stories and songs and prayers related to this, how we gather this and we have used it for our health and wellness. I think that's how our people survived is by transmitting this knowledge from ourselves or what we learned from our parents, our grandparents, even our great grandparents. Obviously all this new information that I have, it's something that I'll take with me and something that I can pass on to my children in the future, all the generations that come after me. I appreciate the diligence of the people of Snoqualmie tribe to keep some of these traditions alive. They really believe in this way of life. That way is still a viable way. It's still okay to be able to use our traditional medicines and so I'm especially grateful to them. Well I just appreciate the class for holding their reign so it doesn't rain and we have to work in the rain picking berries and helping everyone else pick berries. Just get out there and really see what your ancestors lived, what they ate, what they experienced because it can really show you how to make your life better and how to experience your life in a more natural way. Alright so I was on an 18 hour film shoot yesterday so I'm going to sit. I was on my feet all day. So I'm a do-it-yourself filmmaker. I'm completely self-taught. My work is absolutely community driven and I just jumped in and was lucky enough to have a ton of mentors. How I came to this work was I will go back a little bit and share with you kind of my upbringing and just my history as a person. I mixed race. I grew up in a household full of dysfunction, alcoholism, abuse and for me the main way to just check out and escape from that reality was into TV. And I watched so much TV. I woke up. I got myself ready for school. I went to school. I came home and watched TV and I was just, that was my relief. And interestingly enough that education kind of essentially brought me to be able to critically analyze story and to understand what media was about. And interestingly enough in the 70s there weren't people on TV that looked like me. So, and I remember being a kid and realizing this and I ended up just loving characters like Wonder Woman or Doctor Spot because they were the only mixed race people on TV at that time. And so, but they're not real. That wasn't reality. So kind of fast forward. I was working in a domestic violence shelter and really trying to do that work to heal myself with helping other people. And it was really hard work. For six years I worked with women and children essentially who were in the same situations that I grew up in. And through that process I decided to change my path of healing and I started working in an apothecary in an herbal medicine shop. And I came to understand that it's really important to get a formal education especially around that work. And so I went to the Evergreen State College. And there I was working in the garden of a traditional elder named Bruce Miller. And while I was in the garden PBS came to do a story about him. And he said to them, I'll only let you do a story with me if you have one of our people work with you as an intern because our people need to learn the tools to tell our own stories. So he told me to work with them. I was like, I know nothing about TV. I'm just here in the compost working in the dirt. And he's like, you have a connection with young people.  And film and media is just the contemporary modern way of sharing oral history. So that's the way to connect with the young people. So as I was taught when your elders ask you to do something, you do it. So I said yes. And that was 14 years ago and I'm still a filmmaker. Really fortunate that he helped open that door for me and shine that light. So here I am. I'm making films that combine young people, combine healing, combine the earth. And that's really exciting. I love my job. Like I said, I spent 18 hours on my feet yesterday at the Squaxin Island Reservation and I feel just so fed and healed doing this work. So I found my path. Any questions? Any of you interested in media or film? Back there? Yeah. Are there any specific aspects that you're interested in that storytelling? And I don't know if there's a mic to pass around. Okay. All right. If you want to. Otherwise, yeah. So I was just wondering while I was in here listening to you. As a filmmaker, are you independent or do you actually get subcontracted out or do you work for let's say like PBS or something like that? Great. Good questions. So breaking into this media field, it's highly dominated by wealthy white men. That's just the honest truth. 26% of the people in film and media are white men. So for me as a woman of color, wow, it's so hard to break into this industry. And I had to just be persistent, stubborn, working two times, three times as hard as anyone else. So a lot of my early years, I don't know if I slept more than four hours a night for maybe the first seven or eight years. I just worked, worked, worked, worked, worked. And the results of that were my pieces were seen on PBS, National Geographic. I got to go to Sundance and the Cannes Film Festival and all these really big, high level kind of high credential spaces that filmmakers really try to work towards. And I had to do that hard work just to get basic acceptance. And it always remind me, I don't know if you ever listen to Chris Rock's Stand Up Routines, but he talks about the area where he lives in New Jersey. He says, you know, I'm the top of my game. I'm this comedian that's known world over. My neighbor, I forget who his name was, like St. Jay-Z or something. My neighbor top of his game, a billionaire. He's like, who lives down the street? It was another amazing person. It was the top of their game, African American in the industry. He's like, who's my neighbor? A dentist. And he said, in order for us to even just get our foot in the door, we have to be at the top of our game, just to be considered equals. So that's the work I initially did.  And then I got to the place where I started just calling the shots for myself. I stopped accepting any sort of corporate money because I did not want to have that control or that influence over my storytelling and have just learned the power of collaboration. Oh my gosh, community is so generous. And when you learn to collaborate to tell stories and understand that filmmaking is a team effort, it could make magic. It's amazing. And so now I'm just driven by rewriting history, telling our own stories. I'm an independent filmmaker. I work under some grants, but usually I will do some small contract jobs like this for native nonprofits or tribes. And then that helps me to pay for other projects that I want to do. Thank you. I would call that exceptionalism. We have to be exceptional as people with color to rise above that. Truly. It's awesome. Thank you. Yeah. And you know, that's part of my philosophy, too, is that, wow, I've worked really hard for the position I have today and the opportunities I have today. And I did not do that alone. I had so much support along the way. And so I see as my responsibility today is anytime I have an opportunity, I try to bring at least one person along with me and try to scaffold, you know, once I see those doors open, I know it's critical to bring other people through that door with me because we need all the support we can generate within ourselves especially. Other questions? Okay, so I want to show you another film. This is for, it was a work for hire for the Samish Nation. And we went on canoe journey with them for three weeks. We paddled from, well, the total journey, we paddled from Olympia all the way through the channel around the coast and down the ocean side to the Quinalt Tribe. It was a huge adventure. And as part of that adventure, the Samish Nation, they are located right by Anna Cordes. We did a little story about their experience on canoe journey. And thank you for letting me run through the media finding the pieces for you. Okay, it's the next page. And this is the Samish canoe family. You carry strong teachings from our ancestors. Strong discipline to be here. As well as shawalakwa. We're strong. We believe in our spirit. We endure. We've all endured strong teachings from our ancestors. I marked each and every one of you with a strong prayer. I'm not marking you for a shawl. I marked you for your voice, your breath, your eyesight. We're teaching our younger ones how to sing, how to speak. They're our future leaders. We can't show any disrespect to what's going on. We can't be teaching them the wrong way. Because they're going to be leading their children, teaching their children. Questions? Yeah.  It's like when they pick up berries, they are just coming off the trees. And then some of the people from any culture in a place that's there in the ocean and outside where people are in their hands. I never have a choice not to eat berries. I never eat those kinds of things. But I see those kinds of words are showing outdoors or being outside or stuff. And what was the film all about? What was it about? Yeah. The second or both? Both. Sure. Well, so interestingly enough, so Elderberry, the first film, that's a story about those blue, purplish berries that you saw that they harvested from the tall trees. So Elderberry's aren't even indigenous or native to North America. They come from Europe. But they're a great example of native adaptation to survive. Those trees came over with the birds that the colonizers brought and the boats and everything else and quickly spread across North America. But indigenous people came to know that those berries had powerful medicine and they're one of the most popular plant medicines in Europe, actually. And so it's a really cool example, actually, to see how native people were able to say, all right, this is here, what can we do with this? And make powerful medicine for the people. So that's what the doctor was teaching those students there that day. She was letting them know this is not North American plant medicine, but it's here and it's powerful. So I'm going to teach you how to harvest it and learn how to use it. So that's what that was about. And then the second film was about actually language and about cultural revitalization that canoe family was committed to practicing their culture and their language. I don't know if many of you know how strong the restrictions and rules were for the native people here for many, many years. So it was illegal to practice culture. It was illegal to speak language. Many native people were taken out of their families and their homes and forcibly placed into boarding schools. Some estimates are about 80% of all children were taken from their homes and put into boarding schools. So much of the training in those places were, cut your hair off immediately, wear these settler clothes, learn how to cook so, do agriculture so you can be productive in society, assimilate, assimilate, assimilate, and above all, do not speak your language. And so that effectively really severed many people's tie with the language. So a huge component of canoe journey actually is cultural revitalization and practices and bringing back the songs, but it's also a time to cherish and honor and speak in the language and teach one another the language. So that was what that was about. That's a layers. Thank you for your questions. Other questions? Did any of you know about the boarding school experience? It's a huge part of American history and honestly not many people know about, unless, yeah, not a lot of people know about it. So this was in, gosh, about 1890, all the way up through the 60s, and then Canada, the 70s, where people were taken from their families and placed in these schools. And it was an actual federal government policy and above the schools. This was, can you imagine coming to school and seeing this as you walk through the doors every morning, kill the Indians, save the man. That was the motto of the time period. Yeah, and it was a federal government policy. So the healing is still happening. I'm working with students whose grandparents were in the schools, whose parents were in the schools, so we're not far out from the trauma of those experiences. And a lot of my work actually is kind of like the compost work that I was doing in the garden. It's taking these pieces and these discarded components and putting them in the ground and composting them and changing it to something fertile, something that can be utilized and transforming what has been done to us as Native peoples into now a strength and a positive to draw from. So my question is kind of complicated and I'm going to try to state it clearly. I'm thinking, sorry, a lot about assimilation and concerned about the amount of people in various areas that are assimilating more and people who are not continuing to teach about their cultures and languages, whatever it is. And I'm wondering if your work is more concerned with and if you have ideas about just providing methods for cultural education for people who are already seeking it or if there's a component that seeks to validate retaining cultural practices? Yes. And can you explain or describe that? Yes to all that. So my personal thoughts on that and my hopes for this work is that when I started doing this 14 years ago and working with young people it wasn't necessarily validated within people's peer groups and circles, young people's peer groups and circles speaking the language. A number of the students we worked with were kind of actually embarrassed to be Native and I think Sherman Alexi said, you know you're really Native when there's a point in your life you wish you weren't. And I think often times as people of color we understand that feeling of being pushed out or just wanting to belong. And so we noticed this in many, many of our young students and so we purposefully started drawing from the language but then also drawing from pop culture and their reality and so for instance bringing on hip-hop artists who could incorporate their language within this art form. And so that actually, you know, the students told us that made them feel respected in their culture and in their interest but then once those films started getting out there on TV and people were recognizing them at powwows or other community gatherings they started feeling really excited. I mean they were getting immediate validation from their peers and started taking more and more interest. So that's part of some of the education that we've advocated for was meet students where they're at. It's really critical that youth and young people and disenfranchised people feel that they are met and accepted at where they're at in the moment. With that though, I also in my program Scaffold Opportunities where I don't make exceptions because often as a woman, woman of color, filmmaker, people are like oh, we'll just let her do a half-assed job just because she probably needs the help. I don't want that. I want to be pushed to be my best self. And so some of our students we know this in school, they're kind of able to escape by and not do the work they really can do. So in some of our programs that's culturally appropriate, we really set the bar high. And we let our students know you can do this work. You have the capability. And in nine years of our youth programs no one's ever dropped out. Everybody's been able to do their work at various levels and with peer support it's always been amazing. So that's part of the push in terms of working against assimilation and just really helping the individual recognize that within them, themselves, they have the power and they have full potential to be anything they want to be. But always circling that with community. I hope that answered a little bit. Other questions? As anyone, oh yes. I just want to commend you for talking story because it's really important in today's society to really talk story. And it's becoming a phenomenal thing now that people are acknowledging the importance of talking story. Because as a little girl I was talked story to from my grandfather. He was citizen of circle and he would play the guitar and he would talk story to us. So I know the importance of that. And today a lot of parents are not teaching their children their language. They talk among their friends and they talk among their family members. So I would encourage everybody to learn your language and be proud of your culture. Every piece and every inch of you honor it. Because without your ancestors and the people that came before you you wouldn't have the liberties that you have today. So I commend you and there's a lot of work that needs to be done so that we don't feel the pressure as people of color and no matter what the color of your skin is to assimilate but to own who you are and be authentic self and honor yourself and others. Suspend judgment ego and leave it at the door. I got to speak at this pretty amazing conference. I had no idea what it was. It's called We Women Empowering is it? Oh, Why We? Young Women Empowered? Anyways, amazing. It was my first time being exposed to it. Y-W-E on social media. And in the room, oh my gosh there were aroma speakers, check speakers, Spanish speakers, Pigeon speakers, Native Hawaiian. So much diversity and it was one of the most amazing circle times that I've been in the last year. Just women sharing story talking about their cultural lens, the way they see the world and how their experience is completely unique and individual. It was so incredibly powerful. And I'm a firm believer. Let's be in community. Let's get together in person like this. Let's talk because I think that is a powerful act of rebellion. Especially in this day and age where we're just being pushed apart and separated and commodified. Let's remember to get together and remember our humanity as people. Any other questions? Yes? I have two questions. One is could you talk a little bit about the challenges or barriers for Native Americans to achieve higher education? And the second one is what would be your advice for students of color that face racism and oppression in college campuses? So opinions and perspective on Native American education challenges? Okay. So you've heard of the dropout rate in general. Okay, that term. So in Native American Indigenous communities we don't call our students or refer to them as dropouts. We talk about the push-out rate. That there is just not enough support and true understanding, culturally appropriate understanding to ensure that those kids are succeeding. Native Americans have the highest push-out rate of any cultural group in this country. Estimates are that about 64% of all students are pushed out by the end of high school. It's really sad and scary. And again, thinking about the boarding school experience, many of those students' parents were incredibly traumatized in boarding schools. And there is a way that they are disengaged from the school process and there is not that immediate support in the home or that positive connection to a school or academic experience. But also just the assumptions and stereotypes about our students is pretty profound and runs deep. One of our students, Travis, on the Swinomish Reservation we worked with for a long time, he was in our program, I think it was about the third year and for his health class project, he decided to do a film. And he wanted to do a film about peer pressure and drinking. And so we asked him, what kind of messages are you getting around drinking, underage drinking, peer pressure, and are they working? So we always hear, don't do it, but we're going to do it. And we always hear, oh, it's not fun, you shouldn't do this, it's going to, you know, lots of scare tactics, but much of it was just, don't do it. He said, the truth is, is that you want to belong, it can be fun, and we're at a stage in our life where we're rebellious, we're going to do it and we'll not do it. And also the influence of family. He said, the first time I was asked if I wanted to drink at 10 years old, it was my uncle. And so we're like, all right, so let's work with this. So the film, it's such a tear-jerker, and it was really controversial, actually, when we put it out in the world, but it's these two best friends, they're driving off to just kind of a field and the one friend's like, come on, drink. It's fun, just do it. And the other kid was like, nah, I'm just going to stick with my tea.  Real men drink. You know, all of those typical peer pressure tactics. So finally he relents, they drink. There's this whole scene, they're having fun, they're tripping in the field and laughing, throwing up. And so he started introducing these components that are kind of gross, that in a way binge drinking, it's not really sexy. It's not really pretty. So he's like throwing up all over each other and falling down. And finally at the end of the movie, it was time to go home and the one friend said, well, I'll drive you home. And Travis's character, he's like, no, I'm not going to go home with you in a car, we've been drinking. So his friend drove off and was killed in a car accident.  He says, I go to 10 or 20 funerals a year because of this exact situation. And that's the film that we made. And man, so we got, he got so many accolades and so much just, you know, ups about telling the truth, speaking the truth and how powerful that helped people rethink their decisions. So anyway, so he took this film into his health class as his final project. He talked about why he made the film and the inspiration being watching his sister get hit by a drunk driver and dying, showed the film and then talked afterwards. His teacher started crying because she said she had no idea he could even speak more than two sentences. She thought he was so developmentally delayed that he just was not able to communicate well. And so she was just always giving him passes. So that's an example of that chasm of understanding that impacts our young people in school. It wasn't that he couldn't talk. He was severely depressed. Both of his parents were dead. He saw his sister die. Did anybody take time to ask him what his reality is like at home? No. So I think that's a huge issue in Native American education today for our young people is cultural appropriate education and influences real stories, authentic stories, and adequate support and community support as well.  Wow. I mean, I can only speak from my personal experience, obviously, and maybe my personal observations. And I'd actually like to hear from some of you, if possible, because I graduated school in 2004, so I'm sure the campuses are very, very different. I went to Seattle Central for two years, and that was an incredible experience because community college in the heart of Seattle just brought together so many people. And Seattle's very, very white, and it was almost like we were this kind of little island, this heavenly island of everybody together, and it was very supportive. So I came from that experience, and then I went into Evergreen. My first year at Evergreen was at the Tacoma Evergreen Campus, which is a historically black campus, and my dad's half black, so I wanted to really be in touch with that part of my family and ancestral history.  So that was my second experience, and then going to Evergreen where I got to write my own curriculum, make my own path, and I chose Native American and communications, so I just worked with the Native communities there. So I kind of called the shots, but I think I'm stubborn that way and made sure that I was in those positions, but that's not everyone's experience, obviously. I advocate for speaking your truth. I advocate always for not relenting. I advocate for authenticity and camaraderie and solidarity. I show up at marches in Seattle for Filipino community issues or Asian community issues. I show up for your fellow peers on campus, be in solidarity, because that's how we can move forward and move that needle, because that helps all of us. My son's experience is interesting, so I'm curious about college campuses. My son, being mixed race, he had long hair all of his life, and he recently cut his hair and he got into a new high school, and nobody there recognizes him as a person of color. He was just telling me this the other day. It's a really strange experience because never in my life have people made comments about people of color around me, and now I'm around people and they actually make racist comments all the time. Like, no way. You're basically passing. They have no idea you're a person of color. They're like, nope. Only people of color at my school, and there's only 5% for people of color, actually see that he has a rich cultural history. So that's fascinating, too, that there's another reality that happens outside of our experiences of people of color. I would like to hear about your experiences if anybody wants to share, though. Is there work happening on this campus to address those issues? I mean, it's hot in the media right now on so many levels, especially in terms of equity. Nice. Yes. It's me again. Excuse me. So, Highline College here is 74% people of color. Wow. So, and we have Center for Leadership and Service slash Multicultural Affairs, which is all student leadership and stuff, but it's all based on, well, I could speak for Multicultural Affairs. I work in the Intercultural Center and all our programming is some of the wellness stuff, but it's based around social justice issues and stuff. So this college is all about social justice, this particular college. I believe Doris, maybe correct me if I'm wrong, but we're like the fifth most diverse college in the country. Wow. As far as that, top five, I'm not sure about that. It seems like I've heard that, but no. We have to double. But I mean, you know, at 74% students of color, it's got to be up there. So I would say, you know, and so like, I'm sorry, she was saying we have all these programs like the Diversity Week and, you know, we're just really big on that, on the equity and everything. So I'm a student here and I love this college because of that. And it's really, being here has sparked my social consciousness. Like we just got back from a students of color conference and Highline, I believe has the biggest contingent that goes to that. Heavily involved. We're all over, you know, up in there. Doris Martinez is on the committee, right? For that. So, you know, she's the director of Multicultural Affairs here and Highline. So yeah, we're big on it here. It's a great school. So something to know, there might be a wave coming your direction. Seattle is the fourth widest major metropolitan city in the country and getting wider every year. And I was talking with a Black Lives Matter activist just two weeks ago. She's one of the biggest activists in Seattle organizing people. She said, it's getting to the point because so many people of color cannot afford to live in Seattle anymore. So many artists cannot afford to live in Seattle anymore. They're all moving south or north. She's like, it's hard to organize because just the sheer masses are no longer in the city. And she's like, people can't take buses for two hours all the time and show up and, you know, people have jobs and kids and she said, that's something that's just drastically changed within the year of her organizing. So that's something to keep in mind the work that's happening here, the people who are moving this way, that those voices still need to be active and heard and it's happening less and less in Seattle because our powers are being dispersed. There's no longer that center space. So I hope that work can happen at least, at the very least, within the county and their surrounding counties and institutions like this. Yes. Hi. I came from a small town just south of here, and I went to a high school that was predominantly white and we had a very, very small color community. And so it was really interesting to come here and to have so much diversity and everyone from everywhere and it was just really cool to see how and there's, at my school, there was no bullying probably because we all were just so chill. There was no really huge issues about bullying and from what I've seen here, I haven't been on campus a whole lot this is only my first year here but I don't have never seen any bullying or any large issues here with all the diversity and so it's just really cool to see everybody all getting along from everywhere and it's just really cool to see that. Hi. Okay, I gotta clarify something. So I'm a Highland alumni and I'm very proud of that. And yes, Highland, it's all about diversity and social justice but I recently transferred to UDAP Tacoma and that's a different story. So I feel like so it's a struggle for the students of color and actually the dropout rate for transfer students and especially students of color it's really high. So it's a lot of like hit or key and if you don't have a title your voice don't matter. So it's really hard to be part of where the decisions are being made in behalf of the students and they don't have a student's voice or students are not allowed to be part of that. It's real in academia. For sure, thank you for sharing that. So I am wondering a lot about what experiences students have that aren't really actively involved in the intercultural center and coming to events and thinking of like when I teach a diversity and globalism studies class world literature that some students share wouldn't say something offensive in class but sometimes the things they're writing reveal a lot of their biases and sometimes they just say like really incredibly offensive things about cultures that we're learning in the class and in a diversity and globalism class where that's what we're trying to break down and so I just wonder about like what is going on beneath the surface and how in a place that's very diverse it's an unfriendly environment for someone to have and to speak out of their offensive views but I think that there are sometimes maybe other ways that we're judged and wondering like having experience as somebody starts passing how they may be treated differently or what experiences people have that are less involved in the campus culture and you know when we come to these events like the whole class comes sometimes when we're leaving or outside of the hallway in my classroom some of the conversations I hear students having just hurt just hurt and so I guess I wonder about those experiences too and if there's ways we can kind of share the other views so we can deconstruct it again just my own perspectives and opinions I commend you coming from a primarily Caucasian world view and experience and being surrounded by this rich community full of so many diversities people of color and immigrant populations and I'm a huge believer in nurturing and teaching and educating potential allies and allies because we need that as part of change I'm also lately I've been kind of fierce about this it's been fun so there's so much talk I am a Seattle Arts Commissioner often in these kind of political meetings on that kind of level there's so much talk in authentic sincere talk about equity and diversity and so often times I'm called in as the person of color and I'm often the one person of color all the time well Tracy's here so we've done our job and often times the questions ask what can we do to bring more diversity to our organization our committee or institution our panel etc so I've been really fierce about turning that back on them and I've been very vocal by saying alright I'm not going to do the work for you you need to do the work so I give that homework to these grown people and say our next meeting I want you to come back with some solutions and that has been really effective and I feel very much in power and it's been driving more dialogue interestingly enough and often times these people who often times haven't had to have those discussions or have not been feeling safe often times or feeling like they'll mess up or say something wrong bring some interesting ideas back about it those have just been personal experiences really fostering allies and I have to say compassion I've been lucky to be surrounded by so many elders and time and time again the truly wise ones talk about compassion and through that compassion and just radiating that love and following through the gritty that often times that really brings people around or softens them up so you can at least start addressing so maybe uncomfortable ideas that they're holding have been exposed to so I've been fiercely compassionate and speaking the truth other questions yes I like the color of your shirt by the way so I transfer from the really white dominant community college and when I go to Europe Tacoma I see a lot of people of color and have been known, it has been one of the most diverse college or university in this country however the people who in power of the constitution is still matured, is white and the way they do things is still as the way they present the whole student body and one thing I feel bad about it because when I go to university I don't think there is much diversity class or program required for students at all which I think they should be educated before they get out of school and go to the real world so we have something, have chance more students of color go to school but the diversity course haven't been as a requirement for people to take so some students they just keep it and they have no understanding about people and they just become a real future so that's kind of bad so I don't know how can we change that in the future, that's my thing so the lack of role models I would love to see that I mean I I would love to see those sorts of requirements there is some at the Seattle arts commission there is some work happening where there is 44 commissions in Seattle and we are the first and to my knowledge maybe only one of two that have taken diversity training so I think it's really interesting that the arts commission is embracing and wanting to learn the tools of diversity so some of the work we are doing is we are requiring any contractors to have a certain percentage of people locally do the work within certain neighborhoods and areas we are also requiring the organizations that we work with have some sort of diversity plan or social justice plan and I think that would be a great idea for academic institutions and schools is to either have a required class as a base knowledge of just understanding the shifting populations and social justice and equity because it's all really about education and planning the seeds maybe it's not going to take right now but it's at least having the access to that seed I think it's greatly important I always advocate for starting locally so if you feel safe that you have a community to make those requests I would say act locally be stubborn just it's hard hard work but I just really strongly encourage you to persevere because it will make change even though it doesn't feel like it's going to make change in the moment it will make change so I want to share with you one or two of the student made films and also I want to share with you just some information potentially if you are interested in becoming a filmmaker or just interested in learning some technology yesterday was my very first time working on a virtual reality film project and have any of you been aware of virtual reality a little bit with Google Cardboard okay virtual reality is it's going to be the next huge gold rush and I really want to just state this here because this information is not getting out to the first communities virtual reality is going to be the way our whole future is shaped and the technology is happening now so I really want to encourage you at the very least to go home and Google virtual reality stories go to riot r y o t check out their virtual reality films will give you a sense of what I'm talking about basically these cameras are 360 so it's a complete global view of the space and when you create the film or the story you put these goggles on and it's as if you're standing in that space so it can transport you to Brooklyn or Nigeria or this classroom and you feel like you're standing there and you can look all around yesterday the work we were doing is going to be the very first Native American indigenous virtual reality film ever and the only reason that's happening is I just happen to be friends with someone and he just happens to believe in the work that I do and he's followed that for a while so he taught myself and one of the Native filmmakers that I work with yesterday how to do this technology it's it the so I said at the beginning of today 66% of people in film and media in control really of our reality and what stories are told are white men this virtual reality this new media is going to probably turn that to 98% white men it's so incredibly expensive so powerful the technology is incredibly fast it's just not coming to us so I feel really lucky so I just want to be a witness right here right now just shout it out to people please go research virtual reality learn about it understand it and if you are even compelled or interested do it or I brought cards today email me if you're interested in learning I just I want to send this information out to the people so with that this friend who taught me yesterday he's running a workshop June 2nd through 5th at the Seattle International Film Festival and any student who comes to those workshops with your student ID will be able to give them free yeah and it's if you have the time to do this do it I mean we're talking about Star Trek stuff it's we're talking about teleportation we're talking about I mean it's billions of dollars going into this who's getting this money not me not me but I just I'm lucky enough to know someone who's compassionate and believes in the work who says you have to get this out to the world to the people so with that I hope any one of you any of you who's up June 2nd through 5th Seattle International Film Festival bring your student ID and you can learn you can have free workshops about virtual reality look up Riot the films are super cool R-Y-O-T any questions isn't that crazy to think about teleportation and lenses in your eyes you're like these kind it's I worked on this for a first time yesterday okay so when I pull up some of our student films because that's a huge part of my work is bringing student voices to the forefront and another component is breaking stereotypes and not always appearing as the stoic Indian I'll talk a little bit while it's warming up so some of the stereotypes often that as native people is either you're a drunk you're in poverty you're really serious or you talk to raccoons and the stories we try to encourage our students to tell are stories from their lives but also their imagination and their interests and so one year we were working with a group of students and a number of them were really interested in musicals I think this is during the Glee years did they have you watch Glee yeah so they were really interested in musicals so they wanted to make a native musical so they wrote all the lines they on site made all the music made the the costumes the sets and our writer her name is Sierra Ornela she came up from L.A. she's one of three three TV writers in the Hollywood who's native so she helped us yeah it's super fun up more a little further a little further up to the left a little to the right up more a little further a little further up to the left a little to the right my arm is getting tired just put it up it's perfect don't even think about it it's for the party I didn't get one last time it was my birthday party still will be here in five minutes you can wait scrunchies don't just whisper slowly as native filmmakers do we hear oh that's not a native story but this is totally a native story and it's about just having fun too with the art and using your imagination taking it to those really weird places you dream of taking it any questions nope okay I want to show you one other film and then leave you're out of here at 12.3 okay so I'll show one other short film and then leave any time for me Q&A okay this is going way back it's 2007 and again these last two are absolutely 100% youth made ages 11 to 19 I love painting it everywhere I go the only place that I haven't been in a while is the country maybe that's where I need to be milk some cows but I don't know anyone in the country I used to but they're all dead my only friend here is Marcus at first I didn't like him he tried pretty hard to be my friend finally I gave in I thought he was Mexican but he's an Indian too why don't you go back home you always talk about it why don't you go back home I don't really know I guess I just always try and make a home somewhere else that sounds like a country song what do you want to do tonight or did you have plans with that fish I guess you do have plans where are you going so to explain that a little bit we worked with a group of urban Indian youth indigenous young people living in Seattle and oftentimes a number of these young people told us that they had never been to their parents' reservation or they had never been home before and felt disconnectics the language or the culture or even family or touching the land and they also said as native people in Seattle were often invisible and we feel invisible and more often than not too people think that they're Spanish speaking or Hawaiian those are the two, Mexican or Hawaiian and they're just they want to be seen they want to be known and there's many of us in Seattle 75% of all Native Americans live in big cities so this was about home the feeling of disconnection the feeling of being invisible but also home being connected to the earth so we gave them a few I don't know what you call them we gave them a few hard fast rules for the film we gave them a country song from Oklahoma they had to use the dialogue in that and creating this script we gave them a fish and we gave them the line in the streets like run with it but you have to have those three things so that's how this story came to be all right we have just under five minutes left any questions also if you need time I have cards so maybe just having some, yeah well thank you everyone it was great being here today everyone can we please give it up one more time for Tracy Rector it's amazing oh Tracy I do have a question for you do you have any films that we should be on a lookout coming up in the next year or so any projects that you're working on yes well how about this so I'm working on a bunch different films but the big thing that I do monthly it's called Indigenous Showcase it's a film form in Seattle and once a month I show you a native made film and any of you in this room if you email me or let me know that you're coming I'm happy to provide you with a free ticket to see the films so just let me know and it's all native made films because most people think there's just smoke signals out there but there's many things that you can do for yourself thank you thank you so much Tracy