还剩29页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
进程编程Linux本课程旨在帮助您深入了解Linux进程编程,并学习如何使用系统调用来创建、管理和控制进程我们将探索进程的生命周期、进程间通信、信号、线程等关键概念本课程大纲进程基础进程通信
11.
22.了解进程的概念、状态和基本操作,如创建、终止、切换等学习进程间通信(IPC)机制,包括管道、消息队列、共享内存等线程编程进程管理
33.
44.掌握线程的概念、创建、同步和互斥等技术,提升程序性能深入理解进程管理机制,包括守护进程、僵尸进程、孤儿进程等什么是进程进程是计算机操作系统中分配资源的基本单位它是正在运行的程序的实例,包含程序代码、数据、堆栈和系统资源等信息每个进程都拥有独立的地址空间,保证了进程之间相互隔离,不会互相影响进程是一个动态实体,拥有自己的生命周期,可以创建、终止、暂停和恢复进程的状态运行状态就绪状态阻塞状态终止状态进程正在执行指令,占用CPU进程已经准备好执行,但需要等进程正在等待某个事件,如I/O进程已经完成执行,不再占用系资源进程处于活动状态,可以待CPU资源一旦CPU空闲,操作完成或信号到来进程处于统资源进程处于结束状态,无立即执行进程将立即进入运行状态非活动状态,无法执行法再被执行进程的创建调用系统调用使用`fork`函数创建子进程,调用`exec`函数加载新的程序分配资源子进程继承父进程的一部分资源,包括文件描述符、信号处理程序和环境变量创建进程控制块为新创建的子进程创建一个进程控制块PCB,存储进程相关信息,例如进程ID、状态和内存地址启动执行子进程开始执行其程序,进程创建完成进程的终止Linux进程终止是指停止一个进程的运行进程终止后,其所有资源都会被释放正常终止1进程执行完毕或收到结束信号异常终止2收到致命信号或发生错误强制终止3管理员或其他用户强制终止进程进程可以通过多种方式终止,包括正常终止、异常终止和强制终止正常终止指进程执行完毕或收到结束信号后自行终止异常终止指进程收到致命信号或发生错误后终止强制终止指管理员或其他用户强制终止进程进程的切换切换过程调度器内核会记录进程状态,包括内存映射,寄存器状态,CPU信息等这些选择下一个运行的进程,通过时间片轮转,优先级调度等算法信息在切换时保存和加载123上下文切换保存当前进程状态,加载下一个进程状态,切换CPU运行状态进程的控制暂停进程使用SIGSTOP信号暂停进程,使用SIGCONT信号恢复进程设置优先级通过nice命令或sched_setscheduler函数修改进程优先级,影响进程调度发送信号通过kill命令或kill函数发送信号通知进程,实现进程控制进程的通信概念必要性进程通信是多个进程之间交换数据在多进程环境中,进程之间需要进的方式每个进程拥有独立的内存行信息传递和资源共享,以协同工空间,无法直接访问其他进程的数作完成任务据重要性进程通信机制是多进程编程的关键,决定了进程间协作的效率和复杂度进程间通信IPC进程间通信的作用IPC进程间通信(IPC)是不同进程间交换数据的机制进程是操作系IPC在现代操作系统中至关重要它使不同进程之间能够相互通信统资源分配和调度的基本单位,而IPC允许不同进程共享数据和资,实现资源共享,协同工作IPC在网络通信、多媒体应用、并发源,从而实现协作和信息传递编程等领域都有着广泛的应用共享内存共享内存段效率进程间共享的内存空间,不需要内核最快的IPC方式,数据共享无需内核介复制数据入同步机制键值对需要同步机制确保数据的一致性和完系统通过键值对来管理共享内存段整性消息队列数据结构异步通信12消息队列是一种先进先出(发送消息的进程不需要等待接FIFO)数据结构它允许进程收进程接收消息,可以继续执间通过发送和接收消息来进行行其他任务通信消息队列类型常见应用场景34消息队列可以分为系统消息队消息队列在异步任务处理,系列和用户自定义消息队列两种统间通信,以及多线程编程中类型都扮演着重要角色管道单向数据流无名管道管道是一种简单的进程间通信方式无名管道是通过管道文件来实现的,数据只能从一个方向流动,父进,只能在有亲缘关系的进程间使用程可以向子进程写入数据,子进程,比如父子进程或者兄弟进程之间可以从父进程读取数据有名管道应用场景有名管道是通过文件系统来实现的管道可以用来实现进程间的数据传,它可以用于任何进程间通信,即递,例如父进程将数据传递给子进使是没有任何亲缘关系的进程之间程,子进程将数据传递给父进程信号信号概述信号类型信号是进程间通信方式之一它是一种异步事件,能够中断程序执•终止信号行,并改变进程的行为•停止信号信号机制允许一个进程向另一个进程发送信号,以便通知或影响目•继续信号标进程的运行状态•其它信号文件锁同步访问锁类型实现方式文件锁机制确保多个进程对同一文件的访问文件锁分为独占锁和共享锁,独占锁允许单文件锁通常通过系统调用来实现,例如不会互相干扰,防止数据一致性问题个进程对文件进行修改,而共享锁允许多个fcntl函数和flock函数,它们允许程序进程同时读取文件申请和释放文件锁线程简介线程是进程中执行的基本单元一个进程可以包含多个线程,每个线程可以独立地执行线程共享进程的内存空间,但拥有独立的栈和寄存器线程的创建创建线程1使用pthread_create函数分配资源2线程创建后,系统会为其分配独立的栈空间和寄存器执行函数3线程启动后,执行用户指定的线程函数创建线程是使用pthread_create函数实现的该函数需要传入线程属性、线程函数指针、线程函数参数以及线程ID指针在成功创建线程后,线程会开始执行用户指定的线程函数,并在自己的栈空间上运行线程的终止线程函数返回1线程函数执行完毕后,自动退出pthread_exit2线程主动调用,退出线程线程取消3其他线程发起取消请求,终止目标线程进程终止4当进程被终止时,所有线程也被终止线程的终止方式主要包括四种线程函数返回,pthread_exit,线程取消,进程终止在实际应用中,需要根据具体的场景选择合适的终止方式,确保程序的正确性和稳定性线程的同步同步机制同步目的多个线程共享资源时,需要同步机制以确保数据一致性和程序正确协调线程之间的执行顺序,避免资源竞争和数据冲突性保证共享资源在任何时刻只有一个线程访问,以确保数据的一致性例如,多个线程同时访问共享变量,可能导致数据被意外修改和程序的正确性互斥锁互斥锁加锁保护共享资源,防止多个线程同时线程想要访问共享资源时,必须先访问获取锁,否则无法访问解锁线程访问完共享资源后,必须释放锁,允许其他线程访问条件变量等待与通知互斥锁配合
11.
22.条件变量允许多个线程等待共条件变量通常与互斥锁配合使享资源状态,并在状态发生变用,以确保对共享资源的访问化时通知等待线程安全避免竞争条件
33.条件变量可以有效地协调线程之间的交互,防止因竞争条件导致的错误读写锁读写锁读者优先写者阻塞应用场景读写锁允许多个读者同时访问共读写锁通常优先考虑读者,以提写入者必须等待所有读者完成读读写锁适用于读操作比写操作更享资源,但一次只允许一个写入高并发性取后才能获得锁频繁的场景,例如数据库读取和者访问写入操作自旋锁忙等待自旋锁是一种忙等待锁,线程不断循环检查锁状态,直到获得锁为止低开销自旋锁适用于锁持有时间短、竞争不激烈的场景,可以避免线程上下文切换的开销临界区保护自旋锁用于保护临界区资源,确保同一时间只有一个线程可以访问临界区定时器计时器时间管理事件触发定时器是系统中用于设定特定时间段执行操通过定时器,可以精确控制程序执行时间,定时器还可以用于响应特定的事件,例如,作的机制,通常用于执行周期性任务或延时提高系统效率和资源利用率当系统空闲时执行后台任务操作守护进程后台运行守护进程在后台运行,不与用户交互系统服务守护进程通常用于提供系统服务,例如网络服务、打印服务等独立运行守护进程独立于终端运行,即使用户退出登录,守护进程依然运行僵尸进程定义原因僵尸进程是指已经终止但其父进程父进程在子进程终止后,没有调用没有回收其资源的进程wait或waitpid函数来获取子进程的退出状态影响解决方法僵尸进程会占用系统资源,例如进父进程应及时调用wait或程描述符,并可能导致系统性能下waitpid函数回收子进程的资源降孤儿进程定义特点孤儿进程是指父进程终止,但子进程仍在孤儿进程由init进程收养init进程会负责运行的进程孤儿进程的父进程ID将被设回收孤儿进程的资源孤儿进程不会对系置为1,即init进程统造成直接的威胁资源限制用户资源限制系统资源限制12限制用户进程能够使用的资源限制整个系统所能使用的资源,如内存、CPU时间、文件描,如最大进程数、最大文件数述符数量等等进程资源限制3限制单个进程所能使用的资源,如内存、CPU时间、文件描述符数量等进程间继承进程资源继承进程状态继承子进程从父进程继承大部分资源,例如打开的文件、信号处理程序子进程继承父进程的信号屏蔽字和信号处理函数,这些信息决定了和环境变量等但也有例外,例如进程ID会重新分配,以确保唯一子进程对信号的响应方式,影响子进程的执行过程性进程间控制信号系统调用信号是进程间通信的一种方式,允系统调用是进程与操作系统之间的许一个进程向另一个进程发送信号接口,通过系统调用,进程可以控,以通知它发生了一些事件制其他进程,例如终止、挂起或恢复进程进程组进程优先级进程组是一个或多个进程的集合,进程优先级决定了进程在CPU上可以通过进程组ID来控制进程组的调度优先级,可以通过设置进程内的所有进程优先级来控制进程的执行顺序总结与展望本课程介绍了Linux进程编程的多个方面,包括进程的概念、状态、创建、终止、切换、控制以及进程间通信通过学习本课程,您将能够更好地理解Linux操作系统中的进程管理机制,并运用这些知识开发出更加高效和可靠的应用程序。
个人认证
优秀文档
获得点赞 0