第三章 程、作业、线程管理
第三章 进程、作业、线程管理 (1)
章节情况 °31进程管理概述 ●32作业管理 °33并发进程 3.4线程管理
章节情况 ⚫ 3.1 进程管理概述 ⚫ 3.2 作业管理 ⚫ 3.3 并发进程 ⚫ 3.4 线程管理
●课时安排: ●12~16课时+2课时习题讲解 主要内容进程和线程的概念、调度 和控制方法,进程的并发、互斥 通信和死锁关系,以及处理器调度 算法等,结合 windows2000系统的 进程、线程和处理器调度管理分析 使读者深入理解和掌握操作系统中 最基本的管理技术的方法
⚫课时安排: ⚫ 12~16课时+2课时习题讲解 ⚫主要内容:进程和线程的概念、调度 和控制方法,进程的并发、互斥、 通信和死锁关系,以及处理器调度 算法等,结合windows 2000 系统的 进程、线程和处理器调度管理分析, 使读者深入理解和掌握操作系统中 最基本的管理技术的方法
31进程管理概述 进程的概念 ●二进程的调度 三处理器调度 ●四进程的控制
3.1 进程管理概述 ⚫ 一.进程的概念 ⚫ 二.进程的调度 ⚫ 三.处理器调度 ⚫ 四.进程的控制
进程的概念 ●1、进程概念的引入 ●2、进程的概念 ●3、进程的状态
一 .进程的概念 ⚫ 1、进程概念的引入 ⚫ 2、进程的概念 ⚫ 3、进程的状态
1、进程概念的引入 ●在早期的单道程序系统中,一个程序在 执行时是按顺序依次执行各条语句,而 不考虑其他的用户程序;有如下的程序 段 ●Sl: scant(“%d”,&x); ●S2:y=x*2; ●S3 printf(y=%d”,y);
1、进程概念的引入 ⚫ 在早期的单道程序系统中,一个程序在 执行时是按顺序依次执行各条语句,而 不考虑其他的用户程序;有如下的程序 段: ⚫ S1:scanf(“%d”,&x); ⚫ S2:y=x*2; ⚫ S3:printf(“y=%d”,y);
由上面程序段可以看出,顺序程序的执行的特 点如下: ●1)、顺序性:处理机的操作是严格的按照程序所 规定的顺序执行的,即上一个操作必须在下 个操作开始之前结束。 ●2)、封闭性:程序的执行结果仅与初始条件和 程序本身决定 ●3)、可再现性:程序执行的最终结果与执行速 度无关 4)、资源独占性:程序执行时独占系统中的全 部资源,即这些资源的状态由该程序本身确定
⚫ 由上面程序段可以看出,顺序程序的执行的特 点如下: ⚫ 1)、顺序性:处理机的操作是严格的按照程序所 规定的顺序执行的,即上一个操作必须在下一 个操作开始之前结束。 ⚫ 2)、封闭性:程序的执行结果仅与初始条件和 程序本身决定。 ⚫ 3)、可再现性:程序执行的最终结果与执行速 度无关。 ⚫ 4)、资源独占性:程序执行时独占系统中的全 部资源,即这些资源的状态由该程序本身确定
多道程序系统的引入: 内存中同时驻留多道程序,从宠观 上看是几道程序同时执行,但从微观上 看则是几道程序交替执行,轮流占用资 源 宏观上执行时间有重迭的几个程序 称为并发程序。 多道程序系统的实质就是把并发程 序的执行引入到系统中
⚫ 多道程序系统的引入: ⚫ 内存中同时驻留多道程序,从宠观 上看是几道程序同时执行,但从微观上 看则是几道程序交替执行,轮流占用资 源。 ⚫ 宏观上执行时间有重迭的几个程序 称为并发程序。 ⚫ 多道程序系统的实质就是把并发程 序的执行引入到系统中
程序并发执行所带来的新的问题 ●1)、失去了程序的封闭性 ●如果一程序变量是其他程序执行时不可 接触的,那么这个程序执行后的输出结 果一定是其输入的一个与时间无关的函 数,即封闭性 ●如果一个程序的执行可以改变另一程序 的变量,那么其输出的就可能依赖各种 程序执行的速度,也就失去了程序的封 闭性
程序并发执行所带来的新的问题 ⚫ 1)、失去了程序的封闭性 ⚫ 如果一程序变量是其他程序执行时不可 接触的,那么这个程序执行后的输出结 果一定是其输入的一个与时间无关的函 数,即封闭性。 ⚫ 如果一个程序的执行可以改变另一程序 的变量,那么其输出的就可能依赖各种 程序执行的速度,也就失去了程序的封 闭性
● Maino 在本程序中,由于程序 ●{intn=0,jl=2,j2=2 J1和程序J2的执行都可 按各自独立的速度向前 cobegin 推进,故当推进顺序为 whie(i1-)/任务* J1、J2、JlJ2和J1 J2、J2、J的执行结果 {n++;} 是不一样的。这使得因 whie2-)/在务j2*/为并发执行破坏了其封 闭性和可再现性。 { printf((“nis%d.“,n);n=0; ● Coend
⚫ Main() ⚫ { int n=0, j1=2, j2=2; ⚫ cobegin ⚫ while(j1--)/*任务j1*/ ⚫ {n++;} ⚫ while(j2--)/*任务j2*/ ⚫ { printf(“n is%d. “,n); n=0;} ⚫ Coend ⚫ } 在本程序中,由于程序 J1和程序J2的执行都可 按各自独立的速度向前 推进,故当推进顺序为 J1、J2、J1、J2和J1、 J2、J2、J1的执行结果 是不一样的。这使得因 为并发执行破坏了其封 闭性和可再现性