中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)Linux进程管理(3/3)

主要内容 进程描述符 冬进程切换 进程的创建和删除 学 冬进程调度 1958 2023/7/14 嵌入式系统实验室 Linux操作系统分析 2152 EMBEDDED SYSTEM LABORATORY 百uE料DUAN0 ITUTE FOR AOVANCED5 FUOY DF U百TC
2023/7/14 Linux操作系统分析 2/52 主要内容 ❖进程描述符 ❖进程切换 ❖进程的创建和删除 ❖进程调度

进程的分类 冬不同类型的进程有不同的调度需求 必第一种分类: >I/O-bound ●频繁的进行I/01958 ●通常会花费很多时间等待/○操作的完成 >CPU-bound ●计算密集型 ● 需要大量的CPU时间进行运算 Ccience and Technoloc 嵌入式系统实验室 2023/7/14 Linux操作系统分析 3/52 EMBEDDED SYSTEM LABORATORY 5uE料DUAN0 ITUTE FOR AOVANCED5 FUOY OF U百TC
2023/7/14 Linux操作系统分析 3/52 进程的分类 ❖不同类型的进程有不同的调度需求 ❖第一种分类: ➢I/O-bound ⚫频繁的进行I/O ⚫通常会花费很多时间等待I/O操作的完成 ➢CPU-bound ⚫计算密集型 ⚫需要大量的CPU时间进行运算

第二种分类 >交互式进程(interactive process) ●需要经常与用户交互,因此要花很多时间等待用户输入操作 ●响应时间要快,平均延迟要低于50~150ms 。典型的交互式程序:shel、文本编辑程序、图形应用程序等 1958 嵌入式系统实验室 2023/7/14 Linux操作系统分析 4152 EMBEDDED SYSTEM LABORATORY 5uE料DUAN0 ITUTE FOR AOVANCED5 FUOY OF U百TC
2023/7/14 Linux操作系统分析 4/52 ❖第二种分类 ➢交互式进程(interactive process) ⚫需要经常与用户交互,因此要花很多时间等待用户输入操作 ⚫响应时间要快,平均延迟要低于50~150ms ⚫典型的交互式程序:shell、文本编辑程序、图形应用程序等

>批处理进程 (batch process ●不必与用户交互,通常在后台运行 ●不必很快响应 ●典型的批处理程序:编译程序、科学计算 >实时进程(real-time process) ●有实时需求,不应被低优先级的进程阻塞 ●响应时间要短、要稳定 ●典型的实时进程:视频/音频、机械控制等 of Science and Technolg 嵌入式系统实验室 2023/7/14 Linux操作系统分析 5/52 EMBEDDED SYSTEM LABORATORY 5uE料DUAN0 ITUTE FOR AOVANCED5 FUOY OF U百TC
2023/7/14 Linux操作系统分析 5/52 ➢批处理进程(batch process) ⚫不必与用户交互,通常在后台运行 ⚫不必很快响应 ⚫典型的批处理程序:编译程序、科学计算 ➢实时进程(real-time process) ⚫有实时需求,不应被低优先级的进程阻塞 ⚫响应时间要短、要稳定 ⚫典型的实时进程:视频/音频、机械控制等

Linux中的进程调度 。Linux既支持普通的分时进程,也支持实时进程 冬Linux中的调度是多种调度策略和调度算法的混 合。 什么是调度策略?958 >是一组规则,它们决定什么时候以怎样的方式选择一 个新进程运行 Linux的调度基于分时和优先级 >随着版本的变化,分时技术在不断变化 嵌入式系统实验室 2023/7/14 Linux操作系统分析 6/52 EMBEDDED SYSTEM LABORATORY 5uE料DUN0 ITUTE FOR AOVANCED5 UOY DF U百TC
2023/7/14 Linux操作系统分析 6/52 Linux中的进程调度 ❖Linux既支持普通的分时进程,也支持实时进程 ❖Linux中的调度是多种调度策略和调度算法的混 合。 ❖什么是调度策略? ➢是一组规则,它们决定什么时候以怎样的方式选择一 个新进程运行 ❖Linux的调度基于分时和优先级 ➢随着版本的变化,分时技术在不断变化

冬Linux的进程根据优先级排队 >根据特定的算法计算出进程的优先级,用一个值表示 >这个值表示把进程如何适当的分配给CPU Linux中进程的优先级是动态的 >调度程序会根据进程的行为周期性的调整进程的优先 级 ●较长时间未分配到CPU的进程,通常个 已经在CPU上运行了较长时间的进程,通常) 嵌入式系统实验室 2023/7/14 Linux操作系统分析 7152 EMBEDDED SYSTEM LABORATORY 5uE料DUAN0 ITUTE FOR AOVANCED5 FUOY OF U百TC
2023/7/14 Linux操作系统分析 7/52 ❖Linux的进程根据优先级排队 ➢根据特定的算法计算出进程的优先级,用一个值表示 ➢这个值表示把进程如何适当的分配给CPU ❖Linux中进程的优先级是动态的 ➢调度程序会根据进程的行为周期性的调整进程的优先 级 ⚫较长时间未分配到CPU的进程,通常↑ ⚫已经在CPU上运行了较长时间的进程,通常↓

与调度相关的系统调用 nice getpriority/setpriority sched getscheduler/sched setscheduler sched getparam/sched setparam sched yield *sched_get priority_min/sched_get priority_max sched rr get interval Ecience and Technolv 嵌入式系统实验室 2023/7/14 Linux操作系统分析 8152 EMBEDDED SYSTEM LABORATORY 5uE料DUAN0 ITUTE FOR AOVANCED5 FUOY OF U百TC
2023/7/14 Linux操作系统分析 8/52 与调度相关的系统调用 ❖nice ❖getpriority/setpriority ❖sched_getscheduler/sched_setscheduler ❖sched_getparam/sched_setparam ❖sched_yield ❖sched_get_priority_min/sched_get_priority_max ❖sched_rr_get_interval

例如 nice(2)-Linux man page Name nice-change process priority Synopsis #include int nice(int inc); Description 仅作用于调用者进程 nice()adds inc to the nice value for the calling process.(A higher nice value means a low priority.)Only the superuser may specify a negative increment,or priority increase. The range for nice values is described in getpriority(2). Return Value On success,the new nice value is returned (but see NOTES below).On error,-1 is 室 2023/7/1 returned,and errno is set appropriately
2023/7/14 Linux操作系统分析 9/52 例如 仅作用于调用者进程

getpriority(2)-Linux man page Name getpriority,setpriority-get/set program scheduling priority Synopsis #include #include int getpriority(int which,int who); int setpriority(int which,int who,int prio); Description The scheduling priority of the process,process group,or user,as indicated by which and who is obtained with the getpriority()call and set with the setpriority()call. The value which is one of PRIO_PROCESS,PRIO_PGRP,or PRIO_USER,and who is interpreted relative to which(a process identifier for PRIO_PROCESS,process group identifier for PRIO_PGRP,and a user ID for PRIO_USER).A zero value for who denotes(respectively)the calling process,the process group of the calling process,or the real user ID of the calling process.Prio is a value in the range-20 to 19(but see the Notes below).The default priority is 0;lower priorities cause more favorable scheduling The getpriority()call returns the highest priority(lowest numerical value)enjoyed by 弋系统实验室 20 any of the specified processes.The setpriority()call sets the priorities of all of the specified processes to the specified value.Only the superuser may lower priorities. SYSTEM LABORATORY TE FOR AOVANCED STUOY DF USTC
2023/7/14 Linux操作系统分析 10/52 又如

sched setscheduler(2)-Linux man page Name sched_setscheduler,sched_getscheduler-set and get scheduling algorithm/parameters Synopsis include int sched setscheduler(pid t pid,int policy, const struct sched param *param) int sched getscheduler(pid t pid); struct sched param int sched priority; }; Description sched_setscheduler()sets both the scheduling policy and the associated parameters for the process identified by pid.If pid equals zero,the scheduler of the calling process will be set.The interpretation of the parameter param depends on the selected policy. Currently,the following three scheduling policies are supported under Linux: SCHED_FIFO,SCHED_RR,SCHED_OTHER,and SCHED_BATCH;their respective semantics are described below. sched_getscheduler()queries the scheduling policy currently applied to the process 2023/7/1 identified by pid.If pid equals zero,the policy of the calling process will be retrieved. 统实验室 MLAB口RATORY UZHDU INSTIYUTE FOR AOVANCED SYUDY DF USTC
2023/7/14 Linux操作系统分析 11/52
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)系统调用.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)中断和异常.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)Linux进程管理(2/3).ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)Linux进程管理(1/3).ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)内存寻址.ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)制作简单的Linux系统.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)基于x86的Linux启动代码分析.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)GNU开发工具链简介 GNU Tools(主讲:陈香兰).pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)13 IO管理 IO systems.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)12 外存 Mass Storage Systems.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)11 File 文件系统实现 File system implementation.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)10 文件系统接口 File System Interface.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)09 虚拟内存 Virtual Memory.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)08 Main Memory.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)07 Deadlock.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)06 Process Synchronization.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)05 Threads.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)04 CPU Scheduling.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)03 Processes.pdf
- 中国科学技术大学:《操作系统原理与设计 Operating System》课程教学资源(PPT课件讲稿)02 OS Structure.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)内存管理.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)Linux中的时钟和定时测量.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)Linux中的进程地址空间.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(课件讲义)程序的执行.pdf
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)文件系统.ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)管理I/O设备.ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)Linux中的信号机制.ppt
- 中国科学技术大学:《Linux操作系统分析》课程教学资源(PPT课件讲稿)进程的同步和通信.ppt
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)课程介绍(主讲:陈香兰).pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)嵌入式系统及嵌入式软件开发概述.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)GNU(交又)开发工具链简介 GNU Tools.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)嵌入式操作系统和选型.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)ArmLinux的启动(基于arm的Linux启动代码分析).pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)skyeye简介.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)bootloader简介和bootloader举例(u-boot和RedBoot).pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)Building Embedded Linux System.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)Ubuntu中的系统初始化.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)uC/OS-II简单分析.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)进程管理.pdf
- 中国科学技术大学:《嵌入式操作系统 Embedded Operating Systems》课程教学资源(课件讲义)Linux的时钟和定时测量 clock and timer.pdf