内存空间的拓充
...
内存空间的分配和回收
...
内存概述
内存概述内存内存可以存放数据。程序执行前需要先放到内存中才能被CPU处理————缓和CPU和硬盘之间的速度矛盾。 内存编址在多道程序环境下,系统中会有多个程序并发执行,也就是说会有多个程序的数据需要同时放到内存中。那么,如何区分各个程序的数据是放在什么地方的呢? 我们可以给内存编址 程序运行原理 程序经过编译、链接后生成的指令中指明的是逻辑地址(相对地址),即:相对于进程的起始地址而言的地址。 程序装入内存运行,操作系统会将程序中的逻辑地址转换为物理地址进行装入。 如果将程序调入了其他进程的地址空间中,就会导致内存资源混乱。有三种装入内存的方式。 程序装入绝对装入绝对装入:在编译时,如果知道程序将放到内存中的哪个位置,编译程序将产生绝对地址的目标代码。装入程序按照装入模块中的地址,将程序和数据装入内存。 举例:如果知道装入模块要从地址为 100...
死锁
...
管程
...
线程
...
模块化
模块化概述模块化是指将一个复杂程序划分为一系列独立、可互操作的模块的过程。每个模块负责特定的功能或任务,并通过定义好的接口与其他模块进行通信。简单来说, 就是将代码进行分解、按功能进行管理。模块化的目的是提高代码的可维护性、可重用性、可测试性和可扩展性。开发者能够更容易地处理大型JavaScript项目。 目录结构 默认导出和导入123456789min.jsexport default function min(m, n){ return m > n ? n : m}index.jsimport min from './utils/min.js'console.log(min(12, 45)) 注意: export default 在同一个模块中只能使用一次 默认导入的变量名可以随便起,一般建议和模块功能保存一致。 按需导出和导入按照导入的变量必须要用花括号括起来,并且变量名和导出名必须保持一致。 12345678910111213141516math.jsexport function add(x,...
进程概述
进程概述概念进程(Process)是程序关于某数据集合的一次运行活动,由程序代码、数据及进程控制块(PCB)组成。它不仅是系统资源(如内存、文件、CPU时间)的分配单元,也是并发执行的基本实体。 程序:静态的,就存放在磁盘里的可执行文件,如QQ.exe。 进程:动态的,是程序的一次执行过程,如同时执行多次QQ程序。 同一个程序多次执行会对应多个进程。 进程的组成PCB当一个进程被创建时,操作系统产生一个对应数据结构:PCB(Process Control...
进程同步和互斥
...
函数
函数有名函数12function fn(a, b) { return a + b }console.log(fn(1, 2)) 函数表达式12const fn2 = function (a, b) { return a * b}console.log(fn2(1, 2)) 箭头函数12const add = (a, b) => { return a + b }console.log(add(1, 2)) 特性参数只有一个时,可以省略() 1234567const log = arg => { console.log(arg)}log(666)log('223423') 当函数体只有一句话时,可以省略{},此时箭头函数自带返回值功能 12const add = (a, b) => a + bconsole.log(add(1, 2)) 当返回一个对象时,为了简写,需要给对象加() 简写前: 12345678910111213const state...