- 博客(193)
- 收藏
- 关注
原创 进程管理(五)
批量型往往先进入外存,再进入内存。终端型直接进入内存。从磁盘选择若干作业,同时装入到内存,创建相应的进程,这是高级调度。低级调度(进程调度):从进入内存的多道程序中选择一道把处理机给他注意:时间片轮转是抢占式的外设的调度统称为输入输出调度。
2023-11-20 17:45:37 145
原创 进程管理(四)
管程引入了条件变量condition。wait操作,把当前进程挂到条件变量对应的阻塞队列上去,signal把条件队列上的对手进程唤醒。注意:条件变量的signal操作和信号量的signal是有区别的。条件变量的signal可能啥都不干,如果有阻塞的进程唤醒,没有啥事都不做。wait如果资源忙,挂到条件队列上。把资源使用的操作集中在管程中,使进程的设计更加有条理。任何时候只有一个进程进入管程。管程任何时候只有一个进程处于活跃状态。
2023-11-20 16:59:25 165
原创 进程管理(一)
运行状态是处理器分配给进程。进程存在的标志就是进程控制块。处于终止状态的进程,进程控制块还在,占用的内存已经归还给系统。在内存中挂起,就绪挂起。在外存中挂起,阻塞挂起。
2023-11-09 17:37:51 53
原创 Java代码是怎么运行的?
将Java程序转换成Java虚拟机所能识别的指令序列,也称Java字节码。之所以这么取名,是因为Java字节码指令的操作码(opcode)被固定为一个字节。Java虚拟机可以由硬件实现,但更为常见的是在各个现有平台(如Windows_x64、Linux_aarch64)上提供软件实现。Java虚拟机将运行时内存区域划分为五个部分,分别为方法区、堆、PC寄存器、Java方法栈和本地方法栈。执行Java代码首先需要将它编译而成的class文件加载到Java虚拟机中。
2023-11-09 16:36:55 558
原创 操作系统引论(二)
推动操作系统的发展和资源利用率的提高是相关联的。让输入输出相对独立,通道技术,通道相当于简单的处理器,通过输入输出指令,控制外设完成输入输出。输入和输出过程不是由主机控制的,是在外围机的控制下,所以是脱机。
2023-11-07 18:31:04 245
原创 操作系统引论(一)
管理和控制:管控有效管理:操作系统的设计目标之有效性VxWorks:实时系统,航天领域AIX:大型机上Novell Netware: 网络。
2023-11-07 18:24:24 74
原创 库函数与系统调用的区别与联系
库函数是语言或应用程序的一部分,可以运行在用户空间中。而系统调用是操作系统的一部分,是内核为用户提供的程序接口,运行在内核空间中,而且许多库函数都会使用系统调用来实现功能。未使用系统调用的库函数,其执行效率通常要比系统调用的高。因为使用系统调用时,需要上下文的切换及状态的转换(由用户态转向核心态)。库函数是高级语言中提供的与系统调用对应的函数(也有些库函数与系统调用无关),目的是隐藏“仿管”指令的细节,使系统调用更为方便、抽象。但是,库函数属于用户程序而非系统调用,是系统调用的上层。
2023-09-29 11:45:45 89
原创 数据结构【第4章】——栈与队列
不一定。栈对线性表的插入和删除的位置进行了限制,并没有对元素进出的时间进行限制,也就是说,在不是所有元素都进栈的情况下,事先进去的元素也可以出栈,只要保证是栈顶元素出栈就可以。
2023-08-09 16:18:28 580
原创 数据结构【第3章】——线性表
线性表:零个或多个数据元素的有限序列。1)线性表是一个序列。即元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继。2)线性表强调是有限的,元素个数也是有限的。事实上,在计算机中处理的对象都是有限的,那么无限的数列,只存在于数学的概念中。注意:位序是从1开始的。在较复杂的线性表中一个数据元素可以由若干个数据项组成。
2023-08-03 18:24:57 929
原创 数据结构【第1章】——绪论
数据:数据是信息的载体,对客观事物的字符表示。数据元素:数据的,通常作为一个整体进行考虑和处理。数据项: 一个数据元素由多个数据项组成,数据项是数据元素不可分割的最小单位。数据对象:性质相同的数据元素的集合。数据结构:数据元素存在一种或多种的数据元素集合。数据结构这门课着重关注的是数据元素之间的关系,和对这些数据元素的操作,而不关心具体的数据项内容。
2023-07-17 13:43:15 325
原创 物理层和数据链路层排查工具
TCP的传输可靠性是通过序列号、确认号、重传机制等来保证的,通过这种机制,TCP可以在 一定程度 的网络不稳定场景下,依然保证传输可靠,但不等于TCP可以无限容忍底层的不稳定,因为各种TCP拥塞控制算法都会由于这种问题,而极大地降低传输性能。它的原理,是网卡驱动会到内核中注册ethtool回调函数,然后我们用ethtool命令就可以查看这些信息了。由于信息是由网卡驱动提供的,所以十分“接地气”。
2023-03-08 13:30:46 128
原创 网络层排查工具
traceroute默认是用UDP作为探测协议的,但是很多网络设备并不会对UDP作出回应。所以改成ICMP协议做探测后,网络设备就有回应了。Windows上的tracert,默认用ICMP,这一点跟Linux正好是反过来的。,traceroute也有一个明显的不足: 它不能对这个路径做连续多次的探测。
2023-03-08 13:28:22 109
原创 第2层:MAC层
的全称是,即 媒体访问控制。控制什么呢?控制在往媒体上发数据的时候,谁先发、谁后发的问题。防止发生混乱。这个问题中的规则,即。有很多算法可以解决这个问题。信道划分轮流协议随机接入协议。以太网用的就是这个方式。
2023-03-06 10:40:39 115
原创 第1层设备:物理层
以前去学校配电脑的地方买网线,卖网线的师傅会问,你的网线是要电脑连电脑啊,还是电脑连网口啊?我们要的是电脑连电脑。这种方式就是一根网线,有两个头。一头插在一台电脑的网卡上,另一头插在另一台电脑的网卡上。但是在当时,普通的网线这样是通不了的,所以水晶头要做交叉线,用的就是所谓的 1-3、 2-6交叉接法。水晶头的第1、2和第3、6脚,它们分别起着收、发信号的作用。将一端的1号和3号线、2号和6号线互换一下位置,就能够在物理层实现一端发送的信号,另一端能收到。
2023-03-06 10:18:47 56
原创 npm ERR! While resolving: [email protected] npm ERR! Found: [email protected]
在要安装的包后面添加:–legacy-peer-deps。
2023-02-08 16:24:49 805
原创 Base64
Base64是一种基于64个字符的编码算法,经过Base64编码后的数据会比原始数据略长,为原来的4/3倍。经Base64编码后的字符串的字符数是以4为单位的整数倍。
2023-01-17 14:14:37 674
原创 JavaScript实现对象继承
不同的语言实现继承的方式是不同的,其中最典型的两种方式是基于类的设计和基于原型继承的设计。JavaScript的每个对象都包含了一个隐藏属性 _proto_,即对象的原型 (prototype),_proto_ 指向了内存中的另外一个对象,这个对象称为原型对象,对象可以访问原型对象的方法或属性。
2023-01-13 13:55:43 139
原创 Java多线程文件下载+断点续传
例如:一个10字节的文件,一共开了3个线程,每个线程下载数:size = 10/30:0-21:3-52:6-9开始位置:id * size结束位置:(id + 1) * size - 1最后一个线程的结束位置:length - 1。
2022-10-11 14:55:12 583
原创 轮播图插件Swiper的使用(懒加载+异步加载数据)
引入swiper-bundle.css、swiper-bundle.js。实现懒加载轮播图+ajax获取数据。
2022-08-15 10:13:26 2103
原创 ES6模块化+CommonJS
在ES6模块化规范诞生之前,JavaScript社区已经尝试提出了AMD、CMD、CommonJS等模块化规范。但是,这些由社区提出的模块化标准,有一定的差异性和局限性,并不是浏览器与服务器通用的模块化标准。因此,2015年ES6正式定义了JavaScript模块化标准。ES6模块化规范是浏览器端与服务器端通用的模块化开发规范。它的出现极大的降低了前端开发者的模块化学习成本,开发者不需再额外学习AMD、CMD或CommonJS等模块化规范。importexport。......
2022-07-22 18:21:19 1318
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人