进程概念

1.进程

狭义定义:进程是正在运行的程序的实例

广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

进程是由进程控制块、程序段、数据段三部分组成

2.程序

  程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。

  进程和程序区别      1.程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。

3.程序和进程无一一对应关系。一个程序可以由多个时程公用;另一一方面,一个进程在活动中有可顺序地执行若干个程序  

 4.线程

     进程和线程关系

通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。

  常用进程常在缓存中,不常用的在内存中。

5.父子进程的关系

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

2.在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。

3.父进程终止子进程自然终止。

4进程状态

  task_struct中的state描述进程的当前状态。进程的状态一共有5种,而进程必然处于其中一种状态:

  TASK_RUNNING(运行)——进程是可执行的,它或者正在执行,或者在运行队列中等待执行。这是进程在用户空间中执行唯一可能的状态;也可以应用到内核空间中正在执行的进程。

  2)TASK_INTERRUPTIBLE(可中断)——进程正在睡眠(也就是说它被阻塞)等待某些条件的达成。一旦这些条件达成,内核就会把进程状态设置为运行,处于此状态的进程也会因为接收到信号而提前被唤醒并投入运行。

  3)TASK_UNINTERRUPTIBLE(不可中断)——除了不会因为接收到信号而被唤醒从而投入运行外,这个状态与可打断状态相同。这个状态通常在进程必须在等待时不受干扰或等待事件很快就会发生时出现。由于处于此状态的任务对信号不作响应,所以较之可中断状态,使用得较少。

  4)TASK_ZOMBIE(僵死)——该进程已经结束了,但是其父进程还没有调用wait4()系统调用。为了父进程能够获知它的消息,子进程的进程描述符仍然被保留着。一旦父进程调用了wait4(),进程描述符就会被释放。

  5)TASK_STOPPED(停止)——进程停止执行,进程没有投入运行也不能投入运行。通常这种状态发生在接收到SIGSTOP,SIGTSTP,SIGTTIN,SIGTTOU等信号的时候。此外,在调试期间接收到任何信号,都会使进程进入这种状态。

  需要调整进程的状态,最好使用set_task_state(task, state)函数,在必要的时候,它会设置内存屏障来强制其他处理器作重新排序(SMP)。

  进程的各个状态之间的转化构成了进程的整个生命周期

时间: 2024-10-11 13:20:45

进程概念的相关文章

Linux进程概念与管理

一.Linux进程概念 1.进程:Process,是运行中的程序的一个副本,有生命周期,都由其父进程创建 Linux内核存储进程信息的固定格式:taskstruct 多个任务的的taskstruct组件的链表:task list 2.进程优先级:0-139 0:一般不使用 1-99:实时优先级:数字越大优先级越高,系统自动安排 100-139:静态优先级:数字越小优先级越高,可手动更改 3.Nice值:-20至19,对应于100到139 普通用户只能将自己的优先级调低,root用户可以随意调制

僵尸进程和孤儿进程----概念

这里仅给出僵尸进程和孤儿进程的概念.来源<深入了解计算机系统(原书第3版)>和网上的博客,下面会给出博客来源. 前言:回收子进程 当一个进程由于某种原因终止时,内核并不是立即把它从系统中清除.相反,进程被保持在一种已终止的状态中,直到被它的父进程回收(reaped).当父进程回收已终止的子进程时,内核将子进程的退出状态传递给父进程,然后抛弃已终止的进程.从此时开始,该进程就不存在了. 1.基本概念 僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitp

线程,进程概念

当多个客户端访问服务端的时候,每个客户端都会对服务端说:’嗨,我想连接你‘.服务端的sorcket通过while循环,一直监听着是否有client请求连接,当有请求(一个或者多个)连接过来的时候:就会分配(一个或者多个)进程或者线程给client,并保持连接,进行通话. 线程是应用程序的最小单位, #!/usr/bin/env python # -*- coding:utf-8 -*- import threading import time def show(arg): time.sleep(

守护进程 概念

1.概念 守护进程(daemon)是指在UNIX或其他多任务操作系统中在后台执行的电脑程序,并不会接受电脑用户的直接操控.此类程序会被以进程的形式初始化.守护进程程序的名称通常以字母“d”结尾:例如,syslogd就是指管理系统日志的守护进程. 通常,守护进程没有任何存在的父进程(即PPID=1),且在UNIX系统进程层级中直接位于init之下.守护进程程序通常通过如下方法使自己成为守护进程:对一个子进程调用fork,然后使其父进程立即终止,使得这个子进程能在init下运行.这种方法通常被称为“

进程概念总结

最近刚刚学习多进程,对于多进程的概念我自己总结一下 每一个程序启动后都会在系统中产生一个进程来处理这个程序 但是一个进程运行速度毕竟有限,在程序中有一些比较耗时的操作程序就只能是卡死的状态,为了解决这个问题,就出现了多进程.让耗时的工作创建一个子进程让子进程去工作,主进程运行自己的.但子进程多了也会出现问题:1.孤儿进程2.僵尸进程 但是使用多进程的时候又出现了进程之间数据共享的问题,这时候进程间的通信就需要解决.目前知道的解决办法是用:1.文件2.管道3.队列4.共享内存以上数据共享类型的区别

Python-操作系统、进程概念

操作系统 多道操作系统 第一次提出了多个程序可以同时在计算机中计算 1.遇到IO就让出cpu 2.把cpu让给其他程序,让其他程序能够使用cpu 3.cpu的让出这件事要占用时间 4.两个程序来回在cpu上切换,不会乱 每个程序有独立的内存空间 每个程序在切换的前后会把当前的状态记录下来 cpu计算和不计算(IO)的操作 IO操作不占cpu IO操作(网络操作  文件操作):输入输出(相对内存) 阻塞:sleep/input/recv/accept/recvfrom/是不需要cpu参与的 对文件

进程(一)—— 进程概念

进程和线程 进程的定义 进程是指一个具有一定独立功能的程序 在一个 数据集合 上的一次 动态执行 过程 进程的组成 进程包含了正在运行的一个程序的所有状态信息 代码 数据 状态寄存器 CPU状态CR0, 指令指针IP 通用寄存器 AX,BX, CX... 进程占用系统资源 打开文件.已分配内存.... 进程的特点 动态性 并发性 进程可以被独立调度并占用处理机运行 独立性 制约性 因访问共享数据/资源或进程间同步而产生制约 进程与程序的联系 进程是操作系统处于执行状态程序的抽象 程序 = 文件(

线程、进程 概念理解

1 .什么是线程? 线程是指程序在执行过程中,能够执行程序代码的一个执行单元,在 Java 语言中,线程有四种状态:运行,就绪,挂起,结束. 2 .线程与进程的区别? 进程是一段正在运行的程序,而线程有时也被称为轻量级进程,它是进程的执行单元,一个进程可以拥有多个线程,各个线程之间共享程序的内存空间,但是,各个线程拥有自己的栈空间. 3 .为什么使用多线程? ( 1 ).使用多线程可以减少程序的响应时间.单线程如果遇到等待或阻塞,将会导致程序不响应鼠标键盘等操作,使用多线程可以解决此问题,增强程

3. 进程概念

最理想的多任务模型 进程的数据结构:PCB 进程状态迁移示例 PCB示例 进程调度队列,动态反应操作系统全貌 Job queue 等待进入计算机系统的待处理任务 Ready queue 驻留内存,准备就绪,等待CPU Device queue 等待I/O设备的进程 进程一经创建,即在这些队列之间迁移,直至被终止 进程上下文切换 CPU任何时候只能为一个进程服务 当CPU转向为另一个进程服务时,由于CPU内部资源有限,它必须保存原有进程的状态,装入待服务进程的状态,也即"进程上下文切换"