© Distribution of this video is restricted by its owner
00:18 | Okay. Okay. Well, I have two minutes to tell you the |
|
|
00:27 | news. First values, I've almost all the queen. And the results |
|
|
00:33 | very my Some people live very well many people. New standard should be |
|
|
00:44 | from. Thank you. The same details you. But first of, |
|
|
00:55 | you should be a wake up it could also be that some of |
|
|
01:00 | first semester we're not gonna or So that that's only the first bad |
|
|
01:14 | . The second bad news is that be discourse. Pope. Okay, |
|
|
01:23 | group Don't worry too much. Remember we five there is a total of |
|
|
01:29 | quizzes or more creases. Mhm. won't be great for everybody. What |
|
|
01:37 | would like to do today is to about the first assignment and for that |
|
|
01:52 | have a PowerPoint presentation. The first was posted on Friday night because some |
|
|
02:00 | wanted it to have it for the . And, you know, I |
|
|
02:05 | they were right. And I did . Yeah. So what? Do |
|
|
02:11 | have the purpose off? The first is to uh huh is to |
|
|
02:21 | right are very simply speak shell. me go backward. Yes, I |
|
|
02:33 | . We'll call it my shell should able to do ls minus. It |
|
|
02:40 | also be able to, uh, something like being a Jew. This |
|
|
02:46 | easier. This can be done directly using exactly If you do ls |
|
|
02:52 | you have to do you pet search because the specification tell you you can't |
|
|
02:58 | exactly p will be too Are all arguments are separated by space or redirection |
|
|
03:07 | people who do the class last semester a much harder assignment They were supposed |
|
|
03:13 | implement Pikes Unlimited number of pipes and fact, the best implement. These |
|
|
03:21 | recursive implementation of pipes And you realize problem. Of course you know, |
|
|
03:27 | something recursive with forks in it. a big chance, you know, |
|
|
03:31 | run over your limit. And so he added something. And look |
|
|
03:37 | for instance, work out minus the Councilor words from the fight text. |
|
|
03:44 | here you know the greater than sign , which means input, redirection, |
|
|
03:50 | a separator. There is no space the value and the greater than this |
|
|
03:56 | and your space When those abandoned that means you know, if you |
|
|
04:01 | to recycle could of somebody else, know you will have to modify the |
|
|
04:06 | to start. So let me let review how well do that process |
|
|
04:13 | And so far, by the the reference for the assignment is |
|
|
04:19 | Always hand up, hand out as what to do. And he had |
|
|
04:25 | explained things. But it's not as because this creation for exactly argument vector |
|
|
04:33 | saw that in class is repeated. basic system calls for creates a carbon |
|
|
04:41 | of a calling process. Sharing it's five. That's the only thing the |
|
|
04:48 | and a child share, who they . A code segment that nobody speaks |
|
|
04:54 | . That is done haven. But know, the child doodle shared address |
|
|
05:01 | of its parents. Everything the parent is not reflected in the child. |
|
|
05:09 | could prepare little demo for Wednesday. will be exit V overrides the contents |
|
|
05:16 | process outer space and creates an executable . So what about fork? |
|
|
05:26 | every UNIX process has apparent, except first process we should create by brute |
|
|
05:35 | . You know, when the system ? No, no, it Where |
|
|
05:43 | the first human. The first human had a her parents. They were |
|
|
05:49 | human in some way. So So happening when you have a fork? |
|
|
06:01 | look at the tax skier, but more interesting to look at the drawings |
|
|
06:07 | . Parents in China are different address . This address space is the code |
|
|
06:16 | the address states of the parent, they include. It's not sharing honey |
|
|
06:25 | in my pocket. A $20 It could be a clone off a |
|
|
06:32 | bill that you may have, but not sharing it. They're different. |
|
|
06:42 | for returns process idea of child The Return zero. So first example. |
|
|
06:55 | . Seabrook program includes Ustream. They've Standard Fork. I do see out |
|
|
07:02 | offline. This will print two lights after the four, because we run |
|
|
07:09 | the parent and by the child. way to look at it is the |
|
|
07:17 | world. We have a fork for a child parent and child run the |
|
|
07:22 | code waiting for child completion. Wait zero wait for the completion of any |
|
|
07:33 | . Now what's happening is defined as the child sorry has already complete that |
|
|
07:40 | have some kind of error? No. In fact, it returns |
|
|
07:48 | . This is because, as most you now unique keeps track off the |
|
|
07:55 | that have completed and have not been by the pound. Yeah, any |
|
|
08:03 | or all Children. But I need . So he returns any child. |
|
|
08:09 | . So let me this way. suppose you're president. 4 to 20 |
|
|
08:14 | to wait for the completion. You a loop and you do wait 20 |
|
|
08:20 | . You will see things will be little bit different when we'll we'll go |
|
|
08:25 | be friends in p threat. You , the snow wage called a joint |
|
|
08:31 | the joint is is specific to a threat you are waiting for. Anybody |
|
|
08:36 | already program with the French? they are fun. Except the call |
|
|
08:43 | creating a threat is and passing arguments the parent and child. You have |
|
|
08:51 | . You only pass only one argument it has a type voice. So |
|
|
08:57 | you have to pass, then you pass them instruct or even a |
|
|
09:01 | . They're all the same time. other example here. You know, |
|
|
09:05 | have the cease types this rage can't . If KP I'd resolve before |
|
|
09:18 | That means I am in. The is on child. I am the |
|
|
09:21 | process. The child process here executes in original program. So here we |
|
|
09:31 | one program creating two processes and we underscore exit zero, which is abnormal |
|
|
09:41 | . Some of you may be tempted use exit instead of underscore Exit |
|
|
09:49 | It's not a system call. It a function that calls underscore, exit |
|
|
09:56 | do a lot of crazy things before that, including rewinding input Far, |
|
|
10:03 | , in most program will have to . The results you will get will |
|
|
10:07 | fun but unpredictable. So you Exit off the faith y zero. |
|
|
10:14 | can explain to me why we have zero. Sorry. It was |
|
|
10:22 | but what? Zero doesn't mean No error, no error there Tradition |
|
|
10:31 | the eunuchs world and I've been explored many or others is that there shall |
|
|
10:38 | no completion messages if things happen So you now UNIX. It's not |
|
|
10:46 | your grandmother. Are you happy to a grandmother make a good test cocoa |
|
|
10:50 | you? Are you not happy of ? And the world. Yes, |
|
|
10:54 | , yes, yes. You if you have to thank you for |
|
|
10:58 | with my mother, how I learned sue my buttons myself, it was |
|
|
11:03 | with myself. Then you have to so many. Thank you. |
|
|
11:08 | Okay. Well, this gave a nice picture of my personality, but |
|
|
11:13 | not right. So what you have is the error code. Everything is |
|
|
11:21 | different ways for the child does our for any process. The process, |
|
|
11:28 | course. Big. You will need use code like this because in your |
|
|
11:35 | program, you will have to wait the completion of the task created by |
|
|
11:42 | . Exactly. Exactly. Exactly. . P Exactly. While does the |
|
|
11:51 | search for you for both. And cannot use other thing. You cannot |
|
|
11:56 | it system. Why? Because if were writing your program with system is |
|
|
12:02 | simple. You will read one line system with that line. Go to |
|
|
12:08 | next line. And so far, system essentially takes a string of |
|
|
12:16 | Interpret them by, like a comment the shell. Exactly. Exit v |
|
|
12:25 | path. A argument vector in the vector. This scripture will be |
|
|
12:32 | Argument Vector is the first argument is short name off comment, though the |
|
|
12:43 | buffet and then the other arguments. you program with our CSI, our |
|
|
12:49 | , you say, Well, there argument vector on argument count here there |
|
|
12:53 | no argument. Count its simplicity by and no. So here we have |
|
|
13:01 | description off exactly with an argument count to name of the name of the |
|
|
13:08 | executed and the and the argument. the way, the shell is not |
|
|
13:16 | flags in UNIX flags with the minus They are. They are things which |
|
|
13:24 | specifying options for the command. They're names of FARC's. The shelters, |
|
|
13:29 | process them is of each program, that? So it happened. Ls |
|
|
13:36 | the convention that the flag start by . You will not this end. |
|
|
13:41 | modern programs the flag start by minus and other stuff. There is no |
|
|
13:48 | . People just, you know, the convention because off social pressure. |
|
|
13:54 | the system doesn't have any way to deal with flax, which gives the |
|
|
13:57 | simple, exact the exact VP we You cannot use them. So |
|
|
14:06 | You will expect here is to have like this for the dynamic creating |
|
|
14:15 | If process idea off. If the pages off our problems and presidents, |
|
|
14:21 | I should have better. So my there I will take XXV p My |
|
|
14:28 | argument I had working to with finding . Exit one here is different. |
|
|
14:37 | code is not zero. It's one . Why? Because normally the underscore |
|
|
14:44 | be executed. Exact will take place over that, if you want to |
|
|
14:51 | about it exactly. It's like programming learning in a different way. Thing |
|
|
15:01 | that let's suppose that when we're arriving at the University of Houston, they |
|
|
15:06 | a big helmet on your head. you learned before coming to Texas will |
|
|
15:11 | removed and replaced by new stuff. , for instance, you learned engineering |
|
|
15:21 | with the metric system. Forget about . We go back to the British |
|
|
15:25 | here, and, of course, program you to to drive the right |
|
|
15:32 | of the road. So when you that here and here with a pound |
|
|
15:42 | , so yeah, we'll show you very basic shell, and you will |
|
|
15:47 | once you look at the shell It give you a picture of how your |
|
|
15:52 | should be. Some details have been , for instance, from the problems |
|
|
16:01 | , the handoff subjects that use my as the problem. Why? Because |
|
|
16:09 | you shall will be working, he look very, very close to the |
|
|
16:14 | shell. The big difference would be special character here. We know to |
|
|
16:21 | characters Greater van unless of them. else. Vertical bar for pipes normal |
|
|
16:33 | star Normal corrector So my column normal Everything is just normal. It's wonderful |
|
|
16:42 | you. If you ask you To treat all those special corrective letter |
|
|
16:47 | does it will not be after It will be a semester project for |
|
|
16:53 | people maybe an extension for next Now what you will notice also is |
|
|
17:01 | you can, if you want, five school. It's semi colons, |
|
|
17:05 | colons X y z. Now the problem with those fives they're not that |
|
|
17:12 | to remove with a normal shop. we prefer you to thio to know |
|
|
17:18 | you are into your shell, my and nothing the normal Shanteau avoid doing |
|
|
17:24 | Surprised? So what we do here lie italics. Iconix means that it's |
|
|
17:34 | you have to write yourself part of input line, and to get the |
|
|
17:38 | vector, you parse. Er is straightforward part, sir. Remember, |
|
|
17:43 | needs to stop for consecutive blanks and detect greater than less, less less |
|
|
17:53 | that. Once you have that, have essentially a list off arguments on |
|
|
18:02 | life you need immediately to extract the after the lesser Dan. And after |
|
|
18:11 | greater than we do, So I direction. You will never pass them |
|
|
18:15 | the program, then up. Then know when you have done that, |
|
|
18:20 | built in argument. Vector zero sum are built in, for instance, |
|
|
18:28 | . Commit to terminate the shell You call a program to do that. |
|
|
18:32 | shell terminates itself after taking care killing the the background processes that's specifying |
|
|
18:40 | hand up. Well, you have a commerical of BG for background, |
|
|
18:47 | I've created for you own fun. means the process is to be sent |
|
|
18:53 | the background. What follows So those two, uh, two built in |
|
|
19:01 | . This a third one change directory . It's not a program that shall |
|
|
19:09 | that. The shelter do itself because , the shell changes default directory. |
|
|
19:17 | if your modified the state of the , you don't execute a program and |
|
|
19:21 | system called to use its CHD ir supposed to find that on your |
|
|
19:27 | But still you are here in I will tell you to you. |
|
|
19:33 | you know that you have the catchall . Do it Implement that handles the |
|
|
19:39 | off BG Seed you on here. we sort of built in command. |
|
|
19:53 | thing fine path Find Pan is not extremely simple program. Find Pat reads |
|
|
20:04 | path and breaks the path into that off possible directory names. So find |
|
|
20:21 | path essentially start by parsing. The difference here is that you parse stopping |
|
|
20:30 | columns. There are no tricks. , you know they So you get |
|
|
20:37 | list off the directory So I should like this like this. And for |
|
|
20:42 | of them, you have to check there is a binary that's execute herbal |
|
|
20:51 | . To do that, you have use a command called access and you |
|
|
20:56 | for X underscore. Okay, Then when we have found that you |
|
|
21:09 | . Uhh ! You have found the name of the command to execute for |
|
|
21:14 | it will be slash being such a so far for all the conventional take |
|
|
21:18 | time. So it's only you iterative trying all the director is the right |
|
|
21:23 | . That means that essential to the being played by, uh by the |
|
|
21:33 | list is the order in which each center because you search in that |
|
|
21:46 | No, What do you do? a you fogged the process You do |
|
|
21:53 | your direction in the Iot process mawr the EU redirection That's very easy is |
|
|
22:03 | few lines of code. Then you the exact with the full path name |
|
|
22:10 | their agreement factor that you have Remember the argument vector. It's simply |
|
|
22:17 | on your input line and you remove it. You know the redirection code |
|
|
22:23 | part of the command is um then know either processes interactive, which is |
|
|
22:29 | before you have the apparent waiting for child because so, yeah, finding |
|
|
22:38 | right execute hable, you do a in your path. My but its |
|
|
22:47 | your local is being used uncle being ? Uh huh. And you |
|
|
22:52 | how do you get that? You it like string copy into a |
|
|
22:57 | get environment. And then, you , the backer gives you the whole |
|
|
23:06 | . Then I told you, you it into a directory on Max in |
|
|
23:13 | campaigns one one directory that you can and you try them successively. What |
|
|
23:21 | do, for instance, suppose that program that you have to execute it's |
|
|
23:29 | bozo. Then you spite slash user local slash has been slash Bozo, |
|
|
23:37 | it execute herbal? Yes. A founded. Otherwise it slash use |
|
|
23:42 | following balls. Oh, no, , no. And at the |
|
|
23:46 | you can have a good program of on. Then you paint a message |
|
|
23:52 | or fun. Are you sure this explained? Here, look here. |
|
|
24:01 | I'm doing is oh, I need to I I'm not sure I do |
|
|
24:10 | to have a flash here. here I show my I like to |
|
|
24:20 | print spring we that brings in the string directory, string argument vector. |
|
|
24:30 | a few things. Let me see I need to add this slash or |
|
|
24:39 | . Probably Yes, I by the . Yeah, as sprinter. And |
|
|
24:52 | scan it are you friend, because can do a lot of things. |
|
|
24:56 | with them. There are some So the last thing I need to explain |
|
|
25:06 | you is input Redirection. I have shall construct here, work out from |
|
|
25:19 | . What does it mean? the static input off word count is |
|
|
25:25 | by content with five other ranks so getting its input from summit input |
|
|
25:32 | for the country, this is a powerful construct because when you write |
|
|
25:40 | you know, tech space programs in shuttle environment rather than opening fires, |
|
|
25:47 | know I use are your redirection It's much more flexible. Let me |
|
|
25:55 | you a new example. Thinking about off the graduate students we like to |
|
|
26:03 | our first assignment simulation off process, through pews in a computer, you |
|
|
26:14 | , to process arrived, going to , you the game Really CPU go |
|
|
26:19 | the dish or there's a way to for the disk and so far, |
|
|
26:23 | you know, of course, the A s want to test the assignments |
|
|
26:27 | not exactly the input that was sampling given by the students would like Thio |
|
|
26:33 | try something else to prevent people to a program that will just bought that |
|
|
26:39 | . That means you know, that would like to ta to be able |
|
|
26:42 | have different far input input five with system is very simple. You to |
|
|
26:49 | changed that. But what if you a hard wired named for the |
|
|
26:55 | Fine. It was the work then right thing to do is okay. |
|
|
27:00 | know, at the argument vector off program. You have the name on |
|
|
27:05 | fire. You check your argument. is correct. You reject if people |
|
|
27:11 | to put it. And then you you read the staying your opening |
|
|
27:16 | And so far, this is a of work for nothing. So I |
|
|
27:19 | to do that. So how do do? The are you redirect First |
|
|
27:26 | opened the fight and he opened in only by doing almost all right declared |
|
|
27:38 | the proper includes So it's a responsibility addle. The program includes So your |
|
|
27:45 | How do you which includes to use instance, I will type man open |
|
|
27:51 | man too you give me a description what opens Supposed This description is not |
|
|
27:58 | user friendly, but has in the although includes a need to being |
|
|
28:10 | Then what I do, I clues . Why do hello? Matching? |
|
|
28:20 | have the five, the scripture for five and I do pit Make a |
|
|
28:25 | it where I would have to create new file Descriptor pointing to the fight |
|
|
28:33 | scripture there Which new? Five of ? Oh eunuchs always speaks the first |
|
|
28:42 | entry in the find The script of Yes, normal. If I use |
|
|
28:50 | the next five open be five I that will be six and so |
|
|
28:54 | But here rigged the game I closed So what's the first five descriptor |
|
|
29:02 | Zero Because it makes available. So what? After this thing here I |
|
|
29:13 | redirected the input in such a way where the program we'll try to read |
|
|
29:22 | zero senate if he will really stand the fighter scripture. Bingo. I |
|
|
29:28 | almost up. Why almost now? have the Paris staying here. I |
|
|
29:37 | need FD anymore. And after a to get rid of so very bad |
|
|
29:48 | . Yeah, you were in the . First three prepared. It's not |
|
|
29:55 | fault. Yeah, this is good but we want the That's transparent. |
|
|
30:07 | . Take care. The other Yeah, I need to. They |
|
|
30:16 | funding view, activism rule Frankfort First I opened, uh, five |
|
|
30:30 | read A remote I closed Stand Create a duplicate of the five descriptor |
|
|
30:38 | will be extended in. And then , the final scripter. My work |
|
|
30:43 | done. Officer direction here. What have is that you know, I |
|
|
30:50 | to make a listing. What's in directory minus l long listing. That |
|
|
30:56 | that I d list the culture of directory and I supplement each entering by |
|
|
31:01 | fetch from the i note of the . So access control list, you |
|
|
31:07 | , Name of the owner name of group. Last time it waas |
|
|
31:14 | And you know, the thing thinks like it like that. And then |
|
|
31:18 | I would like to do is the here should be redirected to this |
|
|
31:25 | So the speed is very simple. know, I opened fire directory takes |
|
|
31:37 | right, always. But in many you were direct the output into a |
|
|
31:46 | that doesn't exist. You wanted to creative. And then, you know |
|
|
31:52 | open system called has an option. , underscore. Creates. They |
|
|
31:59 | you know, when you try to the fight for writing into it. |
|
|
32:03 | the five doesn't exist, created by the way, it's interesting to |
|
|
32:14 | how those options are. Who represented ? Essentially, it's a macro for |
|
|
32:29 | big map Means you and the 32 word and you want it up saying |
|
|
32:34 | option time, Look at all good exclusive or so We're whoring all the |
|
|
32:43 | maps to say all the flags being raised. No, The last thing |
|
|
32:48 | is the little mystery stuff. Why we have that? That somebody explain |
|
|
32:52 | me what it means? I yeah, okay. You create a |
|
|
33:01 | five, you have to give some full permission here. You know, |
|
|
33:07 | use a crass method to described it octo. When I was in school |
|
|
33:17 | just a long time ago, Octel the barricade. Why? Because when |
|
|
33:22 | have a bite, architectures is easier do it in Exodus symbol, but |
|
|
33:29 | started before I became very motivated to something in computer science. They were |
|
|
33:35 | doctor. Article six, 44 It's There's six is 11010 while for |
|
|
33:49 | let's restart 110 year old 10010 That I created five, which is right |
|
|
33:59 | by Neo Lee and readable by me everybody else. All the five |
|
|
34:04 | I don't know if I care about . I could put a better protection |
|
|
34:08 | be five months. There are Stand out to eat a duplicate of |
|
|
34:14 | five at the first available space. this the first available space is what |
|
|
34:24 | I redirected here and that close. marvel that you have is that everything |
|
|
34:32 | is very basic UNIX is in simple. When a assignment repeat threats |
|
|
34:39 | synchronization purpose, you will see the calls for patriots are long. But |
|
|
34:47 | now we have. We are living the real off simplicity, which is |
|
|
34:57 | , so I will end. It's show the questions I give you until |
|
|
35:11 | tend to do the assignment. The will require some work to decide how |
|
|
35:18 | use the system calls. Otherwise it's a hard assignment. The key thing |
|
|
35:25 | to ride good partial. You have have one part for the scanning |
|
|
35:34 | One part sir, for breaking into fine names into You know, the |
|
|
35:43 | names the path strange, but that's . You can even, you |
|
|
35:52 | try to do one scanner doing That, except that the scanner for |
|
|
35:59 | import has to recognize security for That's for that. So it's a |
|
|
36:04 | between duplicate to duplicate simple program or more complex program doing both. If |
|
|
36:13 | have questions, you know, in . Also, keep in mind that |
|
|
36:18 | have Ah, you know this guy by the way, I still have |
|
|
36:28 | issues with the way the system recovered the big crash, when I lost |
|
|
36:34 | all my data. The system only the data for my W W. |
|
|
36:41 | directory, which is the one visible the outside world. But everything I've |
|
|
36:47 | , um, this system is lost . The good news is that I |
|
|
36:58 | that because starting a long time I decided that the system of the |
|
|
37:05 | was not trustworthy and I shall be on my own data, Which means |
|
|
37:13 | , you know, I'm very sorry lost all this stuff, but it's |
|
|
37:16 | contain anything interesting relief. Who this ? I lost data from before I |
|
|
37:26 | here and I was a Purdue. I still have probably some old |
|
|
37:32 | Uh, you know, whenever You. So what I did is |
|
|
37:40 | I and that posting everything off, some low pizza, has now a |
|
|
37:51 | entry called papers with the pdf off papers and also the Paul Paul representation |
|
|
37:59 | will use for this lecture. And the next lecture, I will start |
|
|
38:06 | presentations about, you know, more memory. And this time I need |
|
|
38:17 | talk to you about a very nice . Sorry. Yeah. You submitted |
|
|
38:31 | Blackboard. And what? I want to explain your assignment to the why |
|
|
38:38 | do that too. She their shells around Hi. A few things to |
|
|
38:51 | them less off this off. But you have to explain what you do |
|
|
38:59 | . So I Hi. Maybe raise hands high, in fact. |
|
|
39:18 | Okay. Hey. Yeah. stop signaling well. The third Society |
|
|
39:47 | For they from that? My Some old computer. Okay. |
|
|
40:07 | Yeah, very good. Well, when you don't exactly one himself. |
|
|
40:25 | , Poor. You see there. ? Yeah. Oh, for |
|
|
40:36 | of course. Experience was likely Right? Fight of available to |
|
|
40:51 | Yeah, no problem. Uh Fine. Right. Are you? |
|
|
41:20 | . Holding for right people, want to Valley software people? |
|
|
41:39 | Ray. Parole. Yeah. Time . I understand. Maybe by the |
|
|
41:49 | . Yeah, the doctor. People here, the book, all |
|
|
42:04 | Yeah, Yeah. Mhm. Or before these scores. Space |
|
|
42:29 | Sure. And army. Nothing The problem? Horrible. But, |
|
|
42:50 | know, we need to embrace the and realizing that that's the way to |
|
|
43:00 | that. So I need That's a bad idea of going there, but |
|
|
43:11 | happened there. So what I will instead, I will go to directory |
|
|
43:21 | and go to the directory of a point because I want to talk to |
|
|
43:28 | about Mac trying to do that Okay, So is recording beginning? |
|
|
44:50 | , go and get block in the . And it's important because you find |
|
|
45:08 | off it in, Of course, ah, Mac os Stan Mac, |
|
|
45:19 | next step in France and also you know, in the in the |
|
|
45:29 | virtual memory to speak of the Pema I will show you there. But |
|
|
45:35 | me, the most interesting stuff is they explain to you how really to |
|
|
45:39 | the virtual memory outside of the confines what Berkeley UNIX did, and they |
|
|
45:46 | here three important new issues. Extra . Concept of inheritance. Copy |
|
|
45:54 | The paper is horrible. Good. to read it. It's a short |
|
|
46:00 | off other disturb Indians dissertation at Kennedy . The Mac team is really |
|
|
46:09 | This macron's developed in academic environment. you know both the adviser and you |
|
|
46:15 | he went to the industry regression. went to Microsoft in a have a |
|
|
46:23 | of Banyan went to Apple. First went to next, and then we |
|
|
46:28 | to our and evidence. Dominion is guy who brought Mac OS that as |
|
|
46:36 | way to get out of the old systems. They were basically a glorified |
|
|
46:43 | , but very little things for providing from modern computers. So show the |
|
|
46:50 | very poorly done. What I did that I don't know it a long |
|
|
46:55 | ago. I have a list of , exhortation. I read it and |
|
|
47:00 | the paper start to make sense with . And I wrote a little one |
|
|
47:04 | summary off it, and I put name on it because normally when you |
|
|
47:10 | a summary, it's just, you , a hack. But I believe |
|
|
47:15 | making sense off that paper wasa creative . I'm proud of it. So |
|
|
47:23 | general objectives to be exportable as UNIX memory system while supporting more functionality match |
|
|
47:35 | explain to you why my prize are , why we should embrace them and |
|
|
47:41 | through page inheritance. In fact, beauty off the skin of Mac proposes |
|
|
47:50 | to save the lightweight processes. And processes are just a special case off |
|
|
47:57 | way you do the form nothing more that. Also, they want to |
|
|
48:04 | multi processing distributed systems and large address is supporting multi processing waas. That |
|
|
48:13 | something that was dated in the sense you know, in the eighties, |
|
|
48:20 | believe that the future will be taking lot of cheap microprocessors putting them together |
|
|
48:26 | say, Oh, no fast you start a simple as that. |
|
|
48:31 | when you put together several multi processors a problem cash consistency. And this |
|
|
48:39 | a message item. So, you , for most of the nineties and |
|
|
48:44 | first use of this century Okay. processor. Yes, they are |
|
|
48:49 | Okay, yes. Forget about Now we have multi car architectures which |
|
|
48:55 | basically built in microprocessors and is yet . If you're BMB, If you |
|
|
49:02 | armed now, cash consistency issues are for you. So let's try to |
|
|
49:09 | by looking back to virtual memory and you buffering? And we look here |
|
|
49:16 | this picture and how do we Are you posted compared virtual memory on |
|
|
49:26 | left, you have virtual memory, essentially you have the process memory and |
|
|
49:32 | have a swept area. And when get expelled, if they are |
|
|
49:38 | you can record them from somewhere. they're dirty, they put back in |
|
|
49:42 | swamp area and they recovered Lee. the whole thing you realize because you |
|
|
49:50 | those transfers are transparent to the Those things they happen, you |
|
|
50:00 | by magic. And that's the beauty virtual memory. Your address space of |
|
|
50:07 | program is managed for you with some of the space in main memory, |
|
|
50:13 | parts elsewhere. Now let's talk about system courts. Remember that any system |
|
|
50:21 | will use, we'll use some card attracts. That means the transfer during |
|
|
50:26 | audio buffer and that this drives are to you. You do know what |
|
|
50:32 | will happen or a reasonable amount of . A few seconds. You can |
|
|
50:38 | them to happen by doing a And so far, nobody. You |
|
|
50:41 | this what the user controls of the calls between. Are you a buffer |
|
|
50:49 | made member? So essentially your vision when you do a read or write |
|
|
50:56 | your program is that you're just specifying between the main memory of your program |
|
|
51:03 | above. Right. Good. The spell so far as being This is |
|
|
51:15 | because you read and your rights do result into a disk Access. This |
|
|
51:23 | are very slow. Do you have there very, very fast. |
|
|
51:32 | but was the cost of transferring something the main memory in a buffer? |
|
|
51:40 | to context switches. The big rule you should be aware is that anytime |
|
|
51:47 | ask the colonel to do something trivial a program. The most important component |
|
|
51:56 | the cost is the cost of context . You are the example in real |
|
|
52:01 | , The example in real life is simple. You call the plumber you |
|
|
52:08 | call the plumber because you know, need to in style something new and |
|
|
52:12 | far. Or but sometimes you call atomic I'm a dripping faucet deployment, |
|
|
52:21 | . Cut the water and screw something , but a newly little piece of |
|
|
52:28 | or whatever back it will take exactly minutes. You get the bill from |
|
|
52:34 | plumber won the $20 Why? The was dominated by the cross of bringing |
|
|
52:42 | plumber to your home house. Call for the house girl and then peanuts |
|
|
52:50 | once we have the same situation But what I want you to notice |
|
|
52:58 | we have experts transfers here controlled by programmer. We had implicit transfers here |
|
|
53:05 | there. This implicit transfer make me that maybe there are more similarities between |
|
|
53:16 | fights. Have managing the virtual memory we're willing to accept. So we |
|
|
53:25 | the next slide, saying that in English, my partner. My friends |
|
|
53:36 | say Okay, unless you the virtual for everything. So when I open |
|
|
53:43 | file, I will associate with Manu , some range of address and my |
|
|
53:49 | memory, and then it will try access it. Fold, fold, |
|
|
53:55 | , fold, fold. I bring in so my read still exists. |
|
|
54:01 | they read inside my program. I get rid off the reeds completely and |
|
|
54:09 | Just, you know, my client honoree advice and access it using c++ |
|
|
54:16 | for for by Tory's I could also I know I want to keep the |
|
|
54:22 | function, but those becoming the every extremely, extremely cheap now, what |
|
|
54:28 | the rights? Well, when I things, I just modified the bytes |
|
|
54:34 | memory and then, you know something the external page. Here, we'll |
|
|
54:40 | track off them till we need to something with that. When I modified |
|
|
54:49 | in my memory, corresponding to a off my father, you know, |
|
|
54:54 | be explored, why do we call pagers? Because they're not normal |
|
|
55:01 | Noble virtual memory system. When you your program bagels your memory here. |
|
|
55:08 | , When you close your program things thinks that to be saved. And |
|
|
55:14 | far so what we do here when process opens, a five full five |
|
|
55:23 | into the process, no data and then we bring the things on |
|
|
55:27 | man. What if you want to the five, you're going to share |
|
|
55:34 | . Second, So the Mac implementation to say, Well, okay, |
|
|
55:41 | have the usual virtue already paid. disrupt area. And this is responsible |
|
|
55:48 | one address free. Here I have not filed, and I use on |
|
|
55:58 | pager in the park system and this different rules. The biggest difference is |
|
|
56:04 | everything being modified needs to be saved , rather than being wiped out in |
|
|
56:10 | front. Do remarks there first. is a strong motivation to have larger |
|
|
56:24 | space. 32 bit address space works . Provide You don't open too many |
|
|
56:33 | files. Otherwise, for gigabytes is a bit tight. So we moved |
|
|
56:45 | 64 date address spaces realize that 60 be to virtual memory is way too |
|
|
56:53 | . And then we settled for 48 ad and this already create some problems |
|
|
57:02 | the page table because we have, , several levels off page of pages |
|
|
57:13 | for you, the programmer. Nothing to change even though into address |
|
|
57:20 | you can still use all the system used to accept that their library function |
|
|
57:27 | the benefit is that library functions are . It will be different from scripting |
|
|
57:36 | . But you know, you program Java c++ or even the old see |
|
|
57:43 | function calls are very optimized. Some you have been in school for a |
|
|
57:49 | time, and I'm sure none off got a note on a program great |
|
|
57:57 | ta. You have too many function . Make your program ma analytics or |
|
|
58:03 | fashion? No. So it's wonderful . Little problems, which is my |
|
|
58:14 | worry here. How do you know exercise off a five before all the |
|
|
58:20 | were done through system problems. Now receive pages you find a tricky all |
|
|
58:27 | problems. The right I've done in speaks being guarantees they are coming. |
|
|
58:37 | means that multiple writers accessing the same will be even less reform. The |
|
|
58:46 | to that. It's a very simple . Unique fives are rarely shared, |
|
|
58:55 | when they're shared, Ihsan read all . If you want to share five |
|
|
59:01 | write mode and you know basic locks not are not sufficient, call it |
|
|
59:08 | database. They're essentially, you multiple conquer and writing to a |
|
|
59:15 | It's a database with data base base people they killed that French or lightweight |
|
|
59:28 | shared with her space on their parents be kernels supported or implemented user |
|
|
59:35 | The trend started to be implemented at level. I know they are hybrid |
|
|
59:40 | where they are half wish Colonel supported . I'm trying to use argument for |
|
|
59:48 | level. Something worked very well, for girls supported. This is essential |
|
|
59:55 | you want to do multitasking inside a . Now that we have all Tyco |
|
|
60:02 | , we like for some programs to able work and several course at the |
|
|
60:06 | time. Mark Virtual Inter Fix. Mike was designed, there was not |
|
|
60:17 | simple uniformed model of virtual memory. was quite the opposite, you |
|
|
60:27 | as the youth of the sixties experimented several ways. The architects of the |
|
|
60:35 | experiment with different multi processors pictures, so far, in this sense, |
|
|
60:43 | you look at architectures off computers. living now in a boring world where |
|
|
60:49 | is marriage with intel architectures, you a magic it Intel chips inside. |
|
|
60:57 | that's a real problem about, you , giving a user interface and be |
|
|
61:01 | for think and everything. They decided it will be consistent and even |
|
|
61:09 | even though some of the features will participle by some machine, the future |
|
|
61:18 | be present. But if you're around machine X, you go to a |
|
|
61:25 | . Full support for multi processing support and everything. Modular paging means |
|
|
61:32 | essentially we do mapping by giving external that mapping to the five system some |
|
|
61:41 | and also recoverable virtual memory. Everybody about recoverable virtual memory. This is |
|
|
61:49 | atomic transaction atomic transaction. He's that bring or system one state A to |
|
|
62:00 | B, and either it's successful or to state A. The best example |
|
|
62:08 | the atomic transaction is when you purchase on one hand, you you have |
|
|
62:18 | money and you have promised off alone hand. You have the owner, |
|
|
62:26 | is probably a alone, too, reimburse and expect some cash and a |
|
|
62:32 | of face could go around now the will be patients and so forth. |
|
|
62:39 | it's certainly what's happening is that you , you go to in this |
|
|
62:46 | officer, and essentially they decide to . Dozen of paper, literally. |
|
|
62:52 | bought the house, you know, spending time signing, signing and then |
|
|
62:59 | magic is Either everything goes through. have the house, give the guy |
|
|
63:06 | a cash the alone. It's paid . You have a new loan with |
|
|
63:11 | . Nothing happens. Then you go . How do you implement that? |
|
|
63:18 | great idea is recovered from virtual You start their transaction. You do |
|
|
63:25 | only operation in virtual memory. Special . That means that before you modify |
|
|
63:31 | , they have Old State. And started somewhere on this. Then they |
|
|
63:37 | , modifying, modifying, modified. yet everything is okay. Pass the |
|
|
63:40 | . Shave the old state, Save new state. Something is that Roll |
|
|
63:45 | to the Ulster and Mike was used in the eighties to do a very |
|
|
63:53 | and rather Slover transaction management system. memory made in place. Problem waas |
|
|
64:04 | incompatibilities? Yes, because they were on multiple machines. Culture is that |
|
|
64:10 | previously previously is designed for the Intel . So be is the virtual |
|
|
64:17 | the one that will know Berkeley essentially , assuming that everything will be like |
|
|
64:25 | . I heard a lot of stories that. Like I post classical Cirque |
|
|
64:29 | C is because all the PDP live then actually, so far. So |
|
|
64:36 | thou, uh, unique is architectures . They were influenced by what's happening |
|
|
64:47 | . So Mac designs won. The of the architectures need mutual. |
|
|
64:54 | So they did. The structures there a virtual memory were designed to be |
|
|
65:04 | independent off the system. And what they do? First, you have |
|
|
65:11 | realize most of the time the colonel's have to do anything with virtual the |
|
|
65:19 | main memory. And the only thing do is that is keeping the big |
|
|
65:26 | more about it. You'll be, went, so you know the big |
|
|
65:35 | to be dealt with. It is to do when there's a page fault |
|
|
65:39 | we have to bring a new and so otherwise nothing. So the |
|
|
65:44 | structures reason pH tape of memory object map their private to Mac. The |
|
|
65:52 | rate is not residents they stay track , which means that main memory memory |
|
|
66:03 | , a memory object is staying clean there. Area Are you backing story |
|
|
66:13 | area? I do like to stay object, but we'll start with address |
|
|
66:21 | . That's essential. And when I through the next slide, I want |
|
|
66:26 | to pay attention to it. Then . Sometimes the colonel has to interact |
|
|
66:33 | virtual memory. We're being paged limits and therefore there we have the |
|
|
66:40 | which is the memory of being the . There's a hard way if they |
|
|
66:46 | . And then, of course, interaction between those three day blocked while |
|
|
66:50 | is basically reporting. But all the dealing those three tapes is very |
|
|
67:01 | No, the address man. Let's it here. It's a circular. |
|
|
67:11 | know. It's a Double Inc Why do you go through a link |
|
|
67:20 | ? Essentially because they will not And because we use access them |
|
|
67:27 | The only exercise address map one of page. Hold on. When you |
|
|
67:32 | like what? Three pollinators? First working. Remember that what we saw |
|
|
67:49 | address ring the temptation to say, , we handle a code segment and |
|
|
67:58 | for five and so forth will will to use a segmented architect. Segmental |
|
|
68:05 | are pain in the neck. Use program because you cannot move large at |
|
|
68:12 | space. The segment boundaries do You know, Mike decided will be |
|
|
68:19 | . Race in virtual memory from this has this is marriage and what he |
|
|
68:32 | you Rachel address. It's not this so range here. It's supposed that |
|
|
68:47 | side object is the execute herbal somewhere the file system and we started |
|
|
68:56 | Zero For all this range of We get this protect and you |
|
|
69:04 | since he is a good segment, good segue, Monday's no right |
|
|
69:09 | maybe readable and surely exist pointers here for the nation. Now we have |
|
|
69:19 | specify the inheritance inheritance. Say, do we do when we create a |
|
|
69:27 | ? Using for the code segment can shared with parent and child. We |
|
|
69:36 | pretend they're totally different, but nobody see the day just like you |
|
|
69:41 | if you're around gcc um, Iran . We will fare the same code |
|
|
69:47 | and believing we have to some The truth is that read Onley data |
|
|
69:53 | be shared very easy. Then you he say Well, okay. |
|
|
70:08 | I took you the semantics off the for the files. What's happening when |
|
|
70:19 | for you know, the charge in often find So basically I the range |
|
|
70:26 | reversal fights is shared because of this of a range of address I can |
|
|
70:35 | read only find I can access read finds for So I have all the |
|
|
70:42 | here to do two things first to memory in that trial and I also |
|
|
70:52 | on the have also that great processing Attribute here three value can be copy |
|
|
71:06 | . Don't do anything. Forget regular roots segment. We shared China copy |
|
|
71:17 | data segment and we we can modify evaluation Mark possible posed as much as |
|
|
71:34 | evaluation of tasks because we suppose that be unnecessary. So copying whole data |
|
|
71:43 | apparent process before what to do We use copyright. Sure, you |
|
|
71:49 | back. There were enforced all that . European writers are the present accent |
|
|
71:56 | so far I don't think I need explain that in too much. The |
|
|
72:00 | is getting close to the end I finish page replacement policy. They wanted |
|
|
72:08 | page of priests and policy that waas nude. The dummies will probably implemented |
|
|
72:15 | there any architectures. So they decided use a very simple one. What's |
|
|
72:24 | is that the memory is managed as large global fight for pool. Why |
|
|
72:32 | ft is very simple to implement does require any special hardware to do it |
|
|
72:40 | we can do on any machine. problem is that 5 ft does not |
|
|
72:46 | between pages that are being used repeatedly pays or used only once, so |
|
|
72:54 | pretty terrible. So what's happening here expelled ages go on a second chance |
|
|
73:04 | view and they can be reclaimed on you If you get access, then |
|
|
73:11 | know, when they moved to the que they find felt. I don't |
|
|
73:18 | a the slides. You think But, you know, they were |
|
|
73:25 | . What? Have a page reference available. And then they say, |
|
|
73:30 | we can refine these and minimizing the transfers. And so so the only |
|
|
73:39 | of policy is that it does not real time process. Advantage is very |
|
|
73:49 | . You could be tend to Hey, it looks like a little |
|
|
73:51 | like the Windows Policy is the ancestor policy. No, the Ancestor Windows |
|
|
73:58 | Waas, the VMS policy and this dated by several years. So it's |
|
|
74:03 | simplification we could think about locks and . Oh, deadlocks are a |
|
|
74:18 | We heard in any course supreme system section about that log prevention have Berman's |
|
|
74:26 | condition and then any good in You This is wonderful in theory, |
|
|
74:31 | in practice, you know any system you have exchanged messages car Vermant conditions |
|
|
74:39 | be Yeah, you read out. Here they were able to deadlock prevention |
|
|
74:46 | building system did not free from the . So this is interesting because this |
|
|
74:51 | a case of the theory. Works works absolute now total sized machine dependent |
|
|
75:01 | of 3rd 16 kilobytes. Do memorize the big for a copy and write |
|
|
75:07 | to implement efficient message passing between custom same machine you know normally, when |
|
|
75:15 | do, exchange of data between two in the same machine. You have |
|
|
75:20 | methods. The fast methods is shared to save Methodist Church. If message |
|
|
75:29 | nothing is shared, You know, are you data? You do whatever |
|
|
75:34 | want with them. Take damage so , Mark as accent was doing |
|
|
75:41 | Use copy and write to say, , this is shared. But I |
|
|
75:46 | see what you are doing, and can see what I'm doing. So |
|
|
75:50 | had the benefits of both shared What are shared library? When you |
|
|
75:58 | programs, you will notice that many those C programs and so forth use |
|
|
76:03 | same libraries the libraries air read Why not to share So essentially, |
|
|
76:09 | you do with shared libraries that when load the programming to main memory below |
|
|
76:15 | binary, you do know the libraries already two main memory them if need |
|
|
76:23 | , use them and very much more in doing. I want this list |
|
|
76:28 | being wasted by multiple copies Thieves, . And also, when you fetch |
|
|
76:35 | , you fish in the past come the market problems with inverted based able |
|
|
76:47 | rt The machine no, for forgot paid stables, but they were using |
|
|
76:57 | based tables. Also know a hash eight. They were one hashed paste |
|
|
77:03 | entry for memory frame in main memory the sister was designed to make it |
|
|
77:13 | to implement. Shared PhD. I . They've had to belong in one |
|
|
77:18 | or so the Mac implementation rt of based table means that, you |
|
|
77:24 | they changed the thing about it. page stages, like some of the |
|
|
77:31 | to passport in many case, is simple, very convenient. You gain |
|
|
77:39 | your nationality, you keep the previous and sometimes you know one passport gives |
|
|
77:46 | access to some countries or the other go. For instance, even American |
|
|
77:51 | is a visa to go to I am a Belgian citizen. European |
|
|
78:00 | . I enter with no problems that some cases impossible. So essentially, |
|
|
78:07 | way they do that here is you ? Okay, you want Texas saying |
|
|
78:12 | are Belgium, then you want to on your passport, OK, you |
|
|
78:17 | become friends, become belt. Mac offers the future. Wanting you |
|
|
78:24 | very bad comments paper. It's hard read but cover sort of ground. |
|
|
78:36 | the concepts, read my summary, by the power points line. You |
|
|
78:48 | it took me sometimes to make the with the with the page table handling |
|
|
78:57 | the address. Strange. I spent for a reason. This is fundamental |
|
|
79:03 | the way Mac work, so pay to it more about Mac. Toe |
|
|
79:14 | provides unique simulation through either unique simulator the kernel or are unique simulation server |
|
|
79:22 | use the space. So they tried do a micro Carla. Of |
|
|
79:27 | micro kernel introduced extra context, which they are not a good idea. |
|
|
79:35 | even try to emulate unique through a of specific servers, all the use |
|
|
79:40 | space, the loose project heard. think this is finished. The staff |
|
|
79:50 | stopped. Question for the for grace now Lennox is an accident. We |
|
|
79:58 | have a new operating system. The team and Richard Stallman wanted to write |
|
|
80:07 | whole upgrading system and they start. they use this hard approach because they |
|
|
80:16 | told by the smart people. That the way to do future. Belongs |
|
|
80:21 | micro kernels and micro kernels will have modules. And so forth was a |
|
|
80:28 | Stallman extended How it was making the complicated, difficult, and making you |
|
|
80:35 | fast was even more difficult. So happening is that the new project to |
|
|
80:41 | with a hard colonel went to nowhere you have this guy in Finland that |
|
|
80:49 | a colonel specifically tailored for the intel of the time. And he got |
|
|
80:56 | project on time and running with a performance. That's why you have this |
|
|
81:01 | slash no system. Which means that believing the gospel is not the rial |
|
|
81:09 | to do things right. In the designer off Lennox, the Linux |
|
|
81:21 | did the thing they were not supposed do, but it was successful and |
|
|
81:26 | the competition, so that should be little inspiration, So Okay, |
|
|
81:44 | with a |
|