一、
问:
1.fork出一个子进程,父子进程执行的先后顺序是不确定的,如果先执行父进程,再执行子进程,父进程中没有wait和sleep。问,是否先把父进程执行完,再执行子进程?还是两个进程是一块执行的?
2.如果父进程中有sleep,父进程中的程序执行到sleep进行休眠,转而执行子进程。
问:子进程中的程序执行完了再返回父进程中执行,还是休眠时间到了返回父进程中执行,还是其他?
答:

  1. 进程的执行顺序是要看操作系统如何进行进程调度的,具体看调度算法。比如,如果基于时间片轮转调度算法,假设父进程先执行,本时间片内没有执行完,则会发生进程切换,即调度程序从就绪队列中取出一个进程在下一个时间片内执行,而本进程保存进程信息和状态然后插入就绪队列,等待调度程序重新调度。
  2. sleep是休眠,也就是进程阻塞,从就绪队列取出本进程,插入阻塞队列。sleep时间到,进程变为就绪状态,插入就绪队列,等待调度程序调度,也就是说,执行不执行看调度程序,阻塞一定不执行,就绪也不一定是马上执行的。

二、 一旦启动子进程 后续的代码就并发 没有先后顺序,具体要看调度策略和进程的优先级了。

OS中关于父子进程的执行顺序和多个子进程之间的执行顺序(整理)相关推荐

  1. linux创建多个子进程,[Linux进程]使用fork函数创建多个子进程

    #include #include int main (void) { pid_t pid1,pid2;   //进程标识符 pid1 = fork();      //创建一个新的进程 if(pid ...

  2. Linux实验三父子进程每隔3秒,实验三进程的创建和简单控制(学生分析.doc

    实验三进程的创建和简单控制(学生分析 实验 进程的创建和简单控制 实验目的: 掌握进程的概念和进程的状态,对进程有感性的认识: 掌握进程创建方法: 认识进程的并发执行,了解进程族之间各种标识及其存在的 ...

  3. 【Linux进程概念】冯 诺依曼体系结构 操作系统 进程 fork 进程状态 优先级

    文章目录 [写在前面] 一.冯 ? 诺依曼体系结构 ?? 体系结构 ?? 数据流向 ?? 实例 二.操作系统 (Operator System) ?? 概念 ?? 计算机体系及操作系统定位 ?? 管理 ...

  4. linux两个子进程通信,Linux c 匿名管道实例—创建两个子进程与父进程进行管道通信...

    综合: 建立两个子进程: 一个负责计算1-50000的素数 另外一个负责计算50001-100000 父进程负责存储 利用fork创建两个子进程的框架: #include #include #incl ...

  5. fork 循环创建多个子进程

    循环创建多个子进程 对于以下循环创建进程是什么样的呢? int i = 0; while(i < 3){fork();/*功能代码*/i++; } 子进程创建如下图 学习笔记 对于仅含有一个 f ...

  6. linux 两个子进程,父进程创建两个子进程,在收到中断信号后杀死两个子进程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按^c键):捕捉到中断信号后,父进程用系统调用kill(  ...

  7. 【操作系统】进程的创建与终止过程中的父子进程

    进程在执行过程中,能通过系统调用创建多个新进程. 创建进程称为父进程,而新进程称为该进程的子进程.每一个新进程可以再创建其他进程,从而形成了进程树. 通常,进程需要一定的资源(如CPU时间.内存.文件 ...

  8. php中pattern以a或A为开头,shell基础六和七:执行顺序(||及,{}及())及正则表达式...

    正则表达式语法: 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模 ...

  9. java基础巩固-宇宙第一AiYWM:为了维持生计,四大基础之OS_Part_1整起(进程线程协程并发并行、进程线程切换进程间通信、死锁\进程调度策略、分段分页、交换空间、OS三大调度机制)

    PART0:OS,这货到底是个啥? OS,是个啥? OS的结构们: 存储器: 存储器的层次结构: 内存:我们的程序和数据都是存储在内存,我们的程序和数据都是存储在内存,每一个字节都对应一个内存地址.内 ...

最新文章

  1. 手把手教你搭建一个学习Python好看的 Jupyter 环境
  2. ArrayList和LinkedList的add(E)性能秘密
  3. Python实现遍历目录与子目录,并找到以.txt结尾的文件
  4. OPGL+GLFW+GLEW配置详细步骤
  5. 使用Flowable.generate()生成可感知背压的流– RxJava常见问题解答
  6. 3D中国跳棋 —— 记与子禾童鞋的结对编程(附网站地址及完整源码)
  7. 【前端】【cornerstone】【未完善】cornerstone重新加载图像大小问题——拒绝花里胡哨
  8. 有关货币,通货膨胀,经济发展的思…
  9. python装饰器的应用案例
  10. 过采样欠采样的处理方法
  11. c语言角度转换为弧度程序,C语言之将弧度值转换为角度值
  12. 第九周项目四----广义表算法库及应用1
  13. 3Dmax Bones骨骼学习记录一
  14. c语言判断是否以某个字符串开头,以某个字符串结尾
  15. [Unity]2D打飞机游戏
  16. OmniPlan,一款让你爱不释手的项目管理工具
  17. 3A技术的介绍以及CISCO路由器上相关配置
  18. MVD(四-形变的代理)
  19. 22-Excel与数据分析
  20. mp3 pcm java_Java mp3转码pcm 与 切割音频

热门文章

  1. Python多线程学习
  2. 【Win 10 应用开发】UI Composition 札记(二):基本构件
  3. Gym - 100625E Encoded Coordinates 矩阵快速幂
  4. 【原创】leetCodeOj ---Convert Sorted List to Binary Search Tree 解题报告
  5. mysql命令行执行时不输出列名(字段名)
  6. .NET程序脱离.NET Framework 运行之道
  7. WIN7 UAC/结构体的Equals方法/C# 开发wince程序,窗口上总留有一块空白区域/静态构造函数...
  8. shell 读mysql内数据
  9. python将第一列替换_python-通过将另一列与第二个DataFrame进行比较来替换一列中的值...
  10. Win64 驱动内核编程-12.回调监控进线程创建和退出