操作系统 03
第二章 进程管理


1】进程与线程
什么是进程,为什么需要进程?
1】进程定义
进程是程序的一次执行;
进程出现是为了更好的控制程序的并发执行;
pcb(进程控制块)为了控制程序的,有程序的信息和状态
进程实体(进程组成)PCB+程序段+数据段
进程实体是静态的;进程是动态的;
PCB是进程的唯一标识(身份证)
进程是系统资源分配和调度的独立单位
系统资源:cpu、存储器和其他设备服务于某个进程的时间(工作时间)
2】进程特征
进程是由多道程序并发执行而引发的
1)并发、2)动态(生命周期)、3)异步、4)独立(执行)
2】进程的状态和切换
进程状态:
1、就绪(缺cpu
2、运行
3、阻塞(缺资源
区别就绪和堵塞状态:就绪缺cpu;阻塞缺资源(所谓时间)

补充:运行到阻塞时自动行为;阻塞到就绪是被动
3】进程的组织(进程组成:pcb+数据段+程序段
核心pcb,常驻内存,进程的唯一标识

系统有很多进程,有不同的状态进程(如运行、阻塞等)相同的需要链接起来,
主要:链接方式(队列)和索引方式(索引表)
2】程序段能被进程调度程序调度到cpu执行的代码段
3】数据段(原始数据
4】进程控制(进程管理
原语:进程控制用到的程序段
1)创建(登录系统、作业调度、提供服务等
一个进程里面还可以创建进程
创建过程:
申请空白pcb+给资源+初始化+插入队列
2)终止
过程:
找到pcb+停止它,释放它资源+将pcb删除掉
3)阻塞和唤醒
阻塞(主动)过程:找到pcb+改变其状态+插入别的队列,释放cpu
唤醒过程:将pcb移出阻塞队列+转移到就绪队列+等待调度
5】进程的通信(交流、信息交互
有低级通信:pv操作
高级的话(3个)
1】共享传递
进程间有共享空间,通过对其的读写实现信息的传递
![]()

2】消息传递
传递的信息是格式化形式(规定死
没有共享空间是可以用,有两种:1)直接通信:直接对话;2)间接通信方式:将信息发送到中间实体(邮箱

3】管道通信
管道:特殊的共享文件(缓存块
管道通信时特殊的消息传递
半双工(管道同意一边写一边读,但是里面需要要有数据
管道克服文件的问题:1)有限制大小;2)读比写快,读就会被堵塞,这解决read()调用返回文件结束的问题

什么是线程,为什么需要线程?
1】线程:小进程、没有自己的系统资源
线程的目的减少切换的时空开销
有了线程,线程是最小的执行单位,进程是资源调度单位
线程里可以创建新的线程
同一个进程里的线程可以直接通信
2】线程与进程的比较
1)调度:进程开销大,线程小
2)资源:进程有,线程没有
3)并发:进程并发,线程并发(同一个进程内和不同进程的不同线程)
4)独立性:进程除了全局变量共享,其他没有;同一个进程的线程共享该线程资源
5)系统开销:进程开销大,线程切换开销小
6)支持多处理器系统:一个进程只能运行在一个cpu,一个进程内的多个线程可以运行多个cpu
3】线程的属性
1)线程轻量实体,有唯一的标识符
2)不同进程可以执行相同的程序
3)共享同一进程的资源
4)支持多处理器
5)有生命周期
4】线程的状态与转换(跟进程一样
5】线程的组织和控制(线程的组成
1)线程控制块
与进程一样有个线程控制块

2)线程的创建
有一个叫”初始化线程“的线程负责创建线程
3)终止线程
遇到异常或者任务完成,终止线程不会没事释放占用的资源,会等大家都执行分离函数(和大家都告别,
才会终止;还没释放资源的时候,它可以被其他线程调用
6]实现的方式
有俩种方式:内核级线程和用户级线程
1)用户级线程(ULT
线程的管理都归应用程序,
通过线程库创建线程,内核不知道
堵塞一个整个不能运行
2)内核级线程(KLT
用户线程和系统线程都是内核管理
根据控制块感知线程的存在
不会因为一个堵塞全部堵塞
线程切换很快
缺点:同一进程中的线程切换需要跑到核心态中,很浪费资源
3)组合方式
就是集合上面两个



浙公网安备 33010602011771号