操作系统的中的 IO

IO 是什么

IO 全称为 Input/Output ,翻译过来就是 输入/输出。

计算机角度的 IO
我们日常所说的输入输出,比较直观的意思就是计算机的输入/输出,计算机就是主体。

在计算机当中我们可以分为 5 个部分:运算器、控制器、存储器、输入十本、输出设备。
在这里插入图片描述

输入设备是向计算机输入数据和信息的设备,键盘,鼠标都是属于输入设备;
输出设备是向计算机硬件系统的终端设备,用于接收计算机数据的输出显示。像显示器、打印机就都是属于输出设备。

操作系统角度的 IO
我们要将内存中的数据写入到磁盘的话,那么主体就是一个程序。

操作系统就是负责计算机的资源管理和进程的调度,我们电脑运行着的应用程序,其实是需要经过操作系统,才能做出一些特殊的操作,如磁盘文件的读写,内存的读写等等。

真正的 IO 是在操作系统上执行的。即当前程序的 IO 操作分为两种动作:IO 调用和 IO 执行。IO 调用是由进程(应用程序的运行态)发起的,而 IO 执行是操作系统内核的工作。

而应用程序发起的一次 IO 操作是包含了两个阶段的:
IO 调用:应用程序进程向操作系统内核发起调用。
IO 执行:操作系统内核完成 IO 操作。

I/O模型

阻塞 IO

假设应用程序的进程发起 IO 调用,但是如果内核的数据还没有准备好的话,那么应用程序进程就一直在阻塞等待,一直等到内核数据准备好了,从内核拷贝到用户空间,才返回成功提示,此次 IO 操作,就称呼为 阻塞 I/O

阻塞 I/O 比较经典的应用就是 阻塞 socket,Java BIO。
在这里插入图片描述

优点:开发简单,容易入门;在阻塞等待期间,用户线程挂起,在挂起期间是不会占用 CPU 资源的。
缺点:一个线程维护一个 IO,是不适合大并发,在并发

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值