操作系统——进程

为了实现程序的并发执行,才引入进程

程序的顺序执行: (顺序性,封闭性,可再现性)

程序的并行执行,提高CPU的效率和系统吞吐率:(间断性,失去封闭性,不可再现性)

  • 引入进程解决程序并发的问题,进程的特征:

 ① 结构特性,为使程序能够独立运行,应为之配置一进程控制块,即PCB(Process Control Block)。而程序段、相关的数据段和PCB三部分构成进程实体。所谓创建进程,实质上是创建进程实体中的PCB,撤销进程也是撤销进程中的PCB。

  ② 动态性,进行的实质是进程实体的一次执行过程,因此,动态性是进程最基本的特性,进程实体是有一个的生命周期,而程序则只是一组有序指令的集合,并存放在某种介质上(如硬盘),其本身不具有运动的含义,因而是静态的。

  ③ 并发性,多个进程实体同存于内存中,并且能够在一段时间内同时运行。并发性是进程的重要特征, 同时也成为OS的重要特征。

  ④ 独立性,进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。凡未建立PCB的程序都不能作为一个独立的单位参与运行。

  ⑤ 异步性,进程按各自独立的、不可预知的速度向前推进,或者说进程实体按照异步方式运行。

进程是进程实体的运行过程,是系统进行资源分配和调度(在线程未出现之前)的一个独立单位。

进程的状态:

 ① 就绪状态,当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,就可以立即运行,进程这时的状态称为就绪状态。在一个系统中可能多个进程处于就绪状态,通常将它们排成一个队列,称为就绪队列。

  ② 执行状态,进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态,在多处理机系统中,则有多个进程处于执行状态。

  ③ 阻塞状态,处于执行状态的线程由于发生某事件而暂停无法继续执行时,便放弃处理机而处于暂停状态,此时进程的状态称为阻塞状态,或等待状态或封锁状态。如IO请求,申请缓存空间等,处于阻塞状态的进程也会排成一个队列,可能还会根据不同的阻塞原因排成多个队列。

 除了上述三种基本状态外,在一些系统中,新增了挂起状态,引入挂起状态的原因如下

  ① 终端用户的请求,当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时使自己的程序静止下来,即使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,以便用户研究其执行情况或对程序进行修改,这种状态就称为挂起状态。

  ② 父进程请求,有时父进程希望挂起自己的某个子进程,以便考查和修改该子进程,或者协调各子进程间的活动。

  ③ 负荷调节的需要,当实时系统中的工作负荷较重,已可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能够正常运行。

  ④ 操作系统的需要,操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。

  引入了挂起状态后,又增加了如下几种状态的转化

  ① 活动就绪->静止就绪,当进程处于未被挂起的就绪状态时,称为活动就绪状态;当挂起时,变为静止就绪状态,处于静止就绪状态的进程不接受调度。

  ② 活动阻塞->静止阻塞,当进程处于未被挂起的阻塞状态时,称为活动阻塞状态;当挂起时,变为静止阻塞状态,处于该状态的进程在其所期待的事件发生后,将从静止阻塞变为静止就绪。

  ③ 静止就绪->活动就绪,使用激活原语激活。

  ④ 静止阻塞->活动阻塞,使用激活原语激活。

  为了进程的管理,还存在着两种常见的状态,即创建状态和终止状态。

进程控制块:

为了描述和控制进程的运行,系统为每个进程定义了一个数据结构,进程控制块PCB,它是进程实体的一部分,是操作系统中最重要的记录型数据结构,PCB中记录了操作系统所需的,用于描述进程当前情况以及控制进程运行的全部信息。进程控制块的作用是使一个在多道程序环境下能独立运行的程序,成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。PCB是进程存在的唯一标识。

进程控制块PCB主要包含如下信息。

  ① 进程标识符,用于唯一地标识一个进程,有内部标识符(由系统赋予的唯一一个数字,通常为进程的序号,为方便系统使用)和外部标识符(由创建者提供,可描述进程的家族关系)。

  ② 处理机的状态,当处理机被中断时,其寄存器的信息都必须保存在进程的PCB中,以便该进程重新执行时,能从断点继续执行。

  ③ 进程调度信息,包括进程状态(指明进程的当前状态,作为进程调度和对换时的依据),进程优先级(用于描述进程使用处理机的优先级别,优先级高的进程应该优先获取处理机),进程调度所需的其他信息(与进程调度算法有关,如进程已等待CPU的时间总和,进程已执行的时间总和等),事件(进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因)。

④ 进程控制信息,包括程序和数据的地址(进程的程序和数据所在的内存或外存首址,以便在调度该进程时,能从PCB中找到其程序和数据),进程同步和通信机制(实现进程同步和进程通信时必需的机制,如消息队列指针,信号量等),资源清单(除CPU以外的进程所需的全部资源以及已经分配到该进程的资源的清单),链接地址(本进程PCB所在队列中的下一个进程的PCB的首地址)。

线程:

六、线程

  6.1 线程与进程的比较

  线程称为轻型进程或进程元,在引入线程的操作系统,一个进程往往都拥有多个线程,至少有一个线程,下面从不同的方面将线程与进程进行比较(前提是操作系统引入了线程)。

  ① 调度

  线程作为调度和分派的基本单位,而进程作为资源拥有的基本单位。同一进程中,线程的切换不会引起进程的切换,但从一个进程中的线程切换到另外一个进程中的线程时,将会引起进程切换。

  ② 并发性

  不仅进程间可以并发执行,同一个进程中的多个线程之间亦可并发执行,是的操作系统具有更好的并发性,从而能更加有效地提高系统资源利用率和系统吞吐率。

  ③ 拥有资源

  线程一般不拥有系统资源(除少量必不可少的资源),但它可以访问其隶属的进程的资源,即一个进程的代码段,数据段以及拥有的系统资源,如已打开的文件、I/O设备等。

  ④ 系统开销

  在创建和撤销进程时,系统都要为之创建和回收进程控制块,分配或回收资源,操作系统付出的开销明显大于线程创建或撤销时的开销,在进程切换时,涉及到当前进程CPU环境的保存和新被调度运行进程的CPU环境的设置,而线程的切换则仅需保存和设置少量寄存器内容,不涉及存储器管理方面的操作,所以线程的切换开销远小于进程切换开销,以外,由于一个进程中的多个线程具有相同的地址空间,在同步和通信的实现上也比较容易,在一些操作系统中,线程的切换,同步和通信都无需操作系统内核的干预。

时间: 2024-11-10 14:39:12

操作系统——进程的相关文章

操作系统--进程和线程的区别(转)

http://blog.csdn.net/andy6355/article/details/2506171 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高. 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率. 线程在执行过程中与进程还是有区别的.每个独立的线程有一个程序运行的

9 异常处理 操作系统 进程线程 队列+生产消费者模型 进程同步 回调函数

异常处理 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 异常的种类: AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常:基本上是无法打开文件 ImportError 无法引入模块或包:基本上是路径问题或名称错误 IndentationError 语法错误(的子类) :代码没有正确对齐 IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5] KeyError 试图访

操作系统——进程与线程

线程和进程的区别 1)调度:在传统的操作系统中,拥有资源的基本单位和独立调度.分派的基本单位都是进程.  而引入线程的操作系统,则把线程作为调度和分派的基本单位,而进程作为资源拥有的基本单位. 2)并发性:在引入线程的操作系统中,进程之间可并发执行,在一个进程中的多个线程亦可并发执行. 3)拥有资源:进程都可以拥有资源,是系统中拥有资源的一个基本单位.  线程自己不拥有系统资源,但它可以访问其隶属进程的资源. 4)系统开销:操作系统所付出的开销明显大于线程创建或撤销时的开销,进程的切换代价远高于

操作系统–进程管理

进程概念 进程:申请资源和调度资源的基本单位,一个进程就是一个程序的一个运行过程.是一个动态的概念,在不同的操作系统中,会有不同的进程出现. 程序:静态概念,是指令和数据的集合,可长期存储. 进程与程序对应关系: - 一个程序可以对应一个进程或者多个进程 - 一个进程可以对应一个程序,或者一段程序 进程结构 进程由程序,数据集合,进程控制块PCB(Process Control Block) PCB,进程在创建的时候,同时创建.进程结束的时候,PCB删除. 进程状态转化 进程的状态: 新状态:进

操作系统--进程的互斥与同步

进程互斥 进程互斥:在多个程序中,有两个进程不可以同时进行(例如读,写操作). 竞争资源(临界资源) 当并发进程竞争使用同一资源时,他们之间就会发生冲突.如果操作系统将资源分配给其中的某一个进程使用,另一个进程就必须等待,直到申请的资源可用时,由操作系统分配给他们. 如果竞争资源的进程太多,这些进程还必须等待在一个队列中,如就绪队列,阻塞队列等. 一种极端的情况是,被阻塞进程永远得不到申请的资源,而死锁. 采用互斥方式,使用临界资源 资源的互斥,进程使用上述这类资源的时候,只能有一个进程对资源进

操作系统---进程篇

进程(process)就是操作系统的灵魂,一个软件的程序通常就是由若干进程组成的.现在计算机一般采用多道程序设计和多处理机设计(所谓的4核.八核其实就是指多个处理机). 一.并行和并发 并行:就是由多个CPU情况下,多道程序可以在同一时刻依靠不同CPU运行,注意是同一时刻,而不是时间间隔,这就是并行性. 并发:现在我们假设只有一个CPU,那么多道程序要运行,必然在同一时刻只有一个才可以占用CPU,而计算机让CPU在同一时间段内快速地在多道程序间交换,注意这里是同一时间间隔,这样就造成了一种伪并行

操作系统 进程(下)

一.进程同步 什么是同步?同步就是说一个任务要等另一个执行完毕才能继续执行,而不是同时执行.我们都知道,进程有异步性,这种性质会导致操作系统的混乱.进程同步,指的是进程之间的执行次序的管理,就是为了解决进程异步性的这种混乱. (1)直接制约和间接制约. 进程之间有两种制约关系.分别是直接制约和间接制约.直接制约指的是进程间的合作,即一个进程需要另一个进程的配合,否则会阻塞.如输出缓冲区为空的时候,输出进程就会阻塞,输出进程依赖输入进程不断的输入.间接制约指的是对于某种资源,同时只能有一个进程占用

操作系统 进程(上)

一.什么是并发 并发是什么?很简单,前面介绍的多道批处理系统就是典型的并发执行.这里再次过一遍高性能的多道批处理系统,其本质在于保持对系统资源的占用,CPU运行一个任务,若这个任务中断,如需要IO请求之类的,那么CPU直接去运行其他任务,原任务的IO请求由IO设备自己处理.有一个著名的图--表示并发: 如图,假设计算机有输入.计算.输出这三个部件,一组任务顺序执行,并发就是如图流水线一样的各部件配合.某一时刻,只有一个程序在占用CPU(计算设备).那么什么是并行呢?并行是建立在多核的基础上的,即

操作系统——进程的状态及转换

1.    为什么要分开就绪和阻塞状态 答:因为就绪态只需要等待处理机,而阻塞态可能在等待输入输出,即使分配给处理机也是徒劳,所以两状态图不妥.对于调度进程,只需要等待就绪队列里的进程,因为阻塞状态可以转换到就绪队列里去. 2.    进程五状态 1)       新状态:进程已经创建,但未被OS接纳为可执行进程.(还没有申请到相应的资源). 2)       就绪态:进程做好了准备,准备执行(只等待处理机). 3)       执行状态:该进程正在执行(单处理机,某一时刻仅一个进程占用处理机)