![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
OS
文章平均质量分 58
OS 操作系统
cpuCode
站在巨人的肩上行走 https://github.com/CPU-Code
展开
-
OS 导航
注意点 :原创 2021-02-20 21:14:10 · 259 阅读 · 0 评论 -
OS IO控制方式
处理控制器的寄存器的方式 :中断分 :DMA :DMA 工作过程 :原创 2023-07-16 14:53:55 · 429 阅读 · 1 评论 -
OS Reactor
Reactor (Dispatcher) : 对事件反应, 来个事件就响应。原创 2023-07-16 14:46:38 · 213 阅读 · 0 评论 -
OS IO多路复用
I/O 多路复用技术 : 只用一个进程来维护多个 Socket。原创 2023-07-16 14:45:49 · 349 阅读 · 1 评论 -
OS 大文件传输
传输大文件的, 用异步I/O+直接I/O 替代零拷贝。异步 I/O 没用到 PageCache。原创 2023-07-16 14:45:13 · 236 阅读 · 1 评论 -
OS IO调度算法
磁盘调度算法目的 : 提高磁盘的访问性能。原创 2023-07-16 14:44:25 · 498 阅读 · 1 评论 -
OS 设备控制器
块设备 : 数据较大 , 一般有数据缓冲区。原创 2023-07-16 14:43:18 · 271 阅读 · 1 评论 -
OS 文件空闲空间
空闲表法 : 将所有空闲空间建立一张表,表内容 : 空闲区的第一个块号 , 块数。空闲链表法 : 通过链表管理空闲空间,每个空闲块中有个指针指向下个空闲块。Linux 文件系统用位图方式 : 管理空闲空间。位图 : 用二进制位表示磁盘的盘块的使用情况。原创 2023-07-16 14:38:00 · 220 阅读 · 1 评论 -
OS 文件存储方式
非连续空间存放方式分 : 链表方式 , 索引方式。原创 2023-07-16 14:37:20 · 454 阅读 · 1 评论 -
OS 文件系统组成
文件系统 : 把多个扇区 组成一个逻辑块 (数据块)原创 2023-07-16 14:36:38 · 304 阅读 · 1 评论 -
OS 文件IO
read 请求在数据未准备好时 , 就返回,并轮询内核是否准备好数据,当数据准备好,等待内核将数据拷贝到应用程序缓冲区,read 才返回结果。read 线程会阻塞,自到内核准备好数据,并将数据从内核缓冲区拷到应用程序的缓冲区中完成,才返回。阻塞 I/O , 非阻塞 I/O , 基于非阻塞 I/O 的多路复用都是同步调用。I/O 多路复用 : 当内核数据准备好时,通过 IO 事件通知应用操作。异步 I/O : 内核数据准备好 , 数据从内核态拷贝到用户态都不等待。原创 2023-07-13 19:55:19 · 260 阅读 · 1 评论 -
OS 零拷贝
缺点 : 数据传输 , 要 CPU 全程接入 , 浪费 CPU 资源传统 I/O : 要进行 4 次用户/内核态的上下文切换 , 4 次数据拷贝。原创 2023-07-13 19:54:37 · 326 阅读 · 1 评论 -
OS malloc
malloc() : 分配虚拟内存。原创 2023-07-13 19:51:27 · 271 阅读 · 1 评论 -
OS 乐观/悲观锁
【代码】OS 乐观/悲观锁。原创 2023-07-13 19:49:54 · 502 阅读 · 0 评论 -
OS 读写锁
场景: 适合读多写少的场景根据实现,读写锁分: 读优先锁 , 写优先锁。原创 2023-07-13 19:48:42 · 302 阅读 · 1 评论 -
OS 互斥/自旋锁
自旋锁 : 通过 CAS (Compare And Swap) 在用户态完成加锁/解锁。互斥锁开销成本 : 2 次线程上下文切换。原创 2023-07-13 19:46:53 · 121 阅读 · 1 评论 -
OS Linux 内存布局
Linux 内存主要用 : 页式内存管理。原创 2023-07-12 20:25:11 · 183 阅读 · 1 评论 -
OS 段页内存
段页式内存管理实现方式 :地址结构 :段页式地址变换的三次内存访问:原创 2023-07-12 20:24:08 · 283 阅读 · 1 评论 -
OS 多级页表
多级页表 (Multi-Level Page Table) : 解决简单分页的空间问题利用程序局部性 , 当需要时 , 才会创建二级页表将二级分页升级成多级页表 , 利用局部性 , 内存空间会更小。原创 2023-07-12 20:21:54 · 438 阅读 · 1 评论 -
OS 进程通信方式
消息队列的通信模式 : 分一个个数据单元 , 发送内核 , 进程读取 , 就删除该数据单元。共享内存 : 通过虚拟地址空间映射到相同的物理内存 , 进程互相通过共享物理内存通信。信号 : 唯一的异步通信机制 , 一般异常情况下通知进程。信号量 : 整型的计数器,用于实现进程间的互斥与同步。Socket : 不同主机上的进程之间通信。命名管道 (FIFO) : 数据先进先出。父进程 fork 子进程。原创 2020-06-05 15:03:50 · 549 阅读 · 1 评论 -
Linux 磁盘扩展
Linux 磁盘扩展创建物理卷查看磁盘创建物理卷扩展到卷组分配给逻辑卷重新加载大小创建物理卷查看磁盘lsblk创建物理卷pvcreate /dev/sdb查看 物理卷pvscan扩展到卷组查看 卷组vgscan将物理卷的空间扩展到卷组vgextend centos /dev/sdb分配给逻辑卷lvscanlvextend -l +100%FREE /dev/centos/root重新加载大小df逻辑卷默认格式化 : xfsxfs_grow原创 2022-04-02 16:54:30 · 299 阅读 · 0 评论 -
unix高级环境编程编译错误 undefined reference to `err_sys error: ld returned 1 exit status
/tmp/ccNLM6c6.o: In function `main':unlink.c:(.text+0x2e): undefined reference to `err_sys(char const*, ...)'unlink.c:(.text+0x52): undefined reference to `err_sys(char const*, ...)'collect2: ...原创 2020-04-04 20:58:28 · 1538 阅读 · 0 评论 -
Linux系统编程手册 错误 undefined reference to `usageErr‘ errExit errExit getLong cmdLineErr collect2: erro
/tmp/ccJxsZJ1.o: In function `main':seek_io.c:(.text+0x4a): undefined reference to `usageErr'seek_io.c:(.text+0x86): undefined reference to `errExit'seek_io.c:(.text+0x11d): undefined reference to ...原创 2020-03-29 16:51:36 · 1228 阅读 · 3 评论 -
GTK+应用程序中创建多线程 canberra-gtk-module error:gtk/gtk.h: No such file or directory #include gtk/gtk.h
一般 GUI 应用程序默认只有一个执行线程, 每次只执行一个操作, 如果某个操作耗时较长, 则用户界面会出现冻结的现象 所以若某个操作的时间比较长一般会创建线程去处理 GTK+应用程序中创建多线程 除了通过 POSIX 线程函数 pthread_create() 创建线程外 ,实际编程时 ,还可以通过 GTK+ 线程函数 g_thread_create()...原创 2020-03-28 15:17:28 · 1704 阅读 · 0 评论 -
修改 .gitignore 未生效的解决方案
修改 .gitignore 未生效的解决方案把某些目录或文件加入忽略规则,发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:添加 到 .gitignore**/mvnw**/mvnw.cmd**/.mvn**/target/.idea**/.gitignore移除缓存git rm -r --cached .原创 2021-07-13 22:25:06 · 392 阅读 · 0 评论 -
OS 进程控制
进程控制块 (process control block , PCB) 信息 :PCB 组织方式 :链表例子 :组织形式 :原创 2019-12-10 19:52:11 · 183 阅读 · 1 评论 -
Typora+PicGo+Gitee+ node.js四大神器 实现自动图片上传功能 妈妈再也不用担心我的图床的问题了 图解过程 容易到没有朋友
粉丝不过WTypora+PicGo+Gitee+node.js实现图片上传功能首先准备Typora + PicGo + Gitee + node.js 四大法器Typora: https://typora.io/PicGo: https://github.com/Molunerfinn/PicGo/releases安装的位置要记好, 后面会用到Gitee: https://gitee.com/node.js: https://nodejs.org/zh-cn/进入PicGo, .原创 2020-06-21 21:37:32 · 1900 阅读 · 19 评论 -
OS 内存分段
程序通过分段 (Segmentation) , 能分成 : 代码分段、数据分段、栈段、堆段虚拟地址的分段组成 : 段选择因子 , 段内偏移量。原创 2019-12-10 19:37:48 · 1254 阅读 · 1 评论 -
史上最强教你如何使用vscode 和 gitee 和 git 三大法器完美搭配,一步步详细图标过程,还不会你砍我
粉丝不过Wgit下载地址: https://git-scm.com/downloads, 安装git时, 记住你安装Git的路径vscode下载地址: https://code.visualstudio.com/下载完后, 并默认安装好, 你就可以进入配置git的环境变量了, 点击win, 点击设置在搜索框里搜索, 高级系统设置点到 高级 , 然后点击 环境变量选择Path 点击编辑浏览路径, 找到你安装git的路径选择你安装 git 的路径, 并找到 ..原创 2020-06-19 21:28:07 · 4892 阅读 · 1 评论 -
OS 进程上下文切换
CPU 上下文切换根据根据任务不同分 : 进程上下文切换、线程上下文切换、中断上下文切换进程的上下文切换 : 从该进程切到另个进程运行。原创 2019-12-10 20:01:54 · 157 阅读 · 1 评论 -
OS进程状态
进程 (Process) : 运行中的程序。状态 : - 运行状态(Running):进程占用 CPU- 就绪状态(Ready):进程为可运行 , 等待 CPU 调度- 阻塞状态(Blocked) : 正等待某事件而暂停运行 (如: 等待输入/输出操作)- 创建状态(new):正被创建- 结束状态(Exit):正消失原创 2019-12-10 20:10:47 · 587 阅读 · 1 评论 -
OS 线程
线程 (Thread) : 独立运行的基本单位同个进程内多个线程之间 , 能共享代码段、数据段、打开文件。原创 2019-12-10 20:13:29 · 259 阅读 · 1 评论 -
OS 线程实现
线程实现方式 :用户/内核线程关系 :一对一 :多对一 :多对多 :线程管理库 : 管理用户线程调度 , 系统不管用户线程优点:用户线程缺点:内核线程 : 由操作系统管理内核线程优点:内核线程缺点:轻量级进程 (Light-weight process , LWP) : 内核支持的用户线程LWP/用户线程关系 : 模式 : 一个线程对应一个 LWP 对应一个内核线程 , 如 : 进程 4 模式 : 多个用户线程对应一个 LWP 对应一个内核线程 , 如 : 进程 2 模式 : 多个用户线程对应到多个 LWP原创 2020-08-01 14:29:36 · 349 阅读 · 1 评论 -
OS进程调度
触发调度状态 :根据处理时钟中断 , 调度算法分 :五种调度原则 :原创 2020-07-30 17:00:54 · 697 阅读 · 1 评论 -
Linux中 ubuntu ctrl+c, ctrl+z, ctrl+d ctrl+/ ctrl+s ctrl+q ctrl+l fg bg 区别 控制字符 stty
在Linux中:# ( kill foreground process ) 发送 SIGINT 信号给前台进程组中的所有进程,强制终止程序的执行ctrl+c# ( suspend foreground process ) 发送 SIGTSTP 信号给前台进程组中的所有进程,# 常用于挂起一个进程,而并非结束进程,用户可以使用使用fg/bg操作恢复执行前台或后台的进程。ctrl+z# ( Terminate input, or exit shell ) 一个特殊的二进制值,表示 EOF,原创 2020-07-28 21:01:47 · 2091 阅读 · 0 评论 -
windows下编写shell在Linux运行时格式问题 \r 错误
windows下编写shell在Linux运行时格式问题\r 错误用vim打开那个执行错误的 sh脚本文件进入最后一行模式下:set ff显示 fileformat=dos解决方法 ::set ff=unix查看是否更改 ::set ff结果 :保存退出即可:x运行, 没有出错* @Author: cpu_code* @Date: 2020-07-29 19:07:52* @LastEditTime: 2020-07-29 19:20:17.原创 2020-07-29 19:21:58 · 518 阅读 · 0 评论 -
OS 互斥/同步
同步 : 并发进程/线程, 在某点要互相等待与互通消息。原创 2020-08-27 13:21:01 · 222 阅读 · 1 评论 -
shell 使用变量 特殊用法 ““ `` ‘ \ () {} 预设变量 环境变量
变量自定义变量定义变量变量名=变量值num=10引用变量$变量名把变量 num 的值付给变量 i i=$num 显示变量使用 echo 命令可以显示单个变量取值echo $num清除变量使用 unset 命令清除变量unset varname变量的其它用法:从键盘输入一个字符串付给变量 stringread string定义一个只读变量, 只能在定义时初始化, 以后不能改变, 不能被清除。readonly var=100使用 export 说明...原创 2020-08-01 14:37:56 · 1812 阅读 · 0 评论 -
OS 内存分页
分页 : 将虚拟/物理内存空间都切成一段固定大小的块 (页 (Page) )页表 : 将虚拟地址 , 物理地址互相映射。原创 2020-07-27 16:24:58 · 190 阅读 · 1 评论 -
OS 调度算法
高响应比优先 (Highest Response Ratio Next, HRRN) 调度算法 : 将响应比优先级最高的进程投入运行。最高优先级 (Highest Priority First , HPF) 调度算法 : 从就绪队列中选择最高优先级的进程运行。多级反馈队列 (Multilevel Feedback Queue) 调度算法 : 时间片轮转算法 , 最高优先级算法结合。时间片轮转 (Round Robin, RR) 调度算法 : 给每个进程分配时间片 (Quantum) 运行。原创 2020-08-01 14:41:58 · 318 阅读 · 1 评论