计算机软件技术基础 操作系统(3).

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

Edu.51cto.com 高校教师、高级项目经理 任铄 QQ : edu.51cto.com 第二章 进程管理 2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 进程通信 2.6 线程.
高级服务器设计和实现 1 —— 基础与进阶 余锋
阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
3.2 进程的描述 进程的特征 1 .动态性 动态性是进程最基本的特征。 动态性是进程最基本的特征。 2. 并发性 这是指多个进程实体,同存于内存中,能在一段时 间内同时运行。并发性是进程的重要特征,同时也成 为 OS 的重要特征。引入进程的目的也是为了使该进 程的程序能和其它进程的程序并发执行。
Linux 系统. 操作系统发展需求 1 没有操作系统 2 简单批处理操作系统 3 多道程序设计的批处理 4 多道程序设计的分时操作系统 5 多处理机并行系统 6 网络操作系统 7 分布式操作系统.
进程管理习题 设有一个可以装 A 、 B 两种物品的仓库,其 容量无限大,但要求仓库中 A 、 B 两种物品 的数量满足下述不等式: -M ≤ A 物品数量 -B 物品数量 ≤N 其中, M 和 N 为正整数。试用信号量和 P 、 V 操作描述 A 、 B 两种物品的入库过程。
计算机操作系统 第二章 进程管理 高校教师、高级项目经理 任铄 QQ:
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
操作系统 年级:2003春 专业:计算机应用专业.
第二章 进程管理 2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 管程机制 2.6 进程通信
Chapter Two Process Management.
(四)进程互斥 一、进程互斥的概念 1. 临界资源 例1:两个进程A、B共享一台打印机
进程管理习题 图书馆有100个座位,有一张登记表,要求: 用P、V原语描述一个读者的使用过程 阅读者进入时登记,取得座位号; 出来时,注销;
实用操作系统概念 张惠娟 副教授 1.
中央广播电视大学计算机课程 操 作 系 统. 中央广播电视大学计算机课程 操 作 系 统 1、《操作系统》教材 2、《操作系统实验》教材 3、操作系统课程录像 15讲 主编/主讲:孟庆昌 中央电大出版社出版 课程使用的媒体 1、《操作系统》教材 2、《操作系统实验》教材 3、操作系统课程录像.
中央广播电视大学计算机课程 操 作 系 统.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
第三章 进程管理 本章重点: 进程的定义、特征、进程控制的基本概念。 进程PCB基本结构,作用及进程的状态及转换。
进程及进程管理 第4章 进程及进程管理.
管理信息结构SMI.
走进编程 程序的顺序结构(二).
第二章 进程管理.
临界区软件互斥软件实现算法.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
操作系统原理 Operating System Principles
第2章 进程的描述与控制 2.1 进程及其描述 2.2 进程基本状态及其相互转换 2.3 进程控制 2.4 线程 进程的引入
本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
动态规划(Dynamic Programming)
临界区软件互斥软件实现算法 主讲教师:夏莹杰
CPU结构和功能.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
实验二、线程同步与通信 一、实验目的 1、掌握Linux下线程的概念; 2、了解Linux线程同步与通信的主要机制;
解决变化问题的自底向上 流程建模方法 严志民 徐玮.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
微机系统的组成.
第四章 进程管理 多道程序设计 进程 进程间的相互作用 进程间的通信 进程调度(CPU调度) 线程.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
第四章 并发处理 (一)并发程序及特点 (二)进程的基本概念 (三)进程控制 (四)进程互斥 (五)进程同步 (六)线程的基本概念.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
实验四、TinyOS执行机制实验 一、实验目的 1、了解tinyos执行机制,实现程序异步处理的方法。
Process Concept & Process Control
进程同步(Process Synchronization)之 临界区问题(Critical Section Problem)
进程概念.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
iSIGHT 基本培训 使用 Excel的栅栏问题
3.4.6 进程的挂起和激活 当出现了引起进程挂起的事件时,用户请求将自己挂起,或者父进程请求挂起自己的子进程,应该利用挂起原语suspend( ) 挂起原语的执行过程:检查被挂起进程的状态;如果处于活动就绪状态,就将它改为静止就绪;如果处于活动阻塞,则改为静止阻塞。 进程的激活过程 当发生激活事件后,系统利用激活原语Active()将指定进程激活。激活原语先将进程从外存调入内存,然后检查进程的状态。
临界区问题的硬件指令解决方案 (Synchronization Hardware)
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
Google的云计算 分布式锁服务Chubby.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
异分母分数加、减法.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
本节内容 SEMAPHORE 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
Presentation transcript:

计算机软件技术基础 操作系统(3)

3.3 进程及进程管理 进程! 1. 为什么要引入进程的概念? 程序——由若干条机器指令所组成的解题顺序和步骤。 在单任务操作系统中,程序执行的结果只与程序本身有关。 main( ) { int a; int b; a = 5; b = a + 5; printf(“ result = %d”, b); } 然而,当程序的执行方式变为复杂的“并发”执行之后,一个程序执行的结果并不完全由程序本身来决定! 因此,我们需要一个更准确的概念来刻画程序的执行。这就是 进程!

1)程序的顺序执行 一个计算过程往往由若干个简单的操作所组成。如果这些操作必须按某种先后次序来执行,那么这样一类计算过程称为程序的顺序执行过程,这种程序称为顺序程序。 程序顺序执行的特征 顺序性 顺序程序的各个操作是顺序执行的 封闭性 程序一旦开始执行,其计算结果不受外界因素的影响 可再现性 初始条件不变的情况下,程序多次执行的结果一样

单道程序执行时的先后次序图 I1 输入设备 处理机 打印机 I2 C1 I3 C2 P1 C3 P2 t1 t2 t3 t4 t7 t5 作业1 作业2 作业3

2)程序的并发执行 若干个程序段同时在系统中运行,这些程序段的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,称为程序的并发执行。 程序并发执行的特征: 失去了程序的封闭性和可再现性 程序与计算不再一对应 程序并发执行的相互制约 并发程序的描述: cobegin S1; S2; …; Sn; coend 表示语句S1,S2,…,Sn可以并发执行。

多道程序执行时的先后次序图 I1 P3 输入设备 处理机 打印机 I2 C1 I3 C2 P1 C3 P2 t1 t2 t3 t4 t5

例:共享变量n的两个程序段并发执行的算法。 main( ) { int n=0; cobegin    p1: while (A的任务未完成)    { …;  n++; … ; }    p2: while (B的任务未完成) { …; printf ("N IS % d\n",n); n=0; … ; } coend …; } 执行的结果与顺序有关 问题:这个程序的执行可能产生哪些结果?

2. 进程的定义 分析并发程序的活动规律:执行-暂停-执行 如何让并发程序的执行获得可再现性,这个问题需要依靠控制程序的执行过程来解决。因此我们引入“进程”的概念来描述程序的执行过程。 所谓进程,就是一个程序在给定活动空间和初始环境下,在一个处理机上的执行过程。

讨论:进程和程序这两个概念有什么区别? 类似于乐曲与乐曲的一次演奏之间的关系。 程序 进程 静态的概念 动态的概念 不能并行活动 独立的运行单位,能并行活动 不是一个基本单位 是处理机调度、竟争资源的基本单位 一个程序可对应多个进程 一个进程可以执行多个程序段

3. 进程的基本状态及变迁 (1)进程的三种基本状态 就绪状态(ready) ——存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就可以立即运行,这些进程所处的状态称为就绪状态。 运行状态(running) ——当进程得到处理机控制权时,它的程序正在处理机上运行,该进程所处的状态为运行状态。 等待状态(wait) ——若一个进程正等待着某一事件发生(如等待输入输出操作的完成)而暂时停止执行,这时,即使给它CPU时间,它也无法执行,则称该进程处于等待状态(又可称为阻塞状态或挂起状态)。

× (2)进程状态的变迁及原因 进程随着自身的推进和外界条件的变化而从一个状态变换为另一个状态称为状态变迁。 运 行 等 待 就 绪 运 行 等 待 就 绪 服务请求 (请求I/O等) 服务完成/事件来到 进程调度 时间片到 × 注意:有一种状态变迁是永远也不可能发生的。

4. 进程的组成 一个进程包含4个组成部分: 程序——描述进程要完成的功能的指令序列; 数据——程序加工的对象; 工作区——程序执行使用的内存区域,如用户栈或系统栈; 进程控制块——存放进程控制和管理信息的数据结构。 进程控制块PCB(Process Control Block)是进程存在的标志!是进程的“档案袋”。 进程创建时建立PCB。 在进程的生命周期内,OS通过对PCB的管理来实现对进程的管理。 进程撤消时删除相应的PCB。

动态特性 运行控制 PCB是纪录进程动态特性,运行控制等信息的数据结构。 进程标识符 CPU现场(程序状态字、寄存器内容等) 进程状态 优先级 运行控制 资源清单 通信机制(信箱或消息队列) 同步机制(信号量) 队列指针、家族关系 存储位置

5. 进程控制 (1)进程控制的功能 对系统中的进程实施有效的管理和控制。具体表现为控制进程进入不同的状态。 结束 新进程 就绪 执行 等待 (2)进程控制功能的实现 进程的控制动作由操作系统完成; 操作系统提供相应的原语以备调用 执行时不可中断的系统调用

(3)进程控制原语 进程创建——创建一个新进程 进程撤消——撤消一个已完成任务的进程 进程阻塞——使进程转换为等待状态 进程唤醒——唤醒一个等待进程

6. 进程的互斥与同步 (1)互斥 三个基本概念: 临界资源—一次仅允许一个进程使用的资源称为临界资源。 反映了进程间的竞争与合作 (1)互斥 三个基本概念: 临界资源—一次仅允许一个进程使用的资源称为临界资源。 许多物理设备(如打印机等)和软件资源(如变量、数据、队列等)都具有这种独占性的特点。 临界区——在进程中访问临界资源的那段代码称为临界区。 要注意区分临界资源与临界区。 互斥——当一个进程正在访问某临界区时,不允许其它进程进入其相应的临界区,这种相互制约的关系称为互斥。 例如:飞机订票系统中各个订票点对机票库的访问

... ... 进入区 进入区 退出区 退出区 ... ... 进程的互斥进入临界区 改变资源状态 等待资源释放 临界区 临界区 释放资源 唤醒等待进程 退出区 退出区 ... ... 进程 1 进程 2

问题:如何保证进程之间是互斥的进入临界区的呢? 答:操作系统提供了进程间同步和互斥的机制,程序中使用这些机制来保证执行中的互斥进入。其中最常见的机制就是信号灯。 什么是信号灯? 信号灯是一个二元组(s, q),其中:s 是一个具有非负初值的整型变量,q 是一个初始状态为空的队列指针。 通过对信号灯的P、V操作,进程可以实现相互间的互斥。

P、V操作原语的含义和实现 P操作表示对资源的申请 V操作表示对资源的释放 P操作的实现: (1)s 值减1; (2)若相减结果大于等于0, 则进程继续执行; (3)若结果小于0,则该进程挂起。 注:挂起该进程包括:保留调用进程CPU现场;置“等待”状态;入等待队列;转进程调度; V操作的实现: (1)s 值加1; (2)若相加结果大于0,进 程继续执行; (3)否则,唤醒一个等待该信号灯的进程,然后本进程继续执行。 注:等待该信号灯的进程也就是队列q 中的进程。

两个进程互斥的例子 问题:x代表某航班机座号,p1和p2两个售票进程,售票工作是对变量x加1。试用信号灯的P、V操作实现这两个进程的互斥。 设:mutex为互斥信号灯,初值为1 ; p1( ) { …… p(mutex); x:=x+1 ; v(mutex); } p2( ) { …… p(mutex); x:=x+1 ; v(mutex); }

为完成某个任务,并发进程在一些关键点可能些需要相互等待与互通消息, 这种关系称为同步。 (2)同步 为完成某个任务,并发进程在一些关键点可能些需要相互等待与互通消息, 这种关系称为同步。 同步进程间是一种合作关系 例如:病人就诊 门诊医生: …… 开化验单; 等化验结果; 继续诊病; 化验员: …… 等化验单; 化验; 填写化验结果;

计算进程 cp 和打印进程 op 共用一个缓冲区,为了完成正确的计算与打印,试用信号灯实现这两个进程的同步。 同步进程的例子 计算进程 cp 和打印进程 op 共用一个缓冲区,为了完成正确的计算与打印,试用信号灯实现这两个进程的同步。 cp 进程把计算结果送入 buf 之后,op 进程才能从 buf 中取出结果打印,即当 buf 内有信息时,op 进程才能动作,否则必须等待。 op 进程把 buf 中的数据取出打印之后,cp 进程才能把下一个计算结果送入 buf 中,即当 buf 为空时,cp 进程才能动作,否则必须等待。 缓冲区buf op cp 设置:两个信号灯Sa和Sb: Sa:表示缓冲区中是否有可供打印的计算结果,其初值为0; Sb :表示缓冲区有无空位置存放新的信息,其初值为1。

main( ) { int Sa=0; /* 表示buf中有无信息 */ int Sb=1; /* 表示buf中有无空位置 */ cobegin cp( ); op( ); coend } cp( ) { while (计算未完成) { 得到一个计算结果; P(Sb); 将数送到缓冲区中; V(Sa); } op( ) { while (打印工作未完成) { P(Sa) ; 从缓冲区中取一数; V(Sb) ; 从打印机上输出; }

小 结 结 束 进程概念的引入 程序的顺序执行和并发执行的特点 进程概念的基本概念 1. 进程定义(定义、进程与程序的区别 ) 小 结 进程概念的引入 程序的顺序执行和并发执行的特点 进程概念的基本概念 1. 进程定义(定义、进程与程序的区别 ) 2. 进程状态(三个基本状态、状态变迁图) 3. 进程描述(pcb结构、定义、作用) 进程的互斥与同步 1. 临界资源 2. 临界区 3. 互斥和同步 4. 用信号灯的P、V操作实现进程的互斥与同步 结 束