1.基本概念
程序:就是一个指令序列。
随着计算机的发展,计算机从单道程序发展到多道程序。
系统为每个进程配置一个数据块,称为程序控制块(PCB),用来描述进程的各种信息。
PCB,程序段,数据段三部分构成了进程实体。
创建进程,实质上就是创建进程实体中的pcb,撤销进程,实际上就是撤销进程实体中的PCB,PCB是进程存在的唯一标志。
- 程序段:存放代码本身。
- 数据段:程序运行中使用,产生的运算数据。
- PCB:操作系统通过PCB来管理进程,因此PCB中包含操作系统对其进行管理所需要的各种信息。
PCB中包含的信息:
- 进程描述信息
- 进程标识符PID
- 用户标识符UID
- 进程控制和管理信息
- 资源分配清单
- 处理机相关信息:各种寄存器值
进程的组织:多个进程之间的组织方式
- 链接状态:执行指针,就绪队列指针,阻塞队列指针。
- 索引方式:指针指向索引表
2.进程的状态与转换
进程是能够独立运行,独立获取资源,独立接受调度的基本单位。
![2fbe7399ee6ae05c914f35832e3a0424.png](https://img-blog.csdnimg.cn/img_convert/2fbe7399ee6ae05c914f35832e3a0424.png)
- 运行态到阻塞态是一种进程自身做出的主动行为。
- 阻塞态到运行态不是进程能控制的,是一种被动行为。
- 阻塞态不能直接转换为运行态,也不能直接从就绪态转换为阻塞态。
3.进程控制
进程控制的主要功能是对系统中所有进程实施有效管理,它具有创建进程,撤销已有进程,实现进程状态转换等功能。实现各种进程状态之间的转换。
原语:执行期间不允许被中断。采用关中断和开中断指令实现,只允许在核心态下执行的特权指令。
创建原语,撤销原语,阻塞原语,唤醒原语,切换原语。
进程因什么而阻塞,就因什么而唤醒
4.进程通信
各个进程拥有的内存地址空间是相互独立的,一个进程不能直接访问另一个进程的地址空间。
共享存储:两个进程对共享空间的访问是互斥的。
- 基于数据结构的共享:低级通信方式
- 基于存储区的共享:高级通信方式
消息传递:格式化消息为单位传递。用发送信息/接收信息两个原语进行数据交换。
管道通信:固定大小的缓冲区,半双工通信。各个进程要互斥的访问管道。管道写满时,不能再写,管道读空时,不能再读。
5.线程概念
引入线程之后,线程成了程序执行流的最小单位。进程是资源分配的基本单位,线程是调度的基本单位。每个线程都有一个线程ID,和线程控制块TCB。
同一个进程中的不同线程共享进程的资源。线程几乎不拥有系统资源,由于共享内存地址空间,同一进程的线程通信无需系统的干预。同一进程中的线程切换,不会引起进程切换,不同进程间的线程切换,会引起进程切换,切换同进程中的线程,系统开销很小。
线程的实现方式:用户级线程与内核级线程。
用户级线程:由应用程序通过线程库实现。线程管理工作由应用程序负责,线程切换可以在用户态下即可完成。对内核来说是透明的。
内核级线程:线程管理由内核负责。
![c1ec743d7d3527a91a510e1866d45dd7.png](https://img-blog.csdnimg.cn/img_convert/c1ec743d7d3527a91a510e1866d45dd7.png)
内核级线程才是处理机分配的单位。
多线程模型:在同时支持用户级线程和内核级线程的系统中,由几个用户级线程映射到几个内核级线程的问题引出了“多线程模型”的问题。
多对一模型,一对一模型,多对多模型。多对多模型克服了一对一模型中一个用户进程占用太多内核级线程开销太大的缺点,同时有较高的并发性。
6.处理机调度的概念、层次
调度:由于资源有限,按照某种规则处理决定任务的顺序。
- 高级调度:作业调度。外存与内存之间的调度,面向作业。每个作业只调入一次,调出一次,调入的时候创建相应的PCB。
- 中级调度:内存调度,外存内存之间的调度,面向进程。引入虚拟内存之后,可以将暂时不能运行的进程调至外存等待,提高了内存的利