一、前概

ps:这里主要讲解的是一些有关操作系统IO有关的知识,如果你对这一块已经比较熟悉了,那你可以跳过这一块,去阅读后面的知识。如果你对这一块有所不了解的话,请静下心来阅读!

一、虚拟内存

1.什么是虚拟内存?

虚拟内存是计算机系统内存管理的一种技术。它使得每个进程都有自己独立的虚拟空间,并且在进程角度来看的话,该虚拟空间是一个线性空间(即一片连续的内存空间),进程可自由使用这片空间。

进程的虚拟空间可以划分为内核空间和用户空间,如下图所示:


(x86 的32位地址空间示意图,2^32=4G)

由图中可知,每个进程拥有4GB的虚拟地址空间。每个进程有各自的私有用户空间(0-3GB),这个空间对系统中的其他进程是不可见的。最高的1GB内核空间为所有进程以及内核所共享。

2.为什么要用虚拟内存?OR 虚拟内存的好处是什么?

我们可以先设想不用虚拟内存的情况,即进程直接对应物理内存进行操作。最容易想到和发生的事情就是:进程之间缺乏隔离性,造成了数据混乱。

举个小栗子

聊聊IO——阻塞?非阻塞?同步?非同步?相关推荐

  1. 聊聊对不同I/O模型的理解 (阻塞/非阻塞IO,同步/异步IO)

    一.关于I/O模型的问题 最近通过对ucore操作系统的学习,让我打开了操作系统内核这一黑盒子,与之前所学知识结合起来,解答了长久以来困扰我的关于I/O的一些问题. 1. 为什么redis能以单工作线 ...

  2. 阻塞和非阻塞、同步和异步 、五种IO模型

    阻塞和非阻塞,同步和异步 1 例子 故事:老王烧开水. 出场人物:老张,水壶两把(普通水壶,简称水壶:会响的水壶,简称响水壶). 老王想了想,有好几种等待方式 1.老王用水壶煮水,并且站在那里,不管水 ...

  3. 【网络编程】同步IO、异步IO、阻塞IO、非阻塞IO

    IO分两阶段: 1.数据准备阶段:在该阶段,根据是否等待数据准备,将IO分成阻塞和非阻塞: 2.内核空间复制回用户进程缓冲区阶段:在该阶段,只要程序需要等待复制完成,才能往下运行(尽管这个时间很短), ...

  4. python gevent模块 下载_Python协程阻塞IO非阻塞IO同步IO异步IO

    Python-协程-阻塞IO-非阻塞IO-同步IO-异步IO 一.协程 协程又称为微线程 CPU 是无法识别协程的,只能识别是线程,协程是由开发人员自己控制的.协程可以在单线程下实现并发的效果(实际计 ...

  5. python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)...

    python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程并行与并发同步与异步阻塞与非阻塞CPU密集型与IO密集型 线程与进程 进程 前言 ...

  6. 【多线程】0.理解一下5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO

    5种IO模型.阻塞IO和非阻塞IO.同步IO和异步IO 看了一些文章,发现有很多不同的理解,可能是因为大家入切的角度.环境不一样.所以,我们先说明基本的IO操作及环境. 本文是在<UNIX网络编 ...

  7. 同步阻塞,同步非阻塞,异步阻塞,异步非阻塞IO

    在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作. 在比较这两个模式之前,我们首先的搞明白 ...

  8. IO:同步,异步,阻塞,非阻塞

    IO - 同步,异步,阻塞,非阻塞 都是老生常谈的东西,多通读几遍,理解透彻! 实际上同步与异步是针对应用程序与内核的交互而言的.同步过程中进程触发IO操作并等待(也就是我们说的阻塞)或者轮询的去查看 ...

  9. IO - 同步,异步,阻塞,非阻塞

    转自:http://blog.csdn.net/historyasamirror/article/details/5778378 同步(synchronous) IO和异步(asynchronous) ...

  10. IO中的阻塞、非阻塞、同步、异步概念分析详解

    目录 1.什么是I/O编程 2.阻塞.非阻塞.同步.异步分析 2.1 什么是同步.异步 2.2 什么是阻塞和非阻塞 2.3 阻塞.非阻塞和同步.异步的区别 2.4 编程实现 3.参考文献 1.什么是I ...

最新文章

  1. 求单链表的最大值与原地逆转_江西师范大学硕士学位研究生入学考试数据结构试题(2003年)一.doc...
  2. android数据存放map_android - Java后台把数据用json发到手机端,里面是map存放的,必须要说明数据的类型?...
  3. 腾讯大佬教我的工作方法(非常有效!)
  4. 检索数据_18_按照多个字段排序查询结果
  5. 近似求PI (15 分)
  6. golang 返回值问题
  7. 杭电1874————单源最短路径(dijkstra)
  8. dataframe两个表合并_使用Pandas关联Excel表操作示例
  9. ASP截取字符:instr,instrrev,left,right,mid
  10. java plugin firefox_Firefox 中使用 Java 插件
  11. 用php做的图书管管理系统,PHP自习室图书馆座位管理系统
  12. Linux网络下载管理工具(lftp, ftp, lftpget, wget)
  13. 周日历插件weeklyCalendar,可添加日历提醒
  14. SHT30温湿度传感器使用记录(AVR atmega128)
  15. Mysql 8.0.27 免安装配置教程(windows)
  16. JavaScript节点操作、删除节点
  17. 解决WordPress文章页面无法显示的问题
  18. yocto宏查看方式
  19. 天刀手游服务器维护11月7号,天涯明月刀手游11月11日正式服维护公告
  20. win7 计算机无法搜索,Win7笔记本电脑无法搜索无线网络_计算机的基本知识_IT /计算机_信息...

热门文章

  1. Linux 进程管理学习笔记(一)
  2. KU040 slice内 路径分布 和 延时参数
  3. vue-render
  4. 最新手机号正则表达式,及生成程序
  5. 常见LED灯的颜色波长及应用
  6. 《你必须知道的的495个C语言问题》阅读笔记-(第4章)指针篇
  7. 程序人生 - 刚出道的黑客搞瘫美国输油管道
  8. 【HDFS】HDFS中的Trash功能
  9. 全面解析jQuery $(document).ready()和JavaScript onload事件
  10. S2SH The web application[] registered the JDBC driver [com.mysql.jdbc.Driver] bur failed to unreqist