zoukankan      html  css  js  c++  java
  • Linux进程基础

    操作系统基础

           调用:kernel内核通过给应用程序听歌system call的发那个苏来提供硬件资源;

                  注意应用程序也包括库文件

    进程运行管理

           一个进程:首先我们需要把硬盘里的程序代码加载到内存(复制),再将这端程序放到CPU上运算,此时,这段程序就回去调用(也会自动生成)很多进程,由这些进程来完成程序所指定任务;

           在这个过程中:我们就需要去解决数据输入与输出,还有存储的问题。

           (不论多核,cpu多线程的情况)

           多个进程:在电脑中一般都是存在多个进程的,而CPU却只有一个,time space 的方式来给进程分配固定时间,来运行。

           某个进程只能在轮到自己运行的时候才会被放到CPU上执行,时间一到,就会被自动踢下来,CPU则会执行下一个进程。

                  问题:

                  1、进程谁先谁后的问题

                         进程优先级

                  2、如果进程没有运行完就被踢下来怎么办

                  3、进程造反了怎么办

                         linux结构下进程也是树形结构 --pstree

                         内核管理进程不会直接管理,一般所有进程都由上一级进程直接管理,父子进程概念

                         最大的进程--init,有权限管理所有进程

                         正常情况:

                         1、如何生成子进程

                                写实复制:父进程在需要完成一项工作的时候自己无法完成,则需要生成对应的子进程来完成这项工作,并且把自己的内存空间中的数据复制一份交给子进程,用来存储子进程所运行数据,

                                子进程完成任务以后,入伙关闭

                                       子进程任务完成,交出所有的占用资源,再由进程关闭子进程,这个周期就结束了。

                  4、进程正常结束了怎么办。 --pstree

                        

    进程优先级:

           0-139

                  0-99  守护进程   越大越优先

                  100-139  普通进程   越小越优先

                  普通用户可以转让自己的优先级

                 

           nice值:定义普通进程的优先级,-19  -20  】

           轮了一圈了怎么办?

                  在我们的内存上,会提供一个空间;这个空间会专门用来存放运行过后的进程。

                  当我们的进程运行完成一遍后,这个空间,就会和原有的空间对调;再提供给cpu读取;一直轮换,直到进程运行完成。

    进程数据怎么办?

           1.程序数据

           2.输入数据输出数据

           3.进程元数据

           tack struct 数据结构体;它定义了进程数据的存储格式我们将进程数据存储在tack struct中,在这种结构下,方便CPU快速存储于读取

           物理地址空间--线性地址空间

           进程在运行一段时间后的一些数据,通过线性地址对应的物理地址,存储到内存;MMU就是用来将不连续的物理地址转换为连续的线性地址

                  这些分开的页框的数据又分为两种形式

                         1、链表性数据

                         2、双向

    进程间的通讯原理

           主机内进程通讯

                  single 信号通讯

                  共享内存

           主机间的通讯

                  stream --rpc

                  socket

    进程类型:

           守护进程

           普通进程

           另外一种分类方式:根据占用资源的不同

           占用CPU多进程--后台运行进程

           占用内存多的--前台要显示的进程

    进程的状态

           进程和程序比起来,进程由生命周期

           1、running

           2、slepping

           3、stop

           4、zombie 僵死状态

           5、中断状态

    进程管理的命令

           pstree

                  通过树形结构显示进程关系

                  yum install psmisc -y

                 

           ps

                  查看进程状态--当前运行状态

                  PID  进程ID

                  TTY  终端

                  TIME       进程累计在CPU上运行的时长

                  CMD      启动该进程的命令程序

                  ps的常用组合:

                  ps -aux

                         USER      进程所属用户

                         PID  进程id

                         %CPU      CPU利用率

                         %MEN     内存利用率

                         VSZ 虚拟内存大小

                         RSS  常驻内存空间

                         STAT       进程状态

                                R running

                                S sleeping

                                T stop

                                Z zombie

                                s 代表lead进程

                                + 前端进程

                                < 高优先级进程

                                N 低优先级进程

                                D 表示不可中断

                                W 没有足够的内存可以分配

                                I 表示多线程进程

                         TTY  进程终端

                         TIME       进程启动时间

                         CMD     

                         ps -ef

                                ppid 父进程号

                                C  进程运行在运行哪个cpu上

                         ps -ejH

                                以树形结构先升级进程

                         ps -eo

                                自定义参数格式

                         ps -U

                                查看指定用户所运行的进程

           top

                  与ps相反查看实时状态

                  k -->关闭进程,输入PID即可

                  h -->帮助界面

                  调整top排序:

                         M:根据内存大小进行排序

                         P:根据CPU利用率来排序

                         T:根据CPU使用时长来排序

                        

           htop

                  top的升级版

                 

           vmstat

                  查看虚拟机内存的相关信息

                         进程信息

                         内存信息

                         交换内存信息

                         syste系统IO的相关信息

                         CPU的信息

           pmap

                  报告内存的映射信息

                  pmap pid

                  映射内存空间中物理地址信息和CPU所能识别的线性地址信息

           pidof

                  通过进程id来查看进程号

                  pidof bash

           dstat

                  默认没安装  通过yum install dstat -y安装

     

           kill

                  管理进程

                  kill -l查看信号

                  通过kill发送响应的操作信号

                         1信号 HUP  --让进程重读配置文件,不重启进程

                         2信号 INT  --中断进程、

                         9信号 KILL --强制关闭进程,不去保存进程数据

                         15信号TERM --优雅关闭

                  kill -9 pid 

           pgrep

                  进程过滤

                 

           pkill

                  直接关闭 进程按照UID关闭

           jobs

                  作业:--进程

                  前台:占用了当前的shell界面

                  后台:在后台自动运行的进程

                  fg 回到后台程序

                  COM&  脚本运行的时候

                  bg 将前端送到后台。

  • 相关阅读:
    mvc 在ii7上发布时遇到的问题只解决
    @Html.Raw 显示Html的标签
    补发————grid布局
    补发————DOM与BOM
    web实验博客3.css-position
    web专业课学习及往后方向发展
    bom&dom
    网格代码
    简单用户注册表单
    自我介绍
  • 原文地址:https://www.cnblogs.com/shy13138/p/11458910.html
Copyright © 2011-2022 走看看