视频字幕
让我们用厨房的比喻来理解操作系统的基本概念。程序就像一份写好的菜谱,它是静态的指令集合,本身不会动。而进程就像厨师按照菜谱做菜的整个过程,是程序的动态执行。一个菜谱可以被多个厨师同时使用,形成多个不同的做菜过程,这就是一个程序可以创建多个进程的概念。
进程控制块PCB是操作系统管理进程的核心数据结构,就像每个厨师随身携带的任务清单和状态记录本。PCB是进程存在的唯一标识,操作系统通过它来了解和管理每个进程。进程在执行过程中会有三种基本状态:运行态表示正在CPU上执行,就像厨师正在灶台前炒菜;就绪态表示具备了执行条件只等CPU,就像厨师准备好了只等灶台空出来;阻塞态表示等待某个事件而暂停执行,就像厨师等酱油送来。这些状态会根据系统调度和资源情况进行转换。
在多进程环境中,进程间需要协作和竞争资源。临界资源是一次只能给一个进程使用的资源,比如唯一的灶台。临界区是进程中访问临界资源的代码段。互斥确保同一时间只有一个进程在临界区执行,就像只有一个厨师能用灶台。同步则协调进程间的执行顺序。信号量是实现同步互斥的重要工具,它像灶台旁的牌子,记录可用资源数量。通过P操作申请资源,V操作释放资源,确保资源的有序使用。
进程间需要交流信息和协调工作,这就需要进程通信机制。低级通信主要通过同步互斥机制传递简单信号,效率较低且对用户不透明。高级通信提供了更方便高效的方式:共享存储器就像公共白板,所有进程都能读写;消息传递像发短信,可以直接点对点或通过邮箱中转;管道像单向管子,一个进程写入另一个进程读出;客户机服务器系统则通过网络进行请求响应通信。这些机制让进程能够高效协作完成复杂任务。
线程是进程内更轻量的执行单位。如果说进程是整个车间,那么线程就是车间里的工人。一个车间可以有多个工人同时工作,一个进程也可以有多个线程并发执行。线程共享进程的资源比如内存地址空间,但有自己独立的执行路径。线程是CPU调度的基本单位,创建和切换线程比进程快得多。通过引入线程概念,程序可以在内部实现并发,大大提高了系统的并发性和执行效率,这就是现代操作系统中线程技术的重要意义。