欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux进程基础

程序员文章站 2023-11-13 12:45:46
操作系统基础 调用:kernel内核通过给应用程序听歌system call的发那个苏来提供硬件资源; 注意应用程序也包括库文件 进程运行管理 一个进程:首先我们需要把硬盘里的程序代码加载到内存(复制),再将这端程序放到CPU上运算,此时,这段程序就回去调用(也会自动生成)很多进程,由这些进程来完成 ......

操作系统基础

       调用: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安装

 Linux进程基础

       kill

              管理进程

              kill -l查看信号

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

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

                     2信号 int  --中断进程、

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

                     15信号term --优雅关闭

              kill -9 pid 

       pgrep

              进程过滤

             

       pkill

              直接关闭 进程按照uid关闭

       jobs

              作业:--进程

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

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

              fg 回到后台程序

              com&  脚本运行的时候

              bg 将前端送到后台。