Hi everyone, welcome to what the F is going on in Latin America. This is Code Pink's weekly webinar of 20 minutes of hot news out of Latin America and the Caribbean. We broadcast live on Facebook every Wednesday, 9 a.m. Pacific, 12 p.m. Eastern. Today we have a really fascinating guest and conversation for you. Our guest is Catherine Murphy. Some of you watching. Hi Catherine. Catherine is a good friend, a fantastic independent filmmaker and a fellow Latin American activist. Some of you may know her and her film Maestra. We are really fortunate to have Catherine join us today from California. We want to discuss the Cuba literacy program today, particularly on the heels of Bernie Sanders comment last week in support of Cuba eradicating illiteracy and the pushback that he got in mainstream U.S. media and among various presidential candidates for making that remark. So here we are, Catherine. I'm so thankful that you were able to join us.  So maybe you could tell our guests a little bit about yourself, your own relationship with Cuba and your film project Maestra, and then let's go into the successes of the program and how it's expanded. Yeah, good morning Terry and thanks a lot for having me.  So I am talking to you now from Northern California kind of near the university campus where I grew up where my mom was in school and one of the ways that my mom was able to go to school when I was, you know, my sister and I were really little was that my great aunt would be home every day when you know we'd walk home from school and the person would be at our house as my great aunt, my dad's aunt, my grandma's sister. So and that's related to all of this because she grew up in Cuba and she, my grandmother, my great aunt were daughters of a community of North Americans who lived in the middle of the island in Cuba that in the early years of well right after the Spanish-American War and several years of U.S. occupation of Cuba and what they call the birth of the Republic began a period from 1902 to 1959 in which politics and the economy of Cuba were largely dominated by corporations and people from the United States and there was a huge tsunami of U.S. you know Cuba fought really really hard long and hard to kick out the Spaniards and then the U.S. basically usurped their independence and there was a tsunami of U.S. citizens and corporations that went to Cuba and my great grandparents were part of that. So I was sort of raised on these stories about Cuba but Cuba from back then and so I just had anyway it was deep in my consciousness and so when I started as a young person to learn about what the Cuban Revolution was really all about I got really interested in went there in 92 and did part of my studies I was sort of interested in my own family history and then that larger history U.S.-Cuba relations and also the once I got there really I became more interested in the social development model that started in 1959 in Cuba and certainly the literacy campaign was a huge piece of that. So I spent the decade of the 90s there and did a degree there at the University of Havana and then you know as I was I was studying the urban farming sector I was looking at the Cuban sort of the Cuban model social development model as you know so many things they've done so differently and in spite of being having very scarce resources really have solved a lot of the pressing global problems of the day and so I know that the world and certainly the United States has a lot to learn from Cuba in many spheres but I was really focused on the urban farming program and how you know Havana is the largest city in the Caribbean and was dependent on external food exports and really looking at how they transformed their food system and became a food producing city of Havana and there's a great documentary about that called the greeting of Cuba by Jamie Kiven and there's another wonderful documentary related to that also called the power of community and it's called the power of community how Cuba survived peak oil and those are both really great docs and if anyone out there's interested I may wrote my master's thesis on it and it's you can it's a called Cultivating Havana it's on the food first website you download it as a PDF so I know we're going to do a lot of links and stuff resources so I can also send you that cultivating share all of these documents on the in the comment section of our face of our post Facebook broadcast yeah and you know this whole thing about like food urban food farming and national literacy campaigns have a lot in common because you know food for all and education for all are still you know are like these huge pressing global problems but that actually have pretty simple solutions if there's political will and good organizing and an equitable distribution of resources and so it's really interesting how Cuba in both instances provides an amazing global model so tell us how you got involved in so we were you studied agriculture but you have produced you just ended up by default I believe researching the Cuban literacy 1961 literacy campaign tell us how you fell into that work and and how you came to produce the film Maestra and share that with our audiences to this this statement that Fidel Castro made at the UN that Cuba post-revolution that Cuba would eradicate illiteracy in a year and in fact did and we still have not achieved that here in the United States so I was I found as I was studying there in the 90s and researching about the community gardens and starting to publish a little bit about it that it was very like almost impossible for people to believe because the figures were just so huge in terms of like 30 000 urban gardens all around the city and hundreds of thousands of people directly involved and they started producing you know at certain point they were producing after several years of building this project you know producing over half of the produce that was eaten in the city and so you know when you it's hard to at that time they know there wasn't really a lot of internet I mean here or there this was in the 90s so internet was not a daily thing in everyone's house it was sort of sparse and hard to remember that time is it but um so you know it was like anyway I just sort of found I was sort of grappling with a saying like what I was finding was think were things that were hard for people in the outside world to believe I mean outside of Cuba right so but I was looking at um this urban farming within the context of this whole social development model of Cuba you know notions of development what is it really how do we learn to think about it looking at UN sustainable development goals and looking at the social development model from Cuba and as I was doing this research it was on urban farming and agriculture but also in other areas and so I came to meet a number of amazing men and women Cuban men and women doing really interesting work in the Cuba of today and several of them along the way mentioned like I went you know met them you know got in touch with them because of what they were doing now but several of them mentioned along the way that they felt like actually the most beautiful thing they ever did despite what professions they may have gone into but they felt like the most beautiful thing they ever did was teach people how to read and write when they were teenagers and after like the third or fourth person said that to me it just sort of struck me and I thought you know there's a larger story here and so I started collecting stories and at first I was just taking notes but then it sort of begged to be an audiovisual story because it was you know the personal stories were so powerful and beautiful and that's what the Maestro film was built upon but also the macro story and what they really achieved and the figures and the indicators were just spectacular so it sort of begged to be a film and so you know it did but you know what I found although I again I started recording personal stories and focus on the stories of the youngest women teachers what and then for the young these these women were high school age high junior high school and some even younger the one when when the revolutionary government said we're gonna eradicate your literacy yes so they that you know the revolutionary government overthrew a US-backed dictator Fulhincia Batista there had been many years of you know really all throughout from from the Spanish-American war until the Cuban Revolution there had always been organized resistance to US domination and so in the 50s there was a lot of you know there was an insurrection and it went for several years and then they were able to kick out Batista and you know the 26th of July movement under leadership Fidel Castro in the Cuban Revolution came to power on January 1st 1959 and they already had announced sort of a 10-point platform of which education was one key component and so they started right away you know doing major transformation of the country in all ways urban reform land reform housing reform reform in all these ways and certainly within education and in terms of literacy you know one in six adults in Cuba at the time were illiterate there were six million Cubans on the island at the time and one million of them were deemed illiterate by a census that happened in the 1950s that was not a Cuban revolution of figures so we could safely say that US corporate interests in Cuba had no interest in educating their workers yeah and that's the population that that the Castro government inherited absolutely absolutely absolutely so they inherited this country where one in six people could not read and write and they set out to bring everyone you know they set out to create a national education system that would be free and universal and the first big leap to that was being sure that everyone that had not had the opportunity to gain basic literacy could do it and also I think reframing the whole discussion in terms of not just seeing illiteracy as this individual problem where someone that didn't learn to read and write you know it was their own problem but actually it was everybody's problem there was a social problem those who'd had the opportunity to study and those who hadn't could actually come together and ally together to overcome this massive national problem and I think that is one of the most important things that we have to learn from it's is that that can also be applied to other issues so I was just building a better society as a whole a nation based on social inclusion and not social exclusion and a nation in which education and basic you know in healthcare and you can talk again about other things but you're in terms of come back to healthcare on another level but they say really saying education is for all education is for everyone and you can do it and it's possible and everyone has a role to play even you know really really young kids because what they'd learned by the time they're in third grade could still serve elders that had never been to school so they had this pilot program in 1960 of voluntary teachers that was strong enough and successful enough and starting to gratify the census you know take census up in the rural mountains and in urban shanty towns to the point where Fidel Castro in September of 1960 when he was speaking at the United Nations General Assembly in New York announced to the world that Cuba would become free of illiteracy in one year which is a seemingly impossible claim right I mean even today it seems hard at the time seemed hard so they made an open call for volunteer teachers and a quarter million people volunteered these are men and women old and young urban and rural you know workers the unions organized people the women's federation organized people every institution it was deemed to be the priority of the nation in 1961 and interestingly you know a ton a hundred over a hundred thousand of those volunteers that stepped forward were teenagers and high school age junior high school age and some of them may been younger in the maestro film one of the women we had the opportunity to interview and she's in the maestro film this amazing woman named Griselda Aguilera who has been to the U.S. a couple of she's met with almost all the code pink delegations that have gone to Cuba and you as well and so have I which I have how I met you in Havana right yeah like formally met you um yes but Griselda was seven in 1961 and her parents worked on the literacy campaign and she just insisted on going with them of course they didn't take her seriously they didn't want her to go but she insisted to the point where finally they agreed they let her take the minimal you know teacher test and she passed it because she was in first grade and she had a very advanced reading and writing level for her um age and so what she knew in first grade she was able to teach a man named Carlos Perez Isla who was 58 and was completely illiterate she taught him the alphabet she taught him how to write his name she taught him basic sentences and they had this incredible relationship teacher student relationship like over you know completely switched in terms of ages right so her story is I just a testament to what an incredible experience on a human level like every person that was involved you know how they were touched and transformed so their goal was to do it in a year they taught us over 700 000 people in a year and their goal was to get all these newly literate adults up to a first grade reading level so again it was this first hugely to what became a long-term process of building a national education system and they also had a long-term commitment to ongoing adult education so in 1961 all of these you know men and women across the country seven over 700 000 of them who didn't know how to read and write and got to the first grade reading level that year then after it was over from December the end of December 1961 of all these young teachers marching through Havana it's just like sea is you know a sea of young faces and they're carrying the big paper from a shea pencil the lanterns and the images are so powerful um and really speak to that moment and to that experience well they went on then they started what they called the you know they did a campaign for the third grade and then a campaign for the sixth grade and then a campaign for the ninth grade which was ending in the mid 80s so while the first thing was like this huge you know amazing experience over one year in 1961 it was the priority of the nation that year and every institution was involved in there you know and they and they took years and decades really to get up to ninth grade level through night schools and school um schools and factories and workplaces that were very decentralized and now you know ninth grade is the standard minimum for the country I also just want to say really quickly I don't want to not say that you know the midst of 1961 spring 1961 was when the Bay of Pigs invasion happened so there's an incredible historic Cuban documentary called history of a battle and it starts talking about you know this battle for bringing education to everyone but then they're invaded in the middle and he says that particular you know what would we have been able to do yes in the midst of a literacy campaign the you know Bay of Pigs invasion and they say well he said in the film you know the narrator says imagine what we could have done if we could have only focused on education but Catherine let do you have any idea for your research what let's just talk about the the initial campaign of 1961 just so um our viewers can get an idea of what is possible for a majority illiterate population through volunteerism and the and will of people across society but do you have any idea how what the actual financial cost of this program was I know this will be in 1961 dollars but my understanding is it wasn't like enormous which is a big right right right right right I mean they really I never studied the total cost and I don't even know if they have figures about that it was all probably you know but it was like everyone you know they decentralized was like you know say the the place that was making clothes made their uniforms you know how those they have those little like girl scout boy scout kind of uniforms you know everyone had a uniform the lanterns were donated by China the transportation ministry got people out you know the education ministry definitely dedicated themselves to that best that year the printing presses were printing the teacher guides they you know it's like every institution had a major role to play so they decentralized it and while they did make it so it was a like a priority for resources on the one hand but you know it's not resources that are stopping us from doing it for example you know resources I think it's it's also a testament to the fact that resources aren't you know yes it's great to put your resources there but success or not success in terms of having an education campaign or a literacy campaign resources are not the main thing that are going to make it or break it you know in the U.S. we spend so many resources on education projects that aren't successful and we haven't you know an ongoing one in five low literacy rate in the U.S. one in five and that and in Cuba prior to the revolution it was one in six so that's the statistic people should keep in mind one in five and one of the six that I mean to consider the well in Cuba they brought their literacy rate to 96 percent they said that year so it was like four you know they reduced it from you know 20 percent illiteracy or you know one in six is the figure right to you know four percent of the people and people weren't forced to participate I think that's important also to remember so there was a margin of rural people or urban people like if you didn't want to participate you didn't have to and there were a lot of skepticism at first but as the classes went on and people saw their neighbors like participating and really learning to read and write and these young teachers really were dedicated and the classes were you know bearing fruit more and more people enrolled over the year but they were not obliged to do it so there were people that chose not to and that they that was fine I think that's an important piece of the story is that both the teaching and the learning were voluntary so let's talk about how this project this model has been used elsewhere in the world by I don't know how many countries 30 40 yeah 30 30 countries yep have used a an adult teaching methodology that grew out of that original campaign so you know I think it's also important to say that many many of the young teachers just fell in love with the experience of teaching in that 1961 and many of them went on to be teachers or educators and dedicate their lives to education and teaching in different realms but a small group of them specifically spent their lives working on adult literacy and one of those people is a woman named Leonella release who unfortunately passed away a couple years ago but Leonella release was 14 years old in 1961 and she was one of the original teachers on the 1961 literacy campaign and she spent her entire life working on adult literacy and was the head person on a Cuban team that developed a methodology that is now known as means yes I can and that's been used in over 30 countries around the world one of the most successful applications of it was in Venezuela under the I mean the mission mission Robinson mission Robinson was the first adult literacy program and then they also had continuing like and this program again was introduced by a revolutionary government a government that inherited a significantly large percentage of society that was illiterate yeah and and you know that relate you know the mutually strengthening relationship between Cuba and Venezuela was important on so many levels but this collaboration around the literacy work was really important because Cuba had been so successful in overcoming illiteracy in a short period of time so they did the mission Robinson classes and I believe one million people in Venezuela went through mission Robinson graduated from mission Robinson and then they had a team sort of a Cuban Venezuelan team went to Bolivia and started applying it in Bolivia and I actually went to um and a graduation in Bolivia I think it was in 2007 and an indigenous community called El Alto that had been you know the campaign had been being run by Cubans and Venezuelans and then after their success in Bolivia they were including you know Bolivian people was sort of like snowballing you know and going around Latin America it's also used widely in Brazil and it's their main counterpart in Brazil is the landless movement the MST and the MST has settlements all over the countries that are land occupations and they said that they I was in Brazil last year talking a meeting with some some of them we might do some kind of a collaboration for a um audiovisual documentation of the MST adult literacy programs but they said they're starting to organize farmers and do political education do land occupations they realize that many many many of these farmers and rural families were illiterate so they started doing literacy work as a key component and they're using the yosipuedo so it's been used in Spanish in Spain Mexico Nicaragua the 1980 Nicaragua literacy campaign has a major incorporation of Cuban uh the Cuban literacy campaign methodology as well as like polypathy thinking and literacy teaching and essential american literacy tradition of their own but so it's used in Nicaragua 1980 in Angola um in Spanish speaking world I was talking about Mexico Spain um uh Colombia has used it certainly Venezuela in Bolivia they did spin indigenous languages which is something they've had a lot of commitment to Quechua, Aymada and other indigenous languages um it's been used in Haiti in Haitian Creole in um New Zealand especially in Maori communities and in Australia in Aboriginal communities in Australia and there's actually a website there's been those folks have been really really active and I can send some links around that um the Australian yosipuedo program and also in Canada some of the people that started the Maori community literacy uh projects in New Zealand are now applying it in Canada and First Nations communities in Canada so it's really robust it's really ongoing it's a different they they do a lot you know because of many communities where there are low rates of literacy or high rates of illiteracy also have a chronic lack of teachers so they've what they've done is start to um adapt the teaching content to every specific context and use nouns that are relevant and meaningful to people in their daily lives in every different context and they train facilitators and they use a lot of audio visual support materials um like training you know visual training videos and um some audio files as well as books and they train the facilitators um and they're able to teach basic literacy in a relatively short period of time with a lot of success and then you know people need to keep it up but they're able to get that you know basic level with remarkable success they won a big award from UNESCO um in 2006 in the Cuban program with yes the Cuban program yosipuedo because Venezuela uh was um deemed um free of illiteracy thank you was ready to say two two negatives it was deemed to have eradicated illiteracy by UNESCO I think yeah 2005 or so um so the program is enormously successful and it and it's a fantastic example of what is possible when there is interest and a will of this of society and of the government and so I will just say since Bernie Sanders carried your home state last night in super tuesday that um he clearly understands what's possible as far as reaching all levels of society and and the benefits of having an educated illiterate population and that is just the correct of our growth as a nation of all nations yeah I also you know if we could just it's really interesting to me and I wasn't aware of this to the extent that the the number of indigenous population that this project has reached and of course the indigenous populations across the planet right now are really on the front lines of climate change of environmental activism of anti-neoliberal activism you mentioned in Alto and Bolivia these are really really vulnerable and threatened populations and it's just fascinating to me that the illiteracy programs are reaching into their communities which is a whole which is a whole additional tool for empowerment and engagement yes for them right yeah and I think they've been asking the indigenous communities like did they want to do I'm sorry everyone I think we lost Catherine's wi-fi signal but we are on our 20 30 minute threshold for our our weekly web oh here you are I was just going to say sorry I just say you know this no sorry I just like popped out of my computer it all went for a second so but you know again this you know the the role of yosi puedo in furthering literacy in an indigenous language is a major global contribution it is so is there anything that we should mention before we let our viewers go until next week we you're so gracious in giving us this 30 minutes I mean it's morning for you there in California is there anything we should uh any final comments anything we should close with specifically I guess my my closing comments would be that you know illiteracy is still a major unsolved global problem and it's including the United States including the United States one in five adults is illiterate and there's no reason that we should have those figures in the United States and Cuba proves that it's can be different this is a huge testament to what is possible in terms of literacy in terms of education and in every you know facing every pressing global issue um so we need to drape bigger and we need to keep working to a world where everyone has access to education as well as housing healthcare and basic human services and needs and it's possible we can do it and um gotta work for it and we need we need a government interested in helping us do that starts with us people though it starts in the community is on the ground and then we need to create a government that can help us achieve that so thank you Catherine thank you Terry a great conversation I always so enjoy working with you and I look forward to doing it again and I want to tell our viewers that you can join us next Wednesday 9 a.m. pacific on code pink facebook live 12 p.m. eastern for another episode of what the f is going on in Latin America and tomorrow morning on code pink radio simulcast on wba i new york city wpf w washington dc we will be in conversation um with some us mexico uh border activists so we'll be able to uh to look at what ill how illiteracy contributes to as one of the root causes of migration and that will be the principal conversation tomorrow on code pink radio root causes of migration and so your conversation is a good warm up to that Catherine and we'll see all of you next week thank you again great thank you bye


All right. Good morning, everybody. Everybody enjoy a slightly longer weekend than usual? Maybe you didn't enjoy a slightly longer weekend than usual. Maybe you spent it working on the assignments. So today, this is the last full week of class. We're going to spend today talking about how to make, today and part of Wednesday, I talked about how to make operating systems fast. And for those most of you that are going to go on and not write Linux device drivers or hack on BSD or work for Microsoft in the core OS division, this might be stuff that's a little bit more useful because these techniques and approaches to performance enhancement are things that you can apply to whatever code you write. And making code faster is always helpful. Nobody ever complained that their code was too fast. So we'll talk a little bit about how to measure performance. We'll talk a little bit about different approaches to improving performance, some of the pitfalls there, and a little bit about benchmarking. So how do we actually measure performance in the first place? As we're coming into the final stretch for assignment submission, so you guys have, what, three weeks? Two weeks? We're getting bad at counting. I think it's, somebody help me here. Three weeks from Saturday? Was that what it was? Next week? Maybe it's two weeks. Anyway, yeah, we're getting close. So this is, and I'm harping on this a little bit now because I feel like when the deadlines start to approach, this is a time where people do dumb things. So we've reminded you guys about cheating on the website. The other thing I want to remind people is that this is the collaboration policy that you guys have been agreeing to every time you submit an assignment. This is part of it. And part of it is you attesting that you and your partner are dividing the work in some sort of semi-even fashion. And every time you submit, again, this is what you're agreeing to. And the TAs have started to notify me about some groups that they feel like are particularly imbalanced. And that's not, again, this is what you guys are agreeing to every time you submit. Both parties. So if you guys are having some sort of issue with your partner, if you've been carrying your partner through multiple assignments, if you're working on an assignment too and they haven't written any code, it's probably time to come talk to us about that now. Because we have ways of noticing this. And if you're submitting things, you're agreeing to this. So when you submit things, you're attesting to the fact that you and your partner are both involved. So if that's not the case, then we need to know about it pretty soon. And if you tell us about it, that initiates a different set of procedures as opposed to if we find out about it later. So if you're working in a very dysfunctional partner group, please come talk to us. I think the people in this room are probably OK. But maybe talking to the internet, people who are in their pajamas at home. But again, you agree to these? And the TAs are sort of looking as they see people just spending an office hours and in other ways trying to determine are both people engaged? Are both people involved in these assignments? We don't want people carrying, one person carrying the entire group. It's not fair to your partner, really, who's trying to learn. It's not fair to the other students who are working hard and want to grade in the class that reflects their work. So if you have a partner problem, please email us. And we will work on it. So last Wednesday, we talked about operating system structure. And I actually didn't go through a little bit on interface design that was sort of tapped on to the end of that, but we can talk about it a little bit in a minute during the review. But it was kind of obvious stuff that you guys have heard before. Any questions about operating system structures? We talked about microkernels in particular and the different approach that microkernels bought to kernel organizations. I need questions on this before we do a little bit of a review. It was so long ago. So who remembers? I mean, some of the goals of when people decided, let's try this radical reorganization of operating system structure. What were some of the things that microkernels were trying to accomplish? What were some of the goals? What were some of the problems with more traditional monolithic kernel designs that microkernels were trying to address on it? Yeah, so you could potentially do that with the microkernel, right? I actually think back when microkernels were getting started, there was maybe less awareness of the problems that device drivers would cause in the future. But that's a good point. Yeah, Jared? So microkernels were modular? Yeah, so what's good about being modular in this particular case? OK, so yeah, that's actually a good point, right? So there was maybe some sense with microkernels that maybe at runtime you could bring in and out different pieces of code. And so you were getting some modularity just from the design, right? What other feature monolithic kernels, though, did we talk about that gives them some sort of degree of that same flexibility? What are most modern monolithic kernels support so that when you plug in a device to the system, they're not completely caught up, Sarah? Yeah, and not only can you recompile those binary modules, but what can you do at runtime, Robert? Yeah, you can kind of load them in these kernels have a loadable module sort of subsystems so that they can change their code at runtime, right? Like, this is something that really any application could do. There's no engineering reason, but it's particularly useful for kernels, right? Because if like, for example, like again, all these examples from Firefox, I'm sorry. In Firefox, downloads and update always has to restart, which really irritates me because I usually have 60 windows open on different desktops and it takes me half a day to sort of restore my setup. But it doesn't really need to do that, right? If your kernel did that frequently, it would probably get annoying, right? But kernels still kind of have to do that, right?  So anyway, certain types of updates to kernels are difficult to apply, but at least at runtime, I can change the code, I can load parts of code that allow me to deal with a certain type of device, certain kind of file system, right? That gives me some flexibility. What else does that do as well to the size of the kernel image itself, Dan? Makes it smaller, right? So I don't have to cram everything. You know, it's not a one size fits all. I don't have to bring everything I need with me right away and load it all into memory at runtime, right? I can leave parts on disk and only grab them when I need them and then unload them later, right? And as Sarah pointed out, I can't update them as well. What were other goals of micro kernels? It's something about modularity. What else do I get from modularity? What was one of the problems with big monolithic kernel designs that we haven't touched on yet? Peng, why don't we want to help them? My different ones don't have all the code right. Okay, that's a good point. But what else is a consequence of the fact that all this code is running in this privileged address space? Sean? It's messy. It's messy, yeah, okay. So by forcing modularity on ourselves, we can potentially improve the design of our system, right? There's no more of these little hacks, right? Because I realized that my interface to the core map isn't quite right and so I build this weird side channel or some other piece of VM code is modifying data structures that it really shouldn't be able to modify directly but it can because everything's in the same shared address space, right? I mean, how many people remember, maybe this is when you guys were in diapers, but there used to be talk about splitting Microsoft up into two companies. Does anyone remember this? For antitrust reasons, because there was this concern, right, by, so let's say like you're, so the Windows API, which we haven't really talked about is big and it's gone through multiple revisions and it's big and crufty and there's all sorts of ways to do any one particular thing, right? So let's say like you work at, I don't know, Firefox, right? And you're trying to figure out, there are 13 different windowing commands that potentially do almost the same thing, right? From like three or four different versions of the Windows API and you're trying to figure out which one to use, right? Well, what do you do? What's your, what are your options, right? Well, what would you do? You're working in Mozilla, you're trying to figure out, oh man, you know, I wanna write a, you know, I wanna draw a pixel to the screen or whatever, I've got all these different options, like what's the only real avenue that's available to you if you're trying to figure out, like what is the right one, which is the one that's the best supported? Cal, what's that? You could use the latest one, okay, so that'd be a good guess, right? What else could I look at? What might there potentially be, hopefully, for a big, popular platform? What else could I look at online, Tim? I could look at the docs or something like that. Okay, so then those aren't terrible options, but what can I, let's say I work at Internet Explorer, right? Okay, what can I do now? I've got these 13 versions of this, I'm trying to figure out, okay, you know, which one are they gonna support in Windows 8? Right, what option do I have that the Mozilla guy doesn't have? Jen, yeah, I can pick up the phone or I can send an email to the guy who wrote those things and be like, hey, buddy, which one of those is fast, right? Or which one have you worked on in the last six months, right? And so that was actually part of the concern at the time, was that Windows application developers were getting sort of an undue amount of performance improvement, or they were essentially privy to the internals of the operating system that external developers weren't, right? And that was causing them to have advantages when they wrote this, right? But part of the reason that happens is when you have these big, messy interfaces, they get to the point where no one's really quite sure like what the right way to do something is and there's several different ways and which one is fast and which one has the side effect that I want or whatever, or they might call up and say, hey, it would be really helpful if you guys like in the next version had this called it did this, right? Like it would be really helpful to us if we just, you just added this function, right? And that maybe some of that stuff happened as well, right? But there's still one more goal here that we haven't got to that I want to get to. Jeremy, well, in a certain way it was more tied down, right? Because one of the ways we made micro kernels fast is by really, really heavily optimizing their code. But Sean, that's a, sorry, Sam, yeah. What does that buy us though? Yeah, but what else are, Alyssa, what else are application services not going to be able to do that code could do if it was running in the privileged kernel? Yeah, okay, so we're getting closer, right? So by taking my file system imitation and moving into some sort of application service, what can bugs in that no longer do? Effect it how? We're getting so close, we're almost, yeah. What is the thing I'm worried about the system doing? They can't crash, right? They can't crash the whole machine, right? So I've, you know, remember all that code inside the kernel runs at the highest, potentially the highest privilege level, right? So it has the ability to do all sorts of terrible things to the system. And the less code I can put in there, the more fault tolerant my system will be, right? And there was this idea, right, that if my file server running in user space crashed, I would just be able to restart it and the system would go on running without there being a problem, right? Without having to hiccup. I mean, yeah, you wouldn't have your file system for a few seconds, right? But you would just restart it and it would be okay, right? All right, no, I think we've got most of this. So we didn't talk about this too much, right? But, you know, just let me, you know, when you start thinking about an interface design, and this is something that you guys will be thinking about during assignment three, right? You know, good interfaces between components were part of the goal of the microkernel movement, right? And that's something that you can incorporate into a monolithic design without having, it have to be a microkernel, right? There's no need for these microkernel, for some of the microkernel parts, if I really have good interfaces, right? But what do good interfaces do, right? I mean, you guys, you know, the way that we teach you how to program here stresses interfaces quite heavily, right? But I think that maybe people forget sometimes about what they are and what they can do, right? So, you know, good interfaces, and again, when you guys are working on assignment three, you're gonna find that this assignment is really much more about interface design than it is about anything else, right? Because good interfaces, you know, allow your partner, right? So substitute program, partner for programmer here, they allow your partner to make correct assumptions about things that you've written, right? Like, if I make this call, this is what will happen, right? They also allow you to change how that interface is implemented, which is important, right? And finally, they also are usually written in a way that allow individual pieces of the system to be split off and tested by themselves, right? So if I write a good interface that I can test across that interface, right? And I can verify, for example, that, you know, my core map works, right? That my address translation, you know, component works, right? But these things work. And then once I start combining them together, then I have more, there's a higher likelihood that everything will work once I start to integrate things. All right, so any other questions about this stuff before we talk about structure? Okay, so why don't, I mean, why do we care? I mean, this is maybe an obvious question, right? But why do we care about performance? We've touched on this before, right? So when I talk about performance, what am I normally potentially trading off here? What might I have to give up to get performance, right? Or alternatively, what might I have to sacrifice performance to achieve? Yeah, AJ. Safety, right? Or broadly speaking, you know, you can think of correctness, right? You know, and maybe the less checking I do the faster my system gets, Jeremy.  And this seems to be true, right?  But like the most popular consumer operating system for years and years had basic safety problems that didn't prevent it from, you know, gaining world domination, right? I mean, Windows finally got around to providing, you know, and, you know, the UNIX people were always very contemptuous about this, right? Like, they were like, oh gosh, Windows 2000. Wow, congratulations, right? Like, you guys have finally implemented, you know, memory protection, right? Like, we had that in the 70s, right? So, but again, I mean, this operating system sold and a lot of people used it and it crashed and that frustrated people, but they combined it, right? So maybe that's the best example of the fact that people, you know, they like fast, they also like having all the apps work and things like this, right? But again, so the correctness problems with Windows, and many of them have been fixed, probably a huge number of them have been fixed over time, but they didn't prevent it from selling and sort of taking over the operating system market. And now this is, so this is going back to Dykstra, right? So we talked about Dykstra's operating system, which was one of the last attempts to sort of, until very recently, to make a provably correct operating system design, right? And this is pretty awesome, right? Like, you know, the paper that he wrote about this is a really fun paper to read, actually. And let's see here. So this is talking, again, this is in 1960, so we're talking about, you know, the only errors that showed up during testing were trivial coding errors, right? Occurring with the density of only one error per 500 instruction, each of them located with 10 minutes at the machine and each of them correspondingly easy to read, right? But this is 1965, right? And this is probably the last time that people tried to build a system where the logical soundness of it could be proved from day one, right? Ever since then, we started sacrificing the safety for performance on a number of levels. And then here's something interesting to think about, right? And this is something that OS vendors have worked on a lot, right? You know, would you care as much about the blue screen of death, right? If all you saw was that blue screen for a second and then the system rebooted instantaneously. I mean, you probably still care because you were in the middle of typing this really incredible, you know, new VM system that you were building for assignment three and suddenly the machine rebooted and you might have lost a little work but there it is, right? Like it comes right back up and one of the things that consumer operating system vendors have done is spent a lot of time trying to optimize boot, right? Because they realize that if when things go wrong and this doesn't crash, if you can get people back up and working again, then maybe they care a little bit less, right? Maybe Bella is a little less. All right, so performance is, operating system performance isn't so different, right? From improving performance of other parts of the system. How many people have feel like they have a strategy in place for improving the performance of something, right?  Okay, well, this is good to talk about. It's not that hard, right? So we'll go over it, right? And you know, this will take us a few minutes, right? So the first thing you do is you have to measure, right, you need to measure the system so you know something about what you're trying to improve, right? Otherwise, if you made some changes, how do you know what they did, right? So the first thing is you have to take some measurements, right? Then you analyze the results and you try to use the results to determine what to do, right? So I take some measurements in my system and I figure out, okay, this is the slow part, right? And then I go in and I try to make the slow part faster, right? So that's step three, right? I improve the slow parts. That's not that hard, right? You know, step four is one of the more important ones. You know, you should start in the morning and then maybe move on to this by like mid-afternoon, right? So that's kind of like the right way to do this. And then you just repeat this, right? So you know, find what's slow, improve it and you know, have the celebratory beer and keep going, right? Okay, so on Friday, we'll talk about virtualization technology. Just kidding, right? This is a little bit harder than that, right? So, you know, everything's hard here, right? Like none of this is straightforward. I mean, this sounds easy, right? I mean, there's one easy part, right? Well, I don't know, it depends on how much you like beer and how difficult it is to determine which celebratory beer to drink and stuff for, right? So, you know, how, measure what, right? So under what conditions am I going to measure the system, right? What is the system going to be doing while I measure it, right? Is the system going to be doing something that provides a useful data point for me to start my performance analysis? We'll talk a little bit about that. So now I've got results, right? And hey, yeah, if you actually want meaningful results, you might like have to know something about statistics like a little bit, right? And actually this, you know, I've always been amused by how little statistical rigor there is in computer science. It's kind of like, oh, I computed a mean. All right, sweet.   How do I do this, right? Like what techniques, you know, I broke the code, right? I didn't write it to be slow. Maybe that actually would be a kind of a good strategy for people in the future, just write slow code, right? And then when your boss asks you to speed up, it's like, no problem, right? Like I know exactly why that's slow, right? Like I'm sitting in a while, one loop player is spinning for a while. Like I could just take that out. The system got faster, you know? You get a raise, awesome. And then, yeah, so anyway, so, yeah, exactly. After I do the statistics, I'm usually ready for my celebratory beer. Yeah, so let's talk about some of the things that make this challenging, right? So the first thing is fairly basic, sure. Oh yeah, we'll come back to benchmarking and, yeah, yeah. Choosing a benchmark, right? And then someone yells at you for choosing a benchmark. Maybe it's not a good benchmark. Maybe it's a good benchmark, but it's not a good benchmark because it doesn't make your system look good, right? So define good, right? Might be a very exhaustive benchmark that just doesn't happen to work for your particular company. So at the most basic level, right? Doing something as simple, I'm trying to give you guys sort of appreciation for the fact that this is difficult, right? So measuring time, right? How do you measure time on a computer system? Shouldn't this be something that's easy, right? And especially time at sort of small granularities, right? Yeah, so this starts to become an incredibly hardware specific problem, right? And a lot of actually what we talked about when we talked about statistics collection starts to become very, very determined by hardware, right? So for example, if I'm trying to determine how long things take, if the thing that I'm measuring takes a very small amount of time, the hardware counters I have on my system might not even have sufficient resolution to measure, right? They might say, oh, it took zero, right? I took 10 runs, you know, and I was trying to figure out how much this particular bit of my algorithm, how much time it took, and the results I got were 0, 0, 0, 0, 0, 0, right? So that's not very helpful, right? And then, so what systems try to do is they try to build up these timers, right, based on the capabilities of the hardware, right? But at high levels, my timers are determined by sort of like the worst case capabilities of the hardware, the slowest clock that any device that the system is going to boot on has. As I start to try to take more advantage of the hardware, that's great, right? And this can potentially be very useful. What it means is that my benchmarking and some of my performance analysis starts to become very tied to a specific hardware platform, right? And that becomes important because the details of that hardware platform may affect my results in other ways, right? So you may have been asked to improve the performance of something in general. You may end up only improving its performance on one particular device, which is not necessarily a bad thing. But if your improvements on that device don't actually translate to other devices, or worse yet, make things slower on other devices, right? Then you haven't really solved a problem, right? So, you know, and then you get into all, man, it's just, this gets more and more terrible, right? So counter's roll over, right? So it's like, suddenly the counter was big one minute, now it's little, so you have to check for that. You know, these, I don't know, this doesn't sound very exciting, but it turns out to be more exciting, right? So, okay, so, but let's assume that we can sort of get away with this, right? This might be hard, right? But we have some sort of counter that allows us to measure what we want. What's one way, just let me ask people, I mean, what's one way to get around this problem, right? Let's say I have a very fast event and a fairly slow counter. So how can I, how can I use that slow counter to measure? This could be like a, you know, a first round interview question. It's Google or something, you know? I give you a slow counter and something that runs fairly quickly. How can I use that slow counter to make meaningful performance measurements of that fast thing? Yeah? Yeah, run in a loop, right? Run it 10,000 times, right? And take the time it takes over the entire, over the entire, now, of course, that can cause other problems, right? Which we'll talk about in a second, but in general, that can be a strategy for using slow counters to measure fast things, right? Just to measure large numbers of them, right? Repeat the same test over, right? All right, so, we'd like our measurements to be repeatable, right? They, in theory, they should be repeatable. Well, I don't know if they should be repeatable or not, right? But they're not repeatable, right? And there's all sorts of, I mean, you can imagine there's all sorts of variables that are changing, but what is one of these fundamental things that operating systems are trying to do as you run, right? Operate system is trying to do what? Use the past to predict the future, right? You're trying to measure the present. Every time you run a measurement, you're giving the operating system more data points that it's trying to use to make the next time you do that faster, right? So what's a fairly basic sort of example of this, right?  Then you run it again, it takes four seconds to run, right? You run it again, it takes four seconds, it takes four and a half, it takes four, and then you walk away from the system for a while, then you come back and you run it again and now it takes eight seconds to run, right? What's happening? Yeah, caching, yeah, okay, so caching where in this particular case? Could be a lot of different places, right? Could be pages, I mean, the operating system has a whole cache hierarchy that's trying to defeat your repeatable measurement, right? It could be cached like very close to the processor, it could be cached in memory, you know, it could be in the buffer cache somewhere, right? And there's a funny joke in the performance measurement community, particularly in operating systems, right? Where there's a bunch of papers where you take a bunch of measurements and you get really high variance, but the mean kind of makes your point, right? So you put the number in the paper and you explain away the variance due to what? Cache effects, right? Like, oh yeah, I don't know, cache effects, right? Yeah, that's, you know, this is like, this is the really dirty carpet, right? That computer scientists have been sweeping results they don't understand under for a long time, right? Cache effects, you know? Oh, they don't want cache, it's always in the way, you know? Frequently wrong, right? But still kind of a fun catch-all to explain away things you don't like. Yeah, Jeremy? Oh yeah, absolutely. So good benchmarks do a lot to work around caches, right? So when you run, you know, mature benchmark suites, they'll do things, for example, well, they'll try to determine at runtime what the size of various caches on your system are and then they'll try to defeat them in certain ways, right? So for example, you know, L1 caches have certain lines that they'll bring into memory. If I make sure that my memory access are spaced out appropriately, then I can essentially defeat that cache, right? So anyway, yeah, if you look at really sophisticated benchmarks, they do a lot to try to, to try to, you know, make sure either that, you know, in certain cases you wanna test warm cache behavior, that's fine, right? That's one type of behavior, but you don't wanna confuse the behavior of the system when the caches are all warm with the behavior of the system when the caches are cold, right? That's a problem, right? Because you could be like, hey, I changed this one line of code and suddenly the system is 50% faster. It's like, no, that's not what happened. Cache effects, right? Yeah, so just talked about this. And the other problem is, you know, we're talking about these incredibly complex systems, right? So they're almost never in the exactly same state that they were last time you measured. And like something is different, right? You know, the Wi-Fi connection has changed, there's more networking traffic. Now you have even more problems, right? Because, you know, at least in the past maybe we were thinking about benchmarking stuff that ran on a single machine. Now you've got all of these effects out in the network itself that are almost impossible to control for a potential, right? Like you ran the test at, you know, in the middle of the night when the network in your building was, you know, fairly quiet, or you ran it at 2 a.m. when, you know, Demetrios and his students are running some sort of like wireless experiment that's essentially basically crashing the entire wireless network in the building, right? It's like, I can't connect to anything, right?  And then what's another problem with measurement, right? So I mean, I always say that we just talked about this, right, measurement affects the thing you're trying to measure, right? It can affect it because, again, the system is trying to adapt itself to the thing that you're doing, right? But what's another way that measurement would affect my system, especially when I'm doing performance measurement? What is measurement inherently going to introduce that I need to be aware of and compensate for? Aggrim, yeah, that's it. Okay, that's a form of this, yeah, sure. Let me pick out someone I haven't picked out today, Minesh. What's different about the system that I'm measuring versus the system that I care about? What does measurement cause? Yeah. Delays, faults, we're building up a broad category of, this causes overhead. It slows down, it inherently slows down the thing you're trying to measure, right? Depending on how you do the benchmark, it can slow it down a lot, right? Imagine, you know, so, and there's a couple, there could be a couple of consequences, right? So the first thing is that when you start to measure something, so you guys have probably had this happen to you already when you've been running your OS 161 curve, right? You've had some sort of race condition, right? And what have you tried to do to solve it, right? Because, you know, okay, it's assignment one and I don't really like GDP yet, so what do I do? How do I devote my system? Nothing, only. K printf, right? I stick in K printfs, right, in various places, try to figure out what's going on, like print the values of this variable, something weird is going on here, right? What does that K printf do? What does it cause the system to do repeatedly? It causes it in the block, it sits there waiting for the console device to print, and so you had this very tender, delicate race condition, right, that you were trying to isolate and the K printf made it go away, right?  That's not really what happens, right? It just means that, you know, somehow you probably chased that race condition somewhere else where you're gonna find it later, but the point is that frequently when you start to, especially when you're talking about bugs, right, but this happens with performance as well. Instrumenting things in order to take measurements can affect the behavior of the system in ways that are detrimental to observing some problem, right? So this happens a lot on commercial systems, right?  So this goes down to here, right? If you can convince them to run your instrumented version that's 10% slower, they may not experience the problem ever again, right? Or it may just become so unlikely because of some, you know, change that your instrumentation code is making to the ordering of threads or the timing of certain things or whatever, right? So you can potentially destroy the problem you're trying to solve. And then you also need to separate the results, right? So the actual performance of the system from the noise that's produced by your measurements, right? So from any overhead that's caused by the measurement that you're doing, right? Because measurement code is running itself, right? Like it is going to run on the machine. It's going to consume cycles. It's going to cause context switches. It's going to cause swapping. It's going to need memory to sort state. It may access the disk periodically to write the results out. So again, I mean, it's essentially like you've taken your system and now you're running a competing process next to the one that you were trying to measure, right? And this is, yeah, so I mean, this gets worse, right? When you think about, you know, again, how central the operating system is to everything that's happening and also the fact that operating system can produce like an amazing amount of debugging help, right? Like, yeah, let's say, okay, you know, I've got some problem. I don't understand how my, you know, my page replacement algorithm seems to have a bug in it. And so I'm just going to dump every page that the system replaces as it runs, right? Like that system is not going to be usable anymore, right? And it's probably going to fill up your disk with debugging output within a few seconds, right?  Real systems page quite a bit. And so if you're trying to debug certain things, it's possible that you won't even be able to see this stuff. All right, so, all right. So now maybe I've talked you out of this. So you know, you guys were going to say, okay, well, I've got this new idea. I'm going to implement some code in Linux, check it out. And you know, maybe I'll get a patch in a Linux. That'll be really cool. But now I've convinced you that you can't measure a real system, right? Like you're too scared to measure in a real system now. So what else can you do? What are other options here? I can't measure.  You still have a cool idea that you want to test out. What's, what are standard alternatives to benchmarking real systems? A couple of them. Dan. Yeah, there's, well, these are both a form of that, right? So again, I have this big complex, ugly, gross system, right? And instead of doing experiments on that, which is very, they're difficult to repeat. They require real hardware, right? What could I do instead? Yeah. I could build a simulator, right? Or I could build a model. So these are sort of two, two sort of classic approaches to trying to look at real system performance, right? So I can, you know, essentially build a model and models like when you know, you know, if you're trying to figure out whether you're dealing with a model or simulator, it's not that hard, right? But, you know, if you see equations, then you're probably dealing with a model, right? If you see, you know, an alternate piece of code that actually doesn't do anything useful, then, you know, that's a simulator, right? Usually simulators are their own application that encompasses the environment that you're trying to experiment with, right? And there have been, you know, if you go back, for example, people are familiar with RAID. RAID technology has some idea of what RAID is, right? So the original work on RAID used both of, you know, I definitely used models, right? So when people started proposing that you'd be able to combine multiple disks into one disk, right? They actually were able to sort of prove some of their points using analytical models, right? Like, here's how the system would work. And they had some, you know, equations in that paper that aren't too scary, right? But the idea is they, what they try to do is describe without building the real thing how the performance and the consistency of this device would work, right? And so that could be a very powerful, if you can prove things about your system analytically, then that can be quite, that can be quite powerful, right? Because that's something that, you know, then you just, then all you're worried about is trying to get the implementation right, right? Like, did I implement it correctly? And if you didn't implement it, like let's say you had a model that said I should definitely get a 25% speedup if I do this, right? And then you wouldn't implement it and you didn't get that 25% speedup. Well, you know, then either your implementation isn't very good, which is possible, right? Or there's some other effect that you haven't accounted for that's damaging your results, right? All right, so, you know, and again, the nice thing about models is you can potentially make these strong mathematical guarantees. The bad thing about models is usually in order to get to the point where you can actually say anything about a real system, you have to make all sorts of really, really bogus assumptions, right? And sometimes those assumptions, you know, those assumptions are usually unrealistic. Sometimes those assumptions end up causing your result to be wrong, right? Sometimes they don't. So as an example, there's been a lot of work looking at ad hoc networking, right?  And there's been a fair amount of analytical work in this area, right? A lot of that analytical work makes what's called the disk communication model. It essentially says a node can communicate with nodes that are within some radius of it, right? And maybe with some probability, but let's just say it's, you know, if you're inside that radius, I can communicate with you and if you are outside of that radius, I cannot communicate with you, right? So the disk communication model is just totally bogus, right? The real world is way more complicated than that, right? There's all sorts of weirdness, of wireless signal propagation and stuff like that. The causes of that model are completely breakdown. Some of the results that people were able to show from that model are reasonable and some of those systems worked well. Some of them did, right? But that's an example of the kind of unrealistic assumption that you need to make frequently in order to prove things about something mathematical. The simulators, right? In the best case, you can build simulators where your, you know, essentially what simulators do is they trade off accuracy for speed. But if I'm good and if I design my simulator carefully, it does a good job of reflecting the behavior of the real system, it just runs way, way, way faster and it potentially runs repeatedly, right? So if I simulate, yeah. So for example, you could do this with one of your page replacement algorithms, right? You could write a little simulator of your BM system that, you know, dirty pages in different, with different patterns and then you could run your page replacement algorithm and see how well it worked, right? And you could use that to determine, you know, how, you know, what the overall page fault rate was that was achieved given different types of page replacement algorithm, right? And yeah, so in the worst case, if my simulator doesn't reflect reality or if there's problems with it, I have bugs in it that can potentially send me down all sorts of, all sorts of, you know, extremely bad paths. So Margot has a story about when she was a graduate student working on a simulator for a disk, for a disk system. I don't remember exactly what simulator this particular, what system the simulator was built for, but she realized she was looking at the code and she was getting some numbers that she didn't understand, right? And this is always a good, when you're using simulators, it's always a good hint, right?  If it doesn't, then you need to do some debugging and she found some cases where it didn't so she started looking at the code and what she realized was in a certain case, the simulator was, I guess, simulating the buffer cache above the file system and then there was a certain case where the simulator would evict a dirty block from the buffer cache but not write it to disk. It just didn't simulate the write, right? So it would remove it and it would mark it as clean and somebody else could use it but it didn't simulate the overhead of actually doing the write to disk which is pretty substantial, right? So this was kind of a problem, right? This was a bug in the simulator, right? They didn't design it this way on purpose but the problem was that people had used this simulator to make points about file system design, right? And to present numbers that were now invalidated by this particular problem, right? So this is the danger when you start using simulators. If you don't get the simulator right then you get a bunch of bogus results and then a year or two later you end up having to raise your hand and be like, yeah, you know. I know that we said this one thing worked really well and it actually doesn't work as well as we thought. Maybe it doesn't work at all, right? So, all right. So now maybe I have some, you know, maybe between actually running experiments on real systems and using simulators and developing a model I have some foothold for getting started in terms of determining what to measure, right? But now we have to start thinking about what are metrics that I'm going to use to compare different parts of two systems, right? So for example, what would I use to compare two disk drives? Let's say I'm trying to do some disk drive benchmarking for like Tom's hardware or something, right? What would I care about? Read time, meaning what? Okay, so maybe the time to do a single read. What else, Jeremy? Yeah, so bandwidth potentially broken down into one and one, yeah. Okay, yeah, so I might break down my bandwidth in terms of large access and small accesses, right? But what in particular do I care about bandwidth? I care about the difference between one and one. Read and write, yeah. So, you know, read and write bandwidth would be something I could look at different, like Sherroth pointed out different disks might have different behavior between large writes and small writes and that might matter, right? Because if I'm looking for a disk that has really, really good write bandwidth and is particularly fast at doing small writes because I know that's my workload, then that's what I care about, right? So that's an example. What about schedule in algorithms? Remember, we talked about this a little bit when we talked about the Linux schedule, but what would I potentially, what metrics be that I would use to compare schedule in algorithms? Not good. How fair was that in, or? Yeah, but to find fairness, right? What do you mean by fair? Okay, yeah, so we need to come up with some metric of fairness, right? Jeremy. Yeah, so I need to, you know, when we talked about Khan-Kalivas and the rotating deadline staircase schedule or working in staircase deadline, something, we talked about an interactivity, but that's very difficult to quantify, right? So his, some of the work he did was actually quantifying, right? What's another potential metric I could use? Yeah. Throughput, right? Maybe, yeah, how much work is the system getting done over time? That might be an easier thing to measure, right? Okay, what about page replacement algorithm? Got two page replacement algorithms. What do I potentially care about? Bethany. The page size, well, okay, let's say I have a fixed page size, right? And what I'm looking at is, which page do I choose to evict when I need memory, agree? Yeah, so I could look at the number of times that when I need a page, it's in memory, right? It's in my cache, right? Amen. Right, so I care about how long these things take, right? This is true for my scheduling algorithms too, right? How fast does it run, right? If it takes a second to choose a page to move to disk, then I really don't care how good it is, right? Because it's just too slow, right? What's something else, Robert? Anybody, Jeremy? Yeah, what's the overall page fault rate that's generated by this particular algorithm on a heavily loaded system, right? How, how many, the whole point of, you know, to some degree a whole point of memory is to avoid going to disk. So how frequently do I have to go to disk when I use this algorithm? What about, what about file systems, right? Two different file system designs, right? I've got two mounted file systems, not what might I care about with if I'm trying to do performance measurement on file systems. What are some things that I would test in a file system benchmark? Yeah, so like path resolution, right? So how long does it take me to look up a path name, right, because that's a component of file system performance? What else? I don't know. Yeah, so I could look at read and write bandwidth, very similar to how I did with disks, right? What else might I care about here? Yeah, so some of this, you know, some of this works on file systems too, but what are file systems specific things? Yeah, yeah, so I might care how long does it take to recover from failures? Like if I can sort of force a failure onto the system and then remount the file system, how long does it take to clear out that failure? Yeah, so different types of allocation, right? So if you start to look at file system benchmarks, they'll do things like, you know, do a huge extend of a file, right? Like let's say I take a file that's a one megabyte and I extend it to one gigabyte, how long does that take, right? How long, and that comes down to, and then how fast does access to that file afterwards? So that comes down to things like how quickly can I allocate blocks, right? So, yeah. So I think this is a good stopping for today, right? You know, most of these, this is sort of this classic of different parts of the elephant, sort of a, sort of far side cartoon, I think. But most of these, part of this comes down to, you know, when we talked about all of these, what we talked about are things we could measure, right? What we'll talk about on Wednesday is what is the system actually doing during this measure, right, because that ends up mattering quite a bit, right? The, for example, the page fault rate that I achieve with the particular page replacement algorithm is not just a function of that algorithm, it's also a function of the workload that the system is actually experiencing, right? So on Wednesday we'll talk more about benchmarking and we'll finish our discussion of performance analysis.


COVID-19 has exposed the vulnerability of the food systems in Southeast Asia. There are many challenges. First, there is an increased food insecurity, particularly for the poor, women and to those who have lost their job. Second, there is a disruption in the food supply change because of the checkpoints and also because of the difficulties in people movement. Third, there is a changing demand. People now tend to eat at home. They want to buy from local markets. And finally, they also want to ensure that the food that they eat are healthy food. It is very important to have a thorough understanding on how governments and other stakeholders respond to COVID-19 pandemics. At Erie, we are doing research globally and at country level to understand how COVID-19 impacts to these vulnerable groups, particularly women, the poor people and those who have lost their job. Second, we also need to understand how e-agriculture can support address various challenges that are presented by the COVID pandemic. Third, we also need to understand to what extent we can engage in local economy, particularly in supporting small and medium enterprises. There are huge problems that we are facing because of the pandemics, but at the same time, the pandemics also present an opportunity to revisit our food systems, particularly here in Southeast Asia. The World Food Day presents a unique opportunity for all of us to reflect about the future food system that we want. The key question is, how can we build a more resilient food system in the future?


Anand Andrew and Senate has taken a swipe at the 17 trillion Naira loss incurred by the country on task waivers within the last five years. In his remarks at the budget presentation session, the chairman of the committee, Senator Sani Musa, who told the FIRS chairman that the tax waivers abuse, which has cost the country about 17 trillion Naira loss within the last five years, should be suspended and substituted with rebating system. The tax administration and tax rebate system in Nigeria will not only ensure fairness but also bolster revenue generation. So for critical national development, we really want you to look at this because this country have lost more than 17 million trillion in five years due to tax waivers and tax holidays. The backward integration policy of this government which gives room for those holidays, we need to review it. So I think with this I can say that you are fostering much of accountability in your collections. You are doing very well. The innovations you are bringing to the tax administration in this country need to be commended. Meanwhile, the chairman of FIRS, who made projection of 19.4 trillion Naira has targeted total tax collection for 2024, insisted that a fresh 2.7 trillion Naira tax credit planned for road construction in the country by the central bank of Nigeria, CBN, should be stopped. I said today NNPC through RITC has committed 2.5 trillion to road construction in Nigeria and they brought another one. They said they want to expand it by another 2.7 trillion and I said no, that is not allowed as a special advantage to the president on revenue. I would not say I have all my revenue and I want to use it for road. Is it the only road I want to do? I've already committed 2.5 trillion to this one and people are complaining about the efficiency of it and that is even separate. What I've said which Mr President has approved is that all the one that we have in pipeline will be completed but it's not expandable and that is what we say because NNPC is number one revenue source for us as a country either in time of taxes or non taxes. Hello, hope you enjoyed the news. Please do subscribe to our YouTube channel and don't forget to hit the notification button so you get notified about fresh news updates.


It's a 1-2, Yelich puts it in the air, deep, half, looking up, turning around and watching it go. Just kept carrying for Christian Yelich right on cue, his first hit of the season. And it puts the Brewers in front by three.