windows系统多复杂的简单介绍
windows操作系统与linux操作系统相比各有什么优缺点
一、特点不同
创新互联公司2013年成立,是专业互联网技术服务公司,拥有项目网站制作、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元永登做网站,已为上家服务,为永登各地企业和个人服务,联系电话:13518219792
Windows系统直观、高效的面向对象的图形用户界面,易学易用,Windows用户界面和开发环境都是面向对象的,这种操作方式模拟了现实世界的行为,易于理解、学习和使用;Linux适用性强,微型计算机的Linux系统也能够移植到大型计算机中运行。
二、软件获取的途径不一样
windows系统每一种特定功能可能都需要商业软件的支持,需要购买相应的授权;linux系统大部分软件都可以自由获取,同样功能的软件选择较少。
三、源代码公布不一样
linux系统源代码完全公开;Windows系统只留出必要的接口。
四、兼容不一样
Windows系统兼容软件比较多;linux系统则兼容比较少。
五、稳定性不同
Linux的主机连续运行一年以上不蓝屏、不关机是很平常的事;而Windows系统有时候会莫名其妙的蓝屏。
六、要求不一样
windows系统使用比较简单,容易入门。图形化界面对没有计算机背景知识的用户使用十分有利;linux系统图形界面使用简单,容易入门。文字界面,需要学习才能掌握。
七、学习的难度不一样
windows系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习困难;linux系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。
装非windows系统到底有多复杂?
以mas os为例,如果你不是苹果电脑的话,难度系数可以达到四颗星。虚拟机能使用就很厉害了,你得配置clower文件,关键还要看有没有支持你主板的clower文件,这个是系统跑码重要步骤,就算后面你成功了也有百分之九十的电脑装不了网卡驱动,上不了网,安装系统前不仅要配置clower文件,还要苹果镜像,还要空出一个磁盘,转换为os可以读取的格式。
开发一个 windows 级别的操作系统难度有多大
作为曾经的码农来回答一下
开发一个类似win的成熟的桌面级操作系统,难度高过众所周知的曼哈顿计划和登月计划,是不是觉得有些夸张?但事实可能就是这样。
vista代码行数5000万行,打印出来是170万页A4纸,耗资超过200亿美元,这还是有了微软那么多年积累,只开发vista的费用,win7 4000万行,win10数据没有公布,但行业预估在5000到7000万行。
win7公开的开发工作人数是23个小组,每个小组约40人,分别负责windows中的每个模块的开发,比如设备和媒体,文件系统,桌面图形等等,这还是在vista基础上的开发,并不是从头开发。
windows的发展已经有了30年,中间的积累,走的弯路都不是外人可以轻易得知的。
我国的自助操作系统,实际都是开源系统的二次开发,远不是从0开始的建设,而且软件的开发并不是1+1=2那么简单。不是说你能盖5层楼,我给你投两倍人力物力你就能盖出十层楼来。
说个有趣的小故事吧,微软的excel现在已经成为了祖传代码,里边存在很多无用代码,但微软自己都不敢把excel重新写一遍。
操作系统概念学结
经过一天半的战斗,终于把操作系统概论这本书给拿下了。对于曾经专业课学过一些电脑硬件知识的我来说,这本书更加吸引我,以前一些听过的名词或高大上的词语在这本书上被详细介绍了,看的非常有收获。下面来总结下自己的收获:
首先第一章引论,在这里首先介绍了计算机系统,包括了软件和硬件两部分。
接下来就是第一章的重点:操作系统。如下图:
当前流行的操作系统有windows、unix、linux等。微软的windows系统经历了一个从简单到复杂,从低级到高级的过程;从ms-dos---windows 3---windows 95---windows 98---windows nt---windows 2000,再到现在win7、8甚至win10,微软始终在进步。unix是一个通用的交互式分时操作系统,有att公司下属的bell实验室开发,在诞生后,源代码就一直公开,用户可以参与到unix的升级中。unix的特点:1.短小精悍;2.可装卸的多层次文件系统;3.可移植性好;4.网络通信功能强。linux是网络时代的产品,继承于unix,并做了很多改进。
第一章总领了全书,后面的二三四五六章都是讲的计算机的各种管理,总结如下图:
在这里我把每章中的重点用红色的颜色标记出来了,这样在精读的时候就可以有重点的向外扩散,抓住考点,征服考试。第一遍阅读画的有点粗糙,在精读的时候再大大的丰富下。
操作系统概念学结 [篇2]
1.什么是计算机性能
所谓计算机的性能(performance)通常是指计算机的速度,它是程序执行时间的倒数。而程序执行时间是指用户向计算机送入一个任务后,直到获得他需要的结果这一段等待时间。
包括:
1.访问磁盘和访问存储器的时间
2.cpu 运算时间
#url#动作时间
4.操作系统的开销时间等。
2.linux桌面操作系统性能分析意义
1.操作系统的性能直接影响了其上应用系统的性能
2.性能评估结果是用户在操作系统选购过程中的重要参考指标
3.为开发者优化操作系统的性能提供指导
4.为操作系统的评测提供依据
3.linux桌面操作系统性能分析难点
1.应用千差万别
2.测试点过多
3.依赖多种因素和特征
4.没有针对性
5.没有实际应用前景
4.如何评测计算机的性能
1.机器级的性能评测
机器级的性能评测,包括 cpu 和存储器的某些基本性能指标,计算机的可用性与有效性以及机器成本、价格与性/价比等,它是引进和购买计算机时最主要的选择依据。
2.算法级的性能评测
算法级的性能评测方法主要用于并行机评测,最初大都是为了评价并行算法的性能提出的,后来这些评测方法也被推广到并行程序上。
3.程序级的性能评测
程序级的性能评测主要是使用一组基准测试程序(benchmark)测试和评价计算机系统的各种性能。
5.测试程序准确度层次
1.真实程序
通过运行实际应用程序, 例如 c 语言的各种编译程序、 tex 文本处理软件、 cad 设计工具 spice等
2.核心程序
它是从实际程序中抽取少量但很关键的代码段,并以此来评估程序性能
3.小测试程序
这些测试程序的代码长度一般在100行之内,用户可以根据自己的目的随时编写一些小段程序,并按已预知的输出结果(如皇后问题、排序问题、求素数等)来判断机器的性能。
4.综合测试程序
它是首先对大量的应用程序中的操作进行统计,得到各种操作比例,再以此比例人为制造出测试程序。
6.基准测试 6.1 含义
基准测试程序用于测试和预测计算机系统的性能, 揭示不同结构机器的长处和短处,为用户决定购买或使用哪种机器最适合他们的应用要求提供决策。基准测试程序试图提供一个客观、公正的评价机器性能的标准。
6.2 分类
宏观微观:
宏观基准测试程序(macro-benchmark)和微观基准测试程序(micro-benchmark)两大类。 前者将计算机系统作为一个整体来测试其性能,它相对于某一应用类来比较不同的计算机系统,所以对机器买主很有用,但它不能揭示计算机系统性能好、坏的原因。后者是测试机器的某一特定方面的性质,如cpu速度、存储器速度、i/o速度、os性能、网络特性等。
应用类别:
定点性能
浮点性能
web服务性能
数据处理性能
系统软件性能
科学与工程计算性能
6.3 主要的基准测试工具
lmbench
是由sgi的larry mcvoy所维护,是一种用于测试不同 unix 平台上 os 开销以及处理器、高速缓存、主存、网络和磁盘之间数据传输能力的可移植的基准测试程序。
whetstone
比较不同的计算机的浮点性能而设计的综合性基准测试程序。lmbench 着重测量以下内核组件:调度程序、进程管理、通信、联网、内存映射和文件系统。
dhrystone
主要为测试整数与逻辑运算性能而设计的综合型基准测试程序whetstone,dhrystone不能预测用户程序性能,这些基准程序的主要缺点是对编译程序比较敏感。
linpack
测试的基准是用全精度64位字长的子程序求解100阶线性方程组的速度,测试的结果以mflops(每秒百万次浮点运算)作单位给出。
spec
原主要是测试cpu性能的,现在强调开发能反映真实应用(如实际负载等)的基准测试程序,并已推广至客户/服务器计算、商业应用、i/o子系统等。
unixbench
应用比较广泛的unix类操作系统性能测试工具之一,它属于微观基准测试程序,它主要从cpu浮点运算能力,以不同缓冲区大小拷贝不同大小文件,管道吞吐量,进程生成速度,系统调用开销等方面来测试linux相关性能。
xbench
主要测试 xwindow 图形界面的性能。
iozone
文件系统的评测工具,对read,write,re-read,re-write,read backwards,read
strided,fread,fwrite,random read,pread,mmap,aio-read,aio_write 等一系列文件i/o性能进行了评测,是十分有用的文件系统性能分析工具。
ltp
最大的 linux 性能测试团体 linux test project 开展的开源测试项目, 这个团体专门从事 linux 性能测试研究。 这个项目收集了各种 linux 内核测试工具和相关资料, 它的目标就是为了通过把自动化测试引入到 linux 内核测试以提高linux 内核性能。
6.4 现状和不足
linux 基准测试程序都是微观基准测试程序,都是在测试机器的某一特定方面的性质,分别着重于 cpu 速度、存储器速度、i/o 速度、网络特性等等某一方面或多个方面,偏重于硬件。把 linux 操作系统作为一个整体,针对 linux 的操作系统性能的宏观基准测试程序目前还没有。
现有的linux测试工具都是基于微观基准测试程序,对于操作系统而言微观可测点实在是太多,写一个全面的基于自顶向下三层的全面测试工具工作量大,并且也没有太大实用价值。毕竟应用是千差万别的,不利于在有限的时间内快速的得出 linux 版本性能优劣结论。
7.性能评测方法学
如何进行性能评测,一般一个性能评测的实际解决方案应该包括以下三个方面:
1.让被评测系统处于压力负荷下;
2.测量系统执行有效特定任务的能力,执行特定任务的耗时,执行特定任务的 cpu 利用率;
3.基于性价比考虑进行改进。进行性能评测分析的目的是为了帮助开发人员更好更深层次的理解系统, 找出系统瓶颈,并作出相应的改进。
8.三种性能评价技术
1.分析技术(modeling)
分析技术也叫建模分析,在一定假设条件下,计算机系统参数与性能指标参数之间存在着某种函数关系,按其工作负载的驱动条件列出方程,用数学方法求解。
2.模拟技术(simulation)
模拟技术按被评价系统的运行特性建立系统模型; 按系统可能有的工作负载特性建立工作负载模型;语言编写模拟程序,模仿被评价系统的运行;设计模拟实验,依照评价目标,选择与目标有关因素,得出实验值,再进行统计、分析。该技术的特点是可应用于设计中或实际应用中的系统,可与分析技术相结合,构成一个混合系统。
3.测量技术(measurement)
测量技术只能对已投入使用的系统进行测量, 通常采用不同层次的基准测试。
9.工作量选区(workload)
工作量就是模拟实际工作的工作任务,一个工作量它要产生针对该被评测系统实际工作应用的典型的工作任务,并且该工作任务应该对系统产生相应的压力负荷 ,一个好的性能评测工作量应该包括以下基本特征。
可测量性
可反复性
不变性
典型性
10.自顶向下分析法
1.系统层(system level):包括处理器、内存、硬盘、网络等;(硬件资源)
2.应用层(appalication level):包括锁、线程、堆、api 等;(程序资源)1
3.微结构层(micro-achitecture):包括数据队列、循环结构、cache 优化等。
11.衡量linux桌面系统性能评价的主要标准和参数
1.响应时间(elapsed time)
内核完成某一任务(程序)所花费的时间,如磁盘访问、存储器访问、输入/
输出等待。
2.cpu 时间
程序在cpu中的执行时间。以秒为单位。
3.cpu 利用率
12.衡量linux桌面操作系统性能评价的主要标准
提供一个统一的、客观的、公正的和可相互比较的评价计算机的标准。
1.权威性
不是自己凭空想象,要有可靠的理论及事实依据支撑,业界广泛认可。
2.系统化
不是现有benchmark和工具的简单组合,而是能够系统化评估整机性能的方案。
它能够反映出整个计算机软件及硬件的综合处理能力,而不单纯是软件或者硬件,也就是说同一个硬件平台上测试,能够反映出不同操作系统性能不同,且在同一个操作系统,在不同的硬件平台上,性能测试也应该有所不同。
3.全面性
是对整机的整体性能测试,不是单纯的某个硬件或者某一方面能力的测试。
4.实用
要求该方法有实用价值,参考意义。
5.公正性
不一某些利益为目的的。
13.如何确定测试负载
从微观基准理论的角度来看,操作系统的基本性能参数实在是太多,基本性能参数测试包括 cpu、内存、i/o、网络、操作系统、文件系统、编译器、数据库的性能指标。
从宏观基准测试理论出发就简单多了, 主要是要确定合适的工作量来模拟有代表性的用户作业。工作量的确定需要一定的理论依据,可以借鉴现有各种linux 测试工具实践结果。
14.如何测试linux操作系统性能
linux 桌面操作系统是近几年来基于 linux 内核发展起来的面向用户桌面应用的操作系统,内核还是基于 linux,只是在其上添加了很多窗口程序,并且在用户界面和友好度上作出了很大的改进,更加易用和实用。
测试 linux 性能的关健在于测试 linux 内核性能,而测试 linux内核性能又可以细化成五大子系统的测试。可以针对内核这五大子系统设计工作量负载。
操作系统概念学结 [篇3]
linux操作系统学结(一)
最近粗略地看了一遍linux操作系统的书籍,主要讲的都还是一些概念上的知识,并没有深入地去了解内核以及内部机制。现在总结一下看了书后的一些知识上的收获:
linux最大的魅力是支持gpl,并且以网络为核心。其实操作系统的作用就是有效地整合软、硬件资源而为用户工作。操作系统提高了开发的效率,我学习linux,关键也是在于研究了解其内核构造。
说到linux的历史,其最初版本是有芬兰的一个大学生linustorvalds开发的,现在的linux版本是聚集了很多人的智慧后开发出来的。linux包含了人们对操作系统的很多期望,比如真正的多任务、虚拟内存、世界上最快的tcp/ip程序、共享库以及多用户支持等,而很多这些功能在windos中都是没有支持的。linux继承了unix的几乎所有特征,又有新创的许多新特征。在home根目录下可以创建多个用户目录,而实现多用户操作。其文件系统与windos也是有很大的区别的。linux还有丰富的接口。它的源码开放,可以跨越多个平台。总之,linux的强势在与它的网络功能和硬件的高效率。
linux是以独占方式执行最低层的任务,包括程序级及用户级的级别。与图形界面比起来,shell用起来更加直接与快速。设备驱动程序开发在linux下显得更加简单和方便。从linux2.0内核版本开始支持多内核模式,并且引入动态的模块技术,是系统在运行时可以修改内核,实现了内核的动态可伸缩性,但是也带来了一定的负面影响即不稳定性。
我国的linux研究仍然走在世界一流水平的后面。linux内核发展方向主要是硬件支持,嵌入式系统和分布式系统三个方面。这需要大量的硬件驱动程序开发以及互联网分布式系统开发。
处理机即为cpu。在但处理机系统中,并不存在真正意义上的并发执行,只是串行执行的家乡而已。提高处理机的使用率关键是要合理地安排各个程序之间的相互切换。作业其实就是用户的一个请求,而联机作业需要各个设备之间的交互性地执行。shell命令具有交互性,实时性较强,可以一次执行一条命令或者批处理执行脚本命令。进程是动态执行的程序。linux下的进程应该与windos下的进程是一致的,每一个进程都有一个唯一的标识号。而进程树清晰地展现了进程之间的关系。进程控制块pcb包含了处理器以及文件系统的大量信息,很多进程都是根据pcb来进行调度的。
linux中使用的虚拟存储器的作用是使用有限的内存发挥出巨大的作用,根据程序运行的局部原理来吧物理内存划分成有一定规则的小块,每次只装入需要运行的小块到内存中运行。这需要合理地调配内存与外存之间的关系,把内存中不需要的小块暂时存放至外存之中,而cpu只进行部分程序的访问。通过多次地交换内外存之间的信息来制造假象,这就是虚拟内存。系统采用段机制以及三级分页机制。
我们知道设计操作系统的目的是为了最大限度地利用硬件资源,是cpu尽可能地处于工作状态,这就需要一个良好的cpu调度了。处理机调度的级别从高至低依次分为作业调度、交换调度、进程调度和线程调度。作业调度是最高级别的,是针对作业的创建以及结束进行的;交换调度是指进行内外存之间进程的相互调换;进程调度是指进程的各个状态之间的转换;而最后的线程调度是指占用处理机与否之间的转换。
外设通常是指除了cpu与内存之外的硬件设备统称外设。通过接口进行连接和统一管理。设备管理的目的是管理协同好繁多的外部设备,是它们能够有序的工作。在linux中把设备当作文件进行统一管理,可以用文件操作方式来操作硬件设备。设备驱动程序的作用是直接操作硬件,并且为其提供接口。
linux的文件系统是其很重要的一个部分。文件系统进行数据以及设备的统一管理,并为用户命令和系统函数提供统一的服务接口。在进程控制块pcb中有文件的系统信息。把设备均抽象为文件进行统一的管理,并为设备管理提供统一的接口。
默认的文件系统是ext2。虚拟文件系统是位于linux文件系统层析结构的顶层,进行管理各种逻辑文件系统,或者说是同化各类逻辑文件系统,实现其跨平台的特性。
linux文件系统采用多重索引的方式,类似于数据结构中的链表方式。文件系统中的每一个文件,目录以及设备均同级,并且对应于一个i节点。内存中的i节点是磁盘中的i节点的映像,目的是减少设备存取的次数,提高文件的访问效率。
linux目录本身也是一种文件,称为目录文件。单级目录存在文件命名的冲突,而在多级目录中,使用目录树来记录目录结构。在文件共享中,一般使用文件的绝对路径来访问文件,如果要进行共享文件的话,必须先回溯,在向下寻找共享的文件,这样的方法效率比较低下。而通过改进的链接文件的方法进行文件共享,会使目录树形成网状结构。
linux系统的根目录是root目录,其下面有多个默认的子目录。bin是实用程序的子目录,存放常用的系统工具;boot子目录存放系统启动时的映像文件;dev子目录中为每个设备均分配了一个i节点;ect是基本数据子目录,存放系统的用户口令,网络配置等设置文件;home是用户数据子目录,默认情况下的用户登录后均到达这个子目录;lib目录存放库函数;root是超级管理员的用户目录等。
虚拟文件系统vfs进行统一管理各种类型的文件系统,无法存在于物理磁盘当中,只能存在与内存之中,负责管理并控制下层的逻辑文件系统,可以支持多种不同的逻辑文件系统,它为多种逻辑文件系统提供了统一的接口并进行管理。
总之,粗略地学习了linux操作系统知识后,对整个系统的架构和组成有了一定的了解,特别是linux特殊的文件系统和存储管理有了较深的印象和理解。今后有机会一定要更深地了解linux的内部构造。
操作系统概念学结 [篇4]
1.什么叫同步? 相互合作的两个进程之间需要在某个(些)确定点协调它们的工作,一个进程到达了该点后,除非另一进程已经完成了某些操作,否则就不得不停下来,等待这些操作的完成。这就是进程间的同步。
什么叫互斥?
两个进程由于不能同时使用同一临界资源,只能在一个进程使用完了,另一进程才能使用,这种现象称为进程间的互斥。
①同步的主要特征是:一个进程在某一点上等待另一进程提供信息,两进程之间存在直接制约关系,其表现形式为进程—进程。②互斥的主要特征是争用资源,两进程间存在间接制约关系,其表现形式是进程—资源—进程。
2.试给出p、v操作的定义。
p、v操作是定义在信号量s上的两个操作,其定义如下:
p(s):①s:=s-1;②若s≥0,则调用p(s)的进程继续运行;③若s<0,则调用p(s)的进程被阻塞,并把它插入到等待信号量s的阻塞队列中。
v(s):①s:=s+1;②若s>0,则调用v(s)的进程继续运行;③若s≤0,则从等待信号量s的阻塞队列中唤醒头一个进程,然后调用v(s)的进程继续运行。
如何利用p、v操作实现进程间的互斥?
p、v操作是解决同步与互斥问题的有力工具。为解决互斥问题,应采取如下步骤: 首先根据给定问题的描述,列出各进程要执行的程序。其次,设置信号量。互斥问题中,在临界区前面加p(s),临界区后面加v(s)。最后确定信号量的初值。在互斥问题中,信号量通常取为互斥资源的个数。
说明信号量的物理意义:
信号量s>0时,s的`数值表示某类可用资源的数目,执行p操作意味着申请分配一个单位的资源;当s≤0时,表示无资源可用,此时s的绝对值表示信号量s的阻塞队列中的进程数。执行v操作意味着释放一个单位的资源。
3.如何利用p、v操作实现进程间的同步?
p、v操作是解决同步与互斥问题的有力工具。为解决同步问题,应采取如下步骤:首先根据给定问题的描述,列出各进程要执行的程序。其次,设置信号量。同步问题中有几个同步点就设置几个信号量,等待的地方加p(s),发信号(解除等待)的
地方加v(s)。最后确定信号量的初值。在同步问题中,信号量的初值一般取0.在同步和互斥中,信号量初值的设置有何不同:在同步问题中,信号量的初值一般取为0,在互斥问题中,信号量通常取为互斥资源的个数。
4.高级通信原语有何优点?
能够实现在进程之间传递大量的信息。
在消息缓冲通信方式中,发送原语和接收原语的主要功能是什么?
发送原语的作用:将欲发送的消息从发送区复制到消息缓冲区,并把它挂起在接收进程的消息缓冲队列末尾。如果该接收进程因等待消息而处于阻塞状态,则将其唤醒。
接收原语的作用:把发送者发来的消息从消息缓冲区复制到接收区,然后将消息缓冲区从消息队列中消去,如果没有消息可以接收,则进入阻塞状态。
5.什么是信箱?
信箱用于存放信件,而信件是一个进程发送给另一进程的消息。
信箱的数据结构:信箱头和信箱体。信箱头是信箱的描述部分,信箱体由若干格子组成,每个格子可存放一个信件。
信箱头包括的信息:①信箱名②信箱大小③已存信件数④空的格子数。
如何用信箱实现两个进程之间的通信?
进程a想向进程b发送消息前,先把消息组成一封信件,然后调用send原语向进程b发送信件,并将信件投入进程b的信箱中。进程b为得到进程a的消息,只要调用receive原语就可以从信箱中索取来自进程a的信件。这就完成了一次进程a到进程b的通信过程。
6.在网络操作系统中,为什么要采用消息传递的通信机制?
基于共享变量的通信方式适用于网络中各节点内部诸进程之间的通信,而基于消息传递的通信方式适用于网络中各节点之间的进程通信。
在消息传递的通信机制中有哪些通信方式?①通信原语 ②远程过程调用 ③组通信。
7.什么是同步原语?
当一个进程调用一个send原语时,在消息开始发送后,发送进程便处于阻塞状态,直至消息完全发送完毕,send原语的后继语句才能继续执行。当一个进程调用一个receive原语时,并不立即返回控制,而是等到把消息实际接收下来,并把它放入指定的接收区,才返回控制,继续执行该原语的后继指令。在这段时间它一直处于阻塞状态。上述的send和receive被称为同步通信原语或阻塞通信原语。
什么是异步原语?发送进程在调用send原语后,并不进入阻塞状态,它不等消息发送完就继续执行其后继语句。
在使用异步通信原语时,发送者在消息发送完成前为什么不能使用缓冲区?
因为倘若发送进程在消息发送完成之前,即在消息发送期间使用或修改原来的缓冲区,将会造成错误。
如何解决?
有两种办法(应采用异步原语):①采用带拷贝的非阻塞原语,即让内核把消息拷贝到内核缓冲区,允许调用进程继续运行。②带中断的非阻塞发送,即当消息发送完成后,中断发送进程,通知发送进程此时缓冲区可用。
8.在进程间通信如何保证消息不会丢失?
为了保证消息被对方收到,可采用可靠原语。具体作法是:客户向服务器方发一请求后,服务器对这一请求,由其内核向客户内核返回一个确认ack,当客户内核收到这一消息后,就唤醒客户进程。在客户与服务器之间的请求/应答共需四个消息:①从客户向服务器的请求②从服务器内核向客户内核返回一个确认③从服务器到客户的应答④从客户的内核向服务器内核返回一个确认。
9.远程过程调用:在网络或分布式系统中,设有任意两个节点a、b,节点a上的进程调用节点b上的一个进程时,节点a上的进程被挂起,在节点b上执行被调用的过程,消息以参数的形式从调用进程传送到被调用进程,并将被调用过程执行的结果返回给调用进程。这种通信方式称为远程过程调用。
其基本原理是什么?
允许某一节点上的程序调用其他节点上的过程或函数。例如节点机a上的进程调用节点机b上的过程,节点机a的调用进程被挂起,在节点机b上执行被调用过程。消息以参数的形式从调用过程传到被调用过程,被调用过程执行的结果再返回给调用过程。对程序员来说,他看不到消息传递过程和i/o处理过程。
10.rpc的透明性指的是什么?
指的是要使得远程过程调用尽可能像本地调用一样。调用过程应该不知道被调用过程是在另外一台计算机上执行,反过来也是如此,被调用过程也不应该知道是由哪个机器上的进程调用的。如何保证这一透明性:远程过程调用为实现其透明性,在客户机上设置一个客户代理,同样在服务器机上设置一个服务器代理。
11.简述远程过程调用的步骤。
①客户过程以通常方式调用客户代理。②客户代理构造一个消息并陷入内核。③本地内核发送消息给远程内核。④远程内核把消息送给服务器代理。⑤服务器代理从消息包中取出参数并调用服务器。⑥服务器完成相应的服务,将结果送给服务代理。⑦服务代理将结果打包形成一个消息并陷入内核。⑧远程内核发送消息给客户机内核。⑨客户机内核把消息传送给客户代理。⑩客户代理取出结果,返回给客户的调用程序。并以实例说明。
12.试说明远程过程调用的优缺点。
优点:格式化好、使用方便、透明性好;
缺点:缺乏灵活性。
在具体实现上尚有哪些难点需要解决?
①远程过程调用的参数在系统内不同机型之间的通用能力有所不足。②缺乏在一次调用过程中多次接收返回结果的能力。③远程过程调用缺乏传送大量数据的能力。
13.什么叫组通信?
在网络系统中,一个相互作用的进程集合称为组。一个发送者在一次操作中将一个消息发送给多个接收者的通信,称为组通信。
它应用于何种场合?在网络系统中可以采用组通信方式。
组通信的主要特征是?当一个消息发送给这个组时,该组的所有成员都可以接收,组通信具有“一对多”的形式,即一个发送者,多个接收者。
组通信的实现?组通信的实现在很大程度上依赖于硬件。在一些网络系统中,可以为组指定一个特殊的网络地址。可采用多播式、广播式、单播式。
开发一个window操作系统究竟要多少行代码呢?
微软的Windows系统是伴随我们已久的老朋友了,大多数人都是一代一代Windows的用上来,老用户几乎都形成一个共识,就是微软的系统有一代会很好,也有一代会很糟糕,比如Windows XP、Windows 7就很受欢迎,而Windows 2000、Windows Vista就是一个悲伤的故事。那么,微软的Windows系统用了这么久,究竟它有多少行代码呢?
Microsoft Windows问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。下面我们从代码行数、开发难度,参与人员的数量,开发的时间长度等角度来说说,一个windows系统有多复杂。
Windows XP大约40,000,000行代码。
Windows Vista 大约50,000,000行代码,算上修正掉的代码估计超过一亿行。内部版本超过上千个,每个版本都有所测试。为其做出贡献的正式工合约工临时工超过数万人。大概的工程量可能和胡夫金字塔相当。
Windows 7 大约50,000,000行代码。Windows 7开发的时候有23个小组,每个小组约40人,也就是将近1000人。这仅仅是Windows团队的人数,其余为其做出贡献的更是数不胜数。
几千万行代码的工作量是个什么概念?举个参照系吧,很多人在用的金山的WPS代码行数约有150万行,而金山软件公司重写这个级别的办公软件WPS,用了3年时间。
再比如微软在4年前的研发成本超过100亿美元,在开发Windows Vista的所花费的研发费用更是超过了恐怖的200亿美元。Linux内核开发根据人员投入的规模测算,也耗资数有十亿美元。
假如一个桌面级的操作系统代码规模在千万行数量级,如果加上配套软件,总规模应该超过一亿行,如果再加上一个完整的软件生态系统,那么总规模应该不少于十亿行。这还是成熟的系统,再加上调试精简前更多。再加上各个功能之间需要兼容性,可维护性,可管理性等这些随着代码的越来越多可推敲,需考虑的问题也会越来越多,是项技术难度非常大的工作!你觉得呢?
网站名称:windows系统多复杂的简单介绍
网站链接:http://azwzsj.com/article/dsipgsc.html