摘要: 十五.套接字和标准IO 1.标准IO函数 标准函数的优点 具有良好的移植性 标准IO会提供缓冲,可提高性能 标准函数的缺点 不容易进行双向通信 有时会频繁调用fflush函数 需要传入FILE指针 2.使用标准IO函数 fd-->FILE* #includes<stdio.h> /* 失败返回NUL 阅读全文
posted @ 2024-07-03 00:12 INnoVation-V2 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 零、Linux文件基本操作 在Linux平台,可以认为socket是一种特殊的文件,使用相同的API进行操作。 1.文件描述符 用一个数字指代某个文件,对文件描述符进行操作,就会修改文件内容, 每个进程的文件描述符都是从0开始且独享的 有3个特殊的文件描述符无需创建即可使用 文件描述符 对象 0 标 阅读全文
posted @ 2024-07-03 00:11 INnoVation-V2 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 五.TCP原理 5.1 TCP Socket中的IO缓冲 TCP Socket的数据无边界,即write和read次数并不对应,多次发送的数据,可以通过read一次完成读取,一次发送的数据,也可以每次接收一部分,多次完成读取。 这主要是通过IO缓冲完成的。 调用write函数时,数据并未发送,而是移 阅读全文
posted @ 2024-07-03 00:11 INnoVation-V2 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 十.多进程编程 1.创建进程 #include<unistd.h> //成功0,失败-1 pid_t fork(void); //父进程返回子进程ID,子进程返回0 2.僵尸进程 子进程有两种结束方式 1.调用exit函数并传递参数 exit(1); 2.main函数中执行return语句返回值 r 阅读全文
posted @ 2024-07-03 00:11 INnoVation-V2 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 错误信息 /Library/Java/JavaVirtualMachines/zulu-21.jdk/Contents/Home/bin/java -javaagent:/Users/liuyu/Applications/IntelliJ IDEA Ultimate.app/Contents/lib 阅读全文
posted @ 2024-06-21 10:35 INnoVation-V2 阅读(12) 评论(0) 推荐(0) 编辑
摘要: IDEA 2024 配置 Flink Scala开发环境 一、环境 IntelliJ IDEA 2024.1 (Ultimate Edition) 项目JDK版本:Zulu JDK11 Scala 2.12.19 Scala编译ServerJDK版本: JDK21 Flink 1.19.1 二、步骤 阅读全文
posted @ 2024-06-20 18:38 INnoVation-V2 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 一.基础 用户线程状态 RUNNING,线程当前正在某个CPU上运行 RUNABLE,线程还没有在某个CPU上运行,但是一旦有空闲的CPU就可以运行 SLEEPING,这节课不介绍, 一. 定时器中断线程切换 防止个别程序长时间占有线程导致其他线程饿死,通过定时器中断定时释放线程资源 定时器中断是由 阅读全文
posted @ 2024-04-21 00:20 INnoVation-V2 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 一.寄存器 1.通用寄存器 2.特殊寄存器 stvec(Supervisor Trap Vector) 内核在这里写入trap处理程序的地址;RISC-V会跳转到stvec中的地址来处理trap,xv6的stvec就是trampoline page的起始地址 sepc 发生trap时,RISC-V将 阅读全文
posted @ 2024-04-21 00:19 INnoVation-V2 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 一.设置中断 1.start.c\start() // 默认所有trap在机器模式下处理 // 这里将trap的处理托管给Supervisor mode w_medeleg(0xffff); w_mideleg(0xffff); // 设置SIE寄存器接收外部,软件和定时器中断, w_sie(r_s 阅读全文
posted @ 2024-04-21 00:18 INnoVation-V2 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 5.系统调用如何安全地获取参数 直接传递给kernel数据的地址(指针)?, 内核和用户的页表不同,不能直接访问用户地址 可能会传递内核内存地址,直接访问就是安全漏洞 因此内核不能使用普通指令从用户提供的地址加载或存储。 内核实现了一些函数,可以安全地在用户提供的地址之间传输数据。 fetchstr 阅读全文
posted @ 2024-04-21 00:18 INnoVation-V2 阅读(6) 评论(0) 推荐(0) 编辑