基本笔试题 实现Promise相关的allSettled,all和race方法 Promise.all (如果输入的任何 Promise 被拒绝,则返回的 Promise 将被拒绝,并带有第一个被拒绝的原因) Promise.race(这个返回的 promise 会随着第一个 promise 的敲定而敲定) allSettle(并带有描述每个 Promise 结果的对象数组。) 123456789101112 2024-06-23 FE #FE
异步控制 异步并行 异步串行 1234567891011121314151617181920212223242526272829303132333435363738394041const timeout = ms => new Promise((resolve, reject) => { setTimeout(() => { resolve(); 2024-06-23 FE #FE
https://juejin.cn/post/7134178779349385247#heading-6 https://sunra.top/posts/61809/#%E4%BB%A3%E7%90%86%E6%B2%99%E7%AE%B1 2024-06-23
File system file abstraction Crash safety:遭遇某种宕机或者突然关机,原文件还存在 Disk layout:文件是如何在硬盘上存储的 Performance 持久化的存储设备读取速率通常很慢,需要buffer和concurrency API Example fd = open("x/y", _),文件名是人类可读的 write(fd, "abc", 3),写入文件的时候,是不存 2023-10-05 操作系统 #操作系统,计算机基础, C
xv6 Booting 首先,写在ROM中的boot loader,将内核装载入内存中,并将执行流跳转到固定的入口点(代码写死在ROM中,自然跳转的入口点也是固定的) 因此,编译内核时,需要将内核的入口函数**_entry(kernel/entry.S:6)编译到boot loader**指定的地址处(xv6是0x80000000) 而为了让生活更美好,**_entry函数使用汇编指令初始化栈后,跳转到使用C语言编写的s 2023-10-05 操作系统 #操作系统,计算机基础, C