![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
《Linux内核设计与实现》笔记
willinux
github地址:https://github.com/stephenix
展开
-
第6章内核数据结构①链表
《Linux内核设计与实现》 第6章内核数据结构①链表 看内核代码经常遇到list_for_each_entry,索性就看一下内核中的数据结构,参考了《Linux内核设计与实现》陈老师的书,也参考了一些博客,最后会一一列出。1 链表链表在Linux内核中经常被使用,随处可见,多为双向循环链表,且和《数据结构》(原创 2014-12-14 22:09:12 · 727 阅读 · 0 评论 -
自旋锁 互斥锁
自旋锁 互斥锁本文从以下3个方面来介绍。 1. 为什么会有自旋锁、互斥锁? 2. 什么是自旋锁、互斥锁? 3. 分别有什么作用?1. 为什么会有自旋锁、互斥锁?讲这些锁之前,先谈以下并发、临界区、同步的概念。1.1 并发 临界区 同步临界区:是操作系统的概念,每个进程中访问共享资源的代码段称为临界区; 并发:分为单处理器和多处理器上的并发。 如果在单处理器主机上发生并发,在这种主机中原创 2015-07-18 20:53:16 · 583 阅读 · 0 评论 -
虚拟内存 物理内存
虚拟内存 物理内存虚拟内存,自然是针对物理内存而言的,理解一个问题时可以从这个问题的对立面去理解。参考[1]参考[1]:虚拟内存使用磁盘作为RAM的扩展,从而有效的增加内存的使用率。内核会把当前未使用的内存块内容写到硬盘中去,让内存可以有其他用户。当原来的内容需要的时候,再重新读回内存。这个对用户来说是完全透明的;Linux下运行的程序只看到大量可用的内存而不会注意到其中有一些内存是暂存在磁盘中。当转载 2015-07-18 22:15:29 · 646 阅读 · 0 评论 -
文件的写与读
文件的写与读《linux内核源代码情景分析》P579,之前看过一次,当时不是很清楚讲,现在回头看了下,有些明白,于是想记录一下心得,甚是开心。 本篇主要叙述页缓存,为什么缓存在页层,如何做页缓存。 有没有想过进程是如何读写文件的呢? 读写文件的进程,目标文件由一个“打开文件号”代表。 为了效率,一些操作系统对文件的读写都是带缓冲的,linux操作系统也不例外。linux文件系统的特色机制:V原创 2015-07-21 19:53:54 · 545 阅读 · 0 评论 -
进程创建
进程创建 fork() copy-on-write原创 2015-07-20 22:38:42 · 632 阅读 · 0 评论 -
僵尸进程 孤儿进程
僵尸进程 孤儿进程面试某拥抱公司,被问到僵尸进程、孤儿进程,之前看到过这个概念,可惜当时没有深入去理解,仅仅是一闪而过,今天来深入理解一下。什么是进程进程和程序的区别是: (1)程序是一个代码指令和数据的集合,这些指令和数据存储在磁盘上的一个可执行镜像中,所以程序是一个静态的实体(可执行镜像是一个可执行文件的内容,源程序经过编译、连接成一个可执行文件后才能运行); (2)进程是处于执行期的程序,转载 2015-09-16 21:29:59 · 540 阅读 · 0 评论