版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1主要内容第2章 进程与线程2.1 进程2.2 线程2.3 进程间通信2.4 调度2.5 经典的IPC问题22.1 进程(补充1) 程序 指令或语句序列,体现了某种算法所有程序是顺序的 顺序程序 计算机系统中只有一个程序在运行,该程序独占系统中的所有资源,其执行不受外界影响 特征:顺序性、封闭性、可再现性32.1 进程(补充2) 多道程序执行系统中程序的执行:多道程序执行系统中程序的执行:同时处理多个具有独立功能的程序,应具有以下特点:同时处理多个具有独立功能的程序,应具有以下特点:独立性:多个程序逻辑独立,并可独立运行独立性:多个程序逻辑独立,并可独立运行随机性:多用户环境下程序的运行是随机
2、的随机性:多用户环境下程序的运行是随机的资源共享:资源共享: 并发执行的程序:并发执行的程序:并发:两个或多个事件在并发:两个或多个事件在同一个时间间隔同一个时间间隔之内同时发生之内同时发生并行:两个或多个事件在并行:两个或多个事件在同一个时刻同一个时刻同时发生同时发生特点:随机性,失去了程序顺序执行所具有的封闭性和可再现性特点:随机性,失去了程序顺序执行所具有的封闭性和可再现性4例:有栈例:有栈S, top为栈顶指针,为栈顶指针,getaddr(top)从栈中取内存数据块从栈中取内存数据块地址,地址,reladdr(bld)将内存数据块地址将内存数据块地址blk放入放入S中中Procedur
3、e getaddr(top) begin local r r - (top) top - top-1 return(r) endProcedure reladdr(blk) begin top - top+1 (top) - blk endabeftop r=?52.1.2 进程的定义:进程的定义: 定义:定义:A Procss is just an executing program (Include : PC, R ,variables etc.)或:可以与其他程序并发执行的程序的一次执行,是系统或:可以与其他程序并发执行的程序的一次执行,是系统资源分配的基本单位资源分配的基本单位 特征:
4、特征: 动态动态并发并发独立独立异步异步结构结构6 进程与程序的区别及联系:进程与程序的区别及联系:进程是动态的,而程序是静态的进程是动态的,而程序是静态的进程可以并发,而程序则没有进程可以并发,而程序则没有进程是资源竞争的基本单位进程是资源竞争的基本单位联系:联系:一个程序可以生成多个不同的进程一个程序可以生成多个不同的进程 进程的层次结构:(进程树)进程的层次结构:(进程树)系统中除根进程外,每个进程都有且只有一个父进程系统中除根进程外,每个进程都有且只有一个父进程每个子进程均由它的父进程创建每个子进程均由它的父进程创建一个父进程可以有多个子进程一个父进程可以有多个子进程72.1 进程2.
5、1.1 进程模型 含有4道程序的多道程序 4个独立的顺序进程的概念模型 在任意时刻仅有一个程序是活跃的82.1.2 创建进程4种主要事件导致进程的创建1. 系统初始化2. 执行了正在运行的进程所调用的进程创建系统调用3. 用户请求创建一个新进程4. 一个批处理作业的初始化92.1.3 进程的终止引起进程终止的条件:1. 正常退出 (自愿的)2. 错误退出 (自愿地)3. 严重错误 (非自愿地)4. 被其他进程杀死 (非自愿地)102.1.4 进程的层次结构 父进程创建一个子进程,子进程可以创建属于自己的更多进程 Unix中所有子女和后裔共同组成一个进程组 UNIX 叫 “进程组 Windows
6、 没有进程层次的概念 所有的进程都是地位相同的112.1.5 进程的状态 (1) 进程的状态 running(运行态) blocked(阻塞态) ready(就绪态) 上图显示出各状态之间的转换1.进程为等待输入而阻塞进程为等待输入而阻塞2.调度程序选择另一个进程调度程序选择另一个进程3.调度程序选择这个进程调度程序选择这个进程4.出现有效输入出现有效输入122.1.5 进程的状态 (2) 以进程构造的操作系统最底层 处理中断, 调度 在该层之上是顺序进程132.1.6 进程的实现(补充)进程控制块(用来标识进程存在于系统中的唯进程控制块(用来标识进程存在于系统中的唯一的实体,部分或全部常驻内
7、存)一的实体,部分或全部常驻内存)程序程序数据集数据集 :系统用反映进程的动态特征,内容包括:系统用反映进程的动态特征,内容包括:描述信息:进程名(标识号),用户名(标识号),家族链描述信息:进程名(标识号),用户名(标识号),家族链控制信息:状态,优先级,内存始址,计时,通信信息控制信息:状态,优先级,内存始址,计时,通信信息资源管理信息:内存大小,设备等资源管理信息:内存大小,设备等现场保护机构:中设有现场保护机构:中设有142.1.6 进程的实现 (1)典型的进程表表项中的一些字段进程表表项进程表表项进程控制块的主要字段进程控制块的主要字段152.1.6 进程的实现(2)当中断发生后操作
8、系统最底层的工作步骤1.硬件压入堆栈程序计数器等。硬件压入堆栈程序计数器等。2.硬件从中断向量装入新的程序计数器。硬件从中断向量装入新的程序计数器。3.汇编语言过程保存寄存器值。汇编语言过程保存寄存器值。4.汇编语言过程设置新的堆栈。汇编语言过程设置新的堆栈。5.C中断服务例程运行(典型的读和缓冲输入)。中断服务例程运行(典型的读和缓冲输入)。6.调度程序决定下一个将运行的进程。调度程序决定下一个将运行的进程。7.C过程返回至汇编代码过程返回至汇编代码8.汇编语言过程开始运行新的当前进程汇编语言过程开始运行新的当前进程中断发生时,底层处理步骤中断发生时,底层处理步骤16进程与程序的区别(补充)
9、 进程更能真实的描述并发(程序不能) 进程是由程序和数据两部分组成的 程序是静态的。进程是动态的 进程有生命周期,有诞生有消亡,短暂的;而程序是相对长久的 一个程序可以对应多个进程 进程具有创建其他进程的功能17 线程 线程是轻量级的进程,它是一个进程内的基本调度单位,有自己的程序计数器、寄存器及堆栈。 多线程与多进程-多线程系统允许多个线程共享一个进程的地址空间、打开文件、全局变量等资源。-多进程系统允许多个进程共享物理内存、磁盘、打印机等资源。 线程与进程 - 进程是资源管理的基本单位 -线程是调度的基本单位 2.2 线程线程2.2.1 线程的概念线程的概念182.2.2 线程模型线程模型
10、(a) 三个进程,每个进程有三个进程,每个进程有1个线程个线程(b) 一个进程有一个进程有3个线程个线程112319线程的实现(线程的实现(TCB) 一个进程中所有线程共享内容一个进程中所有线程共享内容 每个线程自己的内容每个线程自己的内容20每个线程有自己的堆栈(kernel&user stack,TCB)212.2.3 引入线程的原因引入线程的原因 伪并行,进一步提高并发度 更小的系统开销 更高的性能 有利于在多CPU系统中实现真正的并行222.2.4 在用户空间实现线程在用户空间实现线程用户级线程包用户级线程包232.2.5 在内核中实现线程在内核中实现线程内核管理的线程包内核管
11、理的线程包242.2.6 混合实现混合实现 用户级线程与内核线程复用用户级线程与内核线程复用252.3 进程间通信进程间通信 并发进程间的相互制约:并发进程间的相互制约:间接制约:诸进程对共享资源的使用通过系统来协调,使得间接制约:诸进程对共享资源的使用通过系统来协调,使得进程间执行速度相互影响进程间执行速度相互影响直接制约:诸进程自行使用共享资源或由进程合作引起,某直接制约:诸进程自行使用共享资源或由进程合作引起,某一进程直接通过某机构发消息给其他进程,从而直接其他进程一进程直接通过某机构发消息给其他进程,从而直接其他进程的执行的执行 基本概念:基本概念:临界资源:一次只允许一个进程使用的资
12、源临界资源:一次只允许一个进程使用的资源临界区:在每个进程中,访问临界资源的那部分代码(那段程临界区:在每个进程中,访问临界资源的那部分代码(那段程序)序)2.3.1 进程通信进程通信262.3.2 互斥互斥 定义定义: 不允许两个以上的共享该资源的并发进程同时进入临界不允许两个以上的共享该资源的并发进程同时进入临界区,称为互斥区,称为互斥 并发进程互斥执行准则:并发进程互斥执行准则:不假设各并发进程的相对执行速度不假设各并发进程的相对执行速度出于临界区外的进程不能阻止其他进程进入临界区出于临界区外的进程不能阻止其他进程进入临界区任何时刻只允许一个进程处于临界区中任何时刻只允许一个进程处于临界
13、区中不能使进程在临界区外永远等待不能使进程在临界区外永远等待27 互斥的实现:互斥的实现:关中断法:每个进程进入临界区后先关中断,离开前开中断关中断法:每个进程进入临界区后先关中断,离开前开中断缺点:系统可能终止缺点:系统可能终止多多CPU时,无用时,无用加锁法:用锁变量来表示临界区是否可用加锁法:用锁变量来表示临界区是否可用加锁后的临界区描述如下:lock(keys) /s为临界区类名 unlock(keys) /keys为锁变量,为1表示临界区 /可用,为0表示临界区不能使用28 lock(keys) L: if keys=0 then goto L else keys=0 unlock(
14、keys) keys= 1 PA() L1: lock(keys) unlock(keys) goto L1PB() L2: lock(keys) unlock(keys) goto L2缺点:不断循环测试,缺点:不断循环测试,CPU费时费时存在不公平现象存在不公平现象29严格的轮转法:用标志严格控制轮流使用临界区严格的轮转法:用标志严格控制轮流使用临界区PA()while(true) while(turn!=0); /wait critical_region(); turn=1; noncritical_region(); PB() while(true) while(turn!=1); /
15、wait critical_region(); turn=0; noncritical_region(); 缺点:当一个进程比另一进程慢很多时不好缺点:当一个进程比另一进程慢很多时不好30TSL指令指令用用TSL指令进入和离开临界区指令进入和离开临界区31 信号量法:信号量法:信号量:是中表示资源的物理实体,是一个与队列相关的信号量:是中表示资源的物理实体,是一个与队列相关的整型变量,其值仅由整型变量,其值仅由down,up原语改变原语改变信号量的表示意义:信号量的表示意义:设设sem为信号量,则:为信号量,则:当当sem=0时,表示可供并发进程使用的资源实体数时,表示可供并发进程使用的资源实
16、体数 当当sem =0调用进程入等待队列转进程调度返回入口 s=s+1 s=0唤醒等待队列中的一个进程返回或转进程调度返回down原语原语up原语原语YYNN33用用down,up原语实现互斥:原语实现互斥:A: down(sem) up(sem) B: down(sem) up(sem) 设一个互斥的信号量设一个互斥的信号量sem描述:描述:S为临界区的类名为临界区的类名34管程管程一种更为高级的同步原语,更便于使用,管程的互斥由编译一种更为高级的同步原语,更便于使用,管程的互斥由编译 器负责,使用者只需将所有临界区转换为管程即可。器负责,使用者只需将所有临界区转换为管程即可。一个管程是由过
17、程、条件变量及数据结构等组成的特殊模块一个管程是由过程、条件变量及数据结构等组成的特殊模块 或软件包。进程仅能通过管程访问其中的数据结构。或软件包。进程仅能通过管程访问其中的数据结构。 管程的特性:任一时刻管程中只能有一个活跃进程。管程的特性:任一时刻管程中只能有一个活跃进程。352.3.3 进程同步进程同步例:设有计算进程及打印进程通过共用一个例:设有计算进程及打印进程通过共用一个buf缓冲区进行工作,缓冲区进行工作,如两进程独立工作,则过程可描述如下:如两进程独立工作,则过程可描述如下:Pc: . A: local Buf repeat buf - Buf until Buf = null
18、 compute Buf - result goto A .Pp: . B: local Pri repeat Pri - buf until Pri = null print buf - null goto B .假定对假定对buf已采取的互斥措施已采取的互斥措施36 定义:定义:异步环境下,一组并发进程因直接制约而相互发送消息,异步环境下,一组并发进程因直接制约而相互发送消息,相互合作,相互等待,使各进程按一定速度执行的过程相互合作,相互等待,使各进程按一定速度执行的过程 同步的实现:同步的实现: 消息名法:消息名法:为同步进程间发送的事件或消息赋予一个唯一的消息名,用:为同步进程间发送的
19、事件或消息赋予一个唯一的消息名,用:wait(表示进程等待合作进程发来的消息表示进程等待合作进程发来的消息) signal(表示向合作进程发送消息表示向合作进程发送消息)则上例表示的同步关系如下:则上例表示的同步关系如下:设消息名设消息名Bufempty表示表示Buf为空,为空,Buffull表示表示Buf满满初始化:初始化:Bufempty=true, Buffull=false37描述:描述:Pc: A: wait(Bufempty) caculate Buf - result Bufempty - false signal(Buffull) Goto APp: B: wait(Buffu
20、ll) print Buf - null Buffull - false signal(Bufempty) Goto B38信号量法:信号量法:此处信号量只与制约及被制约进程有关,故为私有的信号量此处信号量只与制约及被制约进程有关,故为私有的信号量同例:同例:设设SA=0表示表示Buf中无可供打印的计算结果中无可供打印的计算结果SB=0表示表示Buf空,计算结果可放入空,计算结果可放入BufPcPp39Pc: A: caculate next number Buf - result count=count-1 V(SA) P(SB) if count=0 then destroy(Pc) el
21、se goto APp: B: P(SA) print 0) 对享受服务队列:对享受服务队列:b * t (ab0)新建就绪队列进程转入享受服务队列的时机:新建就绪队列进程转入享受服务队列的时机:就绪队列的第一个进程的优先级(就绪队列的第一个进程的优先级(a*(t-t1))享受服务队)享受服务队列最后一个进程的优先级(列最后一个进程的优先级(b*t)时)时当享受服务队列为空时,新建就绪队列头一进程可转入享受服当享受服务队列为空时,新建就绪队列头一进程可转入享受服务队列务队列注:注:ab0 否则:否则:ba0,成为,成为 ab=0,成为,成为62例:有个进程,它们的周期时值及优先级如下表:周期性
22、优先数进入时刻)在非剥夺方式下,求它们的调度序列,平均等待时间,平均周转时间,平均带权周转时间)在可剥夺方式下,设优先级按如下规律变化:连续执行10ms以上后优先数加,就绪队列中的进程每40ms优先数减;则求它们的调度序列,平均等待时间,平均周转时间,平均带权周转时间63 多队列轮转法:多队列轮转法:进程按不同的优先级进入不同的队列,每个队列又采用不同的进程按不同的优先级进入不同的队列,每个队列又采用不同的算法,如图所示:算法,如图所示:cpu1cpu2cpun完成完成完成完成完成完成(时间片)(时间片)(时间片)(时间片)RR(时间片(时间片n)时间片到(剥夺)时间片到(剥夺)时间片到(剥夺
23、)时间片到(剥夺) 注:注:n642.4.6 实时系统调度方法:实时系统调度方法: 实时系统处理的外部事件:实时系统处理的外部事件:硬实时任务:系统必须完全满足任务的时限要求硬实时任务:系统必须完全满足任务的时限要求软实时任务:允许系统对任务的时限要求有一定的延迟软实时任务:允许系统对任务的时限要求有一定的延迟 实时操作系统的功能实时操作系统的功能:快速的进程或线程切换快速的进程或线程切换快速的外部中断响应快速的外部中断响应基于优先级的随时强占式调度策略基于优先级的随时强占式调度策略 65 实时操作系统的调度算法:实时操作系统的调度算法:时限调度算法:时限调度算法:选择时限要求最近的任务优先占
24、有处理机,它是抢先式选择时限要求最近的任务优先占有处理机,它是抢先式的,即将新任务的时限与当前任务的时限进行比较,选择时的,即将新任务的时限与当前任务的时限进行比较,选择时限最近的执行限最近的执行(时限可以是处理开始时限或处理结束时限)(时限可以是处理开始时限或处理结束时限)频率单调调度算法:频率单调调度算法:周期长的任务优先级越低周期长的任务优先级越低(适用于多周期性实时任务)(适用于多周期性实时任务)1/n662.4.7 线程调度线程调度用户级线程的可能调度用户级线程的可能调度67内核级线程的可能调度内核级线程的可能调度682.5 经典的进程间通信问题经典的进程间通信问题2.5.1 生产者
25、生产者-消费者问题消费者问题P1P2Pm12nC1C2C3有界缓冲区生产者消费者之间满足的条件:生产者消费者之间满足的条件:消费者想接收数据时,有界缓冲区中至少有一个单元是满的消费者想接收数据时,有界缓冲区中至少有一个单元是满的生产者想发送数据时,有界缓冲区中至少有一个单元是空的生产者想发送数据时,有界缓冲区中至少有一个单元是空的有界缓冲区是临界资源有界缓冲区是临界资源69702.5.2 哲学家就餐问题哲学家就餐问题 哲学家的活动:吃饭/思考 吃饭需要2把叉子 一次只拿一把? 给出描述哲学家行为的、不会死锁的程序结构* It is useful for modeling processes that are competing for exclusive acces
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁现代服务职业技术学院《人体解剖学局解》2023-2024学年第一学期期末试卷
- 兰州大学《定向运动与素质拓展》2023-2024学年第一学期期末试卷
- 江西工业贸易职业技术学院《学术写作与文献检索》2023-2024学年第一学期期末试卷
- 吉林医药学院《市政工程识图》2023-2024学年第一学期期末试卷
- 湖南水利水电职业技术学院《金融风险管理(实验)》2023-2024学年第一学期期末试卷
- 重庆艺术工程职业学院《计算机辅助产品设计》2023-2024学年第一学期期末试卷
- 重庆化工职业学院《大学生创新创业意识》2023-2024学年第一学期期末试卷
- 中央美术学院《古典园林建筑构造》2023-2024学年第一学期期末试卷
- 浙江农林大学《工程图学综合训练》2023-2024学年第一学期期末试卷
- 郑州商贸旅游职业学院《建筑工程计量与计价B》2023-2024学年第一学期期末试卷
- 福建省厦门市2023-2024学年高二上学期期末考试语文试题(解析版)
- 课文背书统计表
- 三年级语文下册教案-14 蜜蜂3-部编版
- 苏教版小学数学四年级下册全册教案
- DB51T2939-2022 彩灯(自贡)制作工艺通用规范
- 押金收据条(通用版)
- 药理治疗中枢神经系统退行性疾病药.pptx
- 强三基反三违除隐患促安全百日专项行动实施方案
- 新人教版七年级数学上册全册专项训练大全
- 标准预防--ppt课件
- 压力管道氩电联焊作业指导书
评论
0/150
提交评论