《现代操作系统(中文第四版)》笔记 第一章 引论
既然买了《现代操作系统》(《Modern Operating System》)这本书,那就好好学习一下吧,这是第一篇读书笔记。
##第一章 引论
计算机系统总的来说分为软件和硬件,如下图所示。多数计算机有两种运行模式:内核态和用户态。软件中最基础的部分是操作系统, 它运行在内核态。操作系统具有对所有硬件的完全访问权限,可以执行机器能够运行的任何指令。 其他软件运行在用户态,只能使用部分机器指令。特别指出,哪些会影响极其的控制或可进行I/O操作的指令,在用户态中的程序是禁止的。 无法直接运行指令,则只能通过操作系统提供的接口来达到目的。
操作系统由硬件进行保护,防止用户试图对其进行修改。
大家都操作过Windows、Linux等操作系统,感觉这是不是就是操作系统? 这些与用户交互的程序,实际上并不是操作系统的一部分,经它们使用操作系统来完成工作,基于图标的称为图形用户界面(GUI, Graphical User Interface),我们所用的Windows就是这种,可以看到各种图标; 基于文本的则通常称为shell, 比如我们在Windows中使用cmd命令, 或者在Ubuntu中是Xshell等软件程序。
不过,在嵌入式系统(没有内核态)或解释系统(如基于Java的操作系统,它采用解释方式,而非硬件方式区分组件), 上述划分的边界是比较模糊的。
1.1 什么是操作系统
操作系统是一种运行在内核态的软件,但这个说法并不总符合事实, 不过操作系统概括起来主要有两个作用:
- 1.为应用程序(程序员)提供资源集的清晰抽象
- 2.管理硬件资源
第二点好理解, 第一点用大白话说就是给上层提供相应的接口或者方法, 让上层应用程序可以使用资源。
另外,对于操作系统的理解,从不同角度看的,有不同的定义,
自顶向下看:操作系统为应用程序提供基本抽象,从而使应用程序在此基础上可以组合功能。
自底向上看:操作系统用来管理复杂系统的各个部分,对资源的请求进行分配,调节不同程序见相互冲突的资源请求。其中, 资源的管理有两种不同方式实现多路复用(共享)资源:时间上复用和空间上复用:
- 时间上复用:当一种资源在时间上复用时,就是不同程序或者用户轮流使用它,大家排队使用。CPU就是这种操作, 一个位置,大家轮流坐
- 空间上复用:每个程序都得到资源的一部分,就不用排队了,这就是多个位置,一人坐一个。内存就是这样分配。
- 两种方式的公平和保护问题,由操作系统解决
1.2 操作系统的历史
第一代:真空管和穿孔卡片
第二代:晶体管和批处理系统
第三代:小规模集成电路和多到程序设计
第四代:个人计算机(大规模集成电路)
第五代:移动计算机(手机、平板等)
1.3 计算机硬件简介
####1.3.1处理器
先附图,所有设备都是通过总线连接的:
相当于计算机的大脑,从内存中取出指令并执行。每个CPU都一套可执行的专门指令集。所以x86不能执行ARM程序,ARM处理器也不能执行x86程序。
CPU内部有一些用来保存关键变量和了临时数据的通用寄存器、还有一些专用寄存器,如程序计数器(PC)、堆栈指针寄存器(指向当前内存中栈顶位置)、程序状态字寄存器(Program Status Word, PSW, 包含了条件码位、CPU优先级、内核态/用户态等控制位)。
CPU取出指令执行的机制,是通过内部的取指单元、解码单元、执行单元三部分完成。为了提高效率。现在CPU通常可以同时取出多条指令。当CPU执行指令n时,它可以正在对指令n+1解码,并读取指令n+2,这样,当执行完指令n后,无需等待,就可以直接执行n+1,然后n+2,这样的机制,称为流水线(pipeline)
intel和AMD的不同CPU设计:
1.3.2 存储器
典型的存储层次结构及其一个大概的访问时间如下:
存储系统的顶层是CPU中的寄存器,它用和CPU一样的材料制成,和CPU一样快,访问没有时延。其典型的存储容量:32位CPU为32x32位,在64位CPU中为64x64位
下一层次为高速缓存,CPU读取数据时,如果数据在高速缓存行中,则成为高速缓存命中。提升高速缓存命中有利于提升效率。
1.3.3磁盘
磁盘同RAM相比,每个二进制位的成本低两个数量级以上,所以容量大且便宜,但是读取速度低。
下图是常见的机械硬盘结构:
在一个磁盘中有一个或多个金属盘片,一个盘片的两面都可以记录数据,每个面都分为了很多同心圆,一个同心圆又被分为了很多少区,每个扇区的典型大小为512字节.然后如图所示,每个盘又分为了很多柱面(或称为扇面)。
每个盘面都有读写头用来读写数据。机械臂从一个柱面移动到相邻的柱面大约需要1ms,而随机移动到某一个柱面的典型时间为5-10ms。
1.3.4 I/O设备:
I/O设备就是输入输出设备,比如键盘、鼠标、打印机、硬盘灯。I/O设备一般包含两部分:设备控制器和i/o设备本身。控制器是插在电路板上的一块或一组芯片。
每一类设备控制器都是不同的,需要不同的软件进行控制,专门与控制器对话,发出命令并接收响应的软件,叫做设备驱动程序(device driver).
实现输入输出有三种方式。第一种,用户程序发出一个系统调用,然后就执行I/O过程,CPU一直等待I/O的数据,直到得到数据后处理,处理完以后返回结果,CPU才继续处理其他事情。这种方式称为忙等待。
第二种是通过中断机制,需要I/O时,先让I/O设备执行对应操作,这个时候CPU不需要等待,继续做其他事情,如果I/O执行完,拿到数据了,这个时候由中断控制器对CPU发起一个中断,处理这个I/O得到的数据。大白话就是先让CPU处理其他事情,当得到I/O数据后,告诉CPU,你先停一下现在手头上的事儿,你刚刚要的数据准备好了,现在给你,你处理下。
第三种,使用直接存储器访问芯片(DMA,Direct Memory Access),直接控制位流,DMA得到数据时,也会对CPU发起中断。
1.3.5 总线
总线就是CPU连接其他设备的线,各种设备间的数据传输通过总线完成。刚开始那张示例图已经展示了,现在再来张 总的示例图:
1.3.6 启动计算机(的过程)
通电后,系统首先启动BIOS里面的程序, BIOS全称基本输入输出系统(Basic Input Output System), 内部包含了一下基本的参数设置,以及接下来要启动的程序,从而把系统启动起来。
1.4 操作系统大观园(各种操作系统)
操作系统有很多,主要有:大型机操作系统、服务器操作系统、多处理器操作系统、个人计算机操作系统、掌上计算机操作系统、嵌入式操作系统、传感器节点操作系统、实时操作系统、智能卡操作系统。
1.5 操作系统概念
操作系统中有很多基本概念和抽象,它们是需要理解的核心内容,主要有:进程、地址空间、文件、I/O(输入输出)、保护、shell.
1.5.1 进程
进程:进程的本质是正在执行的一个程序。可以简单理解一个进程就是一个程序,但有时,一个程序包含多个进程。进程是对CPU处理器的一个抽象概念,可以把进程看做一个资源调度的集合,通常包含的资源有:寄存器(程序计数器和堆栈指针)、打开文件的清单、突出的警报、有关进程的清单以及程序需要的其他信息。
1.5.2 地址空间
计算机的主存用来保存正在执行的程序,为了找到程序在主存(也就是内存)的位置,物理内存设置了对应的地址编号,地址编号的一个集合就是地址空间。 物理地址空间是有限的,这是设备决定的,不过有虚拟地址空间技术。地址空间这个概念其实就是对内存的一个抽象,用来方便管理内存及进程。
1.5.3 文件
文件这个概念的抽象是为了描述数据的集合,这个比较好理解。在现实中的文件其实就是某些资料装订在了一起,这些资料通常保存的也是某些数据(文字、图表等)。
1.5.4 I/O(输入输出)
主要是指输入输出设备,通过这些设备来输入或输出数据, 比如键盘、打印机等。键盘输入字母,就可以在硬盘或者其他位置输出文字。
1.5.5 保护
计算机有大量信息,用户希望对其进行保护。对一个文件来说,通常有三种状态,可读(只能读取,不可修改),可写(只能写入,不可读出),可读可写。
1.6 系统调用
先简单了解下系统调用的流程,下图是调用一个read方法的过程:
然后是一些常用的调用函数:
1.7 操作系统结构
1.7.1 单体系统
整个操作系统以单一程序的方式运行,所有过程链接成一个大型可执行二进制程序
1.7.2 层次式系统
整个系统分了很多层,每一层都进行一些封装,再给上一层次调用,从而可以加入一些限制进行保护。
1.8 依靠C的世界
操作系统通常都是c语言(或者c++)写的。
《现代操作系统(中文第四版)》笔记 第一章 引论相关推荐
- 计算机操作系统《第四版》第一章 操作系统引论(思维导图)
xmind文件提取链接:https://pan.baidu.com/s/1Fv97MU8sEDBOTHbs_AbwOA 提取码:0301
- 《现代操作系统》精读与思考笔记 第一章 引论
本系列博文是<现代操作系统(英文第三版)>(Modern Operating Systems,简称MOS)的阅读笔记,定位是正文精要部分的摘录和课后习题精解,因此不会事无巨细的全面摘抄,仅 ...
- 浙大第四版概率论第一章思维导图
浙大第四版概率论第一章思维导图 主要用于自己复习用
- 2021-10-06 统计学-基于R(第四版)第一章课后习题记录及总结
1.1 题目如下 (1)基础数据录入: > income<-c("低收入户","中等偏下户","中等收入户","中等偏 ...
- 传感器技术(徐科军 第四版)第一章 绪论
第一章:绪论 自动检测技术概述 自动检测系统的组成 被检测信息->传感器->检测电路->输出单元 传感器概述 定义 传感器(Transducer/Sensor):能感受规定的被测量并 ...
- PMBOK(第六版)第一章 引论
01『跟我读PMBOK指南』 1. PMI 将项目管理知识体系 (PMBOK) 定义为描述项目管理专业范围内知识的术语.项目管理知识体系包括已被验证并广泛应用的传统做法,以及本专业新近涌现的创新做法. ...
- 笔记代码 | 统计学——基于R(第四版) 第一章
1.1数据与统计学 统计学的含义,数据及其分类和来源 1.1.1 什么是统计学 收集数据 数据分析 描述统计:利用图表,计算简单统计量 推断统计:根据样本判断总体(参数估计和假设检验) 1.1.2 变 ...
- 计算机操作系统(第四版)第二章(进程的描述与控制)知识点整理
进程的描述与控制 2.1 前驱图和程序执行 2.1.1 前驱图 2.1.2 程序顺序执行 2.1.3 程序并发执行 2.2 进程的描述 2.2.1 进程的定义与特征 2.2.2 进程的基本状态及转换 ...
- 《Fundamentals of Computer Grahpics 4ed》虎书第四版翻译——第一章 介绍
文章目录 1.1 图形学领域 1.2 主要应用 1.3 图形学API 1.4 图形管线 1.5 数值问题 1.6 效率 1.7 设计和编写图形程序 1.7.1 类设计 1.7.2 Float还是Dou ...
- 《实用机器学习》(孙亮 黄倩.著)笔记——第一章 引论
机器学习的主要类型: 一.回归问题 二.分类问题 三.推荐问题 四.排序问题 1.1什么是机器学习 从概念上讲,在机器学习中,我们的目标是从给定的数据集中学习出一个模型f,使得它能够有效地从输入数据中 ...
最新文章
- 算法时间复杂度求解法【详细过程说明】
- 联邦快递被曝拒送华为手机进入美国,即便是从英国寄出
- 正则爬取京东商品信息并打包成.exe可执行程序。
- 12、INNER JOIN:内连接
- 开启未来十年的编码技术之门
- 2021-11-10如何快速部署Ceph分布式高可用集群
- kafka : CommitFailedException already rebalanced and assigned max.poll.records
- Filecoin网络目前总质押量约为4018万枚FIL
- php中的require(),PHP中include()与require()的区别说明
- SQL SERVER 2000日期处理(转)
- java生成点阵图_【图片】一个零基础的小白是如何脱变成Java后端工程师的?【java吧】_百度贴吧...
- 计算机无法关闭开机密码,Win10系统开机密码取消不掉如何解决
- 干货分搞私投以技术面试
- Android studio断点调试源码
- Julia Computing获得 2400 万美元融资,前 Snowflake CEO 加入董事会
- jboot_jboot这些框架有意义吗
- 采购人员应该考什么证书?
- 浏览器内核和Standards模式与Quirks模式
- 【单片机笔记】详解如何用廉价NTC电阻准确高效的测量温度(附源码)
- logit方程怎么写_微分方程(2)-一阶常微分方程的解法