操作系统概念学习笔记 7 操作系统结构

简介:

操作系统概念学习笔记 7

操作系统结构


系统设计

设计目标

系统设计的第一个问题是定义系统的目标与规格。在最高层,系统设计受到硬件选择和系统类型的影响。

需求可以分为两个基本类:用户目标和系统目标

策略和机制

操作系统设计的重要原理是策略(policy)和机制(mechanism)的区别。机制决定如何做,策略决定做什么。策略可能会随着时间或位置而有所改变,每次改变都可能需要底层机制的改变。系统更需要通用机制。这样策略的改变只需要重定义一些系统参数。

操作系统重要功能的改善可能是由于更好的数据结构和算法。

操作系统结构

简单结构

MS-DOS系统是用汇编编写的,只适用于intel 8088的cpu,未能提供双模式和硬件保护。在MS-DOS中,并没有很好的区分接口和功能层次,这种任意性使MS-DOS易受错误(恶意)程序的伤害。

原始的UNIX系统由内核和系统程序两个独立部分组成。内核进一步分为一系列接口和驱动程序。物理硬件之上和系统调用之下的所有部分作为内核,内核通过系统调用以提供文件系统,CPU调度,内存管理和其他操作系统功能,这种单一结构使得UNIX难以增强。

分层方法

采用适当硬件支持,操作系统可以分成比MS-DOS和UNIX所允许的更小和更合适的模块。这样操作系统能提供对计算机和使用计算机的应用程序更多的控制。实现人员更加自由地改变系统内部的工作和创建模块操作系统。

系统模块化有许多方法,一种是分层法,最底层(0层)为硬件,最顶层(N层)为用户接口。操作系统的层可以作为抽象对象来实现。一个典型的操作系统的层(M)由数据结构和一组可为上层所调用的子程序集合所组成。层M能调用底层的操作。

分层法的优点在于构造和调试的简单化,从而简化了系统的设计和实现。每层都能利用较低层所提供的功能来实现。

分层法的问题在于对层的详细定义,层的顺序问题,另一个问题是效率稍差。

微内核  

随着UNIX操作系统的扩充,内核变得更大并且更加难以管理。20世界80年代中期,卡内基-梅隆大学开发了一个Mach的操作系统,该系统采用微内核技术模块化内核。这种方法将所有非基本部分从内核移走,并将它们实现为系统或用户程序。从而得到了更小的内核。

微内核的主要功能是使客户程序和运行在用户空间的各种服务之间进行通信。通信以消息传递形式提供。

微内核方法的好处之一是便于扩充操作系统,所有新服务可以在用户空间增加,因此并不需要更改内核。这样操作系统容易移植到其他硬件平台。由于绝大数服务是作为用户可不是内核进程来运行,因此微内核也就提供了更好的安全性和可靠性。

但是,微内核必须忍受由于系统功能总开销的增加而导致系统性能的下降。

模块  

面向对象编程来生成模块式的内核。这里,内核只有一组核心部件,以及在启动或运行时对附加任务的动态链接。这种方法使用动态加载模块。在现代的UNIX,Linux ,Mac OS X ,Solaris中很常见。

这样的设计允许内核提供核心服务,也能动态的实现特定功能。例如:特定硬件的设备和总线驱动程序可加载给内核,而对各种文件系统的支持也可作为可加载的模块加入其中,所得的结果就好像一个分层系统,他的每个内核部分都有被定义和保护的接口。但它比分层系统更灵活,他的每一模块均可调用其他任何模块。

进一步讲,这种方法类似于微内核方法,这种方法更为高效,因为模块不用调用信息传递来通讯。

虚拟机

分层方法逻辑可延伸为虚拟机概念,虚拟机的基本思想是单个计算机的硬件抽象为几个不同的执行部件从而使得仿佛每个独立的执行环境都在自己的计算机运行一样。通过cpu调度和虚拟内存技术,操作系统能带来一种幻觉,即进程认为有自己的处理器和自己的(虚拟)内存。

非虚拟机:进程→内核-硬件

虚拟机:进程→内核→虚拟机实现→硬件

创建虚拟机的原因:最根本的是,在并行运行几个不同的执行环境(即不同的操作系统)能共享相同的硬件。

虚拟机方法的主要困难在于磁盘系统。解决方法是提供虚拟磁盘。

实现  

虚拟机实现困难,提供与底层机器完全一样的副本需要大量工作。

底层机器有两种模式:用户模式和内核模式。

虚拟机软件可以运行在内核模式,因为它就是操作系统,虚拟机本身只能运行在用户模式,但他必须有虚拟用户模式和虚拟内核模式。这两种模式都运行在物理用户模式。

虚拟模式的转换可按下述方法实现。例如,当以一个虚拟用户模式而在虚拟机上运行的程序执行系统调用时,他会在真正机器上引起一个到虚拟机监控器的转换。当虚拟机监控器获得控制,他能改变虚拟机的寄存器内容和程序计数器以模拟系统调用的效果。接着他能重新启动虚拟机,注意他现在是在虚拟机内核模式下执行。

优点  

虚拟机的理念具有很多优点,虚拟机相互独立,因此没有安全问题,但同时也没有直接资源共享。两种方法提供共享:一为共享小磁盘来共享文件,二是通过虚拟通信网络来传递消息。

实例  

虚拟机成为一种解决系统兼容性的流行方法

  • VMware

他是一个流行的商业应用程序,他将intel 80*86硬件抽象为独立的虚拟机,运行于windows 和linux之上。

程序员可以在主操作系统和几个个客户操作系统上测试应用程序。每个客户操作系统都作为一个独立的虚拟机运行。

虚拟层是VMware的核心,因为他将硬件抽象为独立的作为客户操作系统的虚拟机运行。每个虚拟机都有他自己的虚拟cpu、内存、磁盘驱动、网络接口等。

  • java虚拟机

JVM是一个抽象计算机的规范。它包括类加载器和执行与平台无关的字节码的java解释器。 java对象用类来描述,对于每个java类,java编译器会生成与平台无关的字节码(bytecode)输出文件(.class),他可运行在任何JVM上。

JVM通过执行垃圾手机来自动管理内存,为了提高虚拟机中java程序的性能,许多研究集中在垃圾收集算法上。

JVM可以在主操作系统的上层软件中实现,或作为web浏览器的一部分。另一个选择是JVM可以在特别为JAVA程序设计的芯片硬件上实现。如果在软件上实现JVM,java解释程序一次只能执行一个字节代码。一种更快的软件技术是采用JIT(just-in-time)编译器。

目录
相关文章
|
19天前
|
API 数据处理 C语言
探索操作系统:从基础概念到实际应用
本文将带你进入操作系统的世界,了解它的基本概念、发展历程和应用场景。我们将一起探讨操作系统的核心功能、体系结构以及它在计算机系统中的重要作用。同时,我们还将介绍一些常见的操作系统类型,并分析它们的特点。最后,通过一个简单的代码示例,展示操作系统在实际应用中的重要作用。让我们一起揭开操作系统的神秘面纱,探索它的奥秘吧!
|
1月前
|
安全 算法 Unix
深入浅出操作系统:从基础概念到实践应用
【10月更文挑战第22天】本文旨在以浅显易懂的语言,为读者揭开操作系统的神秘面纱。我们将从操作系统的基本概念出发,逐步深入其核心功能与设计哲学,并通过具体代码示例,展示操作系统如何在实际中发挥作用。无论你是计算机科学的学生,还是对技术有浓厚兴趣的爱好者,这篇文章都将为你提供一次轻松愉快的操作系统之旅。
45 4
|
2月前
|
Ubuntu Java Linux
Linux操作系统——概念扫盲I
Linux操作系统——概念扫盲I
47 4
|
3月前
|
存储 算法 安全
深入理解操作系统:从基础概念到代码实践
【9月更文挑战第23天】本文将带领读者深入探索操作系统的奥秘,从基础概念出发,逐步揭示操作系统的工作原理和设计哲学。我们将通过实际代码示例,展示操作系统如何与硬件交互、管理资源以及提供用户界面。无论你是计算机专业的学生还是对操作系统感兴趣的开发者,这篇文章都将为你打开一扇通往操作系统世界的大门。
73 16
|
7月前
|
存储 缓存 Linux
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
【Linux】进程概念(冯诺依曼体系结构、操作系统、进程)-- 详解
|
5月前
|
人工智能 Unix 物联网
深入理解操作系统:从概念到实践
【7月更文挑战第31天】本文将带领读者深入探索操作系统的世界,从基本概念、发展历程、核心组件,到实际应用场景和未来趋势。我们将揭示操作系统如何作为软件与硬件之间的桥梁,以及它如何影响计算机系统的性能和用户体验。通过本文,您将获得对操作系统设计哲学的深刻理解,并掌握评估不同操作系统特性的能力。
81 7
|
5月前
|
算法 安全 Linux
深入理解操作系统:从基础概念到现代发展
【7月更文挑战第25天】在数字时代的心脏,操作系统(OS)扮演着至关重要的角色。本文将深入探讨操作系统的核心功能、设计哲学以及它们如何适应不断变化的技术需求。我们将从早期的批处理系统和多道程序设计开始,逐步走向现代的多任务、多用户操作系统,并探索它们是如何管理资源、提供安全性和促进用户交互的。文章还将触及开源与专有操作系统之间的辩论,并预测未来可能的发展方向。
|
5月前
|
存储 安全 物联网
深入理解操作系统:从基础概念到现代挑战
【7月更文挑战第14天】本文将探索操作系统的核心概念,并分析其在现代计算环境中面临的挑战。我们将从操作系统的定义和功能出发,逐步深入到进程管理、内存管理、文件系统以及并发和同步等关键领域。文章还将讨论操作系统在云计算、物联网(IoT)和安全性方面的新挑战,为读者提供对操作系统复杂性的全面理解和未来发展方向的洞见。
65 1
|
6月前
|
存储 Unix Linux
深入理解操作系统:从概念到实践
【6月更文挑战第29天】本文将带领读者深入探索操作系统的奥秘,从其基本概念到实际应用。我们将一窥操作系统如何管理计算机硬件资源,提供用户接口,以及实现文件系统和网络通信等功能。文章不仅解读了操作系统的核心原理,还通过具体案例展示了这些原理在现代计算环境中的应用。无论你是软件开发者、系统管理员还是对计算机科学感兴趣的学生,这篇文章都将为你提供宝贵的知识和洞见。
|
6月前
|
存储 安全 调度
深入理解操作系统:从基础概念到高级应用
本文将深入探讨操作系统的基本概念、功能和特性,以及其在现代计算环境中的应用。我们将从操作系统的定义和历史开始,然后详细介绍其主要组件和工作原理,包括进程管理、内存管理、文件系统和设备管理等。最后,我们将讨论一些高级主题,如操作系统的安全性、性能优化和虚拟化技术。无论您是计算机科学的学生,还是对操作系统有兴趣的技术人员,这篇文章都将为您提供深入理解和应用操作系统所需的知识和技能。