操作系统学习
文章平均质量分 86
学习计算机操作系统中,记录一些遇到的问题和笔记
礼拜五&
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
进程间通信之共享内存
共享内存是高效的进程间通信机制,允许多个进程直接访问同一块物理内存区域。其工作原理是通过shmget()创建共享内存段,shmat()将其映射到进程虚拟地址空间。内核使用shmid_kernel结构管理共享内存,并通过内存文件系统(shmem)实现跨进程映射。具体流程包括:参数校验、权限检查、内核对象锁定、文件结构准备和虚拟内存映射(do_mmap)。该机制避免了数据拷贝,但需处理并发访问问题。系统调用最终通过ipc_namespace实现资源隔离,确保安全性和高效性。原创 2025-06-23 15:30:37 · 1286 阅读 · 0 评论 -
Linux进程间通信——信号
假设我们有一个进程A会从tap网卡中读取数据,main函数里面调用系统调用通过中断陷入内核按照系统调用原理,将用户态栈的信息保存在 pt_regs 里面,也即记住原来用户态是运行到了 line A 的位置在内核中执行系统调用读取数据当发现没有什么数据可读取的时候进入睡眠状态,并且调用schedule()让出CPU将进程状态设置为可中断的睡眠状态TASK_INTERRUPTIBLE,也即如果有信号来的话是可以唤醒它。原创 2025-06-21 10:50:54 · 1195 阅读 · 0 评论 -
管道型进程间通信
Linux管道机制解析:进程间通信的桥梁管道的本质是一种进程间通信机制,由UNIX早期开发者道格拉斯·麦克罗伊提出,用于将一个程序的输出作为另一个程序的输入。Linux实现了两种管道类型:匿名管道和命名管道。两种管道最终都通过pipefs虚拟文件系统实现,核心是pipe_buffer内存缓冲区和pipefifo_fops操作集合。匿名管道侧重临时通信,命名管道则提供了更灵活的持久化通信方案。原创 2025-06-18 11:14:35 · 626 阅读 · 0 评论 -
静态链接和动态链接
静态链接和动态链接的简要介绍原创 2025-06-13 13:37:35 · 915 阅读 · 0 评论 -
Linux内核初始化剖析
linux内核的初始化,start_kernel1函数的详析原创 2025-06-04 09:51:48 · 373 阅读 · 0 评论 -
线程的两种实现方式
线程的两种实现方式——内核支持线程(kernal Supported Thread, KST), 用户级线程(User Level Thread, ULT)原创 2025-05-15 21:49:18 · 581 阅读 · 0 评论 -
用户态和内核态
(1)特权指令是指 具有特殊权限的指令,如:清除内存,置时钟,分配系统资源,修改虚存的段表或页表,修改用户的访问权限等,由于这些指令的权限过大,使用不当会导致难以想象的灾难,甚至于整个系统崩溃。例如,当用户程序通过系统调用请求OS服务时,系统必须从用户态切换到内核态,以响应请求。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件(自愿中断),将操作系统转换为内核态,称为。当计算机系统执行用户程序时,系统处于用户态。,在用户态下使用特权指令时,将产生中断以阻止用户使用特权指令。原创 2025-05-15 14:36:14 · 471 阅读 · 0 评论 -
中断隐指令
中断隐指令原创 2025-05-13 13:13:13 · 1579 阅读 · 0 评论
分享