北航操作系统课程-第一次作业-操作系统引论1
北航操作系统课程-第一次作业-操作系统引论1
北京航空航天大学计算机学院-2020春操作系统课程
题目作者为北航计算机学院操作系统课程组,答案为博主原创。水平有限,无法保证作答正确性,如有错误敬请批评指正。部分作答源自百度谷歌等其他资料,如有侵权联系删除
1 假如没有操作系统,怎样控制硬件?
如果没有操作系统,需要手动根据硬件各自不同的接口输入控制指令,分别控制不同的硬件。
以软盘IO为例,控制芯片NEC PD765有16条命令,每一条命令向一个设备寄存器装入长度从1到9字节的特定数据(读写数据、移动磁头臂、格式化磁道,及初始化、检测状态、复位、校准控制器及设备等)。以READ为例,读数据需要13个参数,要读取的磁盘块地址、磁道的扇区数、物理介质的记录格式、扇区间隙、对已删除数据地址标识的处理方法,操作结束时,控制器芯片在7个字节中返回23个状态及出错字段。
不同的硬件,其接口是有差异的,并且常常是“丑陋”的,如果有操作系统,操作系统可以完成统一管理“丑陋”的底层接口,向上提供整齐的软件接口的工作。
2 计算机系统中不同层次接口的作用?
如下图所示,计算机系统可以划分为:硬件、操作系统、系统和应用程序、用户四个层次,其中包括了ISA、ABI、API、UI等不同层次的接口。
ISA (Instruction Set Architecture),指令集架构。计算机指令是指挥机器工作的指示和命令,指令集是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。指令集架构是直接控制硬件的接口。ISA涵盖的内容包含但不限于:指令格式、寻址访存、数据类型、寄存器。通常ISA都会包含以下三类指令:运算指令、分支指令、访存指令。此外还会有:架构相关指令(原子操作,内存栅栏,缓存相关的指令,TLB相关的指令等)、复杂操作指令(FFT,三角函数,平方根等)、其他特殊用途(如虚拟化指令、例外和中断,核心态/用户态等)。
ABI (Application Binary Interface),应用程序二进制接口。每个操作系统都会为运行在该系统下的应用程序提供应用程序二进制接口,ABI包含了应用程序在这个系统下运行时必须遵守的编程约定。ABI总是包含一系列的系统调用和使用这些系统调用的方法,以及关于程序可以使用的内存地址和使用机器寄存器的规定。ABI涵盖了各种细节,如:数据类型的大小、布局和对齐;调用约定(控制着函数的参数如何传送以及如何接受返回值);系统调用的编码和一个应用如何向操作系统进行系统调用;在一个完整的操作系统ABI中,目标文件的二进制格式、程序库等等。
API (Application Programming Interface),应用程序接口。API是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。API同时也是一种中间件,为各种不同平台提供数据共享。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的可维护性和可扩展性。
UI (User Interface),用户界面。是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。用户界面是介于用户与硬件而设计彼此之间交互沟通相关软件,目的在使得用户能够方便有效率地去操作硬件以达成双向之交互,完成所希望借助硬件完成之工作,用户界面定义广泛,包含了人机交互与图形用户接口,凡参与人类与机械的信息交流的领域都存在着用户界面。
3 冯·诺依曼计算机的主要特点是什么?
美籍匈牙利数学家冯·诺伊曼于1946年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。半个多世纪以来,计算机制造技术发生了巨大变化,但冯· 诺伊曼体系结构仍然沿用至今,人们总是把冯· 诺伊曼称为“计算机鼻祖”。下图为冯·诺依曼体系结构的结构图:
冯·诺依曼体系结构的主要特点有:
- 采用存储程序方式,指令和数据不加区别混合存储在同一个存储器中,数据和程序在内存中是没有区别的,它们都是内存中的数据。指令和数据都可以送到运算器进行运算,即由指令组成的程序是可以修改的。
- 存储器是按地址访问的线性编址的一维结构,每个单元的位数是固定的。
- 指令由操作码和地址码组成。操作码指明本指令的操作类型,地址码指明操作数和地址。操作数本身无数据类型的标志,它的数据类型由操作码确定。
- 通过执行指令直接发出控制信号控制计算机的操作。指令在存储器中按其执行顺序存放,由指令计数器指明要执行的指令所在的单元地址。指令计数器只有一个,一般按顺序递增,但执行顺序可按运算结果或当时的外界条件而改变。
- 以运算器为中心,I/O设备与存储器间的数据传送都要经过运算器。
- 数据以二进制表示。
北航操作系统课程-第一次作业-操作系统引论1相关推荐
- python操作系统课程设计_操作系统课程设计.pdf
计算机科学与通信工程学院 操作系统课程设计报告 题目:linux系统下实现PV 操作 班级: 软件工程1401 姓名: 吴帅帅 学号: 3140608020 指导老师: 牛德姣 2016 年12 月2 ...
- 软件工程课程第一次作业-3120005403
目录 作业要求 一.评估当前的自己 1.1自我简介 1.2当前值 二.展望未来 2.1阅读<构建之法>,并阅读[构建之法社区](https://bbs.csdn.net/forums/So ...
- 软件工程课程第一次作业
软件工程第一次作业 作业属于哪个课程 软件工程 作业要求在哪里 作业要求链接 作业的目标 1. 熟悉markdown语法 2. 阅读<构建之法> 3. 撰写csdn博客 4. 评估当前,展 ...
- 国科大大数据系统与大规模数据分析课程第一次作业(hash distinct)
国科大大数据系统与大规模数据分析第一次作业(hash distinct) 一.作业内容 从HDFS中读出数据 对读出的数据进行hash去重 将处理好的数据存入Hbase 二.作业代码 import j ...
- [开源软件开发导论课程——第一次作业]有关开源软件开发的5个问题
这个作业的要求是: https://bbs.csdn.net/topics/607938212 1. 一个软件越贴近于底层就越有开源的潜力,因为越贴近底层基础设施往往就越通用 文章链接:https:/ ...
- 高级软件工程课程第一次作业的小结
成果: 1)各位同学按要求建立了自己博客,完善并反馈的相关信息 2)对各自本科设计进行了分析,有的同学也写得比较详细,如曾秀.李文华.吴文兵等 存在的问题: 1)对软件工程的认识较基础.本次课程的学生 ...
- CS224N 2019年课程第一次作业复现
本次作业主要介绍 余弦相似性 两种求词向量的方法 基于计数(词共现矩阵 + SVD) 基于预测(word2vec) 完整代码:CS 224N | Home 一.环境及数据问题 1.gensim安装 p ...
- 操作系统课程设计.doc 高分大作业(97分),共25页word版本
操作系统课程设计 操作系统课程设计.doc 实验列表 实验内容 文档部分截图 关于实验过程截图 文档获取 操作系统课程设计.doc 操作系统课程设计高分大作业(97分),共25页word版本. wor ...
- 软件工程课程的第一次作业
软件工程课程第一次作业 1.建立一个public代码仓库 1.1获取秘钥 1.2 创建代码仓库 1.2.1仓库地址 2.评估当前的自己 2.1个人简介 2.2当前值 3.展望未来 3.1 回答关于构建 ...
最新文章
- 在公共区块链中通过加密保护数据
- angular轮播图
- python读取word中后缀名docx的文件的表格
- V8 Promise源码全面解读
- idea 新建ssm java ee_IDEA搭建SSM项目实现增删改查
- Golang中各种永远阻塞的方法
- 抗腹泻药行业调研报告 - 市场现状分析与发展前景预测
- Atitit. 最佳实践 QA----降低cpu占有率--cpu占用太高怎么办
- Ubuntu 16.10(x86) Install WordPress SRV 4.7.1-1-5
- (CODE)计算机视觉引论及数字成像系统
- itextpdf 二维码
- OPPO A59m怎么刷机 OPPO A59m的刷机教程 OPPO A59m完美解除账号锁
- GitHub上点击量破百万的宝藏级Spring,讲解的太到位了
- 零基础学习UI设计,有哪些软件推荐
- 快手科技2020年总收入人民币588亿元,同比增长50.2%
- 三元运算 微信小程序_微信小程序 三元运算符 条件语句if和循环语句for(三目运算+hidden)...
- linux 下MySQL本地安装mysql - u root - p 无法登入
- Google推荐的15条HTML 5代码军规
- linux gtestgmock安装
- Visual Studio 2008 安装出错 无法安装 问题合集