Linux的进程 嵌入式系统实验室 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
Linux的进程
主要内容 进程描述符 冬进程切换 进程的创建和删除 大 必进程调度 1958 orvare of Science and Technolo 2023/7/14 嵌入式系统实验室 Linux操作系统分析 4/65 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux操作系统分析 4/65 主要内容 ❖进程描述符 ❖进程切换 ❖进程的创建和删除 ❖进程调度
进程和线程 多道程序对操作系统的需求)进程 ·进一步提高并发度,对操作系统的需求 )线程 冬进程是执行程序的一个实例 冬进程和程序的区别 >几个进程可以并发的执行一个程序 >一个进程可以顺序的执行几个程序 冬线程和进程的区别 Liuⅸ2.4内核以及之前的版本都不支持线程 >2.6内核中有thread,但仍不是线程 Liux中的线程是在用户态实现的,不是本课程的内容 但Linux内核对用户态线程有一定的辅助支持 嵌入式系统实验室 2023/7/14 Linux操作系统分析 5/65 EMBEDDED SYSTEM LABORATORY SUZHOU INSTITUTE FON ADVANCED STUDY OF USTC
2023/7/14 Linux操作系统分析 5/65 进程和线程 ❖ 多道程序对操作系统的需求➔进程 ❖ 进一步提高并发度,对操作系统的需求 ➔线程 ❖ 进程是执行程序的一个实例 ❖ 进程和程序的区别 ➢ 几个进程可以并发的执行一个程序 ➢ 一个进程可以顺序的执行几个程序 ❖ 线程和进程的区别 ❖ Linux 2.4内核以及之前的版本都不支持线程 ➢ 2.6内核中有thread,但仍不是线程 ❖ Linux中的线程是在用户态实现的,不是本课程的内容 ❖ 但Linux内核对用户态线程有一定的辅助支持
进程描述符 冬为了管理进程,内核必须对每个进程进行清晰的 描述 ·进程描述符提供了内核所需了解的进程信息 >源码include/linux/sched.h定义 struct task struct 1958 >数据结构很庞大 ●基本信息 ●管理信息 ●控制信息 01026: struct task_struct 01027: volatile long state;/*-1 unrunnable,0 runnable,>0 stopped * 01028: void *stack; 01029: atomic_t usage; 01030: unsigned int flags;/per process flags,defined below 01031: unsigned int ptrace;
2023/7/14 Linux操作系统分析 6/65 进程描述符 ❖为了管理进程,内核必须对每个进程进行清晰的 描述。 ❖进程描述符提供了内核所需了解的进程信息 ➢源码include/linux/sched.h定义 struct task_struct ➢数据结构很庞大 ⚫基本信息 ⚫管理信息 ⚫控制信息
state flags need resched counter nike = next task prev task -。-一 run_list 中中=于m中✉ ttystruct p_optr 444a=4 tty assocloted with the process P_pptr 一 作struct Corent directory 当。= tty ■} ACLAASEL8 files struct ointers t加fe descnptors mmstruct thread Pant超s to memory wreds descnotors fs signal struct files mm Signais received sigmask_lock sig 室 JRY
2023/7/14 Linux操作系统分析 7/65