用户态和内核态

本文介绍了用户态和内核态的概念,以及它们在操作系统中的角色。在IO操作中,用户态的进程通过系统调用进入内核态以执行如文件读写、网络发送等任务。特权级的概念用于区分不同权限,用户态(Ring3)不具备访问内核空间的权限,而内核态(Ring0)则拥有更高权限。用户态到内核态的切换主要通过系统调用、异常和外围设备中断三种方式。了解这一过程有助于深入理解Java NIO的底层原理。
摘要由CSDN通过智能技术生成

前言

学了C++后发现之前对Java中NIO的理解还是太片面了,所以现在开始更加深入的去学习系统中的IO。学习IO的所有模型可以戳这篇10分钟看懂, Java NIO 底层原理。但是在看之前要先明白操作系统中的用户态和内核态。

值得注意的是Java中的NIO并不是非阻塞式IO(NoneBlocking IO),而是多路复用IO(New IO)。

用户态和内核态

用户态字面理解就是用户使用的空间,内核态则是操作系统使用的空间。在IO中(文件IO或者是网络IO),都是由用户去调用Read读取内核态中的数据,读取数据到用户态;而write则是将数据从用户态写到内核态中,由内核去写入文件或者是通过网络IO(网卡)发送数据。

下图是Linux系统中的用户态和内核态空间分配。

1.特权级的概念

在具体的解释用户态和内核态之前,要先解释一下特权级的概念,简单的理解就是超级会员有普通会员的权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值