程序与进程的区别?
程序是静态的未运行的二进制文件,存储在磁盘中
进程是已经运行的二进制文件,存储在内存中
进程的内存划分图有哪几部分?
堆(存储malloc和calloc出来的空间)、栈(局部变量、环境变量、命令行参数)、数据段(全局变量、静态变量、常量)、代码段(用户代码、系统初始化的代码)
进程的状态转换?
时间片的定义:
分时操作系统分配给每个正在运行的系统的一段微观上的时间
进程的控制命令:
ps:查看当前终端的进程
ps -e: 查看当前系统的所有进程
kill 给进程pid发送一个信号(sigstop、sigcont)
killall 给进程名发送一个信号
所有进程都有其父进程,最开始的进程有init进程和system进程创建
创建进程的函数:fork(),fork函数会连续返回两个值,一个是子进程返回零,一个是父进程返回大于零。
父子进程间不一样的属性有哪些?
pid号、记录锁、挂起的信号
孤儿进程:
当父进程比子进程先死亡,子进程就会变为孤儿进程,所有孤儿进程都由init进程进行回收。(子进程比父进程先死亡可以防止孤儿进程的产生)
僵尸进程:
子进程死亡,父进程未回收子进程的资源(调用wait),子进程变为僵尸进程
wait函数的作用:
用来回收子进程的资源,wait((int)&state),根据状态码得知子进程的状态
状态码如下:
获取pid的函数有哪些?
getpid()获取当前进程的pid号
getppid()获取父进程的pid号
exit函数()的作用?
使得进程退出,从运行状态进入到僵尸态。
execl()函数的作用?
让进程重新加载其他程序文件。