欢迎来到天天文库
浏览记录
ID:10881837
大小:155.00 KB
页数:56页
时间:2018-07-08
《linux进程学习总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Linux进程学习总结目录目录1基本概念1fork()和vfork()的学习9孤儿进程和守护进程21exit()和_exit()函数32等待进程结束wait()和waitpid()函数37进程控制函数之exec()函数的学习49基本概念最近一周学习了Linux进程编程的知识,现对其总结如下。在第一部分中我们先对进程的基本概念以及在Linux中是如何来现实进程的进行介绍Tiger-John说明:许多人在学习中只注重如何编程,却忘了注重原理,不去深究其基本原理。其实操作系统的原理就好比金庸武侠小说的内功一样,而所有的具体实现如:L
2、inux操作系统,uc/os操作系统都只是武功招式而已。如果我们内功学的很好的话,再来学习具体的实现过程是很快的。而且也会对其知识有更加本质的了解。一、进程的基本概念:1.为什么计算机操作系统要引进进程:在操作系统中引入进程的目的是为了使多个程序并发执行,以改善资源利用率及提高系统吞吐量。2.进程的概念:56进程是程序的一次执行,进程是拥有资源的最小单位和调度单位(在引入线程的操作系统中,线程是最小的调度单位)3.进程由什么组成进程由进程控制块(PCB),数据,程序3部分组成。其中PCB是进程的灵魂。4.进程的状态:进程的三种
3、最基本的状态是:运行态(running),就绪态(readying),阻塞态(block)5.进程和程序的区别:进程和程序的主要区别是进程是动态的,程序是静态的。进程时运行中的程序,程序是一些保存在硬盘上的可执行的代码。6.进程的优点和缺点(任何事物都是有其两面性。我们在学习的时候要注意其优点和缺点。人们也就再发现事物缺点的过程中,不断的去改善它,从而引入了新的事物。在操作系统的学习过程中,我们会发现很多这样的例子。人们在不断追求完美的过程中,不断的引入新的知识点--进程和线程的出现就足可以说明这一切)优点:使多个程序并发执行
4、缺点:程序并发执行时付出了巨大的时空开销,每个进程在进行切换时身上带了过多的“累赘”导致系统效率降低。于是人们为了解决这个缺点想到让进程在并行时不拥有资源---从而引入了线程的概念:即线程本身不拥有资源或者是很少的资源,进程只是拥有资源的基本单位,线程是调度的基本单位7.线程的引入:在操作系统中引入线程则是为了减少程序并发执行时所付出的时空开销,使操作系统具有更好的并发性。二、Linux中是如何具体实现进程和线程1.在linux中通过task_struct结构体来描述进程的PCB,我们可以在include/linux/sche
5、d.h中看到对进程task_struct的定义和进程状态的描述。561>linux中的进程状态a.运行状态:进程正在运行或在运行队列中等待运行。b.可中断等待状态:进程正在等待某个事件完成(如等待数据到达)。等待过程中可以被信号或定时器唤醒。c.不可中断等待状态:进程正在等待某个事件完成并且等待中不可以被信号或定时器唤醒,必须一直等待到事件发生。d.僵死状态:进程已终止,但进程描述符依然存在,直到父进程调用wait()函数后释放。e.停止状态:进程因为收到SINSTOP,SIGSTP,SIGTIN,SGIOU信号后停止运行或者
6、该进程正在被跟踪。Tiger-john说明:1在include/linux/sched.h中我们可以看到Linxu中进程状态的具体实现:#defineTASK_RUNNING0#defineTASK_INTERRUPTIBLE1#defineTASK_UNINTERRUPTIBLE2#defineTASK_ZOMBIE4#defineTASK_STOPPED8其中:TASK_RUNNING是就绪态,进程当前只等待CPU资源。TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE都是阻塞态,进程当前正在等
7、待除CPU外的其他系统资源;前者可以被信号唤醒,后者不可以。TASK_ZOMBIE是僵尸态,进程已经结束运行,但是进程控制块尚未注销。TASK_STOPPED是挂起状态,主要用于调试目的。进程接收到SIGSTOP信号后会进入该状态,在接收到SIGCONT后又会恢复运行。562.我们可以在终端中通过命令ps或pstree查看当前系统中的进程用ps命令可以查看进程的当前状态。运行状态为R,可中断等待状态为S,不可中断等待状态为D,僵死状态为Z,停止状态为T。实例:think@Ubuntu:~$ps-eopid,statPIDSTA
8、T1Ss2S3S37SN364Ss371S<442S
此文档下载收益归作者所有