计算机系统实验一:计算机系统漫游

寒假直接copy文档上传,有错误很正常(有对不上的地方请私聊我改正一下)

把火炬传下去把!

实验报告

验(一)

题     目    计算机系统漫游  

专       业      计算机类         

学     号      xxxx        

班     级      xxxx         

学       生      xxxx           

指 导 教 师      xxxx            

实 验 地 点      xxxx           

实 验 日 期      xxxx         

计算机科学与技术学院

目  录

第1章 实验基本信息............................................................................................. - 4 -

1.1 实验目的......................................................................................................... - 4 -

1.2 实验环境与工具............................................................................................. - 4 -

1.2.1 硬件环境................................................................................................. - 4 -

1.2.2 软件环境................................................................................................. - 4 -

1.2.3 开发工具................................................................................................. - 4 -

1.3 实验预习......................................................................................................... - 4 -

第2章 实验环境建立............................................................................................. - 5 -

2.1 Vmware下中文Ubuntu安装(5分)....................................................... - 5 -

2.2 Ubuntu与Windows目录共享(5分)...................................................... - 5 -

第3章 Windows 软硬件系统观察分析.......................................................... - 6 -

3.1 查看计算机基本信息(2分)...................................................................... - 6 -

3.2 设备管理器查看(2分).............................................................................. - 6 -

3 隐藏分区与虚拟内存之分页文件查看(2分)............................................. - 6 -

3.4 任务管理与资源监视(2分)...................................................................... - 6 -

3.5 计算机硬件详细信息(2分)...................................................................... - 7 -

第4章 Linux软硬件系统观察分析................................................................... - 8 -

4.1 计算机硬件详细信息(3分)...................................................................... - 8 -

4.2 任务管理与资源监视(2分)...................................................................... - 8 -

4.3 共享目录的文件系统信息(3分).............................................................. - 8 -

4.4 Linux下网络系统信息(2分)................................................................... - 8 -

第5章 以16进制形式查看程序Hello.c....................................................... - 9 -

5.1 请查看HelloWin.c与HelloLinux.c的编码(3分)............................ - 9 -

5.2 请查看HelloWin.c与HelloLinux.c的回车(3分)............................ - 9 -

第6章 程序的生成 Cpp、Gcc、As、ld..................................................... - 10 -

6.1 请提交每步生成的文件(4分)................................................................ - 10 -

第7章 计算机系统的基本信息获取编程........................................................... - 11 -

7.1 请提交源程序文件(10分)...................................................................... - 11 -

第8章 计算机数据类型的本质........................................................................... - 12 -

8.1 请提交源程序文件Datatype.c(10分)................................................. - 12 -

第9章 程序运行分析........................................................................................... - 13 -

9.1 sum的分析(20分)................................................................................... - 13 -

9.2 float的分析(20分)................................................................................ - 13 -

第10章 总结......................................................................................................... - 14 -

10.1 请总结本次实验的收获............................................................................. - 14 -

10.2 请给出对本次实验内容的建议................................................................. - 14 -

参考文献................................................................................................................. - 15 -

 

第1章 实验基本信息

1.1 实验目的

使我们能够运用现代工具进行计算机软硬件系统的观察与分析,运用现代工具进行Linux下C语言的编程调试,初步掌握计算机系统的基本知识与各种类型的数据表示。

1.2 实验环境与工具

1.2.1 硬件环境

X64 CPU;2GHz;2G RAM;256GHD Disk 以上

1.2.2 软件环境

Windows7 64位以上;VirtualBox/Vmware 11以上;Ubuntu 16.04 LTS 64位/优麒麟 64位 以上;

1.2.3 开发工具

Visual Studio 2010 64位以上;CodeBlocks 64位;vi/vim/gedit+gcc

1.3 实验预习

上实验课前,必须认真预习实验指导书

了解实验的目的、实验环境与软硬件工具、实验操作步骤,复习与实验有关的理论知识。

在Windows下编写 hellowin.c,显示“Hello 1160300199学霸”(可用记事本、VS等,换成学生自己信息)

在Linux下编写 hellolinux.c,显示“Hello 1160300199学霸”(可用VI、VIM、EMACS、GEDIT等,换成学生自己信息)

编写 showbyte.c 以16进制显示文件hello.c等的内容:每行16个字符,上一行为字符,下一行为其对应的16进制形式。

编写 datatype.c,定义C所有类型的全局变量,并赋初值。如整数可以是学号(数字部分),字符串可以是你的姓名,浮点数可以是身份证号的数字部分。主程序打印每个变量的变量名、变量值、变量地址、变量对应16进制的内存各字节。

第2章 实验环境建立

2.1 Vmware下中文Ubuntu安装(5分)

安装Ubuntu,安装中文输入法(搜狗输入法),用户名为学号!

打开终端term,输入 Hello 1160300199学霸(用真实学号姓名代替)。

截图:要求有Windows状态行,Vmware窗口,Ubuntu窗口,终端term窗口,输入的“Hello 1160300199学霸”信息

 

                                         图2-1  Vmware下中文Ubuntu安装效果截图

2.2 Ubuntu与Windows目录共享(5分)

    在Windows下建立一目录,将hellowin.c拷贝到此目录。在vmware下设置Ubuntu共享hitics。

    在Ubuntu下Home/用户名中 建立一快捷链接hitics指向此共享目录,并在此目录建立hellolinux.c。

       打开终端term,进入此目录,输入 “ls –la” 指令。

   截图:要求有Ubuntu的“文件”应用打开“Home/用户名”,能看到hitics。term

窗口。

                                              图2-2  Ubuntu与Windows共享目录截图

 

第3章 Windows 软硬件系统观察分析

3.1 查看计算机基本信息(2分)

截图: 控制面板->系统    命令行systeminfo执行结果(至少包含启动设备行)

(a)

                               

 

                                            图3-1  Windows下计算机基本信息

3.2 设备管理器查看(2分)

按链接列出设备,找出所有的键盘鼠标设备。写出每一个设备的从根到叶节点的路径。

键盘:DESKTOP-51l5B8V  /基于ACPI x64的电脑 /Microsoft ACPI-Compliant System /PCI Express 根复合体/Intel(R) 300 Series Chipset Family LPC Controller (HM370) - A30D/PS/2 标准键盘

鼠标1:DESKTOP-51l5B8V/基于ACPI x64的电脑 /Microsoft ACPI-Compliant System /PCI Express 根复合体/Intel(R) 300 Series Chipset Family LPC Controller (HM370) - A30D/ PS/2 兼容鼠标

鼠标2(若有):DESKTOP-51l5B8V / 基于ACPI x64的电脑 /Microsoft ACPI-Compliant System/PCI Express 根复合体/符合 USB xHCI 的主机控制器

/USB 根集线器(USB 3.0)/USB 输入设备/HID-compliant mouse

 

3 隐藏分区与虚拟内存之分页文件查看(2分)

写出计算机主硬盘的各隐藏分区的大小(MB):64MB,521MB

写出pagefile.sys的文件大小(Byte):5187864KB

C盘根目录下其他隐藏的系统文件名字为:hiberfil.sys,swapfile.sys

3.4 任务管理与资源监视(2分)

写出你的计算机的PID最小的两个任务的名称、描述。

1.系统中断

2.system

3.5 计算机硬件详细信息(2分)

        CPU个数: 1              物理核数:   6     逻辑处理器个数:  12   

L1 Cache大小:  384KB  L2 Cache大小:  1.5MB  L3 Cache大小: 9.0MB

     

 

 

                                    图3-2  Windows下计算机硬件详细信息

第4章 Linux软硬件系统观察分析

4.1 计算机硬件详细信息(3分)

        CPU个数: 1              物理核数:   1     逻辑处理器个数:  1   

MEM   Total: 2013424 kB Used: 81372 kB   Swap: 969960 kB        

                                       图4-1  Linux下计算机硬件详细信息截图

4.2 任务管理与资源监视(2分)

写出Linux下的PID最小的两个任务的PID、名称(Command)。

  1. PID:1489  Command:/lib/systemd/systemd --user
  2. PID:1507  Command: /usr/lib/gdm3/gdm-x-session --run-script env GNPME SHELL SESSION MODE=ubuntu gnome-session --session=ubuntu

4.3 共享目录的文件系统信息(3分)

写出Linux下的hitics共享目录对应的文件系统的基本信息:

名称:__vmhgfs-fuse_______ 容量:_________挂载点:__/mnt/hgfs___

4.4 Linux下网络系统信息(2分)

写出本虚拟机的IPv4地址:_192.168.20.128____

mac地址:__00:0c:29:89:4d:b3________________

 

                                         图4-1  Linux下网络系统信息

第5章 以16进制形式查看程序Hello.c

5.1 请查看HelloWin.c与HelloLinux.c的编码(3分)

       HelloWin.c采用_ANSI____编码,HelloLinux.c 采用_UTF-8____编码,你的姓名____张瑞豪_____分别编码为:_D5 C5 C8 F0 BA C0 __与 _ e5  bc  a0  e7  91  9e  e8  b1  aa ______。

HelloWin.c在Linux下用gcc缺省模式编译后运行结果为:_____________

__Hello 1180800811ǿ�Ľ�_____________________________________。

5.2 请查看HelloWin.c与HelloLinux.c的回车(3分)

Windows下的回车编码为:0D 0A,Linux下的回车编码为:_0a______。

交叉打开文件的效果是____windows下打开HelloLinux.c无换行_,Linux下打开HelloWin.c姓名为乱码_____________________________________.

第6章 程序的生成 Cpp、Gcc、As、ld

6.1 请提交每步生成的文件(4分)

hello.i  hello.s   hello.o  hello.out  (附上hellolinux.c)


#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("Hello 1180800811张瑞豪\n");
    return 0;
}

                                                             hellolinux.c

第7章 计算机系统的基本信息获取编程

7.1 请提交源程序文件(10分)

isLittleEndian.c

cpuWordSize.c

 bool isLittleEndian(){
 	union a{
 		int i;
 		char c;
	 } u;
	 u.i=1;
	 if(u.c==1){
	 	return true;
	 }
	 else {
	 	return false;} 
 }

                                                   isLittleEndian.c

#include<iostream>
int main(){
	printf("cpu所能处理的字数长度为:%d",sizeof(int*)*sizeof(int*));
	return 0;
}

                                                   cpuWordSize.c

第8章 计算机数据类型的本质

8.1 请提交源程序文件Datatype.c(10分)

     要求有main函数进行测试。

#include<iostream>
#include<stdio.h>
typedef unsigned char *byte_pointer;
void show_bytes(byte_pointer start,size_t len){
	size_t i;
	for(i=0;i<len;i++){
		printf("%.2x",start[i]);
	}
	printf("\n");
}
void show_int (int x){
	show_bytes((byte_pointer)&x,sizeof(int));
}
void show_float(float x){
	show_bytes((byte_pointer)&x,sizeof(float));
}
void show_pointer(void *x){
	show_bytes((byte_pointer)&x,sizeof(void *)); 
} 
void show_char(char x){
	show_bytes((byte_pointer)&x,sizeof(char));
}
void show_double(double x){
	show_bytes((byte_pointer)&x,sizeof(double));
}
void show_bool(bool x){
	show_bytes((byte_pointer)&x,sizeof(bool));
}
int main()
{	struct a{
	int x;
	float y;
};
enum day{Monday,Tuesday,Wednesday,Thirsday,Friday,Saturday,Sunday
	}a2;
union zhang{
	int x;
	float y;}a1;
 	struct zhangruihao{
 		int xuehao;
 		
	 }a3; 
	 a1.x=1;
	 a2=Saturday;
	 a3.xuehao=0.0811;
	int sum[5]={1,2,3,4,5};
	int a=1180800811;
	char b[20]="zhangruihao";
	float c=0.64238;
	double d=362329200105064238;
	bool e=true;
	//string f="zhangruihao";
	int *f=&a;
	char *g;
	g=b;
	float *h=&c;
	double *i=&d;
	//string *k=&str;
	printf("a的内容是:%d,地址是%d,16进制地址是:",a,&a);show_int(a);
	printf("b的内容是:%s,地址是%d,16进制地址是:",b,&b);show_char(b[0]);
	printf("c的内容是:%f,地址是%d,16进制地址是:",c,&c);show_float(c);
	printf("d的内容是:%lf,地址是%d,16进制地址是:",d,&d);show_double(d);
	printf("e的内容是:%d,地址是%d,16进制地址是:",e,&e);show_bool(e);
	printf("f的内容是:%d,地址是%d,16进制地址是:",*f,f);show_pointer(f);
	printf("g的内容是:%d,地址是%d,16进制地址是:",*g,g);show_pointer(g);
	printf("h的内容是:%f,地址是%d,16进制地址是:",*h,h);show_pointer(h);
	printf("i的内容是:%lf,地址是%d,16进制地址是:",*i,i);show_pointer(i);
	printf("main函数的地址是:%p\n",&main);
	printf("printf函数的地址是:%p\n",&printf);
	
	return 0; 
	 
 } 

                                                         Datatype.c

第9章 程序运行分析

9.1 sum的分析(20分)

结果:程序无法工作,运行结果超时

原因:len被定义为无符号数,所以当len=0时,len-1会产生溢出,由于i是有符号数,所以当i和len比较时,会以有符号数进行比较,因此此时len=-1的编码在有符号下被解释为最大值Umax,16进制编码为0xffffffff,因此数组中的循环是无界的,会产生死循环,数组可能会产生越界。

改进:将len定义为int类型.

 

9.2 float的分析(20分)

原因:

第一组数据:输入和输出不一致是因为单精度浮点数在IEEE规定下的表示造成的。第一组数据在二进制数表示下为无循环的小数,由于float数据类型只能存储23位小数,为数后面的数都会被截断而且会向偶数进行舍入,因此有的数据进行舍入时会改变运行结果,所以第一组数据存在一些数据发生结果改变.

第二组数据:由第一组数据中的分析可知,第二组数据在进行偶数舍入的情况下并没有发生结果的改变,因此运行结果和数据输入的内容相同相同。

使用浮点数应注意:float单精度浮点数在计算机存储大多是近似值,无法精确表示准确数值。因此最好不要对float单精度浮点数进行比较的运算。如果想要更高精度的数据表示可以选择使用double双精度浮点数的类型或者用数组按位表示。

第10章 总结

10.1 请总结本次实验的收获

我觉得最大的收获是感受到了被迫学习的压力和不得不自主学习的无奈,学到了怎么自主学习,怎么用Linux系统等等,学了太多太多以至于我都快崩溃了。感谢老师们给我自主学习的机会,同时对Linux的使用也有了更深入的了解,学到了很多很多的知识。

10.2 请给出对本次实验内容的建议

    建议老师多讲点,让我们回去做实验也有个大致的方向,也不至于从哪里开始都不清楚。另外,实验课的地方喇叭是真的声音太小了,根本听不清楚老师在讲什么,希望老师能把喇叭声音调大一点。还有就是老师的PPT里面很多命令存在一些中文的符号,导致直接粘贴到Linux系统下无法运行,建议老师能改成英文的符号,比如-。

注:本章为酌情加分项。

参考文献

为完成本次实验你翻阅的书籍与网站等

[1]  林来兴. 空间控制技术[M]. 北京:中国宇航出版社,1992:25-42.

[2]  辛希孟. 信息技术与信息服务国际研讨会论文集:A集[C]. 北京:中国科学出版社,1999.

[3]  赵耀东. 新时代的工业工程师[M/OL]. 台北:天下文化出版社,1998 [1998-09-26]. http://www.ie.nthu.edu.tw/info/ie.newie.htm(Big5).

[4]  谌颖. 空间交会控制理论与方法研究[D]. 哈尔滨:哈尔滨工业大学,1992:8-13.

[5]  KANAMORI H. Shaking Without Quaking[J]. Science,1998,279(5359):2063-2064.

[6]  CHRISTINE M. Plant Physiology: Plant Biology in the Genome Era[J/OL]. Science,1998,281:331-332[1998-09-23]. http://www.sciencemag.org/cgi/ collection/anatmorp.

[7]   https://www.vmware.com/

[8]    http://www.x-ways.net/winhex/index-d.html

[9]   https://ubuntu.com/download

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐