- 博客(55)
- 收藏
- 关注
原创 调度的目标(调度算法的评价指标)
CPU利用率:指CPU “忙碌” 的时间占总时间的比例。利用率 = 忙碌的时间 / 总时间系统吞吐量:单位时间内完成作业的数量。系统吞吐量 = 总共完成了多少道作业 / 总共花了多少时间周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔。它包括四个部分: 作业在外存后备队列上等待作业调度(高级调度)的时间 进程在就绪队列上等待进程调度(低级调度)的时间 进程在CPU上执行的时间 进程等待/O操作完成的时间后三项在一个作业的整个
2025-03-11 11:40:39
355
原创 调度器和闲逛进程
调度程序永远的备胎,没有其他就绪进程时,运行闲逛进程(idle)。非抢占式调度策略,只有运行进程阻塞或退出才触发调度程序工作。调度时机——什么事件会触发 “调度程序”?所以在实际情况中CPU永远不可能空闲!或k个时钟中断会触发调度程序工作。这部分大概率只会在选择题中出现。发生(可能唤醒某些阻塞进程)抢占式调度策略,每个。
2025-03-07 13:30:11
131
原创 【无标题】
进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机。 需要进行进程调度与切换的情况: 当前运行的进程主动放弃处理机: 进程正常终止 运行过程中发生异常而终止 进程主动请求阻塞(如:等待 I/O ) 当前运行的进程被动放弃处理机: 分给进程的时间片用完 有更紧急的事需要处理(如: I/O 中断)
2025-03-01 21:37:31
661
原创 处理机调度概念、层次
当有一堆任务要处理,但由于资源有限,这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序,这就是“调度”研究的问题。作业:一个具体的任务。用户向系统提交一个作业 = 用户让操作系统启动一个程序(来处理一个具体的任务)内存空间有限,有时无法将用户提交的作业全部放入内存。高级调度(作业调度)。按一定的原则从外存的作业后备队列中挑选一个作业调入内存,并创建进程。每个作业只调入一次,调出一次。作业调入时会建立PCB,调出时才撤销PCB。(简化理解:好几个程序需要启动,到底先启动哪个) 低
2025-02-27 15:34:35
255
原创 进位计数制
古印度人发明的阿拉伯数字:0,1,2,3,4,5,6,7,8,9。(符号反应权重)基于 “乘法” 思想的计数方法。Eg:975.36 = 9 * 100 + 7 * 10 + 5 * 1 + 3 * 0.1 + 6 * 0.01推广:r 进制计数法基数:每个数码位用到的不同符号的个数,r 进制的基数是 r二进制:0,1八进制:0,1,2,3,4,5,6,7十进制:0,1,2,3,4,5,6,7,8,9十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F二进制:① 可使用两个稳定状
2025-02-26 17:07:02
617
原创 线程的实现方式和多线程模型
历史背景:早期的操作系统(如:早期Unix)只支持进程,不支持线程。当时的 “线程” 是由线程库实现的。很多编程语言提供了强大的线程库,可以实现线程的创建、销毁、调度等功能。Q&A:1. 线程的管理工作由谁来完成? 用户级线程由应用程序通过线程库实现,所有的线程管理工作都由应用程序负责(包括线程切换)。2. 线程切换是否需要CPU变态? 用户级线程中,线程切换可以在用户态下即可完成,无需操作系统干预。3. 操作系统是否能意识到用户级线程的存在? 在用户看来,是
2025-02-26 15:22:22
801
原创 线程的概念与特点
有的进程可能需要 “同时” 做很多事,而传统的进程只能串行地执行一系列程序。为此,引入了 “线程” ,来增加并发度。传统的进程是程序执行流的最小单位。引入线程后,线程成为了程序执行流的最小单位。可以把线程理解为“轻量级进程”。线程是一个基本的CPU执行单元,也是程序执行流的最小单位。引入线程之后,不仅是进程之间可以并发,进程内的各线程之间也可以并发,从而进一步提升了系统的并发度,使得一个进程内也可以并发处理各种任务(如QQ视频、文字聊天、传文件)。引入线程后,进程只作为。
2025-02-26 10:39:54
297
原创 计算机性能指标
主存储器中的MAR位数反应存储单元的个数(最多支持多少个),MDR位数 = 存储字长 = 每个存储单元的大小。总容量 = 存储单元个数 * 存储字长 bit 1 Byte = 8 bit = 存储单元个数 * 存储字长 / 8 ByteEg:MAR为32位,MDR为8位 总容量 = 2 ^ 32 * 8 bit = 2 ^ 32 Byte = 2 ^ 12 MB = 2 ^ 2 GB
2025-02-23 19:52:48
644
原创 计算机系统的工作原理
预处理器:对C语言中 # 开头的命令处理。如宏定义理常量的替换。链接器:将多个相关的目标模块链接成完整的可执行文件。汇编器:将汇编语言程序翻译为二进制机器语言。编译器:将源程序翻译为汇编语言。
2025-02-23 17:02:23
194
原创 计算机系统的层次结构
计算机体系结构 VS 计算机组成原理计算机体系结构一一机器语言程序员所见到的计算机系统的属性概念性的结构与功能特性(指令系统、数据类型、寻址技术、I/O机理)如何设计硬件与软件之间的接口 有无乘法指令计算机组成原理一一实现计算机体系结构所体现的属性,对程序员 “透明” (看不见)(具体指令的实现)如何用硬件实现所定义的接口 如何实现乘法指令。
2025-02-23 16:40:28
167
原创 计算机软件
应用软件:应用软件是为了解决某个应用领域的问题而编制的程序。Eg:抖音、QQ、美图秀秀、Photoshop、AutoCAD...系统软件:系统软件负责管理硬件资源,并向上层应用程序提供基础服务Eg:操作系统、数据库管理系统(DBMS)、标准程序库、网络软件、语言处理程序、服务程序...高级语言、汇编语言、机器语言编译程序:将高级语言编写的源程序全部语句一次全部翻译成机器语言程序,而后再执行机器语言程序(只需翻译一次)。解释程序:将源程序的一条语句翻译成对应于机器语言的语句,并立即执行。紧接着再翻译下一句(
2025-02-23 16:20:00
234
原创 各个硬件的工作原理
CPU向MAR提供想要的数据存放的地址,然后主存储器里的一些控制逻辑根据CPU提供的地址将找到的数据写到MDR里,最后CPU就可以通过数据线路从MDR中取走数据。写操作和读操作的过程类似,CPU会指明数据要写入什么位置(传到MAR里),想写入的具体数据会写入MDR中,最后CPU会通过控制总线告诉主存储器这次是写操作。运算器:用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非):乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。:累加器,用于存放操作数,或运算结果。:指令寄存器,存放当前执行的指令。
2025-02-23 15:11:11
275
原创 “存储程序” 和 “程序存储”
并由中央处理器(CPU)按顺序读取、解释和执行。这一理念彻底改变了早期计算机(如机械开关编程)的工作方式。程序指令和操作数据共享同一存储空间,消除了早期计算机需要物理切换程序(如插拔线路或打孔卡片)的局限性。程序可以像数据一样被修改、加载或动态生成(例如操作系统调度不同任务)。逐条读取内存中的指令并执行,无需人工干预。,包括程序代码在内存或外存中的。它更侧重于技术实现层面。指程序在计算机系统中的。的核心思想之一,指将。
2025-02-23 13:37:09
487
原创 计算机硬件的基本组成
然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。Eg:对于乘法运算,可以设计一个专门的硬件电路实现乘法运算,也可以用软件的方式,执行多次加法运算来实现。主存就是常说的内存,辅存就是电脑里的机械硬盘 / 固态硬盘,主机包含主存,辅存被归为 I/O设备。将指令以二进制代码的形式事先输入计算机的主存储器。在计算机系统中,软件和硬件在逻辑上是等效的。CPU = 运算器 + 控制器。现代计算机:以存储器为核心。6. 以运算器为中心。
2025-02-23 13:08:53
247
原创 泥嚎,俺是计算机组成原理
低电平 表示二进制的 0高电平 表示二进制的 1通过很多条电略,可以传递多个二进制数位每个二进制数位称为 1bit (比特)未来有点远,我现在就要知道:数字、文字、图像如何用二进制表示?数字:整数直接转二进制(如5→101),小数用类似科学计数法的“浮点数”表示(如IEEE 754标准)。文字:每个字符对应一个二进制编号。例如,ASCII码中字母A是01000001,汉字则用更长的Unicode编码(如UTF-8)。图像。
2025-02-22 14:07:42
348
原创 进程控制(靠原语实现)
进程控制的主要功能是:对系统中的所有进程实施有效管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。简化理解:进程控制就是要实现进程状态转换。无论哪个进程控制原语,要做的无非三件事情:1、更新PCB中的信息。(修改进程状态,保存 || 恢复运行环境)2、将PCB插入合适的队列。3、分配 || 回收资源。
2025-02-20 20:56:49
340
原创 进程的概念、组成、特征
补充说明进程与线程的区别:线程是进程内的执行单元,共享进程资源,切换开销更小。进程状态转换:包括新建(New)、就绪(Ready)、运行(Running)、阻塞(Blocked)、终止(Terminated)等状态。程序是怎样运行的?(见下图)
2025-02-20 15:06:50
915
原创 虚拟机 _ VM
使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine,VM),每个虚拟机器都可以独立运行一个操作系统。:虚拟机管理程序/虚拟机监控程序Virtual Machine Monitor/Hypervisor。
2025-02-19 17:52:12
254
原创 操作系统引导
操作系统引导:①CPU从一个特定主存地址开始,取指令,执行OM中的引导程序(先进行硬件自检,再开机)②将磁盘的第一块一一主引导记录读入内存,执行磁盘引导程序,扫描分区表③从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序④从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作。
2025-02-19 17:18:02
557
原创 操作系统体系结构
一个故事:现在,应用程序想要请求操作系统的服务,这个服务的处理同时涉及到进程管理、存储管理、设备管理。大内核(又名:宏内核 || 单内核):时钟管理、中断处理、原语、进程管理、存储管理、设备管理。分层结构、模块化、外核 考简单的选择题,了解各种体系结构的特性,了解各自的优缺点。注意:变态的过程是有成本的,要消耗不少时间,频繁地变态会降低系统性能。实现操作系统内核功能的那些程序就是内核程序。内核是操作系统最基本、最核心的部分。大内核要两次变态,微内核要六次变态。微内核:时钟管理、中断处理、原语。
2025-02-19 10:54:42
176
原创 系统调用—《关于标题只打系统调用会显示标题太短这件事》
系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。
2025-02-18 21:31:04
399
原创 中断和异常
例子:【王道计算机考研 操作系统】 【精准空降到 02:51】 https://www.bilibili.com/video/BV1YE411D7nH/?终止:由致命错误引起,内核程序无法修复该错误,因此一般不再将CPU使用权还给引发终止的应用程序而是直接终止该应用程序。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。内中断:与当前执行的指令有关,中断信号来源于CPU内部。外中断:与当前执行的指令无关,中断信号来源于CPU外部。
2025-02-18 20:37:03
184
原创 操作系统的运行机制
CPU只能执行机器指令(就是0100110011之类的),高级语言编写的代码经过编译器一系列操作之后就变成了机器指令,可以运行,CPU区分程序是用户态还是内核态由程序状态字寄存器(PSW)中的二进制位是0还是1决定。别名:内核态 = 核心态 = 管态 用户态 = 木态。
2025-02-18 18:57:49
121
原创 操作系统的发展和分类
网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。主要缺点:用户响应时间长,没有人机交互功能(用户提交自己的作业之后就只能等待计算机处理完成,中间不能控制自己的作业执行。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。分布式操作系统:主要特点是分布性和并行性。
2025-02-18 13:37:34
243
原创 操作系统的概念、功能
操作系统(Operating System,Os)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。GUI、联机命令接口、脱机命令接口、程序接口。处理机管理、存储器管理、文件管理、设备管理。负责管理协调硬件、软件等计算机资源的工作。为上层用户、应用程序提供简单易用的服务。
2025-02-13 16:24:45
108
原创 洛谷:P1579 哥德巴赫猜想(升级版)
我在暴力中稍微添加了点智慧,题目大意就是给你个奇数,让你找三个质数相加为这个数,but,我没用奇数这个性质QAQ,我的代码是先找到题目给定范围内所有的质数(埃筛),然后通过枚举找到对应的三个数而且满足从小到大的顺序。没想到这题怎么快就说完了,可能是太久没写算法题了,想的不多,近期的种种事件都证明算法是一个值得终身学习的东西,或者说多多少少都会用到。
2024-06-07 23:00:00
227
原创 洛谷:P1223 排队接水
有 n 个人在一个水龙头前排队接水,假如每个人接水的时间为 Ti,请编程找出这 n 个人排队的一种顺序,使得 n 个人的平均等待时间最小。
2024-03-18 15:29:51
532
1
原创 洛谷:B2098 整数去重
Get your data structures correct first, and the rest of the program will write itself.
2024-03-10 12:42:48
404
1
空空如也
c语言的bigbig滴问题,求进
2023-10-05
c语言的bigbig滴问题,求进
2023-10-03
c语言有点东西的问题,求解答!
2023-10-01
c语言题目,有人能解释下嘛,急!
2023-09-30
c语言的小小问题,求详细解释!
2023-09-30
c语言问题,求详细解释
2023-09-28
c语言简简单单的问题
2023-09-28
c语言的好的不能再好的问题!
2023-09-25
c语言,简单的不能再简单的问题,求解释
2023-09-24
基础的不能再基础的C语言问题
2023-09-21
C语言基础的不能再基础了,求详细解释
2023-09-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人