《操作系统原理》第二章进程管理_第1页
《操作系统原理》第二章进程管理_第2页
《操作系统原理》第二章进程管理_第3页
《操作系统原理》第二章进程管理_第4页
《操作系统原理》第二章进程管理_第5页
已阅读5页,还剩28页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《操作系统原理》第二章进程管理contents目录进程管理概述进程创建与终止进程同步与互斥进程通信机制线程概念及多线程模型进程调度算法01进程管理概述进程概念及特性进程定义进程是计算机程序关于数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。进程特性动态性、并发性、独立性、异步性、结构性。就绪状态、执行状态、阻塞状态、创建状态、终止状态。就绪→执行、执行→阻塞、阻塞→就绪、执行→终止等。进程状态与转换进程转换进程状态记录进程的外部特征,描述进程的运动变化过程,系统利用PCB来控制和管理进程。PCB作用进程标识符、处理机状态、进程调度信息、进程控制信息。PCB内容进程控制块PCB进程是系统资源分配的基本单位,通过对进程的管理,实现对CPU、内存、I/O设备等资源的合理分配和使用。资源管理通过对进程的有效调度和管理,提高系统的吞吐量和响应速度,改善系统性能。系统效率进程管理有助于防止死锁和饥饿等问题的发生,提高系统的稳定性。系统稳定性合理的进程管理可以提供更好的用户体验,如快速响应、平滑运行等。用户体验进程管理重要性02进程创建与终止创建方式进程可以通过系统调用、用户请求、作业调度或父进程创建等方式来创建新的进程。其中,系统调用是最常用的方式之一。创建步骤创建一个新进程通常需要以下步骤:申请空白PCB(进程控制块);为新进程分配资源;初始化PCB;将新进程插入就绪队列。进程创建方式及步骤终止条件进程终止的条件包括正常结束(如任务完成、程序执行完毕等)和异常结束(如发生错误、接收到特定信号等)。处理方式当进程终止时,操作系统需要进行相应的处理,包括回收进程所占用的资源、撤销进程的PCB以及将相关信息保存在系统日志中等。进程终止条件及处理孤儿进程是指父进程先于子进程结束,此时子进程将成为孤儿进程。为了避免孤儿进程对系统资源造成浪费,操作系统通常会将其父进程设置为init进程(或类似的系统级进程),由init进程来负责回收孤儿进程所占用的资源。孤儿进程僵尸进程是指子进程已经结束,但其父进程尚未回收其PCB等资源,导致该子进程仍然留在系统中占用一定的资源。为了避免僵尸进程对系统的影响,父进程需要在子进程结束后及时回收其资源,或者通过信号机制等方式来通知父进程进行资源回收。僵尸进程孤儿进程与僵尸进程问题例子:创建和终止一个进程在Unix/Linux系统中,可以使用fork()系统调用来创建一个新进程。fork()函数会复制当前进程的PCB等资源,并在新进程中返回0,而在原进程中返回新进程的PID。通过fork()函数可以方便地创建一个与当前进程几乎完全相同的子进程。创建进程在Unix/Linux系统中,可以使用exit()系统调用来终止一个进程。exit()函数会向父进程发送一个信号,通知父进程进行资源回收等操作,并释放当前进程所占用的资源。同时,exit()函数还可以返回一个状态码给父进程,以便父进程了解子进程的退出状态。终止进程03进程同步与互斥并发进程中与共享变量有关的程序段称为临界区。临界区定义多个进程同时进入临界区会导致数据不一致和错误。临界区问题如Peterson算法,通过进程间相互通信和协作实现互斥。软件方法利用特殊硬件指令实现互斥,如Test-and-Set指令。硬件方法临界区问题及解决方案信号量定义一个整型变量,用于表示系统中某种资源的数量。应用场景用于实现进程间的同步和互斥,如生产者-消费者问题、读者-写者问题等。信号量操作P操作(申请资源)和V操作(释放资源)。信号量机制原理与应用生产者-消费者问题01生产者和消费者共享一个缓冲区,生产者将产品放入缓冲区,消费者从缓冲区取出产品消费。需要保证生产者在缓冲区满时等待,消费者在缓冲区空时等待。读者-写者问题02多个进程共享一个数据文件,分为读者和写者两类。读者只读取文件不修改,写者需要修改文件。需要保证多个读者可以同时读取文件,但写者在修改文件时需要独占访问。哲学家进餐问题03五个哲学家围坐在圆桌旁,思考和进餐交替进行。每个哲学家之间有一只筷子,进餐时需要拿起左右两只筷子。需要保证不会出现死锁情况。经典同步问题剖析利用信号量实现生产者-消费者问题设置三个信号量empty、full和mutex,分别表示缓冲区空闲位置数量、缓冲区产品数量和互斥锁。生产者在生产产品前需要等待empty大于0,然后申请mutex锁;生产完成后释放mutex锁并增加full的值。消费者在消费产品前需要等待full大于0,然后申请mutex锁;消费完成后释放mutex锁并增加empty的值。利用管程实现生产者-消费者问题管程是一种特殊的软件模块,用于管理共享资源并提供一组操作来访问这些资源。生产者和消费者进程通过调用管程中的过程来实现同步和互斥。管程内部包含了一个缓冲区及相关的操作过程,如insert和remove等。生产者和消费者通过调用这些过程来访问缓冲区。例子:生产者消费者问题实现04进程通信机制多个进程共享一块内存区域,进程间通过读写共享内存实现信息交换。原理优点缺点应用场景通信速度快,适合大量数据传输。需要同步机制防止数据冲突,编程复杂度高。适用于需要大量数据交换的进程间通信。共享内存通信方式原理优点缺点应用场景消息传递通信方式进程间通过发送和接收消息进行通信,消息包含固定格式的数据和控制信息。通信效率较低,不适合大量数据传输。编程接口简单,易于实现进程同步。适用于需要较少数据交换但需要同步的进程间通信。原理管道是一种半双工的通信方式,数据只能单向流动,通常用于父子进程间的通信。优点简单易用,适合父子进程间通信。缺点只能单向通信,且只能在有亲缘关系的进程间使用。应用场景适用于父子进程间的简单数据交换。管道通信原理及应用场景父进程创建管道,并调用fork()创建子进程。01例子:使用管道实现父子进程通信父进程向管道写入数据,子进程从管道读取数据。02子进程处理数据后,将结果写回管道,父进程读取结果并输出。03父子进程通过管道实现了数据的交换和同步。04注意事项:在读写管道时需要考虑进程同步和阻塞问题,避免死锁和数据丢失。0505线程概念及多线程模型线程定义线程是进程中的一个实体,是CPU调度和分派的基本单位,它拥有独立的运行环境和栈空间,但共享进程的资源。线程与进程比较线程比进程更轻量级,创建、销毁和切换速度更快;多个线程共享进程的地址空间和资源,通信和数据共享更方便;但线程的独立性较差,一个线程的崩溃可能影响整个进程。线程定义及属性比较123多个用户级线程映射到一个内核级线程,线程管理在用户空间完成,效率较高但无法利用多核处理器。多对一模型一个用户级线程映射到一个内核级线程,线程管理在内核空间完成,可以充分利用多核处理器但开销较大。一对一模型多个用户级线程映射到多个内核级线程,结合了前两种模型的优点,但实现复杂度较高。多对多模型多线程模型介绍VS多个线程需要按照某种顺序协调地访问共享资源,以避免出现竞态条件。常见的同步机制包括信号量、互斥锁、条件变量等。互斥问题多个线程在访问共享资源时,需要保证同一时间只有一个线程在访问,以避免数据不一致。互斥可以通过互斥锁、读写锁等机制实现。同步问题线程间同步与互斥问题并行计算概述并行计算是指同时使用多种计算资源解决计算问题的过程,其主要目的是快速解决大型且复杂的计算问题。要点一要点二多线程在并行计算中的应用多线程可以实现任务并行化,将一个大任务分解成多个小任务并分配给多个线程同时执行,从而提高计算效率。例如,在矩阵乘法、图像处理等领域,多线程可以显著提高计算速度。例子:使用多线程实现并行计算06进程调度算法调度层次高级调度(作业调度)、中级调度(内存调度)、低级调度(进程调度)调度目标CPU利用率、系统吞吐量、周转时间、等待时间、响应时间等调度层次和调度目标短作业优先(SJF)优先调度运行时间短的进程,可以缩短平均等待时间,但需要预知进程运行时间。时间片轮转(RR)将CPU时间划分为时间片,轮流分配给各个进程,保证每个进程都能得到响应,适用于分时系统。优先级调度根据进程的优先级进行调度,可以灵活控制进程的执行顺序,但需要合理设置优先级。先来先服务(FCFS)按照进程到达的先后顺序进行调度,简单易实现,但平均等待时间较长。常见调度算法原理及特点算法性能评价指标系统吞吐量等待时间单位时间内完成作业的数量。进程在就绪队列中等待的时间。CPU利用率周转时间响应时间CPU处于忙碌状态的时间占总时间的比例。从作业提交到作业完成的时间间隔。从用户发出请求到系统首次产生响应的时间。假设有4个进程,每个进程需要运行的时间分别为2、4、1、3个时间单位,使用时间片轮转调度算法进行调度,时间片设为1个时间单位。按照进程到达的顺序,将进程放入就绪队列中。每个时间片内,选择队首进程执行,执行完毕后将其从队列中移除,并计算该进程的等待时间和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论