操作系统
计算机系统概述操作系统的基本概念 操作系统的定义 操作系统是系统资源的管理者 向上提供方便使用的服务 是最接近硬件的一层软件 操作系统的功能1.作为系统资源管理者 处理机管理 存储器管理 文件管理 设备管理 2.向上提供方便易用的服务操作系统把一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机,用户无需关心底层硬件的原理,只需要对操作系统发出命令即可。 向上提供服务: 给普通用户提供的:GUI、命令接口(联机、脱机) 给程序员提供的:程序接口(系统调用) 例如GUI图形化用户接口:用户可以直观理解界面进行操作,方便用户使用 例如联机命令接口,也称交互式命令接口—说一句做一句 例如脱机命令接口,也称批处理命令接口—说一堆,做一堆 例如程序接口—利用系统调用 3.作为最接近硬件的层次没有任何软件支持的计算机成为裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器 操作系统的四个特征没有并发性和共享性,就谈不上虚拟和异步,因此并发和共享是操作系统最基本的两个特征 1.并发性 并发:指两个或多 ...
高数题集
严选题1.函数极限连续选择题 开区间连续,两端点单侧极限存在,是函数有界的充分条件,而不是必要条件 相乘的极限存在,不想代表,各自都有极限 利用夹逼定理,单调有界准则 极限要求趋向于0,但不等于0,没有说明φ(x)不等于0 1.注意加减关系不能直接等价代换,等价代换实质上是一种精度不太高的泰勒展开(低阶展开),当f(x)与g(x)存在加减关系时,例如这题是相加关系,如果f(x)与g(x)的低阶无穷小相互抵消(limf(x)/g(x)=-1),那么就需要比较高阶的无穷小;但是等价代换就没有高阶项,所以精度丢失- - ->2.拆成两项极限求和的前提是–>两项极限都存在 确定变上限积分函数,无穷小的阶数–>N(M+1)原则 1.当a=2,arctanx-sin2x可以分别等价代换,为什么?不是说加减不能等价代换吗? –>等价代换实质就是一次低阶泰勒展开,当展开之后,最低阶的无穷小两者不相等时,意味着相减,不会消去这个低阶无穷小,就不需要比较高阶无穷小,那么就可以直接等价代换 ;arctanx-sin2x ~ x-2x 2.当a=1时,ar ...
线代
01-行列式的定义与性质行列式背景123对于一个二元方程组,每次都要求解就特别麻烦。为了更加快速的找到方程的解,人们寻找规律,发现解的通式如下但是通式难以记忆,所以将这种计算规律用行列式表示,规定行列式计算方式 逆序数1重要结论:一个排列中任意的两个元素对换,排列的奇偶性改变 n阶行列式的定义123456行列式是一个数行列式计算方法是: 1.取数相乘: 取n个不同行不同列的数 相乘 --> 所以n!种取法,就有n!项 2.冠以符号: 每一项(n个数相乘),将里面的元素,按列排好,然后数 列序号的逆序数τ, -(1)^τ 3.全部相加: 将所有项n!项相加 123456789101112按照行列式定义,因为行列式的每一项都是有不同行不同列的n个数相乘假如取1行1列的数-->x那么画个十字线,十字线上的数都不能再取题目要求行列式结果中x^3的系数排除法:假如先取1,画十字线,发现其他行最多只能取到两个x,构不成x^3假如先取2,同理不行所以只能取x或x+3 取x+3,只有一种情况,可行 取x,第二行只能取x,第三行只能取x,第四行只能取x,那么x^4不符合。 ...
栈为什么从高地址往低地址分配内存
原因栈的栈顶在低地址,栈底在高地址这样设计有什么意义呢? 计算机内存分了代码段(.text段)、初始化的数据段(.data段)、未初始化的数据段(.bss段)、堆空间(heap)、栈空间(stack)和命令行参数和环境变量区域。 程序计数器(Program Counter,简称PC)的缺省指向0地址,计算机开机后从程序计数器指向的地址开始执行程序,每执行完一条指令后, 程序计数器自动加1。 因此很自然的,代码段从低地址区间开始加载,向高地址区间扩展; heap从低地址向高地址扩展,做内存管理相对要简单些,为了避免栈空间和代码段冲突,最大利用地址空间,很自然的,我们会选择把栈底设置在高地址区间,然后让栈向下增长。 这是来自apue里一张经典的c程序内存分布图,着重看一下heap和stack的内存分布。 栈由高地址向低地址扩展的优点stack从高地址向低地址扩展,这样栈空间的起始位置就能确定下来。动态的调整栈空间大小也不需要移动栈内的数据,如果是从低地址到高地址的扩展,结尾的地址是固定的,如果要扩大或缩小,则需要移动整个栈的数据。 并且这样设计可以使得堆和栈能够充分利用空闲的地址空间。 ...
LaTaX语言
1.求和表达式 123$$\sum_{n=0}^{\infty}n$$其中,\sum表示求和符号,n表示要累加的变量,0表示起始索引,\infty表示末尾索引。所以,上述表达式表示了从0开始到正无穷的所有整数之和。 2.积分表达式 123$$\int_{-\pi}^{\pi}f(x)dx$$其中,$\int$ 表示积分符号,$f(x)$ 表示要积分的函数,$dx$ 表示积分的变量(即积分变量),$-\pi$ 和 $\pi$ 分别表示积分的下限和上限。 3.分式 123$$\frac{a}{b}$$其中,$a$ 表示分子,$b$ 表示分母。它表示了 $a$ 与 $b$ 之间的比率关系,也可以理解为 $a$ 中包含了 $b$ 的多少倍。 4.下标 1234567$$a_i$$或者$$x_{i,j}$$其中,$i$ 和 $j$ 是变量的下标,它们用于表示该变量的某个特定元素。在第一个例子中,$a$ 中的 $i$ 表示 $a$ 数组中的第 $i$ 个元素;在第二个例子中,$x$ 中的 $i$ 和 $j$ 分别表示一个二维数组 $x$ 中的第 $i$ 行第 $j$ 列的元素。 5 ...
多地址指令实际访存次数
指令机器指令按照含有的地址数目可以分为1,2,3,4地址指令。其中指令中存放的地址都是虚拟地址,不是实际物理地址。 一般访存次数一般来说,举个例子:三地址指令(A1)OP(A2)->A3访存了4次:取指令->读A1->读A2->写到A3这是最好的情况,考虑到需要访问的页表项,都在”快表TLB”之中可以找到,因此转换地址都不需要访存。 实际访存次数三地址指令需要访存次数和一地址指令类似,也要考虑TLB、页表、磁盘之间的命中情况。 如果TLB中存在对应的页表项,那么就可以直接访问内存,不需要再查询页表。这时候,三地址指令需要访存4次:一次是读取指令,两次是读取操作数,一次是写入结果。 如果TLB中不存在对应的页表项,那么就需要查询页表,这时候就要多访问两次内存:一次是读取页表项,一次是读取数据。这时候,三地址指令需要访存7次:一次是读取指令,两次是读取操作数,三次是读取页表项,一次是写入结果。 如果页表中也不存在对应的页表项,那么就发生缺页,需要从磁盘中读取数据到内存,并更新页表和TLB。这时候就要多访问一次磁盘。这时候,三地址指令需要访存7次:一次是读取指令,两次 ...
acdemic_gpt添加slack-Claude模型
前置准备 从GitHub仓库中获取acdemic_gpt 创建Slack工作区,并添加claude在工作区中 Slack Token 1.新建一个Slack APP 传送入口 2.将输入app名称(随意),并选择自己的workspace 3.创建后点击我们的APP,然后点击左侧栏的OAuth & Permissions 4.下拉找到 Scopes,为我们的 User Token 添加 Scope channels:history channels:write chat:write im:history im:write 5.然后将APP安装到我们的workspace中,安装好之后这里就会显示User OAuth Token Claude Bot ID 1.进入Slack应用页面,找到我们的 Claude 应用,右击然后选择查看应用详情,复制 Claude 的成员 ID 配置acdemic_gpt中的config.py 1将前面两步获取到的token和ID 分别填入即可 其他 1.批处理文件一键启动main.py 1234@echo offset python_ ...
计算机网络
计算机网络体系结构认识计算机网络1计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统 12ip池由因特网管理机构管理 ISP给用户提供网络连接服务,首先会向ip池要一个网段的ip地址,然后分配各用户 计算机网络的组成与分类组成 组成成分 硬件 软件 协议 1协议是规定这些数据如何封装、打包、传输 工作方式 边缘部分 核心部分 123456789101112131415边缘部分端对端之间的通信: - 是指进程与进程之间的通信,例如QQ进程发消息,另一端QQ进程接收消息两个端系统之间的进程通信包括三种方式: - C/S: Client(客户)/Server(服务器)-->描述两个端系统之间的进程呈现服务与被 服务的关系; 例如:使用微信发消息-->腾讯服务器-->另一个接收者 ;由于资 源有限同时发消息的人越多(访问服务的人越多),速度越慢 - B/S Browser(浏览器)/Server(服务器) -->与C/S方式类似,不同在于C/S方式主 要指下载一 ...
字扩展与多模块存储器区别
从功能来看: 字扩展是对存储芯片内部来说的。字扩展只能扩展容量,对单个存储器进行扩容,属于一个存储器的一部分,也就是说拥有同一个读写周期。其实是一个比存储器更小的概念,在使用高位交叉编址的时候是不用考虑存储器内部里面有几个芯片,是怎么连接的。 多模块存储器,说的是存储器,可独立运行,扩充容量的同时,在每个存储模块低位交叉编址的情况下,能提高吞吐率;高位交叉编址,只是单纯扩容。 从作用来看 字扩展是为了解决单片存储芯容量有限,将多个存储芯片连接组成一个存储器。 12345678答案是选A。字位拓展是对于一个存储器而言的,也就是对应着多模块存储中的一个模块(所以多模块存储器又叫做多体并行存储器,这个体就是存储体的意思4Kx4的存储芯片通过位扩展-->16K的存储芯片单块存储芯片容量4K-->地址数=2^12-->也就需要12根低地址线作为地址线接入A15~A4那么也就是需要16/4=4块存储芯片组合位扩展-->需要2根高位地址线作为片选线A3~A2-->所以答案A
判断有向图是否有环
关键路径 关键路径能否判断有向图是否有环存在争议 关键路径有争议,因为求关键路径,需要先求各个事件的最早开始时间和最晚开始时间,但是如果有环的话,那么就导致事件无限循环无法结束,最终报错–>至于通过报错判断是否有环是否可以利用还存在争议 深度优先遍历 深度优先遍历如何判断有向环是否有环? 基于深度优先遍历,如果只是用来遍历每个结点而不重复,那么会给每个遍历过的结点标记为1,弹栈后标记依旧存在,于是这遍历过的结点会影响其他深度的继续前进。导致不会有重复的出现。 但是如果通过深度优先遍历来判断有向图是否有环的话,就要在标记1的基础上,给每次弹栈之后的顶点去掉标记(类比为真正意义上的弹栈)。至于为什么要这样做? 因为首先要搞清楚对于有向图环究竟是什么?就是对一条路径上探索到最深处而不出现首位相连的情况。因此只需满足该次递归直到结束,过程之中不会出现重复顶点即可,如果不清除标记,那么被访问过的顶点如果同时出现在其他深度的递归里面,那么该深度的前进就会碰到所谓”重复的顶点”,但是其实并没有在该条递归中重复出现(并没有环),那么就无法判断是否有环了。 下面是一个有向图无环图。从深度优先1 ...










