聊聊IO——阻塞?非阻塞?同步?非同步?
一、前概
ps:这里主要讲解的是一些有关操作系统IO有关的知识,如果你对这一块已经比较熟悉了,那你可以跳过这一块,去阅读后面的知识。如果你对这一块有所不了解的话,请静下心来阅读!
一、虚拟内存
1.什么是虚拟内存?
虚拟内存是计算机系统内存管理的一种技术。它使得每个进程都有自己独立的虚拟空间,并且在进程角度来看的话,该虚拟空间是一个线性空间(即一片连续的内存空间),进程可自由使用这片空间。
进程的虚拟空间可以划分为内核空间和用户空间,如下图所示:
(x86 的32位地址空间示意图,2^32=4G)
由图中可知,每个进程拥有4GB的虚拟地址空间。每个进程有各自的私有用户空间(0-3GB),这个空间对系统中的其他进程是不可见的。最高的1GB内核空间为所有进程以及内核所共享。
2.为什么要用虚拟内存?OR 虚拟内存的好处是什么?
我们可以先设想不用虚拟内存的情况,即进程直接对应物理内存进行操作。最容易想到和发生的事情就是:进程之间缺乏隔离性,造成了数据混乱。
举个小栗子
聊聊IO——阻塞?非阻塞?同步?非同步?相关推荐
- 聊聊对不同I/O模型的理解 (阻塞/非阻塞IO,同步/异步IO)
一.关于I/O模型的问题 最近通过对ucore操作系统的学习,让我打开了操作系统内核这一黑盒子,与之前所学知识结合起来,解答了长久以来困扰我的关于I/O的一些问题. 1. 为什么redis能以单工作线 ...
- 阻塞和非阻塞、同步和异步 、五种IO模型
阻塞和非阻塞,同步和异步 1 例子 故事:老王烧开水. 出场人物:老张,水壶两把(普通水壶,简称水壶:会响的水壶,简称响水壶). 老王想了想,有好几种等待方式 1.老王用水壶煮水,并且站在那里,不管水 ...
- 【网络编程】同步IO、异步IO、阻塞IO、非阻塞IO
IO分两阶段: 1.数据准备阶段:在该阶段,根据是否等待数据准备,将IO分成阻塞和非阻塞: 2.内核空间复制回用户进程缓冲区阶段:在该阶段,只要程序需要等待复制完成,才能往下运行(尽管这个时间很短), ...
- python gevent模块 下载_Python协程阻塞IO非阻塞IO同步IO异步IO
Python-协程-阻塞IO-非阻塞IO-同步IO-异步IO 一.协程 协程又称为微线程 CPU 是无法识别协程的,只能识别是线程,协程是由开发人员自己控制的.协程可以在单线程下实现并发的效果(实际计 ...
- python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)...
python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程并行与并发同步与异步阻塞与非阻塞CPU密集型与IO密集型 线程与进程 进程 前言 ...
- 【多线程】0.理解一下5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO
5种IO模型.阻塞IO和非阻塞IO.同步IO和异步IO 看了一些文章,发现有很多不同的理解,可能是因为大家入切的角度.环境不一样.所以,我们先说明基本的IO操作及环境. 本文是在<UNIX网络编 ...
- 同步阻塞,同步非阻塞,异步阻塞,异步非阻塞IO
在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作. 在比较这两个模式之前,我们首先的搞明白 ...
- IO:同步,异步,阻塞,非阻塞
IO - 同步,异步,阻塞,非阻塞 都是老生常谈的东西,多通读几遍,理解透彻! 实际上同步与异步是针对应用程序与内核的交互而言的.同步过程中进程触发IO操作并等待(也就是我们说的阻塞)或者轮询的去查看 ...
- IO - 同步,异步,阻塞,非阻塞
转自:http://blog.csdn.net/historyasamirror/article/details/5778378 同步(synchronous) IO和异步(asynchronous) ...
- IO中的阻塞、非阻塞、同步、异步概念分析详解
目录 1.什么是I/O编程 2.阻塞.非阻塞.同步.异步分析 2.1 什么是同步.异步 2.2 什么是阻塞和非阻塞 2.3 阻塞.非阻塞和同步.异步的区别 2.4 编程实现 3.参考文献 1.什么是I ...
最新文章
- 求单链表的最大值与原地逆转_江西师范大学硕士学位研究生入学考试数据结构试题(2003年)一.doc...
- android数据存放map_android - Java后台把数据用json发到手机端,里面是map存放的,必须要说明数据的类型?...
- 腾讯大佬教我的工作方法(非常有效!)
- 检索数据_18_按照多个字段排序查询结果
- 近似求PI (15 分)
- golang 返回值问题
- 杭电1874————单源最短路径(dijkstra)
- dataframe两个表合并_使用Pandas关联Excel表操作示例
- ASP截取字符:instr,instrrev,left,right,mid
- java plugin firefox_Firefox 中使用 Java 插件
- 用php做的图书管管理系统,PHP自习室图书馆座位管理系统
- Linux网络下载管理工具(lftp, ftp, lftpget, wget)
- 周日历插件weeklyCalendar,可添加日历提醒
- SHT30温湿度传感器使用记录(AVR atmega128)
- Mysql 8.0.27 免安装配置教程(windows)
- JavaScript节点操作、删除节点
- 解决WordPress文章页面无法显示的问题
- yocto宏查看方式
- 天刀手游服务器维护11月7号,天涯明月刀手游11月11日正式服维护公告
- win7 计算机无法搜索,Win7笔记本电脑无法搜索无线网络_计算机的基本知识_IT /计算机_信息...
热门文章
- Linux 进程管理学习笔记(一)
- KU040 slice内 路径分布 和 延时参数
- vue-render
- 最新手机号正则表达式,及生成程序
- 常见LED灯的颜色波长及应用
- 《你必须知道的的495个C语言问题》阅读笔记-(第4章)指针篇
- 程序人生 - 刚出道的黑客搞瘫美国输油管道
- 【HDFS】HDFS中的Trash功能
- 全面解析jQuery $(document).ready()和JavaScript onload事件
- S2SH The web application[] registered the JDBC driver [com.mysql.jdbc.Driver] bur failed to unreqist