当前位置: 首页 > news >正文

多屏合一网站建设做网站赚钱容易吗

多屏合一网站建设,做网站赚钱容易吗,网络营销公司排名榜,wordpress付费下载软件插文章目录 计算机角度IO操作系统IO常见的IO模型Java 中 3 种常见 IO 模型BIO#xff08;BlockingI/O#xff09;【同步阻塞IO】NIO#xff08;Non-blocking/New I/O#xff09;【非阻塞IO】IO多路复用AIO#xff08;Asynchronous I/O#xff09;【异步IO】 计算机角度IO 根… 文章目录 计算机角度IO操作系统IO常见的IO模型Java 中 3 种常见 IO 模型BIOBlockingI/O【同步阻塞IO】NIONon-blocking/New I/O【非阻塞IO】IO多路复用AIOAsynchronous I/O【异步IO】 计算机角度IO 根据冯.诺依曼结构计算机结构分为 5 大部分运算器、控制器、存储器、输入设备、输出设备。 从计算机结构的视角来看的话 I/O 描述了计算机系统与外部设备之间通信的过程。 IO (Input/Output) 通常是指计算机与外部设备之间的数据交换过程。输入设备如键盘、鼠标、摄像头等把数据输入到计算机中输出设备如显示器、打印机、扬声器等把数据从计算机中输出。 输入设备向计算机输入数据输出设备接收计算机输出的数据。 我们再先从应用程序的角度来解读一下 I/O。 为了保证操作系统的稳定性和安全性一个进程的地址空间划分为 用户空间User space 和 内核空间Kernel space 。 像我们平常运行的应用程序都是运行在用户空间只有内核空间才能进行系统态级别的资源有关的操作比如文件管理、进程通信、内存管理等等。也就是说我们想要进行 IO 操作一定是要依赖内核空间的能力。 并且用户空间的程序不能直接访问内核空间。 当想要执行 IO 操作时由于没有执行这些操作的权限只能发起系统调用请求操作系统帮忙完成。 因此用户进程想要执行 IO 操作的话必须通过 系统调用 来间接访问内核空间 操作系统IO 从操作系统角度来看IO是指操作系统通过设备驱动程序与硬件设备进行数据交换的过程。操作系统通过系统调用、中断等机制控制IO操作进而实现数据的输入和输出。操作系统通过各种设备驱动程序来管理硬件设备使得应用程序可以方便地对设备进行访问并获得所需的输入输出数据。 在计算机中IO是所有操作中最耗时的一部分因为设备的存储和处理速度比主存储器和CPU低得多。所以为了缩短IO的响应时间操作系统通常会使用缓存技术将提前读取或写出的数据缓存到内存里加快后续访问的速度。此外操作系统还会针对不同类型的设备使用不同的IO调度算法以提高整体IO效率例如 FCFS先来先服务、SJF最短作业优先、CFQ完全公平调度算法等。 操作系统负责计算机的资源管理和进程的调度我们电脑上跑着的应用程序其实是需要经过操作系统才能做一些特殊操作如磁盘文件读写、内存的读写等。真正的 IO 是在操作系统执行的。即应用程序的 IO 操作分为两种动作IO 调用 和 IO 执行。IO 调用是由进程应用程序的运行态发起而 IO 执行是操作系统内核的工作。 应用程序发起的一次 IO 操作包含两个阶段 IO 调用应用程序进程向操作系统内核发起调用。 IO 执行操作系统内核完成 IO 操作。 ​ 真正的IO都是操作系统执行的应用程序IO一般两种IO调用和IO执行 ​ 看似Java在读实际是操作系统在读 常见的IO模型 UNIX 系统下 IO 模型一共有 5 种同步阻塞 I/O、同步非阻塞 I/O、I/O 多路复用、信号驱动 I/O 和异步 I/O。 Java 中 3 种常见 IO 模型 BIOBlockingI/O【同步阻塞IO】 阻塞IO模型也称为同步IO模型在这种模型中一个线程需要在所有IO操作完成之后才能继续执行后续的代码因此也被称为“同步”模型。在阻塞IO模型中当一个线程调用了read()或write()等IO操作时线程会一直等待直到操作系统完成IO操作并返回结果才会继续执行后续的代码。 同步阻塞 IO 模型中应用程序发起 read 调用后会一直阻塞直到内核把数据拷贝到用户空间。 假设应用程序的进程发起 IO 调用但是如果内核的数据还没准备好的话那应用程序进程就一直在阻塞等待一直等到内核数据准备好了从内核拷贝到用户空间才返回成功提示此次 IO 操作称之为阻塞 IO。 Java之前所学的IO都是阻塞式IO。 阻塞 IO 的缺点就是如果内核数据一直没准备好那用户进程将一直阻塞浪费性能可以使用非阻塞IO 优化。 NIONon-blocking/New I/O【非阻塞IO】 非阻塞IO模型也称为异步IO模型在这种模型中一个线程可以发起IO请求后立即返回而不需要等待IO操作的结果因此也被称为“异步”模型。在非阻塞IO模型中当一个线程调用了read()或write()等IO操作时线程不会等待操作系统返回结果而是继续执行后续的代码。当操作系统完成IO操作后它会通知应用程序告知IO操作的结果。 如果内核数据还没准备好可以先返回错误信息给用户进程让它不需要等待而是通过轮询的方式再来请求。这就是非阻塞 IO 同步非阻塞 IO 模型中应用程序会一直发起 read 调用等待数据从内核空间拷贝到用户空间的这段时间里线程依然是阻塞的直到在内核把数据拷贝到用户空间。 相比于同步阻塞 IO 模型同步非阻塞 IO 模型确实有了很大改进。通过轮询操作避免了一直阻塞。 但是这种 IO 模型同样存在问题应用程序不断进行 I/O 系统调用轮询数据是否已经准备好的过程是十分消耗 CPU 资源的。 这个时候I/O 多路复用模型 就出现了 IO多路复用 IO 多路复用模型中线程首先发起 select 调用询问内核数据是否准备就绪等内核把数据准备好了用户线程再发起 read 调用。read 调用的过程数据从内核空间 - 用户空间还是阻塞的。发起请求数据时操作系统立即返回一个结果不是数据等数据完全准备好了向用户进程进行响应。 IO 多路复用模型通过减少无效的系统调用减少了对 CPU 资源的消耗。 既然 NIO 无效的轮询会导致 CPU 资源消耗我们等到内核数据准备好了主动通知应用进程再去进行系统调用。 IO 复用模型核心思路系统给我们提供一类函数如 select、poll、epoll它们可以同时监控多个 fd 的操作任何一个返回内核数据就绪应用进程再发起 recvfrom 系统调用。 文件描述符 fd(File Descriptor),它是计算机科学中的一个术语形式上是一个非负整数。当程序打开一个现有文件或者创建一个新文件时内核向进程返回一个文件描述符。 select应用进程通过调用 select 函数可以同时监控多个 fd在 select 函数监控的 fd中只要有任何一个数据状态准备就绪了select 函数就会返回可读状态这时应用进程再发起 recvfrom()请求去读取数据。 非阻塞 IO 模型NIO中需要 NN1次轮询系统调用然而借助select 的 IO 多路复用模型只需要发起一次询问就够了大大优化了性能。 缺点监听的 IO 最大连接数有限在 Linux 系统上一般为 1024。select 函数返回后是通过遍历 fdset找到就绪的描述符 fd。仅知道有 I/O 事件发生却不知是哪几个流所以遍历所有流. 因为存在连接数限制所以后来又提出了poll。与 select 相比poll 解决了连接数限制问题。但是select 和 poll 一样还是需要通过遍历文件描述符来获取已经就绪的 socket。如果同时连接的大量客户端在一时刻可能只有极少处于就绪状态伴随着监视的描述符数量的增长效率也会线性下降。 因此出现了epoll epoll 为了解决 select/poll 存在的问题多路复用模型 epoll 诞生它采用事件驱动来实现。epoll 先通过 epoll_ctl()来注册一个 fd文件描述符一旦基于某个 fd 就绪时内核会采用回调机制迅速激活这个 fd当进程调用 epoll_wait()时便得到通知。这里去掉了遍历文件描述符的坑爹操作而是采用监听事件回调的机制。这就是 epoll 的亮点。 epoll 明显优化了 IO 的执行效率但在进程调用 epoll_wait()时仍然可能被阻塞。能不能不用我老是去问你数据是否准备就绪等我发出请求后你数据准备好了通知我就行了这就诞生了信号驱动 IO 模型。 IO 模型之信号驱动模型 信号驱动不再用主动询问的方式去确认数据是否就绪而是向内核发送一个信号然后应用用户进程可以去做别的事不用阻塞。当内核数据准备好后再通 过信号通知应用进程数据准备好后的可读状态。应用用户进程收到信号之后立即调用 recvfrom去读取数据。 信号驱动 IO 模型在应用进程发出信号后是立即返回的不会阻塞进程。它已经有异步操作的感觉了。但是上面的流程图发现数据复制到应用缓冲的时候应用进程还是阻塞的。回过头来看下不管是 BIO还是 NIO还是信号驱动在数据从内核复制到应用缓冲的时候都是阻塞的。 AIOAsynchronous I/O【异步IO】 前面讲的 BIONIO 和信号驱动在数据从内核复制到应用缓冲的时候都是阻塞的因此都不算是真正的异步。AIO 实现了 IO 全流程的非阻塞就是 应用进程发出系统调用后是立即返回的但是立即返回的不是处理结果而是表示提交成功类似的意思。等内核数据准备好将数据拷贝到用户进程缓冲区发送信号通知用户进程 IO 操作执行完毕。 大概总结一下是这样
http://www.dnsts.com.cn/news/174220.html

相关文章:

  • 网站建设中端口号的作用是什么关键词语有哪些
  • 集团门户网站建设方案艾米艾园wordpress
  • 杭州怎么做网站ps图做ppt模板下载网站有哪些
  • 互联网网站有哪些安装2个wordpress
  • 中山 网站建设开发网络营销是什么?
  • 网页制作与网站建设报告wordpress app 加载慢
  • 公司网站搜索引擎排名分析池州网站制作公司
  • 网站设计制作价格怎么算淘宝网网站建设目的
  • 旅游网站的长图是怎么做的呀杭州集团网站建设
  • 贵州政务网站建设规范西北建设有限公司网站
  • 做外贸自己的公司网站地方网站怎么做挣钱
  • 新能源汽车十大名牌织梦与wordpress seo哪个好
  • 百度网站没收录建设网站如入什么费
  • 网站开发的论文引言wordpress时间文件夹
  • 搜索别人的网站是带logo的请问怎么做的案例分析网站
  • 广州天河网站建设公司中国十大it培训机构排名
  • sem网站建设南通网站建设方案托管
  • 贵州建设厅造价信息网站网站开发的研究背景
  • 深圳做品牌网站东莞广告公司招聘信息
  • 惠通网站建设网站设置专栏
  • 惠州做棋牌网站建设自动更新的网站建设
  • 连云港市住房和城乡建设局网站企业网站建设的类型主要有
  • 阳江网络问政平台首页网站优化知识资讯
  • 中国十大电商平台排名前十名seo的目的是什么
  • 怎样做网站后台什么是互联网营销
  • 大良建网站一流的镇江网站优化
  • 中国空间站设计在轨飞行几年wordpress 数据库导出
  • 网站建设与部署阿里云大学寺庙 网站建设
  • 花都建站网站icp备案费用
  • 怎么知道网站是某个公司做的个人简历通用免费模板