您好、欢迎来到现金彩票网!
当前位置:516棋牌游戏 > 先来先服务 >

操作系统-进程

发布时间:2019-08-10 09:23 来源:未知 编辑:admin

  进程是资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。

  例如:QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。

  线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。

  原因:创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O 设备等,所付出的开销远大于创建或撤销线程时的开销。

  在进行进程切换时,涉及当前执行进程 CPU 环境的保存及新调度进程 CPU 环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小

  (1)由进程申请一个空白的进程控制块(PCB),向PCB中填写控制和管理进程的信;

  进程已经准备好运行的状态;进程已分配到除CPU以外所有的必要资源后,只要再获得CPU,便可立即执行;

  单处理机的系统中,只有一个进程处于执行状态,在多处理机系统中,有多个进程处于执行状态。

  正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态(阻塞状态);

  此时引起进程调度,操作系统把处理机分配给另外一个就绪的进程,而让受阻的进程处于暂停的状态(阻塞态);

  就绪状态的进程,进程调度程序为之分配了处理机后,进程便由就绪状态转变成**执行状态。

  执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机(PCB),于是进程从执行状态转变成就绪状态。

  正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。

  处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态

  运行状态的进程,在分配给它的 CPU 时间片用完之后就会转为就绪状态,等待下一次调度。

  (2)阻塞状态是缺少需要的资源从而由运行状态转换而来,但是该资源不包括 CPU 时间,缺少 CPU 时间会从运行态转换为就绪态。

  (**缺点:**短作业必须等待前面的长作业执行完毕才能执行,而长作业又需要执行很长时间,造成了短作业等待时间过长)

  短作业优先:非抢占式,按估计运行时间最短的顺序进行调度(时间最短的最先调度,次短的第二,依次下去。缺点:长作业有可能会饿死,处于一直等待短作业执行完毕的状态。因为如果一直有短作业到来,那么长作业永远得不到调度。)

  最短剩余时间优先:当一个新的作业到达时,其整个运行时间与当前进程的剩余时间作比较。如果新的进程需要的时间更少,则挂起当前进程,运行新的进程。否则新的进程等待。

  所有就绪进程按先来先服务原则排队,第一个排队的先执行一个时间片的时间,时间到了后,这个同学就排到队伍最后面去,让第二个人开始也执行一个时间片,时间到了就排到队列末尾去,这样依次执行下去。(类似轮流和CPU玩,每人5分钟这样子)

  效率问题:和时间片的大小有很大关系,时间片太小,进程切换得太频繁,在进程切换上就会花过多时间,时间片太长,实时性得不到保证;

  优先级调度:为每个进程分配一个优先级,按优先级进行调度;(防止低优先级的永远等不到调度,可随时间的推移增加等待进程的优先级)

  多级反馈队列:设置了多个队列,每个队列时间片大小都不同,例如 1,2,4,8,…。进程在第一个队列没执行完,就会被移到下一个队列。

  信号量(Semaphore)是一个整型变量,可以对其执行 down 和 up 操作,也就是常见的 P 和 V 操作。

  概念: 是一个资源管理模块,其中包含了共享资源的数据结构,以及由对该共享数据结构实施操作的一组过程(方法)所组成的资源管理程序。

  使用信号量机制实现的生产者消费者问题需要客户端代码做很多控制,而管程把控制的代码独立出来,不仅不容易出错,也使得客户端代码调用更容易。

  问题描述:使用一个缓冲区来保存物品,只有缓冲区没有满,生产者才可以放入物品;

  解析:因为缓冲区属于临界资源,因此需要使用一个互斥量 mutex 来控制对缓冲区的互斥访问。

  为了同步生产者和消费者的行为,需要记录缓冲区中物品的数量。数量可以使用信号量来进行统计,这里需要使用两个信号量:empty 记录空缓冲区的数量,full 记录满缓冲区的数量。其中,empty 信号量是在生产者进程中使用,当 empty 不为 0 时,生产者才可以放入物品;full 信号量是在消费者进程中使用,当 full 信号量不为 0 时,消费者才可以取走物品。

  注意,不能先对缓冲区进行加锁,再测试信号量。也就是说,不能先执行 down(mutex) 再执行 down(empty)。如果这么做了,那么可能会出现这种情况:生产者对缓冲区加锁后,执行 down(empty) 操作,发现 empty = 0,此时生产者睡眠。消费者不能进入临界区,因为生产者对缓冲区加锁了,消费者就无法执行 up(empty) 操作,empty 永远都为 0,导致生产者永远等待下,不会释放锁,消费者因此也会永远等待下去。

  允许多个进程同时对数据进行读操作,但是不允许读和写以及写和写操作同时发生。

  一个整型变量 count 记录在对数据进行读操作的进程数量,一个互斥量 count_mutex 用于对 count 加锁,一个互斥量 data_mutex 用于对读写的数据加锁。

  问题描述:五个哲学家围着一张圆桌,每个哲学家面前放着食物。哲学家的生活有两种交替活动:吃饭以及思考。当一个哲学家吃饭时,需要先拿起自己左右两边的两根筷子,并且一次只能拿起一根筷子。

  错误解法:如果所有哲学家同时拿起左手边的筷子,那么就无法拿起右手边的筷子,造成死锁。

  进程通信是为了达到进程同步目的的一种手段。为了让进程同步,进程间必须通信,传输一些进程同步所需要的信息。

  概念: 本质上是一个管道文件,可以通过命令创建也可以通过函数创建,用户可以看到;

  FIFO 常用于客户-服务器应用程序中,FIFO 用作汇聚点,在客户进程和服务器进程之间传递数据。

  允许多个进程共享一个给定的存储区。因为数据不需要在进程之间复制,所以这是最快的一种 IPC。

  多个进程可以将同一个文件映射到它们的地址空间从而实现共享内存。另外 XSI 共享内存不是使用文件,而是使用内存的匿名段。

  本篇博客为个人学习笔记,大部分内容来自该博主cyc2018,另有部分来自其他一些博客文章,在此表示感谢!

  系统的硬件组成为了理解一个程序运行时发生了什么,需要理解一个典型系统的硬件组织.-总线总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。按照计算机所传输的信息种类...

  供大家交流学习,最好自己动手做,这样才有最深切的体会。1.实验目的   学会通过基本的Linux进程控制函数创建子进程,并实现协同工作。创建两个进程,让子进程读取输入,父进程等待子进程读完文件后继续执...

  进程的起源 程序就是一个指令序列在程序执行的过程中,需要将其放入内存中之后才会被CPU所处理。早期的计算机中只支持单道程序,所以计算机中的所有资源都只被这一个程序所享有,包括内存。所以内存只供当前运...

  Linux进程虚拟存储先回忆一下ELF文件的组织结构,可以看这篇文章:Linux链接与ELF文件。程序执行后进程地址空间布局则和操作系统密切相关。在将应用程序加载到内存空间执行时,操作系统负责代码段与...

  操作系统为了管理进程和资源,必须掌握每个进程和资源的当前状态.主要维护4个表:内存,I/O,文件和进程操作系统控制表通用结构.png内存表1.分配给进程的内存2.分配给进程的外存3.内存块或者虚存块的...

  实验二进程控制16281002杜永坤计科1601实验题目:根据课堂所学内容和基础知识介绍,完成实验题目。1、打开一个vi进程。通过ps命令以及选择合适的参数,只显示名字为vi的进程。寻找vi进程的父进...

  操作系统在管理内存时,每个进程都有一个独立的进程地址空间,进程地址空间的地址为虚拟地址,对于32位操作系统,该虚拟地址空间为2^32=4GB。其中0-3G是用户空间,3G-4G是内核空间。但4G的地址...

  操作系统是神马呢,顾名思义就是操作管理及控制计算机硬件与软件资源的计算机程序。同时也是计算机硬件和软件的接口。操作系统充当着用户和硬件设备之间桥梁的作用,用户可以通过操作系统让硬件设备工作实现自己想要...

  实验一进程控制一、      实验目的1.       理解进程控制块的结构。 2.       理解进程各种状态之间的转换过程。3.       掌握进程创建与撤消的方法。4.       掌握进程...

  我们可以把一个单独的任务所用到的所有东西封装在一个LDT中,这种思想是多任务处理的雏形。多任务所用的段类型如下图,使用LDT来隔离每个应用程序任务的方法,正是关键保护需求之一:进程示意:我们需要一个数...

  实验名称:进程的创建实验一、实验目的:1.      加深对进程概念的理解,明确进程和程序的区别。进一步认识并发执行的实质。2.      认识进程生成的过程,学会使用fork生成子进程,并知道如何使...

  进程的并发是指:再多道程序系统中,由于内存中可以同时装入多个程序,使他们共享系统资源,并发执行。 注意:只有不存在前驱关系的进程才能并发执行,并发执行提高吞吐量和资源利用率。(p1--gt;...

  一、冯诺依曼体系结构目前我们认识的计算机都是由一个个硬件组成输入单元:键盘,鼠标,扫描仪等 输出单元:显示器,打印机 中央处理器(cpu):含有运算器和控制器关于冯诺依曼体系,必须强调几点:存储器是指...

  实验目的:加深对进程概念的理解,明确进程和程序的区别。进一步认识并发执行的实质。了解信号处理认识进程间通信(IPC):进程间共享内存实现shell:了解程序运行1.实验一:进程的创建实验程序一:int...

  一、临界区      互相协作的进程之间有共享的数据,于是这里就有一个并发情况下,如何确保有序操作这些数据、维护一致性的问题,即进程同步。为了解决合作进程之间的竞争条件,引入临界区问题模型。临界区是包...

  进程管理一.实验目的1、理解进程的概念,明确进程和程序的区别。2、理解并发执行的实质。3、掌握进程的创建、睡眠、撤销等进程控制方法。二.实验内容与基本要求用C语言编写程序,模拟实现创建新的进程;查看运...

  Vxworks系统中进程、线程和任务之间的关系             操作系统中每个进程在独立的地址空间运行(操作系统以为只有一个进程,实际上是分时复用的),每个进程的逻辑地址为4GB(32位系统,...

  一、概述1、为什么引入进程程序并发执行时具有如下特征:间断性程序在并发执行时,由于它们共享资源或为完成同一项任务而相互合作,使在并发程序之间形成了相互制约的关系。相互制约将导致并发程序具有“执行-暂停...

  1.有关进程的下列叙述中, D 是正确的。 A.进程是静态的文本 B.进程与程序是一一对应的 C.进程与作业是一一对应的 D.多个进程可以在单个CPU上同时执行 2.进程之间的制约关系可以归结为 A 。 A...

  fork子进程1,fork子进程2,子进程1终止,fork子进程3?此时子进程3的pid有可能等于已经终止的子进程1的pid吗?操作系统是从1开始分配pid,到最大值(如32767)后再折回来。如果子...

http://iamtheguru.net/xianlaixianfuwu/511.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有