第二章 进程的描述与控制

2.1 前趋图和程序执行

前趋图:用来描述程序执行顺序的图

初始节点、终止节点


2.2进程的描述

2.2.1进程的定义

进程是运行中的程序实体,是操作系统进行资源分配和调度的基本单位。为了使程序执行,os必须为每个进程创建独立的数据结构PCB。因此进程包含:程序段、数据、PCB

2.2.2进程的基本状态及转换

就绪状态:获得了各种资源,但是未分配CPU。就绪队列里

运行状态:获得了资源和CPU正在执行的状态

阻塞状态:由于IO或者缓冲区申请失败等原因,将CPU分配给其他进程,当前进程受到阻塞的状态。阻塞队列

扩展状态:创建、终止

操作:挂起、激活

挂起、激活:用户操作需要、父进程需要操作子进程、os系统资源分配和符合调节的需要

2.2.3三种状态的转换



2.2.4进程管理的控制结构

PCB:内存、设备、文件、进程


PCB的作用:

a,作为试图独立运行的基本单位的标志。程序只有在创建了PCB结构之后,才会被CPU调用

b,能实现间断运行的方式。程序是在OS中间断运行了,PCB保存了进程运行的线程信息,当进程被CPU再次调用了PCB用于恢复上次停止时的线程信息

c,提供进程管理的信息。比如程序和数据在内存或外存的始存地址信息

d,提供进程调度的信息。比如状态信息

d,实现进程通信的信息。比如信号量数据


2.3进程控制

2.2.1 操作系统内核

基本功能:中断、时钟管理、原语操作

资源管理功能:进程管理、存储器管理、设备管理

2.4 进程同步

进程同步方式:硬件的方式、信号量同步、管程

管程:

2.5进程通信

共享方式:

共享存储器、管道通信系统、消息队列、客户机-服务器模式(socket、rpc)、restapi

2.7 线程

进程:使程序能够并发执行、提高系统吞吐量和资源利用率

a,拥有资源的基本单位。PCB、主要指内存地址、状态信息,上下文信息、信号量、打开的文件和设备等

b,分配和调度的基本单位

线程:是为了减少程序在并发执行时的是空开销,进一步提高系统吞吐量和资源利用率

进程和线程的区别是什么?

a,调度的基本单位:

传统的os中进程是基本的调度单位,在每次调度都会产生上下问的切换,会消耗大量的资源,但是在引入线程的系统中,线程是基本的调度单位,线程可以继承进程的大部分资源,线程的切换只需保存少量的寄存器内容,开销远低于进程。同一进程中,线程的切换不会引起进程的切换,但是进程的切换一定引起线程的切换

b,并发性:

c,独立性

d,拥有资源

e,系统开销

f,支持多处理机

2.8 线程的实现

2.8.1 内核支持线程

缺点:开销大、多线程切换的时候需要用户态和内核态之间的切换

2.8.2 用户级支持线程

缺点:是用户实现的,甚至可以在不支持多线程的平台实现。不能利用CPU的多核心

2.8.3组合方式

理论上多对多模型最好


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容