第一次作业 基于Linux 0.12的进程模型分析

作业内容

挑选一个开源的操作系统,深入源码分析其进程模型,具体包含如下内容:

  • 操作系统是怎么组织进程的
  • 进程状态如何转换(给出进程状态转换图)
  • 进程是如何调度的
  • 谈谈自己对该操作系统进程模型的看法

1.操作系统是怎么组织进程的

  程序是一个可执行的文件,而进程是一个执行中的程序实例。Linux操作系统上利用分时技术,可同时运行多个进程。

2.进程状态如何转换

  


  进程状态即进程在生存期内,可处于一组不同的状态下,(进程状态保存在进程任务结构的state字段)

  当一个进程的运行时间片用完,系统就会使用调度程序强制切换到其他进程去执行。如果进程在内核态执行时需要等待系统的某个资源,则该进程会自愿放弃CPU的使用权,让调度程序去执行其他进程,该进程则进入睡眠状态。
  只有当进程从“内核运行态”转移到“睡眠状态”时,内核才会进行进程切换操作。在内核态下运行的进程不能被其他进程抢占,且一个进程不能改变另一个进程的状态。

3.进程是如何调度的

  内核中的调度程序用于选择系统中下一个要运行的进程。调度程序可以看作为在所有处于运行状态的进程之间分配CPU运行时间的管理代码。Linux进程是抢占式的,抢占发生在进程处于用户执行状态阶段,在内核执行时是不能被抢占的。

4.看法

 

猜你喜欢

转载自www.cnblogs.com/lqqy/p/8977725.html