还剩25页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《进程与线程》ppt课件•进程概念•线程概念•进程与线程的区别与联系•进程间通信目•线程同步机制•进程与线程的应用场景录contents01进程概念进程定义进程是程序的一次执进程的状态信息保存行,是系统进行资源在进程控制块PCB中分配和调度的基本单位进程具有动态性、独立性和制约性进程状态就绪状态执行状态阻塞状态终止状态进程已获得除CPU外的进程占用CPU,执行其进程等待某个条件成立,进程执行完毕或异常结所有必要资源,等待分程序暂时无法继续执行束配CPU进程切换进程切换发生在一个进程从运行状态退出并交出CPU,然后其他进程获得CPU并开始运行进程切换涉及到保存和恢复进程的上下文信息,包括CPU寄存器、内存、文件描述符等进程切换可能会引起较大的开销,因此需要合理地调度和管理进程,以减少不必要的进程切换02线程概念线程定义线程是程序执行流的最小单元,线程自己基本上不拥有系统资源,一个进程可以有一个或多个线程,是程序中单一的顺序控制流程只拥有一点在运行中必不可少的各个线程之间共享进程的资源资源(如程序计数器,一组寄存器和栈)线程状态01020304就绪状态阻塞状态运行状态终止状态线程已经获得除CPU外的所线程正在等待某个条件成立或线程正在执行,占用CPU线程执行完毕或异常结束有必要资源,等待被调度执行被其他线程通知时所处的状态线程同步互斥死锁同一时刻只允许一个线程访问两个或多个线程永远阻塞,互共享资源相等待对方释放资源协作饥饿通过某种机制使多个线程协同一个或多个线程因等待其他线工作程释放资源而无限等待03进程与线程的区别与联系资源占用进程和线程在资源占用方面存在显著差异进程是系统分配资源的基本单位,拥有独立的内存空间和系统资源,如内存、文件句柄等线程则共享进程的资源,多个线程之间共享代码段、数据等资源,因此线程的创建、切换和销毁的开销通常比进程小执行方式进程和线程在执行方式上有所不同进程是独立执行的,拥有自己的地址空间和系统资源,通过进程间通信(IPC)来进行数据交换线程则是在进程内部共享进程的资源,同一进程的多个线程之间可以直接读写共享内存,通过共享内存进行通信,因此线程间通信更加高效系统开销系统开销方面,进程和线程也有所不同由于进程拥有独立的内存空间和系统资源,因此切换进程时需要保存和恢复较多的上下文信息,如内存空间、寄存器等,导致进程切换的开销较大而线程切换时只需保存和恢复线程上下文信息,因此线程切换的开销相对较小此外,创建进程的开销也比创建线程大,因为需要分配独立的内存空间和系统资源04进程间通信共享内存总结词共享内存是一种进程间通信方式,通过共享一段内存空间来实现不同进程之间的数据交换详细描述在共享内存中,多个进程可以访问同一块物理内存空间,通过读写该共享内存来实现数据交换这种方式具有较高的数据传输速率,但需要解决并发访问和数据同步的问题消息传递总结词消息传递是一种进程间通信方式,通过发送和接收消息来实现不同进程之间的数据交换详细描述在消息传递中,进程通过发送和接收消息来进行通信消息可以包含任意类型的数据,如整数、字符串或自定义数据结构这种方式具有较好的灵活性和可靠性,但可能存在性能瓶颈管道通信总结词管道通信是一种进程间通信方式,通过一个管道作为中介来实现不同进程之间的数据交换详细描述在管道通信中,进程通过管道进行数据的读写操作管道可以看作是一个先进先出的队列,数据在其中按照顺序流动这种方式具有简单易用的特点,但可能存在阻塞和数据量限制的问题05线程同步机制互斥锁互斥锁(Mutex)是一种常用的线程同步机制,用于防止多个线程同时访互斥锁可以保证共享资源的互斥访问,问共享资源,从而避免数据不一致和但也可能导致死锁和性能问题冲突当一个线程获取了互斥锁后,其他线程就不能再获取该锁,直到该线程释放锁条件变量条件变量(Condition Variable)当一个线程需要等待某个条件成当其他线程修改了共享资源并调用于实现线程间的条件等待和通立时,它可以调用条件变量的用条件变量的notify或知机制wait函数,将自己挂起,并将broadcast函数时,等待的线程条件变量的引用传递给其他线程将被唤醒并继续执行读写锁读写锁(Read-Write Lock)是一种读写锁分为共享锁和排他锁,多个线特殊的同步机制,用于多线程读写共程可以同时获得共享锁,但只有一个享资源的情况线程可以获得排他锁当一个线程获得排他锁时,其他线程读写锁可以提高并发性能,但也需要无法访问共享资源;当多个线程只读考虑死锁和公平性问题共享资源时,它们可以同时获得共享锁06进程与线程的应用场景多任务处理多个进程可以同时运行,提高进程间相互独立,互不干扰,进程间通信机制可以协调多个系统资源的利用率提高了系统的稳定性和可靠性进程之间的任务分配和数据交换并行计算线程可以同时执行,充分利用处理器资源,提高计算效率并行计算可以利用多核处理器或多台计算机的资源,并行计算广泛应用于科学计算、工程模拟、大数据处加快计算速度理等领域网络编程网络通信需要处理多个连接和任务,线程可以同时处理多个请求线程可以独立地处理不同的网络连接,提高了系统的并发性和响应速度网络编程中需要处理大量的数据传输和并发任务,线程可以提高数据处理的效率THANKS FORWATCHING感谢您的观看。