进程的相关概念

在操作系统系统里,进程是一个非常重要的概念。

一、什么是进程呢?

按我的理解,通俗的来说进程是运行起来的程序。唯一标示进程的是进程描述符(PID)。

那么先来了解一下进程和程序的区别:

  1. 程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。
  2. 程序和进程无一一对应关系。一个程序可以由多个进程公用;另一一方面,一个进程在活动中有可顺序地执行若干个程序

二、进程的分类

1)根据在linux不同模式下运行分为:

核心态:这类进程运行在内核模式

用户态:这类进程工作在用户模式

2)按照进程的状态可分为:

运行态:running, 正在运行的进程

可中断睡眠态:进程处于睡眠状态,但是可以被中断

不可中断的睡眠态:进程处于睡眠状态,但是不可以被中断

停止态:stoped 不会被内核调度

僵死态:zombie 产生的原因是进程结束后,它的父进程没有wait它,所导致的。

3)按照操作的密集程度

CPU密集型:进程在运行时,占用CPU时间较多的进程。

I/O密集型:进程在运行时,占用I/O时间较多的进程。

通常情况下,I/O密集型的优先级要高于CPU密集型。

三、进程的优先级

进程的有优先级,是用0-139数字来表示的,数字优先级从小到大依次是:0-99,139-100。

优先级又分为2类:

实时优先级:0-99,是由内核维护的

静态优先级:100-139,可以使用nice来调整,nice值的取值范围是[-20,19),分别对应100到139。nice默认值是0。

nice值:-20~19:默认0

注意:只有管理员才能使用负整数的nice值,以提升进程的优先级,而普通用户只能使用正整数的nice值,以降低进程的优先级


四、进程的创建和终止

除了init进程之外,剩下其他的各个进程都是由其父进程创建的; 由fork()系统调用来实现;

每个父进程通过fork()系统调用来复制自身的数据给子进程使用;这种复制方式不是理解复制,而是写时复制(CoW);;

任何父进程创建的子进程都必须由父进程亲自销毁,任何进程的父子关系都保存在task struct中;

五、父子进程的关系
    1.子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程

2.在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。
   3.父进程终止子进程自然终止。
    
六、前台进程和后台进程    
前台进程:
  在shell提示处理打入命令后,创建一个子进程,运行命令,Shell等待命令退出,然后返回到对用户给出提示符。这条命令与Shell异步运行,即在前台运行,用户在它完成之前不能执行别一个命令

很简单,我们在执行这个查找命令时,无法进行其它操作,这个查找就属于前台进程

后台进程:

在Shell提示处打入命令,若后随一个&,Shell创建子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与Shell同步运行,即在后台运行。"后台进程必须是非交互式的" ;

时间: 2024-08-01 19:12:56

进程的相关概念的相关文章

linux进程管理相关概念

我们知道,不管是在繁忙的服务器还是比较空闲的pc机上,系统都不只是运行一个进程,在linux上,当用户输入命令,在程序被载入内存执行之后我们称之为进程. 计算机的核心组件,cpu和内存,cpu由运算器和控制器组成,cpu只能从内存读入数据进行计算,那么在linux系统上,当用户输入一个命令,这条命令所对应的程序代码就会被装载进内存,然后由cpu执行,正是因为同时有多个进程需要执行而cpu只有一颗的情况下,在众多进程之间完成切换就显得比较重要. 我们知道,cpu提供的计算能力是按照时间的流逝来计算

进程与进程描述符(task_struct)

一. 进程 进程(Process) 计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当代面向线程设计的计算机结构中,进程是线程的容器.程序是指令.数据及其组织形式的描述,进程是程序的实体. --------------------------------------------------------------- 释义:一段程序的执行过程 特征:动态.独立.异步.并发 结构特征

【linux_笔记】Linux进程管理(ps)

学习资源来自:www.magedu.com 学习记录过程难免出现错误,示例仅供参考,大神请无视.. 进程管理相关命令:    ps:Process State(进程状态)        SysV风格: -elF            常用命令格式:                ps -e                    ps -el | head                 ps -elF | head                ps -eF    (常用)          

Linux 进程及作业管理

概述: 一.进程的相关概念: 1.相关定义: 内核的功用:   进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等: 通俗的来说进程是运行起来的程序.唯一标识进程的是进程描述符(PID),在linux内核中是通过task_struck和task_list来定义和管理进程的 : 进程 Process:  运行中的程序的一个副本,是被载入内存的一个指令集合:   ˙进程ID(Process ID,PID)号码被用来标记各个进程;   ˙UID.GID.和SELinux语境决定对文件系统的存

信管备考知识点精讲·操作系统之进程与线程

信息系统管理工程师是全国计算机技术与软件专业技术资格考试(简称计算机软件资格考试)中的一个中级考试.信息系统管理工程师考试要求考生掌握计算机系统.操作系统.数据库.计算机网络.信息化和信息系统等相关知识内容.信息系统管理工程师考试要求掌握的内容宽且多,备考期间哪些内容是需要重点掌握的呢?下面跟着希赛软考学院来学习信息系统管理工程师操作系统章节有关进程与线程需要重点掌握的内容. 信息系统管理工程师备考知识点精讲之进程与线程  1.进程 (1)进程概念 进程是程序在一个数据集合上运行的过程,它是系统

四大命令助你轻松管理Linux进程

在Linux操作系统中,进程应该是重中之重.很多攻击的发动.黑客的入侵都是通过进程来实现的,以至于很多软件的BUG.系统的故障.硬件的检测等等,我们都可以通过进程的管理来判断.因为,进程管理对Linux运维工程师来说,至关重要. 1. 进程的相关概念 1.1 进程是什么?     进程是运行中的程序的一个副本:存在生命周期,创建开始运行,运行结束退出 通俗来讲,进程就是运行中的程序 1.2 进程创建 进程都是由其父进程创建,进程间存在着父子关系 这里以CentOS 6为例,其父进程为 init,

Linux系统编程——进程管理

引言: 在Linux的内核的五大组成模块中,进程管理模块时非常重要的一部分,它虽然不像内存管理.虚拟文件系统等模块那样复杂,也不像进程间通信模块那样条理化,但作为五大内核模块之一,进程管理对我们理解内核的运作.对于我们以后的编程非常重要.同时,作为五大组成模块中的核心模块,它与其他四个模块都有联系.下面就对进程模块进行想写的介绍,首先要了解进程及其相关的概念.其次介绍进程的创建.切换.撤销等基本操作.除此之外,还给出了Linux内核是如何对进程进行调度管理的.      一.进程及其相关概念 进

Linux内核之进程管理

引言: 在Linux的内核的五大组成模块中,进程管理模块时非常重要的一部分,它虽然不像内存管理.虚拟文件系统等模块那样复杂,也不像进程间通信模块那样条理化,但作为五大内核模块之一,进程管理对我们理解内核的运作.对于我们以后的编程非常重要.同时,作为五大组成模块中的核心模块,它与其他四个模块都有联系.下面就对进程模块进行想写的介绍,首先要了解进程及其相关的概念.其次介绍进程的创建.切换.撤销等基本操作.除此之外,还给出了Linux内核是如何对进程进行调度管理的.      一.进程及其相关概念 进

系统调度—‘线程’

在前面的博文中讨论了进程的相关概念,这里重新引入一下'线程'的概念.进程有各自独立的地址空间,所以进程间的通信是比较麻烦的,只能借助管道等才能够实现进程间通信.而linux系统中,多个线程共享进程的地址空间(也可以说是进程是一个独占资源的线程),所以线程之间的通信是非常方便的. 注:以下只针对linux系统. ★进程与线程的比较      在linux系统中,线程和进程之间的区分不是特别明显,但是它们之间还是有一些区别的: (1)进程是系统资源分配的基本单位,线程是系统调度的基本单位. (2)每