I was literally learning "Dining Philosopher's Problem" for my upcoming semester until I saw this notification!! You literally read my mind, professor....
I’ve covered this recently on my course but you’re still a godsend to anyone who studies CS or has an interest in it. I’m glad you have your own channel, had been saying it for a long time on android authority
Professor Sims - another excellent explanation and whilst I am tempted to continue heaping praise on you I find myself overwhelmed with a desire to eat.
loved how you started the video right to the point ! Your computer is already running multiple processes at the same time. Loved it! catches attention and you immediately start to think!
Thanks Gary! It's a very good visualization of some of the complex systems cpus have to work with. I now understand a little better what modifying the cpu scheduler on a custom kernel does in Android 😊
If I may add about what atomic means:As the ancient Greeks believed that atoms are fundamental building blocks and can not be further broken into smaller components. In Computer science, Atomic operation must be completed from start till finish. For example if the locking operation is 5 lines of code then they must all be completed from start till finish. there my be no interups accepted, context switching by the scheduler or anything till the whole thing is complete. Thats why atomic operations have to be very short.
Agreed! Just a small gesture like including diverse faces in an example goes a long way to help underrepresented folks feel welcome! Thank you, @Gary Explains !
You have described the request as a polling mechanism but it’s more of a queuing mechanism handled by the scheduler isn’t it? Maybe the waiter should write down the request.
In which part am I describing as a polling mechanism, in the description of the problem or the solution? If it is the former, then that is the whole point there is no scheduler nor is there a queue. Such things form part of possible solutions.
Great explanation, but I've never seen someone eat a meal with two forks. Seen plenty of people eat a meal with two chopsticks, however, I've never seen someone eat a meal with one chopstick. Maybe chopsticks are more appropriate for this illustration?
LOL. I have never met a group of philosophers who when dining didn't have enough cutlery in the first place! I don't think the type of cutlery used is really the issue here!
Sir, you have presented a simple solution for beginners. But in real life system the requests are random and concurrent. How would the 'waiter' here deal with random requests? Also u have provided a solution that is not starvation free as the philosopher lets down the fork is he doesn't get the second one. In a real world situation, there might be a very resource hungry process that might run for a long time. In such a scenario the other process or philosopher might starve to death. Is there a concurrent solution without essentially using locks? (Maybe using semaphores or monitors). I know this is way beyond the limits of youtube and the type of videos you do, but would be great if you coukd answer or refer me to some place where i can find answer. ( I have a course on Parallel and Concurrent programming running)
It doesn't matter if the requests are random and concurrent. I was presenting the requests in order to demonstrate what would happen, but the principle is still the same. As for resource hungry processes that is beyond the scope of the Dining Philosophers illustration, as here the main point is how to avoid deadlock. Having said that I did hint at the problem of the 5th philosopher not getting a shot at asking for the forks. There are various different solutions to this, one of which is to assign the requests for forks with a priority. Dijkstra suggested a solution that doesn't use locks called the "Resource hierarchy solution."
Thank you, thank you very much! You explained it very good! English is not my native language. It would be great if you could add some key words (few titles of your speech) so it would be easier:) have a nice day!
Interesting, but it does not seem the waiter solves the problem. Instead of all picking up the left fork at the same time, now they will all be asking the waiter at the same time for permission and the 5 concurrent requests will cause a different lock.
I understand why you say that, but no. As I said towards the end of the video the locking mechanism is atomic, which means that only one philosopher can be granted the lock and allowed to pickup forks. There is a slightly deeper level which I didn't discuss which is what happens when a philosopher doesn't get a lock, but it is enough to say (at this level) that deadlock doesn't occur.
I see what you mean, but I’m talking about the problem in general.. The monitor giving locks does not seem to solve anything because if requests keep colliding with each other he will not have received a request to give a lock to. Seems like you would need some kind of randomly generated wait period before retry
Good video, but explaining this with chopsticks makes much more sense because you acutally need two of them to eat. Have to replace the pizza with something asian of course :-)
3 lectures x 1.5 hour = your 8-minute video. Thank you!
Lol my professor tried to explain that for 40 minutes and couldnt... In 8 min youve done a much better job! Many many thanks!
For real!
My professors sucked too
mine didn't even try explaining lol just showed the code and told us to it by ourselves
my professor tried to do so for 2 hours and now I'm here trying to understand.
thank you sir! that was crystal clear
Good explanation... except that it was illustrated with pizzas which require 0 forks to eat lol
LOL
hahaha
And if you decide to use a fork nevertheless, you still need a knife.
Unless you're Italian!
The original is bowl of noodles and chopsticks lol...I was thinking the same thing...this problem makes no sense in reality
I was literally learning "Dining Philosopher's Problem" for my upcoming semester until I saw this notification!! You literally read my mind, professor....
Soumyadip Pal lol
@@notaekbitcoin6314
I’ve covered this recently on my course but you’re still a godsend to anyone who studies CS or has an interest in it. I’m glad you have your own channel, had been saying it for a long time on android authority
Professor Sims - another excellent explanation and whilst I am tempted to continue heaping praise on you I find myself overwhelmed with a desire to eat.
LOL. Pizza to go!
loved how you started the video right to the point ! Your computer is already running multiple processes at the same time. Loved it! catches attention and you immediately start to think!
I just learning this problem in class, you really help me, bro.
Wow, you really just made it so easy. So easy to follow you and loved your way of explaining your ideas easily and in short time. Thumbs up professor.
exactlyy he's awesome
Got an exam on this in 11 minutes. Never understood it until now. Cheers!
This really helped me a lot cause we are currently at this problem in one of my courses this semester. Thanks a lot 👍
You explained this really well, great presentation
Thanks Gary! It's a very good visualization of some of the complex systems cpus have to work with. I now understand a little better what modifying the cpu scheduler on a custom kernel does in Android 😊
It's actually a task for OS.
Nicely explained. Love this channel!
Heard about it somewhere a long time ago but didn't know it has a fancy title... Good one!
omg whyy did I see this just now, I was trying to understand it for a month, and here I am understanding it in 8 mins ahahaha.
thank you Garyyyy
Glad it helped!
Gary Explains 👌🏼👌🏼
Very clear and good description, Thank YOu
great explanation sir... thank you sm!
Too late!! My OS exam was a week ago. lol
Nicely explained
Thanks for explaining deadlock
Thank you very much, this is a really nice way to explain threads and concurrent processes.
Well Explained!
If I may add about what atomic means:As the ancient Greeks believed that atoms are fundamental building blocks and can not be further broken into smaller components. In Computer science, Atomic operation must be completed from start till finish. For example if the locking operation is 5 lines of code then they must all be completed from start till finish. there my be no interups accepted, context switching by the scheduler or anything till the whole thing is complete. Thats why atomic operations have to be very short.
Thanks for explaining this Gary :)
Very clear, very helpful, thank you 🌹🌹
Loved it sir!!
Thanks for making a couple of the philosophers women! I noticed and appreciated it lol
Agreed! Just a small gesture like including diverse faces in an example goes a long way to help underrepresented folks feel welcome! Thank you, @Gary Explains !
How did this guy just explain in 8 minutes what my Operating Systems professor has been trying to explain for weeks?
Perfect explanation thank you....very helpful
Gary, I love you!
*GARY!!!* *Good Afternoon Professor!!!*
Still at work ... Sigh!
MARK!!! Stay strong! :-)
Really helpful ...You explained it in excellent way...Thank You So much...
Nice explainations sir!
Good evening again professor...
Two uploads today!!! :-)
Ya I know, already watched that sir!!!
Very nicely explained and informative.
Perfect explanation, thanks :)
kind comment öykü, I wish you a good luck in midterm
@@zeynepsedabirinci1409 hahahahhahahahahha you too
Thank you good explanation
Really thanks for your explanation. Love it so muchhh. Hope you can do more videos about cs.
like!
Professor, could u please explain how the I/O channel and DMA works??
thank you Gary this helps a lot!!
You have described the request as a polling mechanism but it’s more of a queuing mechanism handled by the scheduler isn’t it? Maybe the waiter should write down the request.
In which part am I describing as a polling mechanism, in the description of the problem or the solution? If it is the former, then that is the whole point there is no scheduler nor is there a queue. Such things form part of possible solutions.
Gary Explains True. This is a great explanation either way.
Any you make videos on semaphores and mutex.
Part of my syllabus this sem :)
Great explanation, thanks
This process contradict with google docs and Github where multiple user can edit it simultaneously. Can u plzzz how these process works ???
No, contradiction. They are two different problems. You don't need to exclusively lock a document.
*GARY!*
*Good evening, Professor!*
ZAMAN!!!
Great explanation, but I've never seen someone eat a meal with two forks. Seen plenty of people eat a meal with two chopsticks, however, I've never seen someone eat a meal with one chopstick. Maybe chopsticks are more appropriate for this illustration?
LOL. I have never met a group of philosophers who when dining didn't have enough cutlery in the first place! I don't think the type of cutlery used is really the issue here!
I didn't know there was something called "dining philosophers problem" so I literally thought you were going to talk about dining philosophers...
LOL
Very nicely explained👍🏻 big thums up. Also can you please continue with your Python tutorials? Along with these OS concepts
Sir, you have presented a simple solution for beginners. But in real life system the requests are random and concurrent. How would the 'waiter' here deal with random requests?
Also u have provided a solution that is not starvation free as the philosopher lets down the fork is he doesn't get the second one. In a real world situation, there might be a very resource hungry process that might run for a long time. In such a scenario the other process or philosopher might starve to death.
Is there a concurrent solution without essentially using locks? (Maybe using semaphores or monitors).
I know this is way beyond the limits of youtube and the type of videos you do, but would be great if you coukd answer or refer me to some place where i can find answer. ( I have a course on Parallel and Concurrent programming running)
It doesn't matter if the requests are random and concurrent. I was presenting the requests in order to demonstrate what would happen, but the principle is still the same.
As for resource hungry processes that is beyond the scope of the Dining Philosophers illustration, as here the main point is how to avoid deadlock. Having said that I did hint at the problem of the 5th philosopher not getting a shot at asking for the forks. There are various different solutions to this, one of which is to assign the requests for forks with a priority.
Dijkstra suggested a solution that doesn't use locks called the "Resource hierarchy solution."
Thank you, thank you very much! You explained it very good! English is not my native language. It would be great if you could add some key words (few titles of your speech) so it would be easier:) have a nice day!
Love u..grt explanation
i am studying engineering , and tomorrow i have an exam of Operating Systems. The timing of this video is lovely
Thank you.
Thank you !
This locking mechanism looks similar to semaphore in RTOS.
Yes that is right, there are different types of locks including mutexes, semaphores and critical sections.
This was great
Interesting, but it does not seem the waiter solves the problem. Instead of all picking up the left fork at the same time, now they will all be asking the waiter at the same time for permission and the 5 concurrent requests will cause a different lock.
I understand why you say that, but no. As I said towards the end of the video the locking mechanism is atomic, which means that only one philosopher can be granted the lock and allowed to pickup forks. There is a slightly deeper level which I didn't discuss which is what happens when a philosopher doesn't get a lock, but it is enough to say (at this level) that deadlock doesn't occur.
I see what you mean, but I’m talking about the problem in general.. The monitor giving locks does not seem to solve anything because if requests keep colliding with each other he will not have received a request to give a lock to.
Seems like you would need some kind of randomly generated wait period before retry
They can't collide, it is a queue.
ty
Thanks Gary, excellent stuff. Er, I’m on a diet, so eggheads, eat away
good explanation, interesting problem. but eating from the same fork is kinda gross
Dude I came here to see what philosophers ate at dinner
impressive
My question is, how does the waiter knows who is eating or not
I’m watching this on a TABLET not smartphone nor laptop
Congratulations.
I would just eat with my hands ✋️ 😩
Cheers to 8 minutes !
Hi professor, where can i get a « lock » for my girlfriend please? 🧐
Change the word "problem" to "paradox" in the title and you'll have a viral. Trust me.
hey great video. but fam y u got forks wid a pizza. whats wrong xD
👍
Solution, provide double the forks, who wants to share silverware?
비디오의 의미를 말해 줄 수 있니
Объяснение на Сшку, вы не проходите префайнал.
Chinese food and chopsticks would work better in this analogy
In Africa, we can just eat with our hands and do away with the forks.
If they can't figure out how to collaborate sufficient to eat, they're pretty bad philosopers.
Good video, but explaining this with chopsticks makes much more sense because you acutally need two of them to eat. Have to replace the pizza with something asian of course :-)
little does Gary know we have processors up to 64 cores in 2021, that's a lot of pizza
"little does Gary know we have processors up to 64 cores"... eh?
*MY PROFESSOR COULDN'T EXPLAIN SOMETHING SO SIMPLE* 🤦♂️