首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux 操作系统进程调度(上) -- 进程调度基本概念

引言 操作系统中,每时每刻都有着许许多多进程在执行着,即便是现在最为强大多核心 CPU,同时能够执行任务数量也是相当有限,那么,在这样资源有限场景下,这么多进程如何来调度,哪些进程更重要哪些进程执行可以稍微暂缓呢...在 Linux 操作系统中,系统会为每个进程打一个分,这个分就是 PR 值,它是 Priority 前两个字母。...通过 PR 值范围,linux 换分出了两类进程: 实时进程 -- PR 值在 0 到 99 之间,PR 值越大,优先级越高; 普通进程 -- PR 值在 100 到 139 之间,PR 值越小,优先级越高...但有时,用户可能会不认可操作系统优先级数值,而是想要去手动调整进程优先级。此时,如果让用户直接干预 PR 值,那风险就显得很大。Linux 为用户层设计了一个 Nice 值,翻译为“谦让值”。...结语 本文,我们从操作系统整体层面,了解了操作系统进程调度基本概念和设计思想,但我们尚未触及核心部分,到底 linux 系统中调度器是如何设计,又有着怎样历史沿革,出现了哪些算法?

1.1K10

进程基本概念

于是就引入了一个概念:PCB PCB 就是进程控制块,它用来描述进程各种信息。 进程实体由 PCB、程序段、数据段组成。 我们所说创建一个进程其实就是创建一个 PCB。...PCB 是进程存在唯一标志。 注意进程进程实体区别:进程是程序一次执行过程,是动态,而进程实体是静态进程标识符 PID 是进程创建时系统自动分配唯一 ID。...和进程管理相关信息都保存在 PCB 中。...进程状态 进程有 3 种状态: 在单核处理机下,每一时刻最多只有一个进程处于运行态; 进程状态切换 由 阻塞态 到 就绪态 是一种被动行为,不是进程自己能控制。...消息传递:进程数据交换以 格式化消息 (如报文)为单位,进程通过操作系统提供 “发送消息、接收消息” 两个原语进行数据交换。

36020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    进程基本概念解读

    什么是进程 对于进程定义,从不同角度可以有不同定义,其中较典型定义有: (1) 进程是程序一次执行。 (2) 进程是一个程序及其数据在处理机上顺序执行时所发生活动。...OS管理这些数据结构一般分为以下四类:内存表、设备表、文件表和用于进程管理进程表,通常进程表又被称为进程控制块PCB。 进程控制块PCB作用 (1) 作为独立运行基本单位标志。...进程控制块中信息 在进程控制块中主要包括四部分信息: 1)进程标识符 进程标识符用于唯一地标识一个进程。...3)进程调度信息 在OS进行调度时,必须了解进程状态及有关进程调度信息,这些信息包括: ① 进程状态,指明进程的当前状态,它是作为进程调度和对换时依据; ② 进程优先级,是用于描述进程使用处理机优先级别的一个整数...,优先级高进程应优先获得处理机; ③ 进程调度所需其它信息,它们与所采用进程调度算法有关,比如,进程已等待CPU时间总和、进程已执行时间总和等; ④ 事件,是指进程由执行状态转变为阻塞状态所等待发生事件

    28730

    C语言Linux系统编程进程基本概念

    2.进程体系: 每一个进程都有一个唯一正整数标识,即进程ID(pid).第一个进程pid是1,接下来每一个进程接受一个新唯一pid....在linux中,进程有一个严格层次结构,这就是广为人知进程树。进程树以第一个进程,也就是init进程为根。新进程通过fork()系统调用创建。...linux内核实现了大约30个信号,每一个信号由一个数字常亮和文本名表示。除了SIGKILL(进程中断)和SIGSTOP(进程停止)外,进程能够根据接收到信号进行控制。...4.进程间通讯 允许进程间交换信息和通知彼此所发生事件是操作系统最重要工作之一。linux内核实现了传统unix进程间通讯(IPC)机制。...linux支持进程间通讯机制包括管道、命名管道、信号量、消息队列、共享内存、快速用户空间互斥体

    1.2K30

    Linux进程——Linux进程概念(PCB理解)

    前言:在了解完冯诺依曼体系结构和操作系统之后,我们进入了Linux下一篇章Linux进程,但在学习Linux进程之前,一定要阅读理解上一篇内容,理解“先描述,再组织”才能更好理解进程含义。...Linux进程学习基础 本篇主要内容: 进程概念 通过系统调用获取进程标示符 1....进程概念 在学习进程之前,大家对进程肯定初步了解,那么今天我们来深入了解一下 基本概念: 课本概念:程序一个执行实例,正在执行程序等 内核观点:担当分配系统资源(CPU时间,内存)实体。...课本上称之为PCB(process control block),Linux操作系统下PCB是: task_struct 1.2 CPU对于进程列表处理 在CPU对进程列表进行处理时,PCB中数据有时不会被...:ps ajx | head -1 && ps ajx | grep 可执行程序 2.2 终止进程 在我们刚接触Linux时,通常按CTRL+c可以结束进程,现在在学习Linux进程时,还有一种方法可以杀死进程

    21310

    Linux进程——Linux下常见进程状态

    本篇主要内容: 操作系统中进程状态 Linux进程状态 在开始之前,我们先来简单了解以下进程状态 进程本质就是PCB中一个变量!!! 所谓状态变化,本质就是修改整形变量!!!...Linux进程状态 下面是一段库中找状态定义: static const char * const task_state_array[] = { "R (running)", /* 0 */ "..."T (stopped)", /* 4 */ "t (tracing stop)", /* 8 */ "X (dead)", /* 16 */ "Z (zombie)", /* 32 */ }; Linux...此时,恰好系统内内存资源已经严重不足了,系统压力太大,Linux在是在没办法时候,会通过杀掉进程,节省资源,来不及进程反应直接被系统 “干掉” 。...总结 在了解Linux进程分类时,我们通常是先了解操作系统进程,因为二者有一定联系,了解操作系统能更好理解进程在操作系统中运行关系。进程状态在进程中也极为重要,希望大家能理解透彻!

    13510

    Linux进程调度_linux进程查看和调度

    Linux 系统为了提升响应速度,倾向于优先调度 I/O 消耗型。...一、普通进程Linux 中普通进程依赖称之为 nice 值 东东来进行进程优先级描述。nice 值范围是 [-20, 19]。...—— 小结 实时进程优先级:value 越高,优先级越大 普通进程优先级:nice值越高,普通进程优先级越小 任何实时进程优先级 > 普通进程 Linux 调度算法 ---- Linux 中有一个总调度结构...Linux 调度时机 ---- 一、进程切换 从进程角度看,CPU是共享资源,由所有的进程按特定策略轮番使用。...也可以用 pidstat -w 命令查看进程切换每秒统计值: pidstat -w 1 Linux 3.10.0-229.14.1.el7.x86_64 (bj71s060) 02/01/2018

    20.7K10

    Linux进程——Linux进程进程优先级

    如果对前面Linux进程不太熟悉可以先阅读: Linux进程 本篇主要内容: 僵尸进程和孤儿进程 Linux进程优先级 1. 僵尸进程 僵尸进程就是处于僵尸状态下进程!...1号进程实际上就是操作系统 3. 进程优先级 3.1 基本概念 基本概念: cpu资源分配先后顺序,就是指进程优先权(priority)。 优先权高进程有优先执行权利。...配置进程优先权对多任务环境linux很有用,可以改善系统性能。...NI :NICE值,表示优先级修改数据 NICE其取值范围是-20至19,一共40个级别 Linux进程优先级数值范围:60~99 Linux中默认进程优先级都是:80 Linux是支持动态优先级调整...总结 本篇文章前部分紧贴上篇Linux进程,分析完了Linux下常见进程状态,然后初步了解了Linux进程优先级,而进程优先级与前面内容相差较大,希望大家能够多花点时间理解!

    10210

    LinuxLinux进程控制>进程创建&&进程终止&&进程等待&&进程程序替换

    1.进程创建 1.1 fork函数 在linux中fork函数时非常重要函数,它从已存在进程中创建一个新进程。...else if (ret > 0) { // 异常退出 printf("sig code : %d\n", st & 0X7F); } } } 测试结果: [root@localhost linux.../a.out #等20秒退出 child exit code:10 [root@localhost linux]# ....shell建立一个新进程,然后在那个进程中运行ls程序并等待那个进程结束 然后shell读取新一行输入,建立一个新进程,在这个进程中运行程序 并等待这个进程结束。...Linux鼓励将这种应用于程序之内模式扩展到程序之间。如下图 一个C程序可以fork/exec另一个程序,并传给它一些参数。这个被调用程序执行一定操作,然后通过exit(n)来返回值。

    15310

    Java--进程和线程基本概念

    下一篇--线程创建和启动 进程进程是处于运行中程序,是系统进行资源分配调度独立单位。...进程特点: 独立性:进程是系统中独立存在实体,它可以拥有自己独立资源,每个进程都有自己私有的地址空间。 动态性:进程和程序区别就是进程是正在系统中活动指令集合。...线程可以拥有自己程序计数器、自己堆栈和自己局部变量,但不拥有系统资源,它与进程其他线程共享进程所拥有的所有资源。线程是处理器调度基本单位。...线程特点: 线程可与其他线程共享进程共享变量和部分环境,相互之间协作来完成进程任务。 线程是独立运行,它并不知道系统中还有其他线程存在。 线程执行是抢占式。...线程相对于进程优势: 进程之间不能共享内存,但线程之间共享内存非常容易。 系统创建一个进程必须分配独立内存空间和相关资源,但创建线程代价要小得多,因此多线程实现多任务效率更高。

    53160

    Linux进程控制——Linux进程等待

    前言:接着前面进程终止,话不多说我们进入Linux进程等待学习,如果你还不了解进程终止建议先了解: Linux进程终止 本篇主要内容: 什么是进程等待 为什么要进行进程等待 如何进程等待...进程等待概念: 我们通常说进程等待其实是通过wait/waitpid方式,让父进程(一般)对子进程进行资源回收等待过程,父进程必须等待这个子进程结束后,处理它代码和数据! 2....进程等待必要性 在了解完进程等待概念后,新问题出现了,我们为什么要进行进程等待,进程等待必要性是什么?...父进程创建子进程目的是为了让子进程协助自己完成任务,而父进程需要知道子进程将任务完成得如何。这就需要通过进程等待方式,获取子进程退出信息。 3....总结拓展 拓展一:父进程如何得知子进程退出信息 父进程调用wait()/waitpid()来获取子进程退出信息,调用接口就传入了一个status参数,而父进程中存在着一个statusp指针

    10810

    Linux进程——进程创建(fork原理)

    查看进程第二种方法 在Linux系统中,不只有ps能够查看进程,还存在着一个动态目录proc,该目录存放了所有存在进程,目录名称。它会随着进程改变而随时更新它内容!...创建子进程 2.1 系统调用函数fork 在Linux中,进程创建方式有两种: 命令行中直接启动进程 通过代码创建 而在用代码创建进程时,实则是进行了系统调用,这里我们就得在学习一个系统调用函数...我们想让子进程协作父进程完成一些工作,这些工作是单进程解决不了,因此子进程创建是为了协助父进程,因此父子进程是不一样事情 我们怎么保证父子进程是不一样事情呢?...创建完成子进程,只是一个开始,创建完成子进程之后,系统其他进程,父进程和子进程,接下来要被调度执行,当父子进程PCB都被创建并在运行队列中排队时候,哪一个进程PCB先被选择调度,那个进程就先运行...变量id是父进程定义变量,保存数据,返回时候发生写时拷贝,不同 进程执行代码中变量id获取值不同,所以id在父进程和子进程中值不同 3.

    19410

    linux通过进程名杀死进程_linux关闭进程命令

    笔记:根据一个进程名字或启动此进程命令(连续一部分即可)杀死进程 一、使用单条命令 ps -ef | grep 进程名/启动进程命令 | grep -v grep | awk ‘{print $2...}’ | xargs kill -9 执行结果: [1]-  已杀死               sleep 200 [2]+  已杀死               sleep 200 二、编写脚本 linux.../bin/bash # 脚本名:kill_process.sh # 脚本功能:强制杀死进程 方式kill -9     # 1通过ps查询进程id     # 2使用kill -9 强制终止进程...请使用此方式运行:/bin/bash kill_process.sh 进程名”     exit 1 fi # 获取要被杀死进程名 pName=$1 <<!    ...————————————————————— # 根据进程名查询包含进程进程 并排除grep查询进程和此脚本进程 ps -ef | grep “$pName” | grep -v grep | grep

    16K20

    Linux进程管理

    02 — ps ps 命令用于显示当前系统中由该用户运行进程列表 选项 说明 -ef 查看所有进程及其 PID(进程号)、系统时间、命令详细目录、执行者等。...-aux 除可显示 -ef 所有内容外,还可显示 CPU 及内存占用率、进程状态。 -w 以加宽方式显示,这样可以显示较多信息。...03 — pidof 根据进程名查询进程号 oracle@yaoyuan ~$ pidof mysqld 1907 oracle@yaoyuan ~$ ps -ef|grep mysqld mysql...00:01:57 /usr/sbin/mysqld 04 — kill 而 kill 命令用于输出特定信号给指定进程号(PID)进程并根据该信号完成指定行为,其中可能信号有进程挂起、进程等待、...07 — crontab 我们希望 Linux 系统能够周期性地、有规律地执行某些具体任务,那么Linux 系统中默认启用 crond 服务简直再适合不过了 创建、编辑计划任务命令为“crontab

    1.5K20

    Linux进程控制——Linux进程终止

    前言:前面了解完前面的Linux进程基础概念后,我们算是解决了Linux进程一大麻烦,现在我们准备更深入了解Linux进程——Linux进程控制!...我们主要介绍Linux进程控制内容包括:进程终止,进程等待与替换,进程程序替换! 本篇主要内容: 重识进程创建 进程退出场景 错误码和退出码 1....在多进程环境中,我们创建子进程目的就是协助父进程办事,但是父进程怎么知道子进程把事情办得怎么样?所以父进程要知道子进程怎么样,就有了退出码,而main函数返回值,就是进程退出码!...main函数退出码是可以被父进程获取,用来判断子进程运行结果 我们可以直接用指令查看进程退出码: 指令:echo $?...exit终止进程时候,不会自动刷新缓冲区 总结 进程终止相对于其他进程控制来说,是很好理解。我们主要介绍了进程终止,在明白错误码和退出码之后,相信能理解父进程是怎么得到子进程信息

    10910

    linux进程

    1.查进程 ps命令查找与进程相关PID号: ps a 显示现行终端机下所有程序,包括其他用户程序。 ps -A 显示所有程序。...ps c 列出程序时,显示每个程序真正指令名称,而不包含路径,参数或常驻服务标示。 ps -e 此参数效果和指定"A"参数相同。 ps e 列出程序时,显示每个程序所使用环境变量。...ps s 采用程序信号格式显示程序状况。 ps S 列出程序时,包括已中断子程序资料。 ps -t 指定终端机编号,并列出属于该终端机程序状况。...2.杀进程和查看进程对应PID目录下exe文件信息 最常用方法是ps -aux或者ps -ef 然后再通过管道使用grep命令过滤查找特定进程,然后再对特定进程进行操作。...使用kill命令结束进程:kill -a 进程pid 或者 killall 程序名 查看对应PID目录下exe文件信息: [root@localhost postfix]# ps -aux|grep

    8.6K100

    Linux——进程

    进程 1.1 基本概念 当我们编写完代码运行并让代码编译起来时,在当前路径下会出现由代码编译而成可执行文件.exe。...在教材中一般叫PCB(process control block),Linux操作系统下PCB是task_struct. PCB是一个结构体,是为了管理加载到内存程序而产生。...1.2.3 介绍task_struct 在Linux中每一个进程都由task_struct数据结构来定义,task_struct就是我们通常所说PCB,它是队进程唯一控制手段也是最有效手段,当我们调用...,新产生进程为子进程,而原来进程为父进程,此时父子进程是共存,他们会同时向下执行代码。...进程状态 为了弄明白正在运行进程是什么意思,我们需要知道进程不同状态。一个进程可以有多个状态,在Linux内核中,进程也可以叫做任务。 …

    9210

    Linux中查看进程、杀死进程、进入进程命令

    2.杀死进程    使用kill命令结束进程:kill xxx    常用:kill -9 324    Linux下还提供了一个killall命令,可以直接使用进程名字而不是进程标识号,例如:...(1)强行中止(经常使用杀掉)一个进程标识号为324进程: #kill -9 324 (2)解除Linux系统死锁 在Linux中有时会发生这样一种情况:一个程序崩溃,并且处于死锁状态。...(4)killall命令 Linux下还提供了一个killall命令,可以直接使用进程名字而不是进程标识号,例如: # killall -HUP inetd *杀死进程最安全方法是单纯使用kill...其允许指定要终止进程名称,而非PID。 # killall httpd *停止和重启进程 有时候只想简单停止和重启进程。...如下: # kill -HUP PID 该命令让Linux和缓执行进程关闭,然后立即重启。 *绝杀 kill -9 PID 同意 kill -s SIGKILL 。

    11.8K30

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券