三. 调度 之 最简单的调度

【车间调度】车间调度问题的分类 本系列为自己学习调度相关知识的记录,如有误请指出,也欢迎调度方向的小伙伴加我好友共同交流。 车间调度问题的分类 根据工件和车间构成不同,车间调度问题可分为以下几种 1.单机调度问题 在单机调度问题(S,SMP)中,加工系统只有一台机床,待加工的工件有且仅有一道工序,所有工件都在该机床上进行加工。此问题是最简单的调度问题,当生产车间出现瓶颈机床时的调度就可视为此调度问题。 ... 阅读详情

目前我们向我们的智能芯片添加的规则有:
规则一.可以处理NOP指令,指令长度为1个字节
规则二.可以处理JMP指令,指令长度为3个字节,后两个字节为要跳转的物理内存地址
规则三.可以从物理内存中读取指令并且执行
规则四.存在一个指令指针寄存器IP,用于指示要读取的物理内存地址
规则五.如果当前执行的是NOP指令,IP=IP+1
规则六.如果当前执行的是JMP指令,IP=(JMP指令的后两个字节)
规则七.IP内容改变时到物理内存中取指令
规则八.存在一个寄存器SP,用于指示内存的某个地址
规则九.可以处理MOV指令,可以把寄存器的内容保存到物理内存中(比如 MOV [0x0050], SP),也可以把内存中的内容加载到寄存器(比如 MOV SP, [0x0050]),也可以给寄存器赋值(比如 MOV SP, 1234), 指令长度3个字节
规则十.可以处理IRET指令,指令执行时自动把SP指向的物理内存中的值赋给IP, 指令长度1个字节
规则十一.智能芯片的外部有个输入引脚,当该引脚的电平从低变化到高时,打断指令的执行,自动把当前IP的值保存到SP指向的物理内存中,并且IP的内容自动变成0x0000 

初始时我们安排:
寄存器SP的内容为0x0050
寄存器IP的内容为0x1000
物理内存内容为:
0x0000: MOV SP, 0x0050+((SP-0x0050)+2)%4
0x0003: IRET
.
.
.
0x0050: 0x00
0x0051: 0x10
0x0052: 0x00
0x0053: 0x20
.
.
.
0x1000: nop
0x1001: nop
0x1002: nop
0x1003: nop
0x1004: nop
0x1005: nop
0x1006: jmp 0x1000
.
.
.
0x2000: nop
0x2001: nop
0x2002: nop
0x2003: nop
0x2004: nop
0x2005: nop
0x2006: jmp 0x2000
规则十一中的外部引脚接一个定时器,每隔一定的时间产生电平由高到低的变化

运行开始以后,我们的智能芯片就可以在两段指令序列之间切换运行了
根据这十一条规则我们可以在我们的智能芯片上运行多个上述指令序
比如我们现在有三段上述的指令序列要同时运行,可以安排内存的内容如下:
0x0000: MOV SP, 0x0050+((SP-0x0050)+2)%6
0x0003: IRET
.
.
.
0x0050: 0x00
0x0051: 0x10
0x0052: 0x00
0x0053: 0x20
0x0054: 0x00
0x0055: 0x30
.
.
.
0x1000: nop
0x1001: nop
0x1002: nop
0x1003: nop
0x1004: nop
0x1005: nop
0x1006: jmp 0x1000
.
.
.
0x2000: nop
0x2001: nop
0x2002: nop
0x2003: nop
0x2004: nop
0x2005: nop
0x2006: jmp 0x2000
.
.
.
0x3000: nop
0x3001: nop
0x3002: nop
0x3003: nop
0x3004: nop
0x3005: nop
0x3006: jmp 0x3000
注意三段指令序列的内存内容与两段指令序列的内存内容有何区别

这就是多任务操作系统最基本的分时调度原理

 

进程管理笔记三、完全公平调度算法CFS 进程管理笔记三、CFS调度算法 引言:CFS是英文Completely Fair Scheduler的缩写,即完全公平调度器,负责进程调度。在Linux Kernel 2.6.23之后采用,它负责将CPU资源,分配给正在执行的进程,目标在于最大化程式互动效能,最小化整体CPU的运用。使用红黑树来实现,算法效率为O(log(n))。 一、CFS调度算法原理   调度算法最核心的两点即为... 阅读详情

相关推荐

jmp使用手册

说明如何使用JMP,使用JMP更加容易和便捷

脚本跑批到调度平台再到运维平台流程的自我总结(大数据方向)(Impala)(JMP)(DCP)

脚本跑批到调度平台再到运维平台流程的自我总结(大数据方向)(Impala)

Talentdeyang的博客 1387

JMP使用技巧教程

JMP是很多公司进行技术分析及研究的工具软件,但如何真正的用好它呢,请看附件

项目投产脚本的准备和流程(大数据、Impala、Oracel、调度平台、运维平台、Python、报表项目)(一)

项目投产脚本的准备和流程(大数据、Impala、Oracel、调度平台、运维平台、Python、报表项目) 项目投产大数据需要需要用到许多的脚本:调度平台和运维平台的配置,建表语句DDL,赋权语句DCL,中间表的赋权语句DML,还有存储过程,这里面又有许多的细节,需要一一的去进行开发。

Talentdeyang的博客 1022

立创开源:基于AD831/ADF4351的250-500MHz宽频调幅信号处理实验电路设计与实现

本文详细解析了基于AD831混频器和ADF4351本振源的250-500MHz宽频调幅信号处理实验电路的设计与实现。文章从项目需求出发,系统讲解了超外差接收架构、核心模块(包括射频前端、混频器、本振源、AGC环路及解调电路)的选型与原理,并提供了实战调试波形与性能验证,为射频电路学习者提供了从理论到实践的完整指南。

weixin_35706255的博客 227

保姆级教程:在RK3576上配置USB网卡从零到外网访问(附udev规则详解)

本文提供了在RK3576开发板上配置USB网卡的完整教程,涵盖从内核驱动、udev规则到网络路由的全流程。重点讲解了如何利用USB Gadget功能实现高速网络连接,并构建稳定的算力集群,确保多设备间通信及外网访问。

grass的博客 458

jmp,call,ret,特权级转移,进程调度

jmp,call,ret,特权级转移,进程调度 ①jmp是不负责任的调度,不保存任何信息,不考虑会回头。跳过去就什么也不管了。 ②call,保存eip等,以便程序重新跳回。ret是call的逆过程,是回头的过程。这都是cpu固有指令,因此要保存的信息,不用我们自己保存。我们直接使用指令即可 ③同一任务内特权级转移,跟 ②差不多,不过要准备个tss,并加载它,然后call 门一下就行了。 ④

hss的生活 1348

c语言串口编程详解

串口: 一种异步通信接口,通常用于低速数据传输。RS-232: 最常见的串口标准,定义了电气特性、连接器和信号线。UART: 通用异步收发传输器,是实现串口通信的硬件模块。通过以上内容,你应能够理解并实现C语言在Windows和Linux平台上的串口编程。希望这本手册能帮助你在实际项目中顺利进行串口通信开发。如果有任何疑问或需要进一步的帮助,请随时提问。

jkzyx123的博客 2223

5.1 任务切换使用jmp半自动切换任务

任务切换

x 555

环境科研人必备:手把手教你用EPISuite 4.1批量预测化合物毒性(附ECOSAR实战)

本文详细介绍了EPISuite 4.1在环境毒理学研究中的应用,重点解析了ECOSAR模块的化合物毒性预测技术。通过批量处理实战和科研案例,帮助环境科研人员快速评估化学物质对水生生态系统的风险,提升工作效率。文章还涵盖了EPISuite核心模块的功能分类及ECOSAR模型的技术原理与算法特点。

weixin_28738165的博客 540

科研绘图系列:R语言circos图(circos plot)

科研绘图系列:R语言circos图(circos plot)

专注生信领域 3431

jmp && call && ret 特权级转移 & 进程调度

①jmp是不负责任的调度,不保存任何信息,不考虑会回头。跳过去就什么也不管了。②call,保存eip等,以便程序重新跳回。ret是call的逆过程,是回头的过程。这都是cpu固有指令,因此要保存的信息,不用我们自己保存。我们直接使用指令即可③同一任务内特权级转移,跟 ②差不多,不过要准备个tss,并加载它,然后call 门一下就行了。④进程调度,进程的界限是我们人为加上的,cpu并不知道进程要切换...

weixin_33693070的博客 197

【以太网硬件六】1000base-T物理层编码究竟是怎么编的?

详述1000base-T物理层4D-PAM5的编码过程

highman110的博客 5324

最简单的协程调度器(附带源码)

/这个会在每个线程单独备份一个 所以各自线程的调度器都能存这,确保整个程序知道主调度器。代码分三部分thread.h thread.cpp main.cpp封装了协程调度器。ui密集型,文件操作,网络操作,数据库操作,一般设置为cpu/(1-0.9)2.任务都会放到一个链表里,调度器按顺序去执行对应的任务。最佳线程数目=(线程等待时间+线程cpu时间/线程时间)cpu密集型,操作内存处理业务,cpu数+1或cpu数。线程等待的时间越大,线程数就要设置越大。3.单个线程只有一个调度器。

m0_54069809的博客 1432

从零到一:Python+Playwright 实现动态网站全量数据采集实战(附反爬对抗与性能优化)

在动手之前,先明确武器优势: 2. 项目结构规划 为了代码可维护性,我们采用模块化结构: 三、核心实战:构建动态采集器 第一步:初始化“隐身”浏览器 普通启动容易被检测,我们需要注入一段 JS 脚本来抹除自动化特征。 第二步:处理无限滚动与动态加载 这是动态网站的核心难点。我们需要模拟人类滚动,并等待新数据加载完成。 第三步:登录态保持与复用 避免每次运行都重新登录。我们将 Cookie 保存到本地,下次直接加载。 第四步:主流程编排 将上述模块串联起来,并加入异常重试机制。 四、进阶优化:性能与反爬

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1162

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

进程调度之时间片轮转调度算法(实验三)

在分时系统中,最简单最常用的就是基于时间片轮转调度算法,时间片轮转调度算法是非常公平的处理机分配方式,让就绪队列的每个进程每次仅运行一个时间片。 1.时间片轮转调度算法的基本原理    在时间片轮转调度算法中,系统根据先来先服务的原则,将所有的就绪进程排成一个就绪队列,并且每隔一段时间产生一次中断,激活系统中的进程调度程序,完成一次处理机调度,把处理机分配给就绪队列队首进程,让其执行指令。当时

不忘初心,方得始终。 2万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

实验三 进程调度

实验三 进程调度 【实验目的】 ①理解有关进程控制块、进程队列的概念。 ②掌握进程优先权调度算法和时间片轮转调度算法的处理逻辑。 【实验内容】 ①设计进程控制块PCB的结构,分别适用于优先权调度算法和时间片轮转调度算法。 ②建立进程就绪队列。 ③编制两种进程调度算法:优先权调度和时间片轮转调度。 【实验步骤】 程序代码: #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct no

Sum 2060

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

操作系统概论【三】- - 进程调度与死锁

感谢内容提供者:金牛区吴迪软件开发工作室 接上一篇:操作系统概论【二】 - - 进程管理 文章目录第三章、进程调度与死锁一、进程调度的功能与时机1. 功能2. 时机二、进程调度算法1. 选择调度方式和算法的若干准则2. 调度算法a.先来先服务调度算法b.短进程优先调度算法c.优先权调度算法俩种类型:优先权类型存在的问题e.时间片轮转调度算法时间片大小的确定f.多级队列调度算法g.多级反馈队列调度算法三、实时系统中的调度1. 实现实时调度的基本条件a.提供必要的调度信息b.系统处理能力强c.采用抢占式调度.

吴小迪的博客 1万+

Linux进程调度与管理:(三)进程的调度之调度时机

文章介绍:本篇文章将介绍进程何时加入就绪队列、何时执行调度

abobob的博客 1590

Hadoop 三大调度策略 三种调度器

hadoop的调度策略 三种调度器简介 yarn常见的有三种调度器 他们分别是容器调度(Capacity Scheduler)、公平调度器(Fair Scheduler)、先进先出调度器(FIFOScheduler)。 三个调度器的示例图 三个调度器的区别 FIFO Scheduler FIFO Scheduler把应用按提交的顺序排成一个队列,这是一个先进先出队列,在进行资源分配的时候,先给队...

努力吧闫小胖的博客 3521

操作系统实验三 进程调度

实验三 进程调度一、实验目的 1、 理解有关进程控制块、进程队列的概念。 2、 掌握进程优先权调度算法和时间片轮转调度算法的处理逻辑。 二、实验内容与基本要求 1、 设计进程控制块PCB的结构,分别适用于优先权调度算法和时间片轮转调度算法。 2、 建立进程就绪队列。 3、 编制两种进程调度算法:优先权调度算法和时间片轮转调度算法。 三、实验报告要求 1、 优先权调度算法和

cyang's blog 3万+

详解CFS(三)—— 组调度

那如果A用户启动了9个task,而B用户只启动了一个task,那A用户将占用cpu 90%的资源,这与我们预期相去甚远。cfs_rq是他的runqueue,保存他所掌管的所有task,在多核系统中,一个group的多个task可能运行在不同的cpu中,所以task group在每个cpu上都会有一个se和cfs_rq。task group在当前cpu上的ge的权重是由当前cpu上group runqueue中所有task的总权重占该task group在所有cpu上task总权重的百分比决定的,即。

2503_90541313的博客 1320

进程调度三 进程调度介绍

一、进程调度介绍: 1、进程调度的产生:   进程从使用资源方面可以分为如下两类,不管是I/O还是CPU受限类的进程,CPU都希望再尽可能短的时间 完成更多的工作,但另一方面,又希望尽可能的减少资源(I/O或CPU)的消耗,这两则之间存在矛盾,所以进程 的调度管理就是来协调两者之间的冲突。 类型 别称 描述 示例 I/O受限型 I/O密集型 频繁的使用I...

frank_zyp的博客 743

操作系统实验三-驱动调度

磁盘是一种高速、大容量、旋转型、可直接存取的存储设备。它作为计算机系统的辅助存储器,担负着繁重的输入输出任务。在多道程序设计系统中,往往同时会有若干个要求访问磁盘的输入输出请求等待处理。系统可采用一种策略,尽可能按最佳次序执行要求访问磁盘的诸输入输出请求。这就叫驱动调度,使用的算法称为驱动调度算法。驱动调度能降低为若干个输入输出请求服务所需的总时间,从而提高系统效率。本实验要求学生模拟设计一个驱动调度程序,观察驱动调度程序的动态运行过程。通过实验使学生理解和掌握驱动调度的职能。

zombotany的博客 5007
上一篇: 二.调度 之 基于最简单的CPU的问题
下一篇: 四. MMU 之 基于最简单CPU的第二个问题
LastEditor
博客等级 码龄18年 2粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值