目录:
- 1、unixbench使用方法
- 2、怎样分析linux的性能指标
- 3、操作系统概念学结
- 4、虚拟机能测CPU和硬盘得分吗
unixbench使用方法
unixbench 是一个用于测试 unix 系统性能的工具,也是一个比较通用的 benchmark, 此测试的目的是对类Unix 系统提供一个基本的性能指示,很多测试用于系统性能的不同方面,这些测试的结果是一个指数值(index value,如520),这个值是测试系统的测试结果与一个基线系统测试结果比较得到的指数值,这样比原始值更容易得到参考价值,测试集合里面所有的测试得到的指数值结合起来得到整个系统的指数值。源于1995 年,基线系统是“George”,一个工作站:SPARCstation 20‐61,128MB RAM,Solaris2.3,此系统的指数值被设定为10,所以,如果一个系统的最后结果分数为520,意思是指此系统比基线系统运行快52 倍。
一 安装
Unixbench-5.1.2.tar.gz下载地址:
tar -xzvf unixbench-5.1.2.tar.gz
cd Unixbench-5.1.2
阅读README文件,得知如果不需要进行图形测试或者不在图形化界面下测试,则将Makefile文件中GRAPHICS_TEST = defined注释掉,我的是在46行。
make
二 使用
运行./Run
对于运行结果,说明如下:
测试项目
项目说明
基准线
Dhrystone 2 using register variables
测试 string handling
116700.0lps
Double-Precision Whetstone
测试浮点数操作的速度和效率
55.0MWIPS
Execl Throughput
此测试考察每秒钟可以执行的 execl 系统调用的次数
43.0lps
File Copy 1024 bufsize 2000 maxblocks
测试从一个文件向另外一个文件传输数据的速率。
3960.0KBps
File Copy 256 bufsize 500 maxblocks
测试从一个文件向另外一个文件传输数据的速率。
1655.0KBps
File Read 4096 bufsize 8000 maxblocks
测试从一个文件向另外一个文件传输数据的速率。
5800.0KBps
Pipe-based Context Switching
测试两个进程(每秒钟)通过一个管道交换一个不断增长的整数的次数。
12440.0lps
Pipe Throughput
一秒钟内一个进程可以向一个管道写 512 字节数据然后再读回的次数
4000.0lps
Process Creation
测试每秒钟一个进程可以创建子进程然后收回子进程的次数(子进程一定立即退出)。
126.0lps
Shell Scripts (8 concurrent)
测试一秒钟内一个进程可以并发地开始一个shell 脚本的 n 个拷贝的次数,n 一般取值1,2,4,8.
42.4lpm
System Call Overhead
测试进入和离开操作系统内核的代价,即一次系统调用的代价。
6.0lpm
怎样分析linux的性能指标
LR
监控
UNIX/Linux
系统方法
一、准备工作:
1.
可以通过两种方法验证服务器上是否配置
rstatd
守护程序:
①使用
rup
命令,它用于报告计算机的各种统计信息,其中就包括
rstatd
的配置信息。使用命
令
rup
10.130.61.203,
此处
10.130.61.203
是要监视的
linux/Unix
服务器的
IP
,如果该命令返回相关的
统计信息。则表示已经配置并且激活了
rstatd
守护进程;若未返回有意义的统计信息,或者出现一
条错误报告,则表示
rstatd
守护进程尚未被配置或有问题。
②使用
find
命令
#find / -name rpc.rstatd,
该命令用于查找系统中是否存在
rpc.rstatd
文件,如果没有,说明系统没
有安装
rstatd
守护程序。
2
.
linux
需要下载
3
个包:
(
1
)
rpc.rstatd-4.0.1.tar.gz
(
2
)
rsh-0.17-14.i386.rpm
(
3
)
rsh-server-0.17-14.i386.rpm
3
.下载并安装
rstatd
如果服务器上没有安装
rstatd
程序(一般来说
LINUX
都没有安装)
,需要下载一个包才有这个服
务
,
包
名
字
是
rpc.rstatd-4.0.1.tar.gz.
这
是
一
个
源
码
,
需
要
编
译
,
下
载
并
安
装
rstatd
(
可
以
在
这个地址下载)下载后,开始安装,安装步骤如下:
tar -xzvf rpc.rstatd-4.0.1.tar.gz
cd rpc.rstatd-4.0.1/
./configure
—配置操作
make
—进行编译
make install
—开始安装
rpc.rstatd
—启动
rstatd
进程
“
rpcinfo -p
”命令来查看当前系统是否已经启动了
rstatd
守护进程
只要保证
Linux
机器上的进程里有
rstatd
和
xinetd
这二个服务就可以用
LR
去监视了,通过以下
两点可以检查是否启动:
1
)检查是否启动
: rsh server
监听的
TCP
是
514
。
[root@mg04 root]# netstat -an |grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
如果能看到
514
在监听说明
rsh
服务器已经启动。
2
)检查是否启动
: rstatd
输入命令
: rpcinfo -p
如果能看到类似如下信息:
程序版本协议端口
100001
5
udp
937
rstatd
100001
4
udp
937
rstatd
100001
3
udp
937
rstatd
100001
2
udp
937
rstatd
100001
1
udp
937
rstatd
那就说明
rstatd
服务启动了
,(
当然这里也可以用
ps ax
代替
)
4
.安装
rsh
和
rsh-server
两个服务包方法
a.
卸载
rsh
# rpm
–
q
rsh----------
查看版本号
# rpm
-e
版本号
---------
卸载该版本。
b
.安装
# rpm
–
ivh rsh-0.17-14.i386.rpm rsh-server-0.17-14.i386.rpm
在启动
rpc.rstatd
时,
会报错
“
Cannot register service: RPC: Unable to receive; errno = Ction refused
”
。
解决方法如下:
# /etc/init.d/portmap start
# /etc/init.d/nfs start
然后再次启动
rpc.rstatd
就好了。
5
.安装
xinetd
方法:
①查看
xinetd
服务:
[root@localhost ~]# rpm -q xinetd
xinetd-2.3.14-10.el5
②安装
xinetd
服务:
[root@localhost ~]# yum install xinetd
如果安装不起
xinetd
服务,执行下列操作命令后再次执行
yum install xinetd
命令进行安装:
yum clean packages
清除缓存目录下的软件包
yum clean headers
清除缓存目录下的
headers
yum clean oldheaders
清除缓存目录下旧的
headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders)
清除缓存目录下的软件包
及旧的
headers
。
6
.启动
xinetd
服务:
在有的系统中,通过如下命令重启:
# service xinetd reload
# /sbin/service xinetd rstart
在
suse linux
中如下操作:
cd /etc/init.d/xinetd restart
2
)
安装完成后配置
rstatd
目标守护进程
xinetd,
它的主配置文件是
/etc/xinetd.conf ,
它里面内容是
一些如下的基本信息:
#
# xinetd.conf
#
# Copyright (c) 1998-2001 SuSE GmbH Nuernberg, Germany.
# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany.
#
defaults
{
log_type
= FILE /var/log/xinetd.log
log_on_success = HOST EXIT DURATION
log_on_failure = HOST ATTEMPT
#
only_from
= localhost
instances
= 30
cps
= 50 10
#
# The specification of an interface is interesting, if we are on a firewall.
# For example, if you only want to provide services from an internal
# network interface, you may specify your internal interfaces IP-Address.
#
#
interface
= 127.0.0.1
}
includedir /etc/xinetd.d
我们这里需要修改的是
/etc/xinetd.d/
下的三个
conf
文件
rlogin
,rsh,rexec
这三个配置文件
,
打这
三个文件里的
disable = yes
都改成
disable = no ( disabled
用在默认的
{}
中禁止服务
)
或是把
# default:
off
都设置成
on
这个的意思就是在
xinetd
启动的时候默认都启动上面的三个服务
!
说明:我自己在配置时,没有
disable = yes
这项,我就将
# default: off
改为:
default: on
,重启后
(cd /etc/init.d/./xinetd restart
)通过
netstat -an |grep 514
查看,没有返回。然后,我就手动在三个文
件中最后一行加入
disable
=
no
,再重启
xinetd
,再使用
netstat
-an
|grep
514
查看,得到
tcp
0.0.0.0:514 0.0.0.0:* LISTEN
结果,表明
rsh
服务器已经启动。
看到网上有的地方说使用如下命令:
# service xinetd reload
# /sbin/service xinetd rstart
不知道是在什么系统用的。
二、监控
linux
资源:
在
controller
中,将
System resource Graphs
中的
Unix resources
拖到右侧的监控区域中,并单击
鼠标右键选择“
Add
Measurements
”
,
在弹出的对话框中输入被监控的
linux
系统的
IP
地址,然后选
择需要监控的性能指标,并点击“确定”
,出现如下结果:
Monitor name :UNIX Resources. Cannot initialize the monitoring on 10.10.15.62.
Error while creating the RPC client. Ensure that the machine can be connected and that it runs the
rstat daemon (use rpcinfo utility for this verification).
Detailed error: RPC: Failed to create RPC client.
RPC-TCP: Failed to establish RPC server address.
RPC-TCP: Failed to communicate with the portmapper on host '10.10.15.62'.
RPC: RPC call failed.
RPC-TCP: recv()/recvfrom() failed.
RPC-TCP: Timeout reached. (entry point: CFactory::Initialize). [MsgId: MMSG-47190]
检查原因,发现是
Linux
系统中的防火墙开启了并且阻挡了
LoadRunner
监控
Linux
系统的资源,
因此要将防火墙关闭。
关闭防火墙:
[root@localhost ~]# /etc/init.d/iptables stop;
三、监控
UNIX
lr
监控
UNIX
,
UNIX
先启动一
rstatd
服务
以下是在
IBM AIX
系统中启动
rstatd
服务的方法:
1
.使用
telnet
以
root
用户的身份登录入
AIX
系统
2
.在命令行提示符下输入:
vi /etc/inetd.conf
3
.查找
rstatd
,找到
#rstatd
sunrpc_udp
udp
wait
root /usr/sbin/rpc.rstatd rstatd 100001 1-3
4
、将
#
去掉
5
、
:wq
保存修改结果
6
、命令提示符下输入:
refresh
–
s inetd
重新启动服务。
这样使用
loadrunner
就可以监视
AIX
系统的性能情况了。
注:在
HP UNIX
系统上编辑完
inetd.conf
后,重启
inetd
服务需要输入
inetd -c
UNIX
上也可以用
rup
命令查看
rstatd
程序是否被配置并激活
若
rstatd
程序已经运行,
重启时,
先查看进程
ps -ef |grep inet
,
然后杀掉进程,
再
refresh
–
s inetd
进行重启。
操作系统概念学结
经过一天半的战斗,终于把操作系统概论这本书给拿下了。对于曾经专业课学过一些电脑硬件知识的我来说,这本书更加吸引我,以前一些听过的名词或高大上的词语在这本书上被详细介绍了,看的非常有收获。下面来总结下自己的收获:
首先第一章引论,在这里首先介绍了计算机系统,包括了软件和硬件两部分。
接下来就是第一章的重点:操作系统。如下图:
当前流行的操作系统有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.什么叫组通信?
在网络系统中,一个相互作用的进程集合称为组。一个发送者在一次操作中将一个消息发送给多个接收者的通信,称为组通信。
它应用于何种场合?在网络系统中可以采用组通信方式。
组通信的主要特征是?当一个消息发送给这个组时,该组的所有成员都可以接收,组通信具有“一对多”的形式,即一个发送者,多个接收者。
组通信的实现?组通信的实现在很大程度上依赖于硬件。在一些网络系统中,可以为组指定一个特殊的网络地址。可采用多播式、广播式、单播式。
虚拟机能测CPU和硬盘得分吗
虚拟机可以测CPU和硬盘得分的。
我们使用UnixBench来进行CPU性能测试。UnixBench是一套具有悠久历史的性能测试工具,其测试结果反映的是一台服务器的综合性能。从理论上来说UnixBench测试结果与被测试服务器的CPU、内存、存储、操作系统都有直接的关系。
但是根据我们的观察,对于现代的计算机系统来说,UnixBench测试结果受CPU处理能力的影响更大一些。因此,在这里我们用UnixBench测试结果来代表虚拟机的vCPU 处理能力。每个UnixBench测试结果包括两个数据,一个是单线程测试结果,另一个是多线程测试结果虚拟机上有几颗虚拟CPU,就有几个并发的测试线程。