用户态和内核态

        实际上任何Linux发行版(Centos/RedHat....),其系统内核都是Linux。我们的应用都需要通过Linux内核与硬件交互。为了避免用户应用导致冲突甚至内核崩溃,用户应用与内核是分离的:

用户态和内核态_第1张图片

  • 进程的寻址空间会划分为两部分:内核空间用户空间

  • 用户空间只能执行受限的命令(Ring3),而且不能直接调用系统资源,必须通过内核提供的接口来访问。

  • 内核空间可以执行特权命令(Ring0),调用一切系统资源。

Linux操作系统为了提高IO效率,会在用户空间和内核空间都加入缓冲区:

  • 往磁盘写数据时,要先把用户缓冲区数据拷贝到内内核缓冲区,然后再写入磁盘。

  • 从磁盘读数据时,要先将数据从磁盘读取到内核缓冲区,然后再拷贝到用户缓冲区。

用户态和内核态_第2张图片 

你可能感兴趣的:(IO模型,操作系统,redis,IO,操作系统)