首页 > 编程知识 正文

高级php面试题及答案,linux面试一般会问到什么

时间:2023-05-04 20:22:02 阅读:32978 作者:3114

介绍Linux I/o型号和同步异步块非块的区别(超重要)

同步:

同步是指进行一个功能调用时,在没有结果之前,不会返回该调用。 也就是说每一件事都要做,前一件事做完后才能做下一件事。

异步:

异步概念和同步是相对的。 一旦发出异步过程调用,调用方将无法立即获得结果。 实际处理此调用的部件在完成后将通过状态、通知和回调通知调用方。

块:

阻止调用意味着在返回调用结果之前,当前线程将挂起。 线程处于不可执行状态。 在此状态下,cpu不会为线程分配时间片。 这意味着线程将中断执行。 函数在得到结果之前不会返回。

无阻塞

无阻塞和阻塞概念意味着函数将立即返回,而不会阻塞当前线程,直到没有立即获得结果。

2、5种IO机型

了解同步和异步、阻塞和非阻塞的概念后,我们将讨论linux的五种IO模型。

1 )块I/o (阻塞I/o ) )。

2 )无阻塞I/o (无阻塞I/o ) )。

3 ) I/O复用(选择和轮询) (I/O多路复用) )。

4 )信号驱动I/o (信号驱动输入/输出(sigio ) )

5 )异步I/o (异步I/o ) thePOSIXAIO_functions ) )

前四种都是同步的,最后一种是异步的。

2.1、I/O块

等待APP应用程序调用I/o函数,阻止APP应用程序并准备数据。 如果数据尚未准备好,….数据准备好后,从内核复制到用户空间,IO函数返回成功的指示。

块I/O模型映射:调用recv ()/recvfrom )函数时在内核中等待和复制数据的过程。

recv ) )调用函数时,系统首先检查是否有准备好的数据。 如果数据未准备好,系统将处于等待状态。 准备好数据后,将数据从系统缓冲区复制到用户区域,然后返回函数。 在套接字APP应用程序中,recv (如果调用函数时用户空间中不一定已经存在数据,则recv )函数处于等待状态。

2.2、无阻塞I/O

未被阻止的IO通过该过程重复调用IO函数(重复系统调用多次,立即返回); 复制数据时,进程被阻止

将套接字接口设置为无阻塞是指示内核在请求的I/O未完成时返回错误而不使进程休眠。 这将使I/O函数持续测试数据是否就绪。 如果没有准备好,继续测试,直到数据准备好。 在继续此测试过程中,会消耗大量的处理器时间。

2.3、IO复用

主要是选择和epoll; 对于一个IO端口,可以同时接收多个I/o端口,这比调用两次、返回两次和阻止IO更无优势。 I/O复用模型使用select、poll和epoll函数。 这些函数阻止进程,但与阻止I/O不同,这些函数可以同时阻止多个I/O操作。 此外,在可以同时检测多个读、写I/O函数并读取或写入数据之前,不能实际调用I/O函数。

2.4、信号驱动IO

首先,它使用接口运行信号驱动I/O,并允许安装信号处理函数以防止进程被阻止。 准备好数据后,该过程可以接收SIGIO信号,并在信号处理函数中调用I/O操作函数来处理数据。

2.4、异步IO

一旦发出异步过程调用,调用方将无法立即获得结果。 实际上,处理此调用的部件在完成后将通过状态、通知和回调通知调用方的输入/输出操作

最后,总结比较以下五种IO模型。

理解文件系统(EXT4、XFS、BTRFS ) )。

文件处理grep、awk、sed这三个命令一定是已知的

深入了解IO复用的三种方法(select、poll、epoll ),包括三种不同、内部原理的实现吗?

Epoll的ET和LT模式(ET的无阻塞) )。

查询进程占用CPU的命令(请注意,used、buf和cache表示含义)

linux上的其他常规命令(kill、find、cp等)。

如何使用shell脚本

硬连接和软连接的区别

你觉得文件权限怎么样? (rwx ) )。

的三种时间(mtime、atime、ctime )分别在什么时候更改

简名全称中文名字意思

atimeaccess time上次访问时间文件中的数据库的时间

mtimemodify time更改时间文件内容更改的最后一次时间

ctimechange time更改时间文件的元数据已更改。 例如权限、所有者等

用于监视Linux网络带宽的命令,用于检查特定进程的网络资源消耗情况的命令

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。