- 博客(28)
- 收藏
- 关注
原创 socket编程
单播地址指定一个主机的单个接口,广播地址指定网络上的所有主机,多播地址则针对一个多播组中的所有主机。in_addr 应该被赋值为 INADDR_* 之一(例如,INADDR_LOOPBACK),可以使用 htonl(3) 或通过 inet_aton(3)、inet_addr(3)、inet_makeaddr(3) 库函数设置,也可以直接使用名称解析器。3) INADDR_BROADCAST(255.255.255.255)表示任何主机,并且由于历史原因,其在绑定上的效果与 INADDR_ANY 相同。
2025-07-01 22:54:52
636
原创 进程间通信之共享内存
共享内存是高效的进程间通信机制,允许多个进程直接访问同一块物理内存区域。其工作原理是通过shmget()创建共享内存段,shmat()将其映射到进程虚拟地址空间。内核使用shmid_kernel结构管理共享内存,并通过内存文件系统(shmem)实现跨进程映射。具体流程包括:参数校验、权限检查、内核对象锁定、文件结构准备和虚拟内存映射(do_mmap)。该机制避免了数据拷贝,但需处理并发访问问题。系统调用最终通过ipc_namespace实现资源隔离,确保安全性和高效性。
2025-06-23 15:30:37
989
原创 Linux进程间通信——信号
假设我们有一个进程A会从tap网卡中读取数据,main函数里面调用系统调用通过中断陷入内核按照系统调用原理,将用户态栈的信息保存在 pt_regs 里面,也即记住原来用户态是运行到了 line A 的位置在内核中执行系统调用读取数据当发现没有什么数据可读取的时候进入睡眠状态,并且调用schedule()让出CPU将进程状态设置为可中断的睡眠状态TASK_INTERRUPTIBLE,也即如果有信号来的话是可以唤醒它。
2025-06-21 10:50:54
1047
原创 管道型进程间通信
Linux管道机制解析:进程间通信的桥梁管道的本质是一种进程间通信机制,由UNIX早期开发者道格拉斯·麦克罗伊提出,用于将一个程序的输出作为另一个程序的输入。Linux实现了两种管道类型:匿名管道和命名管道。两种管道最终都通过pipefs虚拟文件系统实现,核心是pipe_buffer内存缓冲区和pipefifo_fops操作集合。匿名管道侧重临时通信,命名管道则提供了更灵活的持久化通信方案。
2025-06-18 11:14:35
572
原创 Linux 下的COW机制(copy-on-write)
Linux通过MMU进行虚拟地址到物理地址的转换,当进程执行fork()后,会把页中的权限设置为RD-ONLY(只读)。
2025-06-06 14:37:28
935
原创 操作系统中的设备管理,Linux下的I/O
其中,设备独立性软件、设备驱动程序、中断处理程序属于操作系统的内核部分,即“I/O 系统”,或称“I/O 核心子系统”。
2025-06-05 14:32:50
1271
原创 线程和线程池
A“线程”没什么好说的,是 CPU 调度的最小单位,也是操作系统的一种抽象资源。“池”?水池装着水,线程池则是装着线程,是一种抽象的指代。抽象的来说,可以当做是一个池子中存放了一堆线程,故称作线程池。简而言之,线程池是指代一组预先创建的、可以复用的线程集合。这些线程由线程池管理,用于执行多个任务而无需频繁地创建和销毁线程。这是一个典型的线程池结构。线程池包含一个任务队列,当有新任务加入时,调度器会将任务分配给线程池中的空闲线程进行执行。线程在执行完任务后会进入休眠状态。
2025-06-03 10:44:56
854
原创 线程的两种实现方式
线程的两种实现方式——内核支持线程(kernal Supported Thread, KST), 用户级线程(User Level Thread, ULT)
2025-05-15 21:49:18
435
原创 用户态和内核态
(1)特权指令是指 具有特殊权限的指令,如:清除内存,置时钟,分配系统资源,修改虚存的段表或页表,修改用户的访问权限等,由于这些指令的权限过大,使用不当会导致难以想象的灾难,甚至于整个系统崩溃。例如,当用户程序通过系统调用请求OS服务时,系统必须从用户态切换到内核态,以响应请求。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一个中断事件(自愿中断),将操作系统转换为内核态,称为。当计算机系统执行用户程序时,系统处于用户态。,在用户态下使用特权指令时,将产生中断以阻止用户使用特权指令。
2025-05-15 14:36:14
350
原创 day3_编译原理学习
龙书在第二章中讲述了 制成语法制导翻译器的步骤和要素,并对语法分析器和词法分析器的概念做了先导,以及使用JAVA简易实现了语法分析器和词法分析器.本次笔记记录了龙书部分第二章和第三章以及哈工大课程第三部分视频的要点。
2024-08-30 21:44:46
785
2
原创 day2_编译原理学习
字母表是一个有穷符号集合符号:字母, 数字,标点符号等例如:二进制字母表{0,1},ASCII串是字母表中符号的一个有穷序列。串s的长度,通常记作|s|,是指s中符号的个数。空串是长度为0的串,用表示文法用于组织编译器的前端,它自然地描述了大多数程序设计语言的层次化语法结构。一个上下文无关文法的由四个元素构成:(1)一个终结符号集合,有时也称为“词法单元”。终结符号式该文法所定义的语言的基本符号的集合。(2)一个非终结符号集合,有时也称为“语法变量”。每个非终结符号串的集合。
2024-08-28 21:09:19
922
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人