操作系统(第三周 第一堂)

news2024/11/15 21:44:28

目录

操作系统设计原则

操作系统的结构

简单结构

MS-DOS系统

​编辑

UNIX系统

微内核

核心技术

缺点


操作系统设计原则

这一段希望大家自己可以好好看一下~~

策略和机制的分离意味着操作系统可以进一步简化。在操作系统诞生之初,大家认为操作系统需要替用户干尽可能多的事情。这导致了两个问题:一、操作系统过于庞大。 二、操作系统干太多事,用户的自主性降低。 三、操作系统制作时不可能考虑到用户所有的需求,特定需要需要用户自己实现

基于这些问题,前辈们提出了机制和策略分离。机制决定怎么做,这是操作系统定义的;策略决定做什么,这是操作系统和用户都可以定义的(操作系统决定用户操作可能造成危险的部分)

UNIX的可加载模块就体现了策略和机制分离。模块存在体系机制,可加载体现策略

操作系统的结构

简单结构

简单结构意味着并没有对操作系统的各个部分进行分级分割处理,而是混杂在一起,不同程序、上下层程序之间能够直接访问

MS-DOS系统

下图为MS-DOS系统的一个结构

在这个结构中,我们可以看到应用程序能够调用系统程序从而访问硬件,能够直接访问硬件。而系统程序访问硬件也不一定要走驱动程序(API接口访问),而是可以直接访问

这将导致 MS-DOS系统很容易发生错误(恶意攻击)从而出现系统奔溃(例如:用户跨过操作系统直接调用I/O硬件进行操作,导致操作系统并不知道,出现错误)

UNIX系统

下图为UNIX系统的一个结构

UNIX系统结构的特点是:

一、用户及应用程序已经不能直接访问硬件或者系统程序

二、访问系统程序(系统服务)必须通过系统调用接口,访问硬件必须通过系统程序(系统服务)(各种API的组合)的运行 

三、将操作系统简单分为了三层:硬件、系统服务、用户或应用程序。三者之间能彼此访问但是不能跨级访问

四、此方法让UNIX系统比较于MS系统安全性大大提升

五、这种系统存在的重大缺点就是内核那里提供的系统服务会随着系统的升级越来越庞大,导致操作系统显得非常冗余(很多服务可能大部分人都用不到,但是仍需要下载)

微内核

微内核的出现就解决了上面操作系统的问题——越来越冗余

核心技术

一、对内核进行模块化处理,将内核分为许多模块

二、对内核模块进行分类,分为必要/不必要部件

三、不必要的部件从内核中删除,并将其包装为系统驱动程序(例如现在电脑中的音频驱动、显卡驱动程序)

四、用户需要这些系统服务时可以自行下载这些系统服务程序,然后内核运行时,如果需要就会动态通过其提供的系统调用接口实现这些系统服务程序的功能

五、内核仅仅提供核心服务,其他服务在内核运行时动态实现

 从上图中我们可以看到微内核中仅仅有三个功能,这三个功能都是必要的。至于上面的文件系统、驱动程序等都是非必要的(电脑不需要也可能运行程序,完成计算)

从这个例子,我们可以看到如果不下载上面的几个系统程序,内核的内存将会很小。至于下不下载这几个系统程序全看用户自己的需求

缺点

将部分操作系统的功能转变为系统程序去调用,意味着这些系统程序之间是独立的个体,他们仅仅和应用程序以及OS之间存在联系。他们之间如果要交互就需要通过操作系统进行,这样必然造成运行效率降低

 

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

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

相关文章

【有源码】buildroot根文件系统编译和常见问题

前言 编译好的含有QT5等工具包的buildroot根文件 仓库:https://gitee.com/wangyoujie11/atkboard_-linux_-driver 编译过程如下 1.下载源码,解压tar -vxjf xxx.tar.bz2 https://buildroot.org/ 这里以如下版本实验 2.在解压之后的buildroot-2019.02.…

Python学习:元组

Python 元组概念 Python 中的元组(tuple)是不可变的有序集合。它是一种数据类型,类似于列表(list),但在创建后不能被修改。元组使用圆括号 () 来表示,其中的元素可以是任意类型,并且…

MySQl基础入门⑬

上一遍文章内容 查询结果排序 创建一个新的数据库(假设名为xl): CREATE DATABASE xl;接下来,切换到新创建的数据库,并创建一个关于修仙者的表,命名为修仙者信息,包含至少6个中文字段&#xf…

鸿蒙一次开发,多端部署(八)典型布局场景

虽然不同应用的页面千变万化,但对其进行拆分和分析,页面中的很多布局场景是相似的。本小节将介绍如何借助自适应布局、响应式布局以及常见的容器类组件,实现应用中的典型布局场景。 说明: 在本文 媒体查询 小节中已经介绍了如何通…

一、rv1126开发之视频输入和视频编码

RV1126 H264/HEVC编码流程 一、RV1126编码的流程图: 二、每个代码模块详细讲解 2.1. VI模块的创建 VI模块的初始化:关键在于VI_CHN_ATTR_S结构体,这个结构体是VI设置的结构体。这个结构体的成员变量包括:pcVideoNode&#xff0…

【Java Web基础】一些网页设计基础(五)

文章目录 1. 图片在盒子内部垂直居中2. 底部设计,图片或子元素居中于父盒子(水平、垂直),随着屏幕大小放大或缩小3. 使用thymeleaf的th:each会导致样式失效错乱问题 1. 图片在盒子内部垂直居中 用弹性盒子实现垂直居中及用css实现…

html5cssjs代码 035 课程表

html5&css&js代码 035 课程表 一、代码二、解释基本结构示例代码常用属性样式和装饰响应式表格辅助技术 一个具有亮蓝色背景的网页,其中包含一个样式化的表格用于展示一周课程安排。表格设计了交替行颜色、鼠标悬停效果以及亮色表头,并对单元格设…

使用Oxygen编辑器的项目来做团队协作

▲ 搜索“大龙谈智能内容”关注公众号▲ 扫码见我视频号上的视频 今天,分享一种在Oxygen中使用项目文件进行团队协作的高效方法。这种方法不仅能帮助我们轻松共享文件和文件夹,还能确保团队成员使用统一的项目级别选项和发布配置,从而提高工…

模板高级使用(非类型模板参数,特化,分离编译)

文章目录 模板没有实例化取内嵌类型报错问题非类型模板参数模板的特化函数模板的特化类模板的特化1.全特化2.偏特化 模板的分离编译 模板没有实例化取内嵌类型报错问题 首先在这里分享一个模板的常见报错问题。就是模板的在没有实例化的情况下去取模板类里面的内嵌类型这时候的…

【面试题】HashMap为什么可以插入null而Hashtable就不可以(源码分析)

首先hashmap可以插入null值,但是hashtable和hashcurrentHashmap是不支持的;这是因为在 hashmap对插入key为null进行了特殊处理,当插入的值为null的时候会将哈希值设置为0 但是hashtable会直接抛出异常: 并且hashmap是线程不…

2024全国水科技大会【发言单位】天健水务集团(杭州)有限公司

天健水务,始创于2003年,下属浙江天行健水务有限公司、杭州天勤水处理技术有限公司、杭州天行健新能源有限公司,是一家致力于现代化水处理设备与系统研发、生产及工程应用的国家高新技术企业。以天健智造、天健工程、天健运维的“一站式全流程…

uniapp ios证书失效

前面是按照网上查找的方法 作者大大的地址 1、一个ios账户(688付费版) 2、登录 Apple Developer 3、创建Identifiers ps:创建时需继承苹果的sdk,只需要一个就行 点击continue再点击Register即可 4、创建.cer证书 &…

软件测试简历,你真的会写简历吗?一周疯狂面试6家...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 简历元素 一份合格…

SqlServer数据库复习总结资料

基于课堂上学到的以及书上的看到的,总结出的数据库复习资料 一、数据库概述 基本概念 1.数据 数据(Data)是事物的符号表示,可以是声音、图像、文字、数字,也可以是计算机代码。 2.数据库 数据库(DataBase…

WebSocket 使用示例,后台为nodejs

效果图 页面代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>WebSocket Client</title&g…

java NIO群聊系统

demo要求&#xff1a; 1&#xff09;编写一个NIO群聊系统&#xff0c;实现服务器端和客户端之间的数据简单通讯&#xff08;非阻塞&#xff09; 2&#xff09;实现多人群聊 3&#xff09;服务器端&#xff1a;可以监测用户上线&#xff0c;离线&#xff0c;并实现消息转发功…

利用autodl服务器跑模型

1. 租用服务器 本地改模型 服务器 将改进好的、数据集处理好的模型压缩为zip文件上传到阿里云盘打开服务器AUTODL服务器&#xff0c;在主页中选择容器实例 在此位置进行开关机操作&#xff0c;若停止服务器&#xff0c;必须关机&#xff0c;不然会一直扣钱 2. 运行模型 选择…

【Unity】捕捉PC桌面的插件

【背景】 之前介绍了如何用一款名为uWindowCapture的Unity免费插件在Unity的Canvas上展示PC桌面。经过一段时间的使用,本篇继续分享此插件的一些功能和限制。 在此感谢作者Hecomi。 【特征和限制】 一般局域网络环境只能最多达到15帧的帧率,所以别幻想用来窜流游戏或者看电…

【个人记录】CentOS7安装MySQL 5.7和libmysqlclient.so.20

记录 之前使用MariaDB 发现使用的libmysqlclient.so是18版本的&#xff0c;一些程序需要20版本的库&#xff0c;查了一下需要安装5.7以上版本的才有libmysqlclient.so.20&#xff0c;这里简单记录一下怎么安装。 安装MySQL 5.7 Yum源 yum install -y https://repo.mysql.com…

【C++】狗屁不通文章生成器2.0

【C】狗屁不通文章生成器2.0 1 前言2 改进2.1 字词的前后关系2.2 文章生成系统 3 实现(部分)3.1 class wordpair3.1.1 转化为 json3.1.2 添加后缀词3.1.3 选择后缀词 3.2 class createArticle3.2.1文本分割3.2.2生成文章 4演示4.1 wordpair(3x2), 启动词(春天)4.2 wordpair(2x1…