首页 > 系统相关 >进程

进程

时间:2023-02-08 20:58:55浏览次数:37  
标签:阻赛 创建 信息 进程 就绪 运行

进程

一、简介:

进程是运行在内存中的程序,是执行程序的一个过程。一个进程有输入、输出、程序和状态。操作系统实现进程是维护一张有着所有进程的表格,该表格采用双向链表实现。进程表格中的每一个项被称为PCB(进程控制块)。进程控制块中存储了描述该进程的所有信息。这些信息包括进程的识别信息,说明信息,现场信息,管理信息。

识别信息:进程的唯一标识,比如进程标识符,标识符可以是数字也可以是字符串

说明信息: 进程的状态、等待原因、程序代码存放地址、进程的数据存放地址

现场信息: 寄存器信息、程序状态字寄存器的信息

管理信息:存放程序的优先数和队列指针。

  操作系统通过对PCB块的管理来管理和控制进程,PCB是进程的实例。

二、进程的创建:

 2.1 创建进程的事件

  1. 系统的初始化
  2. 程序执行创建进程的系统调用
  3. 用户请求创建一个新进程
  4. 批处理作业的初始化

 2.2进程分类: 前台进程、后台进程、守护进程

  1. 前台进程是与用户进性交互的进程
  2. 后台进程是与用户没有特定关系的进程
  3. 守护进程执行某种任务的进程

  操作系统启动的时候会初始化很多的进程,与用户交互的图形界面进程,被称为前台进程;不与用户交互,用于执行某些操作的后台进程;还有一类一直停留在后台的进程为守护进程。

  进程也可以被进程创建。正在运行的进程可以发出系统调用,来创建新的进程。比如一个正在运行的进程A发出了系统调用创建了一个新的进程B,此时A是B的父进程,B是A的子进程。在windows系统中,进程间的关系是平等的,父进程创建子进程的时候,父进程会获得子进程的一个句柄,以此来控制子进程,该句柄可以在进程间相互传递,所以进程间的关系是相等的。在Linux中,进程间的关系并不是平等的,存在着继承关系。当在一个进程A中执行创建进程的系统调用的时候,Linux操作系统的内核会拷贝父进程的PCB(进程控制块,记录了该进程运行的所有信息和描述该进程的信息)。子进程共享父进程的地址空间采用的是写时复制。

  进程可以被用户请求创建,不如点击某个图标或者输入某个指令。
  执行批处理任务的时候,操作系统也会创建一个新的进程来执行该批处理任务。

三、进程的销毁
  进程的销毁大体可分为两类,一类为自愿销毁,一类为非自愿销毁

自愿销毁:正常退出,错误退出

非自愿销毁: 严重错误退出,被其它进程杀死。

四、进程的层次结构

Linux中以init进程为根节点的树结构,windows没有层次结构。

五、进程的状态

三态模型:

就绪、运行、阻赛

关系:

运行->就绪;运行->阻赛;阻赛->就绪;就绪->运行;

运行:进程实际占用CPU

就绪: 进程做好了准备,但没有获取到cpu

阻赛: 进程无法继续运行,或缺少运行时的必要资源。CPU空闲该进程也不能运行

  运行与就绪态的差别在于是否获取到了CPU,而阻赛是整个进程无法进行,需要外部某个事件的发生,才能运行。

  运行->就绪;就绪->运行的转换是需要进程调度程序进行控制。进程调度程序是操作系统的一部份。

标签:阻赛,创建,信息,进程,就绪,运行
From: https://www.cnblogs.com/aoCat/p/17103244.html

相关文章

  • 进程创建
    fork进程创建创建子进程,会复制当前的父进程子进程和父进程运行在分开的内存空间,但是在fork()时两者有相同的内容fork:用于创建子进程#include<sys/types.h>......
  • linux查看进程信息
    top实时查看进程信息,展示进程id,使用内存,占用cpu等信息,可以查看内容占用最多、cpu使用最多的进程,然后再根据进程id查看进程的详细信息。实时更新ps瞬时查看进程情况,ps-e......
  • 进程通信
    进程通信1、什么是进程间通信2、共享存储3、消息传递1)直接通信方式2)间接通信方式4、管道通信知识回顾......
  • 进程间的通信方式(六种)
    目录前言管道消息队列共享内存信号量信号Socket参考文章:https://blog.csdn.net/qq_34827674/article/details/107678226前言前提知识:每个进程都有自己的用户空间,而......
  • 进程基础知识
    程序和进程程序:(文件)进程:(资源)并行与并发并行:同一时刻,有多条指令在多个处理器上同时执行并发:在同一时刻只能有一条指令执行,但多个进程指令被快速轮换,使得宏观上具有......
  • 进程与线程
    一、进程与线程的概念;           进程的解释:     二、进程和线程之间的关系:         谷歌浏览器的架构图:   ......
  • Linux 多进程程序调试实例(七) -- 套接字
    套接字套接字介绍socket套接字是支持不同主机不同进程之间的通信套接字函数socket套接字函数介绍套接字编程在服务端,套接字编程顺序为套接字创建(socket),套接......
  • jmap查看java进程占用的数据库连接数
    https://codeleading.com/article/62714982205/存活的连接jmap-histo:live96984|grepcom.mysql.jdbc.JDBC4Connection总共的连接对象jmap-histo96984|grepc......
  • Linux进程服务管理
    在Linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。每个进程都......
  • Java进程CPU飙升到800%
    最近遇到springboot项目部署cup过高问题,首先环境是实现ApplicationRunner类在run中使用到了线程池;问题定位步骤:在liunx命令窗口执行:1)、首先通过top指令查看当前占用CPU......