底层知识
未读
0x500 程序进程或线程睡眠
知识来源-我的问题:就是类似于Python中得time.sleep()和Java中得Thread.sleep()这些操作,操作系统是怎么处理的? 调用Python的time.sleep()或者Thread.sleep()函数本质上是想让操作系统CPU暂停执行当前进程/线程一段指定的时间。这些函数背后
底层知识
未读
0x401 文件描述符
复习时提问: 什么是文件描述符? 为什么需要文件描述符? 文件描述符是一个非负整数,那他是否有上限? 有上限,用户可以进行配置 系统级上限和用户级上限 What 是文件描述符? 文件描述符是一个非负整数,用于唯一标识一个打开的文件或其他类型的资源,如套接字、管道等。在类Unix系统中,每个进程都有一
扩展知识
未读
0x400 IO多路复用
New Input/Output(NIO) NIO并不是简单地综合了同步阻塞IO、同步非阻塞IO和IO多路复用这些概念,而是提供了一套全新的API,这些API支持多种IO操作模式,包括但不限于上述三种。NIO的设计理念是提供更高效、更灵活的方式来进行网络通信和文件IO操作。 同步阻塞IO:在NIO中
底层知识
未读
0x306 数据拷贝的流程
在没有DMA控制器的情况下,数据从机械硬盘拷贝到移动硬盘的流转过程涉及多个步骤,数据主要以电信号的形式在硬件之间传输。下面是详细的步骤说明: 从机械硬盘读取数据: 当用户发起数据拷贝操作时,操作系统会发出指令,指示机械硬盘读取指定的数据块。 机械硬盘的读头移动到数据所在的磁道,并将磁头读写器放置在正
底层知识
未读
0x305 同步阻塞、同步非阻塞、异步阻塞、异步非阻塞
原文: 深入理解同步阻塞、同步非阻塞、异步阻塞、异步非阻塞_同步阻塞 同步非阻塞 异步阻塞 异步非阻塞-CSDN博客 #question 什么是同步?什么是异步? #question 什么是阻塞 ?什么是非阻塞? 同步、异步、阻塞、非阻塞 前面已经指出了关键性的知识点,下面将直接给本文四个概念的定义
扩展知识
未读
0x304 PIO&DMA
[!NOTE] 解决问题: 内核缓冲区的数据拷贝到用户缓冲区时,需要CPU参与吗?答:需要。 大家都知道一般我们的数据是存储在磁盘上的,应用程序想要读写这些数据肯定就需要加载到内存中。接下来给大家介绍下 PIO 和 DMA 这两种 IO 设备和内存之间的数据传输方式。 PIO 工作原理
底层知识
未读
0x303 计算机中数据的拷贝操作
数据拷贝是一个过程,不是看到了就知道了,发生了就知道了,数据需要传输,世界中所有的数据都需要传输,一个地方发生了一件事,这就是一个数据,如果这个数据并不向外传输,那么别人是无法知道的,向外传输的方式有很多中,如信号传输、线路传输、文字传输等。在计算机底层硬件也一样:读取数据,经过内部总线传输数据,到
底层知识
未读
0x302 进程或进程的阻塞和运行
本质:进程的状态信息在进程可运行队列可等待队列中切换 Linux内核将一个线程当做进程进行调度。内核维护了一个可运行的进程队列,所有处于TASK_RUNNING状态中的进程都会被放入可运行队列。这个队列的本质是使用双向链表将task_struct链接起来,排队使用CPU时间片,使用完时间片后重新等待
底层知识
未读
0x301 4种主要的IO模型
原文参考: https://blog.csdn.net/ldw201510803006/article/details/119767467 https://www.liaoxuefeng.com/wiki/1016959663602400/1017606916795776 前言 [!QUESTION
底层知识
未读
0x102 DMA数据拷贝
复习时思考: DMA是如何进行数据拷贝的? 为什么需要使用DMA进行数据拷贝? ==总结==:专业的人干专业的事,数据拷贝这个活就专门由DMA芯片负责,每次CPU需要什么数据时,告诉DMA芯片即可。 DMA,英文全称是Direct Memory Access,即直接内存访问。DMA本质上是一块主板上
底层知识
未读
0x201 IO复用
前置知识 I/O流 I/O流(输入/输出流)是程序和外部环境(文件,网络连接等)之间传输数据的通道。流提供一种连续的数据传输方式,使程序可以顺序的读取或写入数据。 除了流还有什么数据传输方式 ? 数据报:数据报是一种无连接的传输方式,每个数据报独立发送,且数据报之间没有固定的顺序。UDP(用户数据报