杂感源自知乎-计算机原理篇-1

在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远。

函数调用的机制:函数处理是通过把程序计数器的值设定成函数的存储地址实现的,函数执行跳转指令后,必须滨兴返回处理,单纯的指令跳转没有意义。

“程序不都如内存就无法运行”:

计算机最主要的存储部件是内存和磁盘。磁盘中存储的程序必须加载到内存中才能运行,在磁盘中保存的程序是无法直接运行的,这是因为负责解析和运行程序内容的 CPU 是需要通过程序计数器来指定内存地址从而读出程序指令的。

文件:我认为可以把文件当做字节数据的集合体,至于这个集合体表示的是文本还是图像,取决于字节数据的编码方式,以ASCII编码的,就是文本数据,以JPG方式编码的就是图形数据。视频的编码我认为可以认为是图形的编码,因为视频本质就是图片。而声音的编码就是把声音的波形存储成二进制数据,声音格式如mp3指的是声音编码格式。

操作系统:

在计算机尚不存在操作系统的年代,完全没有任何程序,人们通过各种按钮来控制计算机,这一过程非常麻烦。于是,有人开发出了仅具有加载和运行功能的监控程序,这就是操作系统的原型。通过事先启动监控程序,程序员可以根据需要将各种程序加载到内存中运行。虽然仍旧比较麻烦,但比起在没有任何程序的状态下进行开发,工作量得到了很大的缓解。

随着时代的发展,人们在利用监控程序编写程序的过程中发现很多程序都有公共的部分。例如,通过键盘进行文字输入,显示器进行数据展示等,如果每编写一个新的应用程序都需要相同的处理的话,那真是太浪费时间了。因此,基本的输入输出部分的程序就被追加到了监控程序中。初期的操作系统就是这样诞生了。

人们又发现有更多的应用程序可以追加到监控程序中,比如硬件控制程序,编程语言处理器(汇编、编译、解析)以及各种应用程序等,结果就形成了和现在差异不大的操作系统,也就是说,其实操作系统是多个程序的集合体。这些程序模块在计算机加电操作系统启动的时候,就被载入内存等待随时调用,而应用程序的进程就会通过软中断的方式进行系统调用,使用这些功能。os载入内存的时候,还会运行一些执行体,这些执行体又称服务,比如crond服务,负责定时任务处理,还有日志服务,可以供系统的其他进程调用,专门保存系统日志。os的文件系统有多个,分为块文件系统,网络文件系统如nas,还有虚拟文件系统如proc,sysfs。我们访问/sys目录,等于访问sysfs文件系统已达到窥视内存的目的。


操作码和操作数以及英语语法:

操作码表示的是指令动作,操作数表示的是指令对象。操作码和操作数一起使用就是一个英文指令。比如从英语语法来分析的话,操作码是动词,操作数是宾语。比如这个句子 Give me money这个英文指令的话,Give 就是操作码,me 和 money 就是操作数。汇编语言中存在多个操作数的情况,要用逗号把它们分割,就像是 Give me,money 这样。

能够使用何种形式的操作码,是由 CPU 的种类决定的。

编译后的程序,会被归类到名为段定义的组。:

初始化的全局变量,会汇总到名为 _DATA 的段定义中;没有初始化的全局变量,会汇总到名为 _BSS 的段定义中;被段定义 _TEXT 围起来的汇编代码则是 Borland C++ 的定义。

串行处理最大的一个特点就是专心只做一件事情,一件事情做完之后才会去做另外一件事情。

计算机是支持多线程的,多线程的核心就是 CPU切换。

发布了241 篇原创文章 · 获赞 25 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/u013755520/article/details/104894092