《进程和线程》PPT课件
- 格式:ppt
- 大小:1.18 MB
- 文档页数:119
进程与线程上篇进程在操作系统中是最基本、最重要的概念。
在概念上看,进程主要有两点:第一,进程是一个实体。
每一个进程都有它自己的地址空间,一般情况下,包括文本区域、数据区域和堆栈。
文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。
第二,进程是一个“执行中的程序”。
程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。
进程是在多道程序系统出现后,为了刻画系统内部的动态状况、描述运行程序的活动规律而引起的新概念,所有多道程序设计操作系统都建立在进程的基础之上。
在操作系统中引入进程可以刻画系统的动态性、发挥系统的并发性,而且可以解决共享性,正确的描述程序执行状态。
在特征上看,进程的特征主要有结构性、共享性、动态性、并发性、独立性与制约性。
进程包含数据集合和运行于其上的程序,它至少由程序块、数据块和进程控制块等要素组成,因此具有结构性。
动态性是指:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。
而并发性是指:任何进程都可以同其他进程一起并发执行。
进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位,因此具有独立性。
由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进,所以进程是具有制约性的。
按照进程在执行过程中的不同情况至少要定义三种进程状态:首先是运行态,运行态是指进程占用处理器的状态。
其次是就绪态,进程具备运行条件,等待系统分配处理器以便其运行状态,最后是等待态又称阻塞态或睡眠态,是指进程不具备运行条件,正在等待某个事件完成的状态。
在我们的计算机的操作系统中存在很多进程,而这些进程可以在任务管理器中查看。
如下图。
在我们的计算机中的浏览器、QQ等应用程序的使用都可以称作一个进程,而且配置鼠标的应用程序也属于进程。
进程和线程的概念⼀:什么是进程 进程是资源(CPU、内存等)分配的基本单位,它是程序执⾏时的⼀个实例。
程序运⾏时系统就会创建⼀个进程,并为它分配资源,然后把该进程放⼊进程就绪队列, 进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运⾏。
⼆:什么是线程 线程是程序执⾏时的最⼩单位,它是进程的⼀个执⾏流,是CPU调度和分派的基本单位。
⼀个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有⾃⼰的堆栈和局部变量。
线程由CPU独⽴调度执⾏,在多CPU环境下就允许多个线程同时运⾏。
同样多线程也可以实现并发操作,每个请求分配⼀个线程来处理。
三:线程和进程各⾃有什么区别和优劣呢? 1):进程是资源分配的最⼩单位,线程是程序执⾏的最⼩单位。
2):进程有⾃⼰的独⽴地址空间,每启动⼀个进程,系统就会为它分配地址空间,建⽴数据表来维护代码段、堆栈段和数据段,这种操作⾮常昂贵。
线程是共享进程中的数据的,使⽤相同的地址空间,因此CPU切换⼀个线程的花费远⽐进程要⼩很多,同时创建⼀个线程的开销也⽐进程要⼩很多。
3):线程之间的通信更⽅便,同⼀进程下的线程共享全局变量、静态变量等数据。
进程之间的通信需要以通信的⽅式(IPC)进⾏。
不过如何处理好同步与互斥是编写多线程程序的难点。
4):但是多进程程序更健壮,多线程程序只要有⼀个线程死掉,整个进程也死掉了, ⽽⼀个进程死掉并不会对另外⼀个进程造成影响,因为进程有⾃⼰独⽴的地址空间。
四:多线程五个状态 新建----->就绪----->运⾏------>阻塞------->死亡五:怎么实现多线程 1):继承Thread类创建线程。
Thread类本质上是实现了Runnable接⼝的⼀个实例,代表⼀个线程的实例。
启动线程的唯⼀⽅法就是通过Thread类的start()实例⽅法。
2):实现Runnable接⼝创建线程。
3):如果⾃⼰的类已经extends另⼀个类,就⽆法直接extends Thread,此时,可以实现⼀个Runnable接⼝。