前言
由于CPU进入了多核心时代,这就要求了程序员如果要充分发挥出CPU的运算效率,就必须采用并发编程,进程这个概念也就被引入了。
提示:以下是本篇文章正文内容,下面案例可供参考
一、进程是什么
进程是程序依次动态执行的过程,它对应了从代码加载、执行到执行完毕的过程.这个过程也是进程本身从产生、发展到消亡的过程。一个进程可分为两个部分,分别为要执行的指令和执行指令时所需的各种系统资源,如CPU、内存等。
进程是包含线程的. 每个进程至少有一个线程存在,即主线程。进程中的每个线程执行不同的任务,这样就达到了多任务处理的目的。
特点
进程消耗资源(创建、销毁、调度)多,速度慢。
在操作系统内部,进程是操作系统进行资源分配的基本单位。
进程是操作系统对一个正在运行的程序的一种抽象,可以看作是一种资源,并且是由操作系统内核负责管理(描述+组织)的。
PCB-描述
由于操作系统一般由C/C++编写,所以使用了C语言的结构体来描述进程,那么这个结构体就称为了PCB(Process Control Block)。
PCB包括:pid 进程的身份标识符。内存指针 指向所在内存。文件描述符表 硬盘上的文件等资源。
组织
可以简单认为是通过双向链表将多个PCB串连在一起。
二、进程调度的特性
进程状态
就绪状态:随时都能到CPU上执行。
运行状态:正在CPU上执行。
阻塞状态:在这一段时间内,无法到CPU上执行。
优先级
进程有优先级,操作系统调度进程也是按照优先级顺序来进行工作的。
上下文-读档 存档
操作系统在进行进程切换的时候,会把进程执行的中间状态记录,当下次再次调用到这个进程的时候,会恢复到上次的状态。保存上下文,是此时CPU寄存器的值,保持到内存中(PCB)。回复上下文,是把内存中的值读出,写回寄存器。
记账信息
操作系统统计每一个进程在CPU上占用的时间和执行的指令数目,据此来判断下一阶段的调度。
那么,以上就是本文的全部内容了。