![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机基础
文章平均质量分 91
详细说说计算机组成及其作用
努力的小雨
我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。身兼掘金优秀作者、腾讯云内容共创官、阿里云专家博主、华为云云享专家等多重身份。
目前,我的探索重点在于 AI Agent 智能体应用,我对其充满好奇,并不断探索着其潜力与可能性。如果你也对此领域充满热情,欢迎与我交流分享,让我们共同探索未知的领域!
我将不吝分享我在技术道路上的个人探索与经验,希望能为你的学习与成长带来一些启发与帮助。
欢迎关注努力的小雨!
展开
-
探索操作系统:内核、启动和系统调用的奥秘
总结一下,操作系统是计算机不可或缺的一部分,它连接着硬件和应用程序。内核是操作系统的核心,负责管理进程和线程、内存、硬件设备以及提供系统调用接口。计算机启动过程中,ROM负责加载并执行BIOS程序,而RAM用于存储运行中的程序和数据。系统调用是操作系统提供给应用程序的接口,通过系统调用可以访问操作系统的功能。系统调用相当于一个办事大厅,应用程序需要通过系统调用来完成特定的操作或获取特定的服务。我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。原创 2024-08-09 09:30:53 · 659 阅读 · 0 评论 -
进程调度的原理和算法探析
进程调度是操作系统中重要的任务之一。调度程序根据进程的状态变化,选择下一个进程来占用CPU执行任务。调度的原则包括CPU利用率、系统吞吐率、周转时间、等待时间和响应时间等。调度算法分为非抢占式和抢占式两种类型,其中常见的算法包括先来先服务、时间片轮转、最短作业优先、最短剩余时间优先、优先级调度和多级反馈队列调度。每种算法都有其优点和缺点,我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。原创 2024-08-12 09:01:31 · 331 阅读 · 0 评论 -
系统内存管理:虚拟内存、内存分段与分页、页表缓存TLB以及Linux内存管理
虚拟内存是操作系统提供的一种机制,通过将每个进程分配的独立的虚拟地址空间映射到实际的物理内存地址空间上,解决了多个应用程序直接操作物理内存可能引发的冲突问题。虚拟内存的使用使得每个进程都可以拥有相同的虚拟地址空间,而不用担心与其他进程的地址冲突。通过虚拟内存机制,操作系统能够更好地管理系统内存资源,提供更高的安全性和稳定性。虚拟内存的实现方式有分段和分页,其中分页机制更为常用,采用多级页表的方式节约了内存空间。页表缓存TLB能够加快虚拟地址到物理地址的转换速度。原创 2024-08-10 07:43:40 · 526 阅读 · 0 评论 -
深入理解操作系统中进程与线程的区别及切换机制(下)
进程和线程是操作系统中的两个重要概念。进程是程序的一次执行过程,拥有自己的地址空间和资源,是资源分配的基本单位。进程之间通过上下文切换来共享CPU,保证公平分配。进程切换涉及到保存和加载进程的相关信息、状态变更、队列操作、调度算法等。线程是进程中的独立执行流程,可以共享进程的资源,但有独立的寄存器和栈。线程的上下文切换相比进程较小,只需要保存线程的相关寄存器和计数器等信息。我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。原创 2024-08-11 08:22:17 · 428 阅读 · 0 评论 -
深入理解操作系统中进程与线程的区别及切换机制(上)
进程是指正在运行的程序,可以包含一个或多个线程。在早期,CPU只有一个核心,多个任务需要排队等待执行。后来,引入了多任务的概念,将时间划分为多个时间片,每个任务占用一个时间片执行,实现了伪并行。现代CPU拥有多核处理器,可以并行处理多个任务。高并发的服务器系统中,除了运行业务,还要占用一定的CPU资源运行系统进程。进程的状态通过队列进行管理。同时还讨论了内存交换和进程挂起的问题。我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。原创 2024-08-11 08:21:44 · 291 阅读 · 0 评论 -
零拷贝技术:减少数据复制和上下文切换,提高网络传输效率(上)
在本次讨论中,我们确实只是提到了DMA技术在文件传输过程中的重要作用,并对零拷贝技术进行了简要介绍。然而,网络传输中存在的问题和优化方法是一个庞大的话题,涉及到诸多方面。因此,我决定将这些问题的详细讨论留到下一篇文章中,以便更全面地探讨网络传输的优化。我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。同时也是一位腾讯云创作之星、阿里云专家博主、华为云云享专家、掘金优秀作者。原创 2024-08-19 09:22:27 · 771 阅读 · 0 评论 -
解密Linux中的通用块层:加速存储系统,提升系统性能
通用块层是Linux中的重要组件,位于文件系统和磁盘驱动之间,提供统一接口,优化磁盘读写效率和可靠性。它管理多个块设备,抽象为统一接口,使得文件系统和应用程序可以无差别访问。通用块层通过排队和调度I/O请求,最大化磁盘吞吐量和响应时间。Linux内核提供多种I/O调度算法适用于不同需求。当你学完这些知识点是否你自己可以大致想出敲完字母‘A’后,是如何显示到屏幕上的吗?我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。原创 2024-08-18 18:30:02 · 363 阅读 · 0 评论 -
网络分层:构建信息交流的桥梁
网络系统是面试和工作中常被问及的一个知识点。网络分层的核心思想是将网络划分为多个层次和组合,使用统一的网络协议栈,满足不同设备之间的通信需求。网络的第三层是网络层,负责将网络包从一个起始IP地址通过多个网络、经过多个路由器的转发,到达目标IP地址。第二层是数据链路层,负责本地网络内服务器之间的定位和通信机制。第一层是物理层,负责将数据转换为电信号或无线信号,在网络中进行传输。从第三层开始往上,第四层是传输层,包括TCP和UDP协议,处理网络传输的可靠性。原创 2024-08-18 18:30:45 · 723 阅读 · 0 评论 -
零拷贝技术:减少数据复制和上下文切换,提高网络传输效率(下)
本章主要介绍了零拷贝技术在文件传输中的优化方法。首先,通过减少用户态和内核态之间的上下文切换次数和数据拷贝次数来优化文件传输的性能。其次,介绍了两种实现零拷贝的方式:mmap + write和sendfile。通过使用mmap + write,可以将内核缓冲区的数据直接拷贝到socket缓冲区,减少一次数据拷贝过程。而使用sendfile系统调用,则可以进一步减少系统调用和数据拷贝次数。若网卡支持SG-DMA技术,还可以通过DMA将内核缓冲区的数据直接拷贝到网卡缓冲区,实现真正的零拷贝。原创 2024-08-20 09:05:34 · 306 阅读 · 0 评论 -
空闲空间管理和文件系统结构的优化策略
空闲空间的管理是文件系统中一个重要的问题。为了有效地管理磁盘空闲空间,我们可以使用空闲表法、空闲链表法和位图法等方法。其中,空闲表法使用表格来维护磁盘空闲块的信息,空闲链表法使用链表来维护磁盘空闲块的信息,位图法使用位图来表示磁盘空闲块的状态。每种方法都有其优缺点,适用于不同规模和需求的文件系统。文件系统的结构主要包括普通文件和目录两类。普通文件是存储用户数据的基本单位,目录用于组织和管理文件。原创 2024-08-16 10:42:03 · 244 阅读 · 0 评论 -
解密键盘输入:探索设备控制器的奥秘
键盘输入的处理过程包括键盘设备控制器将扫描码存储、中断请求发送给CPU、中断处理程序将扫描码转换为ASCII码并存储在键盘缓冲区、键盘驱动程序读取缓冲区的扫描码并传递给应用程序,最后显示驱动程序控制显示器显示字符和更新屏幕图像。设备控制器位于操作系统与硬件之间的中间层,负责处理外设硬件与CPU之间的通信和操作。它通过与操作系统进行交互,将外设的功能和状态信息传递给操作系统,并接收来自操作系统的指令来控制设备的运行。原创 2024-08-17 22:03:48 · 277 阅读 · 0 评论 -
数据包的奇妙旅程:揭秘网络传输的7个关键步骤
发送数据包是一个复杂的过程,涉及到多个层次的封装和解封装。不同层次的协议和设备在这个过程中扮演着不同的角色,确保数据包能够快速、高效地到达目标设备。在发送数据包的过程中,数据包会经过多个网络设备和路由器,每一步都需要进行相关的处理和解析。发送数据包的过程需要考虑到各个层次的处理和协议的兼容性,以确保数据包能够正确地到达目标设备,并被相应的应用程序处理。这个过程中涉及到的细节非常复杂,需要各个层次的协议和设备之间的配合和交互,才能实现数据的传输和交换。原创 2024-08-19 09:21:54 · 745 阅读 · 0 评论 -
探索计算机的I/O控制方式:了解DMA控制器的作用与优势
在本文中,我们总结了关于I/O控制方式的内容。首先,我们介绍了轮询等待和异步通知两种基本的I/O控制方式。轮询等待方式效率低下,会占用CPU的全部时间,而异步通知方式通过中断控制器来通知CPU,能够有效提高系统的响应速度和效率。接着,我们介绍了中断的使用和分类。中断可以分为软中断和硬中断两种形式,它们能够大大提高系统的并发性和响应能力。然而,中断也存在一个问题,即会打断CPU当前的工作,导致无法同时处理其他任务。为了解决这个问题,我们引入了DMA(直接内存访问)控制器。原创 2024-08-17 22:04:37 · 484 阅读 · 0 评论 -
操作系统中文件系统的实现和分配方式探析(上)
本文主要讨论了操作系统中文件系统的实现和分配方式。首先介绍了虚拟文件系统(VFS)作为中间层,统一了不同文件系统的接口。然后介绍了文件的物理结构,包括文件块和逻辑块之间的映射关系。接着详细讨论了连续分配方式的特点和优缺点,包括顺序访问和随机访问的效率,以及磁盘空间碎片和文件长度扩展不方便的问题。为了知识的消化理解,本章留下的问题我们下一章再详细讲下!我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。原创 2024-08-15 09:27:31 · 1009 阅读 · 0 评论 -
零拷贝并非万能解决方案:重新定义数据传输的效率极限
至此,我们的计算机基础专栏就结束了,不知道大家有没有发现,操作系统底层提供了丰富的解决方案来支持应用程序的复杂性和可扩展性。对于任何工作中遇到的问题,我们都可以从操作系统的角度寻找解决方法。今天这一篇其实就是来打破零拷贝的方案神话的,没有一种技术是最好的,只有最合适的方法。我们需要根据具体的需求和情况来选择适合的解决方案,以提高应用程序的性能和可扩展性。也请期待我的下一个专栏:【计算机网络篇】我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。原创 2024-08-21 09:05:46 · 672 阅读 · 0 评论 -
深入探讨进程间通信的重要性:理解不同的通信机制(上)
本篇文章总结了进程间通信的三种常见机制:管道、消息队列和共享内存。它介绍了每种机制的特点、优缺点以及适用场景。管道适用于父子进程之间的通信,但只能在有亲缘关系的进程之间使用。消息队列可以用于异步通信,并且支持多个进程之间的通信,但是消息的格式需要事先定义。共享内存是一种高效的通信方式,可以实现多个进程共享同一块内存区域,但需要处理进程间的同步和互斥。根据实际需求,可以选择合适的机制进行进程间通信。下一篇文章将继续探讨信号量、信号和套接字的知识点!原创 2024-08-12 09:02:01 · 380 阅读 · 0 评论 -
探索文件系统:高效、可靠的文件管理与访问机制
在文件系统的功能规划中,块是文件以及文件系统中数据存储的基本单位。索引节点记录了文件的元信息,包括文件的权限、大小、创建时间等。目录项则记录了文件在目录层次结构中的位置和名称。可以有多个不同的目录项指向相同的索引节点,这样可以在不同的目录中通过不同的名称访问同一个文件。这种多对一的关系使得文件系统更加灵活和高效。为了提高文件访问效率,文件系统还采用了缓存策略。热点文件会被缓存在内存中,以减少磁盘IO的次数。原创 2024-08-14 09:09:34 · 713 阅读 · 0 评论 -
操作系统中文件系统的实现和分配方式探析(下)
非连续空间存放方式是为了解决连续分配方式的问题和局限性而提出的。其中,链式分配方式包括隐式链接和显式链接两种形式。隐式链接通过存储头节点和尾节点指针的方式实现文件的非连续分配,但查找效率较低且不支持随机访问,但方便文件扩展且没有碎片问题。显式链接通过文件分配表存储物理块的指针,提高了检索速度但不适用于大磁盘。索引分配方式则通过为每个文件创建索引数据块,并在文件头和索引数据块中存储指针信息,实现了文件的非连续分配和直接访问。索引分配的优点包括方便创建、扩展和缩小文件,没有碎片问题,支持顺序和随机读写。原创 2024-08-15 09:28:13 · 776 阅读 · 0 评论 -
深入探讨进程间通信的重要性:理解不同的通信机制(下)
IPC 机制数据抽象参与者方向内核实现管道字节流两个进程单向通常以 FIFO 的缓冲区来管理数据。有匿名管道和命名管道两类主要实现消息队列消息多进程单向双向队列的组织方式。通过文件的权限来管理对队列的访间信号量计数器多进程单向双向内核馀护共享计数器。通过文件的权限来管理刘计数器的访问共享内存内存区问多进程单向双向内核维护共享的内存区可。通过文件的权限来管理对共享内存的访间信号事件编号多进程单向为线程/进程维护信号等待队列。原创 2024-08-13 09:06:46 · 267 阅读 · 0 评论