标签:分享图片 作业 部分 linux 方式 开源 进程调度 进程状态 操作系统
挑选一个开源的操作系统,Linux深入源码分析其进程模型,具体包含如下内容:
使用了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号。因为比较好理解,所以有借鉴其代码的模型;
(1)就绪状态——>执行状态:进程调度程序为处于就绪状态的进程分配处理机后,就进入执行状态。
(2)执行状态——>等待状态:正在执行的进程因为某件事需要等待而无法执行。
(3)等待状态——>就绪状态:进程所等待的事情发生了,于是进程从等待状态进入了就绪状态。
(4)执行状态——>就绪状态:正在执行的进程因为时间片用完而被暂停执行,或者在可抢占调度方式中优先级高的进程到来后,优先级低的被暂停执行,从而转换为就绪状态。
(5)进程状态转换图:
I/O完成 I/O请求
__________时间片到________
获得cpu
调度的含义:当系统中就绪的进程数大于系统中可用的CPU数时,可用的CPU必须选择下一个要运行的进程。在操作系统中,完成选择工作的这一部分称调度程序,该程序使用的算法称为调度算法。
调度程序应该有根据优先级来排序;
调度的实现有很多不同的算法;
Linux感觉在老师们的眼里很常见,但是暂时在我心中和windows没有多大的区别,感觉windows安装的软件都用的挺好的,代码的打的挺舒服的。可能Linux这个操作系统各个方面都超越了windows,它的进程模型应该更加完美,但是我现在还不是很了解,不会用一长串的代码去演示什么是调度,什么是进程的转换状态,也还不知道了解了这个进程模型之后作用在哪方面。在哪一块可以运用到这个知识。
标签:分享图片 作业 部分 linux 方式 开源 进程调度 进程状态 操作系统
原文地址:https://www.cnblogs.com/a1234777/p/8976140.html