进程和线程基本知识.ppt

上传人:本田雅阁 文档编号:2568588 上传时间:2019-04-10 格式:PPT 页数:22 大小:671.01KB
返回 下载 相关 举报
进程和线程基本知识.ppt_第1页
第1页 / 共22页
进程和线程基本知识.ppt_第2页
第2页 / 共22页
进程和线程基本知识.ppt_第3页
第3页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《进程和线程基本知识.ppt》由会员分享,可在线阅读,更多相关《进程和线程基本知识.ppt(22页珍藏版)》请在三一文库上搜索。

1、进程和线程基本知识,操作系统课程组,-2-,内容安排,进程的基本概念 进程调度 进程间的相互作用 线程的基本概念,-3-,进程的基本概念,定义 进程是程序的一次执行,该进程可与其它进程并发执行;它是一个动态的实体,在传统的操作系统设计中,进程既是资源的基本分配单元,也是基本的执行单元。 进程与程序的区别和联系 程序是静态的,进程是动态的。程序是有序代码的集合;进程是程序的一次执行。 进程是暂时的,程序的永久的。进程是一个变化的过程,有生命周期,暂时存在,程序没有生命周期,可长久保存。 进程还是操作系统资源分配和保护的基本单位,程序没有此功能。 进程与程序的对应关系。通过多次执行,一个程序可对应

2、多个进程;通过调用关系,一个进程可包括多个程序。 进程与程序的结构不同。,-4-,进程的基本概念,进程的组成,-5-,进程的基本概念,进程/线程的执行,运行 Running,进程占有处理机,处理机正在执行该进程的程序。,进程已获得除处理机外的所需资源,等待分配处理机执行。,也叫等待、挂起、睡眠态,此时进程因等待某种条件(如I/O操作或进程同步)无法运行。引起进程阻塞的原因很多,系统将根据不同的阻塞原因将进程插入某个相应的阻塞队列中。,-6-,进程的基本概念,运行,就绪,阻塞,被调度,时间片用完,中断,资源释放或事件完成,等待资源 和事件,五种进程状态转换,-7-,进程的基本概念,进程的特征 并

3、发性:执行时间可以重叠; 动态性:有生命周期,存在不同的状态; 独立性:独立执行,是资源分配和调度的独立单位; 制约性:虽然独立执行,但可能存在相互制约关系; 异步性:各进程执行时间相对独立,不确定; 结构性:拥有固定结构。,-8-,进程调度,定义 就是按照一定的算法,从就绪队列中选择某个进程占用CPU的方法对CPU资源进行合理的分配使用,以提高处理机利用率,并使各进程公平得到处理机资源。 进程调度算法 先来先服务调度算法 (FCFS, First Come First Served),CPU,-9-,进程调度,基于优先数的调度算法(Priority Scheduling Algorithm)

4、 思想:给每一个进程设置一个优先数(优先级),系统在调度时优先选择具有高优先级的进程占用CPU。具有相同优先数的进程按照FCFS算法执行。 优先数的确定: 运行前:可根据外设的使用情况,运行时间的长短,紧急程度,重要程度等因素确定。 运行中: 静态优先数法:进程创建时就规定好它的优先数,这个数值在进程运行时不变。 动态优先数法:进程的优先数在执行过程中可以根据情况变化而改变。,-10-,进程调度,时间片轮转法 (RR, Round Robin) 特点:专门为分时系统设计。类似于FCFS算法但是增加了抢占及进程间的切换功能。 思想:系统规定一个时间长度(时间片/时间量)作为允许一个进程运行的时间

5、,如果在这段时间该进程没有执行完,则必须让出CPU等待下一次分配的时间片。,-11-,进程调度,多级反馈队列调度算法(Multilevel Feedback Queue Scheduling) 思想:引入多个就绪队列,通过对各队列的区别对待,达到一个综合的调度目标。,-12-,进程间的相互作用,同步 进程之间相互合作、协同工作的关系称为进程的同步。简单说来就是:多个相关进程在执行次序上的协调。进程间的直接制约。 临界资源 也称独占资源,是指在一段时间内只允许一个进程访问的资源。例如打印机,磁带机,也可以是进程共享的数据、变量等。 互斥 定义:当多个进程因为争夺临界资源而互斥执行称为进程的互斥。

6、进程间的间接制约。,-13-,进程间的相互作用,互斥解决方案 关中断法(开关中断指令) 也称为“硬件锁”,是实现互斥最简单的方法。 做法:每个进程在进入临界区后先关中断,屏蔽其它请求,在离开之前再开中断。 锁变量法(测试和设置指令) 做法:设置一个共享(锁)变量W,初值为0。当一个进程想进入其临界区时,它首先测试这把锁。如果锁的值为0,则进程将其置为1并进入临界区。若锁已经为1,则进程等待直到其变成0。于是,0就表示临界区内没有进程,1表示已经有某个进程进入了临界区。 其它方法 Dekker算法:进程被强制轮流进入临界区(不管是否愿意)。 Peterson算法:设置标识指示是否又要求进入临界区

7、。 ,-14-,进程间的相互作用,信号量(Semaphore)和P、V操作 信号量:1965年由荷兰学者Dijkstra提出,它是一种特殊的数据结构。 功能:表示资源的实体。 特殊之处: 每个信号量与一个队列关联; 其值只能通过初始化和P、V操作来访问。 信号量的类型: 公用信号量:用于进程间的互斥,初值通常为1 私有信号量:用于进程间的同步,初值通常为0或n,-15-,进程间的相互作用,P、V操作 (均是原语),P操作:荷兰语“proberen”“检测”之意。 意味着请求分配一个单位资源。,P(S): /S为信号量 S = S - 1; if (S 0) 调用进程被阻塞, 进入S的等待队列;

8、 ,-16-,进程间的相互作用,V操作:荷兰语“verhogen”“增量”之意, 意味着释放一个单位资源。,V(S): /S为信号量 S = S + 1; if (S = 0) 从S的等待队列中唤醒一个进程 使其进入就绪状态; ,-17-,进程间的相互作用,信号量及P、V操作的应用 进程的互斥,semaphore S; /设置公有信号量 S = 1; /初值, P(S); print file1; V(S); , P(S); print file2; V(S); ,-18-,进程间的相互作用,进程的同步生产者与消费者问题,问题描述:,生产者,缓冲区,消费者, cooking; P(S1); p

9、ut in dish; V(S2); ,semaphore S1, S2 ; /设置私有信号量 S1=1; /表示盘子是否空 S2=0; /表示盘子里是否有东西, P(S2); take out from dish; V(S1); eating; ,-19-,线程的基本概念,定义 线程(thread)也叫轻型进程,是一个可执行的实体单元。它代替以往的进程,成为现代操作系统中处理机调度的基本单位。 线程和进程的关系,多线程模型,1、线程是进程的一个组成部分,线程由进程创建,因此一个进程中至少存在一个线程,线程还可以创建其它线程。 2、进程是资源分配和保护的基本单位,线程只能在进程的地址空间活动,

10、线程只能使用其所在进程的资源。,-20-,线程的基本概念,线程的结构,PCB,程序,数据,线程的特点: 1、线程作为基本的调度单位,其状态有:就绪、运行、阻塞等; 2、进程中都所有线程共享进程的存储空间和分配资源。,工作区,-21-,线程的基本概念,线程优势 创建和撤消线程的开销非常小。 不需要向系统请求独立的地址空间及进行相关的地址空间复制(例如父子进程),因此创建和撤销线程系统的开销要远小于进程。 切换迅速。 线程的上下文环境要比进程简单的多,因此线程间的切换远比进程快的多。 通信效率高。 同一进程中的线程由于共享同一地址空间,通信时不需要借助内核功能。 并发度高。 在多处理机系统中,对进程的个数是有所限制的,但对线程的个数理论上不存在限制,更发挥了多处理机系统的优势。,-22-,References,1方敏、王亚平、权义宁、王长山等编著,计算机操作系统,西安电子科技大学出版社,2004.8,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1