[操作系统]进程管理之进程
进程管理进程CPU调度进程同步死锁进程基本概念进程实体又称进程映像由数据段、程序段和PCB组成。静态进程是进程实体的运行过程(动态性)进程是资源分配的基本单位在无线程引入之前还是CPU调度的基本单位。进程VS程序进程是程序及其数据在计算机上的一次执行过程是动态的概念而程序是有序指令的集合是静态的概念。进程是程序的一次执行过程是动态的创建和消亡的具有一定的生命周期是暂时存在的而程序是指令的集合可长期保存在计算机之中。一个进程可以执行一个或几个程序一个程序也可以构成多个进程。进程可以创建进程而程序不可以形成新的程序。从静态来看进程实体不仅包括程序段还包括数据段和PCB。PCB是进程存在的唯一标志。创建进程实质就是创建进程的PCB而撤销进程实际上就是撤销进程的PCB。七状态模型进程控制进程创建(创建原语)分配PID申请并填写PCB若资源不足则转为阻塞态而非创建失败。进程终止(撤销原语)终止执行该进程及其子进程回收系统资源在所在队列删除对应PCB。进程阻塞(Block/阻塞原语)因进程主动申请某种资源而由运行态主动转为阻塞态。进程唤醒(wakeup/唤醒原语)当PCB期待的事件发生后用唤醒原语唤醒进程。阻塞原语和唤醒原语需成对使用阻塞原语是由于所执行进程主动申请而唤醒进程则是由一个与被唤醒进程合作或其他相关的进程实现的。进程切换(切换原语)保留当前运行环境以及程序计数器、其他寄存器恢复待执行进程运行环境更新PCB信息。进程通信管道通信消息传递共享存储共享存储通过共享存储区实现进程通信但对共享资源的访问操作需要使用同步互斥工具(PV操作)来进行控制。其中又分为基于数据结构的低级共享和基于存储区的高级共享。消息传递以格式化的消息为单位进行直接或间接通信。直接通信即指把消息挂至对应进程消息缓冲队列中间接通信通过中间实体(通常称为邮箱)进行通信。管道通信管道也是一种文件。实行半双工通信。即同一时间只能单向传输且未写满不可读未读空不可写只支持读一次。线程线程是“轻量级进程”。是CPU执行单元也是程序执行流的基本单元。CPU的调度以线程为基本单位。而线程几乎不占据资源其共享所在线程的资源而线程内部的数据非共享。线程VS进程线程是系统资源调度的单位而进程是系统资源分配的基本单位。线程基本不拥有资源共享所在进程的资源而进程是资源分配的基本单位拥有资源。线程的提出更好的实现了并发性。同一进程之间的线程进行切换所用的开销较小而不同进程之间的线程进行切换所用开销开销加大。同一进程之间的线程共享资源通过读/写进程数据段便可实现线程之间的通信而进程之间的通信需要使用通信互斥工具PV操作来实现。线程无独立的地址空间但包含CPU线程可以独立执行程序但不可脱离进程。进程的实现分为用户级线程和内核级线程。用户级线程由应用程序实行线程之间的切换而内核意识不到用户级线程。对于OS内核来说实质上只有单线程在工作。因此系统开销小但多用户级线程之间容易形成阻塞一个阻塞就会导致全部线程阻塞。内核级线程由OS内核进行线程管理工作系统开销大但各线程之间相互独立。