《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第三章 进程

第三章进程进程介绍进程控制块进程的组织方式进程调度进程的创建与进程相关的系统调用及其应用与调度相关的系统调用及应用
第三章 进程 进程介绍 进程控制块 进程的组织方式 进程调度 进程的创建 与进程相关的系统调用及其应用 与调度相关的系统调用及应用

进程介绍一程序和进程正文段(存放被执行的机器指令)程序进程用户数据段系统数据段
进程介绍-程序和进程

进程介绍一进程层次结构iniB上
进程介绍-进程层次结构 ini t A B C D E

进程介绍一进程状态运行态①?阻塞态就绪态
进程介绍-进程状态 运行态 阻塞态 就绪态

进程介绍一进程示例#include/*提供类型pid_t的定义,在PC机上与int型相同 *//*提供系统调用的定义*/#include main()tpid_t pid;/*此时仅有一个进程*/printf("PID before fork():%din",(int)getpid());pid-forkO;/*此时已经有两个进程在同时运行*/if(pid<0)printf("errorin fork!");else if(pid--0)printf("Iam the child process, my process ID is %dn",getpidO);elseprintf("Iam the parent process, my process ID is %din",getpidO);1
进程介绍-进程示例 #include /* 提供类型pid_t的定义,在PC机上与int型 相同 */ #include /* 提供系统调用的定义 */ main() { pid_t pid; /*此时仅有一个进程*/ printf(“PID before fork():%d\n”,(int)getpid()); pid=fork(); /*此时已经有两个进程在同时运行*/ if(pid<0) printf("error in fork!"); else if(pid==0) printf("I am the child process, my process ID is %d\n",getpid()); else printf("I am the parent process, my process ID is %d\n",getpid()); }

进程介绍一进程示例编译并运行这个程序:Sgcc fork test.c -o fork testS./fork testPID before forkO: 1991I am the parent process, my process ID is 1991I am the child process, my process ID is 1992再运行一遍,输出结果可能不同读者考虑一下为什么?
进程介绍-进程示例 编译并运行这个程序: $gcc fork_test.c -o fork_test $./fork_test PID before fork():1991 I am the parent process, my process ID is 1991 I am the child process, my process ID is 1992 再运行一遍,输出结果可能不同。 读者考虑一下为什么?

进程控制块★对进程进行全面描述的数据结构Linux中把对进程的描述结构叫做task_struct:struct task_struct {.M★传统上,这样的数据结构被叫做进程控制块PCB (process control blaock)
进程控制块 对进程进行全面描述的数据结构 Linux中把对进程的描述结构叫做task_struct: struct task_struct { . . } 传统上,这样的数据结构被叫做进程控制块 PCB(process control blaock)

进程控制块一信息分类★状态信息一描述进程动态的变化。★链接信息一描述进程的父/子关系。★各种标识符一用简单数字对进程进行标识。★进程间通信信息一描述多个进程在同一任务上协作工作。★时间和定时器信息一描述进程在生存周期内使用CPU时间的统计、计费等信息。★调度信息一描述进程优先级、调度策略等信息。★文件系统信息一对进程使用文件情况进行记录。★虚拟内存信息一描述每个进程拥有的地址空间。★处理器环境信息一描述进程的执行环境(处理器的寄存器及堆栈等)
进程控制块-信息分类 状态信息-描述进程动态的变化。 链接信息-描述进程的父/子关系。 各种标识符-用简单数字对进程进行标识。 进程间通信信息-描述多个进程在同一任务上协作工作。 时间和定时器信息-描述进程在生存周期内使用CPU时间的 统计、计费等信息。 调度信息-描述进程优先级、调度策略等信息。 文件系统信息-对进程使用文件情况进行记录。 虚拟内存信息-描述每个进程拥有的地址空间。 处理器环境信息-描述进程的执行环境(处理器的寄存器及 堆栈等)

进程控制块一Linux进程状态及转换fork()资源到位wake_up_interruptible()收到信号SIGCONTwake_up()或收到信号wake_up()TASK RUNNING就绪资源到位wake_up()TASKINTERRUPTIBLschedule()时间片耗尽浅度睡眠TASK UNINTERRUPTIBLE深度睡眠占有CPU等待资源到位等待资源到位执行interruptible_sleep_on()sleep_on()schedule()schedule()schedule()ptrace()do_exit()TASK_STOPPEDTASK ZOMBIE暂停僵死
进程控制块-Linux进程状态及转换 fork() TASK_RUNNING 就绪 TASK_INTERRUPTIBLE 浅度睡眠 TASK_UNINTERRUPTIBLE 深度睡眠 TASK_STOPPED 暂停 TASK_ZOMBIE 僵死 占有CPU 执行 do_exit() schedule() ptrace() schedule() 时间片耗尽 等待资源到位 sleep_on() schedule() 等待资源到位 interruptible_sleep_on() schedule() 资源到位 wake_up_interruptible() 或收到信号 wake_up() 资源到位 wake_up() 收到信号SIGCONT wake_up()

进程控制块一进程标识符★每个进程都有一个唯一的标识符,内核通过这个标识符来识别不同的进程。心进程标识符PID也是内核提供给用户程序的接口,用户程序通过PID对进程发号施令心PID是32位的无符号整数,它被顺序编号★每个进程都属于某个用户组。task_struct结构中定义有用户标识符UID(UserIdentifier)和组标识符GID(GroupIdentifier)这两种标识符用于系统的安全控制系统通过这两种标识符控制进程对系统中文件和设备的访问
进程控制块-进程标识符 每个进程都有一个唯一的标识符,内核通过 这个标识符来识别不同的进程 。 ❖进程标识符PID也是内核提供给用户程序的接口, 用户程序通过PID对进程发号施令 。 ❖PID是32位的无符号整数,它被顺序编号 每个进程都属于某个用户组。 ❖task_struct结构中定义有用户标识符UID(User Identifier)和组标识符GID(Group Identifier) ❖这两种标识符用于系统的安全控制 ❖系统通过这两种标识符控制进程对系统中文件和 设备的访问
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第一章 操作系统概述.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第二章 虚拟内存管理的硬件机制.ppt
- 《网络操作系统》课程教学资源(PPT课件)第十一章 LInux远程登录.ppt
- 《网络操作系统》课程教学资源(PPT课件)第十章 Linux防火墙Iptables.ppt
- 《网络操作系统》课程教学资源(PPT课件)第九章 DNS及DHCP服务器.ppt
- 《网络操作系统》课程教学资源(PPT课件)第七章_Linux服务器的配置.ppt
- 《网络操作系统》课程教学资源(PPT课件)第八章_VSFTP.ppt
- 《网络操作系统》课程教学资源(PPT课件)第六章 配置网络连接.ppt
- 《网络操作系统》课程教学资源(PPT课件)第五章 软件包管理.ppt
- 《网络操作系统》课程教学资源(PPT课件)第四章 Linux服务与进程管理.ppt
- 《网络操作系统》课程教学资源(PPT课件)第三章 用户管理及组管理.ppt
- 《网络操作系统》课程教学资源(PPT课件)第一章 建立Linux系统.ppt
- 《网络操作系统》课程教学资源(PPT课件)第二章 Linux终端操作.ppt
- 《操作系统》课程教学资源(PPT课件)第7章 操作系统接口.ppt
- 《操作系统》课程教学资源(PPT课件)第5章 设备管理.ppt
- 《操作系统》课程教学资源(PPT课件)第6章 文件管理.ppt
- 《操作系统》课程教学资源(PPT课件)第4章 存储器管理.ppt
- 《操作系统》课程教学资源(PPT课件)第3章 处理机调度与死锁.ppt
- 《操作系统》课程教学资源(PPT课件)第2章 进程管理.ppt
- 《操作系统》课程教学资源(PPT课件)第1章 操作系统引论.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第四章 内存管理.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第六章 系统调用.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第五章 中断与异常.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第七章 内核中的同步.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第八章 文件系统.ppt
- 《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第九章 设备驱动.ppt
- 常用的计算机术语及英文缩写.pdf
- 《Office高级应用》课程教学资源(参考资料)Excel常用函数.pdf
- 内蒙古农业大学:《Office高级应用》课程教学资源(课件讲稿)1 基本数据结构与算法.pdf
- 内蒙古农业大学:《Office高级应用》课程教学资源(课件讲稿)2 软件工程与程序设计基础.pdf
- 内蒙古农业大学:《Office高级应用》课程教学资源(课件讲稿)3 数据库基础.pdf
- 石河子大学:《三维动画设计》课程授课教案(任课教师:肖志强).doc
- 《三维动画设计》课程教学资源(案例)3ds Max实例教程利用赛车模型制作汽车动画.doc
- 《三维动画设计》课程教学资源(案例)CG经典教程成功做出真实的人头模型.doc
- 《三维动画设计》课程教学资源(案例)3DMax教程3Dmax打造办公立体空间教程.doc
- 《三维动画设计》课程教学资源(案例)使用3ds Max建造体育馆实例制作过程.doc
- 《三维动画设计》课程教学案例(效果图设计制作)15、建筑日景.doc
- 《三维动画设计》课程教学案例(效果图设计制作)16、鸟瞰效果图的制作.doc
- 《三维动画设计》课程教学案例(效果图设计制作)11-12、清晨客厅.doc
- 《三维动画设计》课程教学案例(效果图设计制作)13-14、建筑夜景.doc