自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(193)
  • 收藏
  • 关注

原创 进程管理(五)

批量型往往先进入外存,再进入内存。终端型直接进入内存。从磁盘选择若干作业,同时装入到内存,创建相应的进程,这是高级调度。低级调度(进程调度):从进入内存的多道程序中选择一道把处理机给他注意:时间片轮转是抢占式的外设的调度统称为输入输出调度。

2023-11-20 17:45:37 145

原创 进程管理(四)

管程引入了条件变量condition。wait操作,把当前进程挂到条件变量对应的阻塞队列上去,signal把条件队列上的对手进程唤醒。注意:条件变量的signal操作和信号量的signal是有区别的。条件变量的signal可能啥都不干,如果有阻塞的进程唤醒,没有啥事都不做。wait如果资源忙,挂到条件队列上。把资源使用的操作集中在管程中,使进程的设计更加有条理。任何时候只有一个进程进入管程。管程任何时候只有一个进程处于活跃状态。

2023-11-20 16:59:25 165

原创 进程管理(三)

放了数据后,有通知消费者的义务。空缓冲区、满缓冲区作为资源,设计为信号量。

2023-11-20 16:21:30 155

原创 进程管理(二)

(3)比如A的n为MAX,此时B执行buf[Max]出错。临界区是访问临界资源的代码。par并发执行。

2023-11-09 18:19:25 126

原创 进程管理(一)

运行状态是处理器分配给进程。进程存在的标志就是进程控制块。处于终止状态的进程,进程控制块还在,占用的内存已经归还给系统。在内存中挂起,就绪挂起。在外存中挂起,阻塞挂起。

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

原创 数据结构【第2章】——算法

注:除非特别指定,通常我们提到的运行时间都是最坏情况的运行时间。

2023-08-02 18:31:53 778

原创 数据结构【第1章】——绪论

数据:数据是信息的载体,对客观事物的字符表示。数据元素:数据的,通常作为一个整体进行考虑和处理。数据项: 一个数据元素由多个数据项组成,数据项是数据元素不可分割的最小单位。数据对象:性质相同的数据元素的集合。数据结构:数据元素存在一种或多种的数据元素集合。数据结构这门课着重关注的是数据元素之间的关系,和对这些数据元素的操作,而不关心具体的数据项内容。

2023-07-17 13:43:15 325

原创 JavaScript将读取的文件转为Base64

读取本地文件,如果文件内容是Base64,则直接上传;如果不是,加Base64后上传。

2023-06-08 17:20:10 2414

原创 列出windows系统中的证书

Win+R,然后输入certmgr.msc。

2023-03-09 11:39:34 180 1

原创 物理层和数据链路层排查工具

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

原创 传输层的排查工具

如果我们要测试TCP握手,可以使用 telnet、nc 这两个常规工具。

2023-03-08 10:43:17 96

原创 Chrome查看HTTPS证书信息

F12->Security

2023-03-06 16:19:26 760

原创 第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

原创 Linux:ip addr命令分析

ip addr命令显示了这台机器上所有的网卡。大部分的网卡都会有一个IP地址,但这不是必须的。

2023-03-03 16:23:20 985

原创 C++调用OpenSSL生成SHA1

【代码】C++调用OpenSSL生成SHA1。

2023-03-01 21:05:23 233

原创 精灵表坐标查看器

【代码】精灵表坐标查看器。

2023-02-14 11:19:40 460

原创 npm ERR! While resolving: [email protected] npm ERR! Found: [email protected]

在要安装的包后面添加:–legacy-peer-deps。

2023-02-08 16:24:49 805

原创 引用的账户当前已锁定,且无法登录

WIn10 锁屏以后登录不进去了,提示“引用的账户当前已锁定,且无法登录”。

2023-02-08 14:26:04 12423

原创 一个简单的时钟程序

【代码】一个简单的时钟程序。

2023-02-08 10:14:37 320

原创 Ubuntu设置静态IP地址

【代码】Ubuntu设置静态IP地址。

2023-01-23 17:24:03 231

原创 Base64

Base64是一种基于64个字符的编码算法,经过Base64编码后的数据会比原始数据略长,为原来的4/3倍。经Base64编码后的字符串的字符数是以4为单位的整数倍。

2023-01-17 14:14:37 674

原创 npm仓库管理工具nrm

nrm可以方便切换多个npm仓库。

2023-01-16 14:21:09 121

原创 JavaScript创建对象的方式

JavaScript有多种创建对象的方式。

2023-01-13 14:07:37 664

原创 JavaScript实现对象继承

不同的语言实现继承的方式是不同的,其中最典型的两种方式是基于类的设计和基于原型继承的设计。JavaScript的每个对象都包含了一个隐藏属性 _proto_,即对象的原型 (prototype),_proto_ 指向了内存中的另外一个对象,这个对象称为原型对象,对象可以访问原型对象的方法或属性。

2023-01-13 13:55:43 139

原创 Linux关闭防火墙

【代码】Linux关闭防火墙。

2022-12-27 20:30:25 78

原创 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

原创 LeetCode:两数之和

【代码】LeetCode:两数之和。

2022-10-10 11:34:47 105

原创 Canvas的基本使用

"

2022-09-28 18:28:45 176

原创 Promise使用(更新中)

【代码】Promise使用(更新中)

2022-08-24 15:07:46 46

原创 轮播图插件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

原创 Gulp4简单使用

Gulp4简单使用

2022-07-04 17:16:17 186

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除