第六章-完善内核(C与汇编混合编程)、第九章(线程)
由于本人想考研,所以接下来的章节也没法继续学习了,
并且也是一直在copy代码,接下来的章节在操作系统课程中也学习过了,所以给我感觉没有必要再去实现一遍代码了,就针对书进行知识点梳理。仅对知识点总结
代码可以去群里找。
1、C语言的函数约定
函数调用时,调用者将参数从右往左入栈空间,调用者还必须清理掉栈空间。这也就是位什么形参不占用内存空间的原因,用完即删。
2、C语言与汇编语言混合编程
①汇编文件与C程序文件各自分别编译,然后链接成可执行文件
②C语言中嵌入汇编代码,然后编译为可执行文件
3、滚屏的实现
打印的本质就是将字符写进显存中的某个地址。
只要将指定起始地址,屏幕从起始地址开始,向后显示2000个字符即可。
4、什么是线程?
线程本质上是函数。原理上线程能使一段函数称为调度单元,是函数能被调度器调用,从而能专门调度到处理器上运行。可以让程序中的多个函数以并行的方式运行。
5、线程与进程的区别?
对于处理器来说,进程就是控制流的集合,集合中至少包括一个执行流,执行流之间是相互独立的,但他们共享进程所有的资源,他们是处理器的执行单位,或者成为调度单位,他们就是线程。线程与进程相比,进程占据着内存空间,而线程只是进程的一部分,没有自己的内存空间,所以需要借助进程使用进程中的资源。
6、线程的目的?
线程的出现加快了单个进程的总执行时间。第一种加快速度的方式是让处理器多执行自己进程中的代码,这样进程执行完成的就快。第二种形式就是避免阻塞整个进程
总结:
由于自己想考研,本来动手做操作系统希望能提高自己的动手水平。到目前为止对于写操作系统,大部分在研究原理和代码,但是一直在copy代码,这令我感觉很不是滋味,背离了我的初衷,所以我决定终止这本书的学习。这个决定让我感觉很难受,毕竟坚持了这么久,为了学这本书还专门看完《汇编语言 王爽》和《X86汇编语言实模式到保护模式》两本书。但是当断不断,必受其乱。我已经感受不到坚持下去的动力与理由,copy代码的过程感觉就是在浪费时间,对于大三的我,并没有多余的时间可以这样的学习。很遗憾,假设能早点遇到这本书就更好了。所以我将实现一个简易的操作系统这件事放一段时间,当我有充足的时间和跟多的LINUX知识之后我在回头将他完成。加油!!!