第一次作业:深入源码分析进程模型
Posted 大崽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一次作业:深入源码分析进程模型相关的知识,希望对你有一定的参考价值。
挑选一个开源的操作系统,Linux深入源码分析其进程模型,具体包含如下内容:
- 1.操作系统是怎么组织进程的:以下参考了文章编号1672-5913(2009)14-0027-01举的代码例子
使用了sort()调用创建进程:
#include<stdio.h>
main(){
pid x=0;
printf("program is ......");
printf("in function main ");
id = sort();
if(id==0){
printf("child");}
else{
printf("parent");
}
}
这代码很短但是解释了进程创建,进程并发,进程父子关系等的概念。sort()调用给子进程返回0,给父进程返回pid号。因为比较好理解,所以有借鉴其代码的模型;
- 2.进程状态如何转换(给出进程状态转换图)
(1)就绪状态——>执行状态:进程调度程序为处于就绪状态的进程分配处理机后,就进入执行状态。
(2)执行状态——>等待状态:正在执行的进程因为某件事需要等待而无法执行。
(3)等待状态——>就绪状态:进程所等待的事情发生了,于是进程从等待状态进入了就绪状态。
(4)执行状态——>就绪状态:正在执行的进程因为时间片用完而被暂停执行,或者在可抢占调度方式中优先级高的进程到来后,优先级低的被暂停执行,从而转换为就绪状态。
(5)进程状态转换图:
I/O完成 I/O请求
__________时间片到________
获得cpu
- 3.进程是如何调度的
调度的含义:当系统中就绪的进程数大于系统中可用的CPU数时,可用的CPU必须选择下一个要运行的进程。在操作系统中,完成选择工作的这一部分称调度程序,该程序使用的算法称为调度算法。
调度程序应该有根据优先级来排序;
调度的实现有很多不同的算法;
- 4.谈谈自己对该操作系统进程模型的看法
Linux感觉在老师们的眼里很常见,但是暂时在我心中和windows没有多大的区别,感觉windows安装的软件都用的挺好的,代码的打的挺舒服的。可能Linux这个操作系统各个方面都超越了windows,它的进程模型应该更加完美,但是我现在还不是很了解,不会用一长串的代码去演示什么是调度,什么是进程的转换状态,也还不知道了解了这个进程模型之后作用在哪方面。在哪一块可以运用到这个知识。
以上是关于第一次作业:深入源码分析进程模型的主要内容,如果未能解决你的问题,请参考以下文章