同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的networkIO。一概念说明在进行解释之前,首先要说明几个概念:-用户空间和内核空间-进程切换-进程的阻塞..
分类:
系统相关 时间:
2017-07-19 12:02:14
阅读次数:
184
IO多路复用之epoll总结epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy..
分类:
其他好文 时间:
2017-07-19 11:48:16
阅读次数:
151
原文地址:用户空间和内核空间通讯之【Netlink 上】 作者:wjlkoorey258 引言 Alan Cox在内核1.3版本的开发阶段最先引入了Netlink,刚开始时Netlink是以字符驱动接口的方式提供内核与用户空间的双向数据通信;随后,在2.1内核开发过程中,Alexey Kuznets ...
分类:
Web程序 时间:
2017-07-16 16:47:20
阅读次数:
220
原文地址:用户空间和内核空间通讯之【Netlink 中】 作者:wjlkoorey258 今天我们来动手演练一下Netlink的用法,看看它到底是如何实现用户-内核空间的数据通信的。我们依旧是在2.6.21的内核环境下进行开发。 在</usr/include/linux/netlink.h>文件里包 ...
分类:
Web程序 时间:
2017-07-16 16:46:28
阅读次数:
192
1. 操作系统中,每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。 2. 当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈。 3. 内核栈是内存中属于操作系统空 ...
分类:
其他好文 时间:
2017-07-14 23:07:15
阅读次数:
205
用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操 ...
分类:
编程语言 时间:
2017-07-13 00:47:31
阅读次数:
264
用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操 ...
分类:
编程语言 时间:
2017-07-12 21:18:03
阅读次数:
222
磁盘io工作机制 1、标准方式 物理磁盘<-->内核空间<-->用户地址空间 2、直接I/O 物理磁盘<-->用户地址空间 数据库是这么干的,从同样是系统软件的角度来看,数据库是跟操作系统平起平坐的。 3、内存映射 物理磁盘<-->内核空间 用户地址空间 2跟3没有真正理解其区别,网上也没找到资料。 ...
分类:
编程语言 时间:
2017-07-10 10:32:15
阅读次数:
180
进程间通信(IPC:Inner Proceeding Communication) 进程是操作系统实现程序独占系统执行的假象的方法。是对处理器、主存、I/O设备的抽象表示。每一个进程都是一个独立的资源管理单元,每一个进程所示是自己独占使用系统的假象。因此各个进程之间是不可以直接的訪问对方进程的资源的 ...
分类:
系统相关 时间:
2017-07-09 13:51:06
阅读次数:
251
今天我们介绍还有一种用户内核空间通信的方法:proc文件系统。 proc文件系统作为linux提供的一种虚拟文件系统并不占用实际外围存储空间,它仅存在于内存中。系统断电即消失。proc文件系统最開始的设计主要是为满足内核向用户态进程报告其状态而设计,并没有为输入做规定和说明。随着发展,如今的proc ...
分类:
其他好文 时间:
2017-07-08 16:52:14
阅读次数:
159