首页 范文大全 古典文学 职场知识 中国文学 公文书信 外国名著 寓言童话 百家讲坛 散文/诗歌 美文欣赏 礼仪知识 民俗风情
  • 工作总结
  • 工作计划
  • 心得体会
  • 竞聘演讲
  • 会议发言
  • 爱国演讲
  • 就职演说
  • 开业开幕
  • 思想学习
  • 征文演讲
  • 经验材料
  • 述职报告
  • 调研报告
  • 工作汇报
  • 年终总结
  • 申报材料
  • 学习体会
  • 企划方案
  • 活动方案
  • 技巧经验
  • 模板范例
  • 思想宣传
  • 经济工作
  • 工作报告
  • 组织人事
  • 反腐倡廉
  • 慰问贺电
  • 先进事迹
  • 思想汇报
  • 入党申请书
  • 党会发言
  • 先进性教育
  • 入团申请书
  • 个人简历
  • 演讲稿
  • 调查报告
  • 实习报告
  • 和谐社会
  • 观后感
  • 读后感
  • 作文范文
  • 自我鉴定
  • 讲话稿
  • 自查报告
  • SAA验报告一

    时间:2021-03-05 16:46:10 来源:蒲公英阅读网 本文已影响 蒲公英阅读网手机站

    相关热词搜索:报告 SAA

    SAA验报告一 本文关键词:报告,SAA

    SAA验报告一 本文简介:浙江财经大学东方学院实验报告项目名称SAS基本操作玉数据集建立、浏览所属课程名称SAS与MATLAB软件项目类型综合实验(实训)日期班级13保险学号1320530112姓名巫小敏指导教师徐朝辉浙江财经大学东方学院教务部制一、实验(实训)概述:【目的及要求】掌握启动SAS的方法,熟悉常用的操作界面;

    SAA验报告一 本文内容:

    浙江财经大学东方学院

    SAS基本操作玉数据集建立、浏览

    所属课程名称

    SAS与MATLAB软件

    实验(实训)日期

    13保险

    1320530112

    巫小敏

    指导教师

    徐朝辉

    浙江财经大学东方学院教务部制

    

    一、实验(实训)概述:

    【目的及要求】

    掌握启动SAS的方法,熟悉常用的操作界面;理解SAS数据库、临时|永久数据集等基本概念,熟练掌握建立数据集、浏览编辑数据集的基本使用方法。

    二、实验(实训)内容:

    【项目内容】

    项目1。(验证题,实验报告只要写上SAS验证试验项目,并写出结果就行)

    输入下列程序,运行并保存在恰当的文件夹中:

    data

    tmp;

    input

    name$

    birthday

    date9.

    score1

    score2

    score3

    wage

    comma8.2

    percent;

    cards;

    zhangsanfen

    02-oct-76

    78

    81

    65

    1,256.12

    0.21

    lisi

    18-jan-75

    74

    93

    65

    1,080.5

    0.15

    wangwu

    14,feb,74

    88

    90

    95

    2,040.

    0.3

    xuliu

    30/jun/77

    75

    89

    69

    980.38

    0.12

    proc

    print;

    format

    birthday

    monyy7.

    wage

    dollar4.2;

    run;

    上述程序建立了一个含有姓名、生日、项目1~3的考核分、工资、加薪比率这些字段的临时数据集tmp。

    项目2。

    1)用菜单|工具条方式在d盘自己目录下建立mysas数据库

    2)修改项目1的程序,用编程方法在d盘自己目录下建立mylib永久文件库,并在其中建立tmp数据集

    项目3

    1)用菜单|工具条方式在d盘自己目录下建立mysas数据库

    2)修改项目1的程序,用编程方法在d盘自己目录下建立mylib永久文件库,并在其中建立tmp数据集。

    有10位同学的名字、年龄、体重、身高数据如下表所示;

    试用多种手段将这些数据新建为一个存放在MyLib库下的health1永久数据集。

    health数据集的内容

    Name

    Birth

    Weight

    Height

    Tom

    1991/10/1

    40

    165

    Mike

    1991/3/4

    42

    160

    Jack

    1992/1/1

    46

    162

    Brown

    1989/12/3

    41

    172

    Lucy

    1991/5/16

    39

    155

    Gup

    1990/7/1

    38

    166

    Lee

    1991/12/1

    46

    182

    Mary

    1992/1/2

    39

    159

    Kate

    1991/3/2

    37

    155

    Vencent

    1991/4/1

    40

    160

    1)

    用编程方法将上表数据输入SAS中,观察输出结果(要在输出窗口显示出)和日志窗口中的内容。通过交互方式分别对变量Name,Birh,Weight,Height建立“姓名、出生日期、体重和身高”标签。

    2)

    用VIEWTABLE数据建立health2数据集,保持在Mylib数据库中。

    项目4。

    记事本stock.txt中存放有code(证券代码)、name

    (证券名称)、scale

    (流通盘)、EPS

    (每股收益)、share

    (投资组合中所占份额)、price

    (价格)的数据(以空格分隔),将其读入到SAS

    临时数据集stock中。

    项目5。

    试着将SAS数据集stock中的数据导出到Excel

    表格stock.xls中。

    【实验(实训)过程】(步骤、记录、数据、程序等)

    分项目写出程序、结果,如果涉及操作步骤,需要写出步骤。

    项目1

    项目2

    (1)先在D盘里建一个mysas的文件夹,再点击SAS主界面中工具条上有“创建新的数据库”工具图标,

    (2)

    libname

    mylib

    D:/mylib

    ;

    data

    mylib.

    tmp;

    input

    name$

    birthday

    date9.

    score1

    score2

    score3

    wage

    comma8.2

    percent;

    cards;

    zhangsanfen

    02-oct-76

    78

    81

    65

    1,256.12

    0.21

    lisi

    18-jan-75

    74

    93

    65

    1,080.5

    0.15

    wangwu

    14,feb,74

    88

    90

    95

    2,040.

    0.3

    xuliu

    30/jun/77

    75

    89

    69

    980.38

    0.12

    proc

    print;

    format

    birthday

    monyy7.

    wage

    dollar4.2;

    run;

    项目3

    (1)

    libname

    mylib

    D:/mylib

    ;

    data

    mylib.heaithl;

    input

    name$8.

    birth

    yymmdd10.

    weight

    height;

    format

    birth

    yymmdd10.;

    cards;

    Tom

    1991/10/01

    40

    165

    Mike

    1991/03/04

    42

    160

    Jack

    1992/01/01

    46

    162

    Brown

    1989/12/03

    41

    172

    Lucy

    1991/05/16

    39

    155

    Gup

    1990/07/01

    38

    166

    Lee

    1991/12/01

    46

    182

    Mary

    1992/01/02

    39

    159

    Kate

    1991/03/02

    37

    155

    Vencent

    1991/04/01

    40

    160

    proc

    print;

    run;

    (2)

    项目4

    (1)

    data

    stock;

    infile

    D:/stock.txt

    ;

    input

    code$

    name$

    scale

    EPS

    share

    price;

    proc

    print;

    run;

    (2)

    文件

    导出数据

    next-

    finish

    code

    name

    scale

    EPS

    share

    price

    000096

    广聚能源

    8500.00

    0.06

    1000.00

    13.27

    000099

    中信海直

    6000.00

    0.03

    2000.00

    14.20

    000150

    ST麦科特

    12600.00

    0.00

    1500.00

    7.12

    000151

    中成股份

    10500.00

    0.03

    1300.00

    10.08

    000153

    新力药业

    2500.00

    0.06

    2000.00

    22.75

    000155

    川化股份

    13000.00

    -0.01

    5000.00

    6.85

    000156

    安塑股份

    3600.00

    0.03

    2000.00

    14.95

    000157

    中联重科

    10000.00

    0.06

    3000.00

    12.65

    000158

    常山股份

    10000.00

    0.02

    2400.00

    8.38

    000159

    国际实业

    7000.00

    0.01

    3100.00

    12.15

    000301

    丝绸股份

    15365.00

    0.04

    2000.00

    7.31

    000488

    晨鸣纸业

    7700.00

    0.10

    1000.00

    13.26

    000725

    京东方

    6000.00

    0.04

    2000.00

    12.33

    000835

    隆源实业

    1338.00

    0.07

    1000.00

    22.58

    000869

    张裕A

    3200.00

    0.19

    1300.00

    18.29

    000877

    天山股份

    7800.00

    -0.08

    3000.00

    12.55

    000885

    ST春都

    6000.00

    -0.07

    2000.00

    12.48

    000890

    法尔胜

    16934.00

    0.03

    1000.00

    9.12

    000892

    长丰通信

    12000.00

    0.03

    1000.00

    7.88

    000897

    津滨发展

    14166.00

    0.00

    5000.00

    6.91

    000900

    现代投资

    21423.00

    0.06

    3000.00

    8.59

    000901

    航天科技

    4800.00

    0.01

    1000.00

    27.95

    000902

    中国服装

    6500.00

    -0.03

    2000.00

    10.92

    000903

    云内动力

    6000.00

    0.11

    3000.00

    11.79

    000905

    厦门路桥

    9500.00

    0.05

    1000.00

    9.29

    000906

    南方建材

    6650.00

    0.01

    2000.00

    14.47

    000908

    天一科技

    8988.00

    0.01

    3000.00

    8.28

    000909

    数源科技

    6000.00

    0.00

    1000.00

    9.99

    000910

    大亚股份

    8000.00

    0.04

    2000.00

    8.90

    000911

    南宁糖业

    7280.00

    0.07

    2400.00

    9.01

    000912

    泸天化

    15000.00

    0.11

    1500.00

    8.06

    000913

    钱江摩托

    8450.00

    0.06

    3000.00

    11.86

    000915

    山大华特

    4599.00

    0.00

    1000.00

    14.40

    000916

    华北高速

    34000.00

    0.04

    5000.00

    5.15

    000917

    电广传媒

    11800.00

    0.09

    3000.00

    16.23

    000918

    亚华种业

    6000.00

    -0.05

    1000.00

    10.12

    三、指导教师评语及成绩:

    评语:

    成绩:

    指导教师签名:

    批阅日期:

    篇2:化学实验报告

    化学实验报告 本文关键词:化学实验,报告

    化学实验报告 本文简介:东塔学校化学实验报告班级姓名同组人指导教师史老师日期:实验题目:观察和描述一对蜡烛及期燃烧的探究实验目的:1、培养观察和描述的能力。2、学习科学探究的方法。实验器材:蜡烛、小木条、烧杯2个、澄清石灰水实验步骤:1、点燃前,观察蜡烛的颜色、状态、形状和硬度;观察把蜡烛投入水中的情况。2、燃着时,火焰分

    化学实验报告 本文内容:

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:观察和描述一对蜡烛及期燃烧的探究

    实验目的:

    1、培养观察和描述的能力。

    2、学习科学探究的方法。

    实验器材:

    蜡烛、小木条、烧杯2个、澄清石灰水

    实验步骤:

    1、点燃前,观察蜡烛的颜色、状态、形状和硬度;观察把蜡烛投入水中的情况。

    2、燃着时,火焰分几层,用小木条比较火焰不同部分温度的高低,用烧杯推测燃烧后的生成物。

    3、燃灭后,用火柴去点白烟,蜡烛能否重新燃烧。

    现象:

    1、蜡烛是乳白色,柱状固体、无味,能被轻易切成处,放于水中飘浮于水面上。

    2、火焰分为三层。小木条上外焰接触的部分被烧焦得最厉害,干燥的烧杯内壁有水珠,涂有石灰水的烧杯变浑浊。

    3、白烟能被点燃。

    分析及结论:

    1、蜡烛难溶于水、质软。

    2、外焰温度最高,蜡烛燃烧有水和CO2生成。

    3、吹灭蜡烛后的白烟是可燃物。

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:对人体吸入的空气和呼出的气体的探究

    实验目的:

    探究人体吸入的空气和呼出的气体有何不同

    实验器材:

    水槽、集气瓶4个、玻璃片4块、滴管、石灰水、饮料管、小木条

    实验步骤:

    1、用吹气排水法收集两瓶呼出的气体。

    2、收集两瓶空气。

    3、在1瓶空气和1瓶呼出气中滴入石灰水、振荡。

    4、将燃着的木条分别插入空气和呼出气中。

    5、对着干燥的玻璃片呼气。

    现象:

    1、滴入石灰水后,充满呼出气的集气瓶更浑浊一些;

    2、插入呼出气中的木条立即熄灭,插入空气中的木条正常燃烧过了一会儿才熄灭;

    3、呼气后干燥的玻璃片上有较多的水珠。

    分析及结论:

    人体呼出的气体中有CO2含量较高,吸入的空气中O2含量较高,呼出气中H2O含量较高。

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:化学实验的基本操作

    实验目的:

    熟练掌握药品的取用,给物质的加热,仪器洗涤的操作

    实验器材:

    镊子、药匙、试管、量筒、滴管、酒精灯、试管夹、试管刷、锌粒、盐酸、碳酸纳粉末、氢氧化钠溶液、硫酸铜溶液

    实验步骤:

    一、药品的取用

    1、用镊子夹取了粒锌放入试管中,并将试管放在试管架上。

    2、取少量碳酸钠粉末放入试管中,并半试管放在试管架上。

    3、量取2ml盐酸加入到试管2中,往试管一中滴加盐酸。

    二、结物质的加热

    取2ml氢氧化钠溶液倒入试管中,滴加硫酸铜溶液,然后在酒精灯火焰上加热。

    三、洗涤仪器

    将本实验中所用的试管、量筒洗干净。

    现象:

    一、3加入盐酸后产生大量气泡,试管外壁发热。

    二、先产生蓝色紫状况淀,受热后,变为黑色的沉淀。

    分析及结论:

    一、3碳酸钠与盐酸反应放出二氧化碳气体,盐酸也锌粒反应放出氢气。

    二、氢氧化钠与硫酸铜反生或氢氧化铜,氢氧化铜受热分解生成氧化铜。

    三、掌握化学实验的基本操作是我们安全、正确、快速的进行实验并获得可靠结果的重要保证。

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:制取氧气及氧气的性质

    实验目的:

    1、掌握用KmnO4制取O2的方法

    2、了解O2的化学性质。

    实验器材:

    铁架台、酒精灯、试管、水槽、集气瓶、镊子、KmnO4、木炭、石灰水、细铁丝、酒精

    实验步骤:

    一、氧气的制取,1、查,先在水槽中装适量的水,再检查装置的气密性。2、装,往试管中装入KMnO4,并在试管口放一团棉花。3、定,固定各仪器(注意,铁夹夹在试管中上部,试管口要略向下倾斜,酒精灯与试管底部的距离)。4、倒,把两个装满水的集气瓶连同玻璃片倒立在水槽中。5、点,点燃酒精灯,先预热,再集中加热。6、收,待气泡连续、均匀的放出时,开始收集,收集好后在水中盖上玻璃片取出正放于桌上。7、移,先将导管移出水面。8、灭,最后熄灭酒精灯。

    二、氧气的性质:1、把烧到发红的木炭伸入到氧气瓶中,熄灭后滴入石灰水,振荡。2、把细铁丝先沾点酒精,点燃,再伸入到O2瓶中。

    现象:

    1、木炭在O2中燃烧,发白光、放热、滴入的石灰水变浑浊。

    2、细铁丝在氧气中剧烈燃烧,火星四射,放热,生成一种黑色的熔融物。

    分析及结论:

    1、,CO2使石灰水浑浊

    2、

    3、可燃物如:木炭在氧气里燃烧,比在空气里燃烧更剧烈;在空气中不能燃烧的物质如铁却可以在氧气里燃烧,说明O2是一种化学性质较活泼的气体。

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:氧气的制取

    实验目的:

    1、掌握用高锰酸钾制取氧气的方法。

    2、掌握氧气的检验方法。

    实验器材:

    铁架台、酒精灯、试管、水槽、集气瓶、木条、棉花、高锰酸钾

    实验步骤:

    一、制取O2

    1、查:先在水槽中装适量的水,检查装置的气密性。

    2、装:往试管中装入KMnO4并在试管口放一团棉花。

    3、定:固定各仪器(注意:铁夹夹在试管中上部;试管口要稍向下倾斜;注意酒精灯与试管底部的距离)。

    4、倒:将装满水的集气瓶连同玻璃片倒立于水槽中。

    5、点:点燃酒精灯,先预热,再固定加热。

    6、收:待气泡连续,均匀的冒出时,开始收集。

    7、移:先将导管移出水面。

    8、灭:再熄灭酒精灯。

    二、检验O2,用带火星的木条伸入集气瓶口,观察现象。

    现象:

    伸入集气瓶口的带火星的木条复燃

    分析及结论:

    1、

    2、氧气能支持燃烧,用带火星的木条来检验氧气的生成。

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:分子运动现象的探究

    实验目的:

    认识分子的运动

    实验器材:

    试管、滴管、滤纸条、棉花、酚酞溶液、浓氨水

    实验步骤:

    1、在一张滤纸条上滴几滴酚酞溶液,把滤纸条放入试管中。

    2、在试管口塞一团棉花,将试管平放于实验桌上。

    3、往棉花上滴数滴浓氨水,观察现象。

    现象:

    试管中的滤纸条,由外到里逐渐出现一个一个红点

    分析及结论:

    浓氨水中的氨分子由于不断运动,进入到试管中,与滤纸条上的酚酞发生反应生成了一种红色物质。

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:水的净化

    实验目的:

    1、了解净化水的常用方法。

    2、掌握过滤的基本操作。

    实验器材:

    烧杯4个、玻璃棒、漏斗、铁架台、滤纸,明矾粉末

    实验步骤:

    1、在A、B、C

    3个烧杯中,装入半杯浑浊的河水。

    2、往A、B两杯中加入2药匙明矾粉末,搅拌溶解后,静置。

    3、准备过滤器。

    4、过滤A得到滤液D。

    5、比较B、C、D,观察它们的清澈程度。

    现象:

    1、加入明矾静置后,A、B变得比C更澄清。

    2、过滤后,D又变得更澄清,它们的清澈程度依次是D、B、C。

    分析及结论:

    过滤法,明矾的吸附沉降法,都是净化水的常用方法。过滤法的净化程度更高,但是,这两种方法一般都只能除去水中的不溶物,要除去可溶性杂质,得到更净化的水还要采用其它方法。

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:质量守恒定律的探究

    实验目的:

    验证化学反应遵循质量守恒定律

    实验器材:

    锥形瓶、天平、酒精灯、玻璃管、小气球、白磷

    实验步骤:

    白磷燃烧前后质量的比较

    1、在玻璃管的一端系牢一个小气球,将玻璃管插入胶塞中。

    2、在底部铺有细沙的锥形瓶中放一小粒白磷,塞上胶塞使玻璃管下端能与白磷接触。

    3、将该装置放于天平上用砝码平衡。

    4、取下锥形瓶,将玻璃管灼烧至红热,放回瓶中,塞紧胶塞,将白磷引燃。

    5、冷却后又放回天平上。

    现象:

    引燃白磷后,瓶内充满大量白烟,小气球膨胀,冷却放回天平后,天平依然平衡。

    分析及结论:

    瓶内发生反应:,反应前后物质的总质量不变,即参加化学反应的各物质质量之和等于反应后生成的各物质的质量之和。

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:质量守恒定律的探究

    实验目的:

    验证化学反应遵循质量守恒定律

    实验器材:

    烧杯(100ml)、天平、硫酸铜溶液、铁钉

    实验步骤:

    铁钉与CuSO4溶液反应前后质量的测定

    1、在100ml烧杯中加入30ml

    CuSO4溶液,准备3根光亮的铁钉。

    2、将溶液、铁钉一起放于天平上称量,记录质量m。

    3、将铁钉投入杯中,几分钟后,将其放于天平上称量记录质量m2。

    现象:

    1、烧杯中溶液的蓝色逐渐变为浅绿色,铁钉表面履盖了一层红色粉末。

    2、m1=36g

    m2=36g

    分析及结论:

    烧杯中发生反应:铁+硫酸铜→铜+硫酸亚铁,反应前后物质的总质量不变,即参加化学反应的各物质质量之和等于反应后生成的各物质的质量之和。

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:实验室制取CO2的研究与实践

    实验目的:

    设计CO2的制取装置并验证产生的气体

    实验器材:

    锥形瓶、长颈漏斗、集气瓶、导气管、试管、大理石、稀盐酸、澄清石灰水

    实验步骤:

    1、思考实验室制取CO2气体时应考虑的因素

    2、选择P111上提供的仪器设计出制取CO2的装置,并相互讨论、交流,选出最佳装置。

    讨论的结果是最佳装置有两种,分别应包括以下仪器:

    ①试管、导管、集气瓶。

    ②锥形瓶,长颈漏斗,导管,集气瓶

    3、制取并检验CO2

    现象:

    1、大理石与稀盐酸反应产生大量气泡,大理石逐渐缩小甚至会消失。

    2、将产生气体通入澄清石灰水后,石灰水变浑浊。

    分析及结论:

    1、实验室制取气体应先考虑①选择适当的反应。②反应物的状态,反应的条件。③用排空气法还是排水法收集气体。

    2、大理石与盐酸发生的反应是:CaCO3+2HCl=CaCl2+CO2↑+H2O

    CO2能使澄清石灰水变浑浊

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:CO2的制取及性质

    实验目的:

    1、掌握CO2的实验室制度。

    2、掌握CO2的检验及验满方法。

    实验器材:

    铁架台、试管2支、集气瓶、酒精灯、小木条、澄清石灰水、大理石、稀盐酸

    实验步骤:

    1、检查装置的气密性。

    2、往试管中装入大理石,倒入占试管容积1/3的稀盐酸。

    3、固定仪器。

    4、用向上排空气法收集气体,瓶口盖上玻片。

    5、用一根燃着的木条伸入集气瓶口。

    6、在另一支试管中装入石灰水,插入导管观察现象。

    7、实验完毕后,清洗仪器,整理桌面。

    现象:

    1、大理石与稀盐酸反应产生大量气泡,大理石逐渐减小。

    2、伸入集气瓶口的木条立即熄灭。

    3、往石灰水中通入气体后变浑浊。

    分析及结论:

    1、产生的气体是CO2。

    2、用燃着的木条做CO2的验满。

    3、大理石与稀盐酸的反应是:碳酸钙+盐酸→氯化钙+水+二氧化碳

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:金属活动性的探究

    实验目的:

    1、比较几种金属活动性大小。

    2、理解置换反应概念。

    实验器材:

    试管4支、小木条、稀HCl、镁带、锌粒、铁屑、铜丝、稀H2SO4

    实验步骤:

    1、分别在4支试管中装入5ml稀盐酸。

    2、分别投入少量的Mg、Zn、Fe、Cu。

    3、用燃着的木条放于试管口。

    4、用稀H2SO4代替稀HCl重作以上实验。

    现象:

    1、第1支试管反应最剧烈,产生大量的气泡。

    第2支试管反应适中,气泡较多。

    第3支试管反应较慢,气泡较小。

    第4支无任何现象。

    2、点火后,可见前3支试管口瞬间出现浅蓝色火焰。

    分析及结论:

    1、Mg+2HCl=MgCl2+H2↑

    Fe+2HCl=FeCl=FeCl2+H2↑

    Zn+2HCl=ZnCl2+H2↑

    Cu与稀HCl,稀H2SO4不反应,四种金属活动性顺序为Mg>Zn>Fe>Cu。

    2、如以上反应,由一种单质和一种化合物生成另一种单质和另一种化合物的反应,叫置换反应。

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:配制一定浓度的溶液

    实验目的:

    掌握配制某A%溶液的方法

    实验器材:

    天平、药匙、烧杯、量筒(50ml)、细口瓶、食盐

    实验步骤:

    1、计算:算出配制50g,6%的NaCl深液中NaCl和H2O的质量。

    2、称量,溶解:用天平称出所需NaCl倒入烧杯中。用量筒量取所需的水,倒入盛有NaCl的烧杯中,搅拌。

    3、装瓶:把溶液装入细口瓶中,盖上瓶塞,贴上标签。

    现象:

    1、m(NaCl)=3g

    m(水)=47g

    V(水)=47ml

    2、标签应包括药品名称和溶液中溶质的质量分数。

    分析及结论:

    m(NaCl)=50×6%=3g

    V(水)=

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:酸的化学性质

    实验目的:

    由HCl、H2SO4归纳酸的通性

    实验器材:

    点滴板、滴管、试管2支、稀HCl、稀H2SO4、石蕊、酚酞试液、锈铁钉

    实验步骤:

    1、在点滴板上分别滴2d稀HCl、稀H2SO4,在其中滴入石蕊、酚酞试液。

    2、写出Mg、Zn、Fe与稀H2SO4,投入锈铁钉,1分钟后取出,用水洗净铁钉。

    现象:

    1、

    酸溶液

    紫色石芯试液

    无色酚酞试液

    HCl

    变红

    无色

    H2SO4

    变红

    无色

    2、投入锈铁钉后,溶液呈浅黄色,铁钉变得光亮洁净。

    分析及结论:

    1、酸性溶液遇石蕊变红,遇酚酞不变色。

    2、Mg+H2SO4=MgSO4+H2↑

    Zn+H2SO4=ZnSO4+H2↑

    Fe+H2SO4=FeSO4+H2↑

    3、Fe2O3+6HCl=2FeCl3+3H2O

    Fe2O3+3H2SO4=Fe(SO4)3+3H2O

    东塔学校化学实验报告

    班级

    姓名

    同组人

    指导教师

    史老师

    日期:

    实验题目:碱的化学性质

    实验目的:

    由NaOH、Ca(OH)2学习碱的通性

    实验器材:

    点滴板、滴管、NaOH、

    Ca(OH)2、石蕊、酚酞试液

    实验步骤:

    1、在点滴板上分别滴入2dNaOH溶液和Ca(OH)2溶液,往其中滴入石蕊,酚酞试液。

    2、回忆检验CO2的反应。

    3、NaOH在空气中不仅会吸水还能与CO2反应,写出方程式。

    现象:

    碱溶液

    紫色石芯试液

    无色酚酞试液

    NaOH

    变蓝

    变红

    Ca(OH)2

    变蓝

    变红

    分析及结论:

    1、碱性溶液遇石蕊变蓝,遇酚酞变红。

    2、CO2+

    Ca(OH)2=CaCO3↓+H2O

    3、CO2+

    2NaOH=Na2CO3+H2O

    从本实验可归纳出碱的通性:1、显色反应。2、+非金属氧化物。

    靖安中学化学实验报告

    班级

    姓名

    同组人

    指导教师

    白老师

    日期:

    实验题目:中和反应

    实验目的:

    1、学习判断酸碱反应完全的方法。

    2、认识中和反应。

    实验器材:

    烧杯、滴管、酚酞试液、稀HCl、NaOH

    实验步骤:

    1、在小烧杯中加入10ml

    NaOH溶液,滴入几滴酚酞溶液。

    2、再慢慢滴入稀HCl,并不断搅拌,至溶液颜色恰好变成无色为止。

    现象:

    1、溶液变成红色。

    2、红色逐渐减退,直至呈无色。

    分析及结论:

    1、碱性溶液遇酚酞变红。

    2、NaOH被HCl中和,溶液碱性减弱故红色逐渐减退。

    NaOH被完全中和时,溶液不再呈碱性,故变为无色。

    NaOH+HCl=NaCl+H2O

    靖安中学化学实验报告

    班级

    姓名

    同组人

    指导教师

    白老师

    日期:

    实验题目:测量溶液的PH

    实验目的:

    1、学习使用PH试纸。

    2、了解某些溶液的酸碱度。

    实验器材:

    玻璃片、玻璃棒、PH试纸、稀HCl、5%NaOH、5%氨水、橘子汁等物质

    实验步骤:

    1、在玻璃片上放一小片PH试纸,用玻璃棒滴1d待测液到试纸上。

    2、与标准比色卡比较,即得出被测液大致的PH。

    3、测定以下物质的PH,认识它们的酸碱性,橘子汁、肥皂水、草木灰水、唾液。

    现象:

    1、

    2、

    溶液名称

    PH

    物质名称

    PH

    酸碱性

    稀HCl

    3

    橘子汁

    5

    酸性

    NaOH(5%)

    11

    肥皂水

    8

    碱性

    氨水(5%)

    8

    草木灰

    9

    碱性

    7

    中性

    分析及结论:

    1、NaOH为强碱,氨水为弱碱,因此,同浓度的NaOH溶液的PH大于氨水。

    2、PH<7

    呈酸性

    PH=7

    呈中性

    PH>7

    呈碱性

    靖安中学化学实验报告

    班级

    姓名

    同组人

    指导教师

    白老师

    日期:

    实验题目:粗盐的提纯

    实验目的:

    1、掌握粗盐提纯的方法。

    2、了解混合物分离的概念。

    实验器材:

    天平、烧杯2个,玻璃棒、量筒、泥坑斗、铁架台、滤纸、酒精灯、蒸发皿、粗盐

    实验步骤:

    1、溶解:用天平称取粗盐5g,投入到10ml水的烧杯中,搅拌,称出剩余粗盐的质量。

    2、过滤:过滤食盐水1~2次,直到滤液澄清。

    3、蒸发:将滤液倒入蒸发皿中,加热,结晶。

    4、计算产率。

    现象:

    1、搅拌,促进粗盐进中NaCl的溶解。

    2、滤纸上有不溶的杂质。

    3、加热时搅拌防液滴飞溅,待有较多NaCl出现时停止加热,用余热蒸干。

    分析及结论:

    1、

    称取粗盐

    剩余粗盐

    溶解粗盐

    溶解粗盐

    精盐

    精盐产率

    5.0

    0.7

    4.3

    4.3

    3.3

    76.7%

    2、精盐产率=

    靖安中学化学实验报告

    班级

    姓名

    同组人

    指导教师

    白老师

    日期:

    实验题目:初步区分氮肥、磷肥、钾肥的方法的探究

    实验目的:

    探究氮肥、磷肥、钾肥的区别方法

    实验器材:

    烧杯、研钵、NH4HCO3、NH4Cl、磷矿粉、K2SO4、KCl

    实验步骤:

    1、比较NH4HCO3等5种化肥的外观,气味和在水中的溶解性。

    2、在研钵中分别倒入少量的NH4Cl、K2SO4、KCl分别加入少量的熟石灰,混合,研磨,嗅气味。

    现象:

    化肥种类

    氮肥

    钾肥

    磷肥

    NH4HCO3

    NH4Cl

    K2SO4

    KCl

    磷矿粉

    白色晶体

    灰白色粉末

    有强烈的氨味

    无明显异味

    全都能溶于水

    难溶于水

    加熟石灰

    产生氨气

    不产生氨气

    分析及结论:

    区别氮、磷、钾肥的方法

    1、首先从外观、气味上区别。

    2、然后从溶解性方面区别。

    3、最后可通过化学方法如加碱的方法区别。

    实验步骤和方法

    实验现象及反应方程式

    实验结论

    在充满CO2气体的软塑料瓶中注入约10mL的氢氧化钠溶液,振荡

    方案1

    从软塑料瓶中取少量反应后的溶液于试管中,滴入

    CO2和NaOH确实发生了化学反应

    方案2

    从软塑料瓶中取少量反应后的溶液于试管中,滴入----------------------

    CO2和NaOH确实发生了化学反应

    方案3

    从软塑料瓶中取少量反应后的溶液于试管中,滴入---------------

    CO2和NaOH确实发生了化学反应

    方案4

    从软塑料瓶中取少量反应后的溶液于试管中,滴入-----------------

    CO2和NaOH确实发生了化学反应

    靖安中学化学实验报告

    班级

    姓名

    同组人

    指导教师

    日期:

    实验题目:

    二氧化碳与氢氧化钠反应实验探究

    药品与仪器

    充满CO2气体的软塑料瓶,试管、滴管、稀盐酸、Ca(OH)2溶液、CaCl2溶液、氢氧化钠溶液、

    靖安中学化学实验报告

    班级

    姓名

    同组人

    指导教师

    日期:

    实验题目:粗盐的提纯

    实验目的:

    1、掌握粗盐提纯的方法。

    2、了解混合物分离的概念。

    实验器材:

    天平、烧杯2个,玻璃棒、量筒、泥坑斗、铁架台、滤纸、酒精灯、蒸发皿、粗盐

    实验步骤:

    1、溶解:用天平称取粗盐5g,投入到10ml水的烧杯中,搅拌,称出剩余粗盐的质量。

    2、过滤:过滤食盐水1~2次,直到滤液澄清。

    3、蒸发:将滤液倒入蒸发皿中,加热,结晶。

    4、计算产率。

    现象:

    1-----------------------------------------------------------------------------------------

    2、----------------------------------------------------------------------------------------

    3、----------------------------------------------------------------------------------------

    分析及结论:

    1、

    称取粗盐

    剩余粗盐

    溶解粗盐

    溶解粗盐

    精盐

    精盐产率

    2、精盐产率=

    靖安中学化学实验报告

    班级

    姓名

    同组人

    指导教师

    日期:

    实验题目:碱的化学性质

    实验目的:

    由NaOH、Ca(OH)2学习碱的通性

    实验器材:

    点滴板、滴管、NaOH、

    Ca(OH)2、石蕊、酚酞试液

    实验步骤:

    1、在点滴板上分别滴入2dNaOH溶液和Ca(OH)2溶液,往其中滴入石蕊,酚酞试液。

    2、回忆检验CO2的反应。

    3、NaOH在空气中不仅会吸水还能与CO2反应,写出方程式。

    现象:

    碱溶液

    紫色石芯试液

    无色酚酞试液

    NaOH

    Ca(OH)2

    分析及结论:

    1、----------------------------------------------------------------------------------------

    2、----------------------------------------------------------------------------------------

    3、----------------------------------------------------------------------------------------

    从本实验可归纳出碱的通性:1、显色反应。2、非金属氧化物。

    靖安中学化学实验报告

    班级

    姓名

    同组人

    指导教师

    白老师

    日期:

    实验题目:中和反应

    实验目的:

    1、学习判断酸碱反应完全的方法。

    2、认识中和反应。

    实验器材:

    烧杯、滴管、酚酞试液、稀HCl、NaOH

    实验步骤:

    1、在小烧杯中加入10ml

    NaOH溶液,滴入几滴酚酞溶液。

    2、再慢慢滴入稀HCl,并不断搅拌,至溶液颜色恰好变成无色为止。

    现象:

    1、---------------------------------------------------------------------------------------

    2、--------------------------------------------------------------------------------------

    分析及结论:

    1、碱性溶液遇酚酞变红。

    2、NaOH被HCl中和,----------------------------------------------------------

    NaOH被完全中和时,---------------------------------------------------------。

    NaOH+HCl=NaCl+H2O

    篇3:操作系统课设报告

    操作系统课设报告 本文关键词:操作系统,报告

    操作系统课设报告 本文简介:[键入文字]操作系统课程设计操作系统课程设计报告时间:2013-1-7~2013-1-18地点:信息技术实验中心计算机科学与技术专业2010级01班06号赖敏2013-1-18目录一课程设计的目的和意义3二进程调度算法模拟31设计目的32设计要求33使用动态优先权的进程调度算法的模拟4三动态分区分配

    操作系统课设报告 本文内容:

    [键入文字]

    操作系统课程设计

    操作系统课程设计报告

    时间:2013-1-7~2013-1-18

    地点:信息技术实验中心

    计算机科学与技术专业

    2010级01班06号

    赖敏

    2013-1-18

    目录

    课程设计的目的和意义3

    进程调度算法模拟3

    1

    设计目的3

    2

    设计要求3

    3

    使用动态优先权的进程调度算法的模拟4

    动态分区分配方式模拟11

    1

    设计目的11

    2

    设计要求11

    3

    模拟算法的实现12

    3.3.1

    首次适应算法13

    3.3.2

    最佳适应算法13

    请求调页存储管理方式模拟18

    1

    设计目的18

    2

    设计要求18

    3

    模拟算法的实现18

    4.3.1OPT算法18

    4.3.2FIFO算法21

    4.3.3LRU算法22

    简单文件系统的实现24

    1

    设计目的24

    2

    设计要求24

    3

    模拟算法的实现25

    总结40

    课程设计的目的和意义

    操作系统课程设计是计算机科学与技术专业的重要实践性教学环节。在进行了专业基础课程和操作系统原理课程学习的基础上,设计或分析一个实际的操作系统旨在加深对计算机硬件结构和系统软件的认识,初步掌握操作系统组成模块和应用接口的使用方法,提高进行工程设计和系统分析的能力,为毕业设计及以后的工程实践打下良好的基础。

    通过课程设计,加深对操作系统各资源管理模块的理解,掌握操作系统的基本原理及功能,具有初步分析实际操作系统、设计、构造和开发现代操作系统的基本能力

    1、巩固和加深对操作系统原理的理解,提高综合运用本课程所学知识的能力。

    2、培养学生选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。

    3、通过实际操作系统的分析设计、编程调试,掌握系统软件的分析方法和工程设计方法。

    4、能够按要求编写课程设计报告书,能正确阐述设计和实验结果、正确绘制系统和程序框图。

    5、通过课程设计,培养学生严谨的科学态度,严肃认真的工作作风和团队协作精神。

    进程调度算法模拟

    1

    设计目的

    通过动态优先权算法的模拟加深对进程概念和进程调度过程的理解。

    2

    设计要求

    (1)用C语言来实现对N个进程采用动态优先算法的进程调度;

    (2)每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:

    l

    进程标识符id

    l

    进程优先数priority,并规定优先数越大的进程,其优先权越高;

    l

    进程已占用的CPU时间cputime;

    l

    进程还需占用的CPU时间alltime,当进程运行完毕时,alltime变为0;

    l

    进程的阻塞时间startblock,表示当进程再运行startblock个时间片后,进程将进入阻塞状态;

    l

    进程被阻塞的时间blocktime,表示已阻塞的进程再等待blocktime个时间片后,将转换成就绪态

    l

    进程状态state;

    l

    队列指针next,用来将PCB排成队列

    (3)优先数改变的原则:

    l

    进程在就绪队列中呆一个时间片,优先数增加1

    l

    进程每运行一个时间片,优先数减3。

    (4)假设在调度前,系统中有5个进程,它们的初始状态如下:

    ID

    0

    1

    2

    3

    4

    PRIORITY

    9

    38

    30

    29

    0

    CPUTIME

    0

    0

    0

    0

    0

    ALLTIME

    3

    3

    6

    3

    4

    STARTBLOCK

    2

    -1

    -1

    -1

    -1

    BLOCKTIME

    3

    0

    0

    0

    0

    STATE

    READY

    READY

    READY

    READY

    READY

    (5)为了清楚地观察诸进程的调度过程,程序应将每个时间片内的进程的情况显示出来,参照的具体格式如下:

    RUNNING

    PROG:

    i

    READY_QUEUE:->id1->id2

    BLOCK_QUEUE:->id3->id4

    ==================================

    ID

    01234

    PRIORITY

    P0P1P2P3P4

    CPUTIME

    C0C1C2C3C4

    ALLTIME

    A0A1A2A3A4

    STARTBLOCK

    T0T1T2T3T4

    BLOCKTIME

    B0B1B2B3B4

    STATE

    S0S1S2S3S4

    3

    使用动态优先权的进程调度算法的模拟

    (1)

    流程图如图1.3.1:

    N

    Y

    N

    Y

    N

    Y

    开始

    创建N个进程并初始化pcb[N]

    根据进程状态初始化阻塞队列和就绪队列

    在就绪队列中找出优先权最大的进程运行

    进程运行完毕即alltime=0

    删除该进程

    运行一个时间片

    就绪队列中其他进程优先数prority+1

    进程运行完毕

    优先数priority-3

    结束

    阻塞就绪转换

    进程调入就绪队列或阻塞队列

    1.3.1-

    动态优先权进程调度流程图

    (2)

    实验效果图:

    1)输入进程的初始状态进行初始化如图1.3.2:

    1.3.2-

    初始化进程状态

    2)运行部分结果如图1.3.3:

    1.3.3-

    运行结果

    (3)实验关键代码:

    #define

    N

    5

    //默认进程数

    int

    count;

    //定义进程结构体

    typedef

    struct

    pcb{

    int

    id;

    //进程id号

    int

    priority;

    //进程优先权

    int

    cputime;

    //占用cpu时间

    int

    alltime;

    //进程运行完成时间

    int

    startblock;

    //进程开始阻塞时间

    int

    blocktime;

    //进程阻塞到恢复就绪时间

    char

    state;

    //进程状态

    pcb*

    next;

    //指向下一个进程指针

    }pcb,*pcb_link;

    //初始化进程

    pcb_link

    initTask(pcb

    pcb[]){

    int

    i;

    char

    c;

    pcb_link

    plink=(pcb_link)malloc(sizeof(pcb));

    //就绪队列创建头指针

    plink->next=NULL;

    printf(“请初始化%d个进程:/n“,N);

    printf(“ID

    “);

    //初始化进程id

    for(i=0;inext=

    就绪队列

    return

    plink;/

    }

    //在就绪队列中找到优先数最大的进程

    int

    maxPriority(pcb_link

    ready_q){

    pcb_link

    p;

    p=ready_q->next;

    int

    prog,max;

    max=prog=INT_MIN;

    while(p){

    if(p->priority>max){

    prog=p->id;

    max=p->priority;

    }

    p=p->next;

    }

    return

    prog;

    }

    //进程运行函数

    void

    run(pcb_link

    ready_q,pcb_link

    block_q,int

    prog){

    pcb_link

    p,running_p=NULL;

    if(-1next;

    while(p){

    if(p->id==prog)

    running_p=p;

    //running_p指向运行的进程

    else

    p->priority+=1;

    //就绪队列中其他进程priority+1

    p=p->next;

    }

    running_p->priority-=3;

    /*

    running_p->cputime+=1;

    running_p->alltime-=1;

    if(running_p->startblock>0)

    running_p->startblock-=1;

    改变运行进程

    if(running_p->alltime==0)

    的信息和状态

    running_p->state=

    F

    ;

    else

    if(running_p->startblock!=0)

    running_p->state=

    R

    ;

    else

    running_p->state=

    B

    ;/

    }

    p=block_q->next;

    while(p){

    p->blocktime-=1;

    if(p->blocktime==0)

    //判断阻塞队列中进程状态是否变成就绪状态

    p->state=

    R

    ;

    p=p->next;

    }

    }

    //进程调入或调出就绪队列函数

    void

    ready_or_block(pcb_link

    ready_q,pcb_link

    block_q,int

    prog,pcb

    pcb[]){

    pcb_link

    p,q,ready_end,block_end,t;

    ready_end=block_end=t=NULL;

    p=ready_q;

    while(p->next)

    p=p->next;

    ready_end=p;

    //就绪队列尾指针

    q=block_q;

    p=block_q->next;

    while(p){

    if(p->state==

    R

    ){

    t=p;

    q->next=t->next;

    /*

    阻塞队列中就绪进程

    t->next=ready_end->next;

    插到就绪队列尾部

    ready_end->next=t;/

    ready_end=t;

    //修改就绪队列尾指针

    }

    else

    q=p;

    p=q->next;

    }

    block_end=q;

    if(prog>-1

    if(pcb[prog].state==

    B

    ){

    /*

    while(p->id!=prog

    运行后进程变成阻塞状态

    p=p->next;

    插到阻塞进程尾部

    }

    q->next=p->next;

    p->next=block_end->next;

    block_end->next=p;

    //修改阻塞队列尾指针/

    }

    else

    if(pcb[prog].state==

    R

    ){

    while(p->id!=prog

    p=p->next;

    }

    if(p->next){

    q->next=p->next;

    p->next=ready_end->next;

    ready_end->next=p;

    }

    }

    else{

    /*

    count++;

    while(p->id!=prog

    进程计数器count++

    p=p->next;

    并删除该进程

    }

    q->next=p->next;/

    }

    }

    }

    int

    main(void){

    pcb

    pcb[N];

    //创建进程数组

    pcb_link

    ready,block;

    //创建就绪和阻塞队列头指针

    int

    program;

    count=0;

    //进程计数器初始为0

    block=(pcb_link)malloc(sizeof(pcb));

    block->next=NULL;

    ready=initTask(pcb);

    //初始化进程

    printf(“/n/n/n运行过程:/n“);

    while(count=tsk[task_id].size){

    //找到第一个够分的空间块

    free[i].size-=tsk[task_id].size;

    tsk[task_id].workplace=i;

    break;

    }

    if(i==free_block)

    printf(“任务%d分配空间失败/n“,task_id);

    //分配失败输出

    }

    //释放任务空间

    void

    fre(space

    free[],task

    tsk[],int

    task_id){

    int

    work;

    work=tsk[task_id].workplace;

    free[work].size+=tsk[task_id].size;

    //空间块空间增加

    tsk[task_id].workplace=-1;

    }

    3.3.2

    最佳适应算法

    最佳适应算法(Best-fit):当要分配内存空间时,就查找空闲表中满足要求的空闲块,并使得剩余块是最小的。然后把它分配出去,若大小恰好合适,则直接分配;若有剩余块,则仍保留该余下的空闲分区,并修改分区大小的起始地址。

    最佳适应算法和首次适应算法的不同之处是,在为进程分配和释放一个空间后对分区链表进行一次从小到大的排序。

    算法代码如下:

    //没分配完一个分区或进程释放空间,对分区链表进行排序

    void

    sort(space_link

    slink){

    space_link

    tp,t,p,q;

    tp=(space_link)malloc(sizeof(space));

    //创建临时头指针,用来指向已排序的分区

    tp->next=NULL;

    t=slink->next;

    slink->next=t->next;

    t->next=tp->next;

    tp->next=t;

    t=slink->next;

    while(t){

    q=tp;

    p=tp->next;

    while(p){

    if(t->size>p->size){

    //找到待排序的分区在有序链表里的位置

    q=p;

    p=p->next;

    }

    else

    break;

    }

    slink->next=t->next;

    /*

    t->next=p;

    q->next=t;

    插入有序链表

    t=slink->next;/

    }

    slink->next=tp->next;

    free(tp);

    }

    关键实验代码如下:

    #define

    free_block

    5

    //空闲分区块数

    #define

    free_space

    640

    //空闲分区总数

    #define

    N

    7

    //任务数

    //定义分区块

    typedef

    struct

    space{

    int

    id;

    //分区块id

    int

    size;

    //分区块大小

    spacenext;

    //指向下一个分区块

    }space,*space_link;

    //定义任务结构体

    typedef

    struct

    task{

    int

    id;

    //任务id

    int

    size;

    //任务需要空间大小

    int

    workplace;

    //申请到的空间块

    }task,*task_link;

    //初始化分区

    space_link

    init_space(space

    free[]){

    int

    i,sum,a;

    space_link

    sh;

    sum=0;

    a=40;

    //初始大小40

    sh=(space_link)malloc(sizeof(space));

    for(i=0;inext=/

    return

    sh;

    //返回链表头指针

    }

    //初始化任务

    void

    init_task(task_link

    tsk,int

    task_id,int

    size){

    tsk->id=task_id;

    tsk->size=size;

    tsk->workplace=-1;

    //申请到的空间块初始为-1

    }

    int

    main(void){

    space

    spa[free_block];

    task

    tsk[N];

    space_link

    space_head;

    char

    c;

    space_head=init_space(spa);

    printf(“动态分区分配方式的模拟/n“);

    printf(“亲输入分区方式,F用首次适应算法分配,B用最佳适应算法分配/n/n“);

    printf(“请选择分配方式:“);

    scanf(“%c“,printf(“/n/n“);

    if(c==

    F

    ){

    //首次适应算法

    init_task(

    //初始任务0

    alloc(spa,tsk,0);

    //给任务0分配空间

    print(space_head);

    //输出分区状态

    init_task(

    alloc(spa,tsk,1);

    print(space_head);

    init_task(

    alloc(spa,tsk,2);

    print(space_head);

    fre(spa,tsk,1);

    //释放任务1空间

    print(space_head);

    init_task(

    alloc(spa,tsk,3);

    print(space_head);

    fre(spa,tsk,2);

    print(space_head);

    fre(spa,tsk,0);

    print(space_head);

    init_task(

    alloc(spa,tsk,4);

    print(space_head);

    init_task(

    alloc(spa,tsk,5);

    print(space_head);

    init_task(

    alloc(spa,tsk,6);

    print(space_head);

    fre(spa,tsk,5);

    print(space_head);

    }

    else

    if(c==

    B

    ){

    //最佳首次适应算法

    init_task(

    alloc(spa,tsk,0);

    sort(space_head);

    print(space_head);

    init_task(

    alloc(spa,tsk,1);

    sort(space_head);

    print(space_head);

    init_task(

    alloc(spa,tsk,2);

    sort(space_head);

    print(space_head);

    fre(spa,tsk,1);

    sort(space_head);

    print(space_head);

    init_task(

    alloc(spa,tsk,3);

    sort(space_head);

    print(space_head);

    fre(spa,tsk,2);

    sort(space_head);

    print(space_head);

    fre(spa,tsk,0);

    sort(space_head);

    print(space_head);

    init_task(

    alloc(spa,tsk,4);

    sort(space_head);

    print(space_head);

    init_task(

    alloc(spa,tsk,5);

    sort(space_head);

    print(space_head);

    init_task(

    alloc(spa,tsk,6);

    sort(space_head);

    print(space_head);

    fre(spa,tsk,5);

    sort(space_head);

    print(space_head);

    }

    }

    运行结果图如图2.3.2:

    2.3.2-

    运行结果

    请求调页存储管理方式模拟

    1

    设计目的

    熟练掌握操作系统中请求调页方式的存储管理算法。

    2

    设计要求

    1)

    假设每个页面中可以存放10条指令,分配给一个作业的内存块数为4;

    2)

    用C语言模拟一作业的执行过程,改作业共320条指令,即其地址空间为32页,目前他的所有页还未调入内存。在模拟过程中,如果所访问的指令已经在内存,则显示其物理地址,并转到下一条指令,如果所访问指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存;如果4个内存块中均有内容,

    则需进行页面置换;最后显示其物理地址,并转向下一条指令。在所有的320条指令执行完毕后,请计算并显示作业运行过程中发生的缺页率。

    3)

    置换算法请分别采用OPT、FIFO和LRU;

    4)

    作业中的指令顺序按如下原则生成:

    l

    50%的指令顺序执行;

    l

    25%的指令跳转到当前地址前(目标地址随机生成);

    l

    25%的指令跳转到当前地址后(目标地址随机生成);

    具体的实施方法是:

    在[0,319]的指令地址之间随机选取一条起始执行指令,其序号为m;

    顺序执行下一条指令,即序号为m+1的指令;

    通过随机数跳转到前地址部分[0,m-1]中的某条指令处,其序号为;

    顺序执行下一条指令,其地址为+1的指令;

    通过随机数跳转到后地址部分[+2,319]中的某条指令处,其序号为;

    顺序执行下一跳指令,即序号为+1的指令;

    重复跳转到前地址部分、顺序执行、跳转到后地址部分、顺序执行的过程,直至执行320条指令。

    3

    模拟算法的实现

    4.3.1

    OPT算法

    OPT算法关键代码如下:

    void

    opt(memory*m,pagepag[]){

    int

    i,j,m1,m2,m3,p,order_id,a[320][3],b[BLOCK_N]={-1,-1,-1,-1};//数组a用来存放320执行指令,数组b用来存放当前内存块中指令

    count_order=i=j=0;

    //初始化指令数组

    for(j;j-1){

    m2=random_order(0,m1-1);

    //跳转到前地址指令

    p=belong_page(m2);

    order_id=belong_orderId(m2);

    pag[p].ord[order_id].state=1;

    a[i][0]=p;

    a[i][2]=m2;

    //存入数组a

    //printf(“%d/n“,a[i][0]);

    i++;

    count_order++;

    //指令计数器加1

    }

    if(m2+1block[m->point]==-1){

    //内存块没有装满

    pag[a[i][0]].workplace=m->point;

    m->block[m->point]=a[i][0];

    m->point=(m->point+1)%BLOCK_N;

    //指向下一个内存块的位置

    b[m->point]=a[i][2];

    //数组b记录指令号

    print(*m);

    //输出内存块状态

    printf(“/n“);

    }

    else{

    //内存块已满,需置换

    m2=-1;

    for(j=0;jm2){

    m2=a[m1][1];

    m3=j;

    //在数组b中找到需置换的指

    }

    }

    order_id=b[m3];

    p=belong_page(order_id);

    //计算页号

    m1=pag[p].workplace;

    pag[p].workplace=-1;

    //修改被置换页的状态

    b[m3]=a[i][2];

    //新指令替换原指令

    m->block[m1]=a[i][0];

    //内存块替换

    pag[a[i][0]].workplace=m1;

    //修改新指令的页状态

    print(*m);

    //输出内存状态

    printf(“/n“);

    }

    count++;

    //缺页数加1

    }

    else{

    //页号在内存块中

    for(j=0;jblock[m->point]==-1){

    //内存块不满

    pag[pg].workplace=m->point;

    m->block[m->point]=pg;

    m->point=(m->point+1)%BLOCK_N;

    //指向下一个内存块

    print(*m);

    //输出内存块状态

    }

    else{

    //内存块已满

    pag[m->block[m->point]].workplace=-1;

    //修改被替换页状态

    pag[pg].workplace=m->point;

    //修改指令所在页状态

    m->block[m->point]=pg;

    //新页存入内存块

    m->point=(m->point+1)%BLOCK_N;

    //指向下一个内存块

    print(*m);

    //输出内存状态

    }

    count++;

    //缺页数加1

    }

    pag[pg].ord[id].state=1;

    count_order++;

    //指令计数器加1

    }

    }

    4.3.3

    LRU算法

    void

    lru(memory*m,int

    order_id,page

    pag[],stacks){

    int

    pg=belong_page(order_id);

    //计算页号

    int

    id=belong_orderId(order_id);

    //计算所在页的id

    int

    middle,i;

    if(pag[pg].ord[id].state==0){

    //指令未被执行

    if(pag[pg].workplace==-1){

    //页不在内存块中

    if(m->block[m->point]==-1){

    //内存块未满

    m->block[m->point]=pg;

    //页存入内存块

    pag[pg].workplace=m->point;

    //修改页状态

    m->point=(m->point+1)%BLOCK_N;

    //指向下一个内存块

    s->st[s->top]=pg;

    //页压入栈

    s->top++;

    //栈顶指针加1

    print(*m);

    //输出内存状态

    }

    else{

    //内存已满

    pag[pg].workplace=pag[s->st[s->bottom]].workplace;

    //修改页状态

    pag[s->st[s->bottom]].workplace=-1;

    //修改被置换页状态

    for(i=s->bottom;itop-1;i++)

    s->st[i]=s->st[i+1];

    s->st[i]=pg;

    //栈顶存入新页

    m->block[pag[pg].workplace]=pg;

    print(*m);

    }

    count++;

    //缺页数加1

    }

    else{

    for(i=s->bottom;itop;i++)

    if(s->st[i]==pg)

    middle=i;

    for(i=middle;itop-1;i++)

    s->st[i]=s->st[i+1];

    //修改栈中页的顺序

    s->st[i]=pg;

    }

    pag[pg].ord[id].state=1;

    count_order++;

    //指令数加1

    }

    }

    实验关键代码如下:

    #define

    ORDER_N

    10

    #define

    PAGE_N

    32

    #define

    BLOCK_N

    4

    int

    count;

    //缺页计数器

    int

    count_order;

    //指令计数器

    //定义指令结构体

    typedef

    struct

    order{

    int

    id;

    int

    belong;

    int

    state;

    }order;

    //定义页结构体

    typedef

    struct

    page{

    order

    ord[ORDER_N];

    int

    workplace;

    }page;

    定义内存结构体

    typedef

    struct

    memory{

    int

    block[BLOCK_N];

    int

    point;

    }memory;

    //定义栈

    typedef

    struct

    stack{

    int

    st[BLOCK_N];

    i

    • 范文大全
    • 职场知识
    • 精美散文
    • 名著
    • 讲坛
    • 诗歌
    • 礼仪知识