1——进程控制

    xiaoxiao2021-03-25  66

    一、进程的概念:

    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    我会传到资源上。可以去看看哈!

    转载请注明原文地址: https://ju.6miu.com/read-35604.html

    最新回复(0)