【操作系统】进程

进程是操作系统中的重要概念,描述了程序的运行信息。一个进程就是一次运行。可以把程序想象成类,进程就是实例。

引入进程的概念有利于实现多程序并行的设计。每一个程序执行的时候可以大致分为IO任务和计算任务,如果一个进程正在IO,那么应该把cpu让给另一个进程执行计算任务,这样可以提升cpu的利用率,这就涉及到了程序执行的上下文切换,所以就引入了进程的概念。

进程到底记录了哪些程序执行的信息呢?1,与程序执行相关的,比如程序计数器以及各个寄存器等。2,与存储管理相关的,比如为该进程分配的内存。3,与文件相关的。

【操作系统】进程

随之而来的是另一个概念--线程。

每一个进程在执行时,可能会有多个任务,比如典型的文本系统,可能有一个任务是接受用户的输入,另一个任务是每隔一段时间自动备份当前文件,以免丢失。当用户没有输入时,备份任务执行,否则接受用户输入任务执行,这样的做法有利于整个进程的执行。让用户等待备份任务执行不是好的做法。所以一般的进程会分为若干的小任务,每一个任务就是一个线程。

线程是依附于进程的,进程是资源的分配单元,每一个线程都共享进程的资源,这样线程的切换是高效的。

线程的实现可以在用户态也可以在内核态。在内核态指的是线程的调度是由内核来完成的,这种做法会加重内核的负担,在用户态指的是调度由用户程序完成,内核并不知道有线程的存在。


调度算法

进程通信