What is a "not nice English"? To avoid misinterpretation of your comment, for me, it's folks using abbreviations when trying to explain to students (missing the point).
@@alonhillel-tuch6560 if you want know what "not nice english" is your checking the right places. Normally the only thing more toxic than a RUclips comment section is the "professionals" on stack exchange! However these comments seem quite respectful, check out a linus comment section for some great examples.
0:39 a simple program 0:55 every step of a program corresponds to an instruction 1:04 each instuction corresponds to binary code 4:50 thread 5:28 think of this as a unit of execution 6:56 scheduler of operating system 8:11 time slice 11:09 proces 12:42 today's CPU 13:06 hyper threading 14:10 multi-core 14:38 multi-CPU (the best solution) 15:11 summary
Great Lecture! I really wish my professors at my university would teach like this. Very clear, concise, and not too fast... really like the pace of your teaching style. Thanks!
My teachers call me stupid because I question them and they can't answer. And try to shut students up they go like do the research yourself. I am glad after three days wasting with them and on research, I finally found your channel and finally got my answer with examples. Thank you, good sir, great explanation.
Far best explaination with beautiful overview to internal relation of threads with the operating system. Schedular, time slice, round Robin, queue, locking.. Tysm.. For this video🤗😊
Thankyou so much for your explanation!!!! I was having a bit of a hard time connecting all of the new concepts I had just learnt but you made it so much easier and explained precisely in a short time. :D
The example cited is not of multi threading but of multi processing. Word and Excel are two separate programs and therefore spawn separate processes each with their own process ID. It would be multi threading only if its the same program and they share the same memory address space.
Absolutely.. I am explaining a bunch of concepts here. First the idea of the scheduler controlling a thread's access to the CPU. So my first example between Word and Excel is multi-processing. But to the scheduler it is just arbitrating between 2 threads. At about 11:40, I show multi-threading in a Word application by describing one thread that handles keyboard input and one thread that handles printing. Both from the Word application. To the scheduler, it is just 2 threads. So there are multiple threads vying for the CPUs execution engine all the time. Sometimes the threads come from one application (called a multi-threaded app) and sometimes the threads come from different apps (or processes), and this is multi-processing (loosely referred to as multi-tasking).
@8:07 I have one question.. If an operating system controls the thread of a program other than operating system thread itself(because os too is a program).. Then, what program controls OS? Then the questions keep going.. Hmm..
You’d have to delve into OS design to really answer. But the OS is the first software thread that gets executed from reboot. Nothing controls it. I’m guessing that the way the Interrupt structure works permits the OS to regain control after application threads get some CPU time.
@@davecrabbe4579 How about system BIOS/UEFI ? Aren't they are the first program that boots when a computer is started.. If that's the case.. they too have thread right? I.e requires CPU.. Does OS control system BIOS too?
@@footballCartoon91 The UEFI is more complicated than the BIOS software as CPUs became more complex as time went on and more security features were needed. Yes, the "boot strap code" (which is BIOS/UEFI) prepares the hardware by loading drivers for the hard disk/SSD so that it can retrieve the OS software. (It also does much, much more). The basic job of the UEFI is to load the OS and provide some "secure boot" features.. so the system can't be hacked or hijacked on booting up. The details are complex, but basically the BIOS loads the OS and then the BIOS is exited. Think of the BIOS loading the OS and then "jumping" into the code of the OS. From this point the BIOS code is not really executed. (a simplified version).
thanks for the explanation, Dave! greetings from Brazil.in 5:54 , i have a question:thread is a full sequence of the instructions of process or a small group the instructions of process (6a,2b,8f,3c in the example)?
a thread is the complete set of instructions that complete some sub-task for the process. For instance, when the user hits PRINT in a word processing program. A 'thread is spawned", meaning a set of instructions that contain all the code to do the printing function are generated and sent into the queue to be executed by the CPU.
When we talk about multithread programming, it means that the application process(es) can have several running threads. When we have multiple threads, the process can answer multiple concurrent requests. There is a catch in this programming paradigm though; the running application can only benefit if it is using more than one processor core, otherwise it will be as if it were a single process.
One thing confuses me if OS is an program that means it is going to use cpu and we know our cpu can handle one process at a time so is that means excution of OS is halted when we use other applications
Yes.. that is true.. but the OS executes for 1ms, then your program for 1milli-second, then the OS, then the program so it *appears* as if both are working full time.
My other post was a joke,but *I actually have a question* after watching your next video (where comments are turned off) *Does this mean I have no way to tell my 32 core 64 thread threadripper 3970x which core/thread to use?* I want control of my system, and I'm starting to feel like I'm going to need hardware modifications. *Is there a way* via prioritizing cleverly *to* truly *control what information goes to thread `a' on core `x'* ? or am I stuck outside, having to trust this "scheduler" to decide what part of my code can be done in parallel when and in the optimal way considering each cores silicone lottery and proximity. That's a lot of trust, AMD is supposedly all about open source. There must be a way to gain full control.
The scheduler chooses the highest priority thread.. The best you can do is to write your own software and set a thread priority to be very high. Even then, you likely have some limits.. as the scheduler will need to run OS maintenance threads before app threads.
@@davecrabbe4579 that sucks, I'm determined to learn machine code then. Send it the voltages where they need to be to make what I want happen if need be. First for my system, them for others. I'n sure there will be patterns that emerge eventually. More of a daunting task then I realized, maybe even a lifes work.......
Thank you, Dave! I think you couldn´t possibly have explained it better. I was struggling with these concepts before but they are now clear. Subscribed!
By definition, a process and a program tend to be synonymous. A thread is a single unit of execution. In my explanation here, only a process can spawn a thread. Software development evolves constantly and since I am not an active software developer, this is not designed to keep current with new technologies. This video is designed to explain the fundamental concepts of how an Operating System handles multi-tasking. The advanced details of threads and processes are much more complex.
Oh okay I got it now. Thank you very much for your reply sir! Your video is great in explaining how processes and threads work in terms of OS and hardware layers. I will check out your other videos too :)
I am not sure what you mean or the question you are asking. In my video I used the example of a thread with a priority of 10 and one with priority of 2. The 10 is the higher priority thread and gets executed first.. I could not find a 0 priority thread..
Thank you very much, really good video! Now, I'd like to ask whether you could recommend me some book to learn a bit more in-depth all this knoledge you explain, maybe some books you liked would be great. Thanks again!
1 thread per core is always better than using a single core (hyper-threaded) to process 2 threads.. so 8c,8t. You see this now in graphic processors which have many cores.. and even in Apple’s new M1 cpu
Clear, concise, illustrated, well explained and done in a nice English! Thank you so much Dave!
Yes it is made for humans - Thank you for your leisurely and detailed style, Dave!
What is a "not nice English"? To avoid misinterpretation of your comment, for me, it's folks using abbreviations when trying to explain to students (missing the point).
@@alonhillel-tuch6560 if you want know what "not nice english" is your checking the right places.
Normally the only thing more toxic than a RUclips comment section is the "professionals" on stack exchange!
However these comments seem quite respectful, check out a linus comment section for some great examples.
7 years down the line, and this has helped me understand the difference between these two concepts. Thank you so much!
Finally someone "explained" rather than "re-read" from pre-made text. Thanks a lot!
0:39 a simple program
0:55 every step of a program corresponds to an instruction 1:04 each instuction corresponds to binary code
4:50 thread
5:28 think of this as a unit of execution
6:56 scheduler of operating system
8:11 time slice
11:09 proces
12:42 today's CPU
13:06 hyper threading
14:10 multi-core
14:38 multi-CPU (the best solution)
15:11 summary
Thanks for taking the time to document this..
nice :)
I've watched a lot of videos on this topic and none of them made sense to me except this one. Thank you.
Great Lecture! I really wish my professors at my university would teach like this. Very clear, concise, and not too fast... really like the pace of your teaching style. Thanks!
This is what I needed. My teacher can't explain, and this has the been the clearest explanation I found on RUclips so far
The best explanation over the whole internet!! Thank you
I wish I could give you multiple likes. Excellent, orderly, impacting lecture. Thank you.
Explained in a very beautiful way, it was so easy to grasp this concept through your explanation. It is well illustrated. Thank you
This explanation was a bit broad and clear compared to the other videos I’ve seen. Exactly what I needed. Thanks
I have been looking for this kind of explanation, and finally got it. everyone is explaining threads with jargon terms.
My teachers call me stupid because I question them and they can't answer. And try to shut students up they go like do the research yourself. I am glad after three days wasting with them and on research, I finally found your channel and finally got my answer with examples. Thank you, good sir, great explanation.
grin.. I'll bet they don't call you stupid..
Slowly explaining and with relevant example. This is perfect.
Best explanation in you tube on Processes & Threads..............super subscribed:)
THANK YOU VERY MUCH FOR BEING SO DETAILED AND CONCISE!! PLEASE KEEP UP THE GOOD WORK! YOU'VE HELPED ME SO MUCH!!
Awesome video explanation. Thanks for sharing your knowledge
i finally understood it. tired of all these professors with slides that doesn't explain crap. Thank mr. crabbe!
Far best explaination with beautiful overview to internal relation of threads with the operating system. Schedular, time slice, round Robin, queue, locking.. Tysm.. For this video🤗😊
Nice content and great teaching skills. Thanks so much.
Very simple and elaborate explanation, Thank you Dave :)
This was excellent, thank you so much. Very concise and well explained.
It is an amazing video that helps me to clearly understand the relationship, thanks a lot !
A very informative lecture for a brief introduction about the basic concepts of processes and threads.
Thank you a lot.
This was incredibly clear!
Thankyou so much for your explanation!!!! I was having a bit of a hard time connecting all of the new concepts I had just learnt but you made it so much easier and explained precisely in a short time. :D
It can't get any better than that !! Great explanation
Thank you very much, subscribed to this hidden gem for teaching you basics of computer systems!
very helpful video , amazing
well explained, looking forward for more videos, Thank You :)
clear rich contents well explained.
if you need c++ easy coding then visit my channel. and also subscribe plz
ruclips.net/channel/UC1LJDu2koq9y146MUH8prAg
The example cited is not of multi threading but of multi processing. Word and Excel are two separate programs and therefore spawn separate processes each with their own process ID. It would be multi threading only if its the same program and they share the same memory address space.
Absolutely.. I am explaining a bunch of concepts here. First the idea of the scheduler controlling a thread's access to the CPU. So my first example between Word and Excel is multi-processing. But to the scheduler it is just arbitrating between 2 threads. At about 11:40, I show multi-threading in a Word application by describing one thread that handles keyboard input and one thread that handles printing. Both from the Word application. To the scheduler, it is just 2 threads. So there are multiple threads vying for the CPUs execution engine all the time. Sometimes the threads come from one application (called a multi-threaded app) and sometimes the threads come from different apps (or processes), and this is multi-processing (loosely referred to as multi-tasking).
@@davecrabbe4579 Ok great, I got it now. Thanks Dave for the video and the detailed reply, its really appreciated.
Fantastic explanation, keep up the great content Dave!
Very well explained. Thanks
Video Published on 1st May 2017.
Me Watching it on 1st May 2019
A great Co-incidence and exposure to a fantastic tutorial.
Thanks Mr. DAVE.
1st May 2020
Well-explained, thanks so much!
Great introduction to Threads and multiThreading
Brilliantly explained, Dave.
This is absolutely the best explaination. I studied 4 years in university and still can't understand it
Thanks..
Thank you so much for sharing this. This filled some gaps in my knowledge.
Excellent explanation!!!
Very well explained... enjoyed learning!
if you need c++ easy coding then visit my channel. and also subscribe plz
ruclips.net/channel/UC1LJDu2koq9y146MUH8prAg
Great explanation, thank you so much!!!
Concise and practical! Brilliant. Thank you!
Wonderful tutorial on Process and Thread. Thank you!
Nice job explaining this so clearly
excellent explanation sir!
Great lecture! Well explained
Excellent Video, Really Help me a lot
if you need c++ easy coding then visit my channel. and also subscribe plz
ruclips.net/channel/UC1LJDu2koq9y146MUH8prAg
Thank you for great explanation :)
Tom cruise giving a great explanation !
Amazing sir !!! Thanks a lot !
Thanks for your effort with these videos, Dave! This one really helped me shore up some loose ends on the topic. Looking forward to more!
if you need c++ easy coding then visit my channel. and also subscribe plz
ruclips.net/channel/UC1LJDu2koq9y146MUH8prAg
Just FYI: Spamming comments like this will actually hurt your channel and ranking, so you should reconsider that as a strategy to grow your channel.
WOW!!! Thank you so much for such a clear explanation!!!
if you need c++ easy coding then visit my channel. and also subscribe plz
ruclips.net/channel/UC1LJDu2koq9y146MUH8prAg
@8:07
I have one question..
If an operating system controls the thread of a program other than operating system thread itself(because os too is a program)..
Then, what program controls OS?
Then the questions keep going..
Hmm..
You’d have to delve into OS design to really answer. But the OS is the first software thread that gets executed from reboot. Nothing controls it. I’m guessing that the way the Interrupt structure works permits the OS to regain control after application threads get some CPU time.
@@davecrabbe4579
How about system BIOS/UEFI ?
Aren't they are the first program that boots when a computer is started..
If that's the case..
they too have thread right?
I.e requires CPU..
Does OS control system BIOS too?
@@footballCartoon91 The UEFI is more complicated than the BIOS software as CPUs became more complex as time went on and more security features were needed. Yes, the "boot strap code" (which is BIOS/UEFI) prepares the hardware by loading drivers for the hard disk/SSD so that it can retrieve the OS software. (It also does much, much more). The basic job of the UEFI is to load the OS and provide some "secure boot" features.. so the system can't be hacked or hijacked on booting up. The details are complex, but basically the BIOS loads the OS and then the BIOS is exited. Think of the BIOS loading the OS and then "jumping" into the code of the OS. From this point the BIOS code is not really executed. (a simplified version).
Really good and clearly explained. Thnx!
thanks for the explanation, Dave! greetings from Brazil.in 5:54 , i have a question:thread is a full sequence of the instructions of process or a small group the instructions of process (6a,2b,8f,3c in the example)?
a thread is the complete set of instructions that complete some sub-task for the process. For instance, when the user hits PRINT in a word processing program. A 'thread is spawned", meaning a set of instructions that contain all the code to do the printing function are generated and sent into the queue to be executed by the CPU.
Thank you, I couldn’t have done it without you
This helped tremendously. Thanks.
Thanks a lot sir
thank u for such a knowledgeable lecture
When we talk about multithread programming, it means that the application process(es) can have several running threads. When we have multiple threads, the process can answer multiple concurrent requests. There is a catch in this programming paradigm though; the running application can only benefit if it is using more than one processor core, otherwise it will be as if it were a single process.
yes.. but for desktop OSes, they all can access multiple cores on today's CPUs.
One thing confuses me if OS is an program that means it is going to use cpu and we know our cpu can handle one process at a time so is that means excution of OS is halted when we use other applications
Yes.. that is true.. but the OS executes for 1ms, then your program for 1milli-second, then the OS, then the program so it *appears* as if both are working full time.
@@davecrabbe4579 oh and correct me if I am wrong, when we close a window the excution of os restart right thanks man good video ❤
My other post was a joke,but *I actually have a question* after watching your next video (where comments are turned off)
*Does this mean I have no way to tell my 32 core 64 thread threadripper 3970x which core/thread to use?*
I want control of my system, and I'm starting to feel like I'm going to need hardware modifications. *Is there a way* via prioritizing cleverly *to* truly *control what information goes to thread `a' on core `x'* ? or am I stuck outside, having to trust this "scheduler" to decide what part of my code can be done in parallel when and in the optimal way considering each cores silicone lottery and proximity. That's a lot of trust,
AMD is supposedly all about open source. There must be a way to gain full control.
The scheduler chooses the highest priority thread.. The best you can do is to write your own software and set a thread priority to be very high. Even then, you likely have some limits.. as the scheduler will need to run OS maintenance threads before app threads.
@@davecrabbe4579 that sucks, I'm determined to learn machine code then.
Send it the voltages where they need to be to make what I want happen if need be.
First for my system, them for others. I'n sure there will be patterns that emerge eventually. More of a daunting task then I realized, maybe even a lifes work.......
Thank you, Dave! I think you couldn´t possibly have explained it better. I was struggling with these concepts before but they are now clear. Subscribed!
thank you very much. The explanations are precise and simple
if you need c++ easy coding then visit my channel. and also subscribe plz
ruclips.net/channel/UC1LJDu2koq9y146MUH8prAg
thank you sir for explaining it so nicely...
Thanks, It is a very clear explanation
if you need c++ easy coding then visit my channel. and also subscribe plz
ruclips.net/channel/UC1LJDu2koq9y146MUH8prAg
Thanks sir for explaining this concept in such a simple way.
Many many thanks for the explanation!
Phenomenal explanation
tks sir, your explanation more understandable than my professor
Hey Dave, thank you verry much!
cheers from belgium! :)
brilliant explanation.....thank you ...so much ...
Very good video tutorial!! Thank you Sir :)
if you need c++ easy coding then visit my channel. and also subscribe plz
ruclips.net/channel/UC1LJDu2koq9y146MUH8prAg
ah I wish you were my professor. You explain it sooo much better - I'd probably enjoy the class more if you were my prof instead T---T
That was very useful. Thank you.
very imformative.thanks.
great tutorial
Great video!
Where is this school of applied arts and new media?
It has changed its name now.. It is the IT section of the Nova Scotia Community College in Halifax, NS, Canada
@@davecrabbe4579 Thanks for replying
I think this is a great explanation of Process vs Threads, but it is just a bit confusing when talks indifferently about threads ex. and processes ex.
Thanks a LOT sir.!
Can one program have more than one process? Can a thread still include other threads? Thanks.
By definition, a process and a program tend to be synonymous. A thread is a single unit of execution. In my explanation here, only a process can spawn a thread. Software development evolves constantly and since I am not an active software developer, this is not designed to keep current with new technologies. This video is designed to explain the fundamental concepts of how an Operating System handles multi-tasking. The advanced details of threads and processes are much more complex.
Oh okay I got it now. Thank you very much for your reply sir! Your video is great in explaining how processes and threads work in terms of OS and hardware layers. I will check out your other videos too :)
Thank you! 👏
very nice Sir
well explained.
Are you sure about the priority! 10 is prior in front of 0? It’s the reverse in my mind
I am not sure what you mean or the question you are asking. In my video I used the example of a thread with a priority of 10 and one with priority of 2. The 10 is the higher priority thread and gets executed first.. I could not find a 0 priority thread..
Thanks sir ❤️
Thank you very much, really good video! Now, I'd like to ask whether you could recommend me some book to learn a bit more in-depth all this knoledge you explain, maybe some books you liked would be great. Thanks again!
This field changes rapidly. We don't tend to use many texts at my College and so I am unsure what the current books on the topic might be.
Dave Crabbe okay, thanks anyway!
This was really good
Nice tutorial!
Nice Explanation .. :)
which is better: 8c,8t or 4c,8t
1 thread per core is always better than using a single core (hyper-threaded) to process 2 threads.. so 8c,8t. You see this now in graphic processors which have many cores.. and even in Apple’s new M1 cpu
@@davecrabbe4579 Thanks ♥️
Great video Dave, if only my lecturer was as articulate !
a nice intro to threads from the cpu's perspective.
Great, Thanks
Great!
Awesome) thank you very much
Thanks! very useful!
BEST EVER!!