进程设计理念
进程的设计由来:为满足多道批处理系统的并发调度需求,即程序间断性执行,操作系统需要对这些加载到内存中的程序加以描述和控制,从而能更好的实现并发调度。
进程的特征:
- 动态性:进程在操作系统内的调度是动态的,不断变化的,会在CPU上动态切换。
- 并发性:多个进程同时存在内存中被调度时,可以在一段时间内都得到执行。
- 独立性:每个进程可以独立运行,独立获得资源,独立接受调度。
- 异步性:进程在并发调度时,各自以不可预知地速度推进。
进程控制块(PCB)
为了管理好每一个进程,操作系统使用的管理方案:先描述,再组织。
每个进程的PCB内含有这个进程在内存中的所有必要信息:
- 进程标识符:唯一地标识每一个进程。
- 处理机状态:处理机状态信息也就是CPU的上下文,主要用来保存CPU的各种寄存器数据,在进程调度时保护现场。
- 进程调度信息:进程状态,进程优先级等等和调度有关的信息。
- 资源清单和控制信息:进程所拥有的全部资源,包括文件描述符表,信号集,进程地址空间,页表以及链接指针。
组织方式
管理PCB的本质就是在管理进程,操作系统在内存中通常使用链表或者索引数据结构将PCB组织起来,方便操作系统的管理。将不同状态的进程链接在不同的队列中(就绪队列、阻塞队列、空闲队列等)。
进程调度
进程在内存中、CPU上的调度依赖于各种调度算法,来保证CPU的高利用率,进程的公平性和系统资源的使用平衡。
可以感知,通过以上的设计,程序在内存中就可以较好的完成并发执行了。