进程切换一定发生在中断/异常/系统调用处理过程中,常见的有以下情况:

  • 时间片中断、IO中断后 更改优先级进程;(导致被中断进程进入就绪态);
  • 阻塞式系统调用虚拟地址异常;(导致被中断进程进入等待态
  • 终止用系统调用不能继续执行的异常;(导致被中断进程进入终止态

举例说明:

  • 时钟中断:操作系统确定当前正在运行的进程的执行时间是否已经超过了最大允许时间段,如果超过了,进程必须切换到就绪态,调度另一个进程;
  • I/O中断: 操作系统确定是否发生了I/O活动。如果I/O活动是一个或多个进程正在等待的事件,操作系统就把所有相应的阻塞态转换到就绪态,操作系统必须决定继续执行当前处于运行态的进程,还是让具有高优先级的就绪态进程抢占这个进程。
  • 虚拟地址异常(内存失效):处理器访问一个虚拟内存地址,且此地址单元不在内存中,操作系统必须从外存中把包含这个引用的 内存块(页或段)调入内存中。在发出调入内存块的I/O请求之后,操作系统可以会执行一个进程切换,以恢复另一个进程的执行,发生内存失效的进程被置为阻塞态,当想要的块调入内存中时,该进程被置为就绪态;
  • 对于陷阱:操作系统确定错误或异常条件是否是致命的。如果是,当前正在运行的进程被转换到退出态,并发生进程切换;如果不是,操作系统 的动作取决于错误的种类 和操作系统的设计,其行为可以是试图恢复或通知用户,操作系统可能会进行一次进程切换或者继续执行当前正在运行的进程。
  • 最后操作系统可能被来自正在执行的程序的系统调用激活。例如,一个用户进程正在运行,并且正在执行一条请求I/O操作的指令,如打开文件,这个调用导致转移到作为操作系统代码一部分的一个例程上进行。通常,使用系统调用会导致把用户 线程置为阻塞态;

【计算机操作系统】-进程切换什么时候会发生呢?相关推荐

  1. 计算机操作系统-进程的描述与控制

    目录 进程的描述 进程的定义和特征 什么是进程 所以进程到底什么呢? 进程控制块(PCB) PCB的作用 进程的特点 进程的缺点 进程的基本状态 就绪状态 执行状态 阻塞状态 创建状态 终止状态 挂起 ...

  2. 计算机操作系统“进程”与“线程”的通俗解析

    进程:进程是系统进行资源分配和调度的一个独立单位. 线程:线程是进程的一个实体,是CPU调度和分派的基本单位,线程自己基本上不拥有系统资源,只拥有一点在系统运行中必不可少的资源,但是它可与同属一个进程 ...

  3. 计算机操作系统--网络操作系统和嵌入式操作系统

    网络操作系统 1. 网络操作系统的基本概念 计算机网络系统除了硬件,还需要有系统软件,两者结合构成计算机网络的基础平台.操作系统是最重要的软件.网络操作系统是网络用户和计算机网络之间的一个接口,它除了 ...

  4. 计算机操作系统--存储管理

    基本概念 1. 存储器的结构 存储器顾名思义,就是用来保存数据的东西.随着科技的进步,存储器正朝着高速度.大容量.小体积方向发展.一般情况下,存储器的结构有如下两类: 寄存器-主存-外存 寄存器-缓存 ...

  5. 计算机操作系统--设备管理

    设备管理概述 1.设备分类 1) 按数据组织分类
按数据组织分类,设备可分为块设备和字符设备.
 (1)块设备.它指以数据块为单位组织和传送数据的设备,如磁盘.磁带等,属于有结构设备.
(2)字符设备 ...

  6. 计算机操作系统之进程

    目录 进程的定义 基本概念 进程实体与进程 PCB的组成 进程的组织 链接方式 索引方式 进程的特征 进程的状态 进程的三种基本状态 进程的另外两种状态 进程状态的转换 进程控制 何谓进程控制 如何实 ...

  7. 计算机操作系统(第四版)第二章(进程的描述与控制)知识点整理

    进程的描述与控制 2.1 前驱图和程序执行 2.1.1 前驱图 2.1.2 程序顺序执行 2.1.3 程序并发执行 2.2 进程的描述 2.2.1 进程的定义与特征 2.2.2 进程的基本状态及转换 ...

  8. 计算机操作系统学习笔记 第二章、进程与线程

    文章目录 1 进程和线程 1.1 进程的概念和特征 1.1.1 进程的概念 1.1.2 进程的特征 1.2 进程的状态与转换 1.3 进程的组织 1.4 进程控制 1.5 进程通信 1.5.1 共享存 ...

  9. 操作系统实验4:基于内核栈完成进程切换

    一.参考 <操作系统原理.实现与实践>李治军.刘宏伟编著 二.实验目标 Linux0.11中进程切换是依靠任务状态段(task struct segment,TSS)的切换来实现的,本实践 ...

最新文章

  1. 怎样查看电脑系统版本_微信7.0.0自动更新后怎样去还原以前的旧版本?
  2. hive插入数据:FAILED: ParseException line 1:12 missing TABLE at 'student' near 'EOF'
  3. mysql日期时间操作函数详解
  4. 从零开始学Pytorch(五)之欠拟合和过拟合
  5. POJ1546(进制转换)
  6. mysql二进制包安装mysql_基于linux使用mysql二进制包安装mysql
  7. Ubuntu编写第一个Python程序
  8. STM32 f103 实现命令终端
  9. android 谷歌室内定位,打造室内导航 谷歌发布WifiRttScan App测试室内定位
  10. Spring Boot 定制个性 banner
  11. 服务器 异常自动关机,服务器自动关机常见问题
  12. Django框架学习——4—(DTL模板标签、模版常用过滤器、模版结构优化、加载静态文件)
  13. Mysql 5.1 第12章:函数
  14. fastadmin 自定义按钮 btn-ajax 执行成功后 自动刷新
  15. 我要拿走你的蜡烛 1004
  16. S2B2b2C模式什么意思?有相关的商城源码吗?
  17. Google GMS包中的applist
  18. 通过python获取自己的手机话费_Python批量获取并保存手机号归属地和运营商的示例...
  19. poj3616 Miking Time dp
  20. 美团点评2020校招笔试题1(栈,堆)

热门文章

  1. 基于Python3.6实现Java版murmurhash算法
  2. ./configure 自动生成makefile
  3. 使用联邦学习解决推荐系统中的隐私泄露问题
  4. 通过ch.ethz.ssh2.Connection无法连接主机解决方法
  5. 自己买监控摄像头容易安装吗
  6. AWD比赛入门攻略总结
  7. 本地win10安装的MySQL8.0.12用navicat12报错 2509 -Authentication plugin ' caching_sha2_password' cannot be :
  8. 大数据杀熟的背后 -- 浅谈用户画像
  9. 关于关联规则的一些资料
  10. 用计算机画有常数的函数图像,信息技术应用 用计算机画函数图象教学实录及点评...