进程与线程

本文详细介绍了进程与线程的概念,包括进程的状态、生命周期、控制模型等,并对比了进程与线程的区别,以及线程引入的原因。同时,还探讨了线程在不同操作系统中的实现方式。

第十一讲 进程与线程

维护执行过程

程序执行状态的检测(CPU 内存 网络)

11.1 进程的概念

进程与程序的关系。

定义:
进程是具有一定独立功能的程序在一个数据集合上的一次动态执行过程。
Alt text


内存中的进程
Alt text

进程的组成
和程序相比,多的是状态信息的包含

  • 代码,数据
  • 状态寄存器 CPU状态CR0,指令指针IP
  • 通用寄存器 AX BX CX
  • 进程占用系统资源 (打开文件,已分配内存)

进程的特点

动态性,并发性(处理机),独立性,制约性(共享数据,资源和进程间同步)

进程与程序的联系
相同点:
进程 = 程序 + 运行时的资源环境。(内存,CPU)
进程:运行时的程序。它的状态会改变。程序是静态文件。
进程是暂时存在的。程序是永久存在的。
进程存在用户态/核心态。程序是有序代码的集合。
进程与程序的组成不同:
进程组成包括:程序,数据集合进程控制块。
不同点

进程控制块 (PCB)

重要。运行信息的控制和管理。

集成的基本信息,PID,进程状态。

使用
通过对PCB的组织管理来进行对进程控制块的组织管理。

PCB
标识信息
交替部分?处理机的现场保护。
进程控制信息

Alt text

进程控制信息
Alt text



进程控制块的组织(就绪与阻塞)

Alt text

疑问

PCB具体表现使用的代码过程。

进程状态

进程为什么要有状态:?
OS为了维护信息的变化,要知道进程在执行过程中会出现哪些状态,下一刻会发生哪些变化。

生命周期
创建
执行
等待
抢占(高优先级抢占了低优先级,从就绪状态执行状态
唤醒(等待的进程被唤醒,放到就绪状态
结束

进程创建(资源的初始化)

进程执行
如何选择 (就绪队列)? 处理机的调度选法

进程等待
原因:(sleep)

  • 等待的系统服务没有马上完成。
  • 启动某种操作,读写磁盘,无法马上完成
  • 需要的数据没有到达
    等待事件: 只有进程自身才知道等待时间何时发生(不是外部原因)

进程抢占(运行→就绪
原因:

  • 高优先级在就绪状态中
  • 进程执行的当前时间用完(处理机)

进程唤醒(等待→就绪
原因:

  • 被阻塞进程的等待资源已满足
  • 等待的事件到达

一定是被其他进程或OS唤醒

进程结束
资源的退还

  • 正常退出
  • 错误退出(自愿)
  • 致命退出
  • 被其他进程所杀

进程切换

Alt text

疑问

具体实现:

  • 保护现场的实现过程
  • 恢复现场的实现过程
  • 创建进程的demo
  • 退出进程的demo (对不同错误情况处理的demo
  • 如何执行一个进程?(就绪队列 → 运行 → 等待队列?)
  • 等待的进程要监听自己的资源是否满足。
  • 进程之间的优先级问题又如何分配?

三状态控制模型

Alt text

进程状态的变迁(代码执行的地方,根据进程的状态标识位,来标识进程现在所处的不同状态)

进程与线程

为什么会引入线程
提高进程的并发性。
播放音频:

  • 读数据
  • 解压
  • 播放

如果是三个进程去执行,那么进程之间通信与数据共享的问题。
Alt text

线程概念
Alt text

进程线程内存

Alt text

Alt text

不同操作系统对线程的支持

从单进程系统(一个指令指针流)→多进程系统(进程切换,进程资源隔离

从单进程多线程系统(路由器) → 多线程系统(现代UNIX

线程与进程的比较
Alt text

线程实现

用户实现:在用户空间实现

内核线程:在内核中线程(网络后面才加入到内核中)

轻量级进程:二者的结合

进程控制

进程切换

进程创建

进程加载

程序加载和执行系统调用exec()

(小问题:)

  • 系统加载过程:从bootloader加载os到内存中。自身是否算一个进程?

当系统启动好后,任何一个程序的运行,都是会调用系统函数将其加载到内存,成为进程。

转载于:https://www.cnblogs.com/tianxinblog/p/5423367.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值