操作系统L22
Page Replacement Mechanism
- 页面守护进程在开始时初始化;
- 页面守护进程定期检查页面使用情况(100ms);如果免费页面数量不足,它将释放更多页面
- 四种类型的页面:
- unreclaimable 不可恢复:例如,锁定的页面、内核模式堆栈;
- swappable 可交换:回收前必须回写
- syncable:脏的必须写回
- discardable 可丢弃:可立即回收。
Page Replacement Algorithm
- 使用增强的LRU算法,每页维护两个标志:活动/非活动和引用或未引用。
- 在第一次扫描中,页面的参考位被清除。
- 如果在第二次扫描期间,页面被引用,则页面将被移动到不太可能回收的状态。否则,页面将移动到更有可能回收的状态。

Linux I/O
- Linux将设备(I/O)集成到文件系统中,称为特殊文件 special files
- 阻止特殊文件 block special files -- 磁盘等。
- 字符特殊文件 character special files -- 键盘、打印机、鼠标等。

Input/Output System Calls in Linux
- Linux系统中的每个I/O设备通常都有一个与之关联的特殊文件。
- 大多数I/O都可以通过使用适当的文件来完成。
- 某些特殊文件需要特殊的POSIX调用。

Implementation of Input/Output in Linux
- 每个特殊文件都与处理相应设备的设备驱动程序相关联。
- 主要设备编号——用于识别设备类型
- 次要设备编号——用于识别相同类型的设备
- 系统将索引到字符设备的哈希表中以选择适当的结构,然后调用相应的函数来执行工作。

The Linux File System
- 文件可以在目录中分组;目录存储为文件;目录可以包含子目录。
- 根目录名为/(斜杠),并且/字符也用于分隔目录名。


Stat System Call
对于每个文件,Linux都会记录其文件类型、大小、上次修改时间等,可以使用stat系统调用查看这些文件

Some System Calls for Directories
mkdir,rmkdir:创建和销毁目录(目录只有在为空时才能删除) link:创建链接;取消链接:删除链接 chdir:更改工作目录 opendir、closedir、readdir、rewinddir:用于读取目录

The Linux Ext2 File System
- block 0:包含启动计算机的代码
- superblock:包含有关文件系统布局的信息(i节点数、磁盘块数等)
- group descriptor:包含有关位图位置、组中空闲块和i节点的数量等信息。
- two bitmaps:分别跟踪空闲块和空闲i节点
- i-nodes:包含记帐信息以及足够的信息来定位保存文件数据的所有磁盘块
- data blocks:存储所有文件和目录的区域

- 目录文件允许最多255个字符的文件名。
- 每个目录都由整数个磁盘块组成,因此可以将目录以原子方式写入磁盘。
- 文件和目录的条目在目录中按未排序的顺序排列。
- 条目不能跨越磁盘块。

The Structure of I-Node
i-node放在i-node表中,i-node表是一种内核数据结构,用于保存当前打开的文件和目录的所有i-node。

如果一个块大小为1KB,地址长度为4字节,那么一个文件最多可以包含以下i节点索引多大

Ans: 16843020KB ≈ 16448.3MB ≈ 16.1GB
Security in Linux
- Linux系统的用户社区由一定数量的注册用户组成,每个用户都有一个唯一的UID(用户ID),它是一个介于0和65535之间的整数。
- 用户可以被组织成多个组,这些组也用称为GID(组ID)的16位整数进行编号。
- Linux中的基本安全机制很简单。每个进程都携带其所有者的UID和GID。

Security System Calls in Linux
- chmod:最常用的一种,用于更改保护模式
- access:查看是否允许使用真实UID和GID进行特定访问
- getuid、geteuid、getgid、getegid:返回真实有效的uid和gid
- chown、setuid、setgid:仅允许超级用户更改文件的所有者,以及更改进程的UID和GID

问题

守护进程优先级很低

- block 0
- no





本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Yeの博客!