文章目录
简介
进程:系统资源分配和独立运行的基本单位。
进程控制块(PCB),用来描述进程的
线程:轻型进程,调度和分派的基本单位。
线程的引入
进程创建(PCB)撤销和上下文切换开销都很大。
多处理机提高CPU利用率,并发和吞吐量。
线程只需保留少量线程控制块(TCB)、程序计数器(指令执行到哪里了)、局部变量和返回地址等,占用资源少。
线程的实现
(1)创建线程控制块TCB空间(标识符、优先级、CPU状态)
(2)分配资源,如栈空间,局部变量表。
(3)调度:时间片、优先级、
(4)撤销进程TCB并不会立即删除,可作为新线程使用
(1)用户级线程
存在用户空间,被用户进程进行创建和调度,无需切换内核,切换速度快,只有当系统调用时,才会映射到内核控制线程LWP(Light Weight Process)
(2)内核级线程
内核看不到用户线程,本质就是在操作内核级线程,二内核级线程再与用户线程对应。
进程的三种基本状态:
(1)就绪(Ready): 得到Cpu以外的所有资源,会存入就绪队列
(2)运行(running): 获得CPU正在执行
(3)阻塞(Block): 运行中的线程IO请求或申请资源失败,会进入阻塞队列
引入挂起操作
(1)用户自己要停止进程查看问题
(2)父进程要修改子进程
(3)系统自己操作,进行负荷调节,系统繁忙,挂起一些不重要的进程
进程如何创建
(1)申请一个空白PCB
(2)分配运行所需要的资源,如内存、文件、IO设备、CPU
(3)初始化PCB,比如设置进程为就绪状态或静止就绪状态,优先级,程序计数器指向程序入口地址,栈指针指向栈顶
PCB:保存进程的控制和管理信息
(1)外部标识符(用户提供),内部标识符(OS设置的序号)
(2)进程调度信息:比如当前进程状态(以等待CPU多长时间,已执行多长时间)优先级等
(3)进程控制信息:进程同步和通信机制存放在PCB,比如消息对列指针和信号量,下一个PCB的指针
进程的同步:信号量和管程(Monitors)
管程:定义公共的数据结构如消息队列,主要进行同步操作
操作系统内核
简介:常用设备的驱动程序,一些频率高的模块如时钟管理和进程调度,他们常驻内存。
作用:比较保护他们防止被破坏,同时提高OS的运行效率。
终止进程:正常结束,异常退出(越界,算术异常等)
进程通信五种方式
(1)信号量:进程间同步和互斥进行的消息交换,低级数据量少
(2)共享内存:进程在共享存储区申请一块分区,由进程控制读写
(3)管道通信(有名管道和无名管道):内存缓冲区,无名管道是在父子进程
(4)消息队列:以消息(数据块)为单位传递数据。结构为消息链表
(5)套接字:本地套接字和远程RPC(套接字)