(三)操作系统的运行环境

news2024/11/15 11:46:44

文章目录

  • 一、操作系统的运行机制
    • 1. 时钟管理
    • 2. 中断机制
    • 3. 原语
    • 4. 系统数据结构
    • 5. 系统调用
  • 二、操作系统体系结构
    • 1. 传统的操作系统结构(大内核)
      • 第一代:无结构OS
      • 第二代:模块化结构OS:模块-接口法OS
      • 第三代:分层式结构OS
    • 2. 微内核OS结构

一、操作系统的运行机制

几个基本概念

  • 内核程序  < = = = > 应用程序
  • 核心态     < = = = > 用户态
  • 特权指令  < = = = > 非特权指令

在这里插入图片描述

1. 时钟管理

通过硬件提供

  • 计时:提供系统时间
  • 时钟中断:比如进程切换

2. 中断机制

  • 提高多道程序环境下CPU利用率
    • 例如发生I/O阻塞时,CPU不再继续等待I/O,挂起当前任务先去执行其他任务
  • 外中断:中断信号来源于->外部设备
    • 例如来自于I/O设备
  • 内中断:中断信号来源于->当前指令
    • 正在运行的的程序引发指令或者发生了一些问题导致中断(也叫:异常/陷入/例外)
      • 陷阱/陷入(Trap):由应用程序主动引发(不是产生)
      • 故障(Fault):由错误条件引发
      • 终止(Abort):由致命错误引发
        陷入指令中断 故障中断

中断处理过程
无论是内中断还是外中断都有对应的中断处理程序
中断处理过程
大致分为三个步骤

  1. 保存现场
  2. 执行中断程序
  3. 恢复现场继续执行后面的指令

3. 原语

原语运行在内核空间

  • 由若干条指令组成(程序段)
  • 用来完成某个特定功能
  • 执行过程不会被中断(原子性)
    • 通过关中断、开中断实现

原语是对一组操作的封装,并且这一组操作运行时间较短,不能被中断

4. 系统数据结构

一般只涉及到对数据结构的操作,不涉及硬件

  • 进程管理:作业控制块、进程控制块
  • 存储器管理:存储器分配与回收
  • 设备管理:缓冲区、设备控制块

5. 系统调用

  • 有操作系统实现,给应用程序调用
  • 是一套接口的集合
  • 应用程序访问内核服务的方式

操作系统底层实现了一套接口,提供给应用程序调用,系统调用的处理运行在核心态,通过陷入指令(在用户态执行)的方式实现系统调用
在这里插入图片描述

二、操作系统体系结构

1. 传统的操作系统结构(大内核)

第一代:无结构OS

  • 一系列过程(程序)的集合,过程间可以互相调用
  • 结构复杂且混乱,难以调试、阅读和维护
    无结构OS

第二代:模块化结构OS:模块-接口法OS

  • 给予“分解”和“模块化”原则
  • 按照功能划分模块/子模块,规定模块间的接口
  • 模块独立性标准:高内聚、低耦合
  • 优点:
    • 提高OS设计的正确性、可理解性和可维护性
    • 增强OS的适应性
    • 加速开发过程
  • 缺点
    • 模块接口设计难以扩展后续需求
    • 模块设计没有同一决策标准,导致模块接口设计不可靠

模块化OS

第三代:分层式结构OS

  • 有序分层法,自顶向下依次依赖
  • 设计时,自底向上:每一步建立在可靠的基础上
  • 优缺点:
    • 容易保证系统正确性
    • 容易扩充和维护
    • 自上而下的层次通信,导致系统效率降低

分层式结构OS

2. 微内核OS结构

微内核的基本概念

  • 足够小的内核,只实现OS核心功能

    • 与硬件处理紧密相关的部分,比如硬件处理、客户与服务器通信和其它基本功能
    • 一些较基本的功能
    • 客户和服务器之间通信 (客户/服务器模式)
  • 应用采用“机制与策略分离”原理

  • 采用面向对象技术

微内核的优缺点

  • 微内核OS的优点
    • 提高OS的可扩展性、可靠性、可移植性
    • 支持分布式系统
    • 融入了面向对象技术
  • 微内核OS的缺点
    • 相较早期OS,降低了一定的效率(用户态、内核态切换次数较 大内核OS 更多)
      在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/57926.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]计算机毕业设计springboot学习帮扶网站设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

坦克大战②

1. 我方坦克发射单颗子弹 当发射一颗子弹后&#xff0c;就相当于启动一个线程来控制它的位置坐标&#xff1b;Hero[我方坦克]有子弹的对象&#xff0c;当按下J时&#xff0c;就创建一个发射子弹的线程&#xff0c;通过坐标变化让子弹不停的移动&#xff0c;形成一个射击的效果&…

redis 集群搭建的三种方式

文章目录一、Redis主从二、Redis哨兵三、Redis集群一、Redis主从 二、Redis哨兵 三、Redis集群 下载redis wget http://download.redis.io/releases/redis-5.0.3.tar.gz解压redis tar zxvf redis-5.0.3.tar.gz进行重命名 mv redis-5.0.3 redis安装gcc yum install gcc进入red…

如何学习一门技术

如何学习一门技术 同样的生活&#xff0c;在你经历了一些意外和不如意之后&#xff0c;你再回过头来看&#xff0c;之前你所抱怨的生活其实是一个蛮不错的生活。 罗翔&#xff1a;每一个人都应该拥有学习的能力和权力&#xff0c;真正的知识要能走出书斋&#xff0c;去影响每…

StarkNet 性能路线图

目录 前言 区块限制&#xff1a;Validity Rollups vs L1 为什么 L1 吞吐量有限&#xff1f; 为什么相同的障碍不影响validity rollups&#xff1f; Sequencer 并行化 Cairo-VM 的新 Rust 实现 Rust 对 sequencer重新实现 Provers呢&#xff1f; Summary 参考 前言 St…

详解设计模式:迭代器模式

迭代器模式&#xff08;Iterator Pattern&#xff09;也被称为游标模式&#xff08;Cursor Pattern&#xff09;&#xff0c;是在 GoF 23 种设计模式中定义了的行为型模式。是一种最简单也最常见的设计模式。 迭代器模式 可以让用户透过特定的接口巡访容器中的每一个元素而不用…

HTML5期末大作业:美食网页主题网站设计与实现——HTML+CSS+JavaScript月饼美食食品企业网站html模板9页面

&#x1f468;‍&#x1f393;静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计&#x1f469;‍&#x1f393;,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等&#xff0c;用的最多的还是DW&#xff0c;当然不同软件写出的…

[附源码]计算机毕业设计校园运动会管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Linux基本工具——vim

Linux编辑器vim什么是vimvim的三种常用模式vim的基本操作命令模式插入模式底行模式搭配vim环境sudo怎么才能让普通用户使用什么是vim vim是linux下一款功能强大&#xff0c;多模式的编辑器。 现阶段有13种模式。 这就是进入vim的方式。 vim的三种常用模式 命令模式 我们第一…

CentOS7 编译安装最新的Linux Kernel 6.0 rc3

哪个男孩不想手动编译一份自己的内核呢&#xff1f;安装编译环境 CentOS7安装必要的包 yum groupinstall "Development Tools" -y && yum install openssl-devel -y && yum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-…

Java核心技术卷Ⅰ-第四章对象和类

重点 1.使用预定义类 2.方法参数 3.对象构造 4.包 5.类设计技巧 1.使用预定义类 一个源文件只能有一个公共类&#xff0c;可以有任意数目的非公共类可以使用通配符调用Java编译器&#xff1a;javac Test*.java使用var声明局部变量就不用担心0、0L和0.0之间的区别&#xff0c;因…

找出链表中间结点的三种解法

初阶链表刷题注意&#xff01;&#xff01;&#xff01;学习的是解题的思维&#xff01; 找出链表的中间结点&#xff08;链接在末尾&#xff09; 解题思路 数组解法 由于链表不能通过下标访问对应的结点&#xff0c;所以我们将所有的结点存储在数组中&#xff0c;这样就可以通…

测试开发怎么学?

随着互联网行业的高速发展,快速高质量的产品版本迭代成为企业始终立于不败之地的迫切需求,而在短期迭代的快节奏中.传统测试工作面对更大压力,无法持续提供高效率高质量的人力支撑&#xff0c;所以越来越多的企业需要技术更为全面的测试开发工程师。 测试开发本质上属于测试,区…

【数据结构】二叉树链式结构的实现

&#x1f451;作者主页&#xff1a;进击的安度因 &#x1f3e0;学习社区&#xff1a;进击的安度因&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 文章目录一、二叉树的链式存储二、二叉树链式结构的实现结构设计手动构建二叉树前序遍历中序遍历…

游戏思考26:游戏服务器压力测试文档(最近在忙这个,这个会更新频繁,12/03未完待续)

文章目录一、压力测试关注点二、计算最耗时的加载操作1&#xff09;从数据库读取数据&#xff0c;对加载的类型进一步划分各种类型&#xff0c;计算最耗时操作2&#xff09;查看CPU随着在线人数的变化所占百分比3&#xff09;查看内存变化4&#xff09;备注一、压力测试关注点 …

【C语言字符串】一道题检验你的字符串学习情况

作者&#xff1a;匿名者Unit 目录 一.字符串引言1.字符串基础二.洛谷P5734详解1.字符串相关库函数&#xff08;1&#xff09; strcpy函数 &#xff08;2&#xff09; strcat函数 &#xff08;3&#xff09;strstr函数 2.题目讲解一.字符串引言 1.字符串基础 字符串通常以\0作为…

008. 子集

1.题目链接&#xff1a; 78. 子集 2.解题思路&#xff1a; 2.1.题目要求&#xff1a; 给一个元素各不相同的数组 nums&#xff0c;返回各种可能的子集&#xff08;子集不能重复&#xff09; 比如&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[1],[2],[…

做了8年前端,感谢那些优秀的后端,陪伴我工作,教会我成长

☆ 前段时间由于一时的头脑发热&#xff0c;写了一篇《做了8年前端&#xff0c;细说那些曾经让你浴霸不能的后端》的博客&#xff0c;虽然每个细节也都属实吧&#xff0c;但始终是一些负能量的东西&#xff0c;建议大家不要去看了&#xff0c;今年互联网情况已经这样了&#xf…

安卓APP源码和设计报告——体育馆预约系统

项目名称&#xff1a;体育馆体育场预约系统专业&#xff1a;班级&#xff1a;学号&#xff1a;姓名&#xff1a; 目 录 一、项目功能介绍3 二、项目运行环境3 1、开发环境3 2、运行环境3 3、是否需要联网3 三、项目配置文件及工程结构4 1、工程配置文件4 2、工程结构目…

磨金石教育摄影技能干货分享|上海随手拍——叶落满街,秋意未尽

步入十二月以来&#xff0c;气温也随之骤降&#xff0c;这时候才明显感到初冬已至。冬天的寒风就是最好的脱叶剂&#xff0c;走在街道上&#xff0c;抬眼望去两旁的树木多数已经稀疏。只有残留的绿意还在迎着微微的寒风摇动。 我最喜欢的是秋天&#xff0c;因为秋天的草木最有色…