进程管理

Linux进程管理: 多进程编程

六眼飞鱼酱① 提交于 2020-01-17 02:13:11
多进程编程 mind-Mapping 保存有xmind原始文件,可直接获取 无名管道PIPE 命名管道FIFO POSIX共享内存 POSIX消息队列 POSIX信号量 SYS V共享内存 SYS V消息队列 SYS V信号量 来源: CSDN 作者: Z_Stand 链接: https://blog.csdn.net/Z_Stand/article/details/104011127

多任务抢占式调度器

怎甘沉沦 提交于 2020-01-16 08:49:19
以ARM9为平台,介绍一个多任务抢占式调度器。抢占式调度器提供:延时,挂起,恢复任务操作。没有加入信号量邮箱等同步通信机制,只是实现一个基本的任务调度功能。 多任务原理的印象<建立一个属于自己的AVR的RTOS>,自己要好好看这篇文章。循序渐进,一步步把简单的东西弄懂了,便没有复杂的了,所谓水到渠成。 操作系统(operating system (os))是一种系统软件,它在计算机硬件和应用程序之间,通过提供应用程序接口( application programming interface API),屏蔽了计算机硬件工作的一细节,提供一个友好的平台,方便应用程序的设计和开发。主要是包括以下几个方面:进程管理;存储管理;设备管理;文件管理;作业管理等。 进程管理:其工作主要是进程的调度 ,在单用户单任务的情况下,处理器仅为一个用户的一个任务所占用,进程管理的工作就十分简单。但是在多道程序或多用户的情况下,组织多个作业或任务时,需要解决处理器的调配、分配和回收等问题; 存储管理分为:存储分配,存储共享、存储保护、存储扩张等几个功能 设备管理分为:设备分配、设备传输控制、设备独立性等 文件管理:文件存储空间的管理、目录管理、文件操作管理、文件保护 作业管理负责处理用户提交的任何要求。 多任务OS设计(在ARM9上运行简单的多任务调度器),需要直观的看下多任务的代码和单任务程序(前后台系统

操作系统进程管理常见问题(进程和线程的概念、临界区和临界资源的概念)

雨燕双飞 提交于 2020-01-11 02:37:11
1.什么是进程 i:进程是程序的一次执行。 ii:进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 iii:进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 2.现代操作系统中的进程为何有多种状态?请列举几种常见的进程状态。 进程有三种基本状态(不同系统设置的进程状态数目不同) 就绪状态:一个进程已经具备执行条件,但由于无CPU暂时不能执行的状态 运行状态:进程占有CPU,并在CPU上执行 阻塞状态:指进程因等待某种事件的发生而暂时不能执行的状态 其他状态 新建状态:OS(操作系统)已完成为创建一进程所必要的工作 终止状态:程序终止后移入该状态 3.请画图描述进程基本状态的转换。 4.系统是如何管理进程的? 系统管理进程一般由原语来实现。 5.我们要运行一个程序时,操作系统是如何为我们创建一个进程的? i:申请空白PCB,赋予一个进程标识符 ii:为新进程分配资源 如内存 iii:初始化进程控制块 iv:为新进程插入就绪队列 6.现代操作系统为何需要同步机制?有哪些常见的进程同步机制?设计同步机制时需要遵循哪些准则? 现代操作系统往往需要多个进程中发生的事件存在某种时序关系,需要互相合作,共同完成一项任务。 锁机制、信号量机制、管程机制 同步机制的准则 空闲让进:当无进程在互斥区时,任何有权使用互斥区的进程可进入 忙则等待

linux----进程管理

前提是你 提交于 2020-01-09 13:16:18
进程管理 类似于 windows系统中的ctrl+shift+esc 进程管理 ps process status 进程状态的意思 报告进程的状态 kill killall 干掉 -a 显示所有的进程 -u 指定用户的进程详细信息 -x 通常跟a一起来用 列出详细的信息 -r 正在运行的进程 sudo ps -a | more -5 #显示所有的进程 分页显示 每页显示5个sudo ps -u root | more 20​sudo ps -u root | grep kworker​​​root@ubuntu:~# ps -aux | grep nginx #重点 常用 ★★★★★root 114640 0.0 0.0 28352 868 ? Ss 00:26 0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confwww 114641 0.0 0.8 50024 25472 ? S 00:26 0:00 nginx: worker processwww 114642 0.0 0.8 50024 25472 ? S 00:26 0:00 nginx: worker processroot 115424 0.0 0.0 15972 972 pts/23 S+

进程管理

人盡茶涼 提交于 2020-01-07 15:49:14
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 关于进程 查看进程 信号控制进程 kill top kill通过PID发送信号 killall进程名称发送信号 重启researt(stop,start)PID会改变 重新加载 (reload,reconfigure)PID保持不变 进程优先级 作业控制 来源: oschina 链接: https://my.oschina.net/u/4108568/blog/3154374

Linux&&进程管理&&计划任务

坚强是说给别人听的谎言 提交于 2019-12-30 02:42:23
Linux&&进程管理&&计划任务 进程查看与控制 PS命令 pgrep命令 pstree命令 pkill命令 at命令 crontab 命令 如何查看一个进程运行时真实占据了CPU多长时间? 如何查看处于后台运行状态的程序? 如何让程序后台挂起?如何让后台挂起的程序运行?如何让后台挂起、运行的程序调到前台? 进程查看与控制 PS命令 以静态形式查看进程统计信息 选项: a : 所有进程 u : 进程运行用户身份 x : 所有进程 e : l : f : 列出父子关系 pgrep命令 根据特定条件查询进程PID信息 选项: -l : 指定进程名 -t : 指定tty终端号 -u : 指定程序运行用户 pgrep -l -u dfq -t tty1 pstree命令 以树形结构列出进程信息 选项: -a : 显示完整信息 -u : 列出对应用户名 -p : 列出对应PID号 pkill命令 根据特定条件终止相应的进程 常用于踢出特定用户在服务器的操作、登录状态 选项: -u : 根据进程所属的用户名终止相应进程 -t : 根据进程所在的终端终止相应进程 pkill -9 -u 'dfq' at命令 一次性(临时性)计划任务 #定义一次性任务的具体执行时间 at 15:30 2019-12-29 at > shutdown -r now #ctrl + D 提交一次性任务 at > <

进程管理之进程优先级

↘锁芯ラ 提交于 2019-12-28 16:05:38
前 言 进程优先级实际上是系统对进程重要性的一个客观评价。根据这个评价的结果来为进程分配不同的系统资源,这个资源包括内存资源和CPU资源。为了保证“公平公正”的评价每个进程,Google工程师为此设计了一套评价系统。本文试图从面相对象的角度和功能设计者角度来理解该功能,具体思路如下: 要实现一个功能,有必要的时候我们会去为他制定一些属性,对于设计者而言这些属性肯定是必须的,因此作为使用者我们必须理解这些属性的意义是什么。 同样要实现一个功能,设计者会定制一些该功能特有的行为,在代码里面体现为特定的函数,那么我们作为使用者,必须了解以下几个面:a.该行为的能产生什么样的结果,即行为的目的,b.该行为的触发条件,即什么时候会用到这些方法,为什么在这个时候要去触发? 本文会从如下三个关键词和三个关键方法来展开分析和讨论 adj :通过调整oom_score_adj来影响进程寿命(Lowmemorykiller杀进程策略); schedGroup :影响进程的CPU资源调度与分配; procState :从进程所包含的四大组件运行状态来评估进程状态,影响framework的内存控制策略。比如控制缓存进程和空进程个数上限依赖于procState,再比如控制APP执行handleLowMemory()的触发时机等 updateOomAdjLocked : 更新

从Linux内核谈僵尸进程

折月煮酒 提交于 2019-12-24 23:00:23
僵尸进程 摘自百度百科: 僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源。 在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程。 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程, 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程…… 僵尸进程的危害 由于子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束. 那么会不会因为父进程太忙来不及wait子进程,或者说不知道 子进程什么时候结束,而丢失子进程结束时的状态信息呢? 不会。因为UNⅨ提供了一种机制可以保证只要父进程想知道子进程结束时的状态信息, 就可以得到。这种机制就是: 在每个进程退出的时候,内核释放该进程所有的资源,包括打开的文件,占用的内存等。但是仍然为其保留一定的信息(包括进程号the process ID,退出状态the termination status of the process,运行时间the amount of CPU

浅谈 Node.js 和 PHP 进程管理

你离开我真会死。 提交于 2019-12-24 21:44:55
众所周知,PHP 占据了服务端编程语言的半壁江山,正如汪峰在音乐圈的地位一般。随着 Node.js 逐渐走上服务端编程的舞台,关于 PHP 和 Node.js 孰优孰劣的争论也不曾间断。 垄断性的市场份额足以佐证 PHP 的优秀。并且 HHVM 虚拟机、PHP 7 的革新,也给 PHP 带来了跨越式的性能突破。然而,当我们为语言层面的性能差异喋喋不休时,却往往忽略了 Web 模型在性能表现中的权重。 从 CGI 到 FastCGI 早期的 Web 服务,是基于传统的 CGI 协议实现的。每个发送到服务器的请求,都需要经过启动进程、处理请求、结束进程三个步骤,以至于访问量增大时,系统资源(如内存、CPU 等)开销也巨大,导致服务器性能下降甚至服务中断。 图 1:简单的 CGI 流程示意 在 CGI 协议下,解析器的反复加载是性能低下的主要原因。如果让解析器进程长驻内存,那么它只需启动一次,就可以一直执行着,不必每次都重新 fork 进程,这就有了后来的 FastCGI 协议。 如果 FastCGI 仅仅做到这样,那么和 Node.js 单进程单线程的模型是基本一致的:Node.js 进程启动后保持持续运行,所有的请求都由这个进程接收和处理,当某个请求引起未知错误时,才可能致使进程退出。 事实上 FastCGI 并没有那么简单,为了保证服务的稳定性,他被设计成了多进程调度的模式: 图