学习笔记——OS——引论

操作系统的定义

操作系统是一组管理计算机硬件资源的软件集合:

  • 用户和计算机硬件之间的接口
  • 控制和管理硬件资源
  • 实现对计算机资源的抽象

计算机系统硬件

冯诺依曼体系结构和哈佛结构的区别

  • 冯诺依曼体系结构:指令和数据共同存储
  • 哈佛体系结构:指令和数据分离

处理器多级Cache的速度及容量

  • L1 Cache:一级缓存的读取需要2-4个时钟周期,容量通常为16~32KB,处理器私有
  • L2 Cache:二级缓存的读取需要10个左右的时钟周期,容量通常为128~256KB,处理器私有
  • L3 Cache:三级缓存需要30-40个时钟周期,容量一般为2~16MB,由所有片内处理器共享

RDwhite的电脑的Cache容量如下:L1 Cache是128KB,L2 Cache是512KB,L3 Cache是3.0MB(只需调出“任务管理器”的“性能选项”)

操作系统简史

批处理系统

计算机能够自动地、成批地处理一个或多个用户的作业:

  • 联机批处理系统:作业的输入/输出由CPU来处理
  • 脱机批处理系统:作业的输入输出脱离主机控制

联机批处理系统

在主机与输入机之间增加一个存储设备——磁带,在运行于主机上的监督程序的自动控制下,计算机可自动完成:成批地把输入机上的用户作业读入磁带,依次把磁带上的用户作业读入主机内存并执行,然后把计算结果向输出机输出。完成了上一批作业后,监督程序又从输入机上输入另一批作业,保存在磁带上,并按上述步骤重复处理。
优点
监督程序不停地处理各个作业,从而实现了作业到作业的自动转接,减少了作业建立时间和手工操作时间,有效克服了人机矛盾,提高了计算机的利用率。
(不用人一直看着)
缺点
在作业输入和结果输出的时候,主机的告诉CPU仍处于空闲状态,即等待慢速的输入/输出设备完成工作:此时主机处于“忙等”状态。
(就好比两个人包饺子,一个负责包,一个负责擀皮。就算包饺子的那个人技术多么的熟练,如果擀皮的人慢,不还要等着吗?)

脱机批处理系统

这种当时的显著特征是:增加一台不与主机直接相连而专门用于与输入/输出设备打交道的卫星机,其功能是:

  • 从输入机上读取用户作业并放到输入磁带上
  • 从输出磁带上读取执行结果并传给输出机
    优点
    主机不直接与慢速的输入/输出设备打交道,而是与速度相对较快的磁带机发生关系,有效的缓解了主机与设备的矛盾。主机与卫星机可并行工作,二者分工明确,可以发挥主机的高速计算能力。
    缺点
    每次主机内存中仅存放一道作业,每当它运行期间发生输入/输出(I/O)请求后,高速的CPU便处于等待低速的I/O完成状态,致使CPU空闲。

多道程序系统

允许多个程序同时进入内存并运行,并允许它们交替在CPU中运行,他它们共享系统中的各种软、硬件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。即宏观上并行,微观上串行

多道批处理系统

  • 多道:系统内可同时容纳多个作业。这些作业放在外存中,组成一个后备队列,系统按一定的调度原则每次从后备作业队列中选取一个或多个作业进入内存运行,运行作业结束、退出运行和后备作业进入运行均由系统自动实现,从而在系统中形成一个自动转接、连续的作业流。
  • 成批:在系统运行过程中,不允许用户与其作业发生交互作用,即:作业一旦进入系统,用户就不能直接干预其作业的运行。

分时系统

分时:多个用户分享使用同一台计算机。多个程序分时共享硬件和软件资源

  • 多个用户分时
  • 前台和后台程序分时
  • 时间片
    特点:
  • 多路性。若干用户同时使用一台计算机。微观上看是各用户轮流使用计算机;宏观上看是各用户并行工作。
  • 交互性。用户可根据系统对请求的相应结果,进一步向系统提出新的请求。这种能使用户与系统进行人机对话的工作方式,明显地有别于批处理系统,因而,分时系统又被称为交互式系统。
  • 独立性。用户之间可以相互独立,互不干扰。系统保证各用户程序运行的完整性,不会发生相互混淆或破坏现象。
  • 及时性。系统可对用户输入及时作出响应。分时系统性能的主要指标之一是响应时间,他是指:从终端法出命令到系统予以应答所需的时间。

操作系统的基本实现机制

中断与异常机制

中断的引入:为了支持CPU和设备之间的并行操作

  • 当CPU启动设备进行输入/输出后,设备便可以独立工作,CPU转去处理与此次输入/输出无关的事情;当设备完成输入/输出后,通过向CPU发送中断报告此次输入/输出的结果,让CPU决定如何处理以后的事情。

异常的引入:表示CPU执行指令时本身出现的问题

  • 如算出溢出、除零、取数时的奇偶错误,访问储存地址越界或执行了“陷入指令”等,这时硬件改变了CPU当前的执行流程,转到相应的错误程序或异常处理程序或执行系统调用。

学习笔记——OS——引论的更多相关文章

  1. python学习笔记-os模块参数

    python的os 模块提供了非常丰富的方法用来处理文件和目录.常用的方法如下表所示: os.access(path, mode) 检验权限模式 os.chdir(path) 改变当前工作目录 os. ...

  2. python基础学习笔记——os模块

    #OS模块 #os模块就是对操作系统进行操作,使用该模块必须先导入模块: import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) result = os. ...

  3. Python学习笔记(15)- os\os.path 操作文件

    程序1 编写一个程序,统计当前目录下每个文件类型的文件数,程序实现如图: import os def countfile(path): dict1 = {} # 定义一个字典 all_files = ...

  4. swift学习笔记1——基础部分

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  5. RAC学习笔记

    RAC学习笔记 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾. 在学习Re ...

  6. Ionic2学习笔记(10):扫描二维码

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5575843.html 时间:6/11/2016     说明: 在本文发表的时候(2016-06-1 ...

  7. SQLite学习笔记(七)&&事务处理

    说到事务一定会提到ACID,所谓事务的原子性,一致性,隔离性和持久性.对于一个数据库而言,通常通过并发控制和故障恢复手段来保证事务在正常和异常情况下的ACID特性.sqlite也不例外,虽然简单,依然 ...

  8. Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例

    ---------------------------------------------------------------------------------------------------- ...

  9. 【工作笔记】BAT批处理学习笔记与示例

    BAT批处理学习笔记 一.批注里定义:批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD,这些命令统称批处理命令. 二.常见的批处理指令: 命令清单: 1.RE ...

随机推荐

  1. maven 骨架命令行创建

    项目的骨架maven 约定在项目的根目录下放置pom.xml,在src/main/java目录下放置主代码,在src/test/java下放置项目的测试代码. 这些基本的目录结构和pom.xml文件的 ...

  2. maven 超级pom位置、maven命令、构件、下载位置、手动打包位置、中央仓库ip

    1.超级pom位置 ----> 解压M2_HOME/lib/maven-model-builder-3.5.4.jar 2.运行maven 命令实际上是运行了 java 命令,因为maven插件 ...

  3. Pig是轻类型的

    总体来说Pig是“强类型”的,但Pig又允许用户不指定输入数据的类型,而可以自己根据用户的使用方式进行推测. 称Pig是“轻类型”的更合适,它确实对类型有严格的要求,但是如果没有明确定义类型也是可以处 ...

  4. 在Linux上利用core dump和GDB调试

    段错误(segfault) "段错误"是程序试图操作不允许访问或试图访问的不允许内存的情况.可能导致段错误的原因主要有: 1.试图解引用空指针(你不允许访问内存地址0) 2.试图解 ...

  5. ASP.NET MVC下Bundle的使用

    ASP.NET MVC中Bundle是用于打包捆绑资源的(一般是css和js),它是在全局文件Global.asax.cs中注册Bundle,而注册的具体实现默认是在App_Start文件夹的Bund ...

  6. 将mongodb设置为windows服务

    [转载] [转载]安装mongodb以及设置为windows服务 详细步骤 将mongodb设置成windows服务,这样就不用使用命令启动了,设置方法如下: 1.在data文件夹下新建一个log文件 ...

  7. 转:iBatis简单入门教程

    iBatis 简介: iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快.如果不需要太多复杂的功能,iBatis 是能够满足 ...

  8. 动态展开tableView的cell[2]

    动态展开tableView的cell[2] http://code4app.com/ios/%E5%8A%A8%E6%80%81%E6%B7%BB%E5%8A%A0cell/53845f8a933bf ...

  9. zabbix的日常监控-分布式监控(十)

    参考博文:http://blog.51cto.com/jinlong/2051966 zabbix proxy 可以代替 zabbix server 检索客户端的数据,然后把数据汇报给 zabbix ...

  10. December 02nd 2016 Week 49th Friday

    People will fall for its appearance while driving passionately. 观者倾心,驭者动魄. An advertisement of Merce ...