3.1 术语3.2 背景3.2.1 内核内核管理者cpu调度,内存,文件系统,网络协议,以及系统设备(磁盘,网络接口等)。通过系统调用提供访问设备和内核服务的机制。内核执行:内核的执行主要是按需的。例如,当用户级别的程序发起一次系统调用,或者设备发送一个中断时,一些内核线程会异步的执行一些系统维护工作。时钟:经典的unix内核的一个核心组件是 clock() 例程,从一个计时器中断执行。历史上它每秒执行的次数为 60100或者1000次,每次执行称为一次tick。功能包括更新系统时间,计时器和线程调度时间片的到时结束,维护cpu统计数据,以及执行callout(内核调度例程)。内核态:内核是唯一运行在特殊cpu模式的程序,这一特殊的cpu模式叫做内核态。无论是用户态还是内核态,都有自己的软件执行上下文,包括栈和寄存器。这些状态切换上下文是会耗时的(cpu周期)。3.2.2 栈栈用函数和寄存器的方式记录了线程的执行理事。当函数被调用的时候,cpu当前的寄存器组(保存cpu状态)会存放在栈里,在顶部会为线程的当前执行添加一个新的栈帧。函数通过调用cpu指令"return"终止执行,从而清除当前的栈,执行会返回到之前的栈,并恢复相应的状态。如何读栈:栈的顶部通常出现在第一行。从左到右,分别是 内核模块的位置(kernel),指令的偏移量(0x1,这里指的是函数内指令的地址)。父函数在下面,从上往下阅读栈。用户栈和内核栈:在执行系统调用的时候,一个进程的线程有两个栈:一个用户级别的栈和一个内核级别的栈。3.2.2 中断和中断线程除了响应系统调用外,内核也要响应设备的服务请求,这称为中断,它会中断当前的执行。中断服务程序需要通过注册来处理设备中断。这类程序的设计要点是需要运行的尽可能快,以减少对活动线程中断的影响。如果中断要做不少工作,尤其是还可能被锁阻塞,那么最好用中断线程来处理,由内核来调度。3.2.4 中断优先级中断优先级(IPL)表示的是当前活跃的中断服务程序的优先级。3.2.5 进程 进程是用以执行用户级别程序的环境。进程创建:正常情况下通过系统调用 fork() 来创建。fork() 用自己的进程号创建自身进程的一个复制,然后通过系统调用 exec() 才能开始执行不同的程序。进程生命周期:idle, ready to run, on-proc, sleep, zombieon-proc 是指进程运行在处理器上。ready-on-run 是指进程可以运行,但是还在cpu的运行队列里等待cpu。IO阻塞,让进程进入sleep状态直到IO完成进程被唤醒。zombie状态发生在进程终止,这时进程等待自己的状态被父进程读取,或者直至被内核清楚。3.2.6 系统调用 系统调用请求内核执行特权的系统例程。3.2.7 虚拟内存 虚拟内存是主存的抽象,提供进程和内核,它们自己的近乎是无穷的和私有的主存视野。它还支持主存的超额使用,如果需要,操作系统可以将虚拟内存在主存和二级存储(磁盘)之间映射。3.2.8 内存管理 当虚拟内存用二级存储作为主存的扩展时,内核会尽力保持最活跃的数据在主存中。有以下两个内核例程做这件事:1.交换,让整个进程在主存和二级存储之间做移动2.换页,移动称为页的小的内存单元(4kb)3.2.9 调度器unix及其衍生的系统都是分时系统,通过划分执行时间,让多个进程同时运行。1.cpu密集型应用程序执行繁重的计算。2.IO密集型应用程序执行IO,计算不多,这些都需要 低延时的响应。3.2.10 文件系统 文件系统是作为文件和目录的数据组织。VFS:虚拟文件系统(vfs),是一个对文件系统类型做抽象的内核界面。IO栈:基于存储设备的文件系统,从用户级软件到存储设备的路径被称为IO栈。3.2.11 缓存 3.2.12 网络 连接网络的物理设备是网络接口,一般使用网络接口卡(NIC)。3.2.13 设备驱动 设备驱动是用于设备管理和设备IO的内核软件。3.2.14 多处理器 3.2.15 抢占 3.2.16 资源管理 3.2.17 观测性3.3 内核 3.3.1 UNIX3.3.2 基于Solaris3.3.3 基于Linux 3.3.4 差异

3.性能之巅 洞悉系统、企业与云计算 --- 操作系统相关推荐

  1. 《性能之巅—洞悉系统、企业与云计算》读书笔记---第二章

    目录 第二章  方法 2.1术语 2.2模型 2.3概念 2.4视角 2.5方法 2.6建模 2.7容量规划 2.8统计 2.9监视 2.10可视化 第二章  方法 面对一个性能不佳且复杂的系统环境时 ...

  2. 性能之巅:洞悉系统、企业与云计算——文件系统

    性能之巅:洞悉系统.企业与云计算--文件系统 术语 模型 文件系统接口 文件系统缓存 二级缓存 概念 文件系统延时 缓存 随机与顺序 I/O 预取 预读 写回缓存 同步写 单次同步写 同步提交已写内容 ...

  3. 性能之巅 洞悉系统、企业与云计算(完整版)

    性能之巅  洞悉系统.企业与云计算书籍,主要讲解大型网络.云计算.大数据和虚拟计算机系统的快速部署已经为性能优化带来了新的挑战.本书为此提供了解决方案.国际知名的性能优化专家Brendan Gregg ...

  4. 《性能之巅—洞悉系统、企业与云计算》读书笔记---第一章

    目录 第一章  绪论 1.1系统性能 1.2人员 1.3事情 1.4视角 1.5性能是充满挑战的 1.6延时 1.7动态跟踪 1.8云计算 1.9案例研究 第一章  绪论 1.1系统性能 1.2人员 ...

  5. 性能之巅——洞悉系统、企业与云计算 Brendan Gregg

    1.绪论 系统性能是对整个系统的研究,包括所有的硬件组件和整个软件栈.所有数据路径上和软硬件上所发生的的事情都包括在内,都可能影响性能 性能领域包含以下方面 设置性能目标和建立性能模型 基于软件或硬件 ...

  6. 性能之巅:Linux网络性能分析工具-netstat,ifconfig,nicstat,traceroute,tcpdump

    原文地址:http://www.infoq.com/cn/articles/linux-networking-performance-analytics 本文介绍基于Linux操作系统的网络性能分析工 ...

  7. 性能之巅:Linux网络性能分析工具

    编者按:InfoQ开设新栏目"品味书香",精选技术书籍的精彩章节,以及分享看完书留下的思考和收获,欢迎大家关注.本文节选自格雷格著<性能之巅:洞悉系统.企业与云计算>中 ...

  8. 性能之巅:定位和优化程序CPU、内存、IO瓶颈

    摘要:性能优化指在不影响系统运行正确性的前提下,使之运行得更快,完成特定功能所需的时间更短,或拥有更强大的服务能力. #一.思维导图 #二.什么是性能优化? 性能优化指在不影响系统运行正确性的前提下, ...

  9. 性能之巅:《高性能网站建设指南》读书笔记

    性能之巅:<高性能网站建设指南>读书笔记 前言 去年笔者(Chainn)读完了几本前端性能优化以及HTTP等网络方面的书,并在生产环境做了部分应用.这些书包括<高性能网站建设指南&g ...

  10. 性能优化——性能之巅

    原创 码砖杂役 2019-08-16 20:36:41 性能之巅-优化你的程序 ​ outline:关注&指标&度量,基础理论知识,工具&方法,最佳实践,参考资料 性能优化关注 ...

最新文章

  1. c++list支持索引吗_还在为不懂Python切片操作及原理而苦恼吗?漫画帮你立马理解掌握...
  2. python中分支结构有几种各有什么特点_「武鹏有课」Python分支结构的种类
  3. 解密module_init幕后的故事
  4. Java中的进程与线程
  5. boost::variant2模块转换构造抛出相关的测试程序
  6. linux la 的使用方法,Linux简介及常用命令使用4--linux高级命令与技巧(示例代码)
  7. 关于Error.captureStackTrace
  8. Silverlight 结合WCF Duplex Service聊天程序出炉
  9. classloader类加载机制
  10. 瑞星杀毒软件2007 / 瑞星个人防火墙2007 - 免费试用
  11. 14-英伟达NVIDIA显卡驱动下载与安装
  12. 支持国产自主可控OS——信创服务器操作系统的配置与管理 (统信UOS版)-新书发布
  13. 一文解释Micro-F1, Macro-F1,Weighted-F1
  14. 西电计算机学院通知,西安电子科技大学计算机科学与技术学院关于发放2020级硕士研究生正式录取通知书的通知...
  15. mysql备份到邮箱_mysql自动备份发邮件到指定邮箱
  16. 富而喜悦2023直播盛典 唐苓馨主题演说“特别的礼物”!
  17. 域名证书(SSL)格式说明
  18. pytorch提供的maskrcnn训练自己的数据
  19. forwardRef的使用
  20. 【qt开发】qt了解

热门文章

  1. 【转载】文件上传命令rz和下载命令sz的安装
  2. 利用客户端cookie保存用户信息
  3. codevs 2928 你缺什么
  4. Android Studio向项目中导入jar包的方法
  5. 扎心实战案例:麻(shi)雀(zhan)虽小,五脏俱全
  6. MySQL表设计(表的关联关系)
  7. Visual Studio 开发(三):Visual Studio 使用时常见问题解决方案
  8. tkinter中combobox下拉选择控件(九)
  9. Quartz的job中注入的services接口为空的解决办法
  10. 顺序右移数组元素(内测第0届第5题)