1.进程概念
进程:一个正在执行的程序;操作系统提出进程概念目的:是为了跟踪程序在执行期间的状态。而程序只是一段代码,是一个静态的概念
无法准确描述程序执行时候发生的一切。程序代码被加载进内存后就以进程的形式存在。
2.进程的组成
逻辑地址空间:这个概念是由操作系统提出来的,目的是为了程序员更方便的编程,不用考虑实际的内存分配情况内存管理等情况,只有出现在存储性地址总线
上的地址是真实的物理地址,其他任何阶段出现的地址都是逻辑地址。程序看到的逻辑地址空间可以比实际的内存空间大很多,进程执行过程中
CPU需要访存的时候,由OS完成地址映射过程----把逻辑地址转换为物理地址。
执行引擎;程序代码;数据;占用的系统资源
PCB:进程控制块---是一个复杂数据结构---里面维护者进程运行所需要的所有信息。进程创建时候就要创建对应的PCB并进行相应的初始化,同时随着进程的执行
操作系统需要维护PCB的内容。操作系统管理进程实际上就是在管理进程的PCB。
3.进程PCB的组成
进程标识;进程上下文切换;进程控制信息:调度信息、状态、进程通信、存储信息、所用资源、进程所在队列信息
4.进程的特点:动态性;并发性;独立性;制约性,在多进程的系统中强调进程之间独立性,但是进程之间也需要进行合作,就需要配合;以及对共享资源的访问存在限制
5.进程的状态--主要分析3中主要的状态
注意:前提条件是仅有一个CPU的情况,多个进程竞争获得CPU的执行权,得到执行
进程创建:进程创建是由一个已经存在的进程,通过系统调用由操作系统内核创建的,此时就给进程分配PCB并初始化。
进程就绪态:进程创建后并完成了相应的初始化获得了除了CPU以外的其他资源,等待CPU的调度。OS管理所有处于就绪状态的进程方式:把进程的PCB组织成就绪队列。
进程执行:通过OS设定的CPU调度策略从就绪队列中选出一个进程获得CPU执行权。
进程阻塞:进程在运行的过程中,由于需要等待某个外部事件的发送,自己将CPU执行权让出,自身处于等态。
操作系统根据进程等待的事件分类,维护了多个等待队列。
6.进程状态之间的转换:
就绪态--运行态:新的进程被CPU调度
运行态--就绪态:CPU分配给进程的时间片用完
运行到--阻塞态:进程等待外部事件发生,放弃CPU执行权;CPU要进行新的调度
阻塞态--就绪态:阻塞的进程等待的外部事件发生,被唤醒,进入就绪队列
注意:在进行调度时,调度器决定新调度的进程是哪个,接着需要进行进程上下文切换:进入OS内核态,要保存上个进程的执行状态(寄存器值等),
加载新调度进程的状态,完成后将CPU执行权交给将要执行的进程。进程的状态保存在OS内核中进程对应的内核栈中。
随着进程的执行进程状态不断发生变化,操作系统管理的进程本质就是将PCB在几个队列之间进行迁移。
7.进程按照操作分类
IO绑定的进程:大多时候是需要进行IO操作、与用户交互的进程,这些进程真正的使用CPU的时间很短,假如给进程设置优先级:这些进程的优先级应该高
CPU绑定的进程:通常是一些要进行大量计算的,不常和用户交互的进程,这些进程需要的CPU时间比较长,但是没有严格的完成时间限制,设置优先级低
8.CPU调度器:是一段算法其功能就是在就绪队列中选择一个进程,完成进程上下文切换,让该进程被CPU执行。
CPU调度策略分类:非抢占式:当前进程正在执行,就绪队列来一个优先级较高的进程,当前进程会继续执行直到自愿放弃CPU执行权。
抢占式:当前进程正在执行,就绪队列来一个优先级较高的进程,当前进程被迫让出CPU,优先级较高的进程被调度。