进程是一个执行环境,包含了私有的进程内存空间、句柄表和其他的一些东西,为线程的存活提供了一个环境,这句话其中的含义是当创建进程时往往要创建一个默认的线程,线程是具体干活的,当一个进程中的最后一个线程被CPU执行完毕后,进程也就消亡了。这些事情都是OS内核的进程和线程管理干的事情。了解这些对使用一些高层语言来做多进程或者多线程的程序时就能在了解其底层原理的基础上发挥更大的创作空间(对于线程的竞争,同步等等的问题,其实就是OS的问题,高层语言不过还是利用OS的能力做到这些罢了)
上面是一段对进程和线程关系的描述,但是本文的重点是比较windows和Linux在这方面的不同之处!
Linux在由一段汇编程序引导其内核载入其核心态所在的内存空间并交由CPU执行时,会产成一个进程0,之后所有的进程都是通过这个进程0复制出来的,进程0总是处于空闲的状态,不占用CPU,只是一个所有进程的根,其中就推导出进程之间是有父子关系的,而且是一种强的关系,可以做一个实验:在具有root权限的shell中运行init 0时,系统会发生什么事情?init 0命令其实就是让进程0关闭掉,由于它是所有进程的父亲,当它消亡时,其后代也全部消亡了,此时你会看到linux采取的工作就是杀掉所有的进程而开始关机!
Windows则不同,进程之间的关系是松散的关系,只不过在子进程中记录了父进程的ID而已,杀掉父进程不一定会使子进程也被杀掉!
这种异同会带来什么哪,在Linux管理进程会比较简单的多!但也危险的多!Windows下会麻烦一些,但安全的多。
分享到:
相关推荐
2. **线程标准**:在Linux下,POSIX线程是最常用的线程标准,它是基于IEEE POSIX标准的一组API,用于创建和管理线程。此外还有其他线程标准如WIN32线程、DCE线程和SOLARIS线程等,但POSIX线程因其跨平台性而在Linux...
《嵌入式Linux应用程序开发标准教程(第2版)》主要分为3个部分,包括Linux基础、搭建嵌入式Linux环境和嵌入式Linux的应用开发。Linux基础部分从Linux基础、基本操作命令讲起,为Linux初学者能快速入门提供了保证。...
7.1.3 Linux下进程的模式和类型 210 7.1.4 Linux下的进程管理 211 7.2 Linux进程控制编程 212 7.3 Linux守护进程 224 7.3.1 守护进程概述 224 7.3.2 编写守护进程 224 7.3.3 守护进程的出错处理...
华清远见嵌入式linux应用程序开发技术详解(内部资料) 第1章 Linux快速入门 1.1 嵌入式Linux基础 1.2 Linux安装 1.3 Linux文件及文件系统 1.4 实验内容——安装Linux操作系统 本章小结 ...
│ ├38 - Linux高级程序_进程管理_Daemon2.avi │ ├39 - Linux高级程序_进程管理_Daemon3.mp4 │ ├40 - Linux高级程序_进程间通信_Pipe1.avi │ ├41 - Linux高级程序_进程间通信_Pipe2.mp4 │ ├42 - Linux高级...
开发者需要面对各种挑战,如多线程和多进程的同步问题、网络socket编程(B/S和C/S框架)、QT界面开发,甚至Android应用开发。这些都要求开发者具备灵活的问题解决能力,善于利用搜索引擎和社区资源。 总的来说,"跟...
计算机操作系统是计算机科学与技术专业的一门核心课程,它涵盖了进程管理、内存管理、文件系统、设备管理和调度算法等多个重要领域。随着信息技术的飞速发展,传统的教学方式可能已无法满足现代学生的需求,因此,对...
QT支持多种操作系统,包括Linux、Windows、Mac OS X、Android和iOS等。 **第一章 LINUX 图形用户界面 GUI 介绍** 1.1 **常用 GUI 介绍** 在Linux系统中,图形用户界面(GUI)是用户与操作系统交互的重要方式。...
2. 强调概念理解:强调操作系统基本概念的理解,例如进程、线程、内存管理、文件系统等,通过实例解析抽象概念,帮助学生形成清晰的认知。 3. 突出实践操作:增加实验环节,让学生通过编写简单的操作系统内核或...
在Linux环境下,我们可以利用多线程或进程来并行处理数据,进一步提升处理速度。例如,可以将数据集分成若干份,每个线程或进程负责处理一份。这样,每个计算单元可以独立地与LevelDB交互,从而加速整体的处理过程。...
无论是在Windows、macOS还是Linux等操作系统上,开发者都可以使用相同的代码基础来构建应用程序。 #### 结语 《Qt学习之路》是一本非常适合初学者入门的书籍,它不仅涵盖了Qt的基础知识,还深入探讨了许多高级主题...
在Linux环境下,通常通过Shell脚本来控制Jetty的启动和关闭,还需要注意的是Linux下的权限设置和环境变量配置。 - **2.6.1 系统变量的设置**: 如`JAVA_HOME`和`JETTY_HOME`。 - **2.6.2 命令参数**: 可以通过命令行...
13_干活要知道在什么框架之下干活 14_结构体类型和变量定义及基本操作 15_结构体元素做函数参数pk结构指针做函数参数 16_结构体做函数基本操作 17_结构体做函数内存分配指针 18_结构中套一级指针 19_结构体中套二级...