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

寒假直接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 kBSwap: 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

哈工大计算机系统实验一:计算机系统漫游相关推荐

  1. 哈工大计算机系统实验二——DataLab数据表示

    计算机系统实验二特别难,和上一届的实验不一样,没有学长的火炬,当时做的时候特别崩溃.幸好有一帮志同道合的伙伴们,一起慢慢把实验解决了. 把火炬传下去! 实验报告 实 验(二) 题     目 Data ...

  2. 计算机系统安装和维护实验,2计算机系统安装维护实验报告.doc

    2计算机系统安装维护实验报告 计算机系统安装维护实验报告 院系: 班级: 姓名: 学号: [实验目的] 学习了解u盘硬盘启动维护系统 [实验内容] 通过GHOST11软件进行系统的相关操作 用户可以通 ...

  3. 计算机系统实验-缓冲区炸弹

    计算机系统实验-缓冲区炸弹 概述 Trojan1 Trojan2 Trojan3 Trojan4 概述 攻击指令:0XDDDBBFFF #include <stdio.h> #includ ...

  4. 计算机系统实验六:程序的链接

    参考教材:计算机系统基础 第二版 袁春风 机械工业出版社 参考慕课:计算机系统基础(四):编程与调试实践 https://www.icourse163.org/learn/NJU-1449521162 ...

  5. 计算机系统实验四:二进制程序逆向工程

    参考教材:计算机系统基础 第二版 袁春风 机械工业出版社 参考慕课:计算机系统基础(四):编程与调试实践 https://www.icourse163.org/learn/NJU-1449521162 ...

  6. 计算机系统实验五:缓冲区溢出攻击

    参考教材:计算机系统基础 第二版 袁春风 机械工业出版社 参考慕课:计算机系统基础(四):编程与调试实践 https://www.icourse163.org/learn/NJU-1449521162 ...

  7. 计算机系统具有运行可靠性,计算机系统运行可靠性技术.doc

    计算机系统运行可靠性技术 计算机系统运行可靠性技术 [摘 要] 当前,计算机的设计规模已经达到了百万亿次的数量级,同时计算机的计算能力还在不断扩大,随着计算机硬件系统的升级,其运行可靠性也相应的下降, ...

  8. 程序员视角的计算机系统 第一章 计算机系统 之旅

    程序员视角的计算机系统 第一章 计算机系统 之旅 一个计算机系统由硬件和系统软件组成,硬件和软件一起工作来运行应用程序. 系统的特定的实现随时间的流逝而改变,但是它的本质性的概念不会改变. 所有的计算 ...

  9. 《计算机系统基础》——计算机系统导论

    文章目录 <计算机系统基础>--计算机系统导论 计算机的基本组成 程序开发与执行过程 机器语言 汇编语言 高级语言 程序的转换处理 程序的数据流动 计算机系统层次结构 早期计算机系统 1G ...

最新文章

  1. 给你的杭州旅游攻略-愿你走出半生,归来仍是姑娘
  2. android仿知乎按钮动效,Android仿知乎客户端关注和取消关注的按钮点击特效实现思路详解...
  3. 初始化JQuery方法与(function(){})(para)匿名方法介绍
  4. 【数据结构】栈-顺序栈、链式栈、共享栈
  5. Kafka消息格式中的变长字段(Varints)
  6. php实现当前用户在线人数
  7. keepalived实现应用高可用
  8. vector中删除元素后,如何有效的释放无效元素的内存
  9. java 重力脚本_Java中非常简单的脚本解析器
  10. vue 工作项目中 实现消息列表的 全选,反选,删除功能
  11. 利用getData获取图片中的图表信息数据
  12. 大学计算机第四版蒋加伏ppt,大学计算机基础 普通高等教育十一五 国家级规划教材 教学课件 作者 蒋加伏 王宇 第5章 Powerpoint 2003演示文稿制作基础.ppt...
  13. win10台式机,耳机插入没有声音
  14. Axure RP9使用指南
  15. 腾讯地图手把手教你实现微信小程序路线规划
  16. 怎么恢复qq空间删除的日志文件呢
  17. 【你好,windows】Win10 x64 1709 X64企业G纯净版2019.7.28
  18. mongodb-18.聚合查询练习1
  19. 8-14:HTML学习#30
  20. WebKit、Safari以及SafariViewController

热门文章

  1. 数字化门店| 瑜伽馆管理系统小程序| 小程序开发教程
  2. 【前端入门】JavaScript(3)
  3. ELK日志分析系统 超详细!!理论+实操讲解!!
  4. 巴西龟饲养日志----云养龟
  5. 华为OD机试真题 JS 实现【九宫格游戏 / 三阶积幻方】【2023 Q1 | 200分】
  6. 手机长途话费应再降!
  7. android studio3.6.3编译Telegram android 1482 问题小记(nebula chatengine 指定版本)
  8. 从一个角色建模师角度谈谈游戏角色设计
  9. 关于积化和差,和差化积的记忆方法
  10. Biogeme资料分享