Gary, you are a marvelous teacher. Clear, concise, precise, relaxed, happy... and no irritating "RUclips persona". From an engineer, let me tell you this - you *really do* sound like you know your subjects well, so thank you for being you and for articulating so effectively and clearly. You are an asset to the engineering world. God bless you! 😀 Matthew, England.
I never would have thought I would end up going to Android Authority to help study for my OS' exam... As always Gary your videos are probably the best on AA. Keep it up!
excellent tutorial. I've been working on computers since 1980 and never have heard this explained so clearly as you did in this video. love the charts and diagrams as well as those really help! and the funny kids pics made me laugh. cheers! 😎
Knew most of this from the course in Operating Systems in the University, but it is always nice to hear Gary explain stuff. And I got to repeat the things I knew too. Please never stop making these videos, Gary! :D
Saving this to favorites. Best explanation I’ve seen on this subject. Gonna have to rewatch 5x until everything makes sense but I’m finally understanding it.
You all prolly dont give a damn but does anyone know a trick to get back into an Instagram account? I somehow lost my login password. I love any tips you can offer me
@Kristopher Gunnar thanks for your reply. I got to the site through google and I'm in the hacking process atm. Looks like it's gonna take quite some time so I will get back to you later with my results.
In other words the physical representation of memory and virtual memory is equivalent to how inventory is shipped to a warehouse and memory is the amount of space the warehouse can store of that shipment. Virtual memory is a shipment being processed to go either in its storage location or to be used in either to be once again shipped out or for some function in the warehouse/facility.
Machines have been using virtual memory since the 70's. Gary in his run down of computers did not mention the IBM Mainframes where we had the MVS and VM operating systems which ran very much as Gary explained. There was the additions of the Link Pack Area (or on DOS/VS) machines the SVA (shared Virtual Area) where common routines used by multiple programs would be loaded into memory and shared between all the address spaces, saving real memory. The small operating systems like DOS/VS though only had one address space, so multiple processes would be loaded in to memory in several contiguous regions called partitions. So partition 1 had memory say from 100K to 200K, partition 2 from 200K to 500K, partition 3 500K to600K etc. It was still virtual because address translation between a virtual address and a real address still had to happen. There was not enough memory, so memory was swapped out to disk when it was not required. Often then machines ran with 200K of memory, and ran order processing, payroles, stock processing and even some development all at the same time. This contiguous space for multiple partitions could lead to the two problems which Gary mentioned early on. One program accessing the memory of another, and relative addressing. Each partition was protected from access from another by a protection key. each partition having a different key. A partition when scheduled was allocated the key for its memory. Should it try and access the memory of another partition, then it would fail. The relative addressing was addressed by the loader program .Often a branch address would be loaded form a table to access a routine. If the program was loaded in the partition starting at 200K, or it was loaded in the partition starting at 500K, then this address had to change. That was the job of the loader program, it would correct these addresses as the program was loaded into memory. Yes address spaces as used by MVS and VM were much easier, but they also still had loader programs as you can't predict where routines are loaded into memory in the address space.
Hi Gary. I was trained as an EE, but went to the dark side of sales, so I am only dimly aware of all the subjects you discuss. Thanks for the context and thanks for putting the puzzle together for me.
Oh my god . Mr. Simps thanks a lot for explains this. When you explained this , it seems so simple. Other people make it sound so tough. I wish I had listen to your lectures earlier. So so good. Thanks you very much from a student trying to explore world of computers.
Greetings world! I'm very new to, Gary's channel & all I can say is, I've been asleep at the wheel for far too long. Sir, this channel is marvelous! From the quality video/audio & editing, to your ability to explain things in a manner with which most anyone can comprehend /completely understand the inner-workings of all this technology that changes every 27 seconds, if you will...😉 I love reading this communities feedback & shared knowledge! Love & Light To You All out there in RUclips Land and Beyond the world over. Many thanks, Gary for taking what has to be a great amount of time you invest so that, we the viewers, can be educated correctly, efficiently & with absolute ease! 🍀 💜 🎶 👻
I'm six years late to the party, but as always there is still so much to learn. Thank you Gary for sending me back from the future, in your video on the demise of 32 bit mode in June 2023. I'm going to look at the one from 2022 now 🙂
Cool. I remember when some dumb ass was trying to argue with me, saying android didn't have VM. At first he tried to claim he thought I meant VM was video memory, then tried to say it doesn't have virtual memory either when I explained that was what VM meant. Now I have something to link to explain it to them, if it happens again.
I think the main use of virtual memory is when there is a need of loading an app that is larger than ur ram then the Virtual Memory concept will be used to load that app by dividing it into some Modules and Only some of the modules of that app will only be loaded into ram.
I would say that calculations are wrong. For a 300 MB program we need not 79 milion adresses. Ussualy memory adress refers to a single byte. So we need: 300MB -> 300*2^10*2^10=314 572 800 How about a method with pages? Assuming that page has 4KB memory then how many pages we need to store 300MB? Result is 300MB/4KB=300*2^10*2^10 / (4*2^10)=300*2^8=76 800. And 76 800 adresses of pages MMU has to store. Offset 12 bits are same in both virtual and page memory, so MMU does not have to memorize it. So yes we need about 77 thousand with paging, but we need 314,5mln without paging. Great vid though :]
What happens when some programs are using dynamic memory allocation? How does the MMU can determine how much space does a program need in run time to avioid overwriting? Appreciate any help 😀
Good morning and congratulations for your precision, unfortunately I didn't understand one thing, but what does offset contain (where on the page we are) can you explain it to me with a more detailed example, thanks in advance
Gary, you are a marvelous teacher. Clear, concise, precise, relaxed, happy... and no irritating "RUclips persona". From an engineer, let me tell you this - you *really do* sound like you know your subjects well, so thank you for being you and for articulating so effectively and clearly. You are an asset to the engineering world.
God bless you! 😀
Matthew, England.
your welcome my man. cheers.
@@srakhtar not OP but ok
😂😂😂
when you are taught the same in class but Gary explains better 😀
If Gary was my teacher I would have passed a few more classes :/
tanish bansal even I understand this and I know nothing about programming and what not.
that's why i'm here too lol
I ask B, my lecturer interpret it as A and answers C. In this case, the Internet becomes my friend 😂
Yeah same thing here 🙌🏻
I never would have thought I would end up going to Android Authority to help study for my OS' exam... As always Gary your videos are probably the best on AA. Keep it up!
excellent tutorial. I've been working on computers since 1980 and never have heard this explained so clearly as you did in this video. love the charts and diagrams as well as those really help! and the funny kids pics made me laugh. cheers! 😎
wow you actually have seen the evolution of basic computer and microprocessors... wow
Knew most of this from the course in Operating Systems in the University, but it is always nice to hear Gary explain stuff. And I got to repeat the things I knew too. Please never stop making these videos, Gary! :D
Saving this to favorites. Best explanation I’ve seen on this subject. Gonna have to rewatch 5x until everything makes sense but I’m finally understanding it.
Don't know how much AA pay you, Gary, but you should get a pay rise
Tim Derek Scott and Darcy lacouvee are the owners and co founders of AA
You all prolly dont give a damn but does anyone know a trick to get back into an Instagram account?
I somehow lost my login password. I love any tips you can offer me
@Morgan Matthias instablaster :)
@Kristopher Gunnar thanks for your reply. I got to the site through google and I'm in the hacking process atm.
Looks like it's gonna take quite some time so I will get back to you later with my results.
@Kristopher Gunnar It worked and I now got access to my account again. I'm so happy:D
Thank you so much, you really help me out :D
After a Gary video, i feel smarter.
In other words the physical representation of memory and virtual memory is equivalent to how inventory is shipped to a warehouse and memory is the amount of space the warehouse can store of that shipment. Virtual memory is a shipment being processed to go either in its storage location or to be used in either to be once again shipped out or for some function in the warehouse/facility.
Playlist of Gary explains, the best ever !
I'm stupid but Gary makes me smart.
Suyash Kant You are not stupid if you want to learn.
Say it again Ibraheem!
@@Trident_Euclid that's not true
I'm stupid and Gary can't save me
Who are the butttrolls who dislike excellent productions such as this.
Wow.
Virtual A Holes
😂
Machines have been using virtual memory since the 70's. Gary in his run down of computers did not mention the IBM Mainframes where we had the MVS and VM operating systems which ran very much as Gary explained. There was the additions of the Link Pack Area (or on DOS/VS) machines the SVA (shared Virtual Area) where common routines used by multiple programs would be loaded into memory and shared between all the address spaces, saving real memory.
The small operating systems like DOS/VS though only had one address space, so multiple processes would be loaded in to memory in several contiguous regions called partitions. So partition 1 had memory say from 100K to 200K, partition 2 from 200K to 500K, partition 3 500K to600K etc. It was still virtual because address translation between a virtual address and a real address still had to happen. There was not enough memory, so memory was swapped out to disk when it was not required. Often then machines ran with 200K of memory, and ran order processing, payroles, stock processing and even some development all at the same time.
This contiguous space for multiple partitions could lead to the two problems which Gary mentioned early on. One program accessing the memory of another, and relative addressing.
Each partition was protected from access from another by a protection key. each partition having a different key. A partition when scheduled was allocated the key for its memory. Should it try and access the memory of another partition, then it would fail.
The relative addressing was addressed by the loader program .Often a branch address would be loaded form a table to access a routine. If the program was loaded in the partition starting at 200K, or it was loaded in the partition starting at 500K, then this address had to change. That was the job of the loader program, it would correct these addresses as the program was loaded into memory.
Yes address spaces as used by MVS and VM were much easier, but they also still had loader programs as you can't predict where routines are loaded into memory in the address space.
I'm a computer science student and Gary has helped me pass in atleast a couple of subjects.
When ever Gary explains, I understand. He is the only way I am going to get through my systems architecture exam, so thanks!!!
Glazing
Hi Gary. I was trained as an EE, but went to the dark side of sales, so I am only dimly aware of all the subjects you discuss. Thanks for the context and thanks for putting the puzzle together for me.
Oh my god . Mr. Simps thanks a lot for explains this. When you explained this , it seems so simple. Other people make it sound so tough. I wish I had listen to your lectures earlier. So so good.
Thanks you very much from a student trying to explore world of computers.
Greetings world! I'm very new to, Gary's channel & all I can say is, I've been asleep at the wheel for far too long. Sir, this channel is marvelous! From the quality video/audio & editing, to your ability to explain things in a manner with which most anyone can comprehend /completely understand the inner-workings of all this technology that changes every 27 seconds, if you will...😉 I love reading this communities feedback & shared knowledge! Love & Light To You All out there in RUclips Land and Beyond the world over. Many thanks, Gary for taking what has to be a great amount of time you invest so that, we the viewers, can be educated correctly, efficiently & with absolute ease! 🍀 💜 🎶 👻
It's always a pleasure listening to your explanations Gary. Keep up the good work :D
Thanks again Gary, for a great video. may the L2 TLB be always in your favour!
Thank you so much! I've read this section in my textbook four times now and just couldn't understand it, but this clears things up so well!
This has been the best of Gary Explains vids
Nice job sir .....
Gary - your ability to explain the complex is unsurpassed.
Garry sir you are really great. I always sleep in my computer class but i like your realxing voice and amazing explaination video.
I'm six years late to the party, but as always there is still so much to learn. Thank you Gary for sending me back from the future, in your video on the demise of 32 bit mode in June 2023. I'm going to look at the one from 2022 now 🙂
Best format of this channel
You're the man, Gary.
Finally understood what TLB is. Great video! Keep making quality content!
Cool. I remember when some dumb ass was trying to argue with me, saying android didn't have VM. At first he tried to claim he thought I meant VM was video memory, then tried to say it doesn't have virtual memory either when I explained that was what VM meant. Now I have something to link to explain it to them, if it happens again.
I got a smile after learning from you in much clear details
such a good teacher. Thanks Gary!
I've always wondered how my computers handles this on a constant basis
He teaches so nice , better than my teachers
Thanks Gary! This was clear and complete and much more interesting than the same topic coverage in class.
It wast just the topic for today in OS class, what a coincidence! But, Gary, your explanation was very good, thank you for all this Explaining videos.
i LOVE this series, it brings out my inner nerd.
hands down the best tutorial on this topic
actually searched many vedios for this detailed explanation..thanks gary
Tbh it's much harder than I thought it to be!!
And I didn't get a single word 😭
Did this at Uni last year, It's a good feeling actually understanding what is going on LOL
Concise, clear, informative, and entertaining. Well done!
Gary in AA is like Gandalf in the fellowship of the Ring.
I think the main use of virtual memory is when there is a need of loading an app that is larger than ur ram then the Virtual Memory concept will be used to load that app by dividing it into some Modules and Only some of the modules of that app will only be loaded into ram.
Gary, thanks for making a video on this topic. Great Job.
man Gary is on a roll to educate the masses lol
Best explanation i have heard on virtual memory
Excellent explanation and great teacher
under 200 wiew! this is something i know and i work on it everyday, but you still make me learned something new!
Great. Thank you very much for that. I have found all your Gary Explains videos really good. 👍
A gr8 video by Master Gary ! keep em comin 👌
Seriously this cleared all the doubts
damn, this guy explained virtual memory in 11 minutes better than my professor in 4 hours....
Wow very good explanation, Gary is a veryvery good teacher
You just did in 11 and a half minutes what my professor failed to do in 2 and a half hours
Brilliantly explained
Thank you, Gary
Great video that brushes all the fundamentals.
Thank you very much for the video
excellent discription about virtual and phycial memory..........
The music overwhelmed you and I couldn’t focus on what you were saying
awesome content Gary!
I would say that calculations are wrong. For a 300 MB program we need not 79 milion adresses. Ussualy memory adress refers to a single byte. So we need:
300MB -> 300*2^10*2^10=314 572 800
How about a method with pages? Assuming that page has 4KB memory then how many pages we need to store 300MB?
Result is 300MB/4KB=300*2^10*2^10 / (4*2^10)=300*2^8=76 800. And 76 800 adresses of pages MMU has to store. Offset 12 bits are same in both virtual and page memory, so MMU does not have to memorize it.
So yes we need about 77 thousand with paging, but we need 314,5mln without paging.
Great vid though :]
OMG THIS WAS FANTASTIC!!! Like I understand, and that's amazing!
Gary could seriously make the phone book sound interesting (apologies for anyone who doesn't know what that is)
Very interesting and great explanation.
This was so easy to understand. Thanks!
Thanks Gary for such a nice explanation.
Great explanation and visuals. Thank you!
I learned this in computer engineering school, but I came here to see how he explains it
5:40 - "Even for 300MB program you would need 79 million entries for such an entry table to do such mapping". Why specifically 79 million?
I have been wondering the same thing.
Thanks a lot Gary!
please thumbs up this video for our man gary.
the music in the background is quite distracting to be honest. but thanks for the information
Thank you Gary. It was a great help.
watching this for my midterm in my operating system course.
That was a very good overview, thanks! :)
This was an amazing explanation, thank you!
Explained beautifully.
Thanks, Gary! Great explanation!
What happens when some programs are using dynamic memory allocation? How does the MMU can determine how much space does a program need in run time to avioid overwriting? Appreciate any help 😀
Thank you Gary!
thanks! professor Gary! nice job!!
4:49 says virutal memory. Anyways...great video, Gary, as always.
Sorry about that, dumb typo on my part.
I'm not sure where "79 million entries" is coming in @5:50 for 300 MB program?
The background looks like a mean acid trip
Good morning and congratulations for your precision, unfortunately I didn't understand one thing, but what does offset contain (where on the page we are) can you explain it to me with a more detailed example, thanks in advance
Awesome job Gary 👍
Great explaining ,but can you remove the music in the background
Excellent explanation!
you're the man! thank you for a great video
This is really a great viedo taht answers my doubts!thanks sir~
As an average prosumer, I TOTALLY made it through till the end of this video ;)
GREAT EXPLANATION!!!
Thanks a lot
Awesome explanation!
Gary you're so overqualified :O I learn these topics in Upper Div CpE courses
When a page is swapped and allocated to another process, how does the MMU know it’s now belongs to process 2 when process 1 tries to access it?
Great explanation!
Please change the background and make it one color for the eye..
Amazing video, but the text getting displayed backwards makes me a bit uncomfortable.
What an explanation!