再次拿起《现代操作系统》这本书,精心仔细阅读,又有了几点体会记录一下。

操作系统的功能或者说职责:向下管理资源,向上提供服务接口。OS作为中间层软件。操作系统涉及到的主要内容有进程和线程、文件系统、死锁、内存管理、I/O管理等。

进程和线程涉及到概念、区别、类别等,进程是存在输入输出和状态的一段正在执行的程序,是动态的而非仅仅是静态的程序。进程就涉及到其运行、阻塞和就绪的生命周期,其实程序方面很多都存在生命周期,例如java的诸多框架中例如spring中存在对象的生命周期,structs中请求存在生命周期等。进程中重要的概念是进程表,存储在内存中,其单位是进程表项即entry,看到entry就想起了java中集合类中的entry内部类,java的内部类被很多人推崇而同时又被另外一些人所诟病,其实进程表是所有在内存中的和不再内存中的进程的reference,其内保存了进程的状态数据,说实话表看来真的很给力,在很多地方会看到表的广泛应用和巨大威力,例如数据库的基层就是表当然是关系型数据库,新的NoSQL类型打破了一些传统,例如在网络中表格也起着格式存储数据的作用,现实生活中表格也是重要的。对于线程,有两点很让我感兴趣的方面,一个是用户空间中的线程模型和内核空间中的线程模型,不同的模型应用到了不同的实际操作系统中。另一个是进程之间的通信和同步互斥机制,涉及到中断机制、忙等待、原语、生产者-消费者模型、PV操作、互斥量、管程、屏障等概念。还有进程需要调度算法来进行调度的,因为内存资源有限而且为了最大地提高运行效率最大的利用CPU而导致诸多调度算法,例如先来先服务算法、最短作业优先、最短剩余时间优先、彩票调度等。哲学家就餐问题和读者-写者问题资料也很多。还有进程的互斥和同步、阻塞和非阻塞、同步和异步之间的区别我找了半天才明白。

进程阻塞和非阻塞的区别:http://www.zhihu.com/question/19732473

进程的互斥和同步:http://blog.chinaunix.net/uid-26748613-id-3201137.html

进程的同步与异步:http://blog.sina.com.cn/s/blog_8c0c9acd0101cp3u.html

内存管理方面,涉及到虚拟内存机制、MMU、TLB、分页和分段机制、页面置换算法等问题。我从这章深切体会到两点:一,问题是充满矛盾的,经常是没有最终确定的答案,最重要的分析的过程,提出一种方案分析其涉及的方面,他的优点和缺点,有很多解决方法但是没有完美方案,就像没有银弹一样。哲学中矛盾是一大核心,也是其一些理论支撑的基础,现实中矛盾是无时无刻不有的;第二,在操作系统中,进程/线程是对实际CPU的抽象,地址空间是对物理内存的抽象,文件是对物理内存的抽象,I/O流是对硬件输入输出设备的抽象。而抽象和模拟一直是我对计算机、网络、操作系统、语言等方面的核心认识,而在抽象之后就需要增删改查、管理、优化算法等方面,整个操作系统就是讲这些东西。

文件系统中涉及到磁盘、磁盘管理、文件系统存储模式、高速缓存等。文件系统就联系到数据结构中学到B树、B+树、B*树等数据结构知识。

I/O处理方面,包括中断处理系统、设备驱动程序、与设备无关的I/O软件、用户级I/O软件等软件方面内容和I/O硬件例如DMA、设备驱动、设备控制等。一大感受是DMA控制器中有地址寄存器、计数寄存器、控制寄存器,DMA可以进行独立访问总线,可以进行存储,可以进行控制,不能进行计算,这不就相当于缩减版的CPU吗?他确实分担了部分CPU的工作使得CPU可以做其他工作以提高其利用率。这其中中断起着关键作用,中断控制器属于计算机系统结构方面知识,可是他起着中断接受、排队、屏蔽等作用。

死锁应该是最激动人心的方面,因为诸多算法在其中啊。为了避免死锁,设置安全状态和非安全状态,使用多维度轨迹路线算法,使用银行家算法,并且创建了打破死锁状况的方法,当然书中坦言没办法避免死锁,因为进程是动态,所需资源无法预计,资源是否能用不确定。我比较喜欢算法研究,所以激动人心啊。

总之,操作系统是一种管理软件,他特别像公司,公司的员工是硬件资源,而公司的制度便是这个系统,然而制度是为了做什么的?为了有效配置人员,为了提高效率啊。操作系统也是啊,为了管理资源,为了最大的提高效率,为了给应用软件提供接口。他是一个平台,是软件的根基,是一种先进的理念。

现代操作系统读书笔记相关推荐

  1. 计算机操作系统读书笔记

    第一章 操作系统引论 1.操作系统的基本特性 1.1.并发 并行:并行是指两个或多个事件在同一时刻发生. 并发:两个或多个事件在同一时间间隔内发生. 进程:在系统中能独立的运行并作为资源分配的基本单位 ...

  2. 30天自制操作系统读书笔记(三)

    来吧.第三天. 制作真正的IPL: 作者又是那样,一上来就甩一堆代码,用他的话猜测,下面这段代码应该是用来装载下一个512字节的内容的. MOV AX,0x0820MOV ES,AXMOV CH,0 ...

  3. 计算机操作系统读书笔记___信号量机制

    前言进程同步,衍生阅读互斥和同步区别,互斥锁读写锁自旋锁条件变量 目录 一.信号量机制 1.1 背景 1.2 整型信号量 1.3 记录型信号量 1.4 AND型信号量 1.5 信号量集 一.信号量机制 ...

  4. 《自己动手写操作系统》读书笔记——初识保护模式

    <自己动手写操作系统>读书笔记--初识保护模式 http://www.cnblogs.com/pang123hui/archive/2010/11/27/2309930.html 书本第三 ...

  5. [操作系统] 操作系统真相还原读书笔记三:MBR加载loader到内存并跳转到loader执行

    为什么要有loader程序? 通过操作系统真相还原读书笔记二:编写MBR主引导记录我们已经能够正常运行MBR主引导记录(有些书籍也叫做boot)程序了,但该程序什么也没做.我们的MBR 受限于 512 ...

  6. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  7. 《一个操作系统的实现》读书笔记连载ing……

    从昨天起深陷<一个操作系统的实现>这个书不能自拔,这本书可以说再次燃起了我小时候想写操作系统的美好愿望,所以说愿望总是美好的,还进入了大学开始真正去学计算机才发现似乎写操作系统是和我没什么 ...

  8. 学习Unix,可从事什么样的工作(1)《精通Unix下C语言与项目实践》读书笔记(3)...

    <精通Unix下C语言编程与项目实践>读书笔记(new) 文章试读 不拘一个遍程序系列:编程序不能一个脑袋钻到底,有时要学会变通,即所谓的曲线救国.一.二.三.四 职场规划:一些杂七杂八的 ...

  9. pro git读书笔记

    pro git读书笔记 起步 三种区域以及三种状态 Git 项目有三个工作区域的概念:工作目录,暂存区域以及Git 仓库 工作目录是我们用来修改文件的目录,是对项目的某个版本独立提取出来的内容 暂存区 ...

  10. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

最新文章

  1. 文巾解题 461. 汉明距离
  2. BZOJ2342[Shoi2011]双倍回文——回文自动机
  3. LCA+差分【p4427】[BJOI2018]求和
  4. 大型互联网公司架构演进之路汇总
  5. [你必须知道的.NET]第三十三回,深入.NET 4.0之,LazyT点滴
  6. centos7.3二进制安装mariadb10.2.8
  7. 征信考量社交化和大数据化
  8. 4款好用的Android设备HTML编辑器
  9. vim配置——MA6174
  10. web前端面试(1) 前端缓存怎么做?
  11. 国产麒麟操作系统kylin V10 sp2操作系统安装openldap和kerberos
  12. qq游戏大厅中解析不安装apk的研究
  13. 【强化学习】DQN:Flappy Bird实例分析
  14. Android 百分比布局库(percent-support-lib) 解析与扩展
  15. Day41——Dp专题
  16. Skiplist跳表详解及其模拟实现
  17. ORA-01455: converting column overflows integer datatype
  18. iOS中物理单位换算
  19. step7和wincc联合仿真_过路老熊_新浪博客
  20. 用GCTA计算亲缘关系矩阵和遗传力

热门文章

  1. 手机txt拆分器_TXT文本分割器
  2. 分贝噪音测试软件文件存储,分贝噪音测试工具
  3. 二叉树遍历的几种常见方法
  4. ansys经典界面分析工字钢_【干货】基于ANSYS经典界面的接触分析例子
  5. Java项目实战教程|最完整的Javaweb项目推荐(资料+源码分享)
  6. Xilinx Vivado 2017.2安装教程
  7. 天若OCR专业版软件,现可无需联网本地使用了~
  8. hevc参考代码matlab版,HEVC部分源码剖析
  9. 涵盖农业、可再生能源、酒店、金融服务、创意服务、科技、林业和建筑业的20家新公司加入《气候宣言》
  10. C#仿““狗屁不通文章生成器””功能