自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C语言-数据结构】单链表的定义

不带头结点,写代码更麻烦对第一个数据结点和后续数据结点的处理需要用不同的代码逻辑对空表和非空表的处理需要用不同的代码逻辑带头结点,写代码更方便本文主要参考《王道计算机考研 数据结构》课程视频。

2024-09-21 17:53:12 375

原创 【C语言-数据结构】顺序表的基本操作

【建议:如果对结构体还不太理解的话可以先看这篇文章】

2024-09-21 17:51:04 747

原创 【数据结构】顺序表的定义和实现

顺序表是指用的方式实现线性表顺序存储:把的元素存储在的存储单元中,元素之间的关系由存储单元的邻接关系来体现【看到这是否会和我有同样的疑问:顺序表和数组是一样的吗?这个问题可以参考这篇文章的解释】

2024-09-13 10:03:51 666

原创 【数据结构】线性表的定义和基本操作

线性表是具有相同数据类型的 n(n≥0)个数据元素的有限序列,其中 n 为表长,当 n=0 时线性表是一个空表注意:① 元素的数据类型相同意味着每个元素所占空间一样大;② 线性表是有限序列意味着各元素之间有先后次序且数量是有限的】若用 L 命名线性表,则其一般表示为La1a2aiai1anLa1​a2​ai​ai1​an​aia_iai​是线性表中的 “第 i 个” 元素线性表中的位序【注意位序是从1开始的,数组下标是从0开始的】a。

2024-09-12 11:31:50 513

原创 【计算机组成原理】计算机的性能指标

一个完整的计算机系统由硬件和软件构成,硬件性能的好坏对整个计算机系统的性能起着至关重要的作用。

2024-09-07 10:12:38 208

原创 【计算机组成原理】计算机系统层次结构

计算机系统是一个层次结构系统,每一层都通过向上层用户提供一个抽象的简洁接口而将低层的实现细节隐藏起来。计算机解决应用问题的过程就是不同抽象层进行转换的过程。

2024-09-06 18:06:44 508

原创 【计算机组成原理】计算机系统的基本组成

由于传统的冯·诺依曼机都是以运算器为中心,数据的传输都需要通过运算器作为中转,而不能直接对存储器进行读写,这显然是低效的,现代计算机就采用。CPU 能够直接访问的存储器是主存储器,辅助存储器用千帮助主存储器记忆更多的信息,辅助存储器中的信息必须调入主存后,才能为 CPU 所访问。即对于同一个功能,既可以用软件来实现也可以用硬件来实现,不过软件实现的成本更低效率也更低,相应的硬件实现的成本更高效率更高。”的概念,“存储程序”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机通称为。

2024-09-05 13:37:39 1096

原创 【计算机组成原理】 计算机发展历程

与此同时,直接影响计算机系统性能提升的各种系统软件也有了长足的发展,特别是操作系统,如 Windows UNIX、Linux 等。也就是说,我们现在和 18 个月后花同样的钱买到的 CPU,后者的性能是前者的两倍,这一定律揭示了信息技术进步的速度。当价格不变时,集成电路上可容纳的晶体管数目,约每隔 18 个月便会增加一倍,性能也将提升一倍。由于所有的软件都是由编程语言编写出来的,所以编程语言的发展直接决定了软件的丰富程度。其中高级语言的发展真正促进了软件的发展,它经历了从科学计算和工程计算的。

2024-09-05 11:01:31 823

原创 【C语言】指针

在了解了内存地址的概念之后,再来看指针指针是一种变量,即指针变量,其值为内存地址换句话说,指针存储的是其他数据单元(变量/数组/结构体/函数等)的首地址,指针本身并不存储实际的数据若指针存放了某个数据单元的首地址,则这个指针指向了这个数据单元;若指针存放的值是 0,则这个指针为空指针表示方法。

2024-09-02 12:42:20 1327

原创 【C语言】数组

上面的注释表明,以前支持 C90 标准的编译器不允许后两种声明方式,而 C99 标准允许这样声明,这创建了一种新型数组,称为变长数组 (variable-length array) 或简称 VLA(C11 放弃了这一创新的举措,把 VLA 设定为可选,而不是语言必备的特性),声明 VLA 时不能进行初始化。多维数组是数组的一种,它的每个元素也是一个数组,允许在多个维度上组织数据,最常见的多维数组是二维数组,通常用于表示表格、矩阵或网格等结构。可以使用循环来访问数组中的所有元素,例如,使用。

2024-08-31 09:00:00 1282

原创 【C语言】结构体

结构体中还可以包含其他结构体,形成嵌套结构int day;int month;int year;} Date;int id;} Employee;//上面代码中,Employee 结构体中嵌套了 Date 结构体//可以通过以下方式访问嵌套的成员。

2024-08-25 17:03:00 683

原创 【计算机操作系统】虚拟内存的基本概念

基于局部性原理,在程序装入时,可以将程序中很快会用到的部分装入内存暂时用不到的部分留在外存就可以让程序开始执行在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存在操作系统的管理下,在用户看来似乎有一个比实际内存大得多的内存,这就是虚拟内存(操作系统虚拟性的一个体现,实际的物理内存大小没有变,只是在逻辑上进行了扩充)

2024-08-23 13:15:21 981

原创 【计算机操作系统】段页式管理方式

分页存储管理能有效地提高内存利用率,而分段存储管理能反映程序的逻辑结构并有利于段的共享和保护,将这两种存储管理方法结合起来,便形成了段页式存储管理方式。每个段对应一个段表项,每个段表项由段号、**页表长度、页表存放块号(页表起始地址)**组成,每个段表项长度相等,段号是隐含的(,对内存空间的管理仍然和分页存储管理一样,将其分成若干和页面大小相同的存储块,对内存的分配以存储块为单位。每个页面对应一个页表项,每个页表项由页号、页面存放的内存块号组成。段号占 16 位,因此在该系统中,每个进程最多有。

2024-08-21 12:28:41 918

原创 【计算机操作系统】基本分段存储管理

例如,用户进程由主程序段、两个子程序段、栈段和数据段组成,于是可以把这个用户进程划分为 5 段,每段从 0 开始编址,并分配一段连续的地址空间(分段系统的地址变换过程如图所示,为了实现进程从逻辑地址到物理地址的变换功能, 在系统中设置了段表寄存器,用于存放。程序分多个段,各段离散地装入内存,为了保证程序能正常运行,就必须能在物理内存中找到各个逻辑段的存放位置,因此。,分页的主要目的是为了实现离散分配,提高内存利用率,分页仅仅是系统管理上的需要,完全是系统行为,(不属于临界资源),这样的代码是可以共享的。

2024-08-20 14:19:44 974

原创 【计算机操作系统】基本分页存储管理

页表项占用字节大小 = 页号占用字节 + 块号占用字节,但是由于页表项是连续存放,因此页号可以是隐含的,不占存储空间(类比数组),故在物理上页表项占用的存储空间大小就是块号占用的存储空间大小。② 如果找到匹配的页号,说明要访问的页表项在快表中有副本,则直接从中取出该页对应的内存块号,再将内存块号与页内偏移量拼接形成物理地址,最后。,找到对应页表项,得到页面存放的内存块号,再将内存块号与页内偏移量拼接形成物理地址,最后,,以便后面可能的再次访问,但若快表已满,则必须按照一定的算法对旧的页表项进行替换)

2024-08-19 21:35:46 1178

原创 【计算机操作系统】连续分配管理方式

连续分配管理是实现内存空间的分配与回收的方式之一:为用户进程分配的必须是一个。

2024-08-18 20:38:19 1050

原创 【计算机操作系统】覆盖与交换

覆盖与交换是实现内存空间扩充的技术,虚拟存储技术后续会详细讲解。

2024-08-16 12:43:30 725

原创 【计算机操作系统】内存管理的概念

存储管理方式随着操作系统的发展而发展,在操作系统由单道向多道发展时,存储管理方式便由单一连续分配发展为固定分区分配;内存一般来说会分为操作系统使用的内存区域,还有普通的应用程序使用的内存区域,各个用户进程都会被分配到各自的内存空间,某进程对操作系统使用的内存区域的访问和对其他进程内存区域的访问都应该被禁止(否则会导致系统不安全),该进程只能访问与之对应的内存区域。引入分段存储管理的目的,主要是为了满足用户在编程和使用方面的要求,其中某些要求是其他几种存储管理方式难以满足的。】 专栏的文章 均有参考。

2024-08-14 11:01:02 747

原创 【计算机操作系统】内存的基础知识

编译、链接后的装入模块的地址都是从0开始的,指令中使用的地址、数据存放的地址都是相对于起始地址而言的逻辑地址。装入时对地址进行 “其实CPU在执行这些一条一条指令的过程当中,就是在处理内存或寄存器当中的一些数据,而指令的工作基于 “地址”(通过地址找到数据存放位置),每一个地址对应一个数据的存储单元。编译、链接后的装入模块的地址都是从0开始的,装入程序把装入模块装入内存后,并不会立即把逻辑地址转换为物理地址,而是。:由链接程序将编译后形成的一组目标模块,以及所需库函数链接在一起,形成一个完整的装入模块。

2024-08-13 10:01:36 847

原创 【计算机操作系统】死锁的处理策略

首先给系统中的资源编号,规定每个进程必须按编号递增的顺序请求资源,同类资源(即编号相同的资源)一次申请完(一个进程只有已占有小编号的资源时,才有资格申请更大编号的资源,按此规则,已持有大编号资源的进程不可能逆向地回来申请小编号的资源,从而就不会产生循环等待的现象):进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又被其他进程占有,此时请求进程被阻塞,但又对自己已有的资源保持不放。:有些资源可能只需要用很短的时间,因此如果进程的整个运行期间都一直保持着所有资源,就会造成严重的资源浪费,

2024-08-11 10:55:48 1072

原创 【计算机操作系统】死锁的概念

死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进举例分析】以哲学家进餐问题为例解释死锁现象当5名哲学家都想要进餐并分别拿起左边的筷子时,筷子已被拿光,等到他们再想拿右边的筷子时,就全被阻塞,因此出现了死锁每个人都占有一个资源同时又在等待另一个人手里的资源,发生“死锁“➡️在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象,就是“死锁”,发生死锁后若无外力干涉,这些进程都将无法向前推进。

2024-08-10 09:00:00 1418

原创 【计算机操作系统】管程

管程是一种高级的同步机制,本质上也是用于实现进程的互斥和同步利用共享数据结构抽象地表示系统中的共享资源,而把对该数据结构实施的操作定义为一组过程(“过程”就是“函数”)。进程对共享资源的申请、释放等操作,都通过这组过程来实现,这组过程还可以根据资源情况,或接受或阻塞进程的访问,确保每次仅有一个进程使用共享资源,这样就可以统一管理对共享资源的所有访问,实现进程互斥。这个代表共享资源的数据结构,以及由对该共享数据结构实施操作的一组过程所组成的资源管理程序,称为管程(monitor)

2024-08-09 09:00:00 347

原创 【计算机操作系统】信号量

若先执行到 P(S) 操作,由于S=0,S-- 后 S=-1,表示此时没有可用资源,因此 P 操作中会执行 block 原语,主动请求阻塞,之后当执行完 x 语句,继而执行 V(S) 操作,S++,使 S 变回 0,由于此时有进程在该信号量对应的阻塞队列中,因此会在 V 操作中执行 wakeup 原语,唤醒 P2进程,这样 P2 就可以继续执行 y 语句了。当有进程存在于临界区时,S 的值为 0, 再有进程要进入临界区,执行 P 操作时将会被阻塞,直至在临界区中的进程退出,这样便实现了临界区的互斥。

2024-08-08 10:02:31 763

原创 【计算机操作系统】进程互斥的实现方法

逻辑上来看 Swap 和 TSL 并无太大区别,都是先记录下此时临界区是否已经被上锁(记录在 old 变量上),再将上锁标记 lock 设置为 true,最后检查 old,如果 old 为 false 则说明之前没有别的进程对临界区上锁,则可跳出循环,进入临界区。:双标志先检查法的改版,前一个算法的问题是先“检查”后“上锁”,但是这两个操作又无法一气呵成,因此导致了两个进程同时进入临界区的问题,因此人们又想到**先“上锁”后“检查”**的方法,来避免上述问题。,比如上例中如果按照 ①⑤②⑥③⑦…

2024-08-07 10:51:40 878

原创 【计算机操作系统】同步与互斥的基本概念

计算机操作系统】 专栏的文章 均有参考《王道计算机考研 操作系统》课程视频。

2024-08-06 16:17:34 427

原创 2.2 (2) 调度算法

调度算法的评价指标 & 典型的调度算法

2024-08-05 09:30:00 993

原创 2.2 (1) 处理机调度

处理机调度概念 & 处理机调度层次 & 进程调度的时机 & 进程调度的方式 & 进程的切换与过程 & 调度程序(调度器)& 闲逛进程

2024-08-04 09:07:22 947

原创 2.1(4) 线程

线程的概念 & 线程的实现方式 & 线程的状态与转换 & 线程的组织与控制

2024-08-03 17:40:54 1181

原创 2.1(3) 进程通信

进程通信介绍

2024-08-01 10:49:27 961

原创 2.1(2) 进程控制

计算机操作系统 —— 进程控制介绍

2024-07-31 09:51:00 359

原创 2.1(1) 进程

进程的概念、组成和特征 & 进程的状态与转换

2024-07-30 13:46:49 692

原创 1.5 & 1.6 操作系统引导 & 虚拟机

操作系统引导及虚拟机简介

2024-07-29 10:30:58 314

原创 1.4 操作系统结构

操作系统结构介绍

2024-07-28 12:33:54 206

原创 1.3 操作系统运行环境

操作系统运行环境介绍

2024-07-27 11:19:29 929

原创 1.2 操作系统的发展与分类

操作系统的发展与分类介绍

2024-07-26 09:52:33 654

原创 1.1 操作系统的基本概念

计算机操作系统的定义,目标和功能、特征等介绍

2024-07-25 11:33:19 705

原创 N进制计数器【02】

数字电子技术基础 —— 时序逻辑电路 —— 大容量N进制计数器

2024-05-28 16:08:15 1248

原创 N进制计数器【01】

数字电子技术基础 —— 时序逻辑电路 —— 小容量N进制计数器

2024-05-26 10:33:36 1610

原创 十进制异步计数器

数字电子技术 —— 时序逻辑电路 —— 十进制异步计数器

2024-05-25 11:21:49 1395

原创 十进制同步计数器

数字电子技术 —— 时序逻辑电路 —— 十进制同步计数器

2024-05-24 15:38:05 2256 2

概率论 - 随机事件及其概率

概率论第一章思维导图

2024-06-09

空空如也

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

TA关注的人

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