摘要: Multi-level Feedback content 继07章的内容,调度算法工作时不清楚当下任务,或是未来的任务具体要执行多久,因此以运行时长为前提的调度算法都无法实践应用。 mlfq(multi leve feedback queue)算法将到来的任务一律视为短任务,并通过一些限制使“短任务 阅读全文
posted @ 2023-04-16 20:00 moon_orange 阅读(64) 评论(0) 推荐(0) 编辑
摘要: direct execution content 本章主要介绍了进程如何在cpu上执行,并如何解决进程执行的性能、安全性、进程的切换问题。 direct execution 首先解决进程运行在cpu上,即cpu记录下进程信息,为进程开辟内存空间,再运行进程。进程结束后回收内存空间和进程的相关信息。此 阅读全文
posted @ 2023-03-27 00:34 moon_orange 阅读(47) 评论(0) 推荐(0) 编辑
摘要: connection reset (by peer) 服务端主动close连接,发送fin报文。客户端回复ack,并进入close_wait。此时,若客户端还在读数据,报错connection reset;若客户端还在写数据,报错connection reset by peer。 https://w 阅读全文
posted @ 2022-11-30 23:45 moon_orange 阅读(19) 评论(0) 推荐(0) 编辑
摘要: socket 参数 MSG_OOB 其实MSG_OOB并不是真正意义的"带外数据(out-of-band),真正意义上的out-of-band需要通过单独的通信路径高速传输数据,但TCP不提供,只是利用TCP的紧急模式传输数据。 MSG_OOB的意义在于督促对方接收数据,TCP的顺序传输特性依然保持 阅读全文
posted @ 2022-10-07 16:19 moon_orange 阅读(48) 评论(0) 推荐(0) 编辑
摘要: New 通过reflect.Type创建对应的对象,比如: func new(typ reflect.Type) (v reflect.Value) { if typ.Kind() == reflect.Ptr { v = reflect.New(typ.Elem()) } else { v = r 阅读全文
posted @ 2022-09-12 23:32 moon_orange 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 本文参照geektutu的geerpc实现,总结一下其实现的思想。 通信过程 在geerpc中,通信双方定义了一套规则,客户端先向服务端发送json串,json串主要用于告知服务端两件事:1、接下来的请求是rpc请求。2、使用什么方式编解码二进制数据。 服务端接受到json串后,根据客户端传来的co 阅读全文
posted @ 2022-09-11 13:52 moon_orange 阅读(234) 评论(1) 推荐(1) 编辑
摘要: 基础知识 基本概念 字母表 字符串 空串 字符串的长度 字符串x和y的连接 字符串x的n次幂 集合A和B的连接 集合A的n次幂 克林闭包和正闭包 有穷自动机 确定的有穷自动机 练习题 https://www.youtube.com/watch?v=5-eMdNwcIck 阅读全文
posted @ 2022-08-30 10:27 moon_orange 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 记录学习rust过程中,与其他语言不同之处,和rust自身的精髓。 变量遮蔽 在rust中,使用let重新对变量赋值,会导致内存的再分配,新的变量地址将与原变量地址不同。 let a = 1; let a = a + 1; 如果是可变变量的重新赋值,且没使用let,这将会在原变量内存处重写值,前后内 阅读全文
posted @ 2022-08-24 20:38 moon_orange 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 第二章 信息的表示和处理 2.1 信息存储 2.1.1 十六进制表示法 16进制和2进制相互转换 2.1.2 字数据大小 不同类型的变量在32位机器和64位机器上的变化、程序从32位机器迁移到64位机器可能引发错误。 2.1.3 寻址和字节顺序 大端(bit endian)、小端(little en 阅读全文
posted @ 2022-06-13 16:47 moon_orange 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 思路: (1)编写子程序连续显示a~z (2)显示一个字符后,让字符停留几秒再显示下一个字符 (3)不安装int 9中断例程,而是直接修改向量表。(修改int 9向量表前要设置IF=0,修改后要设置IF=1) (4)在修改向量表之前要保存原有int 9例程的地址 (5)在自定义的中断例程中,需要调用 阅读全文
posted @ 2022-06-08 19:31 moon_orange 阅读(191) 评论(0) 推荐(0) 编辑