必背八股文-操作系统(4)

常见的IO模型:

  • 阻塞I/O模型(Blocking I/O):在阻塞I/O模型中,程序在进行I/O操作时,会一直阻塞等待,直到操作完成才返回结果。这种模型简单易用,但会导致CPU的空闲等待,效率较低。
  • 非阻塞I/O模型(Non-blocking I/O):在非阻塞I/O模型中,程序在进行I/O操作时,会先进行查询操作,判断I/O设备是否就绪,如果设备未就绪,则返回错误信息。程序可以继续执行其他操作,等待一段时间后再次查询I/O设备是否就绪,直到设备就绪,才进行I/O操作。这种模型可以减少CPU空闲等待,但需要进行多次查询操作,效率较低。
  • 多路复用I/O模型(I/O Multiplexing):多路复用I/O模型允许程序同时监控多个I/O流的状态,当其中任意一个流发生变化时,操作系统通知该进程或线程进行处理。这种模型可以提高系统的效率和性能,支持更高的并发性能。
  • 信号驱动I/O模型(Signal-driven I/O):信号驱动I/O模型使用操作系统提供的信号机制来通知程序I/O设备是否就绪。程序在进行I/O操作时,先向操作系统注册信号处理函数,在I/O设备就绪时,操作系统会向程序发送信号,程序收到信号后,执行相应的处理函数。这种模型可以提高系统的效率和性能,但需要程序支持信号机制。
  • 异步I/O模型(Asynchronous I/O):异步I/O模型允许程序进行I/O操作后,继续执行其他操作,当I/O设备就绪后,操作系统通知程序进行I/O操作,程序在进行I/O操作时,不需要进行查询操作,直接读取或写入数据。这种模型可以减少CPU空闲等待,提高系统的效率和性能。

IO多路复用

I/O多路复用(I/O Multiplexing)是一种基于事件驱动的I/O模型,它允许单个进程或线程同时监控多个I/O流的状态,当其中任意一个流发生变化时,操作系统通知该进程或线程进行处理。

I/O多路复用的实现方式通常是通过操作系统提供的select、poll或epoll

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏主要是介绍嵌入式软件开发岗位的相关知识和学习攻略,为大家提供一份笔试与面试手册。包括有嵌入式软件开发岗位介绍与学习攻略;校园招聘和offer疑惑问题的介绍;在笔试方面,如何刷题为笔试作准备,提供往年笔试真题;在面试方面,提供相关知识的复习重点,提供面试真题。包括有:华为、蔚来、文远、大疆、三一、深信服、亚马逊、Intel、百度、科大讯飞、OPPO、京东、中兴、比特大陆|算能、美团等等

全部评论
阻塞I/O模型虽然效率低,但在一些简单的场景下可以使用。
点赞
送花
回复 分享
发布于 2023-05-13 20:18 天津
信号驱动I/O模型使用操作系统提供的信号机制来通知程序I/O设备是否就绪,需要考虑信号的处理。
点赞
送花
回复 分享
发布于 2023-05-13 20:24 天津
国泰君安
校招火热招聘中
官网直投
好难呐 自学麻了
点赞
送花
回复 分享
发布于 2023-07-24 21:11 广东

相关推荐

查看26道真题和解析
点赞 评论 收藏
分享
3 12 评论
分享
牛客网
牛客企业服务