注:本文档为《从0学x86操作系统》课程配套的学习文档,提供相应的辅助学习资料和答疑勘误。 有关该课程的信息,请点击这里访问:https://study.163.com/provider/1017884735/index.htm 在阅读本文档时,如有疑问和建议,欢迎在下方留言或者直接联系我。

在之前的课时中,主要关注点在各种硬件细节上。从本节课程开始,关注点则开始集中在操作系统最核心的概念之一进程的实现上。接下来的几节课时主要研究如何实现进程之间的切换机制。
课程没有直接上来就简介进程的相关概念,而是试图先了解具体地代码实现,然后在最后一小节会介绍与进程有关的概念。因此,在涉及到有关进程的表述时,均采用程序来替代。

主要内容

本小节主要是创建了两个小的程序,这两个小程序的功能都非常简单,均是通过日志打印接口输出相关信息。

  • init_main()中加入的for(;;)循环中打印log_printf(“first task: %d”, count++)
  • init_task_entry()加入的打印log_printf(“init task: %d”, count++);

对于没有接触过多线程、多进程编程的同学来说,可能会觉得难以理解。即在init_main()中已经是个死循环了,如何实现同时执行init_task_entry()中的死循环代码,而且二者看起来是不相冲突的。
接下来的几节课时,要解决的就是这个问题。

参考资料