进程是执行中的程序。当启动可执行文件,并被启动被装载到内存中,一个程序就成为了进程。
进程包括代码段,堆栈段(用于保存临时数据,局部变量等),数据段(用于保存全局变量),堆(运行时动态分配的内存),当前进程的活动状态。
进程控制块
进程在操作系统中用数据控制块这样的一个数据结构表示,包含了进程的相关信息。在CPU调度进程进行切换的时候,会将信息保存到进程控制块中。进程状态、程序计数器(要执行的下个指令)、CPU寄存器、CPU调度信息(进程优先级,调度队列的指针和其他调度参数)、内存管理信息、记账信息(CPU时间,时间界限等)、I/O状态信息。
调度程序
对于当前CPU执行的进程的选择是由相应的调度程序来执行的。
进程间通信
进程间通信有两种基本模式:1.共享内存;2.消息传递。
共享内存:创建一块共享的内存区域,其他进程通过这个共享区域来交换信息。
消息传递的方式有多种
直接/间接通信:直接根据标示通信/通过端口来通信。
同步/异步通信
队列缓冲,在消息传递中,不管是直接或者间接通信,进程的消息都保存在临时队列中,临时队列的缓冲有三种方法:1.零容量;2.有限容量;3.无限容量。