关于父子进程的执行顺序和执行过程

问题描述

我最近在看mp3的一个应用程序,有几个问,不太清楚1.fork出一个子进程,父子进程执行的先后顺序是不确定的,如果先执行父进程,再执行子进程,父进程中没有wait和sleep。问,是否先把父进程执行完,再执行子进程?还是两个进程是一块执行的?2.如果父进程中有sleep,父进程中的程序执行到sleep进行休眠,转而执行子进程。问:子进程中的程序执行完了再返回父进程中执行,还是休眠时间到了返回父进程中执行,还是其他?求,大神指教,

解决方案

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

时间: 2024-10-23 19:30:28

关于父子进程的执行顺序和执行过程的相关文章

Javascript在网页页面加载时的执行顺序

javascript|加载|网页|页面|执行 一.在HTML中嵌入Javasript的方法 直接在Javascript代码放在标记对<script>和</script>之间 由<script />标记的src属性制定外部的js文件 放在事件处理程序中,比如:<p >点击我</p> 作为URL的主体,这个URL使用特殊的Javascript:协议,比如:<a href="javascript:alert('我是由javascript

ombiner partition-关于Map端的Combiner和Partition的执行顺序的疑问

问题描述 关于Map端的Combiner和Partition的执行顺序的疑问 Map的输出结果先保存在缓存中,待缓存达到阈值将结果保存到临时文件. Partition是根据键key来决定该结果进入哪个reduce:Combiner是将map端输出的结果按key合并,它们的执行顺序或者执行过程是什么样子呢

页面中js执行顺序_javascript技巧

下面是测试的代码: 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <head runat="server"> <title>测试js的执行顺序</title> <script language="javascript" type="text/javascri

Linux中profile、bashrc、~/.bash_profile、~/.bashrc、~/.bash_profile之间的区别和联系以及执行顺序

区别 ============ /etc/profile ============ 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置. =========== /etc/bashrc =========== 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. =============== ~/.bash_profile =============== 每个用

JMeter基础之--元件的作用域与执行顺序

前面有介绍过jmeter的元件类别,对于新手来说,jmeter的 元件是还是不少的,如果我们按照每一个元件的每一个参数的含义去学习,无疑会降低学习性能测试的热情,就算我们熟悉了所有元件以及元件上的参数了,我们也 不知道如何将其组合成我们想要描述的性能测试.另一方面,我们点击每个节点上的元件都会出现类似或相同的菜单,他们的层级关系是什么样的.究竟这个元件放 在哪个层级的哪个位置才达到我们意愿. 如何更快速的入门jmeter,个人建议通过录制脚本的方式,快速的了解一个性能测试应该包括的元件以及它们的

Sql查询原理与Select执行顺序(详细)

原文地址:点击打开链接 一切都是为了性能,一切都是为了业务 一.查询的逻辑执行顺序 (1) FROM left_table (3) join_type JOIN right_table (2) ON join_condition (4) WHERE where_condition (5) GROUP BY group_by_list (6) WITH {cube | rollup} (7) HAVING having_condition (8) SELECT (9) DISTINCT (11)

代码-ubuntu上进程生成并且调度子进程执行不同的任务

问题描述 ubuntu上进程生成并且调度子进程执行不同的任务 如何编写一个总进程调度其他的子进程执行不同的任务,可不可以发点代码,实例讲解一下,个人较笨,才开始看关于进程的知识,照着书上敲了一天结果是错的 解决方案 #include #include #include int global;//全局变量,在数据段中 int main() { pid_t pid; int stack =1;//局部变量,在栈中 int *heap; heap = (int*)malloc(sizeof(int))

linux中top中显示每个进程正在哪个CPU上执行

top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最"敏感"的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序:而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定. 命令使用 top使用格式 top [-] [d] [p] [q] [c] [C] [S] [s]  [

Jmeter组件执行顺序与作用域

一.Jmeter重要组件: 1)配置元件---Config Element: 用于初始化默认值和变量,以便后续采样器使用.配置元件大其作用域的初始阶段处理,配置元件仅对其所在的测试树分支有效,如,在同一个作用域的任何采样器前. 2)前置处理器--- Pre Processors: 前置处理器会在采样器发出请求之前做一些特殊操作.如果前置处理器附着在某个采样器之下,那么它只会在该采样器运行之前执行.前置处理器通常用于在采样器发出请求前修改采样器的某些设置,或者更新某些变量的值(这些变量不在服务器响