操作系统——处理机管理(3)

2024-03-23 12:12

本文主要是介绍操作系统——处理机管理(3),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

七、线程

1、线程的概念

线程是指由进程进一步派生出来的一组代码的执行过程;更详细地,线程是进程的一部分,是进程中相对独立的一个执行流,是系统独立调度的基本单位。

同一个进程中的所有线程继承并共享所属进程的一切资源,线程本身只拥有运行所需的很少资源,因此一个进程内的线程之间的切换开销比进程之间小得多,因此线程能够提高效率和并发性。

————

2.线程与进程的关系

①资源上:进程是一个独立单位拥有自己的资源。线程不拥有系统资源,只拥有一些较少的、必不可少的资源,但线程可以访问隶属进程的资源,如代码段、数据段、已打开的文件、I/O设备等。

②调度上:传统操作系统中,进程是拥有资源和独立调度的基本单位。引入线程后,进程是拥有资源的基本单位,线程变成了调度的基本单位。

③并发性:引入线程的操作系统中,不仅进程之间可以并发执行,线程之间也能并发执行,能更好利用系统资源

④系统开销:创建撤销进程的开销比线程要大。

⑤安全性:使用进程更安全。因为线程操作系统中由于资源共线性,一个错误进程可能改变另一个线程使用的数据导致错误发生。

————

3、线程的实现

TCB:线程控制块,在线程中的作用类似于进程中的PCB。

线程分为三类:用户级线程、内核级线程、混合线程。

(1).用户级线程:在线程库的支持下完成管理工作,系统内核不知道线程的存在。

优点:①线程不依赖操作系统,可以使用与操作系统适应线程调度策略,灵活性高;②统一进程内线程切换不需要陷入系统内核,效率较高。

缺点:①同一个进程内的线程无法真正并行,即内核最多只给一个进程分配一个处理机。②进程中一个线程通过系统调用受阻,会导致整个进程被阻塞。

(2)、内核级线程:线程管理有关的所有工作都是由系统内核完成的。

应用程序部分没有线程管理的代码,而是通过一个到内核级线程的应用程序编程接口API来管理线程。

内核级线程的TCB保存于操作系统空间内核级线程是处理机调度的基本单位。

优点:克服了用户级线程的缺点:①并发性好,同一进程的不同线程可以调度到不同处理机上,②任何一个线程阻塞不会影响同一进程内其他线程运行。

缺点:①系统开销大,线程调度控制需要进入操作系统完成;②线程数量远大于进程数,系统内核空间消耗大。

(3)、组合线程

是以上两种模式的结合,系统内核支持线程的建立、调度和管理,同时提供线程库。

如果实现合理,就能综合以上两类的优点,克服其缺点。

————————

————————

八、处理机调度原理

1、处理机的四级调度:作业调度、交换调度、进程调度、线程调度。

作业调度(高级调度/长程调度):从输入井选择一个作业调入内存分配资源,并为其建立进程,使其具有竞争CPU的资格,作业执行完毕时作业调度还负责收回系统资源。

——

交换调度(中程调度/中级调度):将外存对换区中具备运行条件就绪程序调入内存,或者将处于内存中阻塞态或者就绪态的进程换出到外存交换区。

——

进程调度(短程调度/低级调度):选取一个处于活跃就绪状态的进程占用CPU,并进行进程的上下文切换。

线程调度:对于内核级,与进程调度相似,只是变为线程级别。对于用户级线程由线程库管理,操作系统不可见,因此操作系统设计时不用考虑。

————————

2、处理机调度的目标:

处理机 调度的目标是使处理机得到合理的分配,以是计算机系统呈现良好性能。

其中包含以下几个目标:

①提高系统资源的利用率;

②提高系统吞吐量,降低平均周转时间;

③降低平均响应时间;

④提供相对的公平机制;

⑤其他目标。

——————

3、处理机的调度方式:

①非抢先方式(非剥夺方式/不克抢夺方式):

调度程序一旦把处理机分配给某个进程时,一直运行,直到完成或阻塞才把处理机分配给其他。

优点:简单,系统开销小。

缺点:高优先级任务可能无法第一时间运行;短作业必须等待正在运行的任务,导致短作业周转时间增加。

②抢先方式(剥夺方式/可抢占方式):

一个进程或线程在执行时,系统可剥夺它的处理机分配给其他进程/线程。可以在任何时刻将正在运行的变为就绪态。

剥夺的原则:时间片原则;优先级原则;短作业优先原则。

优点:充分保证系统并发性和响应的及时性。

缺点:设计和实现更复杂;调度频繁发生,导致上下文切换导致的时间开销成为影响系统性能因素。

——————

4.处理机调度的时机

调度处理机调度程序的前提是进入系统内核,进入系统内核的方法:中断。

因此可以得出:中断是进程切换和处理机调度的前提条件。

调度时机:

①正在执行的进程(以下简称“进程”)在因提出I/O请求而暂停执行。

②进程执行完成。

③进程由于错误终止运行

④进程通行或同步过程中执行了某种原语操作,如唤醒原语

⑤基于优先级的调度中有高优先级进入就绪队列

⑥按照时间片轮转,分配的时间片用完

——————————————

——————————————

九、调度算法

1、先来先服务

最简单的调度算法,不考虑其他因素,按照申请CPU的次序或者作业到达系统的次序来调度。

优点:具有一定公平性,不会出现饥饿现象。

缺点:不利于短作业(短进程),会导致其周转时间变长从而使平均周转时间也变长。

——————

2、最短周期优先

要求每个作业(进程)提供所需的运行时间,每次调度总是选择运行时间最短的来调度。

优点:可以证明该算法的平均周转时间最短,算法容易实现。

缺点:执行时间无法预先知道,甚至出现虚假;长作业可能长期得不到执行的机会,即算法无法保证避免饥饿发生。

改进版本是:最短剩余时间优先。

——————

3、最高优先级优先

给每个调度对象赋予一个优先级,与调度对象的紧迫程度相对应。

确定优先级的方法:

①静态优先级:每个调度对象进入系统时被赋予一个优先级,后续不再改变。

优点比较简单,系统开销小,缺点不太公平,不灵活

②动态优先级:进入系统赋予一个优先级,但随时间推进,不同调度对象优先级动态调整。

优点公平性好,灵活,资源利用率高,缺点需要花费一定系统开销,且实现较复杂。

——————————

4、时间片轮转算法

主要用于时分系统中的进程调度。给每个进程规定一个时间片,以时间片为单位,先进先出,排队执行,可以使每个进程轮流获得一个时间片的处理机。

时间片过大:每个进程都能在一个时间片内执行完,则退化成了先进先出算法。

时间片过小:处理机在进程间频繁切换,系统开销大。

时间片轮转发分为两种:

①固定时间片轮转

分给所有进程的时间片长度完全相同。

②可变时间平轮转

根据不同进程的不同特性为其动态分配不同长度的时间片。

时间轮转法优点:公平、响应及时。可变时间片实现相对复杂开销大但更灵活。

缺点:对偏重I/O设备的进程不公平。

——————

5、多级反馈序列

是时间片轮转、最高优先级的总和发展。既能动态调整时间片大小,也能动态调整优先级,且系统中设有多个就绪队列。

——————

6、实时调度

实时系统是指时间因素非常关键的系统。除保证执行的正确性外还要求在一定时间约束内完成。

实时调度种类繁多,实现比较复杂,其中较为经典简单的算法:EDF算法(最早截止任务优先算法)。

这篇关于操作系统——处理机管理(3)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

Linux操作系统 初识

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

Sentinel 高可用流量管理框架

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 Sentinel 具有以下特性: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

PMBOK® 第六版 规划进度管理

目录 读后感—PMBOK第六版 目录 规划进度管理主要关注为整个项目期间的进度管理提供指南和方向。以下是两个案例,展示了进度管理中的复杂性和潜在的冲突: 案例一:近期,一个长期合作的客户因政策要求,急需我们为多家医院升级一个小功能。在这个过程中出现了三个主要问题: 在双方确认接口协议后,客户私自修改接口并未通知我们,直到催进度时才发现这个问题关于UI设计的部分,后台开发人员未将其传递给

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

C++学习笔记----6、内存管理(四)---- 通常的内存陷阱(2)

3、Windows环境下使用Visual C++发现并修复内存渗露         内存渗露很难跟踪是因为你无法很容易地看着内存并且看到什么对象处于使用中,一开始在哪儿分配的内存。然而,是有程序可以为你做到这一点的。内存渗露检测工具有昂贵的专业软件包,也有免费下载的工具。如果你是在Microsoft Visual C++环境下工作,它的排错工具库有内建的对于内存渗露检测的支持。该内存检测默认没有