unix操作系统的进程系统分析

unix操作系统的进程系统分析

ID:33861949

大小:162.61 KB

页数:3页

时间:2019-03-01

unix操作系统的进程系统分析_第1页
unix操作系统的进程系统分析_第2页
unix操作系统的进程系统分析_第3页
资源描述:

《unix操作系统的进程系统分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、万方数据2006年12月第24卷第6期湖北大学成人教育学院学报Dec.,2006JournaIofAdultEducationCollegeofHubeiUniversityV01.24No.6UNIX操作系统的进程系统分析孙文和(湖北大学数学与计算机科学学院,武汉,430062)【摘要】进程是操作系统课程中的重点、难点,本文通过对UNIX系统进程的概念、进程的描述、进程的控制及其程序实例的分析,使学生能较好的理解和掌握进程的实质。【关键词】进程;Proc结构;User结构;系统调用【中图分类号】TP361.81【文献标识码】A【文章编号】1009一0

2、444(2006)06一0075一02一、引言UNIX系统是一种多用户多任务的分时的操作系统,由于其安全可靠、开放性和可移植性良好等优点,迅速成为小型机和工作站上普遍使用的一种主流操作系统;目前Internet上的大多数服务器也建立在UNIX系统平台上。文件系统和进程系统是UNIX系统的两大基石,文件系统的特点是静态的,而进程则是一个动态的概念,这两方面互相配合,构成了UNIx系统的物质基础。二、UNIx系统进程的概念关于进程的定义有很多,在传统的教科书中对进程作如下定义:进程是一个具有一定功能的程序关于某个数据集合的一次运行活动。该定义较为抽象,不易

3、于学生理解。本人认为美国学者克里斯蒂安的定义更全面,更本质,更利于理解,即“从核心看来,进程是分了类的、按一组规则操纵的数据结构。”从这里可以发现关于进程的三层含义:1、因为进程在其生命周期中存在着至少三种状态:就绪状态、执行状态、阻塞状态,所以进程是分了类的;2、进程可以创建、撤消、调度、阻塞、唤醒、延迟,即是可按一组规则操纵的;3、UNIX系统的进程是由Proc结构和User结构加以描述的数据结构。三、UNIx系统进程的描述UNIX系统中,采用了段页式存储管理方式,一个进程实体包括代码段、数据段、用户栈及系统栈四个部分;另外每个进程创建后在内核的进

4、程表中都有一个登记项Proc结构和User结构,它们共同组成了UNIX进程的映像,如图所示:1.Proc结构Proc结构存放系统感知进程存在所必需的信息,主要有:(1)进程的状态;(2)进程的用户标识(Uid);(3)进程标识(Pid);(4)进程进入睡眠状态的事件描述符;(5)进程和User结构在内存或外存的地址;(6)软中断信号;(7)记时域;(8)进程的大小;(9)偏置值Nice;(10)指向就绪队列中下一个Proc结构的指针;(11)进程页表指针;[收稿日期]2006一06—20[作者简介]孙义和(1967一),男,江西丰城人.湖北大学数学与计

5、算机科学学院教师。·75·万方数据2.U§er结构User结构用以进一步描述进程本身的各种控制数据和信息。只有当进程正在执行时,User结构的信息才被取出。主要包括:(1)指向该User结构的Proc结构的指针;(2)当前系统调用的参数、返回值及错误码;(3)与用户标识有关的项;(4)与文件结构有关的项;(5)与I/O有关的项;(6)所有由进程打开的文件的文件描述符;(7)信号处理数组;(8)差错字段:记录系统调用期间出现的错误;(9)限制字段:对该进程创建的所有文件设置存取权限的屏蔽码;(10)与上下文切换、现场保护有关的项;(11)各种记时项;(1

6、2)进程代码段、数据段和栈段的长度。其中Proc结构常驻内存,User结构仅在进程运行时才由外存的交换设备写入内存,以为系统中其它进程腾出宝贵的内存空间。至此,我们知道进程实质上是程序执行时由内核为它建立的一组数据结构:Proc结构、User结构及与存储管理有关的区表(或段表)、页表。‘四、UNIx系统进程的控制UNIX系统提供了一组简洁的系统调用用以实现对进程的控制。系统调用类似于高级语言中的库函数,但与库函数有本质区别:系统调用是核心态下执行,而库函数是用户态下执行。以下是关于进程控制最重要的系统调用:1.fork()用来创建一个新的进程,该进程是

7、调用进程的副本。2.execl()把新进程的内存空间复制到原有进程中,完成进程的转换。3.wait()父进程使用wait使它与执行的子进程的终止同步。4.exit()用来终止一个进程。五、进程控制的实例分析以下程序可在RedhatI。inux上运行:main()(intpid;printf(一justoneprocessnow.\nⅣ);printf(”callingfork()⋯\n");pid=fork();if(pid一0){printf(”Iamchild.\Il”);execl(”/bin/ls”,Ⅳ1sⅣ,”一1",”*”,0);perro

8、r(”execerror”);)elseif(pid>0)printf(”Iamparent.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。