操作系统原理_方敏_进程与线程基本知识_第1页
操作系统原理_方敏_进程与线程基本知识_第2页
操作系统原理_方敏_进程与线程基本知识_第3页
操作系统原理_方敏_进程与线程基本知识_第4页
操作系统原理_方敏_进程与线程基本知识_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统实验课程 进程和线程基本知识 操作系统课程组 Xidian UniversityOS Experiments -2- 内容安排 进程的基本概念进程的基本概念 进程调度进程调度 进程间的相互作用进程间的相互作用 线程的基本概念线程的基本概念 Xidian UniversityOS Experiments -3- 进程的基本概念 定义定义 v进程是程序的一次执行,该进程可与其它进程并发执行;它是一个动进程是程序的一次执行,该进程可与其它进程并发执行;它是一个动 态的实体,在传统的操作系统设计中,进程既是资源的基本分配单元,态的实体,在传统的操作系统设计中,进程既是资源的基本分配单元, 也是

2、基本的执行单元。也是基本的执行单元。 进程与程序的区别和联系进程与程序的区别和联系 v程序是静态的,进程是动态的。程序是有序代码的集合;进程是程序程序是静态的,进程是动态的。程序是有序代码的集合;进程是程序 的一次执行。的一次执行。 v进程是暂时的,程序的永久的。进程是一个变化的过程,有生命周期,进程是暂时的,程序的永久的。进程是一个变化的过程,有生命周期, 暂时存在,程序没有生命周期,可长久保存。暂时存在,程序没有生命周期,可长久保存。 v进程还是操作系统资源分配和保护的基本单位,程序没有此功能。进程还是操作系统资源分配和保护的基本单位,程序没有此功能。 v进程与程序的对应关系。通过多次执行

3、,一个程序可对应多个进程;进程与程序的对应关系。通过多次执行,一个程序可对应多个进程; 通过调用关系,一个进程可包括多个程序。通过调用关系,一个进程可包括多个程序。 v进程与程序的结构不同。进程与程序的结构不同。 Xidian UniversityOS Experiments -4- 进程的基本概念 进程的组成进程的组成 PCB Process Control Block 灵魂,进程存在的唯一标志。灵魂,进程存在的唯一标志。 数据数据 程序程序 程序:描述了进程要完成的功能,是程序:描述了进程要完成的功能,是 进程执行时不可修改的部分。进程执行时不可修改的部分。 数据:进程执行时用到的数据(用

4、数据:进程执行时用到的数据(用 户输入的数据、常量、静态变量)。户输入的数据、常量、静态变量)。 工作区工作区 工作区:参数传递、系统调用时使工作区:参数传递、系统调用时使 用的动态区域(堆栈区)。用的动态区域(堆栈区)。 实体实体 Xidian UniversityOS Experiments -5- 进程的基本概念 进程进程/线程的执行线程的执行 运行运行 Running 被调度被调度 时间片用时间片用 完,中断完,中断 资源释放或资源释放或 事件完成事件完成 阻塞阻塞 Blocked 等待资源等待资源 和事件和事件 进程占有处理机,处理机正在执行该进进程占有处理机,处理机正在执行该进 程

5、的程序。程的程序。 进程已获得除处理机外进程已获得除处理机外 的所需资源,等待分配的所需资源,等待分配 处理机执行。处理机执行。 也叫等待、挂起、睡眠态,此时进也叫等待、挂起、睡眠态,此时进 程因等待某种条件(如程因等待某种条件(如I/O操作或进操作或进 程同步)无法运行。引起进程阻塞程同步)无法运行。引起进程阻塞 的原因很多,系统将根据不同的阻的原因很多,系统将根据不同的阻 塞原因将进程插入某个相应的阻塞塞原因将进程插入某个相应的阻塞 队列中。队列中。 就绪就绪 Ready Xidian UniversityOS Experiments -6- 进程的基本概念 运行运行 就绪就绪 阻塞阻塞

6、被调度被调度 时间片用时间片用 完,中断完,中断 资源释放或资源释放或 事件完成事件完成 等待资源等待资源 和事件和事件 新建新建 创建完毕创建完毕 结束结束 结束执行结束执行 五种进程状态转换五种进程状态转换 Xidian UniversityOS Experiments -7- 进程的基本概念 进程的特征进程的特征 v并发性:执行时间可以重叠;并发性:执行时间可以重叠; v动态性:有生命周期,存在不同的状态;动态性:有生命周期,存在不同的状态; v独立性:独立执行,是资源分配和调度的独立单位;独立性:独立执行,是资源分配和调度的独立单位; v制约性:虽然独立执行,但可能存在相互制约关系;制

7、约性:虽然独立执行,但可能存在相互制约关系; v异步性:各进程执行时间相对独立,不确定;异步性:各进程执行时间相对独立,不确定; v结构性:拥有固定结构。结构性:拥有固定结构。 Xidian UniversityOS Experiments -8- 进程调度 定义定义 v就是按照一定的算法,从就绪队列中选择某个进程占用就是按照一定的算法,从就绪队列中选择某个进程占用CPU的方法的方法 对对CPU资源进行合理的分配使用,以提高处理机利用率,并使各进资源进行合理的分配使用,以提高处理机利用率,并使各进 程公平得到处理机资源。程公平得到处理机资源。 进程调度算法进程调度算法 v先来先服务调度算法先来

8、先服务调度算法 (FCFS, First Come First Served) PCBPCBPCBPCB 就绪队列就绪队列 CPU Xidian UniversityOS Experiments -9- 进程调度 v基于优先数的调度算法基于优先数的调度算法(Priority Scheduling Algorithm) 思想:给每一个进程设置一个优先数思想:给每一个进程设置一个优先数(优先级优先级),系统在调度时优先选择具,系统在调度时优先选择具 有高优先级的进程占用有高优先级的进程占用CPU。具有相同优先数的进程按照。具有相同优先数的进程按照FCFS算法执行。算法执行。 优先数的确定:优先数的

9、确定: 运行前:可根据外设的使用情况,运行时间的长短,紧急程度,重要运行前:可根据外设的使用情况,运行时间的长短,紧急程度,重要 程度等因素确定。程度等因素确定。 运行中:运行中: l静态优先数法:静态优先数法:进程创建时就规定好它的优先数,这个数值在进进程创建时就规定好它的优先数,这个数值在进 程运行时不变。程运行时不变。 l动态优先数法动态优先数法:进程的优先数在执行过程中可以根据情况变化而:进程的优先数在执行过程中可以根据情况变化而 改变。改变。 Xidian UniversityOS Experiments -10- 进程调度 v时间片轮转法时间片轮转法 (RR, Round Robi

10、n) 特点:专门为分时系统设计。类似于特点:专门为分时系统设计。类似于FCFS算法但是增加了抢占及进程间算法但是增加了抢占及进程间 的切换功能。的切换功能。 思想:系统规定一个时间长度思想:系统规定一个时间长度(时间片时间片/时间量时间量)作为允许一个进程运行的作为允许一个进程运行的 时间,如果在这段时间该进程没有执行完,则必须让出时间,如果在这段时间该进程没有执行完,则必须让出CPU等待下一次等待下一次 分配的时间片。分配的时间片。 PCBPCBPCBPCB CPU就绪队列就绪队列 时间片用完时间片用完 执行执行 Xidian UniversityOS Experiments -11- 进程

11、调度 v多级反馈队列调度算法多级反馈队列调度算法(Multilevel Feedback Queue Scheduling) 思想:引入多个就绪队列,通过对各队列的区别对待,达到一个综合的思想:引入多个就绪队列,通过对各队列的区别对待,达到一个综合的 调度目标。调度目标。 CPU 降低进程优先级降低进程优先级 完成完成 PCBPCBPCBPCB 最高优先级队列最高优先级队列 PCBPCBPCBPCB 次高优先级队列次高优先级队列 PCBPCBPCBPCB 低优先级队列低优先级队列 执执 行行 时时 间间 递递 增增 Xidian UniversityOS Experiments -12- 进程

12、间的相互作用 同步同步 v进程之间相互合作、协同工作的关系称为进程的同步。简单说来就是:进程之间相互合作、协同工作的关系称为进程的同步。简单说来就是: 多个相关进程在执行次序上的协调。进程间的直接制约。多个相关进程在执行次序上的协调。进程间的直接制约。 临界资源临界资源 v也称独占资源,是指在一段时间内只允许一个进程访问的资源。例如也称独占资源,是指在一段时间内只允许一个进程访问的资源。例如 打印机,磁带机,也可以是进程共享的数据、变量等。打印机,磁带机,也可以是进程共享的数据、变量等。 互斥互斥 v定义:当多个进程因为争夺临界资源而互斥执行称为进程的互斥。进定义:当多个进程因为争夺临界资源而

13、互斥执行称为进程的互斥。进 程间的间接制约。程间的间接制约。 Xidian UniversityOS Experiments -13- 进程间的相互作用 互斥解决方案互斥解决方案 v关中断法关中断法(开关中断指令开关中断指令) 也称为也称为“硬件锁硬件锁”,是实现互斥最简单的方法。,是实现互斥最简单的方法。 做法:每个进程在进入临界区后先关中断,屏蔽其它请求,在离开之前做法:每个进程在进入临界区后先关中断,屏蔽其它请求,在离开之前 再开中断。再开中断。 v锁变量法锁变量法(测试和设置指令测试和设置指令) 做法:设置一个共享做法:设置一个共享(锁锁)变量变量W,初值为,初值为0。当一个进程想进入

14、其临界区。当一个进程想进入其临界区 时,它首先测试这把锁。如果锁的值为时,它首先测试这把锁。如果锁的值为0,则进程将其置为,则进程将其置为1并进入临界并进入临界 区。若锁已经为区。若锁已经为1,则进程等待直到其变成,则进程等待直到其变成0。于是,。于是,0就表示临界区内没就表示临界区内没 有进程,有进程,1表示已经有某个进程进入了临界区。表示已经有某个进程进入了临界区。 v其它方法其它方法 Dekker算法:进程被强制轮流进入临界区算法:进程被强制轮流进入临界区(不管是否愿意不管是否愿意)。 Peterson算法:设置标识指示是否又要求进入临界区。算法:设置标识指示是否又要求进入临界区。 Xi

15、dian UniversityOS Experiments -14- 进程间的相互作用 信号量信号量(Semaphore)和和P、V操作操作 v信号量:信号量:1965年由荷兰学者年由荷兰学者Dijkstra提出,它是一种特殊的数据结构。提出,它是一种特殊的数据结构。 功能:表示资源的实体。功能:表示资源的实体。 特殊之处:特殊之处: 每个信号量与一个队列关联;每个信号量与一个队列关联; 其值只能通过初始化和其值只能通过初始化和P、V操作来访问。操作来访问。 v信号量的类型:信号量的类型: 公用信号量:用于进程间的互斥,初值通常为公用信号量:用于进程间的互斥,初值通常为1 私有信号量:用于进程

16、间的同步,初值通常为私有信号量:用于进程间的同步,初值通常为0或或n Xidian UniversityOS Experiments -15- 进程间的相互作用 vP、V操作操作 (均是原语均是原语) P操作:荷兰语操作:荷兰语“proberen”“检测检测”之意。之意。 意味着请求分配一个单位资源。意味着请求分配一个单位资源。 P(S): /S为信号量为信号量 S = S - 1; if (S 0) 调用进程被阻塞,调用进程被阻塞, 进入进入S的等待队列;的等待队列; PCBPCBPCBPCB 和和S相关的等待队列相关的等待队列 PCB Xidian UniversityOS Experim

17、ents -16- 进程间的相互作用 V操作:荷兰语操作:荷兰语“verhogen”“增量增量”之意,之意, 意味着释放一个单位资源。意味着释放一个单位资源。 V(S): /S为信号量为信号量 S = S + 1; if (S = 0) 从从S的等待队列中唤醒一个进程的等待队列中唤醒一个进程 使其进入就绪状态;使其进入就绪状态; PCBPCBPCBPCB 和和S相关的等待队列相关的等待队列 PCB Xidian UniversityOS Experiments -17- 进程间的相互作用 信号量及信号量及P、V操作的应用操作的应用 v进程的互斥进程的互斥 semaphore S; /设置公有信

18、号量设置公有信号量 S = 1; /初值初值 P(S); print file1; V(S); P(S); print file2; V(S); Xidian UniversityOS Experiments -18- 进程间的相互作用 v进程的同步进程的同步生产者与消费者问题生产者与消费者问题 问题描述问题描述: 生产者生产者 缓冲区缓冲区 消费者消费者 cooking; P(S1); put in dish; V(S2); semaphore S1, S2 ; /设置私有信号量设置私有信号量 S1=1; /表示盘子是否空表示盘子是否空 S2=0; /表示盘子里是否有东西表示盘子里是否有东西

19、 P(S2); take out from dish; V(S1); eating; Xidian UniversityOS Experiments -19- 线程的基本概念 定义定义 v线程线程(thread)也叫轻型进程,是一个可执行的实体单元。它代替以往也叫轻型进程,是一个可执行的实体单元。它代替以往 的进程,成为现代操作系统中处理机调度的基本单位。的进程,成为现代操作系统中处理机调度的基本单位。 线程和进程的关系线程和进程的关系 多线程模型多线程模型 1、线程是进程的一个组成部分,线程由进程创、线程是进程的一个组成部分,线程由进程创 建,因此一个进程中至少存在一个线程,线程还建,因此一

20、个进程中至少存在一个线程,线程还 可以创建其它线程。可以创建其它线程。 2、进程是资源分配和保护的基本单位,线程只、进程是资源分配和保护的基本单位,线程只 能在进程的地址空间活动,线程只能使用其所在能在进程的地址空间活动,线程只能使用其所在 进程的资源。进程的资源。 Xidian UniversityOS Experiments -20- 线程的基本概念 线程的结构线程的结构 PCB 程序程序数据数据 进进 程程 地地 址址 空空 间间 TCB 栈栈 线程线程1 TCB 栈栈 线程线程2 TCB 栈栈 线程线程3 线程的特点:线程的特点: 1、线程作为基本的调度单位,、线程作为基本的调度单位, 其状态有:就绪、运行、阻塞其状态有:就绪、运行、阻塞 等

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论