potplayer 多个进程_Linux系统编程1.2:进程概念简介
进程是操作系统中最重要的概念之一。
一.进程的概念
在UNIX/Linux中, 进程是正在执行的程序, 它相当于Windows环境内的任务。每个进程包括程序代码和数据。其中数据包含程序变量数据、外部数据和程序堆栈等。
进程是操作系统分配给cpu的最小单位。
二.进程和程序的区别:
因为一个进程对应于一个程序的执行,所以绝对不要把进程与程序这两个概念相混淆。
1. 进程是动态的概念,而程序是静态的概念。实际上,多个进程可以并发执行同一个程序,例如,几个用户可以同时运行一个编辑程序,每个用户将此程序的执行均作为一个单独的进程。
在UNIX中, 一个进程又可以启动另一个进程, 这就给UNIX的进程环境提供了像文件系统目录树那样的层次结构。进程树的顶端是一个控制进程, 它是一个名为init的进程,该进程是所有用户进程的祖先,其进程id(pid)为1。
三.进程和线程的区别:
1. 最重要区别:进程是操作系统分配给cpu的最小单位,而线程是处理器任务调度和执行的基本单位。另外区别还有资源开销、包含关系、内存分配、影响关系、执行过程等。
2. 从资源分配上来说:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。
3. 从包含关系上来说:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。
4.从内存分配上来说:进程之间的地址空间和资源是相互独立的;而同一进程的线程共享本进程的地址空间和资源。
5.从影响关系上来说:一个进程崩溃后,在保护模式下不会对其他进程产生影响;但是一个线程崩溃可能导致整个进程都死掉。所以多进程要比多线程健壮。
6.从执行过程上来说:每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行。
四. 进程控制:
Linux同样向程序员提供一些进程控制方面的系统调用, 其中最重要的有以下几个:
1) fork()它通过复制调用进程来建立新的进程,是最基本的进程建立操作。
2) exec它包括一系列的系统调用,其中每个系统调用都完成相同的功能,即通过一个新的程序覆盖原内存空间, 来实现进程的转变。各种exec系统调用之间的区别是,它们的参数构造不同。
3) wait()它提供了初级的进程同步措施,能使一个进程等待,直到另一个进程结束为止。
4) exit() 这个系统调用常用来终止一个进程的运行。
五. 进程还有各种状态以及它们之间的转换: 最常见的是,运行态,等待态,就绪态;
六. 进程间通信:各个进程可以进程通信。Linux系统提供了一些通信方式,例如,共享内存,管道,信号,socket,消息队列等。
七.实战:列出系统中的进程:
1.window任务管理器中查看进程:
2.Android手机中的进程:
init进程,是linux系统第一个用户进程,其进程id为1,root(内核)进程是它的父进程。
zygote,是Android系统的核心进程 ,所有的App的父进程都是它。
system_server是android Framework所在的进程,也称为Android系统进程,其父进程是zygote.
整个操作系统的运行,其实就是这些进程的运行和交互。
potplayer 多个进程_Linux系统编程1.2:进程概念简介相关推荐
- 【Linux系统编程】特殊进程之守护进程
00. 目录 文章目录 00. 目录 01. 守护进程概述 02. 守护进程查看方法 03. 编写守护进程的步骤 04. 守护进程代码 05. 附录 01. 守护进程概述 守护进程(Daemon Pr ...
- 【Linux系统编程】特殊进程之孤儿进程
00. 目录 文章目录 00. 目录 01. 孤儿进程概述 02. 孤儿进程代码 03. 附录 01. 孤儿进程概述 父进程运行结束,但子进程还在运行的子进程就称为孤儿进程(Orphan Proces ...
- 【Linux系统编程】特殊进程之僵尸进程
00. 目录 文章目录 00. 目录 01. 僵尸进程概述 02. 僵尸进程案例 03. 避免僵尸进程 04. 附录 01. 僵尸进程概述 进程已运行结束,但进程的占用的资源未被回收,这样的进程称为僵 ...
- Linux系统编程 74 孤儿进程和僵尸进程
Linux系统编程 74 孤儿进程和僵尸进程 学习笔记 孤儿进程:父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为 init进程,称为init进程领养了孤儿进程. init进程会去接替 ...
- execve系统调用_Linux系统编程——进程替换:exec 函数族
在 Windows 平台下,我们可以通过双击运行可执行程序,让这个可执行程序成为一个进程:而在 Linux 平台,我们可以通过 ./ 运行,让一个可执行程序成为一个进程. 但是,如果我们本来就运行着一 ...
- execlp使用例子_linux系统编程之进程(五):exec系列函数(execl,execlp,execle,execv,execvp)使用...
本节目标: exec替换进程映像 exec关联函数组(execl.execlp.execle.execv.execvp) 一,exec替换进程映像 在进程的创建上Unix采用了一个独特的方法,它将进程 ...
- linux系统编程_Linux系统编程:进程间通信
进程的重要性对于编程人员来说,至关重要,那么,进程间是如何通信的呢?在一个大的项目中,进程间的通信有哪些方式,这对于我们程序员来说也是很重要的一个点?那么本节我们就来聊聊进程间通信的方式,以及各自的优 ...
- 【Linux系统编程】Linux进程管理
00. 目录 文章目录 00. 目录 01. 概述 02. 进程相关概念 03. 进程的状态 04. 进程调度 05. 程序调度函数 06. 附录 01. 概述 在Linux的内核的五大组成模块中,进 ...
- c++ mmap写入速度_Linux系统编程_用mmap+数组的方式修改数据文件
正文开始前,先聊点非技术的东西,推荐2本生动有趣的书: <经济学原理 宏观经济学>,曼昆,豆瓣评分9.3,4945人评价 <经济学原理 微观经济学>,曼昆,豆瓣评分9.6,18 ...
最新文章
- 五种JSP页面跳转方法详解
- 讨厌别人不写注释,但自己也不爱写?那么试试这个IDEA的注释插件吧!
- Wireshark 跟踪TCP流
- Quartz 框架快速入门(三)
- [python学习] 简单爬取维基百科程序语言消息盒
- iOS 13 真机调试包
- 为@Cacheable设置TTL – Spring
- python xml字符串_python -解析字符串,并返回xml格式字符串 急该如何解决
- 维珍媒体确定收购Arqiva WiFi 将进一步扩大公共WiFi覆盖面积
- linux驱动与windows驱动精灵,细说驱动精灵和驱动人生哪个好
- Table View Programming Guide for iOS 官方文档翻译
- 一文2000字搞懂高并发性能指标:QPS、TPS、RT、并发数、吞吐量
- 【AI数学原理】函数求导(精髓篇)
- 网络编程学习_TCP协议
- Android Studio真机测试
- 掌门优课用户量增多,用户看上了它什么?
- 51单片机多路独立按键开关程序
- tornado完成一个简单的登录界面/图片的上传
- 【华为OD机试真题 Python】统计射击比赛成绩
- Nat.Mach.Intell.|如何改进错义突变致病性预测?使用图注意神经网络试试