IPC: To Share Memory Or To Send Messages

Поделиться
HTML-код
  • Опубликовано: 9 янв 2025
  • This video was sponsored by JetBrains.
    Now Free for non commercial use:
    Check out WebStorm for free today: jb.gg/check-ou... -
    Create your games for FREE with Rider: jb.gg/check-ou...
    Sing up to CodeCrafters, and build your own Redis, HTTP Server, Git, Grep, Shell and more:
    app.codecrafte...
    Sponsor my work on Github:
    github.com/jdv...
    In this video we explore why the two main methods processes can used to communicate between them.
    Questions and business contact:
    contact.coredumped@gmail.com
    Join our discord server:
    / discord
    Follow me on twitter:
    twittter.com/c...
    Twitch:
    / coredumpped

Комментарии • 276

  • @jean-naymar602
    @jean-naymar602 Месяц назад +115

    13:20 Is this overhead inherently caused by the syscall approach ?
    I mean, if you go the "shared memory" route, you'd have to essentially re-implement the synchronizing behaviour of the kernel's messaging implementation anyway.
    Would there still be a significant increase in performance even after doing that ?

    • @CoreDumpped
      @CoreDumpped  Месяц назад +130

      Yes, with shared memory you still need some sort of synchronization to avoid race conditions, so you pay that little price that comes with every atomic operation.
      But generally sys-calls are way slower because many of them inherently make the process go to a "wait" state, which translate into a huge performance penalty in terms of CPU scheduling.

    • @jean-naymar602
      @jean-naymar602 Месяц назад +11

      @@CoreDumpped Thanks ! I'll rewatch the syscall video to refresh my memory then :)

    • @xeridea
      @xeridea Месяц назад +25

      @@jean-naymar602 Due to how CPUs and privilege levels work, doing a system call requires an interrupt and context switch, and a delay for the system process to handle it, and then again returning to the calling process. this can be 100s or thousands of CPU cycles, which is generally acceptable, but often it would be too much. They may be on the order of microseconds, which is still fast, but you don't want to be doing them constantly. Many other tasks require syscalls, opening a file, reading keyboard input, interacting with any hardware, etc. Back in the bad old days, like DOS, all memory would be shared, and programs could interact directly with everything. While this is faster, it makes your system significantly more unstable. This is a big reason we have drivers and driver models, to communicate with hardware in a sane way.

    • @giusdb
      @giusdb Месяц назад +4

      Synchronization is mandatory in any condition where there are two asynchronous things that communicate with each other.
      It doesn't matter what they are, it has to be there somewhere.
      In IPC, besides synchronization, there are various other context exchanges.
      And besides that, there is a double COPY of the data, from the sender to the kernel, from the kernel to the receiver.
      In shared memory, there is only synchronization, fast but fragile and insecure.

    • @FlyWR
      @FlyWR Месяц назад

      ​@@giusdb finally a good answer.
      Theoretically, the copy can be avoided by remapping the pages from one process to another. The first process will loose access there, but often that's totally acceptable. I don't know if any existing OSes implement that though.
      Due to that, I think there can be an IPC protocol having roughly the same efficiency as shared memory. It will be quite complex though, and I'm not aware of any implementations.
      From answers above:
      * sys-calls are way slower, but they also are not required, as the IPC subsystem can be fully in userspace
      * context switching is not required, the sync code can be the part of the processes sharing the memory
      * the IPC code could use promise- or handle- like data, like non-locking disk IO, that way the code calling IPC will not have to wait and loose cycles. But even if it doesn't, the IPC should be handled the same way as the disk IO - in a separate thread.

  • @user-tn4mr8co5v
    @user-tn4mr8co5v Месяц назад +68

    The most unanswered or confused part to this date was ports, sockets and pipes.
    I had given up searching on this topic. But accidentally hit this video and the moment I heard the word pipes, sockets, and port, all my brain cells made a permanent communication path.
    Thanks, so many years of confusion cleared in a minute.

    • @u_u_u_2921
      @u_u_u_2921 16 дней назад +1

      A series of books from W. Richard Stevens answers all these questions and many more. IPC, network programming, programming in unix environment (syscalls, pipes, fork, exec, ...). I'm in love with these books since I found them in the early 2000s being a student.

  • @krutyanjayshinde7015
    @krutyanjayshinde7015 Месяц назад +65

    I am study adv. operating systems in my masters right now and your videos are a god send, Thank you so much ... best thing to watch with my morning coffee.

    • @YoussefBouhrira
      @YoussefBouhrira Месяц назад

      @krutyanjayshinde7015 Could you please recommend me some good Books that examine in details such advanced concepts related to operating systems ?

    • @botondtoth9316
      @botondtoth9316 Месяц назад

      Same

  • @FreestateofOkondor
    @FreestateofOkondor Месяц назад +36

    This is hands down one of the best channels on RUclips. Thank you so much for all the work you put in.

  • @MarkDavid712
    @MarkDavid712 Месяц назад +79

    12:25 - You have no idea how much I needed this.
    I mean, I do understand-the server and client are essentially processes on their respective machines. I've even written simple programs and worked with interconnected systems, so you'd think I would have an intuitive grasp of it.
    But the way it’s often represented, with the client and server depicted as entire machines, really stuck with me, and I couldn’t separate them in my mind. This explanation feels like a breakthrough. I think it’s going to help me develop a much stronger intuition about how OSes and IPC work. Thank you.

    • @Occultastic
      @Occultastic Месяц назад +3

      based profile picture.

    • @GreatTaiwan
      @GreatTaiwan Месяц назад

      @@Occultastic this cringe pfp is everywhere

    • @ardnys35
      @ardnys35 Месяц назад +1

      you should read about sockets or networking in general because client-server architecture is built upon all those. i didn't quite understand it either until i read some chapters from computer networks books

  • @joaopedrorocha5693
    @joaopedrorocha5693 Месяц назад +1

    Thanks! Was stuck trying to understand these concepts and how they play with each other!
    Your videos are great on how they mix the concepts with just enough implementation details so we can grasp the concepts and how they are concretized.

  • @srigi-dev
    @srigi-dev Месяц назад +8

    Eventhough I understand how computers & OSs works for a long time, this video-series is pure gold and I'm beneffiting from it greatly.

  • @MdYasir-bn6id
    @MdYasir-bn6id Месяц назад +1

    Its crazy how this video cleared all of my doubts related to ports, distributed systems and client-server architecture.

  • @LycheeLele-mh2ku
    @LycheeLele-mh2ku 5 дней назад

    Graduated from college a few months back in comp sci. I don't think I've came across anyone who's explained this concept better than you did

  • @franciscomagalhaes7457
    @franciscomagalhaes7457 Месяц назад +80

    ooooooooohhhh so a port is like a mailbox! It's memory space! That's an awesome explanation, I think it finally clicked! Thank you!
    Also thanks for reminding people that these illustrations usually found around the internet incorrectly imply that server and client are machines. It took me a while to figure out it's all just software that may or may not be running on different machines.

    • @davidarmijo8903
      @davidarmijo8903 Месяц назад +4

      Yeah! Just in time because my Intro to Computer Systems class is just covering Ports and Sockets and I was having trouble making a distinction between the two of them! 👍

    • @yurisich
      @yurisich Месяц назад +6

      In Linux, a pipe, a port, a socket, and a process are all represented in the filesystem as readable and writable resources, albeit in different ways, and with different types of behaviors corresponding to the baseline actions you normally take against the filesystem.

    • @franciscomagalhaes7457
      @franciscomagalhaes7457 Месяц назад +1

      @@yurisich that is *really* interesting, thank you so much for sharing, I'm always looking to understand this low level stuff better.

  • @kitamashi
    @kitamashi Месяц назад +1

    this is a GREAT video that actually explains the concepts without the overcomplicated jargons that usually means nothing. This video showed what happens with great description and illustration. You just gained a new subscriber, thanks!

  • @NHGeneral
    @NHGeneral Месяц назад

    Wow, what I'm working with now is invented 400 years ago and through this video I just got the idea behind it, before that just blindly accept the terminologies, thank you and subscribed!

  • @ВладФоменко-р4е
    @ВладФоменко-р4е Месяц назад +7

    Just the best channel about computers!

  • @d4vidyo
    @d4vidyo Месяц назад +2

    Crazy how you can explain concepts that i have read about a hundred times but only now really made it click

  • @bodycowlin
    @bodycowlin Месяц назад +8

    What a great start to this Friday 🎉 Happy coredumped day everyone! And thank you, Jorge, for another excellent video that elegantly pulls back the veil of our collective ignorance a little more.

  • @AhmedAsus2024
    @AhmedAsus2024 Месяц назад +14

    4:55 I'm excited to watch an episode about threads and thread synchronization

  • @SGnfX2000scnsoft
    @SGnfX2000scnsoft 26 дней назад

    TBH, I could not understand what is Networking and Ports, I do know that it has IP that shows machine location, but had no idea what the port actually is, Thank you very much.
    May Allah bless you bro, keep doing such learning stuff, you are doing best!

  • @premsagar4438
    @premsagar4438 Месяц назад +1

    Yes exactly, take your time to develop a great video. You don't have to rush just to diliver content super fast. Keep going!

  • @nneddenn6207
    @nneddenn6207 Месяц назад

    That's an instant subscribe from me. Thank for explaning core stuff in simple ways! I'm Senior Web Dev, it's interesting to listen about mechanisms underneath

  • @PierreThierryKPH
    @PierreThierryKPH Месяц назад +4

    It's a common myth that shared memory is faster, and a few high performance Erlang applications are good counter examples.
    Shared memory usually uses locks and mutexes that stop execution, sometimes degrading performance in huge ways (cf. Python's GIL). Shared memory also forces the CPU to use memory barriers.

    • @yimyim117
      @yimyim117 Месяц назад +2

      It’s not a myth that shared memory is faster. It literally is, as it requires less total system calls(Assuming Kernel level IPC). But in big applications it typically does not matter anymore. In the end, it’s much more important to write good code, which is arguably much harder with shared memory. And that’s the whole reason why you can find counter examples. You lose the performance benefits from shared memory quite fast if your data and control flow model are badly designed.

    • @PierreThierryKPH
      @PierreThierryKPH Месяц назад

      @@yimyim117 if your lock stops execution for more cycles than it takes the IPC, then no, it's not literally faster.
      It's only faster in a theoretical setting that has no practical application, because we don't know how to make reliable use of locks.

    • @yimyim117
      @yimyim117 Месяц назад

      @@PierreThierryKPH Unfortunately I can only partially agree with your statement. Yes, if you wait for your locks longer than the overhead of IPC, then it’s faster.
      But that’s not the complete story. Usually you design an application around using too many locks. Single Producer-Consumer Buffers are almost no overhead, also lock free data structures are rising in popularity. In theory you could even go so far to „mimic“ IPC by opening a shared memory area for each producer. This would make a very small performance overhead and you would not need to go through the kernel to relay a message; instead you forward it yourself I to the unique send buffer(in your shared memory).
      So no, the discussion is not that simple. Shared Memory is faster in its raw state and even in well-thought out and designed applications. But again, the complexity to manage an efficient design and an efficient implementation usually is hard enough, that you already lose the benefit of using shared memory.

  • @anonymouskitten4715
    @anonymouskitten4715 Месяц назад +31

    I was just rewatching one of your videos

  • @hghmnds
    @hghmnds Месяц назад +1

    sponsored by Jetbrains!!?? woah I'm really glad to be part of this channel

  • @MaxLothaire
    @MaxLothaire Месяц назад +3

    This video came out the very day I start learning the wayland protocol.

  • @dipper23874
    @dipper23874 Месяц назад +1

    I wish this video had existed for me when I was first learning about IPC several years ago!

  • @dixztube
    @dixztube Месяц назад

    Man this is so incredibly good how you explain these things. It makes it so clear

  • @laoluade5741
    @laoluade5741 Месяц назад

    I haven't finished watching the video, but the way ports popped in I had to leave a comment. I got so used to not really getting this broken down that I never asked!

  • @a.v7998
    @a.v7998 Месяц назад +1

    loved the video! im studying about operating system in my college semester right now! Watching your videos has been really great!

    • @Amanda_Huginkiss
      @Amanda_Huginkiss Месяц назад

      Same. Stoked to go through these videos before the final.

  • @fardelian
    @fardelian Месяц назад +13

    Thank you JetBrains for sponsoring this video!

    • @andrewtran9870
      @andrewtran9870 Месяц назад +1

      Fr fr, this channel is gold, and I'm glad JetBrains supports this

  • @DinHamburg
    @DinHamburg Месяц назад

    20 years ago i worked with QNX2 - which was a message-passing OS. Benefit was, that interprocess communication was the same, independent whether the peer-process was on the same or a different network node.
    The question whether memory sharing or message passing is better, depends on the granularity of calls.
    For instance, if you consider the number of registry calls around _any_ windows api-call, message passing seems out of question.

  • @swyveu
    @swyveu 22 дня назад

    I'm 9 seconds in...
    Any vid that starts with a Mandelbrot set is thumbs up by design !!

  • @Abe41194
    @Abe41194 Месяц назад +1

    Dude. Your content is unmatched.

  • @simonleary7090
    @simonleary7090 Месяц назад

    I really like the way you put focus on different parts of code using the yellow box

  • @EduardoTardinCosta
    @EduardoTardinCosta Месяц назад +6

    You are the best content online for CS students after CS50.

  • @rezah336
    @rezah336 Месяц назад +5

    messages: hundreds mb/sec
    memory sharing: gigabytes/sec
    you should have mentioned stdout/in which is the simplest and best one
    another fun one is the clipboard, but then you cant use it when your program runs, but good when you need to setup IPC in short time

  • @Ahmedsb12
    @Ahmedsb12 Месяц назад +5

    Bro, you are one of the best to do it ever. Could you make a video explaining how you do it, I think that 's going to be interesting.

  • @yanglijian
    @yanglijian Месяц назад +1

    When Core Dumped post a new video, I know my brain will start to grow up again.

  • @koussayhajlaoui9440
    @koussayhajlaoui9440 Месяц назад

    Excellent work! Well-structured videos and straightforward communication of information makes these videos really enjoyable

  • @_dnL
    @_dnL Месяц назад

    I never really understood the purpose of ports but just now it clicked. Thanks, excellent video !

  • @commonwombat-h6r
    @commonwombat-h6r Месяц назад

    simply incredible video. The quality is top notch! Bravo

  • @exe.m1dn1ght
    @exe.m1dn1ght Месяц назад

    This man cleaned my soul.. Thank you so much for this video , we all needed this

  • @CheeseBananas
    @CheeseBananas Месяц назад

    OS thread scheduling plays a role on IPC. An advantage of messaging on top of shared memory is that the OS thread scheduler knows that it needs to schedule the message receiving thread next.

  • @whtiequillBj
    @whtiequillBj Месяц назад +13

    Also message passing implementation changes per-Operating System.
    Also it's pronounced Mok.
    Also how does the change in a Micro kernel, a hybrid kernel, a monolithic kernel and an exo kernel?

    • @CoreDumpped
      @CoreDumpped  Месяц назад +4

      I was wondering why the TTS pronounced Mok. Thanks, I learned something today.

    • @idoben-yair429
      @idoben-yair429 Месяц назад +2

      None of these labels are important. What's important is the level of memory isolation. Most of the time when people say "process" they mean an execution context with fully isolated virtual memory. Then you can choose your level of punching a hole through this shield: threads within a process have no isolation, messages getting copied around preserve the isolation but can be expensive, and shared memory areas break the isolation although only in certain areas.

    • @XDarkGreyX
      @XDarkGreyX Месяц назад

      Kind of a Duh

  • @BenTrem42
    @BenTrem42 Месяц назад +1

    4:56 is *_exactly_*_ what came to mind when I read the title!_

  • @DoggletPug
    @DoggletPug Месяц назад

    Please cover RPC's and sockets... You're doing 10x better than my professors at uni for these topics!

  • @perguto
    @perguto 4 дня назад

    7:18 I think it's more like 1 renderer process per tab _group_. The precise rules are complicated, but for example, if a tab opens another tab via the open() function, they'll always share the same process, as they can acces each others' html. You can see what tabs are grouped into a process by opening the Chrome task manager via shift + escape

  • @ellehooq
    @ellehooq Месяц назад

    I can't believe I didn't know about this channel. This is brilliant!

  • @supmaxred
    @supmaxred Месяц назад +3

    3:06 This is wrong, a process cannot access the memory of another process at all if it does not want to, because the process works in its own address space, and there is no other process there. Only if the process itself wants shared memory, the operating system will allocate virtual memory, and map these addresses to the addresses of another process

    • @CoreDumpped
      @CoreDumpped  Месяц назад +3

      It is not wrong, a process trying to access the address space of another process might as well mean that it tries to use privilege instructions to manipulate the MMU, which triggers an interrupt.

    • @jonnyradars
      @jonnyradars Месяц назад +1

      @@CoreDumpped well yea, but without this notion what you're saying in the video sounds like processes do share the same address space which is, as the OP noted, plain wrong. IMO would be better to clearly state that in the video.

  • @aj.arunkumar
    @aj.arunkumar 27 дней назад

    thanks for existing... love your videos

  • @nathanpotter1334
    @nathanpotter1334 Месяц назад

    Bro had Prime's 2 Idiots 1 Keyboard up ☠😆 Amazing Video

  • @nullpointer1284
    @nullpointer1284 Месяц назад

    Would love a Mach version of this! I know the Unix process model is so ubiquitous, but Mach's concept of Task, Thread, and Virtual Memory that processes can be composed of is super cool IMO.

  • @heh2393
    @heh2393 Месяц назад

    Kudos for such high quality systems explainers

  • @MrSomethingdark
    @MrSomethingdark Месяц назад +148

    I swear Core Dumped is like a leaker from the dev community. All the devs obfuscate their knowledge and yet Core Dumped is like a prophet!!!

    • @noelgallagher3646
      @noelgallagher3646 Месяц назад

      Check out operating systems in 3 easy pieces for a nice introduction to a lot of these topics

    • @benebene9525
      @benebene9525 Месяц назад +25

      who tf is obfuscating knowledge??

    • @инкогнито-ю7з
      @инкогнито-ю7з Месяц назад +21

      No.
      He just tell you how it work in video format
      There tons of docs that discrabe how something works

    • @MrSomethingdark
      @MrSomethingdark Месяц назад

      @@инкогнито-ю7з coming from installing the SFML library and configuring it for VS 17. The devs of that library are actually telling ppl to get better scrub and read docs again and works fine for me. The actual guide for it is awful especially if youve never had a course before in such things. Specifically they tell you to include everything in your linker dependencies for input but when I do that the program doesnt compile

    • @hassanlabyad4082
      @hassanlabyad4082 Месяц назад

      ​@@benebene9525 if you ever went to a computer science or computer engineering school you will find that the gatekeeping is crazy (just go ask for something a bit difficult about arch linux in its community as an example, they will make you sweat before giving an answer)

  • @Mei-snt
    @Mei-snt Месяц назад

    Great video George, your animations are really awesome

  • @gFamWeb
    @gFamWeb Месяц назад +3

    Minor correction: it might just be the TTS (not sure if you are using TTS), but Mach is pronounced like Mock, not Match.

    • @CoreDumpped
      @CoreDumpped  Месяц назад +2

      The TTS actually got it right, but I didn't know about it (I'm not a native english speaker) and I re-wrote it as "ma-ach" to make it pronounce it "mach" instead of "mock".
      Sorry, I guess it is nice to learn something.

    • @gFamWeb
      @gFamWeb Месяц назад

      ​@@CoreDumppedyeah, no worries! Otherwise it's a really great video!

  • @kaus05
    @kaus05 Месяц назад

    Message passing is also more tedious to implement properly since you might want to also implement safety mechanism such has heartbeats and sequencing of packets also recovery incase of out of sequence

  • @Drudge.Miller
    @Drudge.Miller Месяц назад +1

    hi jorge, my name is drudge, and this, is core content

  • @gurupartapkhalsa6565
    @gurupartapkhalsa6565 Месяц назад +1

    shared memory is not necessarily faster as it depends on mutex locking, so the throughput of the memory space is a big factor if you're actually searching for a bottleneck and not just being pedantic. smem is a traditional approach for communicating with a trusted OS, and this is because most trusted OSes are single threaded by design, with access controls per function/object which are routed through a trusted kernel, and the trusted kernel handles most memory mapping and cleaning semantics. As a simple rule of thumb, the more asynchronous the two processes are, the less they should use shared memory.

  • @iloveparallelism
    @iloveparallelism Месяц назад

    Great video as always core dumped. Thank you for the content. I actually think I past my exams easier thanks to your channel.
    Regarding the performance, the communication is definitely much slower as you said. I had chance to work on a super computer with ~2000 cores. It is multiple machines w NUMA architecture, connected together over ethernet. Any communication would be extremely costly since over-ethernet networking, typically handled through southbridge, will be much slower than Memory Access, through northbridge. And of course the wait time by the OS contributes to the performance cost of communication. None the less, communication is inevitable on the way to scalability, so efficient communication it is.

    • @yimyim117
      @yimyim117 Месяц назад

      The problem is, your operating system will do too many copies. Once from user to kernel space, once from kernel space to network driver transmit queue, one from kernel space of the receiver to the user space of the receivers process

  • @edulum1318
    @edulum1318 Месяц назад

    My favorite channel right now

  • @antonyanchev7112
    @antonyanchev7112 Месяц назад +3

    Hello Core Dumped, do you think a topic like memory models/ memory ordering/ memory barriers could be a good idea for a future video ? It's a tough low level concept and people might benefit from your amazing explanation for it. Anyways, congrats on another great video!

    • @CoreDumpped
      @CoreDumpped  Месяц назад +6

      Two videos on memory (Paging and Virtual memory) are already on my list. Just be patience cause it takes quite a lot to make these videos.

    • @antonyanchev7112
      @antonyanchev7112 Месяц назад +1

      @@CoreDumpped Hey I hear you, the quality of these videos is insane! I was just wondering what you think of these topics

  • @jebstuart3162
    @jebstuart3162 Месяц назад +1

    Can you make a video about computer graphics please? I'd like to know how the CPU/graphics card make things appear on the screen, and how they process so many pixels so quickly

  • @gnodar01
    @gnodar01 Месяц назад +1

    Small correction: Mach was not and is not an Operating System. It was a kernel designed around the idea of microkernel architecture. macOS uses a heavily modified derivative of it called XNU, which is itself a (not so micro) kernel forming the basis of Darwin OS, which macOS is a superset of.

    • @j.rayscott4681
      @j.rayscott4681 7 дней назад

      Great video. Small correction. Mach is pronounced “mock”.

  • @zxxvcc
    @zxxvcc Месяц назад

    Text to speech is getting pretty great.

  • @leondepdelaw
    @leondepdelaw Месяц назад

    Thank you! I just learned something new today. 😁😁😁😁

  • @higochumbo8932
    @higochumbo8932 29 дней назад

    That is great! Very easy to understand, and visualizing things always helps.
    Would it be possible for you to share the sources you use in the video descriptions?

  • @needlermasta
    @needlermasta Месяц назад

    These videos are absolutely incredible - can you please make one where you describe how virtual machines relate to their host operating systems, and contrast that with how containers work, with animations of the address space? I'm wondering if virtual NICs are implemented any different than what's presented in this video.

  • @AchrafTITO-vl1hi
    @AchrafTITO-vl1hi Месяц назад +1

    The Question here is that we as a software developers do we just need to learn about thoes topics in a basic way know what that do and why , or not knowing them will effect our job ? I mean the web dev backend & machine learning

    • @yimyim117
      @yimyim117 Месяц назад +1

      It generally is very important to understand the behaviour of the operating system, your program runs on. Because system calls are used quite heavily most of the time. Also when implementing efficient IPC architectures for parallelized machine learning, this could potentially be important. To know the up-and downside of the IPC models.

    • @AchrafTITO-vl1hi
      @AchrafTITO-vl1hi Месяц назад

      @yimyim117 thank you sir

  • @dullyvampir83
    @dullyvampir83 2 дня назад

    Great video! What I'm not quiet sure I get, why not implement the mail boxes on top of shared memory with libraries in user space?

  • @mahmoudbasha4838
    @mahmoudbasha4838 15 дней назад

    I saw tons of articles talk about that IPC is to let processes communicate, share info etc and the mechanisms. But why processes need to communicate or share data at first ????
    i need to know the why the philosophy of IPC

  • @AEF23C20
    @AEF23C20 16 дней назад

    cooperating processes:
    4. different rights for processes
    5. if a process crashes, the other processes continue to work - this is reliability
    etc...

  • @kooba-be
    @kooba-be Месяц назад +1

    The point about not needing a network on localhost is a little misleading, since this is impleented via networks and loopback interface

  • @Lojdika
    @Lojdika Месяц назад

    In regards with consuming the messages by a server process, a video on reactor vs proactor model would be nice.

  • @zarmeza1
    @zarmeza1 Месяц назад +1

    awesome animation and explanation. what tools did you use to create it?

  • @ADNANEELMIR-r8f
    @ADNANEELMIR-r8f Месяц назад +1

    can you make a simple video about "File Descriptors" .

  • @ThePowerRanger
    @ThePowerRanger Месяц назад

    God this channel is great.

  • @Occultastic
    @Occultastic Месяц назад +1

    we are so back, boys.

  • @ayobomari8990
    @ayobomari8990 Месяц назад

    Message passing is like how golang go routine communicate between each other using channels, "don't communicate by sharing memory, share memory by communicating"

  • @sevfx
    @sevfx Месяц назад

    Hey there, I recently discovered your videos and am astonished by the technical, animating and didactic quality you put out here!
    Are there any sources you recommend, that you used for your videos? I would be interested in some quotable books or sites.
    Thank you for the great content :)

  • @ABaumstumpf
    @ABaumstumpf Месяц назад

    Message-passing really is fast enough in 99% of all cases.
    And when it is not - then you notice. But unless you have very good reasons to do otherwise you should stick with messaging. It is a lot simpler to set up and get going, and even if it turns out to be too slow later it is easy to replace.

    • @MadScientist267
      @MadScientist267 Месяц назад

      I'm not all that experienced but a few years back needed to do a bunch of IPC and needed it robust. I found sharing memory to be buggy (probably my fault lol) but message passing was rock solid with the race conditions dealt with. I got around any "speed" issues by passing them within memory by doing it on a small ram drive... it was clumsy code to look at but ran perfect and to be honest, I'd probably do it the same way (just better organized) today if I were to go at the same project again.

  • @SirusStarTV
    @SirusStarTV Месяц назад

    Make a video about 'stream' concept, how it abstracts away how data is exchanged from various sources.
    In programming languages they use streams assuming people know what it's, but only by coding something with them i understood how they work.

  • @RandomGeometryDashStuff
    @RandomGeometryDashStuff Месяц назад

    13:30 kernel also has to copy message from sender process to queue to receiver process

  • @shelata
    @shelata 12 дней назад

    Thanks!

  • @MrSomethingdark
    @MrSomethingdark Месяц назад

    Quick Time, now that's a name I haven't heard since the Browser Wars!!!

  • @Tayoky
    @Tayoky Месяц назад +1

    cool video what sofware do you use to make that

  • @sunilh1002
    @sunilh1002 Месяц назад

    Thanks for this great video, easy to understand, well put together. Waiting for Threads specific video - concurrency,locks, synchronization. When is it going to get released ?

  • @tibontibon5772
    @tibontibon5772 Месяц назад

    bro youre awesome, thank you very much for the explanation!!

  • @jean-naymar602
    @jean-naymar602 Месяц назад

    Thank you again for this amazing video!

  • @Cadet1249
    @Cadet1249 Месяц назад

    Literally today in class we started talking about socket programming and IPC lol

  • @randomgamevideos241
    @randomgamevideos241 27 дней назад

    Ever since this video i have been wandering where, STDIO fall, is it an IPC thing using send messages , and what is a pipe ?

  • @vikraal6974
    @vikraal6974 13 дней назад

    If process A sends message to the mailbox. How does process B know that they have a message before they can call receive()?

  • @marceloreston
    @marceloreston Месяц назад

    Excellent video! Congratulations!

  • @konkerouf
    @konkerouf Месяц назад

    WOW! Exactly when i need it. Huge refactorings going on requiring precise IPC

  • @juanjosecabrera3240
    @juanjosecabrera3240 Месяц назад

    I was just yesterday thinking about how can I improve processes communication (I'm using curl to pass event from a zig process to a nodejs service🤦‍♂)

  • @diamonddemon7612
    @diamonddemon7612 Месяц назад

    I want to know how memory is managed between the kernel and the hardware. Could you explain how an MMU (Memory Management Unit) works and how the kernels access to the RAM is different from processes running on the computer

    • @CoreDumpped
      @CoreDumpped  Месяц назад +1

      Yes, that topic is already on my list.

    • @ItsCOMMANDer_
      @ItsCOMMANDer_ Месяц назад

      MMUs are really cool (and pretty simple too!)

  • @fullaccess2645
    @fullaccess2645 Месяц назад

    KEEP COOKING BRO 💯💯💯💯💥💥💥

  • @exe.m1dn1ght
    @exe.m1dn1ght Месяц назад

    9:51 , why i feel this is an open hole for malicious code to execute right there ?

  • @sobreinquisidor
    @sobreinquisidor Месяц назад

    Can you do a video on async/await specifically around non blocking IO and how that can make web servers faster?

  • @elementare.
    @elementare. Месяц назад

    Amazing video bro!

  • @pcfreak1992
    @pcfreak1992 Месяц назад

    10:43: Minor correction on the pronunciation: It's pronounced /ma:k/, like in mach number (speed of sound).

  • @ThangNguyen-u6t8g
    @ThangNguyen-u6t8g Месяц назад

    Can you recommend me some good resources (like your channel :D) for Operating System? i.e books, blogs, or online courses?