首页 > 系统相关 >进程

进程

时间:2023-03-15 21:22:44浏览次数:29  
标签:就绪 --- 线程 进程 执行 CPU

进程具有三种基本状态:        

1、就绪状态。某些进程“万事俱备”(必要资源),只差CPU。(就绪队列)      

 2、执行状态。某进程占有CPU并在CPU上执行其程序。      

 3、阻塞状态。某些进程由于某种原因不能继续运行下去,等待处 理问题。也称为等待状态或封锁状态。如:请求I/O。(多个等待队列)

 

 

三种状态互相切换的原因:

运行--->就绪:1. 时间片用完了

                        2.被更高优先级的进程抢占,被迫让出CPU

 就绪--->阻塞:不可能发生,因为就绪根本就没运行就谈不上阻塞  。

 阻塞--->运行:不可能发生,运行的时候先要就绪才行,不能跨状态。

就绪--->运行:CPU本该执行的时间片跑完了,就转到就绪态的进程里面找合适的运行(给CPU)

运行--->阻塞:发生了等待事件。比如I/O请求。

阻塞--->就绪:所等待的事情已经发生,先进入就绪态。

 

 

为什么会有线程?

每个进程都有自己的地址空间,即进程空间,在网络或多用户换机下,一个服务器通常需要接收大量不确定数量用户的并发请求,为每一个请求都创建一个进程显然行不通(系统开销大响应用户请求效率低),因此操作系统中线程概念被引进。
线程的执行过程是线性的,尽管中间会发生中断或者暂停,但是进程所拥有的资源只为改线状执行过程服务,一旦发生线程切换,这些资源需要被保护起来。
进程分为单线程进程和多线程进程,单线程进程宏观来看也是线性执行过程,微观上只有单一的执行过程。多线程进程宏观是线性的,微观上多个执行操作。
线程的改变只代表CPU的执行过程的改变,而没有发生进程所拥有的资源的变化。

 

 

进程线程的区别:

(1)地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。

(2)资源拥有:同一进程内的线程共享本进程的资源如内存、I/O、cpu等,但是进程之间的资源是独立的。

(3)一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。

(4)进程切换时,消耗的资源大,效率高。所以涉及到频繁的切换时,使用线程要好于进程。同样如果要求同时进行并且又要共享某些变量的并发操作,只能用线程不能用进程。

(5)执行过程:每个独立的进程程有一个程序运行的入口、顺序执行序列和程序入口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

(6)线程是处理器调度的基本单位,但是进程不是。

(7)两者均可并发执行。

标签:就绪,---,线程,进程,执行,CPU
From: https://www.cnblogs.com/Relliu/p/17220090.html

相关文章

  • MIT6.828_进程切换和进程调度
    MIT6.828_JOS进程切换进程状态JOS共有5种进程状态:enum{ ENV_FREE=0, ENV_DYING, ENV_RUNNABLE, ENV_RUNNING, ENV_NOT_RUNNABLE}我个人觉得ENV_FREE这个状态......
  • 【docker系列】容器自启动与守护进程停止后容器保活
    本文为大家介绍容器自启动以及docker守护进程挂掉或者docker升级的情况下,如何保证容器服务的正常运行。主要包含三个部分内容文章目录一、守护进程开机自启二、......
  • Linux进程通信 | 管道与FIFO
    Linux进程间通信通常使用的方式有很多种,其中比较常用的包括管道(pipe)和FIFO(命名管道)。本文将介绍这两种通信方式的基本概念,并用C语言编写示例代码,来说明如何在两个进程之间......
  • python入门学习-3.多线程、多进程、网络通信
    进程和线程多任务线程是最小的执行单元,而进程由至少一个线程组成。多进程Linux操作系统提供了一个fork()系统调用,子进程返回0,父进程返回子进程的ID。调用getpid()可以......
  • 地铁线路查询系统课上进程。
    本次课老师布置了地铁查询系统的工作任务,使用Web编程完成。 首先我与我的伙伴遇到的问题就是数据库字段怎么来设计,这都为后期数据库的查询提供便利。  我与团队其他......
  • mysql 有守护进程导致无法kill停止
    现象:停止mysqld服务时,发现kill进程后,过一段时间服务会自动重启。查看发现是守护进程导致可以试下以下办法方式一:使用service停止:servicemysqldstop方式二:......
  • Linux进程的创建与销毁
    Linux操作系统是一种多任务、多用户的操作系统,这意味着它可以同时运行多个进程,每个进程都可以执行不同的任务。在本文中,我们将介绍如何在Linux系统中创建和销毁进程。进程......
  • Linux进程与线程的基本概念及区别
    前言假设你正在玩一款在线多人游戏,在游戏中,有多个角色需要进行不同的操作,例如攻击、移动、释放技能等等。接下来,我们用玩游戏的例子,来解释进程和和线程的概念,以及进程和......
  • Linux查看进程的方法
    第一种:ps-auxps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪......
  • 在 Linux 中如何查找父进程 PPID?
    导读内核创建的进程称为“父进程”。从父进程派生或产生的进程称为“子进程”。父进程可能由多个子进程组成,每个子进程都具有唯一的PID(进程ID)但共享相同的PPID。......