代码拉取完成,页面将自动刷新
CPU
要从用户态转为核心态, 中断可以使CPU
从用户态切换为核心态, 使操作系统获得计算机的控制权. 有了中断, 才能实现多道程序的并发执行CPU
,处理器接收到中断后,会马上向操作系统反映此信号的到来CPU
立即进入核心态内核
,内核的接口被称为系统调用**(system call**)系统调用
"来操作计算机资源。计算机中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成,这样可以保证系统的稳定性和安全性,防止用户进行非法操作。TimeSlice
,指的是分时复用过程中每个进程允许持续运行的最大时间配额单位。也就是说,如果A进程持续运行了一个TimeSlice
,那么它必须考虑让出CPU资源给B进程linux
把所有的线程都当做进程来实现.内核并没有准备特别的调度算法或是定义特别的数据结构来表征线程,相反线程仅仅被视为一个与其它进程共享某些资源的进程cpu
执行单元, 也是程序执行流的最小单位4GB
是32位系统上可以寻址的最大内存(2的32次方 = 4GB
)4096 Bytes
也就是4KB
,512 Bytes
)是磁盘最小的物理存储单元,操作系统将相邻的扇区组合在一起,形成一个块,对块进行管理。每个磁盘块可以包括 2、4、8、16、32 或 64 个扇区。磁盘块是操作系统所使用的逻辑概念,而非磁盘的物理概念512 Bytes
。 值得注意的是, 操作系统是不直接与扇区交互的,而是与多个连续扇区组成的磁盘块交互/root/data/db.txt
这个文件时,操作系统会去/root/data
这个文件夹下的目录表中找到db.txt
文件所对应的目录项, 然后将目录项中的信息复制到内存中的打开文件表中, 目录项中存储了文件的必要信息, 通过目录项才能找到文件在磁盘中存储的具体数据系统打开文件表
和进程打开文件表
, 前者存储了系统当前所打开的所有文件信息, 而后者只存储了进程当前所打开的文件信息inode
,用来记录文件的元信息,比如 inode
编号、文件大小、访问权限、创建时间、修改时间、数据在磁盘的位置等等。索引节点是文件的唯一标识,它们之间一一对应,也同样都会被存储在硬盘中,所以索引节点同样占用磁盘空间。目录项,也就是 dentry
,用来记录文件的名字、索引节点指针以及与其他目录项的层级关联关系。多个目录项关联起来,就会形成目录结构,但它与索引节点不同的是,目录项是由内核维护的一个数据结构,不存放于磁盘,而是缓存在内存。write
函数往磁盘写数据时, 数据并不是立马写入磁盘的, 这涉及到一个概念延迟写
, 大部分情况都是写入到PageCache
中就返回了, 这时并没有真正写入磁盘。我们的数据会在下列时机下被真正发起写磁盘IO请求: 1, 发现PageCache
中脏页占比太多 , 2, 超过了脏页刷新时间,比如30秒, 这样做的目的是减少磁盘IO,然后一次性写入到磁盘块设备
和 字符设备
块设备把信息存储在固定大小的块中, 每个块都有自己的地址, 所有传输以一个或多个完整的块为单位, 硬盘是属于块设备, 字符设备以字符为单位发送或接收一个字符流, 字符设备是不可寻址的, 打印机, 鼠标 都是字符设备此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。