操作系统原理2——OS结构

 

计算机系统是由硬件系统和软件系统两部分组成,

操作系统是软件系统的一个组成部分,它是直接在硬件系统的基础上工作的,所以在研究操作系统之前,先必须对计算机系统的结构有一个基本的了解,本章就是讲述计算机系统结构的基本知识。

本章的考核 知识点 是:

1.计算机系统的层次结构

2.硬件环境

3.操作系统结构

学习本章要求:了解计算机系统的结构,有关硬件的I/O中断和存储结构,硬件的保护措施;有关操作系统的结构,操作系统提供的使用接口。

重点 是:硬件环境和操作系统的结构

一、计算机系统的层次结构 ( 识记 )

现代的通用计算机系统是由硬件和软件组成的一种层次式结构,最内层是 硬件系统,  最外层是使用计算机系统的人,人与硬件系统之间是软件系统

软件系统

硬件系统

操作系统的运行方式

中断机制

中央处理器 CPU 在任何时刻 只能被一个程序占用 ,在它执行程序的时候,如果有另外的事件发生,比如用户又打开了一个程序,那么这时候怎么办呢?

这就需要由计算机系统的中断机制来处理了。

中断机制包括 硬件的中断装置 和 操作系统的中断处理服务程序 。

当出现新的事件时, 中断装置 就判别到有新事件发生,于是送出一个 中断信号 ,告诉 操作系统 ,操作系统根据这个中断的优先级来确定先执行新事件还是继续执行原来的任务。

中断现场的保护和恢复

二、 硬件环境( 识记 )

(1)CPU和外设的并行工作

在一台通用的计算机系统中,通过 输入输出控制系统 完成外围设备与主存储器之间的信息传送。

各种外设连接在相应的 设备控制器 上,通过 通道 把设备控制器连接到 公共的系统总线 上。

这种结构允许CPU 和  各种外围设备 同时并行工作。

(2) I/O中断的作用

当中央处理器执行到一条“启动外设”指令时,便把设备的控制权  交给 输入输出控制系统,然后,中央处理器和外围设备便可以并行工作,直到外设工作完成。之后,会形成一个“I/O中断”事件(输入输出结束),通知操作系统的服务处理程序完成后继工作。

利用硬件的中央处理器 与 外围设备的并行工作能力,以及各外围设备之间的并行工作能力,操作系统能让多个程序同时执行。

(3)存储结构

主存储器

是CPU能直接访问的 惟一 的存储空间,任何程序和数据都必须被装入主存储器之后,CPU才能对它进行操作。

主存储器以“字节(BYTE)”为单位进行编址,若干字节组成一个“字(WORD)”。中央处理器可以按地址读出主存储器中的一个字节或一个字的内容。

辅助存储器

解决了主存储器容量不足,以及主存储器无法保存信息的问题。

辅助存储器的优点是            容量大且能永久保存信息,

缺点是                               无法被中央处理器直接访问,必须通过主存储器才能访问。

中央处理器存储信息的速度依次为:存取寄存器中的信息速度最快;            通过系统总线存取主存储器的速度居中;  使用辅助存储器的信息速度最慢。

寄存器        用来存放 临时的 工作信息和系统必须的控制信息。

主存储器      中存放操作系统的核心部分,以及当前需执行的程序和数据。

辅助存储器  是存放操作下的非核心部分和其他程序和数据。

磁盘的信息可随机存取,磁带上的信息只能顺序存取。

(4)硬件保护

在资源共享的计算机系统中,只有有了必要的保护措施,才能使个别的错误不致影响其他程序。

<1> I/O保护 
   · 特权指令 
   为保护输入输出的完整性,把“启动I/O”等的一类 可能影响系统安全的指令 定义为 特权指令 。

特权指令只允许操作系统使用,用户程序不能使用特权指令。

用户程序 若要启动I/O,必须 请求 操作系统代为启动,这种方式不但可以保证安全地使用外围设备,正确地传送信息,而且可减少用户为启动设备而必须了解外围设备特性以及启动等工作,大大方便了用户。

<2> 管态 和 目态

中央处理器有两种工作方式:管态和目态。

在 管态 下,中央处理器可执行包含特权指令在内的一切指令;在 目态 下,中央处理器不准执行特权指令。

操作系统管态下工作,  用户程序目态下工作。

<3> 存储保护

硬件中设置了两个寄存器来限定用户程序执行时可以访问的空间范围。这两个寄存器是 基址寄存器 限长寄存器

中央处理器在目态下执行程序时,只有在判定访问地址符合以下关系式时候才允许访问:

基址寄存器值 ≤ 访问地址 ≤     基址寄存器值 + 限长寄存器值

中央处理器 管态下执行 程序时候,对访问主存的地址 不进行核对 。

三、操作系统结构( 识记 )

(1)操作系统的层次结构

层次结构的最大特点是把  整体问题  局部化

把一个大型复杂的操作系统分解成若干单向依赖的层次,由各层的正确性来保证整个操作系统的正确性。

采用层次结构,能使结构清晰,便于调试,有利于功能的增、删和修改,正确性容易得到保证,也提高了系统的可维护性和可移植性。

操作系统的一种层次结构如下图所示:

作业管理 
 
文件管理 
 
设备管理 
 
存储管理 
 
处理器管理 
 
硬件

这种结构具有单向依赖关系,即外层依赖内层的关系。

层次结构 的主要优点是有利于系统设计和调试;主要困难在于层次的划分和安排。

<1>作业控制语言和控制命令

操作系统提供给用户表示作业执行步骤的手段有两种: 作业控制语言 和 操作控制命令 。

用户用作业控制语言编写“作业控制说明书”,从而形成批处理作业。用户使用键盘输入操作控制命令或者选择菜单命令,进行交互处理。

<2> 系统调用

操作系统编制了许多 不同功能的子程序 ,供用户程序在执行中调用,这些子程序称为“系统功能调用”程序或“系统调用”。

·系统调用过程

系统调用 往往在 管态 下执行。

用户程序在调用系统调用时,编译系统会生成一条“访管指令”。

程序执行时,CPU取到访管指令就产生中断事件,操作系统即调用相应的系统调用子程序为其服务,并在管态下工作,处理完后,返回目态及用户程序。

·系统调用分类

操作系统提供的系统调用主要有:

文件操作类 ,如打开文件,读、写文件等;

资源申请类 ,如请求主存分配和归还,外设的分配和归还等;

控制类 ,如程序正常结束,异常结束和返回断点等;

信息维护类 ,如日期时间的设置和查询,文件属性的设置和查询

操作系统原理2——OS结构的更多相关文章

  1. Linux操作系统原理

    Linux操作系统原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.计算机经历的四个时代 1.第一代: 真空管计算机,输入和输出:穿孔卡片,对计算机操作起来非常不便,做一件事 ...

  2. Python内置的操作系统模块(os)与解释器交互模块(sys)

    Python内置的操作系统模块(os)与解释器交互模块(sys) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本片博客只介绍Python调用操作系统的模块即os模块,以及Pyth ...

  3. Linux操作系统中的文件目录结构详细介绍

    "/" :Linux文件系统的入口.也是最高一级的目录. "/bin":基本系统所需要的命令,功能和"/usr/bin"类似,这个目录下的文 ...

  4. Redis核心原理与实践--列表实现原理之quicklist结构

    在上一篇文章<Redis列表实现原理之ziplist结构>,我们分析了ziplist结构如何使用一块完整的内存存储列表数据. 同时也提出了一个问题:如果链表很长,ziplist中每次插入或 ...

  5. 华中科大MOOC 操作系统原理讨论题

    1没有安装操作系统的计算机启动过程和结果? 启动会比较快,但功能很局限,无法使用常见的软件应用,对于普通用户来说,功能很局限,对于专业工程师来说,想使用没有操作系统的计算机也有难度.启动后进入 BIO ...

  6. IP、操作系统、移动OS

    IP IP地址 = 网络地址 + 主机地址/IP地址 = 网络地址 + 子网地址 + 主机地址. DNS :进行域名解析的服务器.             比如,sina.com(是域名).其实是一个 ...

  7. ucos实时操作系统学习笔记——内核结构和任务创建

    对于ucos实时操作系统,邵贝贝的那本书已经写得很详细了,我因为之前不深的研究过ucos,所以在这里做一个笔记,写一些个人对该操作系统的理解,仅仅是个人理解,如果有人看到这边随笔有不对的地方,望给我指 ...

  8. pxe网络安装操作系统 原理与详细过程

    摘要:在实际工作中,我们经常会遇到这样的情况:想要安装Linux但是计算机不带光驱或软驱,或者是笔记本配置的非标准的软驱和光驱,如1394接口,USB接口等,在Linux安装时所引导的Linux内核一 ...

  9. day 30 1.操作系统原理 2. Process 模块学习

    进程: 起源:进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所有内容都是围绕进程的概念展开的.所以想要真正了解进程,必须事先了解操作 ...

随机推荐

  1. PLSQL中显示Cursor、隐示Cursor、动态Ref Cursor差别

    一.显式cursor 显式是相对与隐式cursor而言的,就是有一个明白的声明的cursor.显式游标的声明类似例如以下(具体的语法參加plsql ref doc ): cursor cursor_n ...

  2. .Vue 文件 ES6 语法 webstorm 中的一个识别Bug

    webstorm 2017 版本中即使安装了vue template file 设置了 js 语言为 es6 语法仍旧会出现识别不了划线的情况,苦寻很久,最后解决方式如下 <script typ ...

  3. Hbase和RDBMS(关系数据库管理系统)区别

    hbase是一个基于列模式的映射数据库,键--->数据 的映射,大大简化了传统数据   数据类型:hbase的存储的数据都是字符串,所有的类型都有用户自己处理,他只保存字符串;传统的数据有丰富的 ...

  4. 基于树莓派3B+Python3.5的OpenCV3.4的配置教程

    https://www.cnblogs.com/Pyrokine/p/8921285.html

  5. Memcached 常用的方法

    Memcache常用方法 Memcache::add — 添加一个值,如果已经存在,则返回false Memcache::addServer — 添加一个可供使用的服务器地址 Memcache::cl ...

  6. 打造一个高逼格的android开源项目——小白全攻略 (转)

    转自:打造一个高逼格的android开源项目 小引子 在平时的开发过程中,我们经常会查阅很多的资料,最常参考的是 github 的开源项目.通常在项目的主页面能看到项目的简介和基本使用,并且时不时能看 ...

  7. 使用badboy录制脚本 结合Jmeter一起测试。

    1.badboy介绍 Badboy是一款不错的Web自动化测试工具,如果你将它用于非商业用途,或者用于商业用途安装Badboy 的机器数量不超过5台,你是不需要为它支付任何费用的.Badboy提供了将 ...

  8. 经常使用的eclipse快捷键-也适合sts

    非常多内容来自互联网和已知文件,本人仅整理. 1. ctrl+shift+r:打开资源 这可能是全部快捷键组合中最省时间的了. 这组快捷键能够让你打开你的工作区中不论什么一个文件.而你仅仅须要按下文件 ...

  9. Android数据适配器(Adapter)优化:使用高效的ViewHolder

    原文链接:http://stackvoid.com/using-adapter-in-efficiency-way/ 在使用Listview或GridView的时候,往往须要自己定义数据适配器.一般都 ...

  10. Python一些基础练习题

    可变的数据类型:list, dict, set(可修改其中的元素) 不可变的数据类型:str, tuple 重点:str, list, dict (1).推导式练习 # 利用列表推导式: 找出100以 ...