进程管理

Linux进程管理

独自空忆成欢 提交于 2019-11-30 02:35:59
进程管理 1、操作系统基础 调用:kernel通过给应用程序提供system call方式来提供硬件资源; 注意:这个应用程序也包括库文件; 库文件是运行在ring 0上的一段程序代码,不对客户直接提供应用; 中断、保护现场 2、进程运行原理(一个进程与多个进程) 一个进程:首先我们需要把硬盘中的程序代码加载到内存(复制),再将这段程序放到CPU上运算,此时,这段程序就会去调用(也会自动生成)很多的进程;由这些进 程来完成程序所指定的任务; 在这个过程当中:我们就需要解决数据输入与输出,还有存储的问题 (不讨论多核、CPU多线程的情况) 多个进程:在电脑中一般都是存在多个进程的,而CPU却只有一个,我们就使用time space的方式来给进程分配固定的时间来运行;某个进程只能在轮到自己运行的时候 才会被放到CPU上执行,时间一到就会自动被踢下来,CPU则会执行下一个进程; 问题: 1、进程谁先谁后的问题? 进程优先级 2、如果进程没有运行完就被踢下来了怎么办?--解决数据存储的问题 3、如果进程造反了怎么办? 3、进程优先级 0-139 0-99 实时进程 越大越优先 100-139 非实时进程 越小越优先 【特性:普通用户可以转让自己的优先级】 nice值:定义普通进程的优先级,-20 - 19 轮了一圈以后怎么办? 在我们内存上,会提供一个空间

Linux进程管理

隐身守侯 提交于 2019-11-30 00:20:23
博文结构 什么是程序 工作管理 程序管理 一.什么是程序 1.在 Linux 系统当中: “ 触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID ,同时依据启发这个程序的使用者与相关属性关系,给予这个 PID 一组有效的权限设置。 2.程序与进程 ( process & program ) 执行一个程序或指令 ” 就可以触发一个事件而取得一个 PID 啰!我们说过,系统应该是仅认识 binary file 的,那么当我们要让系统工作的时候,当然就是需要启动一个 binary file ,那个 binary file 就是程序 ( program ) 如上图所示,程序一般是放置在实体磁盘中,然后通过使用者的执行来触发。触发后会载入到内存中成为一个个体,那就是程序。 为了操作系统可管理这个程序,因此程序有给予执行者的权限 / 属性等参数,并包括程序所需要的指令码与数据或文件数据等, 最后再给予一个 PID 。系统就是通过这个 PID 来判断该 process 是否具有权限进行工作的 程序 ( program ) :通常为 binary program ,放置在储存媒体中 (如硬盘、光盘、软盘、磁带等), 为实体文件的型态存在; 进程 ( process ) :程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,

Supervisor 进程管理工具

时光怂恿深爱的人放手 提交于 2019-11-29 18:58:55
简介 Supervisor 是基于 Python 的进程管理工具,可以帮助我们更简单的启动、重启和停止服务器上的后台进程,是 Linux 服务器管理的效率工具。什么情况下我们需要进程管理呢?就是执行一些需要以守护进程方式启动的程序,比如一个后台任务、一组 Web 服务的进程(说是一组,是因为经常用 Nginx 来做负载均衡),这些很可能是一些网站、REST API 的服务、消息推送的后台服务、日志数据的处理分析服务等等。注意:Supervisor 是通用的进程管理工具,可以用来启动任意进程,不仅仅是用来管理 Python 进程。 Supervisor 有两个主要的组成部分: 1 supervisord,运行 Supervisor 时会启动一个进程 supervisord,它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启。 2 supervisorctl,是命令行管理工具,可以用来执行 stop、start、restart 等命令,来对这些子进程进行管理。 安装 sudo pip install supervisor 通过如上命令即可实现,需要注意的是如果你电脑既有python2和python3,那么需要使用 sudo pip3 install supervisor 配置文件 创建 echo_supervisord_conf >

nodejsNodejs的进程管理工具pm2

笑着哭i 提交于 2019-11-29 15:40:08
生产环境的Nodejs的进程管理工具 https://github.com/Unitech/pm2 pm2 是一个进程管理工具,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能。 pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是一个通用过程管理器,也是一个带有内置Load Balancer的Node.js应用程序的生产运行时。 主要特征: 简单高效的流程管理(启动/停止/重启/删除/显示/监控) 通过自动重启和初始化系统脚本生成,让您的应用始终保持在线状态 集群化Node.js应用程序,无需更改代码以提高性能和可靠性 热重新加载Node.js应用程序,无需额外配置 安装:​ npm install -g pm2 启动进程/应用 pm2 start bin/www 进程/应用重命名 pm2 start app.js --name wb123 添加进程/应用watch pm2 start bin/www --watch 结束进程/应用 pm2 stop www 结束所有进程/应用 pm2 stop all 删除进程/应用 pm2 delete www 删除所有进程/应用 pm2 delete all 列出所有进程/应用 pm2

Linux操作系统--初级--进程管理的命令

被刻印的时光 ゝ 提交于 2019-11-29 06:25:04
pstree   以树形结构显示进程关系     yum install -y psmisc ps   查看进程状态 -- 当前这一刻的进行状态   相关参数     PID 进程ID     TTY 启动该进程的终端(可以用who、last查看)比较重要的是pts     TIME 累计在CPU上运行的时长     CMD 启动该进程的命令程序   ps的常用组合:     用man ps查看有什么、怎么用     pa -aux       USER 进程所属用户       PID       %CPU       %MEN       VSZ virtual memory size虚拟内存大小;进程自己在内存中真实占用的线性地址空间大小       RSS 常驻内空间(不可以进行内存交换)       TTY       STAT 进程状态           R  running           S  sleeping           T  stoped           Z  zombie           附加状态           s    代表是lead(领导)进程           +    前端进程           <    高优先级进程           N    低优先级进程           D    表示不可中断        

8.30 进程管理

烈酒焚心 提交于 2019-11-29 05:38:20
1、操作系统基础   调用:kernel通过给应用程序提供system call的方式来提供硬件资源;   注意:应用程序也包括库文件;   库文件是运行在ring0上的一段程序代码,不对客户直接提供应用; 2、操作运行原理(一个进程和多个进程)   一个进程:首先把进硬盘中的程序代码加载到内存(复制),再将这段程序放到CPU上运算。此时,这段程序就会去调用(也会自动生成)很多的进程;由这些进程来完成程序制定的任务;   在这个过程中,我们需要解决数据输入与输出和存储的问题。   多个进程(暂时不讨论多核、CPU多线程的情况):在电脑中一般都是存在等多个进程的,而CPU只有一个。这时,我们使用time space的方式来给进程分配固定的时间运行;某个进程只能在轮到自己 运行的时候才会被放到CPU上去执行。时间一到,就会自动被踢下来,CPU则会执行下一个进程; 3、进程优先级(普通用户可以转让自己的优先级(高优先=>低优先))   0-139   0-99 守护进程 越大越优先   100-139 普通进程 越小越优先   nice值:定义普通进程的优先级,-19 - 20   轮了一圈之后怎么办?   在内存上提供了一个空间,这个空间会专门用来存放运行过后的进程   当所有进程运行完一遍后,这个空间就会和原有空间对调,再提供给CPU读取;   一直轮换,直到进程运行完为止。 4

进程管理

末鹿安然 提交于 2019-11-29 02:19:28
一、进程的概念与分类 进程的的基本定义是 :在自身的虚拟地址空间运行的一个独立的程序,从操作系统的角度来看,所有在系统上运行的东西,都可以称为一个进程。 进程的分类:  系统进程: 可以执行内存资源分配和进程切换等管理工作;而且,该进程的运行不受用户的干预,即使是root用户也不能干预系统进程的运行。  用户进程: 通过执行用户程序、应用程序或内核之外的系统程序而产生的进程,此类进程可以在用户的控制下运行或关闭。 交互进程: 由一个shell终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台,也可以运行在后台。 批处理进程: 该进程是一个进程集合,负责按顺序启动其他的进程。 守护进程: 守护进程是一直运行的一种进程,经常在linux系统启动时启动,在系统关闭时终止。例如httpd进程,一直处于运行状态,等待用户的访问。还有经常用的crond进程,这个进程类似与windows的计划任务,可以周期性的执行用户设定的某些任务。 二、进程的监控与管理 在linux系统中,进程ID(用PID表示)是区分不同进程的唯一标识,它们的大小是有限制的,最大ID为32768,用UID和GID分别表示启动这个进程的用户和用户组。所有的进程都是PID为1的init进程(centos7.x版本是systemd进程)的后代。内核在系统启动的最后阶段启动init进程,因而

Linux之进程管理命令

会有一股神秘感。 提交于 2019-11-29 00:20:07
命令 pstree    通过树形结构显示进程关系   yum install psmisce -y ps   查看进程状态---------当前运行状态(这一刻)   PID 进程ID   TTY 启动该进程的终端是谁 pts   TIME 进程累计在CPU上运行的时间   CMD 启动该进程进程命令程序   PS -aux     user 进程所属用户     PID     %cpu     %MEM      VSZ virtyal memory size 虚拟内存空间大小;进程自己在内存中真实占有用的地址大小     RSS 常驻内空间(不可以进行内存交换---swap)     TTY     STAT 进程状态         R running         S sleeping         T stoped         Z zombie      附加状态         s 代表lead 进程         + 前段进程         < 高级优先进程         N 低级优先进程         D 表示补课中断         W 没有足够的内存可以分配         l 表示多线程进程-----多线程----------把一个进程拆分为多个线程来完成,这样1可以提高线程的速度       STAT 进程启动时间       TIME

二十一、进程管理之一基本概念

强颜欢笑 提交于 2019-11-29 00:05:54
硬件 调用、调用接口、库调用 线性内存地址空间、物理内存地址空间、线性地址、物理地址 交换内存:缺页异常 进程内存结构 常驻内存集、虚拟内存集 进程、进程元数据、结构体、任务结构体、链表 进程类型、状态(read,runing,sleep,stopped,zombie) 可中断睡眠、不可中断睡眠 创建子进程的过程 进程优先级、进程调度、进程队列 过期队列:抢占式多任务、系统调用IO IO模型、系统调用IO等待过程 进程间通信:IPC 硬件 编程接口 : syscall(系统调用) libcall(库调用) 硬件 库调用 : 用户空间发生(独立的模块或系统调用的二次封装) 系统调用 :内核空间发生,特权指令 **如果非内核将要运行特权指令,会发起软中断,CPU会通知内核,除非内核有漏洞,特权指令一定是由内核执行。 调用 :载入事先编写好的功能模块 模块 :由别人提供,调用此模块完成功能 调用接口 :得到模块的途径     例如:想要卖一双鞋(功能),到鞋店去买(提供功能的位置),鞋店的大门(调用接口)。 内核的功能   驱动硬件、用户及权限管理、网络管理、程序包管理、文件系统管理、进程管理、安全管理 网络管理 : ip,ifcfg,nmcli配置ip,route,dns。配置文件配置ip,dns,route,图形工具配置 文件系统管理 : 块组、bitmap,GDT,Supper

Linux操作系统--初级--进程管理

落爺英雄遲暮 提交于 2019-11-28 23:48:27
1、操作系统基础   调用:kernel通过给应用程序提供system call的方式来提供硬件资源;     注意:这个应用程序也包括库文件;     库文件是运行在ring0上的一段程序代码,不对客户端直接开放 2、进程运行原理(一个进程和多个进程)   一个进程:首先我们需要把硬盘中的程序代码加载到内存,再将这段代码放到CPU上运算,此时,这段程序就回去调用很多进程;由这些进程来完成程序所指定的任务   在这个过程中我们就需要去解决数据输入与输出,还有存储的问题   (不讨论多核、CPU多线程的情况)   多个进程:在电脑中一般都是存在多个进程的,而CPU却只有一个,我们就使用time space的方式来给进程分配固定的时间,运行这些进程;某个进程只能在轮到自己运行的时候,才会被放到CPU上执行,时间一到,就会自动被踢下来,然后CPU就会执行下一个进程,这就会有诸多问题;   问题:     1、进程谁先谁后的问题?       根据进程优先级     2、进程没有运行完就被踢下来了怎么办?       1、程序数据怎么办(运行到一半留下来的数据)         会有一个小的寄存器       2、输入数据输出数据       3、进程元数据       task struct数据结构体:它定义了进程数据的存储格式;我们将进程数据以及进程原数据存储与task struct中