操作系统 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)组合方式

就是集合上面两个

 

 

 

 

 

 

posted @ 2022-03-28 22:30  赚钱买个打印机  阅读(33)  评论(0)    收藏  举报