进程管理
进程管理是操作系统中核心的部分
关键词: 进程,线程 PCB控制块 信号量和P—v操作进程基本概念,管程,线程等
进程:进程是一种并发执行的程序,在一次相互局集合上的一次运行的过程,他是系统进行资源分配和调度的一个单元。
进程和程序的主要区别:进程具有动态性和并发性,而程序是一个静态的概念是指令的集合,进程在运行中的程序,是程序的一次活动。
进程是有进程实例组成,由程序块,进程控制块PCB,和数据块等部分组成。程序块主要完成程序所要实现的任务,数据块是指程序运行时候所需要的数据和工作区,进程控制块是指包含描述进程的描述信息,控制信息,资源管理和CPU现场保护信息等。表现程序的动态性。
PCB主要实现的功能
为了描述和控制进程的运行,系统为每一个进程定义了一个数据结构——进程控制块。
它是进程实体的一部分,是操作系统中最重要的记录型数据结构。或者说,OS是根据PCB来对并发程序的进程进行控制和管理的。总而言之,PCB是进程存在的唯一标志。
进程控制块中的信息包括进程标识符、处理机状态、进程调度信息、进程控制信息。
进程标识符用于唯一的标识一个进程。一个进程通常有两种标识符:内部标识符和外部标识符。
处理机状态信息主要是由处理机的各种寄存器中的内容组成的。处理机在运行中,许多信息都是放在寄存器中的。当处理机被中断时,所有的这些信息都保存在PCB中,以便在该进程重新执行时,能从断点继续执行。
进程调度信息包括进程状态、进程优先级、进程调度所需的其他信息,事件(阻塞原因)。
进程控制信息包括程序和数据的地址、进程同步和通信机制、资源清单、链接指针。
进程控制块的组织方式为链接方式、索引方式。
PCB一般是常驻内存中的。
进程的状态转换与控制:
进程状态有就绪状态,执行状态,阻塞状态。
就绪状态指除处理器的以外的必需资源已经准备完全,进程被创建完成后就处于就绪状态,在多个就绪状态的进程中放到一个堆栈中,按照调用算法进行调用
执行状态是指正在利用处理机的进程,在单cpiu系统中,每一时刻只有一个人进程处于执行状态。
阻塞状态是指因为等待事件的发生而放弃处理机进入等待状态,系统中的等待状态可能有多个,在获取到事件发生后,便进入就绪状态进行等待。
进程之间的转换关系图。。。
进程间的互斥与同步:
进程间的互斥是指一组并发进程中的一个或者多个进程因为共享同一资源而导致他们在一时间段内不允许交叉执行的单位单元,互斥保证了一个临界资源在一时刻内只能被一个进程访问。
进程间的同步是指在异步环境下一组并发程序因直接制约而相互发送消息,进行异步通信,消息传递等,使得各个进程在以一定的速度进行的进程同步,即就是说进程之间是异步执行的,同步即使各个进程按照一定的制约顺序和速度执行的。
信号量可以实现进程之间的同步和异步功能(P-V操作)。
关于信号量http://blog.csdn.net/samulelin/article/details/2466516
http://blog.csdn.net/hqm475/article/details/6711066最经典的例子就是生产者和消费者
注意在生产者和消费者中,两者信号量的初值是怎样确定的,是多少?(1)(1,0)
进程间通信:
消息队列;管道;socket编程
进程间的调度和死锁:
进程间的调度即使处理器的调度,剥夺式调度和非剥夺式调度;
剥夺调度是指在就绪队列里面一旦有进程优先级高于当前执行进程优先级时便发生进程之间的剥夺时调度。
非剥夺式调度是指很自然的占有处理机的算法设计。
进程调度算法有(先来先服务,优先级调度,轮转法调度)
死锁:
指多个进程之间相互竞争对方的资源,而对方一直处于占用状态,使得多个进程都处于无限的等待状态,不能向前推送的进程,其产生的主要原因有共享资源不足和资源分配策略不理想和进程推送顺序不当等。
产生进程死锁必要条件有:互斥条件,保持和等待条件,不剥夺条件,环路等待条件
四个条件只需要破坏一个就可以实现解开死锁。
最后谈谈线程:
线程是指进程的实体,是系统实施调度的独立单元。
线程和进程之间的区别:线程开销远远小于进程。