Moj prezentacij je o sofarstvom, in tudi sem tukaj počekljava tdf, ali tukaj počekljava tukaj, ali najbolj zelo, kaj je tukaj, zelo, da je tukaj tukaj, zelo, da je tukaj počekljava, zelo, da je tukaj počekljava. Tako, tukaj počekljava je, na moj prezentacij,Cause we have to have aspegger's syndrome or HD to carry a free software community on our backs, not, but can help. For example, hyper focusing on the programing, it's a real advantage if you want to make something in a very complex thing that understanding a very small part of six million program lines, potibujte podevati, da se highlights treats sonega polmi,", sekrati medkovaj o tur 15. doti se napaljo za rukov, tako glas700 o tem, ki um pluzačnog radsta je instructive. Musป incorporatingopo fatalno editiš raised bydes li para gourmst 91 sreč. Zato je zelo način, da zelo se našli, da se lahko je odlič, nekaj da vse posjo, nekaj, začin, in vse način, da se lahko je zelo način, in učin, da se način iz ročnej svetlju, je to, da je način, kaj je vse zelo način, kaj pa prej vse, bo, nekaj ne so vse psikopetice, za nadvarcu počasovati in nekaj. Taj moj počasovati na tainovate v načinje, za kratko in začine, zelo taj zelo, na kona vzelo zanebim s menim, načinje taj zelo, počasovati v menim, in načinjno, kar ma bil taj zelo za tainov, In sej zelo sem vseh. Kaj je prišlojeno? Zelo se! Zelo se. V svoj glasbi izdužili namo naši naši, naši tdf jahn Holensowski vseh, nekaj je vseh, nekaj je Nickname Candy. This is a picture from 2008 when there was an open office and conference in Beijing, China. So this is the great wall. We can feel that we climbed the great wall during our journey, literally, to not only by numbers, about the numbers. sounded of the fund. A manj s還有 tors дер Superior chair of the foundation shared slideshow above the healthily of the ...עם e-community. And part of the report was for now the tool used to generate some interesting charts about how healthy is of the community. je to pričovalo, da se namoče in se toči, da je kot včasnje tudi kot neroženje. Prvno tudi, da je opetnja, da je je konečnja, da to tudi je tudi konečnja, da je konečnja, da je je začeljena. Všeč se da si videste, na počke včasnih, kolumno, tvoje ljute, ljuboče. To je zelo razvajenjaj, razvajenjajo je vsega sej, ali površtno, ne bilo nekaj nekaj zelo, je to nekaj zelo, v tem čarju. Zelo se vsega, vsega odlič, nekaj nekaj 100, nekaj 75 vsega, vsiča, zelo,Everyyear, but later we lose them somehow fixing somewhat and you can see the contributors since 2009 or later. is relate the history of the foundation. I put some labour skepshan s thre v t nasalj to see the big events of in izgledanja.  Zvom, da se vsega izgleda, da je neko in star delizija, before 2000 or that time, so it's not correct the chart, but it's a good start to understand our problems. The next chart generated by this formula there too is the commits by domains, commits of the free software ecosystem foundations, commits of volunteers, and there are commits from a single person who is very active. For instance, Andras Gelmini from Italy, he frequently tried to make the type of the English language spelling mistakes in the comments. So it's one type of the contributions, code cleanup, or in this case, the comment cleanup. It's useful because I know a lot of people who are very angry to seeing spelling mistakes. I was the developer of who's best spellchecker, which based on my spellchecker created by Kevin Hendrix and other volunteers. So I can understand why that we need to fix all the spelling mistakes in the code. Thank you very much Andras Gelmini, and I hope next year or later we can enjoy this type of contributions. And that is, for example, Julian Nabet, a lot of code contributions, mostly cleanup, but always there are very crucial, the bigger, not a code cleanup, but fixing real problems. So it's a type of the contributions. Yesterday I had a presentation about the flow, this positive psychological term about that you need to try to focus on the best work for you. So if you want to fix spelling mistakes, do it, because that is the best for our community to create a fun project when everyone can choose the best task and later improve themselves. So it's a good thing to improve. And Nabein meaning of the statistics that most of the contributors, some who came from the free slot ecosystem companies, or there are a few people, very important people showing that a very important problem in our community. It's very hard to keep or focus on the contribution for a long time. So I know programmers, both or more for every companies who change his job trying to work in the company and later trying to volunteer doing other things and later coming back and because it's trying to mix the work and the hobby is a very good way, but with my English, I cannot find the right term for it, but you can check the colors later. In the graphics, you can see another important thing that decreasing the community. I mentioned Jan Holasovski, he was a founder and he was one of the main contributors at the start of the open office, at the start of the liberal office project or development. So it's a question that how can we help this community with the light on the recent problems. I tried to create a slideshow, maybe creating some, talking about the reasons why somebody tried to contribute liberal office or in the TDF, the foundation and our free software community, but it's my business cards. So it's important to get business cards. My business was at the open office dot org time to be a free software activist and because I worked, we translated all the comments and partially making documentation in the open office of the time, it was a community event. That is a foundation, fsf.hu foundation with a few core members and it's interesting that this foundation still works. So I think it's a good thing to see foundation from the, maybe from 2003, that was the time. So it's a good example to be an activist in a good free software foundation. This is my work for the government. It was an EU supported project when I was a leader of the development, but in fact there was only one program that meets. So it's very easy to be the leader of the development. There is only one real developer in that stuff. So it was a very short project half a year. But it was very important for me to try to understand free software more, reading a lot of materials from the EU side. It's not, in fact, it was originally something hidden, but I will send a better version. In fact, on my machine, the game started to annoy some library. Thank you very much. Maybe I hope in the video. But here in the last business card is a member of the board of the TDF foundation and I will share some experience. Maybe I will be very fast, sorry, but I will try to focus on the most important thing. There never was a democracy yet that did not commit suicide. And the antidote of this real problem is the knowledge, the education. That was in the time of the founding fathers and the French revolution when the education was the most important, the public education for everyone. An analogy, the Garmamics fight, when 150 members died, it's an analogy related to one person or something can generate a much bigger problem. I was interesting knowing in the news that it's related to depression, et cetera, et cetera. And after that, I read a report from Ernest Heller, a Hungarian philosopher, a worldwide philosopher, who said that it's very important, it's evilness. Nothing more about it. This is a short part of his book about Holocaust, how she survived. She was the bravest woman. She literally escaped her unmother from the ghetto and from the at the nunau when all the other members killed. And the main problem for her that she couldn't able to save his child, his friend, young boy, 16 years old, Yuri Bihari. In the last years, I tried to understand the thing in the foundation. And a few weeks ago, I found a book in the local library. So that book was the snakes in suits, when psychopaths go to work. So I can show you the book, yes, it's a library book. So I must be careful about it. But it's a textbook. The textbook about details. That's what in the last few weeks I tried to understand and collect all the things. The one of the first rule, never say something about it, that it's a psychopath. Maybe it's my heatherism or narcissism, that other problem. Never, never say. So I didn't, but I tried to collect the act or fact in the foundation. I collected at least my plan to send to the emcee of the foundation. Trying to understand the problems a little bit better. This is my bookmark in one of the books, when I tried to collect here. Because I love books. And I got this bookmark for my daughter. I never focused in too much. So I'm not the best father maybe. But I found it within the last week in my English book. And I checked that. It's not nice. From nine years ago I got this, I love the library office. There was a sticker made by KOR as a gift on the conferences. And my daughter found it and made a bigger version from it. And there is her name and time in 2014. And the day and the time. So not only the day. So it's like you can see it. So here's my daughter, now in medical university second grade with her classmates. And in my city, our city, the second. And there is a statue here, Albert Sanger, the Nobel Prize winner, found in the Vitamin C. And the muscle structure biochemist studied in England. But he made the most important scientific research in second in South Hungary. And here is the school of my three children. And so love is a kind of warfare. It's a deep state movie. I like movies with my wife. I checked his movie last week. And this is a quotient. Love is a kind of warfare. It's from Ovid, the Latin poet. One of the biggest Latin poets from the Friban in the first. But he exiled. And he died within six years near Bucharest in Constanza. And his books was forbidden in the Middle Age. Because love is war. It was a symbol of something more deeper. So about the freedom of the humanity, or humankind. Other books. This story, I heard that was this book, the Papyrus. It's about the old culture, the big and Latin culture, with a lot of interesting things, but a lot of fearful things about the books. And this is another of my favorite book, the Polgar chess book. I was able to create a face software based on this book. I will check some examples. This is the Polgar sisters experiment on the human human, with his father tried to teach them to chess. And it left side, the youngest one, Judith Polgar. This is the first Olympic one. Judith Polgar was 12 years old. And they ruled the Soviet chess. They won the prize in Saloniki. And in the time, Kasparov, he checked the match and said something that she very talented, Judith Polgar became a female world championship, some times somewhere. Here is a man games or world championship, when Judith Polgar and Kasparov doing chess. And this is last year, when Judith Polgar, there was a world championship in Madrid exhibition, heard about in the taxi that Carson in the local park in Madrid, paying chess. So Judith Polgar said to the taxi driver that go where, and she was able to defeat the world champion in a rapid chess game. So you can check the video. The interesting thing is what about, so it's nature or nature, what is the origin of the human creativeness. And you can check in the background the mother of the daughters. And if you, I will add some story to the spot, and the love is the key here, not only the creativeness, but loving in a way to create something new. This is my free software, one of the first free softwares, when published under the new public license, vector graphics by the working version of the chess game, you can create a similar time with very small tables and vector graphics playing games. And last week I checked it, because it was originally in Tilex, Linux version of a protected environment. I checked the Lazarus version, and it still works my program, but I used the back way machine from Sun Microsystem originally to found my own code. So it was lost for me, but thanks to the Sun Microsystem, I was able to... Last minute here. Last minute. This is my other tool to create an old machine, an education tool using the old bitmap interface, showing the bit state of the bits of the Ural machine. And this is my other book, which is very important for me. The first page is part of the LibreOffice code, because as a dummy text or lorem isum, I put in the Hungarian language part of the LibreOffice, so I will talk about it. It's about creativity, brainness, and much more. And this is my favorite poem, and you can see that it's written with pencil, it's not so, but it's found in the body of the dead man after the World War II, and this is the poet. When I cannot read it, I have no time, but it's about the responsibility of the clever man. That is a German sentence, but the poet was shot by a Hungarian soldier, so not a German. It's about our responsibility here. And he is, Miklos Radnoti, the poet, and his wife died in her age in 202. She was 200 years old as a symbol, in some way the memory of his husband. And this is my town in 1876. I mentioned, I tried to mention that the road, road avenues, and not so common in South Hungary, that this is the reason that this river destroyed all my town that time, and all the European capitals collected money, donated money to create that town with a university, with a Nobel Prize winner scientist, and one of the capitals was Bucharest. Thank you very much, Bucharest.


My fellow Americans, I'm sure you're all aware of the debate during recent days and weeks with regard to our Marines in Lebanon. Congress on a strong bipartisan basis has passed a resolution approving their presence there for 18 months, if need be. But in the debate, many questions were raised as to what they were doing there and whether their presence there was in our national interest. In the midst of all this debate, I received a letter from the father of a young Marine Corporal stationed in Beirut, Lebanon. Really proud of his son, he enclosed a clipping from his hometown paper. It was a letter to the editor written by his son, and here's what the young Corporal had to say about the Marines and whether or not there was a reason for their presence in Lebanon. His family had been sending him the hometown paper, and he'd noticed, quote, editorials and opinions denouncing American involvement in the various trouble spots of the world, particularly Central America and the Middle East. He went on to say, I've been keeping up with what's happening in Central America, and I have first hand knowledge of what is happening in the Middle East. In the case of Central America, the general American consensus is to stay out, that we're getting into another Vietnam. Whenever American military forces go abroad, the average American believes that we should keep to ourselves and mind our own business. I'm not an advocate of war, he says. As I've seen the ravages of war here in Lebanon. War is a very terrible thing, yet when diplomatic methods fail, we must be prepared to defend and if necessary to die for what we believe in for the American way of life. I do not enjoy being here in Beirut. My fellow Marines and I miss the simple yet wonderful aspects of life back home that so many take for granted, yet we realize we'll be going home in a few months. But the people of Sey El Salvador or Lebanon are home. For them there is no escape. It is our duty as Americans to stop the cancerous spread of Soviet influence wherever it may be, because someday we or some future generation will wake up and find the USA to be the only free state left with communism upon our doorstep, and then it will be too late. A young Marine corporal writing from Beirut, Lebanon to his hometown paper, there's no doubt in his mind about the need for us to have a presence there, but many of us are not that sure. Many believe we are involving ourselves needlessly in someone else's quarrel and should bring our young men home and mind our own business. The corporal may not have spelled out the specifics as to why it was in our best interest to be there, but he was certainly correct in his conclusion that it is our business. Can the United States or the free world stand by and see the Middle East incorporated into the Soviet bloc? What of Western Europe and Japan's dependence on Middle East oil for the energy to fuel their industry? Do we remember the oil embargo in the lines at our own gas stations? And didn't we assume a moral obligation to the continued existence of Israel as a nation back in 1948? I've never heard anyone in this country ever suggest that we should abandon that obligation. A little over a year ago, I proposed a peace initiative for the entire Middle East. It was based in the Camp David Accords and the United Nations Resolutions 242-338. We offered our help in bringing the Arab states and Israel together in negotiations to settle the long-standing disputes that had kept that entire area in turmoil for many years. We sought more peace treaties like the one between Egypt and Israel. Lebanon, the site of refugee camps for a great many Palestinians, had been torn by strife for several years. There were factions, each with its own militia, fighting each other. Terrorists in Lebanon violated Israel's northern border, killing innocent civilians. Israeli forces occupied the eastern part of Lebanon. Israeli military finally invaded from the south to force the PLO attackers away from the border. There could be no implementation of our peace initiative until this situation was resolved. With our allies, England, France, and Italy, we proposed a withdrawal of all foreign forces from Lebanon and formed a multinational force to help maintain order and stability in the Beirut area while a new Lebanese government and army undertook to restore sovereignty throughout Lebanon. Over the course of several months, Lebanon and Israel negotiated a friendly agreement for security of the border between the two. We stand by this as a good agreement. But Syria, which had earlier agreed to withdraw if Israel did, changed its mind and today has some 5,000 Soviet advisors and technicians and a massive amount of new Soviet equipment in its country, including a new generation of surface-to-surface missiles, the SS-21. We have to wonder aloud about Syrian protestations of their peaceful intentions. For a year, we've continued diplomatic negotiations leading to the present ceasefire. President Jamal is committed to a process of national reconciliation as the means to end factional fighting. The presence of our Marines as part of the multinational force demonstrates that Lebanon does not stand alone. Peace for the Middle East and a fair settlement of the Palestinian problem is truly in our national interest. Until next week, thanks for listening and God bless you. So, I don't know, you might have to make a second run, huh? Yeah. Nice, Phillip, you look beautiful, don't we? Can you get your...  I don't think Dory's ever running a horse. Man, we're not going to have John Barletta hitting us, are we? Well, he's meeting them all over there. Dory is having problems with the horse. There's an innovation with some very funny stuff. I don't think this is going to work too smoothly. I need him walking towards us. You get that fall right there, back there. Okay, let's go with an ideal over here. Man. Okay, let's go with an ideal over here. Man. Man. Looks good. That's a wrap. All right. Well, we're just directing it. Let's do it. Yeah, yeah. John, let's do it now. Yeah. Yeah. Okay! John! That's fine! What's funny? Yeah, I can only get two in right now. What's the point of it? I think it's better than... What's the point of it? How you going? You're going? I think you're going to be a great driver. Yeah. I think I'm going to be a great driver. I think I'm going to be a great driver. Great. Yeah. I think I'm going to be a great driver. I think I'm going to be a great driver. Yeah. I'm getting this on videotape and getting your commentaries. There we go, there we go. Super! All right great. You're doing great. Doria can you move any closer or move closer to Doria that's good that's good great all right that's great Mr. President could you do a u-turn and go about 50 feet and try it just one more time and then it'll be done 50 to 75 then come on back hang out with you stop eating and that's both very good well no I want you to do I didn't say it was going to be easy that's great Doria why don't you loop around behind that way all right there we go okay okay thank you that's a rough shot we got to go release this guy okay go ahead Mike should get that shot anyway look at him go that's a real nice shot of a president's son by himself yeah


All right, boom, there we go. OK, so going back. All right, so there are a bunch of functions already given to you for this.  So I did it for you. Yay.  A lot of them are simulating like all these MMU functions are simulating what like the MMU and the CPU actually do. So like the CPU instructions would just be to like set and get that root page table. It's just in a register. So there are functions for that. And then the only code you would actually use in your implementation is like get root page table. So that gets you the current processes. So the process that allegedly called fork gets you their page table. And then you can work with that to figure out what you need to copy and everything like that. So the rest of these are just for testing. You're free to write your own tests if you want. Or there's a supplied file that we'll get into where you can go ahead, run, make sure you can sanity check some of your work. Other than that, we have some functions that deal with pages. A lot of them, the test handle for you. And the only two you actually need to use in your program are like new page. So that kind of simulates asking the kernel for just another physical page. So I would like a new page, please. And then you get to decide whether you need to use that for storage or use it for a page table up to you. Then the free page, it's there mostly for completeness.  We're not going to bother with managing pages after the fact, so you'll probably never use free page. Get use pages, so that's used by the testing to make sure you're not wasting space. Then there is this get page pointer. So just for ease of use, this library kind of just assumes that all the pages are in some giant array. So given a page pointer, you can get an index. And that index will be between 0 and there's a define called max pages. So if you want to use an array to keep track of something, you can go ahead and just ask, given a page, you can get whatever its index is. And you're guaranteed it's unique. Yep. Yeah. Yeah, so get new page, it will always be 4,096. So when you would need to use new page at bare minimum, when you fork and you need to copy all new page tables for the child processes, you need to make a new L2. So you need to get a new page. So you can use that for L2. And then assuming it has valid addresses, it probably has like a valid L1 entry. So you need to make a copy of that L1 table, make sure yours points to it, then L1, and then that new page and go on. So we'll have an example, we'll work through it too. All right, so after that, our page table functions. So basically they're just doing the array indexes for you and actually given like a virtual address, it will go ahead and figure out what part of that virtual address is used for the index. So like for page table index, wow, this is long. So page table index takes like a virtual address and then a level. And then it will give you the index at that level. So for example, if we have like the virtual address ABC123, so this is like the virtual page number. And we're assuming SV36, 39. So it would get split off until like an L, there's an L2 index, an L1 index, an L0 index. So to just get the index directly, you can just use this function. So get index for ABC123. So that's the whole virtual address. If you ask for the level one, you get that index. So questions about that or why we have that index for that? Because this was the whole thing where I had to like write that whole thing out in binary and then group it in terms of nines and all that stuff. So we use programming languages for a reason. So you don't have to do that by hand. All right, so another one, page table get PTE entry from the index. So it's basically just does a little bit of pointer arithmetic for you. So given a page table, so that starts at a page. If you give it an index, it will give you the PTE entry. And the entry is just a pointer to some 8-bit value. And then if you want to just get the entry directly without having to like go from the index. So this one takes like a page table and index. If you just want to skip the middleman, there is page table PTE entry. And that just saves you the step. So it just takes a virtual address, a level, and then a page table.  Then there are some helper functions. So given a physical page number, it'll return a pointer to the corresponding page. So everything will be page aligned. So it will give you a pointer to start at the page. And then if you have a page and you want to make it a PPN, then you can use this function, takes a pointer to a page, gives you the PPN. Why would you need that? Well, because there are a lot of functions for dealing with the page table entries. So we are going for this lab to use, what is it, five bits? One, two, three, four, four. No, four bits. So we're going to use four bits. So there's going to be a valid bit. So any of these functions that say clear, that means it's set that bit to zero. Anything that says set means set that bit to one. So if I have a page table entry, if I want to say it's valid, I can just use valid set. Then there's one. And then there's the accessor ones. So that will say, OK, we'll just return one or zero. Is this true or false? So that is how you get the valid bit out of an entry. Again, this saves you from doing any bitwise manipulation or anything like that. So we have read. So there's a read permission. There is a write permission. And there is a custom permission. And you will need that. So you don't need to use the custom bit for implementing just a plain old copy. You'll probably only need this for copy on write because you'll probably need to keep track if you're sharing a page or something like that. Again, we'll go into an example. And then if you want to get the PPN out of an entry, you use this function. If you want to set it, then you use this function. Other than that, these are the two functions you are implementing. So you are implementing what happens on a fork if we're just blatantly copying everything and making a completely new independent copy that's not associated with the original process at all. And it always returns just a pointer to the new root page table for that process. And then after that, we should be able to switch back and forth between the old one and the new one in the test. And they should be independent. And then same idea, but we do it with copy on write. All right, any initial questions before we go into some more fun stuff? Yeah. Also, there's nothing new you have to learn for this lab. So my highly recommended thing to do is to start this immediately after the lecture and make sure you're done like before reading week. Otherwise, you will get behind. So this one is a lot of thinking. So you'll probably need to sleep because my whole implementation is under 100 lines. So it's not that much code. But that's only if you do it a smart way.  And like I said, you already know everything to technically do this lab anyway. So after this, this is even more help. So hopefully it will not be too bad. OK, so how it's also laid out is that there is this main.c file here. And that is just for you, just if you want to go ahead and test your thing and we'll use that today. Right now, all it does is takes a virtual address like abc123 and then makes it valid. So it sets up all the page tables for the parent process, prints some information about it, so we can just print off what we're actually doing. And we're just testing read and writing to that virtual address. So all the reads and writes just assume that they only operate on ints because I don't want to do anything more complicated than that. So there's change ints at a virtual address. So if I go ahead and I run, so you can go ahead, compile that using our normal steps. And then you'll have this buildVMS. And this is from that main file. This isn't graded for anything. This is only for you to play with if you want to do something outside just running the test. But of course, there's like, I forget how many tests there. There's like 18 tests or something like that or no. 14, something like that. All right. Anyways, if we do this and we run it, we can see that, OK, it works. So if I write a value 1 to some virtual address, I can go ahead and then print off whatever its value is. So it's a 1. And then we go ahead and we can say, oh, OK, let's change that value from a 1 to a 2 and then read it back again. And yeah, we get the updated value. This should not be surprising. So surprising thing is going to come from when we implement things. So this is the only file you will have to actually modify. It's VMS.C.  So there's this function called print PTE entry. So if you give it an entry, it will go ahead and print off what the PPN is and all the bits and what they're set to. So we'll get into the page fault handler in a little bit. First, we'll just talk about what happens with the fork copy.  So get root page table. If I want to write it in a different way, I'm assuming that we're writing the code for the process that called fork. So if I call VMS get root page table, well, that would be the level 2 page table of the parent. So I can rewrite it a little bit differently. So let's just rewrite it and give it a name. All right, so if this was my implementation of fork, would this work? What bad things would happen here? What does this mean? Yeah, the child and the parent have the same root page table. So they have all the same mappings. So they're accessing all the same physical memory. So if this was my implementation, we can go back and even try it. So here, I'll just say like the forked L2. So whatever the result is of calling fork copy. So remember, what should happen is it returns the root page table of the new fork process that should be completely independent of the parent. So here, if I go ahead, and this is just for testing because this is like what the kernel would do. So this would simulate like context switching over to that new child process. And then if in that new child process, I use the same virtual address and I write the value 3, well, if I go ahead and read it, what value would I expect back out of it? 3, hopefully right if we haven't gone insane. Why did I just type compile? That's not this course. So yeah, we read 3, but that was in the new process. So let's say, let's make sure this is clear. So let's make sure we can keep track of what we're doing. So context switch to child and goes ahead. It updates that value at that virtual address to 3. And we go ahead and read it should be 3. So if we go ahead and what did I call it? I just called it L2. So we can go ahead and we can simulate doing a context switch back, oops, back to parent. And if I just print out the value at that address, what am I going to see here? 3, and is that good if I see 3? So are they independent there? No. So we have to make them independent. So also, any questions so far? Kind of slowly making sense what the goal is here. So to be, oh, yep, why was the last one printing 3? So the child and the parent, they're just using the same root page table. So they have all the same mappings for everything, right? If the MMU is trying to translate that virtual address to a physical address, it'd be translated the same to both. So if one changes it, changes the same physical address, and then the other would go back and read the same physical address. So any changes you make, you see them. All right, it's using the same physical memory because, well, I didn't do anything. They're using the same root page table. They have all the same translations. If you make a change in one, you see it in the other. Not what we want to happen for forks. All right, anything else? All right, so let's be clear what that looks like. So here, just as a reminder, so we divide memory up into pages. And this is the only unit of memory that the kernel actually cares about, or at least in terms of your processes. And be laid out something like this for here. I'll just simplify it a bit. So like page 0 would represent the memory addresses hex 0, 0, 0, 0, all the way up to 0, f, f, f, because that's exactly the size of a page. That's how many bytes are in a page 4096. And then similarly, it would start at 0 because everything's aligned to a page. Page 1 would be the next 4096 bytes. Then page 2, page 3, kind of looks like a big array, right? Yeah, so these are just pages in memory, and we get to choose what we use them for. So the question is, how do these relate to the L1, L2, L1, whatever page tables? So we can use these pages for whatever purposes we want. One of the purposes we can use them for is for page table.  Or we can decide to use that page for actually keeping track of the memory of that process, like keeping track of the value of x or whatever. So this looks like a big array.  So again, if you have to keep track of information about pages, use arrays. I don't know who tortured you because I've seen a lot of your lab 2 things, and you all like link lists for some god-awful reason, even though lab 2 was specifically engineered to push you towards arrays and be easy to do with arrays. So yeah, who hurt you? What? Maximum number of processes? Well, you don't know, right? Yeah, but if you don't know how many processes, you can dynamically resize the array. It's not hard. There's a function called realloc array. It does it for you. Wait, was no one actually aware of realloc array? This is too much, and your link lists are great? Yeah, yeah. So the typical thing for arrays, if it's out of bounds, you should be checking your bounds of the arrays. If it's out of bounds, just double its size. And yeah, doubling its size, for memory, that's how hash tables work. If a hash table's too full, just double its size. And if that fills up, it just doubles its size again. And because exponential growth is great, you don't have to do that many times. And yeah, that's also what will happen. That's a common networking thing too.  Common thing to do, we like exponents.  OK, yeah, what this would actually look like. So assume we have our parent process. It was using virtual address ABC123. So do you want me to write this out in binary and write out which index is which for everything? Let's save us the trouble. We have functions anyways. So if I save us the trouble, the L2 index, that is part of that virtual address, I believe would be 0. The L1 index would be 5, and the L0 index is 188. So in order for, like, in the code here, all the stuff before to actually make sure that that is a valid translation, all it does is it would do something. It would say like, oh, OK, well, I need a root page table. I need an L0 page table. So I would probably just ask for a new page. Oh, maybe I get this page. Maybe I get page 0. So let's say, OK, well, page 0, you're my new root page table. So I could say root. So my root page table would be using a whole address. It would just be 0, 0, 0, 0, 0. And then I'm going to use that as my L2 page table now. And in order to make this a valid translation, well, the entry in the L2 page table has to point to an L1. So I need to use a page for L1. So maybe I ask for a new page, and I get page 1. And I say, OK, well, I'll use that for my L1 page table. So if I want to make this valid in this L2 page table that I happen just to be using this page for, I need to make sure the page table entry at index 0 is first valid. And for walking the page tables, all we care is whether or not it's valid or not. We don't care about read, write, or the custom bit. We only use that in the last translation to check permissions. So here, in order to actually successfully decode this address, well, it needs to have a valid bit. And the ppn, if I wanted to point it to page 1, what ppn would I use here? The address, like the whole address? Yeah, without the last 12, right? Without that. Just 1. So page 1, because everything's aligned to the page. Otherwise, if I could just start a page anywhere, I would need to store the entire address. And I probably couldn't fit it. If my addresses can be up to eight bytes, well, I need to store other permissions if it can start anywhere. I have to waste a lot of space. And memory also doesn't like being not aligned. And computers really hate that. And you'll do it. I can't read the Discord message right now, but I'll look at that after. All right, so in here, this would be at index 0, 2. So at index 0, I would have a page table entry. The ppn would point to 1. And the valid bit would be 1. And that means if it tried to translate it, it would then hop over to L1. Then in L1, we would need an entry called 5. It would need, in that entry, it would need a ppn and then a valid bit. And oh no, I need to go ahead and get some page so I can use it as an L0 page table. So maybe I use this one. Ppn of that is just 2. And then here in my L0, well, that has the final translation, right? That has where, what physical page is am I supposed to use for that virtual address? So maybe I use page 3 just for my variables. So I'll just say this is my data. Actually, let's give this a name. Let's just say it's like process 2 data. And then this is going to be process 2. One of the L0s, process 2, one of the L1s, process 2, one of the L2s. So here it would be ppn3. So I'm deferring it to page 3. And we'd have index 188. And then here we would have permission. So read, write, execute, and then a custom one that you won't need to use for just a blatant copy one. Let's say I say the custom bit is 0. The write bit is 1. The read bit is 1. And the valid bit, whoops, that should be valid. Valid bit is 1. So then it can go ahead and then using the offset, it would actually use the memory on this page. So what I did when I forked is, OK, I tried this, and this is p2's root page table. So the implementation I had right now, all it did is it just returned the original processes root page table. So in this case, p3's root page table was also 1,000. So it would just do the exact same translation in order to get the new page. So what should processes 3's page tables probably look like? Any guesses with this or a good first step I should do? Yeah, at very minimum, we need a new L2. So maybe I do that. Maybe I just get a new page, say this one. And I'll say this one. Actually, let's use a different color. Red's kind of aggressive. Orange, sure. So we get a new page, and we can say it is process 3's L2. So here, we're at least returning a new L2. So this would be at address 4,000. OK. What's the next step I want to do to make them independent? Can I just get a new page and let's just say I copy the contents of process 2's L2 page table. But it's on a new page, right? So I'd have index 0. The ppn would be 1. Valid bit would be 1. So I just completely copied the page. I just mem copied it. I didn't want to think. I didn't want to do anything. So would that be valid? Technically, using different page tables now-ish. This is, come on. I'm doing your lab for you the more you ask. Yeah. Yeah, it'll eventually just point to the same address anyways, right? So if we were to translate that same address with p3, well, the entry in L2, even though the SL2 is independent, it's pointing to the same L1. So the translation would just use that. And at the end of the day, we'd get the same translation. So for the purposes of this lab, I'm also not going to do anything weird where two entries are pointing to the same page or anything weird like that. So do not worry about that. I could make your life a living hell with that. But I'm somewhat nice. This is already a thing. So nothing silly like that. So if I wanted to make them independent, well, I need a new L2 page table. But I should probably have a new independent set of page tables for this process, right? So it should have a new L2 page table. And it should also have new page tables for every L1 the original had, and new page tables for every L0 the original had. So full set of independent page tables. So here, let's just do it quickly. Let's just say we get page 5. It's valid. On page 5, we add index 5. We get a ppn. It goes to page 6. It's valid. At 188, we get a ppn. And then all of the bits. So I'll just write it on two lines read, write custom and valid. So this would be L3s. In this case, we only have one entry in L2. So we only have one L1 page table. So I don't have to draw any more. But if you had more, you'd have to get new pages. So this would be p3s L0. OK, so now we have a completely independent set of page tables, right? So if in here, if in p3s L0, I do O3 and then custom 0, read, write, valid, do I still have the same problem I had before? No? I'm good? Yeah? Yeah, it's the exact same issue. So I got closer, but at the end of the day, looks the same thing. So in order to translate the same address, I used completely different page tables. But remember, to do the final virtual page number to physical page number, that's the entry in L0. So if you screw up L0, it doesn't matter what you did. So turns out this is 90% of the way there, instead of 0% before. But we got the same result. But this is slightly better. So if I want to make it completely independent, well, in L0 for process 3, I should probably point to a new page, right, like this. And then if I do the translation, I'd go here, to here, to here, to here. Now is this OK if I just ask for a new page and also to note, when you get a new page, it's 0 initialized. So it's all full of 0s. So would this be OK if process 2, let's say it wrote x equals to 2, and then this whole page is just full of 0s? Would that be OK? Yeah. Yeah, I actually have to, in this case, if I'm making a completely new set, I have to make a exact copy of this, again, at the time of the fork. So now it would have a 2. And now if we go ahead and we modify the same virtual address using P2, it modifies this memory. So this 2 would change to 3 or 4 or whatever. And it wouldn't affect process 3. And now if we switch back to process 3, access the same virtual address, well, because we have to follow that, the new set of page tables to figure out what memory to change, it would change this, which is independent of the other one. Good? All right, let's look at some more code quick. So in here, so here, I'll even write some code for you. So if we want to get a new page to use as an L2 in the child, well, we know we always need to just, I'll just call it L2 child. And we can say, well, we just need to grab a new page because we need a new page to use for the L2 page table for this process. So I'll just grab a new page and then I'll return it. And I can even see what happens if I just do that. So if I do that and run the example, oh, fatal page fault. Oh, yay, aka, it's a seg fault, but it gives you more information. So we can see we context switched to child. We knew we tried to write to address ABC123. Here it tells you what page table we used, tells you what level the page fault would fail at, because we could fail at any individual level. So I could fail looking at the L2 entry, L1 entry, L0 entry. So it tells you what level it failed at. And then it gives you information about the PTE. So in this case, because that new page is full of zeros, that's aka, every single entry is invalid. So it's saying that, OK, well, there are no flags set. So if there was a valid flag, you'd see like a capital V here. And it says, oh, the PPN was zero. It had no flag set. That's why I had a fault here. So if I want to go ahead and look at every entry in the parent and look at all the PTE entries, I can do that. We can just write a for loop. So we can go I all the way up to, was it num PTE entries? So there's a define for you. But we should know this number. Anyone off the top of their head, what's this number? 512. Did I hear 512? 512, yeah. So 512. And we can mess over and see 512, because 4,096 divided by 8. Or page size divided by PTE size. All right. So now if I wanted to just look at all the page table entries, I can use that special function. So using the parent's page table and then using, actually, I have the index, sorry. So sorry, back up. So I don't have a virtual address here, because I'm just looking at the parent's page tables. So I could just say from index. So I'm using the parent's page tables. And I'm just going to iterate over every single index there. So if I do this, yeah. Zero index. Like if I do this, in this context, they mean the same thing. All right. OK, who taught you C? Jesus Christ. OK. Anyone quick know the difference between plus plus i and i plus plus? Yeah, so the only difference is essentially the result of that expression. If that doesn't mean anything to you, again, who taught you C? So if I do plus plus i, the effect of that is to always change i and increase its value by 1. And the result of this expression is going to be the updated value of i. So if i is 0, and I do plus plus i, the result of this expression is 1, and i gets updated to 1. If I do i plus plus, then the result of that expression, if i is initially 0, is 0. And i gets updated to 1. So in this case, in the for loop, the value of this doesn't get used for anything. The only thing we care about is that it updated i. So we can use plus plus i or i plus plus.  So if you don't need to use the result of the expression, you should always use plus plus i.  I did a program for performance course just changing i plus plus i to i plus plus can potentially, under very certain circumstances, make things go a hell of a lot slower. So unless you mean it, always do plus plus i. All right, another sidetrack. OK, so if I go ahead and I run this now, whoops, I still page fault. But here I'm printing out all of the entries in my page table. So I'll probably see in my parent's page table. So I'm going to see a lot of them, because in this case, there's only one valid one. So what should I, so likely if you're going through all these page table entries and figuring out which ones you need to copy, you only really need to create new L0 or L1 page tables for any valid entry. So I can just check first if it is a valid entry. So I could use VMS. Sorry, let me just separate this out a little bit. All right, so this is me just getting the entry from the page table. And this will happen 512 times. And then I might be able to ask, oh, hey, VMS, PTE, are you valid or not? So I could just ask if it's valid or not. Well, if it's not valid, I probably just want to skip it, right? So I can just be like, hey, if you're not valid, then continue. And then after that, I can print the entry. And now this should show us every single valid page table entry in the original parent's L2 page table, right? So if I run that, I ignore the page fault. Then looks like this, I get the single entry in the parent. That should mean that, oh, OK, well, if the parent has an entry in L2 that points to an L1, I also need an entry at the same index in my L2 that points to my L1. And then you have to do the same thing here, right? Where, whoops, not that. Where we create a new one for each entry and go on through so that eventually, once we hit the end, we have pointing to the same or two different pages. Yeah? All of your programs start with a bunch of memory elements. Yeah. Yeah. So when you fork, right, when you fork their complete copies, they can access the same memory, same addresses, same everything, right? They're indistinguishable. OK. So OK with this.  OK, apparently I'm just swearing today. All right. So real quick, the hard part, so that part should be relatively easy. Maybe it takes you a little bit to get used to using the code. That is OK. But the hard part is going to go from using copy on right. So the idea behind that starts off the same where we make a completely new set of page tables for the new process. But initially, we have both of them sharing memory. And this is OK as long as they are both reading it, right? So as long as they're both reading it and haven't made a modification, they look exactly the same. So what I want to happen is that as soon as one process tries to modify that virtual address, let's say it was process three, it's trying to modify this, which is being shared between two processes. What you want to do is you want to detect that that's happening and then make a copy as late as possible. So if it tries to make a modification, then I go, OK, no you don't. I grab a new page, and then I make the modification on that page. And then I point p3's last entry to that new one so that they are otherwise independent. So I didn't screw up whatever process two thought. So you'd have to copy the entire page and then make the modification, because everything else needs to still exist. Oh, yeah. So when I did this, it was originally pointing to three. Because I'm trying to share memory. Yeah. Yeah, how do you know that it's connected? Is that your question? No, what's your question? Only the final one would be copy unwrite. The page table should be independent.  Yeah, copy all the page tables and make sure the memory's the same. All right, so real quick, how you would do this is basically this is what it's going to look like after you fork if you share pages. And you're going to need to keep track of which pages are being shared. And one of the typical things to do for copy unwrite is to go ahead and turn off this write permission in both the child and the parent. And then if either process tries to modify it, it will cause a page fault. And in this code, how the MMU works is it will generate a page fault. And then it will call your handler. And then in your handler, you are allowed to fix up that entry. So you're allowed to modify that entry and make it point to a new page. And then it's going to retry the translation and then use that as the final translation. If it fails the second time, then you're out of luck. So what should happen real quick, whoops, not that, is if it detects either process, it turns off the write. And it would generate a page fault and then say it was process three. That's when you would grab a new page. You would make a copy. You would update this ppn to point to page seven. And then you could turn on the write permission because it's the only process that's using that page. And it can go ahead and use it. And you should also detect that if process two goes back and tries to modify it, it's the only one using that page. So it doesn't need a bother to make a copy. It should just turn right to one. Yeah. So question is, how do I know the parent's the last one left using it? You need to keep track of it. So you should keep track of what pages are shared and by how many. And guess what? That's where an array, not a linked list is good for. That's why you have that index function and everything. And you also have a custom bit that you can see, hey, is this page possibly being shared or not? So you need to keep track of like the number of references to a page. And you should also make use of that custom bit because you probably need to tell yourself that, hey, this is a page that's subject to copy on right. Because it's also valid to just have a page that you're not allowed to write to. That's perfectly valid. So you have to keep track of, is this a copy on right page or not? All right, went over. All right, so other than that, just scored. Or I'll be around here until someone kicks me out. So just remember, pulling for you, we're on this together. All right, went.


friends welcome to my channel I am Arpita Karwa and in this video I am going to talk about how you can prepare using free YouTube videos for a competitive exam as difficult as net. So if you are somebody who thinks that nobody can clear UGC net exam through YouTube videos and self study then believe me this video is for you. With the advent of COVID-19 pandemic and lockdown we know that a lot of coaching institutes offline once have shut down bookstores have shut down now people have drastically moved to YouTube for help especially kids and adults like us who are preparing for UGC net exam so all these people have shifted to YouTube for guidance for study material and here comes the most important question that can a student prepare for UGC net exam using free YouTube videos and if yes then what should be the strategy what should be the things that should be taken care of in this video I'm going to first clear the myth that it is absolutely possible to clear a competitive exam through YouTube and not just clear exam I telling you that you can actually get a JRF if your approach is right so we all know that a lot of benefits are there for studying online you get access to free material you also save a lot of time and energy in traveling to institutes and studying from you actually save time in gossip mind you because when we go to a coaching institute it's not just the one-hour class that we attend there is also a 50-minute gossip session that we attend so we save those 50 minutes on a day-to-day basis but then there are a few drawbacks or challenges I would say which can be overcome with the right strategy so this video is all about overcoming those challenges we are going to talk about four major drawbacks of studying from YouTube and how you can easily overcome it the first challenge that a lot of students face in this process is finding out which YouTube channel to refer YouTube has lined up so many great channels in front of you for any topic be it any subject any topic you want to study there are numerous teachers and some great channels out there on YouTube now how to find out which one is the best tell me guys is there any definition of a best teacher no a teacher is best for you if his teaching methodology is what you understand so there's no best or worst teachers no there are just different methodologies that different teachers use I have a particular way of teaching if you go to my YouTube videos and you watch couple of them you will find out that I have a very system-driven method of teaching a step-by-step procedure of teaching there are teachers who might tell you in a flow they might not structure their thoughts but then am I bad or are they good or am I good and are they bad no there's nothing like that it's an absolutely false statement the only thing you have to find out is that which teacher is teaching by the methodology that you understand so for this there's a very simple trick what you need to do you have to select a topic of your choice from your subject and then watch a couple of videos of different teachers teaching that topic and see which one you understand the best which one is interactive and which one you are able to absorb easily whichever is that channel that is the channel for you so make a list of the channels that you are going to go to for any topic don't get lost in the pool of content nowadays I'm learning cooking by watching a couple of YouTube videos and for any YouTube recipe that I search for example Paneer Tikka or maybe garlic bread I will find out millions of channels and millions of dishes presented by them of that particular category for example if I want to make Paneer Tikka and I just search Paneer Tikka on YouTube there will be hundreds of videos on Paneer Tikka and if I end up watching all of them I would never be able to make a Paneer Tikka so what I have to do I have to refer to only one or two channels and then based on their recipe I have to try it right so what I've done I have watched a couple of videos of different YouTubers who are into the field of cooking and then I find out that these are two three YouTubers whose recipes I am able to make effectively and also who kind of give me a lot of background of the recipe so that I'm able to understand why this particular ingredient is added or not so there are these videos of Kunal Kapoor, Shef Ranveer, Braar and Cooking Shooking is another channel these are the three channels that I refer I don't watch videos of any other channel why because if I start watching videos of all these channels who are into the field of cooking I will never be able to try these recipes out because all my time would be involved in just watching these videos when I am going to experiment with the recipe right the same thing you have to do you have to stick to a few YouTubers and only watch their video there's a very simple strategy that I tell all my students one topic one subject one book one teacher multiple revisions this is the key to success not just YouTube channels you can refer to there are a lot of free resources free websites I have already made a video for UGC net English aspirants about free websites they can refer to and they can get a lot of guidance from these website if they don't want to invest money in any coaching class the link of that video is linked up there it's also in the description and you can go and check out that video if you want to explore certain other avenues apart from YouTube the next challenge that you might find when you start studying on your own from these free resources is that which topics to study now for this you might be wondering that okay I can just refer to the UGC net syllabus but let me tell you guys that won't work because the syllabus only gives you the major headings it doesn't give you the sub topics that you should be studying right for example English literature syllabus is really vast but what they have given to us is these are these 10 units that's it nothing more so what you have to instead do is to make your own syllabus by looking at the past year papers and by also looking at other important topics that you should not skip for this exam and you have to first prepare a topic list on your own and then for each topic you have to refer to a YouTube video understand it and then finally you have to you know move to the next topic that has to be the only way if you start watching videos randomly without making a list of topics I'm telling you you will get confused your mind will be messed up because there is so much content available on YouTube and when you watch one video hundreds of new videos are shown in the recommendation you end up watching them and it's a endless loop so all this half is only managed content has to be first put down in a systematic structure that is what we've done on our website we have given you a free list of all the topics that you have to study for UGC net paper to English literature it is absolutely free of cost you can go to the website get the list and then start preparing on your own the only challenge you might face here is that there is so much to study and understand that it is a very very time-taking process that is the reason why people enroll in a coaching class because there they get all the material in one place they just have to listen to the lecture understand it make notes and you know if you want to mug it up then you have to mug it that's it right but if you study on your own then a lot of time is invested in understanding material from different sources you have to actually gather data understand it all of that you know involves a lot of complexities so if you are somebody who is ready to take it as a challenge then why not because when I was preparing for UGC net that is what I did I studied from different sources different topics and then I put them together and studied it and that is actually what made me a person who could teach all those topics in so much depth because I was gathering data from different sources I was studying things in depth I was studying it from an angle that I might have to teach this topic to someone so I had to have a complete grasp over this topic but then if you are in a coaching institute they'll serve you everything on the platter in that case it becomes a lot more easier to absorb the information quickly and move to the second topic but then the choice is on you if you are ready to do that hard work to get a list of topics to you know gather data for each topic from different YouTube video the next challenge is that a lot of people say that they don't feel motivated enough when they are studying on their own if they've enrolled in a coaching class their money has been invested so they feel motivated to study but if they're studying on their own they might study for one day and they're not study for five days so for this I have a very simple trick what you have to do is every day make a to-do list of the tasks that you have to complete but the problem is that the first task that we take is so big so huge that we don't feel like starting it right so what you can do is the first task of the day that you have to do has to be very simple for example today you have to complete one topic this is your to-do list for the day so what you do you break this topic into two parts the first chunk or the first task of the day would be to just read one paragraph of that topic from a book or to watch five minutes of a video from YouTube on that particular topic only that much why because when you do the first task which is very quick and you would be motivated to complete it because you'll be like okay five minutes see to let's do it so when you complete that first task you have this sense of accomplishment you have this rewarding feeling inside you and this sense of accomplishment will motivate you to complete the entire chapter the problem is that we take first task so big that we don't feel like starting it so the first task has to be the simplest and the most entertaining task of the day only then you will feel motivated enough to complete the entire to-do list last but not the least we have the most important challenge which is distractions YouTube is full of distractions you watch one video and it is going to give you so many other videos in recommendation of your favorite TV show and when you start studying after 30 minutes you might not even know that you've started watching your favorite TV show so the only thing that can help you to stay away from distraction is a focus timer so I use this app called focus timer what this app does is that you can set a time limit into this app for that many minutes you have to study with concentration and once that time of buzzes then you give yourself a rest period of say 10 minutes of 15 minutes when you are free to watch whatever you want to do whatever you want so you tell yourself to focus for a time and then you tell yourself to get distracted for as many minutes as you want right this will help you to ensure that when you are studying you are actually making sure that you are doing quality studies and not just quantity studies right so use this technique of focus timer available on so many apps you can even use your timer the inbuilt timer of your mobile phone also for this so you just have to put a time limit and for that much minutes you have to study and then you give yourself a good span of time to enjoy because you will only feel motivated to study if your brain can sporsy that after 30 minutes I am getting 10 minutes of free time and that would be a guilt free free time because you have already accomplished something and as a reward you are giving yourself that free time right so use this technique and I'm pretty sure that distraction level would come really down so with that note I would like to take your leave I hope this video was fruitful for you if you have any other questions which you want me to address in the upcoming videos feel free to put that in the comment section below with that note I am taking your leave that's it from my side for this video lecture I'll meet you very soon in the next video lecture till the time I meet next happy learning keep loving literature and stay tuned to ArpitaKarva.com


We have had guests the last two weeks. I've loved having guests. And I, from the feedback we've gotten from everybody at, you know, feedback at mackeygab.com, it has not just been me. That's loved it. Not just us. That's loved it. Everybody seems to have loved having Gary and then, uh, you know, a first time guest with, with Gary and then a long, long, long, long, long time, almost our first guest, uh, with pilot Pete. So yeah. So I could think of one or two. What's that? I could think of one or two people. One or two people. What, um, to bring on, I'll send it to feedback at mackeygab.com. Yeah. And I actually, everybody do that. Tell us who you would like to have. Join us on the show, because it seems like the guests are a good thing. It, they mix it up. Like last week, Pete's tip with his, his adding another shortcut to the print menu game changing. Like for me and lots and lots and lots of you, I know.  So it's great. Fantastic. We love it. So yeah, let us know who you would like to see. Join us here or who you would like to hear. Join us here and we will, uh, we will reach out and, uh, and go from there. Yeah.


but I think that's it for housekeeping, so I'll give it over to you that and we can get started. Okay, thank you. Yeah, I am speaking on behalf of the Academic Integrity Committee, some of the members which are over here to my left, and we are all happy to answer any questions after the presentation. Oh, wrong computer. Here we go. So one reason we wanted to think about academic integrity and exactly what we're doing in our procedures is because of the rapid increase in the number of cases that we've noticed over the last several years. So we're in 2010 we maybe had 12 cases, we now have more like 80 cases and so that starts to be a lot of people that that we're dealing with that we want to make sure we're dealing with fairly and consistently and have really solid procedures in place for this. So one question is are people cheating more or are people getting caught more and probably the answer to to both of those is likely yes, although we don't. There's no way, no control case to really know which of those is true. We just know that we have a lot more cases than we used to. There are many different types of academic integrity violations. I'll kind of quickly go through some of the some of the main ones. Copying, of course, is an academic integrity violation. Submitting another person's work as one's own or submitting another person's work without proper citation. That can often happen accidentally in a way when people are working in a group and they're not clear that they have to turn in their own individual assignment even though they're part of a particular group. So I think being very clear in assignments and in your syllabus as well as to when something is truly something that's a group effort and everyone turns in the same thing versus things where maybe people in a group are all assigned a similar thing say one group has a particular case that they're looking at but it's still an individual assignment. That can get kind of confusing for students and it could lead to some of this. Unauthorized test possession purchase or supplying. We'll talk more about how that is being done in a kind of big way now with certain sites so we'll talk about that in a minute. Ghosting where you pretend to be someone different and go take the test for them. Clearly a violation. Altering exams or assignments. Improper use of technology. So having your calculator when you're not supposed to, having your phone out when you're not supposed to. So again it's good to be very clear about what they are allowed to have out and what they're not so that people aren't caught, you know, doing something they didn't realize was wrong. So the more clear everyone can make their expectations then at least we're giving, we are only kind of catching people who really are trying to violate the academic integrity. Facilitating academic dishonesty by others and I think students maybe don't always know that this is bad, that they are in as much trouble as the other person if they do this. So giving someone your old exams or leaving your homework laying out so your roommate can kind of copy it. You are still at fault for that. So that I think they don't really because they did their work but you can't give your work and let someone else have it. So many weren't previously used without permission. I think this is another place where students have some confusion because they wrote the paper but they wrote it for a different class and they already got credit for it in that class so they can't use that same paper in another class. That one again can be confusing because it's their work but you can't double count it like that unless you have talked to the professor and for some reason are given permission to do that. Unauthorized collaboration and here again this is where it's important to be very clear about what is group work and what is individual work and we obviously like to have students have study groups. I think they learn really well when they're all working on problem sets together but in the end the answer they turn in has to be their understanding of that answer. So some clarity about those expectations is again really important and unauthorized use of study aids is clearly violation. And these are described on that the link down there or if you just google sanctioning guidelines for academic integrity violations at Penn State you would get to the to a very long list with a lot more description about what each of these are and what is considered a minor infraction and major infraction for each of these different types of violations. So this is called know your students heroes because there is a study site called course hero where students can upload their information so they can upload previous tests that they took they can upload all their assignments from a course and these are things obviously we don't want living out on the internet for for other students to find. It is a violation of Penn State's policies for students to do that but they might not realize that it's important that people use the newest version of the syllabus template because a lot of information like that is in the the newest version of the template will try to catch these kind of things and help help professors have them covered if they were to happen in their class. So this could be both an academic integrity violation and also a copyright violation.  One is the difference between academic sanctions and conduct sanctions if there was a word to neck. Yeah it's fine it just was one line looked a little better but but we can read it. Academic sanctions are are consequences that are going to affect a student's course grade so like they kind of like they sound. So giving a zero on an assignment saying that they're going to have a reduction in their course grade by a full letter things like that are academic sanctions and again there are good pretty good guidelines or given the severity and the type of infraction in what is sort of a recommended academic sanction to go with that. The other type of sanction is a conduct sanction and these are really consequences that instead of directly affecting a grade kind of affect their standing as a Penn State student. So this could be a warning for academic integrity violation probation a notation of xf on a transcript if they failed they have to get an f in the course for them to make it into an xf but it would indicate that the f was because they cheated so it's a pretty serious thing to have on your transcript and in rare cases or in repeated behaviors it could lead to expulsion and all of those are conduct sanctions and the two are handled pretty differently and we're really as a committee have decided to handle these two pretty differently. You'll see what I mean. So conduct sanctions are implemented when cases are particularly egregious or there's this pattern of dishonest behavior across multiple courses so when people start to have priors then we start to think about what the conduct sanction should be. So as a committee we talked a lot about if someone does have a prior what should we do with that should that automatically go into an increased academic sanction or should it go on the conduct side and we have kind of decided as a committee that it makes more sense for each class to kind of for that grade to represent what the violation was in that particular course so you keep the original academic sanction that was you know that the instructor requested but if there are priors then you add a conduct sanction to that so we're kind of separating the two. So as an instructor you aren't going to be changing grades based on what happened in completely different courses a year or two ago that'll be handled through the conduct side of things. I think it's a cleaner representation of what the student actually did as well. Okay so if you think that someone cheated in your course now what do you do the first thing is really to have a conversation with this student is possible there's a misunderstanding it's possible they really were confused about the directions so have a have a conversation if you still believe that there was a violation then you need to fill out an academic integrity form which is shown here and I'll zoom in on particular parts of it on the next slide. Give the form to the student and immediately send the form also by email to Martha Travers in the Ryan Family Student Center that's important to do because then Martha knows when to start the clock because there's a five-day time period for the student to contest and it's you know this way you don't have to keep track of that like Martha is keeping track of that for you and she knows exactly when it ends if they don't contest within that time period then we assume that they are accepting responsibility for the violation. Yeah so that form can be both emailed to the student or physically provided to the student. Yes and the clock starts ticking. The clock starts by the instructor time date on the form and it's five business days so at the end of the business day most of the business on a fifth day I don't immediately send it to the office of student time. I'll wait until the next day just a little bit more time and then by the end of the day on the sixth day I'll send it to the office of student. So the main parts that an instructor would need to deal with are five six and seven here so five is a description of the alleged violation and you can attach supporting documentation if you have some so an example here is student copying the answers to an assignment from the internet and maybe you would have documentation that shows where that exact answer was on the internet along with their answer and then number six is your proposed academic sanction so here I've put a score of zero on the assignment it's what I would like the consequence to be and it here's the actual link to that sanctioning guidelines big chart it's kind of intimidating but once you start looking through it it's very helpful actually for figuring out what to do. Number seven is the recommended disciplinary sanction which is really about the conduct sanction that an instructor can request so if you believe it was so egregious that you want there to be a conduct sanction as well then you could put one you could put one in there. Generally what we have found I think I'm accurate in saying that instructors usually put in an academic sanction and leave the conduct sanction part to the academic integrity committee but you can put one in if you want to. The student can contest both the charge so whatever is the number five and the sanction so they can say yes I cheated but the sanction is too strong I don't think that's a fair sanction. Here we go. It's also important to note that we are fully in charge of what the academic sanction will be as a college the conduct sanctions we recommend to the office of student conduct and then the final decision is theirs for those then that keeps things a little more consistent across the entire university. Okay so what if the student can test what do you have to do then? There may be a hearing with the EMS academic integrity committee most likely there will be a hearing but if the student doesn't want one they don't have to have one but it it would be kind of odd to contest but not want a hearing so usually there will be a hearing. You'll need to provide evidence of the infraction for the hearing anything in addition to what you you supplied with the original form that you think makes the case stronger. The student can submit a letter and any evidence they have that supports their side of the story. Both sides say all of the evidence and arguments before the hearing so you will get to see what the student is saying to counter you know what their explanation is for what happened. You can attend the hearing in person or over the phone your attendance is separate from that of the student so you don't have to worry about you know both being there and having to argue back and forth. The student comes in they tell their side we ask questions they leave and then we engage with you so I think that's a little bit nicer way for both sides probably for that to happen and you are not required to attend. After that we will let you know the outcome and that outcome is based on a preponderance and the evidence which is kind of a weaker standard than beyond a reasonable doubt. So if it's more likely than not that the student is responsible for that violation then we will find them responsible. It doesn't have to be like in the court system. If they are not responsible then you will apply the academic sanction you recommended after you're notified that the process has been completed and we will also recommend any conduct sanction based on your recommendation as well as the information about prior offenses. So we will kind of take care of the conduct sanction part you don't really have to get involved with that if you want to. It is important the way to apply and adjust to grade until after the process is complete and you've been notified of the outcome. So you can just leave it blank in canvas or wherever you put your grades until until you know how this turns out and then put in either the original grade if they're found not responsible or whatever the adjusted grade is if they are found responsible. You might wonder too can a student file an appeal? The decisions are by the committee are final so they cannot be appealed unless in the most egregious cases where we would recommend dismissal from college programs which is an academic sanction that one can be appealed to the dean or the dean's representative. Conduct sanctions again are just sent to the office of student conduct and they are resolved there and cannot be appealed. The process here is summarized in this flow chart that we have as a handout over there and it will also be available on the website. I think it's still the old version right now but the new version yeah I think that's that thing again. Yeah and this was the one sent in email to all instructors in EMS as well so you shouldn't have it in your email too. So that is all I have for presentations so we can move into the Q&A with the panel.


A life-threatening situation that I have no control over. That's very difficult. That's hard. She's been a survivor for ten years and you tell that story as if she got diagnosed yesterday. It's always present. What does that mean? It's always present. What does that mean? When you talk about our marriage, we had been married so long that we got to a point that I did my thing. She did her thing in business and sometimes we saw each other before we went to bed. Most time we didn't. And then when you're faced with the possibility that one of you may not be there, and especially her, that she may not be there.


Zik kun just means straight punch and in the wind dummy form we see that here when we do a zat sao and a zik kun or a zat sao and a zik kun here. So it's just a straight punch towards the solar plexus of the person. So it's combined with the zat sao and the straight punch here.


In today's video we find out whose luck is better, mine, or yours. What's up guys, we're back with another video where we find out if I have better luck than you guys. So I was sent this Majestic Star Dragon 10 by a viewer of the channel, he also has a no-deer, so we're just gonna start off with that before we talk about the video. Hey Brux and I've been watching your channel for almost a year now, love the videos man. My favorite was when you opened the 2009 5Ds 10 and opened and got the ultimate rare Majestic Star Dragon. That was recently, you can go check that video out if you guys missed that one. I'm a big USA fan, even dressed up as him once. Your luck has been insane when it comes to pulling cards, hope you can get me that ghost rare or that expensive secret rare. Keep doing what you're doing, stay safe. PS, the card that's top loader for the giveaway here, hope the promo is in good condition to grade from Junior Lopez aka Ryder 399. You heard what he mentioned, he said my luck has been insane, but that's when I'm opening for other people. So I decided to not only open Junior's Majestic Star 10, but to bring in a Majestic Star Dragon 10 of my own. I've had great luck for opening for viewers and I've had some good luck on my own as well, but it feels like when I open for viewers it's just a lot better, so we're gonna pit these two exact same 10s against one another and find out where my luck is the best. But before that we have Junior's giveaway, he sent us a top loader of cards, let's see what they are. So we have a gold secret rare Blackwing Armor Master, it's actually a pretty nice card right now, and then we have a Trivy Karma. So if you guys want to end on the giveaway, win these two cards, just like the video, be subscribed, turn on notifications, and let me know in the comments where my luck is better, opening for viewers or opening for myself. Yo, I'm back! But Ruxin, where are you back from? If you guys don't know, I streamed on What Not back in 2021 and I've made my return to What Not. If you guys don't know what What Not is, What Not is a streaming platform where you can sell stuff live. And if you're a viewer on What Not, you can show up to the livestream, watch the stuff get open, watch stuff get sold, it's really fun to see the auction prices and people going back and forth trying to get different stuff. And you might think, I don't really want to spend any money right now, well that's where I come in. Use my link down below and you'll get $15 for free when you sign up for What Not. It doesn't have to be on my stream, it could be on Team Samurai Stream, it could be on Simply Unlucky Stream, it can be completely unrelated to Yu-Gi-Oh, because this isn't just a TZG platform, there's also a lot of other cool stuff like shoes and other collectibles like that that are being sold on What Not. And I will be streaming live Thursday, March 30th at 5pm central, we'll be selling stuff like Epic Yu-Gi-Oh Singles and Old School Yu-Gi-Oh Packs. And I will be giving away over $500 worth of Yu-Gi-Oh cards in this stream, so you guys want to make sure you're there. And some of these giveaways will not require a purchase at all. You can simply be viewing the stream and win. And don't forget to use that link down below to get that $15 off when you come to the stream so you can save yourself some money. Thanks again to What Not for sponsoring this video. All right, we are going to start off with Junior's Tan and see what I can pull for him. Can we pull that Majestic Star Dragon again or the Ghost Rare? I've pulled Ghost Rare for multiple different people. Also, I've pulled Mini for myself. So maybe today's the day we pulled Majestic Star Dragon. I don't think I've ever pulled that one in terms of the Ghost Rare. We pulled obviously the Ultimate Rare he mentioned. And that was what it was a pretty amazing pull. Oh, and then we've got our promo, which I forgot they don't actually put these in anything in 2009. I thought about that point they'd figured it out, but it looks pretty good. There's a print line right across the middle, unfortunately, but the rest of it honestly, pretty nice. Whoa, talk about Secret Rare. That is beautiful right there. Okay, a little bit warped as well. So I mean, it's like PSA9 condition. I mean, you flatten this thing out. It's definitely a nine at least. And then for the rest of the packs, which are pretty amazing because we have first edition Stardust Overdrive because it's, you know, it's just how they did it in some of the packs. We got Ancient Prophecy, Raging Battle, and Crimson Crisis. So this is going to be a pretty crazy opening. We could pull some huge cards out of here. All right, let's start off with Crimson Crisis. We'll save those first editions for the end because those are absolutely insane. Can we have some crazy luck? Look, at some point, someone's going to open a tin in every packs and have a ghost rare in it. It might never happen, but if it did, I mean, it would be the craziest thing ever. We have an Assault Slash. Let's see what we can get, Junior, B-List, Soldier, Assault Teleport, me at a physical regeneration, Vernon Sanctuary, the Morphtronic, Borden, a Ivy Shackles, and we have a Psyche Tuning and Psyche Sword. Okay, no foil. I think it's after the rare. I could be wrong, but I'm pretty sure it's after the rare. Let's do Raging Battle next, Power Tool Dragon. We'll take it Unlimited. We wouldn't mind an unlimited ghost rare at all. Let's make it happen. One, two, three. We have a Natural Tune. Very nice. Double Tool CD. Oh, Ruxen Special there. Mermaid Arch, of course, Ruxen Special. It's got to happen. Vixen Seed, Gadget Arms, the Arms of the Gadget, Rose Tentacles. Oh, wait, whoa. Okay, it is in front of the rare. That's an Ultra Rare. Then there's an Ojama Blue. Okay, it's an Ultra Rare Grave of the Super Ancient Organism. I remember this was like expensive randomly. I think people were actually using it. What does it actually do? Level 6 or higher, special summon wants on the field cannot declare an attack. Interesting. So it was being teched in recently in decks like a few months ago. So I don't know if it's still worth something, but Ultra Rare, that's a very nice pull. Already a good start for Junior. Ojama Blue is also a cool rare, and then the Morphtronic Repair Unit. All right, not a bad pull. An Ultra Rare out on one of these facts is not guaranteed. Not even supers are guaranteed. So we're talking a pretty high-end pull right there. Ancient Prophecy. Can we pull that Ancient Fairy Dragon? We've searched for this many, many times. Yeah, we did eventually pull it. We have the Hydro Pressure Cannon, Flamville Counter. Oh, wait, that means I need to do. So this is the fourth, fifth, and it's going to be there, is what we need to do. We need a little bit of that. Let's see if that works. Flamville Counter. We have the Core Blaster for those workouts. Spirit Burner. A Depth Amulet. Genetic Woman. We have a XX Saber Fulham Knight and an Advanced Draw. So we will not know if that Pactric actually works until we bill of oil. Also, you've got to remember a lot of these packs did differently as well. So we have Stardust Overdrive First Edition. Let's just check it out. Check out the artwork before we open it. It's a pretty big pack. There's some amazing potentially good cards in here. One, two, three, four. Wait, so four is where I thought it would be, but I'm just going to do this. Maybe. I don't know. We'll try. Oh, wait. I don't know what I'm doing. I messed it up. Slip something. Let's go. We got the Dark Spider. The Spider Web for all those Spider cards. Tune Magician. We have a Spider-Spider. So many Spiders in this set. Ritual of Grace. We have a Zero Gardener. I put the Rare here. Okay. So in Sila and Sila and Medusa. Yeah, I don't know what kind of Pactric I did, but it definitely was not right that time. Final Pack for June. We have pulled an Ultra Rare, which is not bad. It's also a pretty clean promo. Not bad at all. We have not pulled anything like, you know, I'm pulled a Ghost Rare yet, but, you know, it could be pretty cool. So I think this is what it is. So this is going to go here and then this is going to go here. Let's be careful because there's a Ghost Rare right there. We have a Woodland Archer. Can you imagine? Dark Spider. Gemini Spark. Solitaire Magician. The Regulus. Wolf in Chief's Clothing. Attack pheromones. The Dark Rabbit from Pegasus. And we have a Ooh, a Kwaki Mirror Beetle. So that is a Super Rare. So two foils out of five packs. Actually pretty solid luck. I mean, I don't know. I don't think Kwaki Mirror Beetle is very valuable, but hey, that's two foils. That's probably going to be better than what I get, but we'll find out right now. All right, on to my tin. Will my tin pull something amazing? Two advanced packs and one pack of sleep. Advanced pack. What does that mean? Okay, yeah, those are at the bottom of the thing, the pack of sleeves at the bottom of the tin, but they're pretty bad sleeves.  So let's see if that means that there's, you know, something great inside. Maybe that means that it doesn't mean that it doesn't, but let's find out. All right, so oh my gosh, my promo has been slung about a little bit star or not Starlight Seagra. Oh yeah, we definitely got that kind of look. Whoa, that, this card looks amazing. I never realized how good it looked, but the top edge is definitely a little messed up. Back looks pretty clean. There's a little bit of print line going on there, but still a nice card. I'll take it. Then we have our promos.  All right, we have the same exact packs, two first edition starters, overdrive, and the other four packs as well. Let's see what we can pull against junior. I mean, he didn't ask for this battle, but is what he will be receiving.  That would be the rare, I think it's this in theory, something like this. We're going to do like that. A little bit of craziness. All right, we have a mysterious triangle. Let's see if I can pull something amazing. Is my luck better? Or is it better when I open for other people? We'll find out assault mercenary, the vengeful servant. Morphotronic mix up, the alien Ammonite, and we have Morphotronic slinging. So nothing too crazy there. Okay, raging battle. So far, I'm definitely losing to juniors 10. Let's see what we can get this time. Raging battle, a ghost rare power tool dragon. One, two, three. Then we're going to go like this. We're going to do a little bit of that and a little bit of this. Let's see if that gives us a ghost rare. Urgent synthesis, nice. The Kwaki Miro, dude, he's playing a little video games, alien doge, wicked rebirth, the Morphotronic videon, Kwaki Miro guardian, Lava dragon. We have the Kwaki Miro ice. And finally, will it be a ghost rare or ultra rare power tool dragon? Let's find out. No, but it will be a Blackwing Shura, the blue flame. That's actually a really strong, just common card. But yeah, that's a nice card for Edison and those Blackwing decks is just a really good card. Okay, three packs left. Ancient prophecy. Here we go. So I've not pulled a foil yet. That sure was pretty nice, but not pulled a foil yet. Let's go one, two, three. We got to do a little loop-de-loop and pull for SpongeBob. Let's do that. We have a Blackwing Mistral, the silver shield that released for straight wave. Fairy wind, can we be juniors? So far, he has two foils. We have zero. So let's see what we can do. Shark cruiser, add one with the sword. Ancient crimson ape, the pixie ring, ring of the pixie. The fortune lady fire. Some of these are actually worth something. I don't think it's fire, but we can check obviously.  So we do have a super rare. I have officially pulled a foil out of my tin. We're catching up. We just need an ultra rare now. Not a bad pull. And now we have the two biggest packs left. Stardust Overdrive. First edition. Will I pull the ghost rare? Let's go. Majestic Star Dragon. Here we go. One, two, three. So what I'm going to do is do that. And then I'm going to do this just so I'm careful with the cards in case there is a ghost rare in here. We have a Regulus. Very nice. We have a quick draw. Sync Rod, a nice card for Edison as well. Not that it's a very good deck anymore, but it's so cool. Roy the Earthbound. We have Reptilian Spawn, the Sea Panther. Limit Impulse. We have Time, Passage. A Dijin, Presider of Rituals. And finally, our final card of this pack. Will it be a ghost rare? No, it will be a Reptilian Asylum. One of the really the weirdest cards I've ever seen. Now that I'm looking at it, kind of weird. Yeah, I'm not a big fan of that card. So we're just going to move on to the final pack. This is the Stardust Overdrive. First edition pack. Let's see what we can pull. Will it be epic? Will it be awesome? I'm hoping that it will be. Ghost Rare. Majestic Star Dragon. One, two, three. Then we have, wait, it's this. Yeah, we can do this because we know it's in the front. Reptilian Medusa. Ocellion. We have a Insect Neglect. Time, Passage. With a Time Wizard. We have Spider, Spider Web. Relinquished Spider. It's a spider mixed with relinquished. Very nice. The Eater of Levels. Okay, Earthbound Revival. Here's the final card of my tin. This determines if I have better pulls for myself or others right now. Others is winning. Junior is winning this one. Ghost Rare. A spider egg. And there it is, ladies and gentlemen. We officially have worse luck when I open for myself. Junior, congrats on your two pulls, one being an ultra rare. That was pretty awesome. And if you enjoyed the video, make sure to subscribe to the channel for more epic content like this. Shout out to Toenfo Show, Daxter JTChill, Puffins of Doom, Ernesto D'And, Dizzy Hoppus, Choice333, Missycle James Jantz, TCG Trust of Cards, America Deutzer, Supreme Stage 21, Ananatai Show, Ian Moussa, Junior Barting, Mimic Gecko, and Thomas McClane. Thank you guys for supporting the channel. I'll see you guys in the next one. Peace.