操作系统--进程

  • 进程的定义

    •   进程控制块PCB:作用:用来描述进程的基本情况和活动过程,进而控制和管理进程。

      •   组成:由程序段,数据段,pcb组成
      •   创建进程:创建进程中的PCB;撤销进程:撤销进程中的PCB
    •   进程定义:具有独立功能的程序在一个数据集合上运行的过程,他是系统进行资源分配盘和调度的一个独立单位。
    • 进程和程序的不同
      •   并发性:进程拥有,程序没有。
      •   动态性:进程是动态的,程序是静态的。
      •   独立性和异步性。
  • 进程基本状态和转换

    •                          图2-1  五种进程状态的转换
      就绪状态 -> 运行状态:处于就绪状态的进程被调度后,获得处理机资源(分派处理机时间片),于是进程由就绪状态转换为运行状态。

      运行状态 -> 就绪状态:处于运行状态的进程在时间片用完后,不得不让出处理机,从而进程由运行状态转换为就绪状态。此外,在可剥夺的操作系统中,当有更高优先级的进程就 、 绪时,调度程度将正执行的进程转换为就绪状态,让更高优先级的进程执行。

      运行状态 -> 阻塞状态:当进程请求某一资源(如外设)的使用和分配或等待某一事件的发生(如I/O操作的完成)时,它就从运行状态转换为阻塞状态。进程以系统调用的形式请求操作系统提供服务,这是一种特殊的、由运行用户态程序调用操作系统内核过程的形式。

      阻塞状态 -> 就绪状态:当进程等待的事件到来时,如I/O操作结束或中断结束时,中断处理程序必须把相应进程的状态由阻塞状态转换为就绪状态。

    • 进程的创建和终止
      •   创建过程:申请空白的PCB,填写信息-->为进程分配运行时所需的资源-->进程变为就绪状态,插入就绪队列
      •   终止过程:等待操作系统善后处理-->将PCB清零,空间返还系统。
  • 进程同步
    •   基本概念:

      •   临界资源:许多硬件资源(打印机,磁带机),进程之间采取互斥方式实现对这种资源的共享。
      •   临界区:无论是硬件临界资源还是软件临界资源,进程都必须互斥的对它进行访问。把在每个进程中访问临界资源的那段代码称为临界区。(所以每次想要访问临界区的资源的时候,必须确保它没有被人访问)
      •   同步机制遵循的规则:①:空闲让进②:忙则等待③:有限等待④:让权等待。
  • 进程通信
    •   进程通信类型:

      •   共享存储器系统:共享某些数据结构或者共享某个存储区。这里面分为:共享数据结构(生产者消费者问题),共享存储区(划分一块内存,用于共享,由进程直接管理)
      •   管道通信系统:由一个读进程和一个写进程实现共享。发送进程以字符流的形式将数据送入管道,接收进程从管道接收数据,利用管道进行通信。
      •   消息传递系统:①直接通信方式:利用os直接将消息发送出去。②间接通信方式:发送和接收进程通过中间实体(邮箱)的方式进行发送和接收。这个方法不借用任何共享存储或数据结构。
      •   客户-服务机系统:
  • 线程
    •   线程:作为调度和分派的基本单位。
    •   进程和线程的比较
      •   调度的基本单位:进程是独立调度和分配的基本单位,能独立运行,切换代价大;线程作为调度和分配的基本单位,能独立运行,切换代价小;进程的切换回导致线程的切换,而同一个进程中线程的切换对进程没有影响,但是不同进程中的线程相互切换会导致进程切换。
      •   并发性:进程间可以并发执行,多个线程也能并发执行,一个进程的所有线程也能并发执行。
      •   拥有资源:进程可以拥有资源,作为系统中拥有资源的一个基本单位(PCB);线程不拥有系统资源,只有本有够自己运行的资源。线程允许多个线程共享该进程的所有的资源。
      •   进程的系统开销大,独立性高,线程开销小,独立性比较差。
  • 线程的实现方式
    •   内核支持线程:无论系统进程还是用户进程都是在操作系统内核下运行的。
    •   用户级线程:在用户空间中实现的,用户级线程和内核无关。
时间: 2024-11-08 03:48:35

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

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

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在同一时间段内快速地在多道程序间交换,注意这里是同一时间间隔,这样就造成了一种伪并行

操作系统——进程

为了实现程序的并发执行,才引入进程 程序的顺序执行: (顺序性,封闭性,可再现性) 程序的并行执行,提高CPU的效率和系统吞吐率:(间断性,失去封闭性,不可再现性) 引入进程解决程序并发的问题,进程的特征: ① 结构特性,为使程序能够独立运行,应为之配置一进程控制块,即PCB(Process Control Block).而程序段.相关的数据段和PCB三部分构成进程实体.所谓创建进程,实质上是创建进程实体中的PCB,撤销进程也是撤销进程中的PCB. ② 动态性,进行的实质是进程实体的一次执行过程

操作系统 进程(下)

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

操作系统 进程(上)

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

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

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