文档详情

《操作系统》2进程与线程课件.ppt

发布:2017-09-10约字共29页下载文档
文本预览下载声明
2.1 进程的概念 2.1.2 进程的定义 2.1.3 2.2 进程的管理 2.2.1 进程控制块 2.2.2 进程控制块队列 2.2.3 进程控制的系统调用命令 2.3 线程 2.3.1 线程的概念 2.3.2 线程的实现 2.3.3 线程与进程的关系 * * 第2章 进程与线程 本章目录 2.1 进程的概念 2.1.1 多道程序设计环境下的程序特点 2.1.2 进程的定义 2.2 进程的管理 2.2.1 进程控制块 2.2.2 进程控制块队列 2.4.3 Linux进程的生存过程 2.2.3 进程控制的系统调用命令 2.1.3 进程的状态及状态变迁 2.3 线程 2.3.1 线程的概念 2.3.2 线程的实现 2.3.3 线程与进程的关系 2.4 Linux的进程 2.4.1 Linux进程 2.4.2 Linux的几种链接信息 2.1.1 多道程序设计环境下的程序特点 . 单道程序设计环境下的程序特点 1. 资源的独占性 程序A 程序B 程序C 时间 4 2 3 4 2 4 5 3 3 0 4 6 9 14 18 20 23 26 30 图例:打印机输出 CPU执行 . . 执行的顺序性 结果的再现性 多道程序设计环境下的程序特点 2. 程序A 时间 0 4 6 9 12 15 17 13 18 22 程序B 程序C . 执行的并发性:宏观上,在内存的多个程序都按自己程序规定的操作步骤向前推进;微观上,CPU在任何时刻只执行一个程序,它们轮流占用CPU,交替地执行着。 . 相互的制约性:内存里的多个程序共享系统中的资源,相互间必然有各种制约。一种是“间接制约关系”,另一种是“直接制约关系” 。 程序P1调用echo()函数,getchar()接收到从键盘输入的字符x,在将其存于变量chin后被中断; 程序P1从断点恢复执行。此时由于P2调用了echo(),chin里原先的x被y所覆盖。于是,在屏幕上显示的是y,而不是x。 程序P1调用echo()函数,getchar()接收到从键盘输入的字符x,然后在屏幕上显示出字符x; . 状态的多变性:诸多程序在运行过程中有着各种制约关系,致使内存中每一个程序的状态总在不断的变化之中:时而获得CPU处于运行状态;时而由于输入/输出或申请某种资源未得到满足而只好挂起来等待。它们走走停停,停停走走,交替式地向前推进,直至终点。 例2-1 : 在多道程序设计环境下,“结果再现性”被打破的简单例子 void echo() { chin = getchar(); chout = chin; putchar(chout); } 执行顺序1 : 程序P2调用echo()函数,getchar()接收到从键盘输入的字符y,然后在屏幕上显示出字符y。 (1) (2) . . 执行顺序2 : (1) (2) (3) 程序P2获得CPU使用权,调用echo()函数,从头做到尾,屏幕上显示字符y; 返回目录 . 1. 进程的定义 . 进程是程序的一次运行活动; 进程的运行活动是建立在某个数据集合之上的; 进程要在获得资源的基础上从事自己的运行活动。 所谓“进程”是指一个程序在给定数据集合上的一次执行过程,是系统进行资源分配和运行调度的独立单位。 可从三个方面来描述进程: (1) (2) (3) 例2-2 : 驼峰溜放控制过程中的进程 驼峰 到达场 编组场 溜放中 的一勾车 雷达 测速、测长 道岔 (轨道电路) 一列新货车 一列解体货车 缓行器 1 2 3 4 5 6 7 8 股道号 溜放中 的一勾车 扳道岔程序 . . 缓行器控制程序 . 雷达测速程序 . 雷达测长程序 . 巡回检测程序 2. 进程与程序的关系 进程是一个动态的概念,强调的是程序的一次“执行”过程;程序则是一组有序指令的集合,在多道程序设计环境下,它不涉及“执行”,是一个静态的概念。 . . 不同进程可执行同一个程序。由进程的定义可知,区分进程的条件一是所执行的程序,二是数据集合。即使多个进程执行相同的一个程序,只要它们运行在不同的数据集合上,它们就是不同的进程。 . 每个进程都有自己的生命期。进程的本质是程序的一次执行过程,当系统要完成某项工作时,它就“创建”一个进程,以便执行事先编写好的、完成该工作的那段程序。程序执行完毕、完成预定的任务后,系统就“撤
显示全部
相似文档