首页 > 系统相关 >进程管理

进程管理

时间:2024-08-31 18:48:00浏览次数:5  
标签:操作系统 管理 PID 后台 前台 进程 运行

详细点这个---[[5.进线程间通信]]

1.进程基本概念

  • 进程控制块PCB:操作系统使用进程控制块(PCB)来记录进程的所有信息。PCB 包含进程 ID(PID)、进程状态、寄存器内容、内存地址空间、打开的文件描述符、调度信息等
    • PID:进程唯一的标识符,是操作系统把PID放在进程的PCB中
  • 进程:运行中的程序就是进程(process)
  • 进程ID:系统会给每一个进程分配一个数字进行标记,称为进程ID(PID)
  • 父进程:每个进程都有一个父进程(创建它的进程),并可以创建一个或多个子进程
    在shell中输入命令运行,则shell就是父进程,运行的程序就是shell的子进程。(守护进程除外,守护进程的父进程是init[进程ID为1])

2.查看进程状态STAT

ps -ef 可以看见PPID
![[Pasted image 20240824101914.png|400]]
ps -aux 可以看见STAT
![[Pasted image 20240824102817.png|400]]
关于进程状态:
![[Pasted image 20240824103545.png|500]]

进程退出的时候,它是不会立即释放空间的,它的PCB会保存一段时间让父进程或者操作系统读取,让父进程或操作系统知道这个进程即将退出了,然后父进程或者操作系统释放掉进程占用的资源和空间一般情况下,清理进程资源空间的操作都是父进程
⭕️ 僵尸进程:就是在进程退出的时候,依然会在内存里面待一段时间,这个时间就是专门让它的父进程来处理的,如果父进程没有能力把这个进程完整地释放掉,造成这个进程地尸体一直在内存里面,那现在这个进程就是僵尸进程
- 造成僵尸进程的原因有:一个是操作系统不稳定,一个是代码写的烂,一个是操作习惯不好

⭕️ 孤儿进程:当父进程衍生出多个子进程后,父进程先没了只留下了子进程这些子进程就叫孤儿进程
直接杀死父进程,孤儿进程的变化就是:PPID变化了,变成了 1
- 再说一遍 PID: PID是操作系统加载进程时,给进程占用的内存空间的一个标识符,这个标识符就是PID 操作系统是计算机开机的时候加载的,所以操作系统的标识符是1,就是说操作系统的 PID 为1
- 所以杀死父进程,导致了子进程变成孤儿进程,操作系统大善人,去领养了这个孤儿子进程,孤儿进程的父进程是操作系统,导致子进程的 PPID 变成1 --如果这个子进程一直没人管,会一直占用内存空间,如果它不依赖任何进程存活,我们就无法控制它,会导致内存泄漏

3.进程常用命令

top 动态实时查看进程的详细信息

4.进程管理

kill 指令
  • kill PID 杀掉进程
  • kill -9 [PID] 通过kill去杀掉进程
    -9 在这里是一个控制信号,意思是强制中断一个进程的执行,从内存中删除这个进程
    这个信号并不会被进程捕捉,就是意思一下
    ![[Pasted image 20240824180226.png|250]]
    某些进程的状态会有个+号,有无+号是为了区分前台后台,是给操作系统看的
  • kill -l 小写l,查看所有的信号
    注意:kill 是专门针对进程的 PID 的,每次使用记得用 ps 来查看要操作的进程的 PID

5.前台后台任务

  • 1.转后台运行 -时间长的会占用前台的
    在命令后面加入&便可以直接使任务运行初直接在后台运行

& - jobs - fg编号
最开始在后台执行 然后查看后台任务 然后转前台执行

  • 2.转后台暂停
    在运行中输入Ctrl+Z会把当前任务转至后台暂停。此时使用jobs可以显示后台的任务,每个任务都有一个编号
    bg [ 后台任务编号 ]可以使任务在后台继续执行
    fg [ 后台任务编号 ]把后台的任务转至前台执行

ctrl z - jobs - bg编号 - fg编号
运行暂停转后台,查看后台任务,后台继续执行(状态变成 &),转前台执行

  • 任务结束需要在前台,才能ctrl c结束

注意

  • 如果转后台的东西会输出,一定要先重定向一下输出,不然还是会占用前台资源
  • 交互式任务,不能转后台
    前台
    举个例子,我们输入指令vim,此时会进入vim的操作平台,这时我们就处于前台状态。 而像我们在bash下执行我们的程序时,比如执行不断地打印,这些打印情况等我们都可以看到,这就是前台进程。就像Windows下的qq,此时我打开qq,并且处在它的界面上使用,此时qq就是一个前台进程。
    后台
    ​ 而后台就是指任务可以自动执行,不用我们人为干预,我们也无法使用ctrl c中止。

6.[[进程通信]]

7.进程优先级

ps -lA 查看进程优先级
寻找PRI关键字,下面的数字就是进程优先级,这个PRI值越低,据说明进程的优先级别越高,必须通过 nice值去调整,nice值就是PRI之后的NI
新的 PRI = 进程默认PRI + nice 值,这个nice值有正有负
调整优先级
nice -n number PS 还没运行的进程
renice [number][PID] number是想要的nice值,PID就是你要操作的进程

NI范围是-20~19。数值越大优先级越低(人越好,越不容易占有自己想要的,很讽刺对吧)
普通用户调整NI值的范围是0~19,而且只能调整自己的进程。
普通用户只能调高NI值,而不能降低。如原本NI值为0,则只能调整为大于0。
只有root用户才能设定进程NI值为负值,而且可以调整任何用户的进程。

8.进程的四个重要概念

  • 竞争性:因为cpu资源优先,所以进程难免会存在竞争行为,具体体现在优先级上。
  • 独立性:进程运行期间,各个进程是不会相互干扰的,即使是父子进程。
  • 并行多个cpu同时处理多个进程的行为叫做并行,虽然CPU只有1个,但是CPU处理指令的速率是纳秒级别的
  • 并发:在一段时间内,每个进程都可以被cpu处理一部分指令,这种行为称为并发。
    关于并发:
    时间片:每一次运行能被CPU处理多久
    ⭕️ 首先 CPU 处理进程不是一次性被cpu处理完的,是分批次处理的。假设有三个进程 ABC 都在运行队列之中,每个进程的时间片都是10毫秒,那么现在 CPU 处理进程 A 的时候,处理10毫秒,不管进程A剩下多少命令没有被执行,都会直接把进程A放到运行队列最后,然后去执行下一个指令,而这个切换进程的过程就叫进程切换
    ⭕️ 关于进程切换的时候: 每一个CPU都有一套寄存器,有一些关键寄存器

标签:操作系统,管理,PID,后台,前台,进程,运行
From: https://www.cnblogs.com/bubble-o0oO/p/18386405

相关文章

  • 【Linux】Makefile项目管理工具(第八篇)
    目录makefile1.0makefile2.0makefile3.0Makefile可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。其中包含了哪些文件需要编译,哪些文件不需要编译,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重建等等。编译整个工程需要涉及到的,在......
  • 基于Web教师个人成果管理系统
    系统包含:源码+论文所用技术:SpringBoot+Vue+SSM+Mybatis+Mysql免费提供给大家参考或者学习,获取资料请私聊我目录第1章绪论 11.1选题动因 11.2目的和意义 11.3论文结构安排 2第2章开发环境与技术 32.1MYSQL数据库 32.2Tomcat介绍 32.3vue技术 42.4Sp......
  • 医院设备管理系统的设计与实现 毕业设计-附源码39673
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,医院当然也不能排除在外。医院设备管理系统是以实际运用为开发背景,运用软件工程开发方法,采用SSM技术构建的一个管理系统。整个开发过程首先对软件系统进行......
  • 进程管理
    一、解析进程和线程的区别?解析进程的结构。进程与线程的区别:定义:进程:进程是操作系统进行资源分配和调度的基本单位。它是正在执行的程序的实例,拥有独立的地址空间和系统资源。线程:线程是进程中的一个实体,是CPU调度和执行的基本单位。线程自身不拥有系统资源,只拥有一点在运行......
  • 基于asp.net的小区物业管理系统附完整源码
    今天给大家分享一个小区物业管理系统,希望对大家的学习有所帮助1.主要功能该系统的主要功能包含三个角色,管理员、员工、业主,主要功能包含用户管理、车位管理、业主管理、数据库备份、个人中心、密码修改、报修管理、物业费管理、用户注册登录等等模块。2.开发工具及其......
  • 【Material-UI】Switches with FormGroup:如何有效管理多选控件
    文章目录一、Switch组件与FormGroup的基本概述1.Switch组件简介2.FormGroup组件的作用二、SwitcheswithFormGroup的应用场景三、如何实现SwitcheswithFormGroup1.代码详解2.事件处理四、使用FormGroup的注意事项1.确保控件关联性2.多选情况下的替代......
  • 进程间的通信(无名管道)
    进程间通信IPCInterProcessCommunication1.进程间通信方式1.早期的进程间通信:无名管道(pipe)、有名管道(fifo)、信号(signal)2.systemVPIC:共享内存(sharememory)、信号灯集(semaphore)、消息队列(messagequeue)3.BSD:套接字(socket)2.无名管道2.1特点只......
  • [开题报告]flask框架的殡仪馆信息管理系统设计与实现(python+程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着社会的进步和人口老龄化的加剧,殡葬服务行业面临着前所未有的挑战与机遇。传统的手工记录与管理方式已难以满足现代殡仪馆高效、规范、......
  • 进程(接口、守护进程)
    进程process1.什么是进程进程和程序的区别1.1概念程序:编译好的可执行文件存放在磁盘上的指令和数据的有序集合(文件)程序是静态的,没有任何执行的概念。进程:一个独立的可调度的任务执行一个程序分配资源的总称进程是程序执行的一次过程进程是动态的,包括创建、调......
  • [开题报告]flask框架春荣公司人事管理系统设计与实现(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今快速发展的商业环境中,人力资源管理已成为企业核心竞争力的重要组成部分。随着企业规模的扩大和员工数量的增加,传统的人事管理方式已......