计算机操作系统-第十八天

2023-12-18 02:20

本文主要是介绍计算机操作系统-第十八天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

进程调度时机

补充知识 

进程调度的方式

非剥夺调度方式

剥夺调度方式

进程的切换与过程

本节思维导图


进程调度时机

进程调度(低级调度),即按照某种算法从就绪队列中选择一个进程为其分配处理机。

共有两种需要进行进程调度与切换的情况:

  1. 当前运行的进程主动放弃处理机,比如:进程正常终止、进程主动请求阻塞等
  2. 当前运行的进程被动放弃处理机,比如:分给进程的时间片用完、有更紧急的事需要处理等

共有三种不能进行进程调度与切换的情况:

  1. 在处理中断过程中(中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程切换)
  2. 进程在操作系统内核程序临界区中)(进程在普通临界区中是可以进行调度、切换的)
  3. 在原子操作过程中(原语)(原子操作不可中断,要一气呵成)

注意事项:

1、进程在操作系统内核程序临界区中不能进行调度与切换

2、进程处于临界区不等于处于内核程序临界区

补充知识 

临界资源:一个时间段内只允许一个进程使用的资源,各进程需要互斥地访问临界资源

临界区:访问临界资源地那段代码

内核程序临界区一般是用来访问某种内核数据结构地(比如进程地就绪队列)

实例:当进程处于内核程序临界区,且该临界区是要用来访问就绪队列时,在访问时会将该就绪队列(临界资源)上锁,当进程还没有退出内核程序临界区时,该队列就不会解锁,如果此时进行进程调度,而进程调度需要访问就绪队列为队列中的进程分配资源,但此时就绪队列被锁住,故无法顺利的进行进程调度了

结论:内核程序临界区访问的临界资源(比如就绪队列)如果不尽快释放的话,极有可能影响到操作系统内核的其他管理工作,因此在访问内核程序临界区期间不能进行调度与切换

实例:当进程处于普通资源的临界区比如打印机资源时,在打印机完成打印之前,进程一直处于临界区内,临界资源不会解锁,但打印机又是慢速设备,此时如果一直不允许进程调度的话就会导致CPU一直空闲

结论: 普通临界区访问的临界资源不会直接影响操作系统内核的管理工作,因此在访问普通临界区时可以进行调度与切换

进程调度的方式

非剥夺调度方式

概念:又称非抢占方式,即只允许进程主动放弃处理机,在运行过程中即便有更紧迫的任务达到,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态

特点:实现简单,系统开销小但是无法即使处理紧急任务,适合于早期的批处理系统

剥夺调度方式

概念:又称抢占方式,当一个进程正在处理机上执行是,如果有一个更重要或更紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给更重要紧迫的进程

特点:可以优先处理更紧急的进程,也可以实现让各进程按时间片轮流执行的功能(利用时钟中断)适合于分时操作系统、实时操作系统

进程的切换与过程

“侠义的进程调度”与“进程切换”的区别:

1、侠义的进程调度指的是从就绪队列中选中一个要运行的进程(该进程可以是刚刚被暂停执行的进程,也可能是另一个进程,后者就需要进程切换)

2、广义的进程调度包含了选择一个进程和进程切换两个步骤:

        进程切换的过程主要完成了:

                对原来运行进程各种数据的保存

                对新进程各种数据的恢复

注意事项:进程切换是有代价的,因此如果过于频繁的进行进程调度、切换,必然会使整个系统的效率降低,使系统大部分时间都花在了进程切换上,而真正用于执行进程的时间减少

本节思维导图

~over~

这篇关于计算机操作系统-第十八天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/506698

相关文章

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频)

这是什么系统? 资源获取方式在最下方 java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频) 停车管理信息系统是为了提升停车场的运营效率和管理水平而设计的综合性平台。系统涵盖用户信息管理、车位管理、收费管理、违规车辆处理等多个功能模块,旨在实现对停车场资源的高效配置和实时监控。此外,系统还提供了资讯管理和统计查询功能,帮助管理者及时发布信息并进行数据分析,为停车场的科学

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

【python计算机视觉编程——7.图像搜索】

python计算机视觉编程——7.图像搜索 7.图像搜索7.1 基于内容的图像检索(CBIR)从文本挖掘中获取灵感——矢量空间模型(BOW表示模型)7.2 视觉单词**思想****特征提取**: 创建词汇7.3 图像索引7.3.1 建立数据库7.3.2 添加图像 7.4 在数据库中搜索图像7.4.1 利用索引获取获选图像7.4.2 用一幅图像进行查询7.4.3 确定对比基准并绘制结果 7.