计算机系统结构实验报告Linux,计算机操作系统体系结构实验报告.doc

操作系统实验报告

实验目的:

随着操作系统应用领域的扩大,以及操作系统硬件平台的多样化,操作系统的体系结构和开发方式都在不断更新,目前通用机上常见操作系统的体系结构有如下几种:模块组合结构、层次结构、虚拟机结构和微内核结构。计算机操作系统体系结构一、模块组合结构   操作系统刚开始发展时是以建立一个简单的小系统为目标来实现的,但是为了满足其他需求又陆续加入一些新的功能,其结构渐渐变得复杂而无法掌握。以前我们使用的MS-DOS就是这种结构最典型的例子。这种操作系统是一个有多种功能的系统程序,也可以看成是一个大的可执行体,即整个操作系统是一些过程的集合。系统中的每一个过程模块根据它们要完成的功能进行划分,然后按照一定的结构方式组合起来,协同完成整个系统的功能。如图1所示:   在模块组合结构中,没有一致的系统调用界面,模块之间通过对外提供的接口传递信息,模块内部实现隐藏的程序单元,使其对其它过程模块来说是透明的。但是,随着功能的增加,模块组合结构变得越来越复杂而难以控制,模块间不加控制地相互调用和转移,以及信息传递方式的随意性,使系统存在一定隐患。 二、层次结构   为了弥补模块组合结构中模块间调用存在的固有不足之处,就必须减少模块间毫无规则的相互调用、相互依赖的关系,尤其要清除模块间的循环调用。从这一点出发,层次结构的设计采用了高层建筑结构的理念,将操作系统或软件系统中的全部构成模块进行分类:将基础的模块放在基层(或称底层、一层),在此基础上,再将某些模块放在二层,二层的模块在基础模块提供的环境中工作;它只能调用基层的模块为其工作,反之不行。严格的层次结构,第N+l层只能在N层模块提供的基础上建立,只能在N层提供的环境中工作,也只能向N层的模块发调用请求。   在采用层次结构的操作系统中,各个模块都有相对固定的位置、相对固定的层次。处在同一层次的各模块,其相对位置的概念可以不非常明确。处于不同层次的各模块,一般而言,不可以互相交换位置,只存在单向调用和单向依赖。Unix/Linux系统采用的就是这种体系结构。  在层次结构中,强调的是系统中各组成部分所处的位置,但是想要让系统正常运作,不得不协调两种关系,即依赖关系和调用关系。 依赖关系是指处于上层(或外层)的软件成分依赖下层软件的存在、依赖下层软件的运行而运行。例如,浏览器这部分软件就依赖GUI的存在和运行,GUI又依赖操作系统的存在和运行。在操作系统内部,外围部分依赖内核的存在而存在,依赖内核的运行而运行,内核又依赖HAL而运行。处在同层之内的软件成分可以是相对独立的,相互之间一般不存在相互依赖关系。 三、虚拟机结构      虚拟机的基本思想是系统能提供两个功能:多道程序处理能力;提供一个比裸机有更方便扩展界面的计算机。操作系统是覆盖在硬件裸机上的一层软件,它通过系统调用向位于它之上的用户应用程序服务。从应用程序的角度看来,操作系统像是一台“计算书”,只不过它的功能比硬件裸机更强,它的指令系统是系统调用集而己。因此,从概念上来讲,操作系统是“虚拟机”。这是“虚拟机”概念的来源。利用CPU调度以及虚拟内存技术,操作系统可以给运行于系统中的进程以假象:好像进程拥有自己的CPU和存储器,如同系统中只有一个进程,系统所有资源都为它服务。从这个角度来讲,操作系统为每一个进程创建了一个使该进程独立运行于其中的“虚拟机”,在这个“虚拟机”中,进程拥有自己的“CPU”和“存储器”,同时进程还得到了硬件所无法提供的文件系统功能。虚拟机操作系统就是根据这一想法而产生的。   虚拟机操作系统不提供传统操作系统中的文件系统的功能。最初的虚拟机仅仅为进程提供一个访问底层的接口,它通过对硬件的复用提供给每一个进程以硬件的一个拷贝,因此能够直接的运行在硬件上的程序都可以直接运行在虚拟机之上。后来出现了另外三种体系结构的虚拟机:由机器虚拟指令映射构成的虚拟机虚拟机操作系统并没有提供一个供应用程序直接运行的现成环境,它仅仅是对硬件进行(分时)复用从而得到硬件的多个拷贝,应用程序不可以直接运行在硬件之上,因此它也无法运行在虚拟机操作系统之上。通常的情况是,普通的操作运行在虚拟机之上。而应用程序运行在各自的操作系统之上,由于虚拟机操作系统是通过(分时)复用硬件资源同时提供多台虚拟机,因此同时可以有多个不同的操作系统运行在同一物理硬件机器之上,因此可以有多个不同操作系统的应用程序可以同时运行在同一台物理硬件机器之上。   虽然虚拟机操作系统有着诱人的特性,但是最突出的一个问题是实现比较困难。如果要实现的是底层硬件的完全拷贝,也即它要模拟硬件几乎所有的特性,那将是相当困难的一件事情。因此现代许多商业虚拟机采用映射部分指令结合直接调用宿主操作系统功能的方法,但这样必然会导致虚拟机性能的损失,所以

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

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

相关文章

python列表的表示形式_python 列表推导式

1、列表推导式书写形式:[表达式 for 变量 in 列表] 或者 [表示式 for 变量 in 列表 if 条件]1 #!/usr/bin/python2 #-*- coding: utf-8 -*-34 li [1,2,3,4,5,6,7,8,9]5 print [x**2 for x inli]67 print [x**2 for x in li if x>5]89 print dict([(x,…

linux sh 编程,Linux shell 编程入门

shell 编程概念(1) shell是一种命令行解释器,外壳有很多种类(2) shell 看成是Linux内核和用户沟通的桥梁,用户默认不能直接操作内核(3)可以通过shell外壳去操作,用户指令传递给shell,传递给Linux内核,内核接受去处理(4…

云科技网络验证源码_面向虚拟化架构和容器云的开源安全工具

随着云和虚拟技术发展,docker容器的使用越来越流行和方便。有很多企业已经把基础架构由传统实体机转移到了虚拟机化架构,基于公有云、私有云以及容器云构建在线服务。与容器相关的安全性对变得越来越重要。与传统的安全性方法相比,虚拟化架构…

linux ubuntu 安装yum,ubuntu使用yum安装软件问题

其实ubuntu是不应该用yum来管理软件安装的,只是后来才发现的,这里记录一下尝试的过程。一开始是想把windows桌面上的文件拖到xshell登录的ubuntu的目录中,但是没成功,参考https://blog.csdn.net/liuao107329/article/details/4999…

kali linux 桌面消失_kalilinux系统设置不见了的解决方案

kalilinux的系统设置不见了是由于删除软件或者错误配置导致的,解决方法是重新安装桌面环境。下面我给出几个不同桌面环境。KDE桌面1.KDE Plasma Desktop (最小化的等离子桌面)安装:apt-get install kali-defaults kali-root-login desktop-base kde-plas…

linux异步实现原理,Android异步处理四:AsyncTask的实现原理

分析:在分析实现流程之前,我们先了解一下AsyncTask有哪些成员变量。privatestaticfinalintCORE_POOL_SIZE 5;//5个核心工作线程privatestaticfinalintMAXIMUM_POOL_SIZE 128;//最多128个工作线程privatestaticfinalintKEEP_ALIVE 1;//空闲线程的超时时间…

ue4集合类型_UE4项目问题集合

debugeditor模式下,在LoadPackage过程中crash,vs报出Stack overflow的错误这是由于Package层数过多,vs栈不够用导致的。而ue4用UBT导致不能直接修改项目的栈大小。之前项目后期就因为这个崩溃导致大家没法再用debug模式进行开发。直接的解决办…

mysql5.7 for linux7,大道浮屠诀---mysql5.7.28 for linux安装

环境:redhat6.5安装RMP包的具体操作如下:1、如有mariadb,先卸载rpm -qa |grep mariadbrpm -qa |grep mysql*rpm -e --nodeps xxxxxx (卸载查询到的rpm包)2、安装新的mysql5.7.28,解压安装包tar -xvf mysql-5.7.28-1.el6.x86_64.rpm-bundle.t…

python中提供怎样的内置库、可以用来创建用户界面_使用外部GUI库在Autodesk中创建用户界面可能会...

我不确定这是否有关联,但一些谷歌搜索发现PyQt在玛雅内部非常流行。您可以尝试使用here或here(用源代码解释了here)通过Maya创建一个新的线程循环并在其中执行。似乎Maya包含了一个模块,用于设置新的线程对象,其中包含一个QApplication&#…

做raid会损坏linux文件吗,如何从损坏的RAID系统挂载磁盘?

我有一个可怕的情况,我必须在救援的Debian Linux中从损坏的RAID系统中恢复数据。我只想以只读方式将它们全部挂载到/ mnt / rescue,以便能够将VMWare GSX映像复制到另一台计算机上,并稍后将它们迁移到ESXi。相关命令的输出如下。fdisk -lDisk…

flutter字体不跟随系统_Flutter自定义字体无法加载

SOLVED :我仍然不确定问题是什么,但我通过简单地创建一个新的Flutter项目,在新项目中设置字体,然后将我的.dart文件粘贴到新项目中来修复它 . 即使一切都完全相同(据我所知),它运作良好 . 去搞清楚 .我试图在我的应用程…

c语言求乘法,急!!!!c语言:求n次多项式的加法和乘法

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼if(s->data.coef!0.0){s->data.expnp->data.expn;r->nexts;rs;}pp->next;qq->next;break;case 1:s->data.coefq->data.coef;s->data.expnq->data.expn;r->nexts;rs;qq->next;break;}//switch}…

一维数组kmeans聚类c语言,一维数组的 K-Means 聚类算法理解

刚看了这个算法,理解如下,放在这里,备忘,如有错误的地方,请指出,谢谢需要做聚类的数组我们称之为【源数组】需要一个分组个数K变量来标记需要分多少个组,这个数组我们称之为【聚类中心数组】及一…

ktor框架用到了netty吗_Ktor-构建异步服务器和客户端的 Kotlin 框架

软件简介Ktor 是一个使用 Kotlin 以最小的成本快速创建 Web 应用程序的框架。Ktor 是一个用于在连接系统(connected systems)中构建异步服务器和客户端的 Kotlin 框架。它由 Kotlin团队创建,因此,它充分利用了 Kotlin 的语言特性,为开发者提供…

c语言根据图片轮廓图,c语言通过opencv实现轮廓处理与切割

c语言通过opencv实现轮廓处理与切割发布时间:2020-10-14 11:00:33来源:脚本之家阅读:89作者:Farmwang注意在寻找轮廓时要选择中寻找外层轮廓RETR_EXTERNAL#include "opencv/cv.h"#include "opencv/highgui.h"…

多层协议解析 c语言,基于DPI的应用层协议书解析.doc

专业资料精心整理摘要随着互联网在中国的迅速发展,全国各大网络运营商的网络规模都在不断扩张,网络结构日渐复杂,网络业务日趋丰富,网络流量高速增长,这使得网络管理的要求和难度都大大提高。因此,网络运营…

r4900g3系统安装linux_H3C UniServer R4900 G3服务器NVMe硬盘配置阵列方法以及相关操作...

一.配置NVMe硬盘的前期准备1. 安装Intel NVMe VROC 秘钥模块,该选件全称为H3C-RS3M1NVS-Intel NVMe VROC模块是一个硬件安装到主板上的NVMe SSD VROC模块接口上。Intel NVMe VROC 秘钥模块一共有如下三个版本:标准版:支持创建RAID 0、RAID 1和…

员工任务管理系统c语言,C语言职工信息管理系统课程设计任务书.docx

C语言课程设计任务书一、题目:职工信息管理系统二、目的和要求目的:要求熟练掌握C语言的基本知识和编辑技能;基本掌握结构化程序设计的基本思路和方法。要求:设计一个职工信息管理系统,使之能提供以下功能:…

android 判断 string 是否是字母数字,Android中判断字符串中必须包含字母或者数字...

public static boolean isLetterDigit(String str){boolean isDigit false;//定义一个boolean值,用来表示是否包含数字boolean isLetter false;//定义一个boolean值,用来表示是否包含字母for(int i0 ; iif(Character.isDigit(str.charAt(i))){ //用cha…

server 群辉emby_群晖容器中搭建支持硬件编码的Emby Server教程及注意事项

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼我装的ubt20,intel显卡已经GVT-t直通给群晖虚拟机,再映射给EMBY的docker了,权限什么都给了,命令测试都正常一播放就只会选择软解,CPU100%,不知道怎么回事rootd…