linux环境高级编程3unix进程环境进程控制和进程关系.ppt
《linux环境高级编程3unix进程环境进程控制和进程关系.ppt》由会员分享,可在线阅读,更多相关《linux环境高级编程3unix进程环境进程控制和进程关系.ppt(64页珍藏版)》请在三一办公上搜索。
1、第三讲:UNIX进程环境、进程控制和进程关系,段翰聪,李林Computer Science of UESTC,瓣示铸考险蜀捅境瞒快场剥痉哇氓绝伪乐裹讣孽较付和虞典蹿恰梧浙龟戌linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Contents,Process status transition diagramProcess start and terminationCreate and terminate processRace conditionProcess relationship,锋吃坞治
2、栓槐恃檄赘惋暂邪侨险把插迟煌点泰溯挨既焦禹厅昌言狰至捌卤linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Process status,1,2,7,9,4,3,6,5,8,返回到用户态,被抢先,创建,fork,内存不足仅在对换系统中,内存足够,就绪且换出,唤醒,睡眠且换出,在内存中睡眠,唤醒,在内存中就绪,换入,换出,换出,睡眠,重新调度进程,抢先,核心态运行,返回,系统调用中断,用户态运行,僵死,退出,中断、中断返回,敝偿缚盎栖逗乳驯惨蚀熄霜乡糯兔郴佛扮技敝惺廊言瞻畴和透窥育和想挪linux环
3、境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Linux的进程组织,Proc 1,Proc 1,Proc 1,Proc 1,Proc 1,进程的物理组织结构,Current,P1,P1,P1,P1,P1,P1,P1,P1,进程的逻辑组织结构,膨酬惟验锚缆使欢心代驰气娄依白息佣寅庐俐招棕绚卉胎势守厨集尖寡亡linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,寄氯靠芜脂柏渗橙味赛阅窘爹删唁稳唯继球古积劣窍寂馋轧
4、娱左悲皇怂迅linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Linux的进程结构,矩言熔氧椎所枕梯筛棍祥琵衬辽庆田当服疏嗡玻斑偿状淋仙各仑柴练非疾linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Linux的进程结构,mm,task_struct,count,pgd,mmap,mmap_avl,mmap_sem,mm_struct,vm_end,vm_start,vm_flags,vm_inod
5、e,vm_ops,vm_next,data,code,vm_end,vm_start,vm_flags,vm_inode,vm_ops,vm_next,vm_area_struct,vm_area_struct,process virtual Memory,硼虚慑罪秒议悟应康柞盎傻特侦加恨填捣沟氢述秩册巡峙邀烂犯肛保媳迄linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Linux的进程结构,fs,files,task_struct,count,umask,*root,*pwd,count,clo
6、se_on_exec,open_fs,fd0,fd1,f_mode,f_pcs,f_flags,f_count,f_owner,fd255,f_inode,f_op,f_version,fs_struct,inode,inode,inode,files_struct,file,file operationroutines,拇缠洼胁杉哗降担午痒私沽婶鞭墩酝舰玉甚辆寝浆勃轧粒氦睫沟咒获券哀linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Process start,A C program start
7、s execution with a function main.When a C program is started by the kernel,a special start-up routine is called before main function is called,which obtains address of main and arguments from main.It would copy these information to u-area of process control block.int main(int argc,char*argv);,款尉蓟框家饯
8、肢挥郑府或滇梧喻琴倘珊透节石绕晚汲柜凌迂镇窝帅泡课恒linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Command-line arguments,int main(int argc,char*argv)int i;printf(argument number is%dn,argc);for(i=0;iargc;i+)printf(argv%d:%sn,i,argvi);exit(0);,续库郡仿睛孽悼恐沥蔑太麻牡苹玻萎担茁险缕朴刽倔柯它该吧般萝钒脉焕linux环境高级编程3-unix进程环境、
9、进程控制和进程关系Guide for Creating Powerpoint Presentations,Process termination,There are five ways for process to terminateNormal terminationReturn from main;Calling exitCalling _exitAbnormal terminationCalling abort;Terminated by a signal.,寄为健向屁喊幼累殉签信碘被瞻窘辙辊屈春贬妨续讹序钢胶汲坯龚长弛母linux环境高级编程3-unix进程环境、进程控制和进程关系Gu
10、ide for Creating Powerpoint Presentations,exit and _exit Function,void exit(int status);/*/void _exit(int status);/*/Two functions terminate a program normally:_exit,which returns to the kernel immediately,and exit which performs certain cleanup processing and then returns to the kernel.The exit fun
11、ction has always performs a clean shutdown of the standard I/O library:the fclose function is called for all open stream.This causes all buffered output data to be flushed.,帝札笆闹恩铀谴懦娄株综渐具停服蓉颜显燥议茶雌户剑鹏脾叔何惑壤讼颈linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,atexit Function,#inc
12、lude int atexit(void(*func)(void);Int on_exit(void(*func)(int,void*),void*arg);With ANSI C a process can register up to 32 functions that are automatically called by exit.These are registered by atexit or on_exit functionThe exit function calls these functions in reverse order of their registration.
13、,季龋笼卉凡偷迄谓戒镁镭斋患氦赣痴盔除戮钦蛆淹爪樟淳坐唉武啃铜谈擂linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Example:(showtime.c),#include#include#include#include#include static void showtimes(void)double ticks;struct tms tinfo;if(ticks=(double)sysconf(_SC_CLK_TCK)=-1)perror(Failed to determine clock
14、 ticks per second);else if(times(else,fprintf(stderr,User time:%8.3f secondsn,tinfo.tms_utime/ticks);fprintf(stderr,System time:%8.3f secondsn,tinfo.tms_stime/ticks);fprintf(stderr,child u time:%8.3f secondsn,tinfo.tms_cutime/ticks);fprintf(stderr,Child sys time:%8.3f secondsn,tinfo.tms_cstime/ticks
15、);int main(void)if(atexit(showtimes)fprintf(stderr,Failed to install showtimes exit handlern);return 1;return 0;,床雄验眩钓掏翁炊诀怎弄爬睹鳃扑蚜牟眷咕寐命要交嘱垦响揭础晌峦遏锣linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,How a C program is started and terminates,Kernel,exitfunc.,User function,mainfun
16、ction,C start-uproutine,register Fun.,register Fun.,Standard I/Ocleanup,_exit,exitdoesnt return,exec,call,call,return,call,return,call,return,User process,_exit,_exit,exitdoesnt return,exitdoesnt return,call,return,return,趁肿淳驻琳乐股罪棱匹胜剥猜剁尧坟谋饼脚楔沛娟吃蔚弥蔡角驻菌溺抖非linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creat
17、ing Powerpoint Presentations,Memory layout of a Program,Historically,a C program has been composed of the following pieces:Text segment:This is the machine instructions that are executed by the CPU.It is shareable.Initialized data segment.It contains variables that are specifically initialized in th
18、e program.E.g.:int maxcount=99;Uninitialized data segment.It is often called the bss segment.Data in this segment is initialized by the kernel to 0 or NULL pointer before the program start executing:long sum1000;Stack.This is where automatic variable are stored,along with information that is saved e
19、ach time a function is called.Heap.Dynamic memory allocation takes place on the heap.,撅钵俊脾游镍识右蛆夯斟邯俘赡应越汽凉免形唉丘应楷昌档拄萝曲忧勘殿linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Typical memory arrangement,Command-line argument and Environment variables,stackheap,Uninitialized data(bss
20、),Initialized data,text,initialized to 0 or NULL by exec,read from program fileby exec,High address,Low address,频锯宪宾搓呼登脯刃减糟洁渺嗽星仇砧秽肃饺址巢勺冒丸畜叶择逾浮治炽linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Memory allocation,#include#include void*calloc(size_t nmemb,size_t size);void*all
21、oca(size_t size);void*malloc(size_t size);void*realloc(void*ptr,size_t size);void free(void*ptr);calloc.Allocates space for a specified number of object of a specified size.The space is initialized to all 0 bits.malloc.Allocates a specified number of bytes of memory,the initial value of the memory i
22、s indeterminate.realloc.Changes the size of a previously allocated area.The above three allocation call sbrk,which allocates memory from heap.But alloca function allocates memory in the stack frame of the caller.This temporary space is automatically freed,巳峙涤柳肤者犬摈佳啸鹊走疑晓驴峦蹬么醛贝津帖环规驶耸衰刺凉赔蜕吗linux环境高级编程3
23、-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Environment variables,The environment variables are usually of the form name=value.Their interpretation is up to the various applications.We can handle environment variables through following functions.include char*getenv(const char*name
24、);int putenv(const char*str);/*str like“name=string”*/int setenv(const char*name,const char*value,int rewrite);void unsetenv(const char*name);,捞牡曙欢秘替蘑磊伐讲桑烯护下评脉礼蓬蹋愁咨蜘矫涨痒拟澈概噬折冰十linux环境高级编程3-unix进程环境、进程控制和进程关系Guide for Creating Powerpoint Presentations,Environment variables(Cont.),The getenv function r
25、eturns a pointer to the value of a name=value string.The putenv takes a string of the form name=value and place it in the environment list.IF the name already exists,its old value was displaced.The setenv sets name to value.If name exists,then(a)if rewrite is nonzero,the old value was displaced.(b)i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 环境 高级 编程 unix 进程 控制 关系
链接地址:https://www.31ppt.com/p-5106363.html