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

简介: 操作系统(第三周 第一堂)



操作系统设计原则

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

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

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

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

操作系统的结构

简单结构

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

MS-DOS系统

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

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

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

UNIX系统

下图为UNIX系统的一个结构

UNIX系统结构的特点是:

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

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

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

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

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

微内核

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

核心技术

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

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

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

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

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

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

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

缺点

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

相关文章
|
20小时前
|
监控 NoSQL Unix
操作系统总结(第二周 第一堂)
操作系统总结(第二周 第一堂)
|
20小时前
|
NoSQL 安全 Shell
操作系统(第二周 第二堂)
操作系统(第二周 第二堂)
|
20小时前
|
存储 Unix Shell
操作系统(第三周 第二堂)
操作系统(第三周 第二堂)
|
20小时前
|
存储 缓存 前端开发
操作系统总结(第一周)
操作系统总结(第一周)
|
20小时前
|
存储 程序员 调度
操作系统(第四周 第一堂)
操作系统(第四周 第一堂)
|
20小时前
|
算法 调度
今年十八,期末速刷(操作系统篇1)
今年十八,期末速刷(操作系统篇1)
43 0
|
20小时前
|
存储 安全 程序员
计算机操作系统-第四天
计算机操作系统-第四天
|
20小时前
|
存储 算法 调度
【中级软件设计师】—(针对上午题)操作系统(三十)
【中级软件设计师】—(针对上午题)操作系统(三十)
|
5月前
|
运维 Linux 程序员
嘘!偷窥鹅厂运维专家,让Linux内核奔跑起来不得不说的秘密
有这么一个故事,一个程序员去相亲,当女方问他的职业时,他说自己是一个底层架构工程师,女方听到“底层”两个字,很不屑地说:“底层啊,那你什么时候能升到中高层?男方听后不知该如何接话。在程序员的世界里,Linux 内核、底层其实是非常“高端”的内容,普通程序员需要在这个领域里积累多年,才能修炼到从事“底层”工作的层次。
|
9月前
|
Linux Shell 调度
期中总结【操作系统】
期中总结【操作系统】
42 0