2024年12月20日 操作系统中的调度算法 操作系统使用各种算法以高效地在处理器上调度进程。 调度算法的目的 最大CPU利用率 公平分配CPU 最大吞吐量 最小周转时间 最小等待时间 最小响应时间 以下是可以用于调度任务的算法。 1. 先来先服务 这是最简单的实现算法。到达时间最早的进程首先获得CPU。到达时间越短,进程获得CPU的时间越早。这是一种非抢占式调度。 2. 轮转法 在轮转调度算法中,操作系统定义一个时间片(片段)。所有进程将以循环方式执行。每个进程都会获得CPU一小段时间(

操作系统 调度算法

2024年12月20日 操作系统 CPU调度 在单任务处理系统中 (如MS DOS),当一个进程等待任何I/O操作完成时,CPU保持空闲。这是一种开销,因为它浪费时间并引起饥饿问题。然而,在多任务处理系统中,CPU在进程等待时间内不保持空闲,而是开始执行其他进程。操作系统必须定义给予CPU的进程。 在多任务处理系统中 ,操作系统对CPU上的进程进行调度,以最大程度地利用它,这个过程被称为 CPU调度 。操作系统使用各种调度算法来调度进程。 这是短期调度器为作业池中存在的进程调度CPU的任务。每当运行的进程请求一些IO操

操作系统 CPU调度

2024年12月20日 操作系统 与进程相关的各种时间 到达时间 进程进入就绪队列的时间被称为到达时间。 执行时间 处理器执行整个进程所需的总时间称为执行时间。这不包括等待时间。在执行进程之前计算执行时间会导致困惑,因此基于执行时间的调度问题在实际中无法实现。 完成时间 进程进入完成状态或进程完成执行的时间称为完成时间。 周转时间 进程从到达到完成所花费的总时间称为周转时间。 等待时间 进程等待被分配处理器的总时间称为等待时间。 响应时间 到达时间和进程首次获得处理器的时间之间的差称为响应时间。

操作系统 与进程相关的各种时间

2024年12月20日 操作系统 进程队列 操作系统管理每个进程状态的各种队列。与进程相关的PCB也存储在相同状态的队列中。如果进程从一个状态移动到另一个状态,则其PCB也从相应的队列中取消链接,并添加到进行状态转换的其他状态队列中。 操作系统维护以下队列: 1. 作业队列 一开始,所有进程都存储在作业队列中。它在辅助存储器中维护。长期调度器(作业调度器)选择一些作业并将它们放入主存储器中。 2. 就绪队列 就绪队列在主存储器中维护。短期调度器从就绪队列中选择作业,并将其调度到CPU执行。

操作系统 进程队列

2024年12月20日 操作系统中的进程调度 操作系统使用各种调度器进行下面所描述的进程调度。 1. 长期调度器 长期调度器也称为作业调度器。它从池(辅助存储器)中选择进程,并将它们保留在主存储器中的就绪队列中。 长期调度器主要控制多道程序设计的程度。长期调度器的目的是在池中的作业中选择IO密集型和CPU密集型进程的完美组合。 如果作业调度器选择的是更多IO密集型进程,则所有作业都可能一直停留在阻塞状态,而CPU将大部分时间处于空闲状态。这将降低多道程序设计的程度。因此,长期调度器的工作非常关键,可能

操作系统 进程调度器

2024年12月20日 操作系统 进程状态 状态图 从创建到完成的过程会经历各种状态。最少的状态数是五个。 状态的名称并没有标准化,尽管在执行过程中,该进程可能处于以下状态之一。 1. 新建 即将由操作系统加载到主存中的程序称为新建进程。 2. 就绪 无论何时创建一个进程,它都直接进入就绪状态,等待分配CPU使用。操作系统从辅助存储器中选取新进程,并将它们全部放入主存中。 在主存中准备执行并处于就绪状态的进程称为就绪状态进程。就绪状态可能有许多进程。 3. 运行 根据调度算法,操作系

操作系统 进程状态

2024年12月19日 操作系统 进程的属性 进程的属性由操作系统用于为每个进程创建进程控制块(PCB)。这也被称为进程的上下文。存储在PCB中的属性如下所述。 1. 进程ID 当创建一个进程时,为进程分配一个唯一的ID,用于在系统中唯一标识该进程。 2. 程序计数器 程序计数器存储进程被挂起时的最后一条指令的地址。当重新执行该进程时,CPU使用该地址。 3. 进程状态 从创建到完成,进程经历了新建、就绪、运行和等待等各种状态。我们稍后会详细讨论它们。 4. 优先级 每个进程都

操作系统 进程的属性

2024年12月19日 操作系统的类型 操作系统是一个井然有序的程序集合,负责管理计算机硬件。它是一种系统软件,负责计算机系统的顺畅运行。 批处理操作系统 在1970年代,批处理处理非常流行。在这种技术中,将类似类型的作业合并在一起并按时执行。人们习惯于拥有称为大型机的单台计算机。 在批处理操作系统中,多个人可以访问,他们将各自的作业提交给系统进行执行。 系统按照先到先服务的原则将所有作业放入队列中,然后逐个执行作业。当所有作业被执行完毕时,用户收集他们各自的输出。 该操作系统的目的主要是在作业完成后立即

操作系统 类型

2024年12月19日 基础对象(lv_obj), LVGL 基础对象 – 概述 基础对象 实现了屏幕上小部件的基本属性,例如: 座标 父对象 子对象 主要风格 属性,例如点击启用、拖动启用等。 在面向对象的思想中,它是继承 LVGL 中所有其他对象的基类。这尤其有助于减少代码重复。 Base 对象的功能也可以与其他小部件一起使用。例如 lv_obj_set_width(slider,100) Base 对象可以直接用作简单的小部件。然后就是矩形。 LVGL 基础对象 – 坐标 尺

LVGL 基础对象

2024年12月19日 LVGL(Light and Versatile Graphics Library,轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。 LVGL主要特性 功能强大的构建块,例如按钮,图表,列表,滑块,图像等。 带有动画,抗锯齿,不透明,平滑滚动的高级图形 各种输入设备,例如触摸板,鼠标,键盘,编码器等 支持UTF-8编码的多语言 多显示器支持,如TFT,单色显示器 完全可定制的图形元素 独立于任何微控制器或

LVGL 简介

2024年12月19日 滚筒(lv_roller)滚筒允许通过滚动简单地从多个选项中选择一个选项。 零件和样式 滚筒的主要部件称为 LV_ROLLER_PART_BG 。它是一个矩形,并使用所有典型的背景属性。 Roller标签的样式继承自背景的文本样式属性。 要调整选项之间的间距,请使用text_line_space样式属性。填充样式属性设置了侧面的空间。 中间的选定选项可以用 LV_ROLLER_PART_SELECTED 虚拟零件引用。除了典型的背景属性外,它还使用文本属性来更改所选区域中文本的外观。

LVGL 滚筒

2024年12月19日 滑杆(lv_slider)滑杆对象看起来像是带有旋钮的 进度条(lv_bar) 。可以拖动该旋钮以设置一个值。滑块也可以是垂直或水平的。 零件和样式 滑块的主要部分称为 LV_SLIDER_PART_BG ,它使用典型的背景样式属性。 LV_SLIDER_PART_INDIC 是一个虚拟部件,它也使用所有典型的背景属性。默认情况下,指标的最大大小与背景的大小相同,但在 LV_SLIDER_PART_BG 中设置正填充值将使指标变小。 (负值会使它变大) 如果在指示器上使用了值样式属性,则将根据指

LVGL 滑杆

2024年12月19日 数字调整框(lv_spinbox)数字调整框包含一个数字文本,可通过按键或API函数增加或减少数字。 数字调整框的下面是修改后的 文本框(lv_textarea) 。 零件和样式 数字调整框的主要部分称为 LV_SPINBOX_PART_BG ,它是使用所有典型背景样式属性的矩形背景。它还使用其文本样式属性描述标签的样式。 LV_SPINBOX_PART_CURSOR 是描述光标的虚拟部分。阅读文本区域文档以获取详细说明。 用法 设定格式 lv_spinbox_set_digit_fo

LVGL 数字调整框

2024年12月19日 旋转器(lv_spinner)旋转器对象是边界上的旋转弧,实现旋转加载效果。 零件和样式 旋转器包括一下部分: LV_SPINNER_PART_BG: 主要部分 LV_SPINNER_PART_INDIC: 旋转弧(虚拟部分) 零件和样式的作用与 弧(lv_arc) 情况相同。 用法 弧长 圆弧的长度可以通过 lv_spinner_set_arc_length(spinner, deg) 进行调整。 旋转速度 旋转速度可以通过 lv_spinner_set_spin_time(pr

LVGL 旋转器

2024年12月19日 开关(lv_switch)开关可用于打开/关闭某物。它看起来像一个小滑块。 零件和样式 开关使用以下部分 LV_SWITCH_PART_BG : 主要部分 LV_SWITCH_PART_INDIC : 指标(虚拟部分) LV_SWITCH_PART_KNOB : 旋钮(虚拟部分) 零件和样式与 滑杆(lv_slider) 情况相同。阅读其文档以获取详细说明。 用法 变更状态 可以通过单击或通过下面的函数更改开关的状态: lv_switch_on(switch, LV_ANIM_O

LVGL 开关

最新内容