以下是IO的一个基本过程 先理解一下用户空间和内核空间,系统为了保护内核数据,会将寻址空间分为用户空间和内核空间,32位机器为例,高1G字节作为内核空间,低3G字节作为用户空间。当用户程序读取数据的时候,会经历两个过程:磁盘到内核空间(这块消耗性能,下面简称内核数据准备),内核空间拷贝到用户空间(下 ...
分类:
其他好文 时间:
2018-07-15 11:16:04
阅读次数:
125
一、概念 1、同步和异步IO:关注的是消息的通知机制 同步:synchronous,调用者等待被调用者返回消息,才能继续执行 异步:asynchronous,被调用者通过状态、通知或回调机制主动通知调用者被调用者的运行状态 2、阻塞/非阻塞IO:关注调用者在等待结果返回之前所处的状态 阻塞:bloc ...
分类:
其他好文 时间:
2018-07-04 21:05:12
阅读次数:
154
阻塞和非阻塞,同步和异步是node.js里经常遇到的词汇,我举个简单的例子来说明: 我要看足球比赛,但是妈妈叫我烧水,电视机在客厅,烧水要在厨房。家里有2个水壶,一个是普通的水壶,另一个是水开了会叫的那种水壶。我可以: 等着看球的我:阻塞 看着电视的我:非阻塞 普通水壶:同步 会叫的水壶:异步 所以 ...
分类:
其他好文 时间:
2018-06-30 12:38:55
阅读次数:
146
应用程序访问1个设备文件时可用阻塞/非阻塞方式.如果是使用阻塞方式,则直接调用open()、read()、write(),但是在驱动程序层会判断是否可读/可写,如果不可读/不可写,则将当前进程休眠,直到被唤醒。如果是使用非阻塞方式,就需要采用poll/select机制,而且打开文件时标记文件的访问权 ...
分类:
系统相关 时间:
2018-06-23 21:10:28
阅读次数:
377
IO模型的介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不 ...
分类:
编程语言 时间:
2018-06-20 19:01:35
阅读次数:
146
一、复习 1、进程、线程、协程 进程:是计算机中最小的资源分配单位,数据隔离,可以利用多核,数据不安全 线程:是计算机中最小的CPU调度单位,数据共享,GIL,数据不安全 协程:是线程的一部分,是由用户来调度,数据共享,数据安全 2、同步、异步、阻塞、非阻塞 异步:同时做不止一件事 同步:事情一件做 ...
分类:
编程语言 时间:
2018-06-20 18:53:39
阅读次数:
196
IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同 ...
分类:
其他好文 时间:
2018-06-19 23:23:42
阅读次数:
222
一、昨日内容回顾 1. 概念和理论 进程是计算机资源分配最小单位 进程三状态、同步、异步、阻塞、非阻塞 2. 进程的创建 实例化、自建类run,start,join,terminate,daemon等 3.进程的同步控制 Lock:互斥锁 Semaphore:锁+计数器 Event:事件 4.进程间 ...
分类:
编程语言 时间:
2018-06-14 18:44:05
阅读次数:
165
一、事件驱动与异步IO 回顾:同步、异步、阻塞、非阻塞 同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回。按照这个定义,其实绝大多数函数都是同步调用。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。 举例: 1. multi ...
分类:
编程语言 时间:
2018-06-13 19:41:29
阅读次数:
269
IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同 ...
分类:
其他好文 时间:
2018-06-12 19:33:48
阅读次数:
158