一、进程管理

1基本概念: 

  进程:计算机已运行程序的实体。程序本身只是指令的集合,进程才是程序的真正运行。用户下达运行程序的命令后,就会产生进程。

  进程通常有5种状态,其中前3种为进程的基本状态。分别为:运行状态;就绪状态;阻塞状态;创建状态;结束状态。其中,就绪状态指进程获得了除了处理器之外的一切所需资源,一旦得到处理器即可运行。阻塞状态指进程正在等待某一事件而暂停运行,入等待某资源为可用(不包括存储器)或者等待输入、输出完成。

  进程与程序的区别:1.进程是程序及其数据在计算机上的一次运行活动,是一个动态概念。进程是由程序、数据和进程控制块(JCB)组成。程序是一组有序的指令集合,是一个静态概念。2、进程是程序的一次执行过程,具有一定的生命周期,可以永久存在的,可长期保存。3.一个进程可以执行一个或者几个程序,一个程序也可以构成多个进程,进程可以创建进程,但是程序不能形成新的程序。4.进程和程序的组成不同。

 

  线程:有时也被称为轻量级进程,是程序执行的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器和堆栈(Stack)组成。线程也有就绪、阻塞和运行三种基本状态。

线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个线程完成不同的工作,被称为多线程

  线程进程区别:1.调度,进程是拥有资源的基本单位,线程是独立调度的基本单位。在同一进程中,线程的切换不会引起进程切换,在不同的进程中线程的切换,会引起进程切换。2.资源,进程是拥有资源的基本单位,线程不拥有资源,但是线程可以共享其隶属进程的系统资源。3.并发,进程可以并发执行,同一个进程内的多个线程也可以并发执行。4.系统开销,创建和撤销进程时,系统都要为之分配或者回收资源,线程切换时只需要保存少量寄存器内容,开销少,同一个进程内的多个线程共享进程的地址空间,因此这些线程之间的同步和通信易实现,甚至无需操作系统干预。5.地址空间和其他资源,进程的地址空间之间互相独立,同一个进程的各个线程共享进程资源。6.进程间通信需要借助操作系统,而线程间可以直接通过读写进程数据段来进行通信。

 

进程通信和进程同步

  Linux线程间通信:互斥体(互斥量),信号量,条件变量

  Windows进程间通信:管道、共享内存、消息队列、信号量、socket。

  Windows线程间通信:临界区(Critical Section)、互斥量(Mutex)、信号量(信号灯)(Semaphore)、事件(Event)。注意:临界区与互斥体的区别:临界区智能用来同步本进程内的线程,而不能用来同步多个进程中的线程。互斥量,信号量,事件都可以跨越进程使用来进行同步数据操作;临界区是非内核对象,只在用户太进行锁操作,速度快,互斥体是内核对象,在核心态(需要处理器参与)运行,速度慢。

 

  进程的调度算法:先来先服务算法(FCFS),短作业优先(SJF),优先级调度算法,高相应比优先算法,时间片轮转算法,多级反馈队列调度算法。

 

  死锁:多个进程因竞争资源而造成的一种僵局(互相等待),若无外力做用,这些进程都将无法向前推进。

  死锁产生的原因:系统资源的竞争,进程推进顺序非法。

  死锁产生的必要条件:互斥条件,不剥夺条件,请求和保持条件,循环条件。

       银行家算法是著名的死锁避免算法。

 

posted on 2015-07-20 17:28  肉松蜗牛  阅读(190)  评论(0编辑  收藏  举报