ai生成作文网站,小红书怎么做关键词排名优化,wordpress文章页有英语,建网站公建网站公司冯诺依曼体系结构#xff1a; 绝大多数的计算机都遵守冯诺依曼体系结构 在冯诺依曼体系结构下各个硬件相互配合处理数据并反馈结果给用户
其中控制器和运算器统称为中央处理器#xff08;CPU#xff09;#xff0c;是计算机硬件中最核心的部分#xff0c;像人类的大脑操控…冯·诺依曼体系结构 绝大多数的计算机都遵守冯诺依曼体系结构 在冯诺依曼体系结构下各个硬件相互配合处理数据并反馈结果给用户
其中控制器和运算器统称为中央处理器CPU是计算机硬件中最核心的部分像人类的大脑操控其他器官一样来控制其他硬件资源 存储器指的是内存磁盘不是存储器而是输入输出设备 输入设备和输出设备有很多具体例子例如键盘、显示器、磁盘等等。
如果不涉及控制命令我们认为中央处理器只从存储器中读取数据输入设备中的数据必须先加载到内存中等待。 可以说存储器是一切硬件数据交互的一个媒介。
存储器为什么存在为什么不采用输入设备→CPU→输出设备的体系 这是一个好问题。 在人看来计算机的速度是很快的。 但站在计算机的角度各种硬件的读取速度相差非常大。 形象一点说CPU的速度是纳秒级存储器的速度是微秒级磁盘的速度是毫秒级
如果没有存储器作为过渡CPU直接访问磁盘数据的读取非常慢而CPU的目的就是高效处理从这角度上来看可以说磁盘拖累了CPU因而CPU需要一个工具使得单位时间内能给它更多数据处理而这就是存储器
初始操作系统
我们都多多少少地听过操作系统平时也会有人谈论win10好还是win11好但是真正了解操作系统的人却不多因为其体系过于庞大复杂晦涩难懂。 从一个很大的角度来看操作系统就是一款软件一款负责管理、负责为用户提供更好的人机交互的软件
计算机无非是由各种软件和硬件组成的如果让民众直接操作软件和硬件那可以说没几个人会使用电脑了操作系统相当于帮人做事用户只需要告诉操作系统要做什么操作系统便根据用户的需求来控制软硬件处理数据复杂缜密的过程用户不需要知道。 有了操作系统用户要做一件事只需要给一个触发条件这样看就有一点封装的意味了。 用户通过一些外壳接口输入指令外壳会自动的寻找到系统接口进行系统调用。 不允许用户直接访问操作系统内核的原因是出于安全性。
进程
所谓程序简单地说可以看作是一个正在执行的程序准确来说进程是进程控制块所对应的程序
举一个形象的例子当我们开始执行一个test的可执行程序时其实是创建了一个新的进程可执行程序的属性会被加载到内存
计算机肯定是不会出现只有一个进程的情况往往是有许许多多进程并发执行的。 那么进程之间如果是杂乱无章的肯定是不行的必须要先描述这些进程的属性信息再借助数据结构来组织起来使其有序。
加载到内存的可执行程序的属性会被一个名为进程控制块/PCB的所描述每一个进程都对应着一个PCB在Linux中PCB是一个名为task_struct的结构体。
在windows可以通过shiftctrlesc的方式打开任务管理器查看进程 那么Linux下如何查看呢 下面介绍一种最常用的方法 ps ajx | head -1 ps ajx | grep ### 用于查找某一个进程
这里需要重点了解两个属性 PID又称进程ID用于表示某一个进程类似于人的身份证号 PPID父进程ID标识此进程由哪个进程创建
进程是可以由进程创建的于是就有了父子进程的关系 下面介绍一个C语言中创建子进程的函数fork
在执行到fork语句时会创建一个子进程共享后续代码
环境变量
引子 windows按住winR弹出命令框输入cmd可以打开终端输入ts却什么都没有 这就像我们在Linux中在命令行上输入ls可以显示文件信息输入自己产生的可执行程序却不行。
ls指令其实也是一个可执行程序之所以能直接执行ls是因为有环境变量在帮助系统去找到ls可执行程序所在的路径使其能快速执行而环境变量没有存储用户自己产生的可执行程序就当然找不到了。
浅浅思考一下输入一行命令后系统需要去寻找改命令对应的程序所在路径在没有任何工具的情况下找起来是不是非常难受系统当然不想这么做环境变量的作用就等同于直接告诉系统要找的程序的路径直接访问就好了。
在Linux下可以通过 echo $PATH 来查看当前环境变量 我们在命令行输入一些常用指令是系统就会去这些路径下搜索
假如我们想让自己生成的可执行程序能够像ls指令一样直接执行那么就必须把他添加到环境变量中去 我们采用export PATH$PATH路径的方式添加环境变量
环境变量具有全局特性可以被子进程继承