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组合方式
理论上多对多模型最好
