1——进程控制

来源:互联网 发布:查看udp端口是否打开 编辑:程序博客网 时间:2024/06/05 06:01
一、进程的概念:

1、进程是一个动态的实体,是程序的一次执行过程。

2、进程&程序:进程是动态的,是运行中的程序;程序是静态的,是保存在硬盘上的可执行的代码。

3、进程&线程:线程在进程内部,是比进程更小的能独立运行的基本单位。线程基本不拥有系统资源,它与同属一个进程的其他线程共享进程拥有的全部资源。多个线程可并行执行。

二、进程的结构:


三、进程的状态:


四、一些函数的介绍:

fork():

1、创建一个新的进程。(就是说从fork语句开始下面的代码会被原样复制过来执行一遍)

2、一次调用,两次返回:子进程返回0,父进程返回子进程的ID。出错返回-1

3、fork之后是父进程先执行还是子进程先执行是不确定的,这取决与内核所使用的调度算法。

子进程&父进程:
1、各自有自己唯一的ID

2、子进程不继承父进程设置的警告和文件锁

3、子进程的未决信号集被清空

vfork():

1、创建一个新的进程(子进程)共享父进程的地址空间。(就是说子进程完全运行在父进程的地址空间上,相当于浅拷贝咯)

2、一次调用,两次返回。

3、保证子进程先运行,当它调用exec或exit之后,父进程才可能被调度运行。

如果在调用exec或exit之前子进程要依赖父进程的某个行为,就会导致死锁

孤儿进程:父进程结束,子进程未结束

僵死进程:子进程结束,父进程未结束

exec函数族

wait()函数

waitpid()函数

ps:这章节的学习代码就不放了。(在虚拟机上,截屏好麻烦的...)

有个项目应用——实现自己的My shell    我会传到资源上。可以去看看哈!

0 0
原创粉丝点击