3.1 进程
3.1.1 什么事进程?
进程是一个活动实体,它有一个程序计数器来表示下一个要执行的命令和相关资源的集合,注意程序不是进程,程序是一个被动实体,仅仅是一个代码的集合。
3.1.2 进程状态
- 新的::进程正在创建
- 运行:指令正在被执行
- 等待:进程等待某个时间发生(IO完成或收到信号)
- 就绪:进程等待分配处理器
终止 :进程完成执行
如下图
3.1.3 进程控制块 Process Control Block PCB
在操作系统中每一个进程都用PCB来表示,它包含许多与一个特定进程的相关信息,如下
- 进程状态:物种状态
- 程序计数器:进程要执行的下一个指令的地址
- CPU寄存器:不同的计算机体系结构的寄存器的类型不同
- CPU调度信息:包括进程优先级、调度队列指针和其他调度参数
- ……
3.2 进程调度
3.2.1 进程调度
长期调度,又称为作业调度或高级调度,这种调度将已进入系统并处于后备状态的作业按某种算法选择一个或一批,为其建立进程,并进入主机,它的频率比较低,主要用来控制内存中进程的数量。
中期调度,又称为交换调度。它的核心思想是能将进程从内存或从CPU竞争中移出,从而降低多道程序设计的程度,之后进程能被重新调入内存。
短期调度,又称为进程调度、低级调度或微观调度。这也是通常所说的调度,一般情况下使用最多的就是短期调度。它的主要任务是按照某种策略和算法将处理机分配给一个处于就绪状态的进程,分为抢占式和非抢占式。
可以从下图中清晰的看到这些调度之间的区别。
3.2.2 上下文切换
将CPU切换到另一个进程需要保存当前进程的状态并回复另一个进程的状态,这个过程就是上下文切换。
3.3 进程间通信 Interprocess Communication IPC
进程间通讯IPC就是指不同进程的通信联系,主要有两种基本模式:
- 共享内存
- 消息传递
消息传递对于交换较少数量的数据很有用,因为不需要避免冲突;对于计算机之间的通信,消息传递也比共享内存更容易实现