人人范文网 教学工作总结

操作系统教学工作总结(精选多篇)

发布时间:2021-02-22 08:34:24 来源:教学工作总结 收藏本文 下载本文 手机版

推荐第1篇:操作系统教学总结

操作系统教学总结

教师:杨宇

这学期我担任了《操作系统》这门课程的教学工作,本教材内容多,任务重,而且13级大部分学生对计算机方面的知识了解都非常匮乏,基础非常薄弱,但是在各位老师的帮助和学校领导的指导下,我们非常圆满的完成了本学期的教学任务。

教这门课程首先要使学生知道操作系统课程的重要性,这门课程是中职生计算机专业学生的主干课程。现在的计算机越来越普及,无论是从事软件维护、操作系统维护,还是网络管理,就算是为了自己以后能够买一台电脑,选购不会上当受骗,自己能够安装和维护,也要悉心学习.

二、操作系统是一门理论性、基础性、应用性很强的课程,要学好,首先就要教育学生要有学习的韧性,不怕吃苦不怕累,在学好理论的基础上,把理论联系到实践,再把实践运用到实际。

在教学上,身为教者,首先要发挥现代化的教学手段,增强教学的形象直观性,提高学生的学习兴趣。

根据学生的实际情况,制作交互性强、操作性强、生动活泼的多媒体课件,通过图文并茂、视频动画以直观教学,在网上下载最新硬件图片以及购买参数信息,丰富教学内容,利用多媒体教室形象直观的传递计算机硬件信息,细致的讲解,一步一个脚印,融会贯通的讲好每一个知识点,用学生最常接触的手机、MP

3、MP

4、DVD等常见设施为例子,讲解存储卡,讲解光驱,用电视显像管成像原理讲解显示器等等,提高学生学习计算机硬件知识的兴趣。

其次,计算机的发展日新月异,而我们的教材相对比较滞后,因此身为教者我必须及时补充更新,来提高学生学习的兴趣和积极性,培养适合现实需要的计算机发展人才。

再者,操作系统课,最重要的就是实践,增强学生解决实际问题的动手能力。在专门的计算机室里,两节理论课两节实践,理论课上讲的内容要联系到实践,通过大量的实践完成计算机硬件的组装、软件的安装与维护,培养和锻炼学生要敢动手、勤动手,为最终具备专业的操作系统维护能力打下坚实的基础。

最后,做好考核,增强教学目标的实行。

为了更好完成教学,我专门制定了有利于学生提高适应社会需求,提升自身素质的考核方式。而我除了课堂提问考核外,更加侧重于教学实践,每次学生动手操作能力的提升,提升学生动手操作的积极性和学习的兴趣。

2015年1月4日

推荐第2篇:Windows操作系统教学教案

Windows操作系统教学教案

【教学目的与要求】

了解操作系统的特点和发展历史,掌握WindowsXP的常用术语,掌握WindowsXP的基本操作,掌握资源管理器的操作,学会文件管理方法,学会磁盘管理,掌握系统的设置方法,了解控制面板的使用,学会使用WindowsXP的自带程序,了解打印机和扫描仪的安装、设置和使用。

第一节 WindowsXP介绍

一、Windows XP的特点

1.界面友好

2.多任务系统

3.支持多屏幕显示

4.网络管理方便、安全

5.设备管理功能强大

6.与Internet的集成

二、启动Windows XP Profeional

计算机启动后将出现“登陆到Windows”对话框,输入正确的用户名及密码,“确定”即可进入到WindowsXP系统。

三、Windows XP 的桌面

Windows系统登陆成功进入到的第一个界面称“桌面”,系统安装完成后桌面上一般形成以下几个图标。

1.我的电脑:管理计算机内的所有资源

2.我的文档:用户文件的管理

3.网上邻居:网络浏览及文件共享

4.IE浏览器:启动网页浏览器以浏览网页信息

5.回收站:存放被删除的对象及对被错误删除对象的恢复

四、关闭Windows XP

通过Windows系统的关机命令来正常关闭计算机。

开始→关机→选择“关机”→确定 第二节 Windows窗口

一、窗口的组成

窗口是Windows系统的特点,窗口的基本组成部分都一致,一般包含以下几个部分:

1.标题栏:显示窗口名称、应用程序名称或文件名

2.控制按钮:位于标题栏的左边,单击打开控制菜单

3.最小化按钮:将窗口最小化为任务栏上的一个图标

4.关闭按钮:彻底关闭窗口

5.最大化按钮:将窗口充满整个屏幕

6.还原按钮:将窗口还原为原始大小

7.菜单栏:包含了针对当前窗口的所有命令

8.工具栏:将常用命令制作成按钮以方便使用

9.地址栏:按照已知路径查找对象或上网浏览信息

10.工作区:显示窗口操作的内容

11.滚动条:窗口内容较多时用以滚动显示对象,有垂直的跟水平的两种

12.状态栏:显示窗口当前操作对象的状态

二、窗口的基本操作

Windows窗口可以根据需要进行各种调整以方便使用:

1.最小化

2.最大化

3.还原

4.关闭(快捷键:Alt+F4)

5.调整窗口的位置

6.调整窗口水平方向、垂直方向或任意方向的大小

7.层叠窗口

8.横向平铺窗口

9.纵向平铺窗口 第三节 资源管理器

Windows资源管理器是一个树型结构的文件管理系统,窗口启动后分左右两个窗口,左窗口称为文件夹窗口,右窗口称为文件窗口,可以很方便地查看驱动器、文件夹与文件之间的相互关系。

一、启动资源管理器

常见资源管理器的启动方式有以下几种:

1.开始→程序→附件→Windows资源管理器

2.右击“开始”按钮选择“资源管理器”

3.右击“我的电脑”选择“资源管理器”

二、创建文件夹

左窗口选择目标文件夹,右窗口空白处右击选择“新建→文件夹”,或文件菜单下选择“新建→文件夹”即可。

三、文件或文件夹选择

文件或文件夹的选择根据需要有以下几种选择方式:

1.选择一个对象:单击

2.连续选择多个对象:先选第一个对象,按Shift键选择最后一个对象

3.选择多个不连续的对象:先选第一个对象,按Ctrl键选择其它对象

4.全部选择:编辑菜单下的“全选”命令或Ctrl+A

四、复制、移动文件和文件夹

文件或文件夹的复制或移动操作几乎完全类似

1.选择对象

2.选择编辑菜单或右键菜单下的“复制(或剪切)”命令,或选择工具栏上的“复制(或剪切)”按钮

3.选择目标位置,选择编辑菜单或右键菜单下的“粘贴”命令,或选择工具栏上的“粘贴”按钮

五、删除及还原文件或文件夹

文件或文件夹的删除方法完全相同

1.选择对象

2.选择编辑菜单或右键菜单下的“删除”命令,或选择工具栏上的“删除”按钮

Windows环境下文件或文件夹被删除后,首先被放进了回收站,恢复的方法为:

1.打开回收站

2.选择需要恢复的对象

3.选择文件菜单下的“还原”命令,或选择窗口内的“还原”按钮

六、文件及文件夹重命名

选择对象,选择文件菜单或右键菜单下的“重命名”命令,对象名称反白显示,输入新名称即可。

七、搜索文件和文件夹

Windows环境下提供了搜索功能,可以根据用户的需要,对文件或文件夹进行搜索,具体方法为:

1.开始→搜索→文件或文件夹

2.在“搜索结果”窗口里,可以根据文件或文件夹的名字、包含的文字、具体的搜索范围,以日期、类型、大小等方式进行文件或文件夹的搜索。第四节 磁盘操作

一、查看磁盘属性

右击磁盘对象,选择“属性”命令,可以在“常规”、“工具”、“硬件”、“共享”标签下对磁盘进行相关的设置并进行磁盘属性的查看。

二、格式化磁盘

右击磁盘对象,选择“格式化”命令,可以对磁盘按照“格式化选项”进行格式化,不同的格式化选项,格式化的结果也不相同,磁盘在使用前必须进行格式化操作。

三、软盘与软盘之间的复制

相同内容软盘的形成可以使用该方法,将源盘插进软驱右击磁盘对象,选择“复制磁盘”命令,开始读取源盘信息,结束后提示插入目标盘,将目标盘插入软驱,继续操作即可。注意:该方式复制将把目标盘里原有的内容清除。

四、磁盘碎片整理

磁盘在使用一定时间后,小的尚未使用的存储空间就会越来越多,文件的管理会变的比较可能,机器运行的效率就会降低,这时可以使用磁盘碎片整理程序重新整理硬盘上的文件和未使用的空间,以达到加速程序运行的目的,方法为:

开始→程序→附件→系统工具→磁盘碎片整理,在出现的窗口根据需要对磁盘空间进行可选择地整理。

第五节 任务栏及桌面

一、任务栏

一般情况下,任务栏位于屏幕的下边,分为:“开始”按钮区、快速启动栏区、任务区及状态区,根据需要可以单击任务区空白位置并拖动将任务栏拖动到屏幕的四周,移动鼠标到任务栏的边缘上鼠标变为双向箭头拖动可以改变任务栏的大小。

“开始”按钮:用于启动系统里的应用软件及一些控制窗口

快速启动栏区:可以把用户常用的工具放这里以快速启动

任务区:用户启动的所有窗口都在该区显示一个按钮

状态区:可以设置系统时间、输入法及声音等的控制

二、桌面属性

用户可以根据自己的爱好和要求设置个性化桌面

右击桌面空白位置选择“属性”命令,在出现的窗口中可以在“背景”、“屏幕保护程序”、“外观”、“Web”、“效果”、“设置”标签下进行相关设置。 第六节 控制面板

用户可以工具自己的需要在控制面板对系统进行更多的设置:开始→设置→控制面板

一、调整时间

双击打开“时间/日期”图标出现“日期/时间属性”对话框,可以进行“时间/日期”与“时区”的设置。

二、设置输入法

双击打开“区域选项”图标出现“区域选项”对话框,在“输入法区域设置”标签下进行输入法的添加与删除等设置。

三、设置键盘鼠标

双击打开“键盘”与“鼠标”图标分别出现“键盘属性”与 “鼠标属性”对话框,在“键盘”的对话框里可以分别设置键盘的“字符重复”与“光标闪烁频率”,在“鼠标”的对话框里可以进行“鼠标键”、“指针”及“移动”等的设置。

四、添加/删除程序

计算机系统安装的文件均保存在硬盘的某个区域上,但不可以在不需要的时候直接删除文件夹,因为这样的删除只删除了安装文件下的文件,而一些被安装到系统目录下的“*.dll”文件并没有删除,同时也没删除注册表的信息,这将造成系统资源的下降。正确的方法为打开“添加/删除程序”窗口,在该窗口下进行程序的删除与添加。

第七节 常用附件

Windows提供了一些常用软件以方便用户的使用,如:画图、写字板、记事本、录音机、CD唱机、计算器等。

一、画图程序的使用

使用画图程序可以创建编辑简单的图画。

二、写字板的使用

使用写字板程序可以创建编辑简单的文本文件及带有简单图形的文档文件。

三、其它附件

使用录音机程序可以录音或对声音文件进行格式转换;使用CD唱机可以对CD文件进行播放;使用计算器程序可以方便用户的计算;记事本用于编辑文本,但功能比写字板差;用户还可以在闲暇之余从Windows系统自带的小游戏中得到放松与娱乐。 第八节 打印机、扫描仪的安装与设置

打印机和扫描仪是计算机常用的外围设备,这些设备在使用前均需要先正确连接硬件、安装其驱动程序并进行相关设置后才可以使用。它们的安装与设置方法基本类似。

一、打印机的安装与设置

在控制面板里打开“打印机”图标,双击“添加打印机”图标可以出现打印机安装向导,按照向导的提示,可以选择打印机的使用环境、安装端口、型号等。安装完成后会在“打印机”窗口形成刚安装的打印机图标,右击该图标选择“属性”可以对该打印机进行相关设置。

二、扫描仪的安装与设置

在控制面板里打开“扫描仪与照相机”图标,可以出现扫描仪与照相机安装向导,按照向导的提示,可以选择设备的使用环境、安装端口、型号等。安装完成后会在“扫描仪与照相机”窗口形成刚安装的设备图标,选择“属性”可以对该设备进行相关设置,有些扫描仪有文字识别功能,需要相关的识别软件。 第九节 使用帮助功能

Windows环境提供了丰富的帮助系统,常见的有三种方式:操作系统帮助窗口、应用程序帮助窗口、对话框帮助按钮。

一、操作系统与应用程序帮助窗口

操作系统与应用程序帮助窗口非常相似,可以按照目录、索引、搜索与书签的方式寻求帮助。

二、对话框帮助按钮

Windows环境下很多的对话框窗口的标题栏上有带“?”的按钮,点击选择该按钮,鼠标变为带问号的指针,到操作不明白的对象上去单击就会显示文本功能提示。

推荐第3篇:UNIX操作系统教学日历

课程 内章节

第1章UNIX操作系统概述 第2章 UNIX基本操作命令 第第3章 文档和文本编辑器 一 第4章 UNIX文件系统 部第5章 UNIX进程 分 第6章 UNIX Shell UNI第7章 定制用户环境 X基第8章 UNIX实用程序 础

第9章 AIX图形用户接口

第10章 AIX下C语言编程简介(课外)

UNIX新技术讲座(1) 第11章 AIX系统管理概述 第第12章 系统管理工具 二第13章 系统启动与关闭 部第14章 AIX 6的安装 分第15章 软件安装和维护 UNI第16章 存储管理 X系第17章 文件系统管理

统第18章 安全与用户管理(课外) 管第19章 设备管理(课外) 理

第20章 调度与网络管理(课外) 第21章 备份与恢复(课外) 第22章 打印机与打印队列(课外) UNIX新技术讲座(2)

考前复习与AIX认证介绍

学时小计

讲课 学时

1 1 2 3 2 3 1 2 1 0 2 1 1 1 1 1 4 2 0 0 0 0 0 2 1 32

课内外 学时实验项目

比 1:1

1:1 实验1 1:1 实验1 1:1 实验2 1:1 实验4 1:1 实验3 1:1 实验4 1:1 实验5 1:1 实验6 11:11:1

1:1 实验8 1:1 实验8 1:1 实验7 1:1 实验8 1:1 实验9 1:1 实验9 2 实验10 1 实验11 1 实验12 2 实验13 1 实验14 1:11:1

32

推荐第4篇:Windows操作系统教学教案

Windows操作系统教学教案

【教学目的与要求】

了解操作系统的特点和发展历史,掌握WindowsXP的常用术语,掌握WindowsXP的基本操作,掌握资源管理器的操作,学会文件管理方法,掌握系统的设置方法,了解控制面板的使用,学会使用WindowsXP的自带程序。 WindowsXP介绍

一、Windows XP的特点

1.界面友好;

2.多任务系统;

3.支持多屏幕显示;

4.网络管理方便、安全;

5.设备管理功能强大;

6.与Internet的集成

二、启动Windows XP Profeional

计算机启动后将出现“登陆到Windows”对话框,输入正确的用户名及密码,“确定”即可进入到WindowsXP系统。

三、Windows XP 的桌面

四、关闭Windows XP Windows窗口 资源管理器

Windows资源管理器是一个树型结构的文件管理系统,窗口启动后分左右两个窗口,左窗口称为文件夹窗口,右窗口称为文件窗口,可以很方便地查看驱动器、文件夹与文件之间的相互关系。

一、启动资源管理器

二、创建文件夹

左窗口选择目标文件夹,右窗口空白处右击选择“新建→文件夹”,或文件菜单下选择“新建→文件夹”即可。

三、文件或文件夹选择

文件或文件夹的选择根据需要有以下几种选择方式:

1.选择一个对象:单击

2.连续选择多个对象:先选第一个对象,按Shift键选择最后一个对象

3.选择多个不连续的对象:先选第一个对象,按Ctrl键选择其它对象

4.全部选择:编辑菜单下的“全选”命令或Ctrl+A

四、复制、移动文件和文件夹

文件或文件夹的复制或移动操作几乎完全类似

1.选择对象

2.选择编辑菜单或右键菜单下的“复制(或剪切)”命令,或选择工具栏上的“复制(或剪切)”按钮

3.选择目标位置,选择编辑菜单或右键菜单下的“粘贴”命令,或选择工具栏上的“粘贴”按钮

五、删除及还原文件或文件夹

文件或文件夹的删除方法完全相同

1.选择对象

2.选择编辑菜单或右键菜单下的“删除”命令,或选择工具栏上的“删除”按钮

Windows环境下文件或文件夹被删除后,首先被放进了回收站,恢复的方法为:

1.打开回收站

2.选择需要恢复的对象

3.选择文件菜单下的“还原”命令,或选择窗口内的“还原”按钮

六、文件及文件夹重命名

选择对象,选择文件菜单或右键菜单下的“重命名”命令,对象名称反白显示,输入新名称即可。

七、搜索文件和文件夹

Windows环境下提供了搜索功能,可以根据用户的需要,对文件或文件夹进行搜索,具体方法为:

1.开始→搜索→文件或文件夹

2.在“搜索结果”窗口里,可以根据文件或文件夹的名字、包含的文字、具体的搜索范围,以日期、类型、大小等方式进行文件或文件夹的搜索。任务栏及桌面

一、任务栏

一般情况下,任务栏位于屏幕的下边,分为:“开始”按钮区、快速启动栏区、任务区及状态区,根据需要可以单击任务区空白位置并拖动将任务栏拖动到屏幕的四周,移动鼠标到任务栏的边缘上鼠标变为双向箭头拖动可以改变任务栏的大小。

“开始”按钮:用于启动系统里的应用软件及一些控制窗口

快速启动栏区:可以把用户常用的工具放这里以快速启动

任务区:用户启动的所有窗口都在该区显示一个按钮

状态区:可以设置系统时间、输入法及声音等的控制

二、桌面属性

用户可以根据自己的爱好和要求设置个性化桌面

右击桌面空白位置选择“属性”命令,在出现的窗口中可以在“背景”、“屏幕保护程序”、“外观”、“Web”、“效果”、“设置”标签下进行相关设置。 第六节 控制面板

用户可以工具自己的需要在控制面板对系统进行更多的设置:开始→设置→控制面板

一、调整时间

双击打开“时间/日期”图标出现“日期/时间属性”对话框,可以进行“时间/日期”与“时区”的设置。

二、设置输入法

双击打开“区域选项”图标出现“区域选项”对话框,在“输入法区域设置”标签下进行输入法的添加与删除等设置。

三、设置键盘鼠标

双击打开“键盘”与“鼠标”图标分别出现“键盘属性”与 “鼠标属性”对话框,在“键盘”的对话框里可以分别设置键盘的“字符重复”与“光标闪烁频率”,在“鼠标”的对话框里可以进行“鼠标键”、“指针”及“移动”等的设置。

四、添加/删除程序

计算机系统安装的文件均保存在硬盘的某个区域上,但不可以在不需要的时候直接删除文件夹,因为这样的删除只删除了安装文件下的文件,而一些被安装到系统目录下的“*.dll”文件并没有删除,同时也没删除注册表的信息,这将造成系统资源的下降。正确的方法为打开“添加/删除程序”窗口,在该窗口下进行程序的删除与添加。

使用帮助功能

Windows环境提供了丰富的帮助系统,常见的有三种方式:操作系统帮助窗口、应用程序帮助窗口、对话框帮助按钮。

推荐第5篇:《Linux 操作系统》课程教学心得

《Linux 操作系统》课程教学心得

目前,Linux 操作系统凭借着良好的兼容性、稳定的可靠性和功能的完备性,在过

去的近二十年间风靡全球,被广泛应用于智能电子产品开发、网络服务器配置和集群计

算机领域。当前我国高职高专院校大都开设了《Linux 操作系统》这一课程,特别是在

计算机网络和信息安全技术等专业中,更是作为专业主干课程进行开设,已成为专业课

程体系设置中的重要内容和学生专业技能培养中的重要环节。

但是:由于Linux 操作系统与学生早先熟悉的Windows 操作系统在文件和系统管

理方式上都存在着较大差异,windows 系统主要采用所见即所得的图形界面管理,而

linux 系统主要采用简洁、高效的字符界面管理,使不少学生在学习过程中感到不适应。

同时,由于Linux 操作系统中操作命令繁多(要求学生有一定的英文基础,特别

是有赖于计算机英语掌握度),且每个命令还有不同的选项和参数设置,使得不少学生

在学习的过程中产生畏难(随着课程的深入、细化,每一项服务的配置都要使用大量的

英文字符。)情绪。因此,教师教好这门课程和学生学好这门课程,都是一件不容易的

事(根据多方调查高职高专的学生实际掌握程度大约为20%左右)。根据多年教学实践,

针对本课程的教学内容和教学方法提出一些观点和体会。

1 加深学生对操作系统相关知识的理解

操作系统可以被看作是计算机系统的指挥中心,统管整个系统的所有资源,制定不

同资源的分配策略,调度系统中运行的用户程序,协调它们对资源的需求,从而使整个

系统在高效、有序的环境里运行。同时,它又是用户与计算机交互的平台,离开了操作

系统用户就难以利用计算机硬件资源完成各种操作任务,实现不同的操作目标。

由于学生习惯了Windows 环境下的可视化界面,仅用鼠标点击就可以完成各项系

统功能,简化的操作使人们疏忽了对每步操作含义和操作系统的工作原理的思考。而在

Linux 操作系统学习中,字符界面下是通过丰富的命令来完成系统的各项功能,这要求

学生熟悉系统的文件组织结构及系统的工作原理,才能使用正确的命令及选项和参数进

行正确的操作。例如在Windows 环境下对文件及文件夹的管理操作几乎没有区别,都可

通过点击鼠标菜单实现,而在Linux 环境下对文件及文件夹(目录)的管理、操作,命

令参数却是不尽相同。因此,在linux 教学中应加深学生对操作系统相关知识的理解,

才能使其更好地掌握Linux 环境下的各种操作命令,达到记准用好命令的教学目的。

2 体现不同专业学生教学内容的差别

《Linux 操作系统》课程的主要任务是培养学生对Linux 操作系统的熟练应用和

网络管理能力。其知识体系不但包括对操作系统的安装、配置和常用命令(这是我们学

校第一学期的基本讲课内容), 还包含了对服务的配置(如:DNS 服务器设置、WEB 服

务器设置、NFS 服务器的设置、文件和打印服务器设置,第二学期的基本讲课内容)以及在Linux 系统环境下一个程序的编辑、编译、调试、生成RPM 安装包等内容,但以现有学校配制的学时分配情况,难以在这么短时间内让学生熟练掌握所有内容。同时,在现实中对不同专业学生的实际能力要求存在一定的差异。例如,对计算机网络专业要侧重网络服务的安装、配置、调试和管理,对信息安全技术专业要强调系统及服务器的安全设置,而对软件专业要突出其软件环境下的程序编辑、编译、调试等。

因此,在教学过程中要从专业培养人才培养标准出发,对照课程的知识目标和能力目标,对《Linux 操作系统》课程内容进行取舍、优化,体现出不同专业之专业特点。只有这样才能在规定的学时范围内,最大程度地提升学生的实际应用能力,体现各自的专业培养特色。我们的网络和3G专业应该有一定的区别,特别是针对两个班上的不同文化层次的学生,教学尤更难了。

3 采用灵活多样、效果良好的教学方法

3.1 情景教学法。情景教学法是教师根据教材所描绘的情景,创设出形象鲜明的投影图画片或形象的动画短片, 辅之生动的文学语言,并借助音乐的艺术感染力,再现教材所描绘的情景表象,使学生仿佛置身其间,如临其境;师生就在此情此景之中进行着的一种情景交融的教学活动。对于一些抽象、难以理解的知识,如各种服务的工作原理及过程,教师采用这种教学方法,可以直观地将教学内容呈现给学生,帮助学生理解知识。我们学校应增添设备,努力实现。

3.2 任务驱动教学法的应用。任务驱动教学法为学生提供体验实践的情境和感悟问题的情境,围绕任务展开学习,以任务的完成结果检验和总结学习过程,提高学生自主学习的积极性,使学生建构探究、实践、思考、运用的学习模式。

例如,在学习linux 的常用命令时,首先要激发学生的想象,结合当前企业中的实际情况创设出具体任务,但是我们有些学生的想象力不足,给教学带来了不定的困难。还有:例如,在一台公共主机上,每个部门的员工都有自己的计算机帐户,对自己创建的文件可以进行任何操作,同一部门的员工可以相互阅读,不同部门的员工禁止相互查看, 将教学内容的传授转变为学生根据线索提示解决实际问题的过程(要求学校提供一些相应的设备)。然后学生会创建帐号,管理用户,设置文件权限,查看文件,修改文件,复制、移动、删除文件等基本操作等,在完成任务的过程中学习基本操作命令,从而掌握教学内容。学生对完成实际任务产生浓厚兴趣,

3.3 项目驱动教学法的应用。项目驱动教学法,就是老师与学生通过共同实施一个完整的项目而进行的教学活动。学生在项目实践过程中,理解和把握课程要求的知识和技能,体验工作的艰辛和乐趣。好的开端是成功的一半,所以第一节课在整个教学过

程中起着举足轻重的作用。因此,在第一节给学生展示这学期要完成的完整项目,激起学生学习兴趣,并分解项目,让学生知道学习的重点,做到有的放矢、心中有数。如计算机网络专业,教师可以给学生展示一台配置完善的服务(由于教学任务比较繁重,有些准备不够充分),并演示和分解其功能,让学生知道学完这门课能掌握的知识和技能。并在日后的教学中,可逐一学习大项目分解出来的小项目,最后再综合完成开课时展示的综合项目。

3.4 分组教学法的应用。众所周知,学生之间知识水平、操作能力参差不齐,如何在教学中实施差异教学,培养学生良好的计算机素养与实际操作能力,全面地提高学生的整体水平,这已经成为所有计算机教师的共同课题。在此,我认为在实践教学过程中采用分组教学法是一种新颖而有效的教学模式。

例如,本课程的集中实训环节中,按照实验设备组网情况将学生分成若干小组,每个小组都要完成一个完整的项目,如搭建DHCP 服务器、samba 服务器、Apache 服务器、DNS 服务器、E-mail 服务器、FTP服务器等,小组成员分工协作,探讨交流,轮流完成各个服务器配置和测试的工作。最后,教师和同学们一起对各组的项目进行评议。这样不仅能保证每组同学都能得到指导,也能锻炼学生的协同学习和自学能力。实验考核方式也采取小组考核,激发学生集体荣誉感,促使学生共同学习和进步。当然我们学校由于教学设备和学生能力的问题,不能完全做到。

4 强化学生上机操作能力的培养

《Linux 操作系统》是一门实践性很强的课程,众多的命令等待学生上机操作实习。因此,在本课程课堂教学的同时,应注重对学生实验课的教学指导。在上机实验过程中,针对学生上机操作出现的共性问题要及时予以纠正,弥补理论教学上的疏漏。教师应鼓励学生课后在自己电脑上安装虚拟机进行单独练习(对网络、3G班都是这样要求的,但有些学生不能按老师的要求完成), 以及网络环境下的客户端/服务器之间的练习,并在课程考核时增加实际操作能力考评成绩在总成绩中所占的比重,采取各种措施强化学生上机操作能力的培养。

5 结束语

《Linux 操作系统》是计算机学科的主要课程之一,作为目前流行的多用户、多任务的网络操作系统,有着开放、稳定、安全、费用低廉等许多其它操作系统无可比拟的优势,具有越来越广泛的应用前景。要搞好《Linux 操作系统》课程教学工作,除了以上所论述的几个方面努力外,还应在实验实训教材编写、试题库建设和师资培训等方面进行更加深入的研究和探索。

推荐第6篇:第九课 计算机操作系统教学设计

第九课 >教学设计

一、教学内容分析: 本课内容参考四川教育出版社《信息技术》七年级(上)第九课-计算机操作系统,本课内容有:计算机系统的管理者-操作系统,Windows 操作系统的发展及 windows 操作系统的特点。

二、学生情况分析

本课教学内容对象是初一

(七)年级同学,学生来自不同的区县及学校,各校的教育教学条件及教学要求不统一,能力水平不齐,学习环境发生了改变,学习者本身年龄也不断增长, 信息技术课程的学习, 也进入了一个新的阶段。 为了能更科学地理解知识, 学会变通, 可以设置一些问题让学生自行寻找答案。

三、教学目标

目标难度 知识与技能 行为目标

(1)知道计算机操作系统的作用和地位,了解常用的操作系统,通过练习对比 dos 与 windows 系统的区别。

(2)知道现用 windows 操作系统的特点和发展方向,丰富自己的知识结构。

(3)体会计算机操作系统对计算机的管理作用及 windowsxp 操作系统的安装及启动的基本过程。 过程与方法

(1)以任务为驱动,培养学生的观察能力,自我探索总结的能力; (2)培养学生进行自主学习、协作学习的能力; (3)培养学生发现问题、分析问题和解决问题的能力 情感态度及价值观

(1)培养学生之间的协作合作关系,增强学生合作精神。 (2)培养学生大胆尝试探究精神。

四、重点难点

教学重点: 认识计算机操作系统的作用和 Windows 操作系统的发展及特点。 教学难点: 对 Dos、Windows 操作系统特点的理解及掌握 Windows 操作系统启动及安装的特点。

五、教学方法

任务驱动法、分组协作法、自主探究法

六、教学准备

局域网,多媒体电子教室,教学课件,及 windows xp setup 演示软件。

七、教学过程: 教学环节 导入 教师活动

师:刚组装的计算机能直接使用吗? 师:为什么呢? 师:对,通过前面的学习,我们知 道,计算机系统是由硬件系统和软 件系统两大部分组成的,而我们刚组装的只是计算机的硬件设备而已,也就是“裸机 ”, “裸机 ”是不能直接使用的,还需要我们给它安装一系列的软件才行。那么面对这么多的软硬件资源,就必须要有一个管理者来进行合理统一的管理才能 使计算机正常工作,这个管理者就是计算机操作系统。 学生学习活动

生:不能。 生:没有安装软件 设计意图 学习新知

9.1 计算机的 管理者 - 操作 系统 9.1 . 1、计 算机操作系 统人的地位 及作用 最初的计算机是没有操作系统的, 人们通过各种操作按钮来控制计算 机,直到后来操作系统的诞生才使 得计算机普及开来。 师:操作系统在计算机中有什么作 用呢? 师:对,它一种系统软件,就象一 个总管家一样负责计算机软、硬件 资源的全面管理,是电脑和人进行 沟通的工具。 操作系统的任务: Cpu 管理,存储器管理,外部设备 管理,信息管理 师:同学们知道有一些什么样的的 操作系统呢? DOS 操作系统, 它是 1985 年到 1995 年的个人电脑上最主要的操作系 统, 那么 DOS 操作系统到底是什么 样的呢?我们可以通过 Windows98 中的 MS—DOS 来模拟 DOS 操作系 统。 (1)进入 MS—DOS 环境 单 击 “ 开 始 ”——“ 程 序 ”——“MS-DOS 方式 ” ,进入到 生:管理计算机的 软硬件资源。 9.1.2、操作系统的发展

生: Windows 及 dos ①请大家在键盘上 输入 time 然后按回 车键,观察执行了 什么操作;time 英 文愿意为时间,每 条指令皆为英文及 缩写,请各位同学 体验 ms-dos 状态下 的部分指令的使 用:

DOS 操作系 统 采用 的是字符界 面, 用户对电脑 的操作一般 通 过键 盘命令完成 ,它的操作方法和操作界面对于初学者来说难以掌握。

DOS 环境下。 进入 DOS 操作系统后, 我们发现界 面不是桌面和图标,而是这样的一 个黑色的字符界面, 在字符界面中, 我们只能通过键盘输入字符命令来 指挥计算机工作,计算机完成一个 命令后,会出现下一个提示符,又 可以给计算机发出命令。 (2)在 DOS 操作系统向计算机发出命令 (3)老师小结 DOS 操作系统采用的是字符界面, 用户对电脑的操作一般通过键盘命 令完成,它的操作方法和操作界面 对于初学者来说难以掌握。 师:计算机除了 DOS 和 Windows 操作系统外还有那些操作系统呢? 最先是七十年代在 IBM 的大型机上 推出的操作系统,常见的操作系统 有: 1)曾经的霸主-dos 2)当前流行的操作系统 windows 3)价廉物美的小企鹅---Linux ②date:时间,, exit 退出等命令,抽问 回答,体会命令状 态。 ③再请问在目前使 用的操作系统下如 何查时间及日期 生答:查工作栏右 下角的图标。 ④请同学们按小组 讨论总结一下 DOS 和 Windows 两个操 作系统有什么不同 并填写 48 页的表格 (并请学生分组回 答讨论的结果) 。 3-5 分钟,体验多任 务,请任意打开你 的游戏或者画图软 件 , 再 按 一 次 ctrl+alt+delete 键, 被执行的程序可列 出,开机的被加载 的进程也可见。 9.2、windows 操作系统 9.2.1 windows 操 作系统的发 展

师:同学们都用过哪些操作系统 呢? 师:对,同学们说的都是现在最常 用的 Windows(台湾称 “视窗)操作系 统, 1985 年推出了第一代的 WINDOWS 系统 1.0 版 继而发展出许多后续版本。 安排上机五分钟,请各位同学阅读 教材 43-45 页内容,了解自 1985 年 以来的 Windows 版本的功能演变。 师:提问,还知道最近几年微软 ( Microsoft ) 推 出 的 新 的 操 作 系 统? 【解释版本的概念:版本号(version number)是版本的标识号。每一个操 作系统(或广义的讲,每一个软件)

生 : Windows98、Windows2000、Windows XP,

从 图示 能理 解即可, (如 果 学生 理解 能 力较 好, 生: 新版 windows7, 这 部分 可能 windows8.略 讲过 ,新 版 本可 以让 学 生上 网查 生:如果常使用的 询 ,可 以加 软件不能在新版的 深 后面 系统 操作系统下使用, 启 动 的 理 只 能 采 用 兼 容 模 解, 式。据情况确定安 装操作系统的版 本,保证软件正常, 稳定的运行。 都有一个版本号。版本号能使用户了解所使用的操作系统是否为最新 的版本以及它所提供的功能与设 施。 】 师:是否你有必要安装最新版的操 作系统 windows8? Windows XP 概述 采用了图形用户界面,把操作对象 以形象化的图标显示在屏幕上,通 过鼠标操作可以实现各种复杂的处 理任务。

(1)直观、高效的图形用户界面 Windows 的用户界面统

一、美观, 便于操作者学习和使用, Windows 所有的程序都拥有相同或相似的基 本外观,包括窗口、菜单、工具条 等,使用者掌握了其中一个就不难 学会其他软件的基本操作。 (2)多用户多任务的操作环境 多任务: 它可以同时运行多个程序, 每个程序都是以窗口的形式出现在 桌面上, 多用户:还可以在同一台计算机上 为每个用户保留独立空间,不同的 用户在登录时通过输入不同密码进 入到自己的设置环境中。 WINDOWS 系统的工作原理及安装

1)WinXP 的安装、启动和退出 装系统时已将 WinXP 系统存储在硬 盘中, 启动时从硬盘中调入 WinXP 的核心程序,并由 WinXP 控制整个系统 任何计算机程序只有调入内存后 才能被执行

2)启动和退出 安装 windowsxp 操作系统(需要五八分钟的操作时间) 桌面:启动时显示, 放有各种应用程序 和数据的图标,可 以重叠显示窗口 窗口:应用程序为 使用数据而在图形 用户界面中设置的 基本单元 图标:指代意义的 图形符号,快捷传 达信息、便于记忆的特性, 菜单:将系统可以 执行的命令以阶层 的方式显示出来的 一个界面老师在讲解中顺便 讲解 windows 操 作 系统的界面及简 单的 鼠标操作 1)窗口操 作: 2)图标操作 3)文件的操 作 9.2.2 Windows 操作系统的特 点 巩固、深化

传 xp 安装演示软 件,学生自行体验 安装过程

仿 真软件, 请注意屏幕的安装提示及说明 ,安装序列号及用户名可任意输入 ,在真实环境下

请输入正确的序列号, 尽量理解记住这些过程 拓展

1) 怎样给你所作用的用户加上密 码? 2) 是否电脑只能安装一个操作系 统 3) 手机使用什么操作系统? 4) 如果开机时不能进入 windows 程序界面,可能有什么原因?

启动百度寻找资 料。 通过我的电脑-管理 -本地用用户组 -Administrator- 设置 密码 生:可以安装多个 操作系统,但是要 安装不同的的磁盘 内。 生:安卓 Android, 苹果 iOS, Windows Phone 等 生:启动程序出错

拓 展内 容较 难 ,可 以思 考 ,不 用讲 得 太 难 太 深 ,但 应当 给 学生 一个 思 考 的 思 路 。学 生对 于 开机 加密 的 操作 很感 兴趣, 评价 总结反思

学生如果接收达不到效果,可以不补充,关于最新 windows 系统的发展 可以安排自行查询回答,同时学生在讨论中可以据情况加入后面的拓展 的思考问题。 在课件中对 windows 操作系统的图形化用户界面, 应当强调图形化作用, 及内部程序加载启动系统的作用。

推荐第7篇:Linux_操作系统基础操作教学

Linux操作系统基础教程

福州大学信息学院计算机系 刘延华

2003.2

目 录

前言.................................................................................................................................2 第一讲 Linux基础 ...........................................................................................................2 一.什么是Linux? ..................................................................................................2 二.安装Linux的好处? ..........................................................................................3 三.如何得到Linux? ...............................................................................................3 四.如何得到Linux的最新消息? ............................................................................3 五.Linux操作系统上有什么应用? ..........................................................................4 六.在那里可以找到讨论区? ...................................................................................5 七.安装过程............................................................................................................5 第二讲 Linux基础进阶 ....................................................................................................5 一.Linux的文件系统结构 ........................................................................................6 二.文件类型 ............................................................................................................7 三.Linux基本操作命令 ..............................................................................................8 四.基本的系统管理命令...........................................................................................14 五.关於 Proce 处理的指令....................................................................................16 六.关於字串处理的指令 .........................................................................................17 七.网路上查询状况的指令 .....................................................................................18 八.网路指令 ..........................................................................................................19 九.关於通讯用的指令 ............................................................................................21 十.编译器( Compiler ).............................................................................................22 十一.有关列印的指令 ............................................................................................23 第三讲 Linux下的网络服务,配置问题和常用工具 ........................................................24 一.Linux下的网络服务 .........................................................................................24 二.几种重要的配置文件...........................................................................................26 三.Linux下常用的工具软件 .....................................................................................28 尾语...............................................................................................................................31

前言

Linux是在1991年发展起来的与UNIX兼容的操作系统,可以免费使用,它的源代码可以自由传播且可任人修改、充实、发展,开发者的初衷是要共同创造一个完美、理想并可以免费使用的操作系统。

我们并不能使同学们通过这次系列讲座成为一个UNIX类操作系统的高手,这次系列讲座的目的就是在同学们中间普及Linux基础知识,为今后我们更加接近的了解Linux做一个好的开端。

第一讲 Linux基础

在这一讲中,我们主要是了解一下Linux的概况,以及对Linux有一个初步的感性认识。

一.什么是Linux?

Linux是一个以Intel系列CPU(CYRIX,AMD的CPU也可以)为硬件平台,完全免费的UNIX兼容系统,完全适用于个人的PC。它本身就是一个完整的32位的多用户多任务操作系统,因此不需要先安装DOS或其他的操作系统(MS Windows, OS2, MINIX..)就可以进行直接的安装。Linux的最早起源是在1991年10月5日由一位芬兰的大学生Linux Torvalds (Torvalds@kruuna.helsinki.fi)写了Linux核心程序的0.02版开始的,但其后的发展却几乎都是由互联网上的Linux社团(Linux Community)互通交流而完成的。Linux不属于任何一家公司或个人,任何人都可以免费取得甚至修改它的源代码(source code)。Linux上的大部分软件都是由GNU倡导发展起来的,所以软件通常都会在附着GNU Public License(GPL)的情况下被自由传播。GPL是一种可以使你免费获得自由软件的许可证,因此Linux使用者的使用活动基本不受限制(只要你不将它用于商业目的),而不必像使用微软产品是那样,http://shop59005306.taobao.com

需要为购满许可证付出高价还要受到系统安装数量的限制。我在讲义的最后面附有GPL的非官方中文译稿。目前Linux中国的发行版本(Linux Distribution)主要有Red Hat(红帽子), Slackware, Caldera, Debian, Red Flag(红旗), Blue Point(蓝点), Xteam Linux(冲浪), Happy Linux(幸福Linux), Xlinux等若干种,我推荐同学们使用的发行版本是Red Hat(事实标准)和Xlinux(安装最容易)。

二.安装Linux的好处?

Linux的核心具有Windows无法比拟的稳定性和高效率,在不使用X Windows的情况下,它占用系统资源较少,可以使一台Intel486摇身一变成为高效工作站。对于想要学习UNIX的用户来说,使他们熟悉UNIX操作环境,通往\"骨灰级\"高手境界的一大捷径。最重要的是,Linux上有公认的C语言世界最好的编译器gcc,如果你想得到一个效率更高的开发环境(并不一定是最友好的,但一定是最强大的),我建议你一定要好好的熟悉一下Linux。

三.如何得到Linux?

据我所知,大多数的Linux发行版本(Linux distribution)和核心(Kernel)都是可以从网上下载的,但是我不推荐易用这种方法得到Linux,因为仅仅核心就有几十个Mbit的数据量,而一个完整的发行版本大概都是1Gbit左右的数据量,你自己可以估计一下得用多少时间来下载它们?我建议你最好去软件商店买光盘来,因为Linux的产品光盘是非常便宜的,连带许可证GPL在内你大概支付50元人民币就可以,而具有同样功能的Windows NT 4.0你至少得付出17000元人民币(有一点需要声明:在你购买光盘时GPL许可证你是不会肉眼看到的)。直接到商店去买,可以省去你很多麻烦,因为从网上下载的Linux有很多它还是要求你有光盘刻录工具将安装文件刻到光盘上。

四.如何得到Linux的最新消息?

关于Linux的站点现在到处都是,我这里向大家推荐的是一个关于Linux核心最新消息的一个网站,你可以得到核心(Kernel)发展情况的最新信息。网址如下:http://www.daodoc.com/club/default.htm,它就是用http://shop59005306.taobao.com

25

Apache+PHP+MySQL这种组合建立起来的,有兴趣的朋友可以去看看。

二.几种重要的配置文件

Linux下面的配置文件非常的多,对于初学者来说,我们只需要知道最最常用的几个配置文件就可以了。由于片符合时间的原因,在这里我只介绍四个非常经典的配置文件(lilo.conf, pawd,inittab,fasttab),这四个文件中我重点介绍lilo.conf,其余三个文件会简单的在课堂上演示。至于Linux其它众多的配置文件必须各位同学自己下去查找相关资料自己学习了。

1.lilo.conf

这是Linuxloader(lilo)的配置文件。对于初学者来说,这个配置文件是非常重要的,因为它直接关系到你的系统是否能够正确的引导到Linux上来。我在这里主要将一下如何使用lilo实现多个在一台机器上安装多个操作系统。

一般来说,第一次安装Linux后,缺省引导的系统是Linux,但是对大多数Linux用户来说,他们使用windows的时间会多于Linux,所以我们最好能够将缺省引导的系统改为windows,这样的话,就省去了每次启动时敲一串字符的麻烦。要修改引导顺序,就要修改Linux系统中的一个配置文件,这个文件就是/etc/lilo.conf。我使用的是Xlinux OS 1.5,用vi打开这个文件后,会出现下面的文字: boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=100 linear

default=xlinux

image=/boot/vmlinuz-2.2.14-5.0

read-only

root=/dev/hda4 other=/dev/hda1

label=win

这就是刚刚安装完毕后的LILO配制文件.这个文件是按照由前到后顺序引用的,通过修改这个文件就可以改变lilo执行时的一些特性.首先我将这个文件中比较重要的几个地方给大家介绍一下:

首先请看第5行:timeout=100,这是一个设置在lilo引导缺省的系统之前等候用户输入系统别名的等候时间长度.它的时长好象不是按秒一级的数量级进行计算的,总之用户可以按http://shop59005306.taobao.com

26

照自己的实际需要设置相应的时长.我一般是设置成timeout=500.

然后我们看第7行:default=xlinux,这里是关键之一!这一行指明缺省引导的系统的别名是xlinux,要想改变系统的缺省引导顺序,这里是需要修改的,稍后就会说到是怎么修改的. 再看第8行到第11行,这四行指明了引导Linux系统的一些细节.image=/boot/vmlinuz-2.2.14-5.0指明了操作系统核心是放在哪里的,以便于引导程序装载操作系统核心;label=xlinux指明了引导这个操作系统时用的别名,这里是xlinux; root=/dev/hda4指明了引导程序需要到哪一个硬盘的第几个分区去寻找init过程,在这里是要到第一个硬盘的第四个分区中去将引导系统的控制权交给这个分区里的init过程.

最后我们看看文件中的最后两行.other=/dev/hda1说明除了linux操作系统以外,机器中还安装了别的操作系统(当然我知道这个另外的操作系统是我的win2000了),它位于第一块硬盘中的第一个分区,一般来说,这个路径是在安装的时候就设置好的,不需要我们手工修改,但是我认为知道这些信息还是很有必要的;label=win指明了这个系统引导时使用的别名为win.因为lilo是顺序引用的,所以如果我们想要让缺省引导的系统变成windows,就需要将这两行移动到image=.....那一行之前的位置,我建议的位置是放在image=...之前和default=.....之后.这是关键之二! 当你将前面的两个关键步骤完成之后,还需要将default=....那一行改成default=win,这是比较重要的一步,虽然即使你不改动这里,系统也可以按照你的想法去引导,但是我可不敢保证你这样做不会出一点问题.再说,如果你不改动这里那多别扭啊!

做到这里,我们对lilo.conf这个文件的改动就结束了,然后只要退出vi,然后键入 lilo -v -v -v这个命令来更新一下LILO,我们就大功告成了.当你reboot以后,就会发现在\"lilo:\"那里敲入回车键后,系统就会缺省的引导到windows系统去了.2.Pawd

这个配置文件是关于用户口令的。如果你是一名系统管理员,有可能会一次新增很多的用户,这时用adduser就相当麻烦了。一般有功力的管理员会直接去修改/etc/pawd文件。利用pawd文件,可以控制用户的口令状态及一些个人配置。

对于这个文件,普通单机用户使用的并不是很多,主要是多用户的管理员使用,对于它的一些基本配置方法,我会在课堂上为同学们演示,这里不再赘述。

3.Inittab和fasttab

这两个文件都是存放在/etc这个目录下面的,Inittab文件用来配置Linux初始化的一些动作,我们最常用的是设定Linux的启动方式。Fasttab文件用来设定一些在Linux启动时的动作,主要是文件系统或者是外设的挂接动作,如果你想让你的Linux一开始就能够使用光盘驱动器,就可以把mount指令加到这个文件中去。

因为这两个文件对我们初学者来说,可以利用的地方不是很多,所以我不用过多的文字来描述它们的功能,具体的操作我会在课堂上为同学们演示,这里不再赘述。

http://shop59005306.taobao.com

27

三.Linux下常用的工具软件

这里我会为大家介绍Linux世界里最常用的几种工具软件,包括:vi, tar, gzip, rpm。

1.文字编辑

vi是Linux(UNIX)世界最强大的文本编辑工具,我在第一讲中提到过它,现在我把它的一些基本使用方法介绍给大家。

Vi的三种状态

 Command mode : 控制萤幕游标之移动,字元或游标之删除,搬移复制某区段及进入 Insert mode 下,或者到 Last line mode 。

 Insert mode : 唯有在 Insert mode 下, 才可做文字资料输入,按Esc键可到

Command mode 。

 Last line mode : 将档案写入或离开编辑器,亦可设定编辑环境, 如寻找字串、列出行号..等。

vi 的基本操作

 进入 vi

1.在系统提示符号下输入 vi 及档案名称後即进入 vi 全萤幕编辑画面,且在

Command mode 下。

 切换至 Insert mode 编辑文件:

在 Command mode 下可按 \'i\' 或 \'a\' 或 \'o\' 三键进入 Insert mode。

 离开 vi 及存档:

在 Command mode 下可按 \':\' 键进入 Last line mode, :w filename (存入指定档案)

:wq (写入并离开 vi)

:q! (离开并放弃编辑的档案) Command mode 下功能键简介 1.进入 Insert mode

i : 插入, 从目前游标所在之处插入所输入之文字。

a : 增加, 目前游标所在之下一个字开始输入文字。

o : 从新的一行行首开始输入文字。

2.移动游标

h、j、k、l : 分别控制游标左、下、上、右移一格。

^b : 往後一页。

^f : 往前一页。

http://shop59005306.taobao.com

28

G : 移到档案最後。

0 : 移到档案开头。

3.删除

x : 删除一个字元。

#x : 例, 3x 表删除 3 个字元。

dd : 删除游标所在之行。

#dd : 例, 3dd 表删除自游标算起之 3 行。

4.更改

cw : 更改游标处之字到字尾 $ 处。 c#w : 例, c3w 表更改 3 个字。

5.取代

r : 取代游标处之字元。

R : 取代字元直到按 为止。 6.复制

yw : 拷贝游标处之字到字尾。

p : 复制(put)到所要之处。(指令 \'yw\' 与 \'p\' 必须搭配使用。) 7.跳至指定之行 ^g : 列出行号

#G : 例, 44G 表移动游标至第 44 行行首。

Last line mode 下指令简介

注意: 使用前请先按 键确定在 Command mode 下。按 \':\' 或 \'/\' 或 \'?\' 三键即可进入 Last line mode。

1.列出行号 :set nu (可用 :set all 列出所有的选择项。) 2.寻找字串 /word (由首至尾寻找) ?word (由尾至首寻找)

2.压缩工具

tar,gzip的使用方法

1) 压缩一组文件为tar.gz后缀。

# tar cvf backup.tar /etc #gzip -q backup.tar

# tar cvfz backup.tar.gz /etc 2) 释放一个后缀为tar.gz的文件。

#gunzip backup.tar.gz #tar xvf backup.tar

http://shop59005306.taobao.com

29

# tar xvfz backup.tar.gz

3) 用一个命令完成压缩

#tar cvf - /etc/ | gzip -qc >backup.tar.gz

4) 用一个命令完成释放

# gunzip -c backup.tar.gz | tar xvf –

5) 如何解开tar.Z的文件?

# tar xvfz backup.tar.Z 或

# uncompre backup.tar.Z #tar xvf backup.tar 6) 如何解开.tgz文件?

#gunzip backup.tgz

7) 如何压缩和解压缩.bz2的包?

#bzip2 /etc/smb.conf

这将压缩文件smb.conf成smb.conf.bz2 #bunzip2 /etc/smb.conf.bz2

这将在当前目录下还原smb.conf.bz2为smb.conf

注: .bz2压缩格式不是很常用,你可以man bzip2 3.安装工具

RPM是世界著名的Red Hat公司推出的一种软件包安装工具,全称为Redhat Package Manager。RPM的出现提供了一种全新的软件包安装方法,在方便性上甚至超过了微软的Windows。下面我就介绍一下RPM的基本使用方法。 1) 安装一个包

# rpm -ivh 2) 升级一个包

# rpm -Uvh 3) 移走一个包

# rpm -e

4) 安装参数

--force 即使覆盖属于其它包的文件也强迫安装

--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。 5) 查询一个包是否被安装

# rpm -q 6) 得到被安装的包的信息 # rpm -qi http://shop59005306.taobao.com

30

7) 列出该包中有哪些文件 # rpm -ql 8) 列出服务器上的一个文件属于哪一个RPM包 #rpm -qf 文件名称

9) 可综合好几个参数一起用

# rpm -qil 10) 列出所有被安装的rpm package # rpm -qa

尾语

到这里,我们这次Linux基础讲座的授课部分就基本结束了,祝愿大家能够开始对这个新兴的操作系统赋予足够的关注,并能够在Linux的世界里得到丰厚的收获。我们这个系列讲座也只能起到一个抛砖引玉的作用,希望大家能够在今后的学习中不断的充实自己的实力,早日成为\"骨灰级\"的Linux高手。

http://shop59005306.taobao.com

31

推荐第8篇:Linux_操作系统基础操作教学

新东方在线 [www.daodoc.com/club/default.htm,它就是用Apache+PHP+MySQL这种组合建立起来的,有兴趣的朋友可以去看看。

二.几种重要的配置文件

Linux下面的配置文件非常的多,对于初学者来说,我们只需要知道最最常用的几个配置文件就可以了。由于片符合时间的原因,在这里我只介绍四个非常经典的配置文件(lilo.conf, pawd,inittab,fasttab),这四个文件中我重点介绍lilo.conf,其余三个文件会简单的在课堂上演示。至于Linux其它众多的配置文件必须各位同学自己下去查找相关资料自己学习了。

1.lilo.conf

这是Linuxloader(lilo)的配置文件。对于初学者来说,这个配置文件是非常重要的,因为它直接关系到你的系统是否能够正确的引导到Linux上来。我在这里主要将一下如何使用lilo实现多个在一台机器上安装多个操作系统。

一般来说,第一次安装Linux后,缺省引导的系统是Linux,但是对大多数Linux用户来说,他们使用windows的时间会多于Linux,所以我们最好能够将缺省引导的系统改为windows,这样的话,就省去了每次启动时敲一串字符的麻烦。要修改引导顺序,就要修改Linux系统中的一个配置文件,这个文件就是/etc/lilo.conf。我使用的是Xlinux OS 1.5,用vi打开这个文件后,会出现下面的文字: boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=100 linear default=xlinux

image=/boot/vmlinuz-2.2.14-5.0

read-only

root=/dev/hda4 other=/dev/hda1

label=win

这就是刚刚安装完毕后的LILO配制文件.这个文件是按照由前到后顺序引用的,通过修改这个文件就可以改变lilo执行时的一些特性.首先我将这个文件中比较重要的几个地方给 26 新东方在线 [www.daodoc.com ] 2010考研英语网络课堂电子教材系列

写作

大家介绍一下:

首先请看第5行:timeout=100,这是一个设置在lilo引导缺省的系统之前等候用户输入系统别名的等候时间长度.它的时长好象不是按秒一级的数量级进行计算的,总之用户可以按照自己的实际需要设置相应的时长.我一般是设置成timeout=500.

然后我们看第7行:default=xlinux,这里是关键之一!这一行指明缺省引导的系统的别名是xlinux,要想改变系统的缺省引导顺序,这里是需要修改的,稍后就会说到是怎么修改的. 再看第8行到第11行,这四行指明了引导Linux系统的一些细节.image=/boot/vmlinuz-2.2.14-5.0指明了操作系统核心是放在哪里的,以便于引导程序装载操作系统核心;label=xlinux指明了引导这个操作系统时用的别名,这里是xlinux; root=/dev/hda4指明了引导程序需要到哪一个硬盘的第几个分区去寻找init过程,在这里是要到第一个硬盘的第四个分区中去将引导系统的控制权交给这个分区里的init过程.

最后我们看看文件中的最后两行.other=/dev/hda1说明除了linux操作系统以外,机器中还安装了别的操作系统(当然我知道这个另外的操作系统是我的win2000了),它位于第一块硬盘中的第一个分区,一般来说,这个路径是在安装的时候就设置好的,不需要我们手工修改,但是我认为知道这些信息还是很有必要的;label=win指明了这个系统引导时使用的别名为win.因为lilo是顺序引用的,所以如果我们想要让缺省引导的系统变成windows,就需要将这两行移动到image=.....那一行之前的位置,我建议的位置是放在image=...之前和default=.....之后.这是关键之二! 当你将前面的两个关键步骤完成之后,还需要将default=....那一行改成default=win,这是比较重要的一步,虽然即使你不改动这里,系统也可以按照你的想法去引导,但是我可不敢保证你这样做不会出一点问题.再说,如果你不改动这里那多别扭啊!

做到这里,我们对lilo.conf这个文件的改动就结束了,然后只要退出vi,然后键入 lilo -v -v -v这个命令来更新一下LILO,我们就大功告成了.当你reboot以后,就会发现在\"lilo:\"那里敲入回车键后,系统就会缺省的引导到windows系统去了.2.Pawd

这个配置文件是关于用户口令的。如果你是一名系统管理员,有可能会一次新增很多的用户,这时用adduser就相当麻烦了。一般有功力的管理员会直接去修改/etc/pawd文件。利用pawd文件,可以控制用户的口令状态及一些个人配置。

对于这个文件,普通单机用户使用的并不是很多,主要是多用户的管理员使用,对于它的一些基本配置方法,我会在课堂上为同学们演示,这里不再赘述。

3.Inittab和fasttab

这两个文件都是存放在/etc这个目录下面的,Inittab文件用来配置Linux初始化的一些动作,我们最常用的是设定Linux的启动方式。Fasttab文件用来设定一些在Linux启动时的动作,主要是文件系统或者是外设的挂接动作,如果你想让你的Linux一开始就能够使用光

27 新东方在线 [www.daodoc.com ] 2010考研英语网络课堂电子教材系列

写作

盘驱动器,就可以把mount指令加到这个文件中去。

因为这两个文件对我们初学者来说,可以利用的地方不是很多,所以我不用过多的文字来描述它们的功能,具体的操作我会在课堂上为同学们演示,这里不再赘述。

三.Linux下常用的工具软件

这里我会为大家介绍Linux世界里最常用的几种工具软件,包括:vi, tar, gzip, rpm。

1.文字编辑

vi是Linux(UNIX)世界最强大的文本编辑工具,我在第一讲中提到过它,现在我把它的一些基本使用方法介绍给大家。

Vi的三种状态

 Command mode : 控制萤幕游标之移动,字元或游标之删除,搬移复制某区段及进入 Insert mode 下,或者到 Last line mode 。

 Insert mode : 唯有在 Insert mode 下, 才可做文字资料输入,按Esc键可到

Command mode 。

 Last line mode : 将档案写入或离开编辑器,亦可设定编辑环境, 如寻找字串、列出行号..等。

vi 的基本操作

 进入 vi

1.在系统提示符号下输入 vi 及档案名称後即进入 vi 全萤幕编辑画面,且在

Command mode 下。

 切换至 Insert mode 编辑文件:

在 Command mode 下可按 \'i\' 或 \'a\' 或 \'o\' 三键进入 Insert mode。

 离开 vi 及存档:

在 Command mode 下可按 \':\' 键进入 Last line mode, :w filename (存入指定档案)

:wq (写入并离开 vi)

:q! (离开并放弃编辑的档案) Command mode 下功能键简介 1.进入 Insert mode

i : 插入, 从目前游标所在之处插入所输入之文字。

a : 增加, 目前游标所在之下一个字开始输入文字。

o : 从新的一行行首开始输入文字。

2.移动游标

28 新东方在线 [www.daodoc.com ] 2010考研英语网络课堂电子教材系列

写作

h、j、k、l : 分别控制游标左、下、上、右移一格。

^b : 往後一页。

^f : 往前一页。

G : 移到档案最後。

0 : 移到档案开头。

3.删除

x : 删除一个字元。

#x : 例, 3x 表删除 3 个字元。

dd : 删除游标所在之行。

#dd : 例, 3dd 表删除自游标算起之 3 行。

4.更改

cw : 更改游标处之字到字尾 $ 处。 c#w : 例, c3w 表更改 3 个字。

5.取代

r : 取代游标处之字元。

R : 取代字元直到按 为止。 6.复制

yw : 拷贝游标处之字到字尾。

p : 复制(put)到所要之处。(指令 \'yw\' 与 \'p\' 必须搭配使用。) 7.跳至指定之行 ^g : 列出行号

#G : 例, 44G 表移动游标至第 44 行行首。

Last line mode 下指令简介

注意: 使用前请先按 键确定在 Command mode 下。按 \':\' 或 \'/\' 或 \'?\' 三键即可进入 Last line mode。

1.列出行号 :set nu (可用 :set all 列出所有的选择项。) 2.寻找字串 /word (由首至尾寻找) ?word (由尾至首寻找)

2.压缩工具

tar,gzip的使用方法

1) 压缩一组文件为tar.gz后缀。

# tar cvf backup.tar /etc #gzip -q backup.tar

# tar cvfz backup.tar.gz /etc

29 新东方在线 [www.daodoc.com ] 2010考研英语网络课堂电子教材系列

写作

2) 释放一个后缀为tar.gz的文件。

#gunzip backup.tar.gz #tar xvf backup.tar

# tar xvfz backup.tar.gz

3) 用一个命令完成压缩

#tar cvf - /etc/ | gzip -qc >backup.tar.gz

4) 用一个命令完成释放

# gunzip -c backup.tar.gz | tar xvf –

5) 如何解开tar.Z的文件?

# tar xvfz backup.tar.Z

# uncompre backup.tar.Z #tar xvf backup.tar 6) 如何解开.tgz文件?

#gunzip backup.tgz

7) 如何压缩和解压缩.bz2的包?

#bzip2 /etc/smb.conf

这将压缩文件smb.conf成smb.conf.bz2 #bunzip2 /etc/smb.conf.bz2

这将在当前目录下还原smb.conf.bz2为smb.conf

注: .bz2压缩格式不是很常用,你可以man bzip2 3.安装工具

RPM是世界著名的Red Hat公司推出的一种软件包安装工具,全称为Redhat Package Manager。RPM的出现提供了一种全新的软件包安装方法,在方便性上甚至超过了微软的Windows。下面我就介绍一下RPM的基本使用方法。 1) 安装一个包

# rpm -ivh 2) 升级一个包

# rpm -Uvh 3) 移走一个包

# rpm -e

4) 安装参数

--force 即使覆盖属于其它包的文件也强迫安装

30 新东方在线 [www.daodoc.com ] 2010考研英语网络课堂电子教材系列

写作

--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。 5) 查询一个包是否被安装

# rpm -q 6) 得到被安装的包的信息 # rpm -qi 7) 列出该包中有哪些文件 # rpm -ql 8) 列出服务器上的一个文件属于哪一个RPM包 #rpm -qf 文件名称

9) 可综合好几个参数一起用

# rpm -qil 10) 列出所有被安装的rpm package # rpm -qa

尾语

到这里,我们这次Linux基础讲座的授课部分就基本结束了,祝愿大家能够开始对这个新兴的操作系统赋予足够的关注,并能够在Linux的世界里得到丰厚的收获。我们这个系列讲座也只能起到一个抛砖引玉的作用,希望大家能够在今后的学习中不断的充实自己的实力,早日成为\"骨灰级\"的Linux高手。

31

推荐第9篇:网络操作系统网G教学

网络操作系统网上教学活动文本

主持教师:大家好!答疑活动开始了! 问:工作组和组有什么区别? 主持教师:工作组是以共享资源为主要目的的一组计算机和用户。组,就是用户组,是指将具有相同性质的账号归类为一个用户组。 问:如何比较静态路由与动态路由? 主持教师:请参考书上73页。 问: 第三章简答题第2小题如何做? 主持教师:网上有这个题的答案。 问:举例说明信任关系不具备可传递性? 主持教师:信任关系不具有可传递性。例如一个网络中有A、B、C三个域,并在A域和B域之间建立了单向信任关系,又在B域和C域之间建立了单向信任关系。这样,B域中的用户可以访问A域中的资源,C域中的用户可以访问B域中的资源,但是C域中的用户不可以访问A域中的资源,因为A域和C域之间并没有建立单向信任关系。也就是说A域信任B域,B域信任C域,但不等于A域信任C域,信任关系不能传递。 问:为什么带区集比卷集或大的单个硬盘的访问速度快? 主持教师:参考:带区集由2-32个硬盘集成,数据以每次一个数据块的形式均匀而又有顺序地储存在集的所有硬盘中。带区集有时指的是磁盘分带。磁盘分带是这样一个过程:文件被写入或被分成带,每次一个数据块,先写入到一个磁盘,然后再写入下一个磁盘,再写入下一个磁盘,如此下去,直到该数据被均匀的分布在所有的磁盘。

带区集比卷集或大的单个硬盘的访问速度快,因为带区集在多个磁盘间存储一个文件,几乎可以同时从多个磁盘中读取该文件的各块,从而提高了性能。 问:网络操作有几种工作模式?这几种模式有什么区别? 主持教师:参考:主要有两种工作模式:文件服务器模式和Client/Server模式。

在文件服务器模式中,网络中至少需要一台计算机来提供共享的硬盘和控制一些资源的共享。这样的计算机就称为服务器,在这种模式下,数据的共享大多数是以文件形式通过对文件的加锁、解锁来实施控制的。对于来自用户计算机的有关文件的存取服务,都是有服务器来提供的。

Client/Server模式将处理功能分为两部分,一部分(前端)由Client处理,另一部分(后端)由Server处理。在这种分布式的环境下,任务由运行Client程序和Server程序的机器共同承担,这样做有利于全面发挥各自的计算能力,可以分别对Client端、Server端进行优化。

问:老师什么是NTFS? 主持教师:NTFS是NT File System的缩写,它是基于Windows NT内核的高级文件系统,它提供了一些在所有FAT版本中都没有的高级功能,比如EFS(加密文件系统)、文件(夹)压缩、磁盘配额和压缩等等,在性能、安全性和可靠性方面都有很大的提高。 主持教师:提供一套模拟试题供大家参考

一、填空题

1.网络软件是指: 网络协议软件、通信软件和( )。

2.网络操作系统为用户提供一个方便接口,网络用户通过( )请求网络服务。 3.为了有效地管理使用网络的用户,NT建立了一个安全的( )又称帐号和安全策略数据库。

4.域模式的特点有三个:( )、( )和用户的配置文件能跟随用户。

5.在安装Windows NT Server后,系统会自动创建两个全局帐号,一个是( ),另一个是Guest。

6.域模式中安装的Windows NT Server 的计算机有三类,分别为( )、备份域控制器和( )。

7.Microsoft 建议不要将权限赋予( ),而倾向于将权限赋予( )。 8.在多个域组成的网络中,各个域之间是以( )来建立沟通和管理的。

9.在工作组模式下,网络中的每台计算机都可以扮演( )或工作站的角色。每台计算机均可通过访问工作组中的其它计算机的( ),也可以提供资源给( )使用。 10.当A域信任B域的委托关系建立后,A域是( ),B域是( )。 11.Windows NT 可以支持的文件系统是( ),但也对( )文件系统兼容。

12.网络的域模式有( )、单主域模式、( )和完全委托域模式。由N个域组成的完全委托域,委托关系有N*(N-1)种。

13.FAT文件系统的目录结构,即目录项,包含的信息有( )、( )、属性等。 14.NTFS的每个卷由( )部分组成。分别是引导扇区、( )、系统文件区和( )。

一、填空题答案

1. 网络操作系统 2. 网络操作系统 3.目录数据库

4.帐号的集中管理、资源的集中管理 5.administrator 6.主域控制器、成员服务器 7.用户、组 8.委托

9.服务器、资源、其它计算机 10.委托域、受委托 11.NTFS、FAT 12.单域模式、多主域模式 13.名称、保存位置 14.

四、主文件表、文件区

二、单选题

1.一个域至少应包含下面的哪一项的内容( )。 A、一个BDC和一个PDC B、只需一个BDC C、一个PDC D、一个PDC和至少一个BDC 2.当安装Windows NT Server时, 会询问计算机的名称。请问下面哪个语句描述了计算机名称的作用( )。

A、计算机名称就是NetBIOS 名称,通过它可以在网上识别计算机。只要能通过路由器加以分离, 就允许两台计算机有相同的名字 B、计算机名称就是NetBIOS 名称,通过它可以在网上识别计算机。两台计算机绝不能有相同的名字

C、通过计算机名字可以识别连接到某一个域控制器上的计算机。计算机名称至少有两个字母组成,且名称中必须含有域名

D、计算机名称随情况而不同,并且在用户第一次登录时,必须输入计算机名称

3.一个用户对系统管理员说他忘记了他的登录密码,无法登录了。系统管理员有什么办法让他登录( )。

A、为他创建一个新的不带密码的用户帐号

B、修改这个用户的密码并对这个帐号的策略进行设置,使他的密码永不失效并且不能被修改

C、使用User Manager来修改他的密码,并对这个帐号的策略进行设置,使他在下次登录时必须修改密码。然后告诉这个用户新的密码,并告诉他下次登录时必须修改这个密码 D、告诉用户再试着用其它密码进行登录,希望他能突然回忆起原来的密码

4.有人不想让使用他的工作站的人访问他正在处理的一些文件。他应如何做才能达到目的( )。

A、将这些文件存储到公文包中,公文包具有安全性选项实现密码保护 B、用FAT格式化硬盘。FAT具有内置的对基于帐号的访问控制的支持 C、用NTFS格式化硬盘。NTFS具有内置的对基于帐号的访问控制的支持 D、将文件存储到桌面上,桌面具有安全性选项实现密码保护 5.Windows NT 4.0下,FAT支持的文件名最长可达( )。 A、125字符 B、8.3格式 C、255字符 D、取决于分区的大小

6.下面哪一种磁盘分区方案允许将从2到32个物理驱动器获得的相同大小的磁盘空间合并为一个逻辑驱动器( )。 A、带校验的带区集 B、卷集 C、NTFS卷 D、带区集

7.计算机之间可以通过以下哪种协议实现对等通信( )。 A、DHCP B、DNS C、WINS D、NETBIOS 8.UNIX系统中用户的有效用户组( )。 A、任意时刻可以有多个 B、运行时是不可变

C、被设置为用户在pawd文件中的gid项规定的用户组 D、以上这些说法都不对

9.UNIX 操作系统的帐号管理和权限分配主要是通过哪三个文件管理来实现( )。 A、/etc/pawd , /etc/profile 和 /etc/group B、/etc/group, /etc/profile 和/etc/shadow C、/etc/group, /etc/shadow 和/etc/pawd 10.不是NDS中的对象为( )。 A、根 B、容器 C、叶 D、枝

二、单选题答案 1. C 2. A 3. C 4. C 5. B 6. B 7. C 8. D 9. C 10.D

三、多选题

1.Windows NT系统中的NTDS包含了( )等系统的安全策略设置信息。 A、用户帐号 B、密码 C、访问权限 D、组帐号

2.在Windows NT Workstation 上要想将文件共享出去,你必须是下面哪些组的成员用户( )。

A、Administrators B、Power Users C、Users D、Server Users 3.为了使一台Windows NT Workstation 4.0 能够在一个使用路由器的广域网配置中进行通信,下面哪些网络属性需要进行手工配置( )。 A、IP地址 B、子网掩码 C、DHCP服务器地址 D、默认网关地址

4.下面哪些选项描述了NetBEUI协议的特点( )。 A、在小型局域网中具有较高的传输性能 B、内存额外开销较少 C、完全自调节 D、支持路由选择

5.下列说法正确的是( )。 A、网络中某台主机的IP地址是唯一的

B、网络中某台主机的IP地址每位不能全部为1,这个地址是TCP/IP的广播地址 C、网络中某台主机的IP地址每位不能全部为0,这个地址是TCP/IP的广播地址 D、C类网络默认的子网掩码为255.255.0.0

三、多选题答案

1. A、B、C、D 2. A、B 3. A、B、D 4. A、B、C 5. A、B 简答:

1.在Windows NT中,如何实现某个班级所有用户对某个文件夹的读写访问? 参考答案

(1)选择(或设置)一个主域服务器。

(2)在域上首先定义班级为一个组,而班级所有成员都归属这个组。 (3)对文件夹进行共享设置,并添加班级组,其权限为安全控制。 (4)设置文件夹的安全性,添加班级组,其访问权限为选择性访问中的读写。 2.网络操作系统的主要功能有哪些? 参考答案

(1)处理机功能 (2)存储管理 (3)设备管理 (4)文件管理 (5) 作业管理 (6)网络管理 3.Windows NT有哪些特点? 参考答案

(1)支持对等式和客户机-服务器网络。 (2)增加网络的软件和硬件变得十分简便。 (3)与现有网络较强的交互操作能力。 (4)支持分布式应用程序。

4.什么叫主域控制器?什么叫备份域控制器? 参考答案

在域中维护目录数据库的服务器为PDC。PDC主要用于创建域用户、维护域的安全策略,并用于验证用户登录。在域中其它存有目录数据库的服务器为BDC。BDC持有目录数据库的拷贝,且内容会定期根据PDC的变化而更新。

5.Windows NT工作站的进程试图打开远程计算机上的文件,简述其步骤。 参考答案

进程调用I/O管理程序,申请打开某个文件;

I/O管理程序识别出请求的文件是在远程计算机上,就把它传送给转发程序;

转发程序把此请求传送给下一级的网络驱动程序,由它们将其传输到远程计算机上去处理。 主持教师:答疑活动结束!

推荐第10篇:操作系统教学网站功能需求

错误!未找到引用源。功能需求分析:以下四大模块,务必仔细看清楚

教学管理模块

超级用户管理:超级用户是网站的主要的负责人,可添加删除学期,以及课程。此用户可以管理教师和学生用户的信息,可以把教师和学生用户从网站中删除。

学生用户管理:学生按班级学号注册,成为网站用户,自己填写班级学号,向自己的老师发出请求,老师同意后按班级划分到该班级老师下,就可以登录网站,浏览该班级老师所教课程以及网站上的一些公共信息,在线进行学习,下载学习资料,做题,和自己的老师一对一的交流,学生也可以向老师反馈信息等操作。

教师管理:可删除学生,学生必须有班级学号,所在院系,以及学期,学生所学课程,可以管理和学生的交流信息,学生公告。教学资源包括该老师的对自己的课程管理和教学资源管理,课程管理包括教学文件,教学大纲,授课计划,实验计划。老师可以上传或录入以上内容,学生可下载。教学资源包括老师的教学ppt和实验安排(老师可随时对实验时间更改)上传或录入实验指导书,章节重点,实验要求,发布课程章节作业(老师可从题库中抽取)等,学生可下载。

教学交流模块

教学交流:这一模块主要实现教师可以发公告,学生可以和老师进行一对一的交流,学生可以在论坛上向老师反馈信息。

公共资源管理:这模块中,老师和学生都可以上传一些自己收集的学习资料,像PPT、FLASH、考题、软件等,和同学、老师分享。

数据库设计:在开发《操作系统》教学网站之前,分析了教学网站的数据量,本教学网站主要会涉及到这些表,分别是:超级用户表、普通用户表、教师表、课程信息表、课程章节表、留言表、公共资源表、教学文件表、教学安排表、题库表、作业表、实验表等。为了提高系统的安全性,在登录系统过程时设置了三种不同的角色,不同的角色操作网站时,对数据库的更新也就不同。同时在设计数据库时,要充分考虑数据库的完整性、一致性。

试题库生成模块:试题库生成模块在整个系统中占有非常重要的地位,教师登录到此模块后系统会根据登录的账号对数据库进行索引,查找出该名教师的姓名和负责的课程,即可在后台对该课程的试题进行查看、添加、修改和删除,添加试题时要由试题的选项、类型、题型、答案、所属课程和章节、并按关键字查询刚添加的试题是不是与试题库的题重复。并且查看该教师所带的学生的该科目的考试成绩。

组卷测试模块:实现了如何从数据库中将题抽取出来,抽题的时候也遵循了一定的规则。也就是说,当考生选择了考试科目后,系统就开始从数据库中抽题,而老师先要将这张试卷的规则定下来,即根据这门课每章节的难易程度和所占的百分比来随机的抽取试题从而组成一张试卷。该试卷可以word形式保存并下载。

第11篇:09级试点本科《操作系统》教学工作总结(付宁)

09级试点本科《操作系统》教学工作总结

计算机工程系:付 宁

第二轮试点本科教学和考试工作已经结束,下面就针对《操作系统》这门课的教学工作做一下汇报:

一、《操作系统》这门课作为我系专升本必考课,我已经连续讲授了三个学期,对这门课可以说已经非常熟悉了,知识点的把握,出题的思路都比较了解。拿到辅导教材和大纲以后,做了仔细研究,发现比专升本的辅导范围要窄,出题难度要低,但同时面临本系新生和外系新生,压力也是非常大的,就仔细摸索把枯燥复杂问题讲简单明白的办法,好在平时的积累,大量的生活案例都应用到了授课当中,起到了非常好的效果,主要作用就是让学生把知识点听进去,消化掉。

二、对今年考试题目的总结。考试题目基本没有超出复习指导的范围,可以确定跟去年去山大参加研讨会得到的信息基本吻合,辅导的内容切合考试大纲的要求,有针对性的做复习,基本命中全部大题。

三、全身心投入到教学中去。授课过程说三点:

1、以课本为中心。这次的授课没有用ppt,全部用板书讲解,而且紧扣课本,让学生先认真阅读课本,再在黑板上做深入讲解,然后做题巩固,最后再回顾课本。全部课程讲完以后,在复习的时候仍然是先阅读课本,这样总体来说就是学生已经精读了三遍教材,已经对这门学科的知识有了很好的结构上的认识,而且紧扣教学大

纲,知道哪些是重点掌握的,哪些是一般了解的。

2、大量的随堂练习。由于计算型题目比较多,讲完一个题目以后,至少两名同学上黑板做题,期间巡视在下边做题的,每一个人都不放弃,有不会的当堂消化,立刻讲解,已经会的,做到举一反三,完全按照应试教育的思路走的。此举确保了绝大部分同学在计算题上基本不会丢分,更加增强学生通过考试的自信心。

3、作业和测验。每个学生都有笔记本,作业本,还有最后的两套模拟测试题。笔记本除了随堂笔记以外,另一个用处就是分类整理。因为考试题型已经都清楚了,我们做了针对性的整理,分四类:填空题,选择题,简答题,计算题。整理不要求题目多,只要求题目类型全,每个类型题目两个题,并不要求多做,但要确保理解。作业题,每章一次,共六次,每一次作业又是对本章内容的一个全面复习。模拟测试题,是临考前让学生做的,起到实战演练作用,现在分析看来,题目略难了,用的是全国自考的题目,比最后试点本科的考试题目要难一些,因此学生拿到试题的时候也更加有信心了。

四、责任心。作为我院一名年轻教师,深知试点本科如果一炮打响,对我院教学品牌的创立,招生工作的开展,都是有着非常巨大的推动作用的,因此暗下决心一定要倾尽我所能,保证最大的通过率。

最后说几点自己的体会:

1、周末上课,学生积极性不高,或多或少影响听课效果。

2、不要盲目扩充,紧扣课本,把课本

牢牢掌握,例子也以课本为主,稍加变通。要对考试大纲了然于胸,授课紧紧围绕大纲要求。

3、要充分自信,同时要争取学生的信任,只要跟着老师走就一定能通过。

4、超强的责任心,立足学院和我系的长远发展,全身心投入。

第12篇:操作系统复习提纲

3.什么是操作系统?操作系统在计算机中的主要作用是什么?

操作系统:管理系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户方便有效地使用计算机提供良好运行环境的一种系统软件。 a>服务用户观点——操作系统作为用户接口和公共服务程序 b>进程交互观点——操作系统作为进程执行的控制者和协调者 c>系统实现观点——操作系统作为扩展机和虚拟机 d>资源管理观点——操作系统作为资源的管理者和控制者 10.试述系统调用与函数(过程)调用之间的主要区别。

a>调用形式和实现方式不同。函数调用所转向的地址是固定不变的,但系统调用中不包括内核服务例程入口地址,仅提供功能号,按功能号调用;函数调用是在用户态执行,只能访问用户栈;系统调用要通过陷阱设置,从用户态转换到内核态,服务例程在内核态执行并访问核心栈。

b>被调用代码的位置不同。函数调用是静态调用,调用程序和被调用代码处于同一程序内,经链接后可作为目标代码的一部分,这是用户级程序当函数升级或者修改时,必须重新编译和链接;系统调用是动态调用,系统调用的服务例程位于操作系统中,这是系统级程序,这样当系统调用的服务例程升级或修改时与调用程序无关,而且调用程序的长度大为缩减,能减少其所占用的内存空间。

c>提供方式不同。函数调用通常有编程需要提供,不同语言所提供的函数功能、类型和数量可以不同;系统调用由操作系统提供,一旦操作系统设计好,系统调用的功能、类型和数量便固定不变。 15.什么是多道程序设计?多道程序设计技术有什么特点?

多道程序设计是指允许多个作业(程序)同时进入计算机系统的内存并启动交替计算的方法。 特点:多道性、宏观并行、微观串行。

19.在分时系统中,什么是响应时间?它与哪些因素有关?

响应时间:从交互式进程提交一个请求(命令)直到获得响应之间的时间间隔。

影响因素:cpu的处理速度、联机终端的数目、所用时间片的长短、系统调度开销和对换信息量的多少等。 23.操作系统具有哪些基本功能?请简单叙述之。

a>处理器管理。处理器是计算机系统中最为稀有和宝贵的资源,应该最大限度地提高其利用率。常常采用多道程序设计技术组织多个作业同时执行,解决处理器调度、分配和回收问题。

b>存储管理。存储管理的主要任务是管理内存资源,为多道程序设计提供有力支持,提高存储空间利用率,具体来说有内存分配和回收、地址转换与存储保护、内存共享与存储扩充等。

c>设备管理。设备管理的主要任务是管理各种外部设备,完成用户提出的I/O请求;加快数据传输速度,发挥设备的并行性,提高设备的利用率;提供设备驱动程序和中断处理程序,为用户隐蔽硬件操作细节,提供简单的设备使用方法。

d>文件管理。主要任务是对用户和系统文件进行有效管理,实现按名存取;实现文件共享、保护和保密;保证文件的安全性;向用户提供一整套能够方便地使用文件的操作和命令。 e>联网和通信管理。1网络资源管理;2数据通信管理;3应用服务;4网络管理 27.什么是操作系统内核?

内核是一组程序模块,作为可信软件来提供支持进程并发的基本功能和基本操作,通常驻留在内核空间,运行于内核态,具有直接访问硬件设备和所有内存空间的权限,是仅有的能够执行特权指令的程序。 35.简述操作系统资源管理的主要技术:资源复用、资源虚拟和资源抽象。

资源复用:系统中相应地有多个进程竞争使用物理资源,由于计算机系统的物理资源是宝贵和稀有的,操作系统让众多进程共享物理资源,这种共享称为资源复用。

资源虚拟:虚拟的本质是对资源进行转换、模拟和整合,把一个物理资源转变成多个逻辑上的对应物,也可以把多个物理资源变成单个逻辑上的对应物。即创建无须共享的多个独占资源的假象,或创建易用且多个实际物理资源数量的虚拟资源假象,以达到多用户共享一套计算机物理资源的目的。 第二章

9.什么是系统调用?试述API、库函数及系统调用间的关系。

系统调用是一种中介角色把用户和硬件隔离开来,应用程序只有通过系统调用才能请求系统服务并使用系统资源。

POSIX标准规定了符合此标准的操作系统必须提供API,但并未规定接口的实现是采用系统调用、库函数还是其他形式。系统调用只是一种API。

调用fprintf()→C函数库中的fprintf()封装函数→系统调用处理程序→sys_write()内核函数。 18.什么是进程?计算机操作系统为什么要引入进程?

进程:可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统作为资源分配和保护的基本单位。

目的:

a>刻画程序的并发性。进程是并发程序设计的一种有力工具,操作系统中引入进程概念能较好地刻画系统内部程序的并发执行,从而提高资源利用率。 b>解决资源的共享性。

20.进程最基本的状态有哪些?哪些事件可能引起不同状态间的转换? 运行态:进程占有处理器正在运行的状态。

就绪态:进程具备运行条件,等待系统分配处理器以便运行的状态。

等待态:又称阻塞态或睡眠态,指进程不具备运行条件,正在等待某个事件完成的状态。 26.何谓进程控制快(PCB)?它包含哪些基本信息?

每个进程有切仅有一个进程控制块,或称进程描述符,它是进程存在的唯一标识,是操作系统用来记录和刻画进程状态及环境信息的数据结构,是进程动态特征的集合,也是操作系统掌握进程的唯一资料结构和所处的状态的主要依据。

a>标识信息。标识信息用于唯一地标识一个进程,分为用户使用的外部标识符和系统使用的内部标识符。 b>现场信息。现场信息用于保留进程在运行时存放在处理器现场中的各种信息。 c>控制信息。控制信息用于管理和进程调度。

48.处理器调度分为哪几种类型?简述各类调度任务的主要任务。

高级调度:又称作业调度、长度调度,在多道批处理操作系统中,从输入系统的一批作业按照预定的调度策略挑选若干作业进去内存,为其分配所需资源并创建对应作业的用户进程后,便完成启动阶段的高级调度任务,已经为进程做好运行前的准备工作,等待进程被调度运行,在作业完成后还要做结束阶段的善后工作。

中级调度:又称平衡调度、中度调度,根据内存资源情况决定没错中所能容纳的进程数目,并完成外存和内存中的进程对换工作。

低级调度:又称进程调度或线程调度、短程调度,根据某种原则决定就绪队列中的哪个进程/线程获得处理器,并将处理器让出给它使用。 第三章

9.什么是临界区和临界资源?临界区管理的基本原则是什么? 并发进程中与共享变量有关的程序段称为临界区。共享变量所代表的资源称为临界资源,即一次仅能供一个进程使用的资源。

原则一:一次至多只有一个进程进入临界区内执行。

原则二:如果已有进程在临界区中,试图进入此临界区的其他进程应等待。

原则三:进入临界区内的进程应在有限的时间内退出,以便让等待队列中的一个进程进入。 13.什么是信号量?如何对其进行分类?

在操作系统中用信号量表示物理资源的实体,它是一个与队列有关的整型变量。 具体实现时,信号量是一种产量类型,用一个记录型数据结构表示,有两个分量,一个是信号量的值,另一个是信号量队列指针。

信号量按其用途可分为两种:a>公用信号量,联系一组并发进程均可在此信号量上执行pv操作,初值置为一,用于实现进程互斥;b>私有信号量,联系一组并发进程,仅允许此信号量所拥有的进程执行P操作,而其相关进程可在其上施行V操作,初值往往为0或正整数,多用于并发进程同步。

信号量按其取值可分为两种:a>二值信号量,仅允许取值为0或1,主要作用用于解决进程互斥问题;b>一般信号量,又称计数信号量,允许取大于1的整型值,主要用于解决进程同步问题。 15.何谓管程?它有哪些属性?

管程是由局部于自己的若干公共变量及其申明和所有访问这些公共变量的过程所组成的软件模块,它是一种互斥机制,进程可互斥的调用管程中的过程。

a>共享性。管程中的移出过程可被所有要调用管程的过程的进程所共享。

b>安全性。管程的局部变量只能由此管程的过程访问,不允许进程或其他管程来直接访问,一个管程的过程也不应访问任何非局部于它的变量。

c>互斥性。在任一时刻,共享资源的进程可以访问管程中的管理此资源的过程,但最多只有一个调用者能够正真地进入管程,其他调用者必须等待直至管程可用。 20.什么是管道?如何通过管道机制实现进程间的通信?

管道:是连接读写进程的一个特殊文件,允许按照FIFO方式传送数据,也能是使进程同步执行。

写进程在管道的尾端写入数据,读进程在管道的首端读出数据。数据读出后将从管道中移走,其他进程都不能再读到这些数据。进程试图读管道时,再有数据写入管道前,进程将一直阻塞。同样,管道已经满时,进程再试图写入管道,在其他进程从管道中移走数据之前,写进程将一直阻塞。 25.试述产生死锁的必要条件。

1>互斥条件:临界资源是独占资源,进程应互斥且排他地使用这些资源。 2>占有和等待条件:进程在请求资源得不到满足而等待时,不释放已占有资源。

3>不剥夺条件:又称不可抢占,已获资源只能由进程自愿释放,不允许被其他进程剥夺。

4>循环等待条件:又称环路条件,存在循环等待链,其中每个进程都在等待链中等待下一进程所持有的资源,造成这组进程处于永远等待状态。 27.何谓银行家算法?试述其基本思想。

系统中的所有进程放入进程集合,在安全状态下系统收到进程的资源请求后,先把资源试探性的分给它;然后系统将剩下的可用资源和进程集合中其他进程还需要的资源数作比较,找出剩余资源能满足最大需求量的进程,从而保证进程运行完毕并归还全部资源;这时把这个进程从进程集合中删除,归还其所占有的所有资源,系统的剩余资源则越多;反复执行上述步骤,最后检查进程集合,若为空则表明本次申请可行,系统处于安全状态,可以真正实施本次分配,否则只要等待集合非空,系统便处于不安全状态,本次资源分配不实施,让申请资源的进程等待。 第四章

1.试述存储管理的基本功能。

ⅰ存储分配ⅱ地址映射ⅲ存储保护ⅳ存储共享 ⅴ存储扩充 4.何谓地址转换(重定位)?哪些方法可以实现地址转换。

可执行的程序逻辑地址转换(绑定)为物理地址的过程称为地址转换。 实现方法:静态地址重定位,动态地州重定位。

5.分区存储管理中采用那些分配策略?比较其优、缺点。 固定分区:

优点:固定分区能解决单道程序运行在并发环境下不能与cpu速度匹配的问题,同时也解决了单道程序运行是内存空间利用低的问题。

缺点:ⅰ.由于预先已经规定分区大小,是的大作业无法装入,用户不能采用覆盖能技术加以补救,这样不但加重用户负担,而且极其不方便;ⅱ.内存空间利用率不高,作业很少会恰好填满分区;ⅲ.如果一个作业要求在运行过程中动态扩充存储空间,采用固定分区是相当困难的;ⅳ.分区数目是在系统初启是确定的这就会限制多道运行程序的道数,特别不适应分时系统交互型用户及内存需求变化很大的情况。 可变分区:

优点:ⅰ.能克服固定分区内存资源的浪费问题;ⅱ.有利于多道程序设计;ⅲ.实现了多个程序作业对内存的共享。

缺点:ⅰ.回收算法复杂;ⅱ.它的各种分配算法有一定缺陷,难以避免内存碎片的产生;ⅲ.采用动态地址重定位需要硬件寄存器的支持。

9.什么是虚拟存储器?列举采用虚拟存储技术的必要性和可能性。

虚拟存储技术:在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能存逻辑上为用户提供一个比物理内存容量大得多的、可寻址的“内存储器”。

必要性:可用较小的内存空间执行较大的程序,能容纳更多的并发执行程序。 可能性:基于程序的局部性原理。 11.试述请求分段虚存管理的实现原理。 请求分段虚存管理是将进程信息副本存放在外存中,当它被调度投入运行时,程序和数据没有全部装入内存,仅装入当前使用段,进程执行过程中访问到不在内存的段时候,再有系统自动调入。 18.试述实现虚拟存储器的基本原理。 作业运行之前仅将当前要运行的那部分页面和段先装入内存便可开始运行,在程序的运行中,发现所要访问的段不在内存中时,再有操作系统将其调入内存,程序便可继续执行下去。 第五章

1.试述设备管理的基本功能。

设备中断处理、缓冲区处理、设备分配和去配、设备驱动调度、实现虚拟设备。 2.试述各种I/O控制方式及其主要优、缺点。

轮询方式:又称程序直接控制方式,使用查询指令测试设备控制器的忙闲状态位,确定内存和设备是否能交换数据。

优点:原理简单,成本低廉。

缺点:a>.一旦cup启动了I/O设备,便不断的查询I/O设备的准备情况,终止了原程序的执行;b>.cpu在反复查询过程中,浪费了宝贵的cpu时间,c>.I/O设备准备就绪后,cpu参与数据的传输工作,此时cpu也不能执行原程序。总之,轮询方式的主要缺点是运行效率不足。

中断控制方式:cpu启动I/O设备后不必查询I/O设备是否准备就绪,而是继续执行现行程序,对设备是否准备就绪不加过问。

优点:不必忙于查询I/O准备情况,cup和I/O设备可实现部分并行,大大提升了cup的利用率。 缺点:输入输出操作直接由中央处理器控制,每传送一个字符或一个字,都要发生一次中断,仍耗费大量中央处理器时间。

DMA方式:内存和设备之间有一条数据通路成块的传说数据,在主机和I/O设备之间成块的传送数据过程中,无需CPU干预,实际操作有DMA直接执行完成。 优点:实现线路简单,价格低廉。

缺点:增加主存地址寄存器,数据移位寄存器等硬件,不仅有中断结构,还增加了DMA传输控制结构,增加了成本,但功能较差,不能满足复杂的I/O操作要求。

通道方式:又称I/O处理器,能完成内存和设备之间的信息传送,与CPU并行的执行操作。

优点:a>.自成独立体系,大大减少了外围设备和中央处理器的逻辑关系,把中央处理器从琐碎的输入输出操作中解放出来;b>.外围和中央处理器能实现并行操作;c>.通道和通道之间能实现并行操作;d>.各通道上的外围设备也能实现并行操作。

缺点:a>.具有通道装置的计算机的主机、通道、控制器和设备之间用四级连接,实施三级控制;b>.价格较高,一般在大型机中使用。 4.大型机常常采用通道实现信息传输,试问为什么是通道?为什么引入通道? 通道又称I/O处理器,能完成内存和设备之间的信息传送,与CPU并行的执行操作。采用通道技术主要解决I/O操作的独立性和硬件部分的并行性,由通道来管理和控制I/O操作,大大减少了设备和中央处理器的逻辑关系,把中央处理器从琐碎的输入输出操作中解放出来,实现设备和中央处理器能实现并行操作,通道之间实现并行操作,设备之间并行操作,达到提高整个系统效率的目的。 12.为什么要引入缓冲技术?其基本思想是什么?

①为了解决cpu与设备之间速度不匹配的矛盾;②协调逻辑记录大小与物理记录大小不一致的问题;③提高cpu和设备的并行性;④减少I/O操作对cpu的中断次数,放宽对cpu中断响应时间的要求。 基本思想:当进程执行写操作输出数据时,先向系统申请一个输出缓冲区,然后将输入送入缓冲区,若是顺序写请求,则不断的将数据填入缓冲区,直至装满为止,此后进程可以继续计算,同时系统将缓冲区的内容写到设备上;当进程执行读操作输入数据时,先向系统申请一个输入缓冲区,系统将设备上的一条物理记录读至缓冲区,根据要求把当前所需要的逻辑记录从缓冲区中选出并传送给进程。 21.什么事虚拟设备?实现虚拟设备的主要条件是什么?

虚拟技术是为了提高独立设备的利用率,采用spooling技术科共享设备模拟独占设备。是独立设备依赖的关键技术是spooling技术。

实现相应功能的守护进程(线程)都在用户空间上运行,但所完成的是操作系统任务,即把本该有内成为共享设备。

26.Spooling是如何把独立型设备改造成共享型设备的? 核实现的功能外移。

28.为什么要引入设备独立性?如何实现设备独立性?

应用程序与具体的物理设备无关,系统要增减或变更设备时对源程序不必加如何修改,易于应对I/O用户通常不指定物理设备,而是指定逻辑设备,是的用户作业和物理设备分离开来,在通过其他途径设备故障,增加设备分配的灵活性,能更有效的理由设备资源,实现多道程序设计。 建立逻辑设备和物理设备的映射。

30.目前常用的磁盘驱动调度算法有哪几种?分别适用于何种数据应用场合? 先来先服务、最短查找时间优先算法、扫描算法、分步扫描算法、电梯调度算法、循环扫描算法。 第六章

1.试述下列术语的的定义并说明它们之间的关系:卷、块、记录、文件。 卷:硬盘上的存储区域。一个硬盘包括好多卷,一卷也可以跨越许多磁盘。 块:存储介质上连续信息所组成的一个区域。

记录:是一组相关数据的集合,用于描述一个对象在某方面的属性。

文件:是由信息按一定结构组成,可持久性保存的抽象机制,由于它必定存储在某中存储设备上,故也可以认为文件是设备的一种抽象。

4.什么是文件的逻辑结构?它有哪几种组织方式? 从用户的观点出发,研究用户概念中抽象的信息组织方式,这是用户所能观察到的、可加以处理的数据集合。由于数据可独立于物理环境构造,故称为逻辑结构,相关数据的集合构成逻辑文件。 组织方式:流式文件、记录文件。

5.什么是文件的物理结构?它有哪几种组织方式? 文件的物理结构和组织是指逻辑文件在物理存储空间中的存放方法和组织关系。 组织方式:组织文件、连接文件、直接文件、索引文件

9.文件系统所提供的主要文件操作有哪些?试述各自的主要功能。

创建文件:当文件尚未存在时,需要对其创建,或者文件原来已经存在,有时需要重新创建。 删除文件:把指定文件从其所在目录文件中删除。

打开文件:指系统将指明文件的属性从外存拷贝到内存打开文件表的一个目录表中,并将该表的编号返回给用户。

关闭文件:文件使用完毕,执行关闭系统调用切断应用进程与文件之间的联系。 读文件:把文件的内容读入用户数据区中。 写文件:把数据用户区中的信息写入文件中。 15.什么事设备文件?如何实现设备文件?

设备文件:为设备起的一个名字,可以像使用文件一样方便的管理设备。

实现:设备文件依赖于inode实现,文件目录并不能区分文件名是代表一个磁盘文件还是设备文件,但inode的内容是不同的,磁盘文件的inode包含指向数据的指针,而设备文件的inode则包含指向内核设备驱动程序的指针,用来控制设备的I/O操作。 16.什么事文件的共享? 文件的共享是指不同进程使用同一个文件,文件共享不仅为不同进程完成共同任务所必需,而且还节省大量的外存空间,减少因文件复制而增加的I/O操作次数。

第13篇:操作系统心得体会

转眼间,学习了一个学期的计算机操作系统课程即将结束。在这个学期中,通过老师的悉心教导,让我深切地体会到了计算机操作系统的一些原理和具体操作过程。在学习操作系统之前,我只是很肤浅地认为操作系统只是单纯地讲一些关于计算机方面的操作应用,并不了解其中的具体操作过程和实用性。通过这一学期的学习,我才知道操作系统(Operating System,简称OS)是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。

经过一个学期的学习,我也知道了计算机操作系统是铺设在计算机硬件上的多层系统软件,不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它实现了对计算机硬件操作的多层次的抽象。操作系统的一些原理在生活中也有所应用,以下是我通过这一学期的学习,把操作系统的一些原理联系生活所得的心得体会:

操作系统是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。计算机操作系统是铺设在计算机硬件上的多层系统软件,不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它实现了对计算机硬件操作的抽象。操作系统的一些原理在生活中的应用主要有以下几个,结合生活中的例子,可以化抽象为具体,我们会更加清楚地了解到其原理与操作过程:

1.生产—消费者问题

在实际的操作系统操作过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。

单单抽象出生产者和消费者,还够不上是生产者—消费者问题。该问题还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。生产者把数据放入缓冲区,而消费者从缓冲区取出数据。

为了理解这一问题,我们举一个寄信的例子。假设你要寄一封平信,大致过程如下:

1、你把信写好——相当于生产者制造数据

2、你把信放入邮筒——相当于生产者把数据放入缓冲区

3、邮递员把信从邮筒取出——相当于消费者把数据取出缓冲区

4、邮递员把信拿去邮局做相应的处理——相当于消费者处理数据

2、银行家算法——避免死锁 死锁的产生是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。我觉得操作系统所讲的死锁就好像两个人竟过独木桥,两辆车竟过单行桥等阻塞现象,原因是共享资源,即道路。

为提高系统资源的利用率,避免死锁并不严格限制死锁必要条件的存在,而是在资源的动态分配过程中,使用某种方法去防止系统进入不安全状态,从而避免死锁的最终出现。然而,最有代表性的避免死锁的算法,是Dijkstra的银行家算法。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。银行家算法的基本思想是分配资源之前,判断系统是否是安全的;若是安全的,才分配。

我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的安全,银行家规定:

(1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;

(2)顾客可以分期贷款,但贷款的总数不能超过最大需求量;

(3)当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;

(4)当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金。

另外,我们也可以把操作系统看作是建造房子,操作系统的资源看作是造房子的起吊机台数,进程向操作系统请求分配资源相当于建造房子时申请的起吊机台数。为保证工程的顺利进行,其操作过程如下:

当一栋房子对起吊机的最大需求量不超过建造房子现有的起吊机时可接纳该房子的建造;

所要建造的房子可以分开几次申请起吊机,但申请的起吊机的总数不能超过最大需求量;

当现有的起吊机台数不能满足某栋房子尚需的起吊机时,对该栋房子所需的起吊机数可推迟给予,但总能是房子在有限的时间里得到贷款; 当建造的房子得到所需的全部起吊机后,一定能在有限的时间里归还所有的起吊机数。

3.进程同步问题

一个进程到达了确定的点后,除非另一些进程已经完成了某些操作,否则不得不停下来等待另一进程为它提供的消息,早未获得消息前,该进程处于等待状态,获得消息后被唤醒处于就绪状态,这就是进程同步。我们在生活中也可以找到相应的例子:

例如汽车司机和售票员,汽车司机负责开车、进站、开车门、关车门与进站;

售票员负责售票、进出站后观察车门,给司机发开关门信息;正常状态下,各自活动,司机开车,售票员售票;在进出站时双方要进行进程同步。

为了理解这一问题,我们举一个寄信的例子。假设你要寄一封平信,大致过程如下:

1、你把信写好——相当于生产者制造数据

2、你把信放入邮筒——相当于生产者把数据放入缓冲区

3、邮递员把信从邮筒取出——相当于消费者把数据取出缓冲区

4、邮递员把信拿去邮局做相应的处理——相当于消费者处理数据

操作系统知识点看似繁杂,但究其原理,在对不同系统资源功能进行管理时,所采取的策略和方法有很多是相同的。从操作系统四种重要实现技术出发的横向技术线包括中断技术、共享技术、虚拟技术和缓冲技术。

(1)中断技术模块是实现程序并发执行与设备并行操作的基础,它包括中断类型、中断优先级、中断事件各知识单元。中断类型知识单

元包括外中断、内中断知识点;中断优先级知识点在不同的系统中有不同的规定;中断事件知识单元包括进程创建与撤消、进程阻塞与唤醒、分时时间片、缺页中断与缺段中断、I/O操作、文件操作各知识点。

(2)共享技术模块是提高资源利用率的必然途径,它包括处理机共享、存储共享、设备共享、文件共享各知识单元。处理机共享包含进程的并发执行;存储共享包含外存储器共享、内存储器共享知识点;设备共享包含SPOOLing系统;文件共享包含便于共享的文件目录。 (3)虚拟技术模块是把一个物理实体变为若干面向用户的逻辑单元,使资源的用户使用与系统管理相分离,从而提高资源利用率和安全性方,它包括虚拟处理机、虚拟存储器、虚拟存储器方法、虚拟设备、虚拟文件各知识单元。虚拟处理机包含多进程管理;虚拟存储器包含地址转换、中断处理过程、置换知识点;虚拟存储器方法包含页式管理、段式管理、段页式管理各知识点;虚拟设备包含设备共享;虚拟文件包含文件共享。

(4)缓冲技术模块是异步技术的实现前提,可大大提高相关资源的并行操作程度,它包括存储管理缓冲技术、设备管理缓冲技术、文件管理缓冲技术各知识单元。存储管理缓冲技术包含快表;设备管理缓冲技术包含硬缓冲、软缓冲、SPOOLing系统中的输入/输出井知识点;文件管理缓冲技术包含记录成组技术、文件表的打开。

操作系统这门课程并不是教你如何使用操作系统的,而是讲操作。总而言之,操作系统的一些原理在生活中都可以找到相应的例子。结合生活中的例子,可以化抽象为具体,我们会更加清楚地了解到其原理与操作过程。我觉得通过我们的不断学习,结合生活中的实际问题,我们就会把操作系统学得更好。总体来说,通过这次的对操作系统的总结,有收获也有遗憾、不足的地方,但我想,我已经迈入了操作系统的大门,只要我再认真努力的去学习,去提高,凭借我对网页设计的热情和执着,我将来设计出的网页会更加专业,更完善。

感谢老师在百忙中阅卷,也感恩老师这学期以来对我的照顾,在老师的深刻讲授下让操作系统这门十分枯燥和难理解的学科变得生动有趣。祝愿老师早日职称晋升,立项通过,身体健康,阖家欢乐。谢谢老师!

操作系统C

开放性考核

工学院

自动化系14级11班

14032316

李大鹏

指导教师

张博

第14篇:操作系统课程设计

长春理工大学 软件学院 0813111班 27号

姓名:丁为胜 一. 概述

1、课程设计目的及任务课程设计地点及要求

每个学生一台微机,需要安装windows98或windows2000操作系统,配备VC、VB、java或C编程语言,每个学生上机时间不少于24个小时。

操作系统是计算机专业的核心专业课,“操作系统课程设计”是理解和巩固操作系统基本理论、原理和方法的重要的实践环节。

操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统基本理论与管理方式。在算法基础上,解决实际的管理功能的问题,提高学生实际应用、编程的能力。

主要任务是实现操作系统和相关系统软件的设计,其中涉及进程创建,同步,进程间的通信,存储管理,文件系统等操作系统概念。

2.课程设计地点及要求

每个学生一台微机,需要安装windows98或windows2000操作系统,配备VC、VB、java或C编程语言,每个学生上机时间不少于24个小时。

3.课程设计的内容

设计二: 设计任务:

掌握进程的管道通讯机制和信号量同步互斥机制。 1. 进程的管道通讯

编制一个程序,程序中创建一个子进程。然后父子进程各自独立运行,父进程不断地在标准输入设备上读入小写字母,写入管道。子进程不断地从管道中读取字符,转换为大写字母后输出到标准输出设备上。当读到x时,结束。

2. 信号量实现的同步互斥机制

编制一个程序,程序中创建5个子进程,代表五位哲学家,然后父进程结束。使用信号量机制解决哲学家进餐问题。当哲学家进餐时,屏幕输出:

[进程号] eating! 当哲学家思考时,屏幕输出: [进程号] thinging! 相关的系统调用和函数:pipe(); write(); read(); semget(); sepop(); semctl(); 要求:查找并阅读上述系统调用的相关资料,将上述相关的函数封装为P( )、V( )操作,使用你封装的P( )、V( )操作实现5位哲学家的同步和互斥。

二. 设计的基本概念和原理

1.进程的管道通讯

管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。命名管道(Named Pipes)是在管道服务器和一台或多台管道客户机之间进行单向或双向通信的一种命名的管道。一个命名管道的所有实例共享同一个管道名,但是每一个实例均拥有独立的缓存与句柄,并且为客户——服务通信提供有一个分离的管道。实例的使用保证了多个管道客户能够在同一时间使用同一个命名管道。

2.信号量实现的同步互斥机制

规定奇数号的哲学家先拿起他左边的筷子,然后再去拿他右边的筷子;而偶数号 的哲学家则相反.按此规定,将是1,2号哲学家竞争1号筷子,3,4号哲学家竞争3号筷子.即 五个哲学家都竞争奇数号筷子,获得后,再去竞争偶数号筷子,最后总会有一个哲学家能获 得两支筷子而进餐。而申请不到的哲学家进入阻塞等待队列,根FIFO原则,则先申请的哲 学家会较先可以吃饭,因此不会出现饿死的哲学家。

三. 总体设计

1.实现的方法和主要技术路线

1.无名管道

无名管道用于具有亲缘关系的父子进程,子子进程之间的通讯。它的实现函数有 int pipe(int fd[2]);

//fd[2] 为描述符数组,包含一个读描述符与一个写描述符,在使用管道通信时,关闭某些不需要的读或写描述符,建立起单向的读或写管道,然后用read 和write 像操作文件一样去操作它即可。

如图便是进程1 到进程2 的一个读管道。

分别在父进程和父子进程里向管道写数据,然后在子进程和子子进程里读数据。 2.哲学家进餐伪码:

semaphore chopstick[5]={1,1,1,1,1}; void philosopher(int i) {

while(true) {

think();

if(i%2 == 0) //偶数哲学家,先右后左。

{

wait (chopstick[ i + 1 ] mod 5) ; wait (chopstick[ i]) ; eat();

signal (chopstick[ i + 1 ] mod 5) ; signal (chopstick[ i]) ; }

Else //奇数哲学家,先左后右。

{

wait (chopstick[ i]) ;

wait (chopstick[ i + 1 ] mod 5) ; eat();

signal (chopstick[ i]) ;

signal (chopstick[ i + 1 ] mod 5) ; } } 四. 详细设计

进程的管道通信代码: import java.io.IOException; import java.io.PipedReader;

public cla ReceiverThread1 extends Thread { PipedReader pipedReader;

public ReceiverThread1(SenderThread1 sender) throws IOException

{

pipedReader=new PipedReader(sender.getPipedWriter());

}

public void run()

{ char[] ch=new char[100]; StringBuffer sb=null; String str=null; int i=0; try {

while((i=pipedReader.read(ch))!=-1)

{

sb=new StringBuffer();

for(int j=0;j

{

sb.append(ch[j]);

}

str=sb.toString();

System.out.println(\"子进程读取的字符为:\"+str.toUpperCase());

if(!str.endsWith(\"x\"))

{

System.out.print(\"父进程读入字符为:\");

}else if(str.endsWith(\"x\"))

{

System.out.println(\"结束无法再次输入字符\");

}

} } catch (IOException e) {

e.printStackTrace(); }finally{

try {

pipedReader.close();

} catch (IOException e) {

e.printStackTrace();

} }

}

}

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PipedWriter;

public cla SenderThread1 extends Thread { PipedWriter pipedWriter;

public SenderThread1() {

pipedWriter=new PipedWriter(); }

public PipedWriter getPipedWriter() {

return pipedWriter; }

public void run()

{ BufferedReader ir=new BufferedReader(new InputStreamReader(System.in)); char[] ch=new char[100]; StringBuffer sb=null; String str=null; int i=0; System.out.print(\"父进程读入字符为:\"); try {

while((i=ir.read(ch))!=-1)

{

sb=new StringBuffer();

for(int j=0;j

{

if(ch[j]>=\'a\' && ch[j]

{

sb.append(ch[j]);

if(ch[j]==\'x\')

{

break;

}

}

}

str=sb.toString();

pipedWriter.write(str);

if(str.startsWith(\"x\")||str.endsWith(\"x\"))

{

break;

// this.stop();

}

}

} catch (IOException e) {

e.printStackTrace(); }finally{

try {

ir.close();

pipedWriter.close();

} catch (IOException e) {

e.printStackTrace();

}

}

} }

public cla ThreadComm1 { public static void main(String[] args)throws Exception{ SenderThread1 sender=new SenderThread1(); ReceiverThread1 receiver=new ReceiverThread1(sender); sender.start(); receiver.start(); } } 哲学家进餐问题代码: #include \"stdafx.h\" using namespace std; bool chop[100];//定义筷子 cla ph { protected: bool * left,* right;//哲学家的左右手指向的筷子

int eattime;//哲学家的吃饭时间 public: bool check()//用于检查哲学家左右手的筷子是不是被占用

{

if(*left && *right)

return true;

else

return false; } void eat(int ineattime)//哲学家开始进餐

{

eattime=ineattime;

*left=false;

*right=false; } bool finish()//检查哲学家是否完成进餐

{

if(eattime>0)//没完成的话剩余时间减少

{

eattime--;

if(eattime==0)//完成的话归还筷子

{

*left=true;

*right=true;

return true;

}

else

return false;

}

else

return false; } void init(int num,int max)//初始化哲学家,指定他们使用的筷子

{

eattime=0;

left=&chop[num];

if(num

right=&chop[num+1];

else

right=&chop[0]; } }; void main() { system(\"title 哲学家进餐问题\"); int in,i,temp,time,j=1; queue Q; ph P[100];

for(int i=0;i

chop[i]=1;

} for(int i=0;i>in; if(in==0)

break; else

if(in>5)

{

cout

}

else

{

Q.push(in-1);

} } cout>time; system(\"CLS\"); system(\"color 0a\"); while(!Q.empty()) { temp=Q.front(); Q.pop(); if(P[temp].check()) {

P[temp].eat(time);

cout

if(temp+2>5)

cout

else

cout

Q.push(temp); } for(i=0;i

{

if(P[i].finish())

cout

}

//Q.push(-1);

for(i=0;i

{

temp=Q.front();

Q.pop();

//if(temp!=-1)

{

cout

Q.push(temp);

}

//else

{

// Q.pop();

break;

}

} } for(int j=0;j

if(P[i].finish())

{

cout

} getch(); }

第15篇:操作系统课程设计

湖北民族学院信息工程学院11级计算机专业操作系统课程设计

(操作系统课程设计)

连续动态分区内存

管理模拟实现

学生姓名: 韩 慧 学生学号: 031140312 班 级: 031140--3

031140

1、0

2、0

3、04班制

二〇一三年十二月

1 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

目录

《操作系统》课程设计.......................................................1 引言......................................................................3 课程设计目的和内容 ......................................................3 需求分析.........................................................................3 概要设计...................................................................3 开发环境........................................................................4 系统分析设计.....................................................................4 有关了解内存管理的相关理论..................................................4 内存管理概念........................................................................4 内存管理的必要性..............................................................4 内存的物理组织.............................................................4 什么是虚拟内存.................................................................5 连续动态分区内存管理方式...................................................5 单一连续分配(单个分区)...................................................5

固定分区存储管理...............................................................5 可变分区存储管理(动态分区)..............................................5 可重定位分区存储管理........................................................5 问题描述和分析....................................................................6 程序流程图........................................................................6 数据结构体分析..................................................................8 主要程序代码分析...............................................................9 分析并实现四种内存分配算法 .................................................11 最先适应算.....................................................................11 下次适应分配算法..........................................................13 最优适应算法...............................................................16 最坏适应算法...............................................................18 回收内存算法................................................................20 调试与操作说明.................................................................22

初始界面.......................................................................22 模拟内存分配...............................................................23

已分配分区说明表面............................................................24 空闲区说明表界面.............................................................24 回收内存界面.....................................................................25 重新申请内存界面..........................................................26.总结与体会......................................................................28

2 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

参考文献.........................................................................28

引言

操作系统是最重要的系统软件,同时也是最活跃的学科之一。我们通过操作系统可以理解计算机系统的资源如何组织,操作系统如何有效地管理这些系统资源,用户如何通过操作系统与计算机系统打交道。

存储器是计算机系统的重要组成部分,近年来,存储器容量虽然一直在不断扩大,但仍不能满足现代软件发展的需要,因此,存储器仍然是一种宝贵而又紧俏的资源。如何对它加以有效的管理,不仅直接影响到存储器的利用率,而且还对系统性能有重大影响。而动态分区分配属于连续分配的一种方式,它至今仍在内存分配方式中占有一席之地。

课程设计目的和内容:

理解内存管理的相关理论,掌握连续动态分区内存管理的理论;通过对实际问题的编程实现,获得实际应用和编程能力。

编写程序实现连续动态分区内存管理方式,该程序管理一块虚拟内存,实现内存分配和回收功能。 分析并实现四种内存分配算法,即最先适应算法,下次最先适应算法,最优适应算法,最坏适应算法。内存分配算法和回收算法的实现。

需求分析

动态分区分配是根据进程的实际需要,动态地为之分配内存空间。在实现动态分区分配时,将涉及到分区分配中所用的数据结构、分区分配算法和分区的分配和回收操作这样三个问题。常用的数据结构有动态分区表和动态分区链。在对数据结构有一定掌握程度的情况下设计合理的数据结构来描述存储空间,实现分区存储管理的内存分配功能,应该选择最合适的适应算法(首次适应算法,最佳适应算法,最后适应算法,最坏适应算法),在动态分区存储管理方式中主要实现内存分配和内存回收算法,在这些存储管理中间必然会有碎片的产生,当碎片产生时,进行碎片的拼接等相关的内容

概要设计

本程序采用机构化模块化的设计方法,共分为四大模块。 ⑴最先适应算法实现

从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法目的在于减少查找时间。为适应这种算法,空闲分区表(空闲区链)中的空闲分区要按地址由低到高进行排序。该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区,在高地址空间保留大的空闲区。 ⑵下次适应分配算法实现

3 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

该算法是最先适应算法的变种。在分配内存空间时,不再每次从表头(链首)开始查找,而是从上次找到空闲区的下一个空闲开始查找,直到找到第一个能满足要求的的空闲区为止,并从中划出一块与请求大小相等的内存空间分配给作业。该算法能使内存中的空闲区分布得较均匀。 ⑶最优适应算法实现

它从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区,这种方法能使碎片尽量小。为适应此算法,空闲分区表(空闲区链)中的空闲分区要按从小到大进行排序,自表头开始查找到第一个满足要求的自由分区分配。 ⑷最坏算法实现

最坏适应分配算法要扫描整个空闲分区或链表,总是挑选一个最大的空闲分区分割给作业使用。该算法要求将所有的空闲分区按其容量从大到小的顺序形成一空闲分区链,查找时只要看第一个分区能否满足作业要求。

开发环境:

win7 下 VC++6.0 系统分析设计:

相关算法原理,算法流程图,涉及的数据结构内容都相应包含在各章节中

有关了解内存管理的相关理论

内存管理概念:

内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。内存不是预先划分好的,而是在系统运行的过程中建立分区.当作业装入主存时,根据作业所需要的主存容量查看是否有足够的主存空间,若有则按需要分割一个分区给该作业;否则令该作业等待.分区长度不固定分区个数不固定。这种存储管理的方法克服了固定分区严重浪费主存的问题,提高了主存资源的利用率。

内存管理的必要性:

内存管理对于编写出高效率的 Windows 程序是非常重要的,这是因为Windows 是多任务系统,它的内存管理和单任务的 DOS 相比有很大的差异。DOS是单任务操作系统,应用程序分配到内存后,如果它不主动释放,系统是不会对它作任何改变的;但 Windows 却不然,它在同一时刻可能有多个应用程序共享内存,有时为了使某个任务更好地执行,Windows 系统可能会对其它任务分配的内存进行移动,甚至删除。因此,我们在 Windows 应用程序中使用内存时,要遵循Windows 内存管理的一些约定,以尽量提高 Windows 内存的利用率。

4 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

1.3 内存的物理组织:

物理地址:

把内存分成若干个大小相等的存储单元,每个存储单元占 8 位,称作字节(byte)。每个单元给一个编号,这个编号称为物理地址(内存地址、绝对地址、实地址)。

二、物理地址空间: 物理地址的集合称为物理地址空间(主存地址空间),它是一个一维空间。

什么是虚拟内存:

虚拟内存是内存管理技术的一个极其实用的创新。它是一段程序(由操作系统调度),持续监控着所有物理内存中的代码段、数据段,并保证他们在运行中的效率以及可靠性,对于每个用户层(user-level)的进程分配一段虚拟内存空间。当进程建立时,不需要在物理内存件之间搬移数据,数据储存于磁盘内的虚拟内存空间,也不需要为该进程去配置主内存空间,只有当该进程被被调用的时候才会被加载到主内存。

连续动态分区内存管理方式的实现

在早期的操作系统中,主存分配广泛采用连续分配方式。 连续分配方式,是指为一个用户程序分配一个连续的内存空间,该连续内存空间指的的是物理内存。下面介绍连续分配的四种方式。

单一连续分配(单个分区)

最简单的存储管理方式,用于多道程序设计技术之前。 内存分为系统区和用户区,系统区由操作系统使用。用户区作为一个连续的分区分配给一个作业。 分区存储管理是满足多道程序设计的最简单的一种存储管理方法,它允许多 4个用户程序同时存在系统内存中,即共享内存空间。 按分区划分方式可分为固定分区和可变分区。

固定分区存储管理

把内存的用户区预先划分成多个分区,每个分区大小可以相同,也可以不同。(分区的划分由计算机的操作员或者由操作系统给出,并给出主存分配表) 分区个数固定,分区的大小固定。 一个分区中可装入一个作业,作业执行过程中不会改变存放区域。 早期的 IBM 的 OS/MFT(具有固定任务数的多道程序系统)采用了这种固定分区的方法。

可变分区存储管理(动态分区)

内存不是预先划分好的,而是在系统运行的过程中建立分区.当作业装入主存时,根据作业所需要的主存容量查看是否有足够的主存空间,若有则按需要分割一个分区给该作业;否则令该作业等待。 分区长度不固定分区个数不固定。 这种存储管理的方法克服了固定分区严重浪费主存的问题,提高了主存资源的利用率。 IBM操作系统OS/MVT采用可变分区存储管理。

5 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

可重定位分区存储管理

解决碎片问题的一种简单方法是采用可重定位分区分配.。 其中心思想是,把不同程序,且在内存中地址不连续的想法让他们连续。

例:内存中现有 3 个空闲区,现有一作业到达,要求获得 30k 内存空间,没有分区满足容量要求,若想把作业装入,可将内存中所有作业进行移动,这样把原来分散的空闲区汇集成一个大的空闲区。 将内存中的作业进行移动使它们连接在一起把原来分散的多个小分区拼接成一个大的空闲区.这个过程称为”紧凑”或”移动”。 需解决的问题:每次”紧凑”后程序或数据装入的物理地址变化采用动态重定位。

问题描述和分析

系统应利用某种分配算法,从空闲分区链表中找到所需大小的分区,如果空闲分区大小大于请求分区大小,则从该分区中按改请求的大小划分出一块内存空间大小划分出一块内存空间分配出去,余下的部分仍留在空闲链表中。然后,将分配区的首址返回给调用者。

当进程运行完毕师范内存时,系统根据回收区的首址,从空闲区中找到相应的插入点,此时可能出现以下四种情况之一:

⑴该空闲区的上下两相邻分区都是空闲区:将三个空闲区合并为一个空闲区。新空闲区的起始地址为上空闲区的起始地址,大小为三个空闲区之和。空闲区合并后,取消可用表或自由链中下空闲区的表目项或链指针,修改上空闲区的对应项。

⑵该空闲区的上相邻区是空闲区:将释放区与上空闲区合并为一个空闲区,其起始地址为上空闲区的起始地址,大小为上空闲区与释放区之和。合并后,修改上空闲区对应的可用表的表目项或自由链指针。

⑶该空闲区的下相邻区是空闲区:将释放区与下空闲区合并,并将释放区的起始地址作为合并区的起始地址。合并区的长度为释放区与下空闲区之和。同理,合并后修改可用表或自由链中相应的表目项或链指针。

⑷两相邻区都不是空闲区:释放区作为一个新空闲可用区插入可用表或自由链。

程序流程图

内存分配流程图,如图

6 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

从头开始查表检索完否?NY返回分区大小>所需大小N继续检索下一个表项Y分区大小-所需大小

内存回收流程图,如图

7 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

开始判断空闲区上下内存情况上为空下为空上下都为空上下都不为空将上面的空闲区合并,并回收将下面的空闲区合并,并回收将上下的空闲区合并,并回收直接将其回收结束 数据结构体分析

⑴进程属性结构体 typedef struct readyque { char name[10]; int size; }readyque,*readyqueue; ⑵空闲链表结构体 typedef struct idlyspace { int from; int size; idlyspace * next; }idlyspace,*idly; ⑶已分配链表结构体 typedef struct busyspace { int from; readyque r;

8 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

busyspace * next; }busyspace,*busy

主要程序代码分析

⑴主函数//代码请添加适当的注释。 int main() { Is=(idly)malloc(sizeof(idlyspace)); Is->from=0; Is->size=256; Is->next=NULL; Is2=Is; Bs=(busy)malloc(sizeof(busyspace)); Bs->next=NULL; int t,t1; printf(\"\\n.......................欢迎来到动态分区存储管理系统..................\\n\\n\"); printf(\"...........................请选择要执行的算法:...........................\\n\"); printf(\".........................1.最先适应算法

...............................\\n\"); printf(\".........................2.下次适应算法 ............................\\n\"); printf(\"..........................3.最优适应算法

...............................\\n\"); printf(\".........................4.最坏适应算法 ................................\\n\"); printf(\"........................................................................\\n\"); printf(\"请输入您的选择:\"); scanf(\"%d\",&t); int i; while(i!=5) {

printf(\"........................................................................\\n\");

printf(\".........................操作菜单如下:(请选择).......................n\");

printf(\"..........................1.输入进程分配空间 ...........................n\");

printf(\".........................2.进程撤销回收空间 ...........................\\n\");

printf(\".........................3.输出所有空闲分区

..........................\\n\");

printf(\"..........................4.输出所有已分配分区..........................\\n\");

printf(\"..........................5.退

出 ..........................\\n\");

printf(\"........................................................................\\n\");

scanf(\"%d\",&i);

switch(i)

{

case 1:

switch(t)

{

case 1:

t1=FF();

9 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

break;

case 2:

t1=NF();

break;

case 3:

t1=BF();

break;

case 4:

t1=WF();

break;

default:

printf(\"选择算法错误\\n\");

return 1;

}

if(t1)

printf(\"分配空间成功\\n\");

else

printf(\"分配空间失败\\n\");

break;

case 2:

t1=recover();

if(t1)

printf(\"回收成功\\n\");

else

printf(\"回收失败\\n\");

break;

case 3:

Isprint();

break;

case 4:

Bsprint();

break;

} } return 0; }

第三章 :分析并实现四种内存分配算法

最先适应算法

空闲区按地址从小到大的次序排列。

分配:当进程申请大小为 SIZE 的内存时,系统顺序查找空闲区表(链),直到找到容量满足要求(≥SIZE)的空闲区为止。从该空闲区中划出大小为 SIZE的分区分配给进程,余下的部分仍作为一个空闲区,但要修改其首址和大小。

10 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

优点:这种算法是尽可能地利用低地址部分的空闲区,而尽量地保证高地址 6部分的大空闲区,有利于大作业的装入。

缺点:主存低地址和高地址分区利用不均衡。在低地址部分集中了许多非常小的空闲区碎片降低了主存的利用率。 最先适应算法 int FF() { int t=0; readyque D; printf“\"请输入进程名:\\”\"); scanf“\"%”\",D.name);

printf“\"输入进程申请空间大小:\\”\"); scanf“\"%”\",&D.size);

idly l=Is; int mt=256; busy b=Bs; idly min=NULL; while(l)

//寻找空闲表中大小满足申请进程所需大小并且起址最小的空闲结点

{

if(D.sizesize)

{

if(l->from

{ mt=l->from; min=l; t=1;

}

}

l=l->next; } if(mt!=256)

{

busy j;

j=(busy)malloc(sizeof(busyspace));

//如果找到则为进程分配空间

11 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

j->from=min->from;

for(int i=0;i

{

j->r.name[i]=D.name[i];

}

j->r.size=D.size;

while(b->next)

{ if(b->next->fromfrom)

b=b->next; else

break;

}

j->next=b->next;

b->next=j;

min->from=min->from+D.size;

min->size=min->size-D.size; } return t; }

下次适应分配算法

最先适应算法的变种。

总是从空闲区上次扫描结束处顺序查找空闲区表(链),直到找到第一个满足容量要求的空闲区为止,分割一部分给作业,剩余部分仍作为空闲区。 下次适应分配算法 int NF() { int t=0; readyque D; printf“\"请输入进程名:\\”\"); scanf“\"%”\",D.name);

12 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

printf“\"输入进程申请空间大小:\\”\"); scanf“\"%”\",&D.size);

int mt=256; idly l=Is2; idly min=NULL; busy b=Bs; while(l) //寻找空闲表中大小满足申请进程所需大小并且起址最小的空闲结点

{

if(D.sizesize)

{

if(l->from

{ mt=l->from; min=l; t=1;

}

}

l=l->next; } if(mt!=256)

{

busy j;

j=(busy)malloc(sizeof(busyspace));

j->from=min->from;

for(int i=0;i

{

j->r.name[i]=D.name[i];

}

j->r.size=D.size;

while(b->next)

{ if(b->next->fromfrom)

b=b->next; else

break;

//如果找到则为进程分配空间

13 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

}

//将申请空间进程插入到已分配链表中

j->next=b->next;

b->next=j;

//修改相应空闲节点的起址和大小

min->from=min->from+D.size;

min->size=min->size-D.size;

Is2=min->next;

结点

t=1;

return t; }

l=Is;//l指向空闲表的头

while(l!=Is2)

{

if(D.sizesize)

{

if(l->from

{ mt=l->from; min=l; t=1;

}

}

l=l->next; } if(mt!=256) {

busy j;

j=(busy)malloc(sizeof(busyspace));

j->from=min->from;

for(int i=0;i

{

//ls2指向修改结点的下一个

//循环查找

14 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

j->r.name[i]=D.name[i];

}

j->r.size=D.size;

while(b->next)

{ if(b->next->fromfrom)

b=b->next; else

break;

}

j->next=b->next;

b->next=j;

min->from=min->from+D.size;

min->size=min->size-D.size;

Is2=min->next;

t=1;

return t; } return t; }

最优适应算法

空闲区按容量递增的次序排列。

分配:当进程申请存储空间,系统顺序查找空闲区表(链),直到找到第一个满足容量要求的空闲区为止。 采用最优适应算法选中的空闲区是满足容量要求的最小空闲区。 优点:选中的空闲区是满足容量要求的最小空闲区,而不致于毁掉较大的空闲区。

缺点:空闲区的大小一般与申请分区大小不相等,因此将其一分为二,留下来的空闲区一般情况下是很小的,以致无法使用。随着时间的推移,系统中的小空闲区会越来越多,从而造成存储空间的浪费。 最优适应算法 int BF() { int t=0;

15 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

readyque D; printf“\"请输入进程名:\\”\"); scanf“\"%”\",D.name);

printf“\"输入进程申请空间大小:\\”\"); scanf“\"%”\",&D.size);

idly l=Is; idly min=NULL; int mt=256; busy b=Bs; while(l) //在空闲链中寻找第一个大于所输入的进程大小的空闲块

{

if(D.sizesize)

{

if(l->size

{

mt=l->size; min=l; t=1;

}

}

l=l->next; } if(mt!=256)

{

busy j;

j=(busy)malloc(sizeof(busyspace)); 空间

j->from=min->from;

//申请分配用于存放进程的内存

//找到第一个满足要求的空闲块

//将第一个满足要求的空闲块(min)的首地址赋给j

for(int i=0;i

{

j->r.name[i]=D.name[i]; 16 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

}

j->r.size=D.size;

while(b->next)

//按从小到大的顺序查找新进程在已分配区中的位置

{ if(b->next->fromfrom)

b=b->next; else

break;

}

j->next=b->next;

b->next=j;

min->from=min->from+D.size;

min->size=min->size-D.size;

} return t; }

最坏适应算法

为了克服最佳适应算法把空闲区切割得太小的缺点,人们提出了一种最坏适应算法,即每次分配时,总是将最大的空闲区切去一部分分配给请求者,剩余的部分仍是一个较大的空闲区。避免了空闲区越分越小的问题。 要求空闲区按容量递减的顺序排列。

分配:进程申请存储区时,检查空闲区表(链)的第一个空闲区的大小是否满足要求,若不满足则令进程等待;若满足则从该空闲区中分配一部分存储区给用户,剩下的部分仍作为空闲区。 最坏适应算法 int WF() { int t=0; readyque D; printf“\"请输入进程名:\\”\"); scanf“\"%”\",D.name);

printf“\"输入进程申请空间大小:\\”\");

//将所输入的进程插入进程链

//改变该空闲块的起始地址 //改变该空闲块的剩余大小 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

scanf“\"%”\",&D.size);

//输入进程申请的空间大小

idly l=Is;//l指向空闲链表ls头

idly min=NULL; int mt=0; busy b=Bs;

//b指向已分配链表Bs头

//找到空闲分区中大小满足进程的请求且尺寸最大的结点

while(l) {

if(D.sizesize) //判断进程所申请的大小是否小于空闲区的各结点大小

{

if(l->size>mt)

{ mt=l->size; min=l;//min指向空闲区中尺寸最大的结点

t=1;

}

}

l=l->next; } if(mt!=0) 点

{

busy j;

j=(busy)malloc(sizeof(busyspace));

j->from=min->from;

for(int i=0;i

{

j->r.name[i]=D.name[i];

}

j->r.size=D.size;

//判断是否找到了空闲区的满足结

//l指向空闲链表下一个结点

18 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

while(b->next) 置

//寻找插入到已分配链表中的位

{ if(b->next->fromfrom)

b=b->next; else

break;

}

//把此进程结点j插入到已分配链表中

j->next=b->next;

b->next=j;

//修改空闲链表的相应结点的参数

min->from=min->from+D.size;

min->size=min->size-D.size; } return t; }

可变分区的回收

当某个进程释放某存储区时,系统首先检查释放区是否与系统中的空闲区相邻若相邻则把释放区合并到相邻的空闲区去,否则把释放区作为一个空闲区插入到空闲表的适当位置。

释放区与空闲区相邻的四种情况。

(1) 释放区与前空闲区相邻:把释放区与前空闲区合并到一个空闲区。其首址仍为前空闲区首址,大小为释放区大小与空闲区大小之和。

(2) 释放区与后空闲区相邻:则把释放区合并到后空闲区,其首地址为释放区首地址,大小为二者之和。

(3) 释放区与前后两空闲区相邻:这三个区合为一个空闲区,首地址为前空闲区首址,大小为这三个空闲区之和,并取消后空闲区表目。

(4) 释放区不与任何空闲区相邻:将释放区作为一个空闲区,将其大小和首址插入到空闲区表的适当位置。

19 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

回收内存算法

int recover() { readyque D; printf“\"请输入想要回收的进程名\\”\");

scanf“\"%”\",D.name);

busy b=Bs; idly l=Is; while(b->next) 链表中

{

bool yo=1;

for(int i=0;i

{

if(b->next->r.name[i]==D.name[i]) yo=yo*1;

else yo=0;

}

//如果在已分配链表中则释放该结点所占空间

if(yo)

{

int t=b->next->from;

int ts=b->next->r.size;

//查找输入的进程名是否在已分配湖北民族学院信息工程学院11级计算机专业操作系统课程设计

while(l)

{ if(l->from>t+ts) 不邻接

{ idly tl; tl=(idly)malloc(sizeof(idlyspace)); tl->from=t; tl->size=ts; tl->next=l; Is=tl; break; } if(l->from==t+ts)

l->from=t;

l->size=l->size+ts;

busy tb=b->next;

b->next=b->next->next;

free(tb);

return 1; }

if(l->from+l->size

idly tl;

tl=(idly)malloc(sizeof(idlyspace));

tl->from=t;

tl->size=ts;

tl->next=l->next;

l->next=tl;

break; }

else if(l->from+l->size==t)

//所回收进程与空闲结点上邻接 {

//所回收进程与空闲结点上下都不邻接

//所回收进程与空闲结点下邻接 {

//所回收进程与空闲结点上下都 21 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

l->size=l->size+ts;

if(l->from+l->size==l->next->from) 接

{

l->size=l->size+l->next->size;

idly tm=l->next;

l->next=l->next->next;

freI);

}

br

l=l->next;

}

//从已分配链表中释放所回收进程

busy tb=b->next;

b->next=b->next->next;

free(tb);

return 1;

}

b=b->next; } printf(\"没找到这”进程\\n\"); return 0; }

//所回收进程与空闲结点上下都邻调试与操作说明

初始界面

程序初始界面,有四个块选择,选择要执行的算法,调试以最坏算法为例,如图

22 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

选择最坏适应算法,如图

模拟内存分配

给进程a分配内存20,如图

23 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

已分配分区说明表界面

同理,给进程b分配内存30,给进程c分配内存40,给进程d分配50,给进程e分配60,如图

空闲分区说明表界面

24 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

查看空闲分区,如图

回收内存界面

回收进程b和d所占内存,如图

已分配分区说明表和空闲分区说明表 如图

25 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

重新申请内存界面

再为新进程i分配内存30,如图

26 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

根据最坏适应算法结合图所示可知,该算法将会从空闲分区表中选择一块最大的内存空间分配给进程i,从图也可看出该模拟算法实现了最坏适应算法

27 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

总结与体会

本次做的课题是动态分区分配算法实现,此次课程设计成功实现了内存分配和内存回收,内存分配中包含了四种算法,分别是首次适应算法,循环首次适应算法,最佳适应算法和最坏适应算法。经编码调试,表明该程序模块是有效可行的。

通过这门课程的学习让我充分了解了内存管理的机制实现,从而更深一步的的对计算机

有了很多了解,这对于以后我们的研究和学习计算机系统起到了很重要的作用。

对于本次论文制作,自己的编程能力有所提高,对操作系统内存分配,存储空间的回收都有全新的认识。

在这次操作系统课程设计中,我使用了c++编写系统软件,对os中可变分区存储管理有了深刻的理解,但是过程中遇到了很多困难,一边做一边学,对c++有了比较多的理解。

实验中遇到很多问题,浪费了很多时间,总而言之是自己学习还不够好,不扎实,希望在以后学习中加以改善,学到更多知识。

参考文献

【1】 汤子瀛,哲凤屏,汤小丹.计算机操作系统.西安:西安电子科技大学出版社,2001.。

28 湖北民族学院信息工程学院11级计算机专业操作系统课程设计

【2】 任爱华.操作系统实用教程.北京:清华大学出版社,2001。

29

第16篇:操作系统课程设计

《操作系统》/《操作系统课程设计》课设指导书

《操作系统》 《操作系统课程设计》

指导

信息技术学院课设书

《操作系统》/《操作系统课程设计》课设指导书

《操作系统》/《操作系统课程设计》

课设项目指导书

课设项目1 磁盘调度算法程序设计

一、目的

磁盘是经常使用的一种重要的外设,对磁盘数据的寻道时间的长短直接影响机器的整体运行速度,本设计要求用C语言(或高级语言)编写程序模拟实现磁盘调度的常用算法。以加深对磁盘调度常用算法的理解和实现技巧。

二、课设要求

1)、设计一个函数完成先来先服务的磁盘调度功能。 2)、设计一个函数完成最短寻道时间优先的磁盘调度功能。 3)、设计一个函数完成电梯算法的磁盘调度功能。

三、课设设备、环境

奔腾以上计算机,装有Turbo C 2.0软件

四、课设方法及步骤

1、设计方法:

根据设计任务书的要求,画出程序设计流程图,确定程序的功能,把整个程序根据功能要求分解为各个子程序,利用TC语言分编写程序代码,然后进行上机调试、修改、进行连接,测试,写出设计总结报告。

2、设计步骤:

1)、自定义磁盘调度相关的数据结构。

2)、依据先来先服务算法(FCFS)、最短寻道优先算法(SSTF)、扫描(SCAN,也称电梯)算法的原理,编写对应函数,模拟系统的磁盘调度服务。

3)、为了更好地模拟和评价算法的性能,随机产生需寻道的磁道序列,磁道序列的首磁道为磁头的当前位置;在SCAN算法中,允许用户指定当前寻道方向。

4)、统计各算法总寻道次数和平均寻道距离;分析各算法性能,并作出评价。 5)、设计要求一人单独进行,独立完成设计,上机进行运行调试。 6)、写出课程设计报告书。

课设项目2 进程调度程序设计

一、目的

进程调度是处理机管理的核心内容。本设计要求用C语言编写和调试一个简单的进程调度程序。通过设计本可以加深理解有关进程控制块、进程队列的概念,并体会和了解最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法的具体实施办法。

二、课设要求

1)进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。

2)每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。

3)进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。 进程的运行时间以时间片为单位进行计算。

4)每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。

5)就绪进程获得 CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。

6)每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查。

7)重复以上过程,直到所要进程都完成为止。

三、课设设备、环境

奔腾以上计算机,装有Turbo C 2.0软件

四、课设方法及步骤

1、设计方法:

根据设计任务书的要求,画出程序设计流程图,确定进程调度程序的功能,把整个程序根据功能要求分解为各个子程序,利用TC语言分编写程序代码,然后进行上机调试、修改、进行连接,测试,写出设计总结报告。

《操作系统》/《操作系统课程设计》课设指导书

进程调度算法参考流程图

2、设计步骤:

1)充分了解各项设计要求。深入理解有关进程控制块、进程队列的概念,并体会和了解最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法的具体实施办法。

2)、按要求对进程调度程序进行分解,根据功能将其分解成多个子模块。

3)、建立主控模块程序流程图及各功能子模块程序流程图,要求条理清楚、简单明了、功能完备。

4)、根据流程图编制主程序代码及子程序代码。要求程序设计结构清晰,简洁,便于修改和调试。

5)、上述设计要求一人单独进行,独立完成设计。 6)、设计完成后,上机进行运行调试。

7)、程序运行成功,然后进行某些功能测试,选择有实用性、特殊性的数据进行录入调试,使设计进一步得到改进并完善。

8)、打印出程序运行结果,并对结果进行分析,验证程序设计的正确性。 9)、写出课程设计报告书。

《操作系统》/《操作系统课程设计》课设指导书

课设项目3 银行家算法程序设计

一、目的

银行家算法是避免死锁的一种重要方法,本设计要求用C语言(或高级语言)编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。通过对这个算法的设计,让学生能够对书本知识有更深的理解,在操作和其它方面有更高的提升,同时对程序设计的水平也有所提高。

二、课设要求

设计一个n个并发进程共享m个系统资源的程序实现银行家算法。要求包含: 1)、简单的选择界面。

2)、前系统资源的占用和剩余情况。

3)、为进程分配资源,如果进程要求的资源大于系统剩余的资源,不与分配并且提示分配不成功。

4)、撤销作业,释放资源。

三、课设设备、环境

奔腾以上计算机,装有Turbo C 2.0软件

四、课设方法及步骤

1、设计方法:

根据设计任务书的要求,画出程序设计流程图,确定程序的功能,把整个程序根据功能 要求分解为各个子程序,利用TC语言分编写程序代码,然后进行上机调试、修改、进行连接,测试,写出设计总结报告。

2、设计步骤:

1)、充分了解各项设计要求。深入理解多道程序系统中,进程并发执行的资源分配问题,和系统安全状态的概念。了解资源在进程并发执行中的资源分配策略并体会和掌握银行家算法的具体实现。

2)、按要求对进程调度程序进行分解,根据功能将其分解成多个子模块。

3)、模块程序流程图及各功能子模块程序流程图,要求条理清楚、简单明了、功能完备。 4)、根据流程图编制主程序代码及子程序代码。要求程序设计结构清晰,简洁,便于修改和调试。

5)、上述设计要求一人单独进行,独立完成设计。 6)、设计完成后,上机进行运行调试。

7)、程序运行成功,然后进行某些功能测试,选择有实用性、特殊性的数据进行录入调

试,使设计进一步得到改进并完善。

8)、打印出程序运行结果,并对结果进行分析,验证程序设计的正确性。 9)、设计报告书。

3、算法描述

设Request[i] 是进程Pi的请求向量,如果Requesti[j]=K,表示进程Pi需要K个Rj类型的资源,当Pi发出资源请求后,系统按下面步骤进行检查:

1)、如果Requesti[j]

2)、如果Requesti[j]

3)、系统试探着把资源分配给进程Pi,并修改下面数据结构中的数值:

Available[j]:=Available[j]-Requesti[j]; Allocation[i,j]:=Allocation[i,j]+Requesti[j]; Need[i,j]:=Need[i,j]-Requesti[j];

4)、系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才 正式将资源分配给进程Pi,以完成本次分配;否则,将本次的试探分配作废,恢复原来 的资源分配状态,让进程Pi等待。

4、数据结构

银行家算法中的数据结构:

1)、可利用资源向量Available。这是一个含有n个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。如果Available[j]=K,则表示系统中现有Rj类资源K个。

2)、最大需求矩阵Max。这是一个m*n的矩阵,它定义了系统中n个进程中每一个进程对m类资源的最大需求。如果Max[i,j]=K,则表示进程i需要Rj类资源的最大数目为K。 3)、分配矩阵Allocation。这也是一个m*n的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果Allocation[i,j]=K,则表示进程i当前已分得Rj类资源的数目为K。

4)、需求矩阵Need。这也是一个n*m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need[i,j]=K,则表示进程i还需要Rj类资源K个,方能完成其任务。

5)、工作数组Work.。这是一个含有n个元素的数组,它代表可以提供分配的资源数,初始值是Available中的数值,随着资源的回收,它的值也会改变,公式是 6

《操作系统》/《操作系统课程设计》课设指导书

Work[i]=Work[i]+Allocation[i]。

课设项目4 存储管理程序设计

一、目的

存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本次设计的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。

二、课设要求

设计一个请求页式存储管理方案。并编写模拟程序实现之。要求包含: 1.过随机数产生一个指令序列,共320条指令。其地址按下述原则生成: ①50%的指令是顺序执行的;

②25%的指令是均匀分布在前地址部分; ③25%的指令是均匀分布在后地址部分; #具体的实施方法是:

A.在[0,319]的指令地址之间随机选区一起点M; B.顺序执行一条指令,即执行地址为M+1的指令;

C.在前地址[0,M+1]中随机选取一条指令并执行,该指令的地址为M’; D.顺序执行一条指令,其地址为M’+1;

E.在后地址[M’+2,319]中随机选取一条指令并执行; F.重复A—E,直到执行320次指令。 2.指令序列变换成页地址流

设:(1)页面大小为1K;

(2) 用户内存容量为4页到32页; (3) 用户虚存容量为32K。

在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:

第0条—第9条指令为第0页(对应虚存地址为[0,9]);

第10条—第19条指令为第1页(对应虚存地址为[10,19]);

。。。。。。。。。。。。。。。。。。。。。

第310条—第319条指令为第31页(对应虚存地址为[310,319]); 按以上方式,用户指令可组成32页。

3.计算并输出下述各种算法在不同内存容量下的命中率。

《操作系统》/《操作系统课程设计》课设指导书

A.FIFO先进先出的算法 B.LRR最近最少使用算法

C.OPT最佳淘汰算法(先淘汰最不常用的页地址) D.LFR最少访问页面算法 E.NUR最近最不经常使用算法

三、课设设备、环境

奔腾以上计算机,装有Turbo C 2.0软件

四、课设方法及步骤

1、设计方法:

根据设计任务书的要求,画出程序设计流程图,确定程序的功能,把整个程序根据功能要求分解为各个子程序,利用TC语言分编写程序代码,然后进行上机调试、修改、进行连接,测试,写出设计总结报告。

2、设计步骤:

1)、充分了解各项设计要求。深入理解有关页表、页面置换的概念,并体会和了解先进先出页面置换算法、先来先服务算法的具体实施办法。

2)、按要求对存储管理程序进行分解,根据功能将其分解成多个子模块。

3)、建立主控模块程序流程图及各功能子模块程序流程图,要求条理清楚、简单明了、功能完备。

4)、根据流程图编制主程序代码及子程序代码。要求程序设计结构清晰,简洁,便于修改和调试。

5)、上述设计要求一人单独进行,独立完成设计。 6)、设计完成后,上机进行运行调试。

7)、程序运行成功,然后进行某些功能测试,选择有实用性、特殊性的数据进行录入调试,使设计进一步得到改进并完善。

8)、打印出程序运行结果,并对结果进行分析,验证程序设计的正确性。 9)、写出课程设计报告书。

课设项目5 文件系统程序设计

一、目的

本设计要求用C语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。本次课程设计的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能和内部实现。

二、课设要求

要求设计一个 n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。要求包含:

1)设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。

2)程序采用二级文件目录(即设置主目录[MFD])和用户文件目录(UED)。另外,为打开文件设置了运行文件目录(AFD)。

3)为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。

4)可以实现下列几条命令

LOGIN 用户登陆 DIR 列文件目录 CREATE 创建文件 DELETE 删除文件 OPEN 打开文件 CLOSE 关闭文件 READ 读文件 WRITE 写文件

5)因系统小,文件目录的检索可使用简单的线性搜索。

三、课设设备、环境

奔腾以上计算机,装有Turbo C 2.0软件

四、课设方法及步骤

1、设计方法:

《操作系统》/《操作系统课程设计》课设指导书

根据设计任务书的要求,画出程序设计流程图,确定程序的功能,把整个程序根据功能要求分解为各个子程序,利用TC语言分编写程序代码,然后进行上机调试、修改、进行连接,测试,写出设计总结报告。

2、设计步骤:

1)、充分了解各项设计要求。深入理解有关文件控制块、目录的概念,并体会和了解目录管理的具体实施办法。

2)、按要求对进程调度程序进行分解,根据功能将其分解成多个子模块。

3)、建立主控模块程序流程图及各功能子模块程序流程图,要求条理清楚、简单明了、功能完备。

4)、根据流程图编制主程序代码及子程序代码。要求程序设计结构清晰,简洁,便于修改和调试。

5)、上述设计要求一人单独进行,独立完成设计。 6)、设计完成后,上机进行运行调试。

7)、程序运行成功,然后进行某些功能测试,选择有实用性、特殊性的数据进行录入调试,使设计进一步得到改进并完善。

8)、打印出程序运行结果,并对结果进行分析,验证程序设计的正确性。 9)、写出课程设计报告书。

第17篇:操作系统课程设计

1 引言

操作系统是计算机科学与技术专业的主要专业基础课和主干课。操作系统对计算机系统资源实施管理,是所有其他软件与计算机硬件的唯一接口,所有用户在使用计算机时都要得到操作系统提供的服务。

通过模拟操作系统的全部或者部分功能的实现,加深对操作系统工作原理和操作系统实现方法的理解,达到练习编程的目的,提高学生运用理论知识分析问题、解决问题的能力,为学生从事科学研究和独立负担计算机及其应用方面的工作打好扎实的基础。

0 河北大学工商学院2011级操作系统课程设计论文(设计)

2 课程设计任务及要求

2.1 设计任务

模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。

本部分要求实现文件的逻辑结构、文件的物理结构、目录结构、磁盘分配和回收、文件的保护和用户接口。

2.2 实现方法和原理

2.2.1文件的逻辑结构:

文件的逻辑结构采用流式结构; 文件均采用文本文件;

系统中有两种文件,一种是存放任意字符的文件,一种是可执行文件。可执行文件的内容就是模拟系统内进程的程序体。

文件中要有一种特定命令的“可执行”文件,文件中的命令非常简单,包括: x=?;

给x赋值一位数 x++;

x加1 x--;

x减1 !??;

第一个?为A,B,C中某个设备,第二个?为一位数,表示使用设备的时间(由于没有实际设备,所以无法知道设备何时工作完成,所以假定一个数,这个数随着系统时间增加而递减,减到0时,认为是设备工作完成);

end.

表示文件结束,同时将结果写入文件out,其中包括文件路径名和x的值。 2.2.2 磁盘模拟:

用一个文件disk模拟磁盘,磁盘的每个盘块64字节,模拟磁盘共有128块。第0、1块存放文件分配表,第2块存放根目录,其余存放子目录和文件。 2.2.3目录结构

目录结构采用树型目录结构,目录项内容共十六个字节。 ①目录项内容(8个字节): 目录名、文件名:3个字节;

1 河北大学工商学院2011级操作系统课程设计论文(设计)

扩展名:1个字节(可执行文件扩展名为e,目录没有扩展名); 目录、文件属性:1字节; 起始盘块号:1个字节;

文件长度:2字节(目录没有长度)。 ②根目录

根目录位置固定,为磁盘第2块,大小固定,共8项,占用模拟磁盘第2块; ③子目录

位置不固定,大小不固定。 2.2.4磁盘分配

磁盘的分配采用链接结构(显式链接)的分配方式。系统采用文件分配表方式记录磁盘空间的使用情况和链接结构的指针。

因为磁盘有占用磁盘由128块,所以文件分配表中一项需要1字节,而磁盘由128块,因而需要128项,所以模拟磁盘空间中的第0、1块被用来存放文件分配表。 2.2.5用户接口

用户接口提供用户命令接口,要求实现以下命令: 创建文件:create 拷贝文件:copy 删除文件:delete 移动文件:move 显示文件:type 编辑文件:edit 改变文件属性:change 磁盘格式化命令 format 建立目录:makdir 改变目录路径:chadir

删除空目录:rdir 删除目录:deldir(既可删除空目录又可删除非空目录)

2 河北大学工商学院2011级操作系统课程设计论文(设计)

磁盘分区命令:fdisk 运行可执行文件:可执行文件的文件名(可创建进程)。

上述命令在实际系统中都是需要建立进程才可以实现的,这里由于模拟系统的能力达不到,所以除运行可执行文件需要建立进程外,其他指令执行不必在模拟系统中建立进程,可直接执行。

注意打开文件表。 2.2.6屏幕显示

如图所示,屏幕显示要求包括:

用户命令接口,用于系统运行时用户输入命令; 磁盘目录显示,要求显示磁盘的树型目录结构;

磁盘使用情况,显示磁盘每一个磁盘块的空间是占用还是空闲。

3程序设计与实现

3.1目录结构的实现

3.1.1创建目录

#region CreateMenu(建立目录)

public void CreateMenu(string pathname,string harddisk) 3.1.2删除空目录

删除空目录首先要找到该目录,如果目录不存在,执行指令失败;如果存在,但是根

3 河北大学工商学院2011级操作系统课程设计论文(设计)

目录或非空目录显示不能删除,操作失败;若是非空子目录,则删除器目录项并回收对应空间。删除空目录的过程和删除文件的过程相似。

3.1.3删除目录

#region DeleteMenu(删除目录)

public void DeleteMenu(string pathname, string harddisk)

{

if (Search(pathname,harddisk) == 1)

{

MeageBox.Show(\"文件路径不正确!\", \"注意\", MeageBoxButtons.OK, MeageBoxIcon.Exclamation); 3.2文件 3.2.1创建文件

#region CreateFile(建立文件) public void CreateFile(string pathname, byte attribute, byte addre, char length, string harddisk) {

if (attribute == 3 || attribute == 5) {

MeageBox.Show(\"只读性质,建立失败!\", \"注意\", MeageBoxButtons.OK,

MeageBoxIcon.Exclamation);

return; } 3.2.2拷贝文件

#region CopyFile(复制文件,只复制FCB)

public void CopyFile(string pathname1, string pathname2, string harddisk)

{

string[] pnames = pathname1.Split(new char[] { \'\\\', \'.\' });

string halfpathname = pathname1.Remove(pathname1.Length1]);

UTF8Encoding utf = new UTF8Encoding(); 4 河北大学工商学院2011级操作系统课程设计论文(设计)

byte[] name = utf.GetBytes(pnames[pnames.Length1];

CreateFile(pathname2, buffer.Attribute, buffer.Addre, buffer.Length,harddisk);

}

#endregion 3.2.3删除文件 #region DeleteFile(删除文件)

public void DeleteFile(string pathname, string harddisk)

{

if(Search(pathname,harddisk)==1)

{

MeageBox.Show(\"文件路径不正确!\", \"注意\", MeageBoxButtons.OK, MeageBoxIcon.Exclamation);

return;

}

else if (Search(pathname,harddisk) == 2)

//文件存在

{

string[] pnames = pathname.Split(new char[] { \'\\\', \'.\' });

string halfpathname = pathname.Remove(pathname.Length2]);

int disknum;

if (pnames.Length == 3)

//c:\\aaa.t

{

disknum = 3;

}

else

{

disknum = Search(halfpathname,harddisk);

}

int item = FindItem(disknum, name, attribute,harddisk)[0];

int addre = FindItem(disknum, name, attribute,harddisk)[1];

byte addr = Convert.ToByte(addre);

DeleteFCB(disknum, item,harddisk);

//删除FCB

if(addr==0)

{

return; 3.2.4移动文件

#region CutFile(移动文件)

public void CutFile(string pathname1, string pathname2, string harddisk)

{

CopyFile(pathname1, pathname2,harddisk); //复制FCB到新目录下

string[] pnames = pathname1.Split(new char[] { \'\\\', \'.\' });

string halfpathname = pathname1.Remove(pathname1.Length1]);

UTF8Encoding utf = new UTF8Encoding(); 6 河北大学工商学院2011级操作系统课程设计论文(设计)

byte[] name = utf.GetBytes(pnames[pnames.Length1) + 8 * (Itemnumber - 1), SeekOrigin.Begin);

Disk.Write(buffer.Name, 0, buffer.Name.Length);

Disk.Seek(0, SeekOrigin.Current);

Disk.WriteByte(buffer.Type);

Disk.Seek(0, SeekOrigin.Current);

Disk.WriteByte(buffer.Attribute);

Disk.Seek(0, SeekOrigin.Current);

Disk.WriteByte(buffer.Addre); 7 河北大学工商学院2011级操作系统课程设计论文(设计)

Disk.Seek(0, SeekOrigin.Current);

Disk.WriteByte(Convert.ToByte(buffer.Length));

}

Disk.Close();

}

#endregion

3.2.7显示文件

#region ReadFile(读文件画节点)

public void ReadFile(TreeView treeView, ContextMenuStrip contextMenuStrip,ImageList imageList)

{

treeView.Nodes.Clear();

//删除集合中所有树节点

//重新添加树节点

treeView.ImageList = imageList;

TreeNode root = new TreeNode(\"计算机\", 0, 0);

TreeNode node_C = new TreeNode(\"本地磁盘C\", 4, 4);

TreeNode node_D = new TreeNode(\"本地磁盘D\", 4, 4);

node_C.ContextMenuStrip = contextMenuStrip;

node_D.ContextMenuStrip = contextMenuStrip;

treeView.Nodes.Add(root);

root.Nodes.Add(node_C);

root.Nodes.Add(node_D);

DrawTree(node_C, 3,\"disk1.txt\",contextMenuStrip);

DrawTree(node_D, 3, \"disk2.txt\",contextMenuStrip);

treeView.ExpandAll();

}

#endregion

4.程序运行部分截图

4.1主页面

8 河北大学工商学院2011级操作系统课程设计论文(设计)

4.2创建文件

4.3编辑文件

9 河北大学工商学院2011级操作系统课程设计论文(设计)

4.4创建目录

5 总结

在此系统我主要模拟的是文件部分。通过编写此系统,采用了c#语言。但是,在实现此系统中,一方面因为我对c#这门语言掌握的不是很熟练,另外一方面,对操作系统理解的不够深入以至于部分功能没有实现,让我发现了自己的不足,从而要在以后的学习中更加努力,不短提高自己个方面的能力。

10 河北大学工商学院2011级操作系统课程设计论文(设计)

第18篇:操作系统心得体会

操作系统心得体会

电脑使用一段时间后机箱里会存积大量的灰尘,这些灰尘会影响硬件的散热,尤其会影响cpu的散热。具体的表现是主机工作时噪声变大,经常出现操作反映迟缓等现象(有时候病毒、木马和垃圾文件过多也是此现象,所以要具体情况具体对待)。那么多长时间清扫一次合适呢?这要看你的机器所处的环境的浮尘量了,一般在自己家里一个季度到半年清扫一次就可以了(新买的电脑建议在过了保修期以后再清扫,因为一旦打开机箱即保修自动终止),因为对于新手来说过于频繁的清扫反而会增大硬件意外损坏的风险。清扫时将机箱盖打开,用软毛刷子轻轻扫去附着在主板各硬件表面的灰尘,然后将cpu风扇拆下(散热片不要从主板上拆下来),仔细扫去风扇叶片和散热片缝隙里的灰尘。然后拔掉内存,将内存插槽和内存条上的触点用潮湿的软布轻轻的擦干净。最后将所有部件装回原位就可以了。 [操作系统维护] 关于操作系统的维护网上有很多这方面的内容,我这里就不过多的介绍了。不过我要说一下我自己的一些经验。

1、对于新手要尽量安装一键还原工具。一些品牌机都会带有一键还原工具,如果是组装的机器或是没有预装操作系统的品牌机,都是没有此类软件的,建议你在安装完操作系统后的第一时间安装这些软件并备份系统盘。

2、重装或更换操作系统前把一键还原工具卸载掉。因为这些软件很多都会保护引导区(mbr),所以在安装了这类软件后无法完成系统的重装。(所以我现在是不用一键还原的)

3、不要把我的文档放在系统盘。因为在我的文档中往往会保存一些比较大的文件,如果在系统盘,会占用本来就有限的系统盘空间,而且在一键还原或重装系统后系统盘的数据会被全部重写,原来的文件都将不复存在。

4、整理c盘的碎片时切忌不要让电脑做任何事情。这一点我深有体会,我曾经因为在整理碎片时浏览网页而导致系统崩溃。

5、尽量安装功能多的软件。这样可以减少系统中软件的数量,从而节省磁盘空间,但也不要过于求大求全,够用即可。

6、对于有经验的人来说可以关闭自动更新和系统还原,这样可以让系统运行更顺畅。

7、软件能用原版就用原版。很多软件都有破解版、汉化版、简化版、增强版等版本,这些版本很多都存在问题,有的还有病毒,所以软件还是原版好。

8、系统优化要慎重。我曾经因优化后系统不能正常工作而重装。

9、卸载软件后要及时删除其安装目录。很多软件在卸载后会在其安装目录里保留一些文件,虽然一般都不是很大,但系统用的时间长了难免会留下大量这类垃圾文件。所以在卸载完一个软件后要查看其安装目录是否依然存在,如果存在就将其删除,无法删除的可以在安全模式下删除。

10、尽量避免强行终止进程。这样可以减少垃圾文件的产生,有时候被强行终止后的程序还会工作不正常,甚至彻底不能用了。 操作系统心得体会(2):

对于此次课程设计,我早在寒假就借了linux相关书籍参看,但上面讲的主要是有关linux操作方面的内容,编程方面讲得很少,而且在假期中也并不知道课设的题目是什么,因此此次课设基本上都是在开学后的这两周内完成的。

以前做过的软件方面的课设如c语言课设、数据结构课设都是在假期完成的,由于自己是一个十分追求完美的人,因此几乎每次都花了将近大半个假期的时间来做,如c语言就花了一个多月的时间来做,分数当然也较高,有90来分。对于课程设计,我历来都是相当认真的,此次操作系统的课程设计当然也不例外。可是linux以前没怎么接触过,学校也没怎么系统地讲过,在刚接到题目时除了知道如何用gcc编译等等,几乎可以算作处于一无所知的状态。时间紧任务重,要从对linux一无所知的状态到独立出色地完成课设,不下点苦功夫是不成的。那两周里我除了吃饭睡觉几乎就没离开电脑过,有时时间晚了食堂关门饭都没得吃了。终于,在这样近乎玩命地学习工作下,身体撑不住了,在第二周周三晚上我发烧了。但是眼看就要到检查的日期了,而我的课设也就快完工了。我不想因为看病而耽误下去弄得前功尽弃,因此只买了点药,继续在电脑前拼命&&最后,总算赶在周五检查前做出了较满意的作品。然而这几天一直高烧不退,周五回家(武汉)后就直接倒床昏睡过去,周六早上一量居然还有39°。于是赶紧去附近一家医院看病,连打了两天吊针才算好转过来。而看病用的几百块钱由于不是在校医院看的也无法报销,只好自掏腰包了。

在周五检查那天,老师看了我第4题后,又抽查了一下我的第3题,其实也只是要我把第3题运行一下而已罢了。若放在平时,这绝对是小菜一碟,但当时正在发烧,加上一点紧张,居然把模块加载命令insmod fdev.o错打成insmod fdev.c了,由于这个低级失误造成心中慌乱,于是后面的一条生成设备文件命令mknod干脆就照着参考资料打上去了。于是老师认为我不熟,在那题上打了个半钩。当时心里确实感到十分地遗憾和沮丧,心想所谓台上一分钟,台下十年功,一分钟若把握不好,也同样尽毁十年功啊!

但最后,我终于明白,分数不过是个数字,知识才是自己的。通过这次课程设计,我确实学到了很多东西,多年后我可能已经忘记这次课设最后打了多少分,但这些学到的东西却可以使我受益终生。除了知识技术上的东西,我更锻炼了自己的快速学习能力;我学会了如何快速有效地从图书馆、网络获取自己需要的信息;我尝到了在周围很多同学拷来拷去时孤军奋战的痛苦;我体会了夜以继日完成一个项目时中途过程的艰辛及最终完成后巨大的成就感&&我更加深了人生的信心,以后面对任何一个困难的项目,我想我都不会惧怕,并最终能够成功地将其完成。 感谢老师,感谢此次课程设计。虽然在其中吃了不少苦头,但我毫不后悔,因为我满载而归。

第19篇:操作系统课程设计

课程实验报告

课程名称:

操作系统原理课程设计

专业班级: 学

号: 姓

名 指导教师: 报告日期:

计算机科学与技术学院

目录

1.实验目的 ............................................................................................................................4 2.实验环境 ..........................................................................................................................4 3.实验内容 ..........................................................................................................................4 3.1 实验一 ....................................................................................................................4 3.2 实验二 ....................................................................................................................4 3.3 实验三 ....................................................................................................................5 3.4 实验四 ....................................................................................................................5 4.实验设计 ..........................................................................................................................5 4.1 实验一 ....................................................................................................................5 4.1.1 文件拷贝 ......................................................................................................5 4.1.2 并发进程分窗口显示 ....................................................................................5 4.2 实验二 ....................................................................................................................6 .....................................................................................................................................6 4.3 实验三 ....................................................................................................................6 4.4 实验四 ....................................................................................................................7 5.实验步骤 ..........................................................................................................................8 5.1 实验一 .............................................................................................................8 5.1.1 文件拷贝 ......................................................................................................8 5.1.2 并发进程分窗口显示 ....................................................................................9 5.2 实验二 ..................................................................................................................14 5.3 实验三 ..................................................................................................................15 2 5.4 实验四 ..................................................................................................................17 6.调试记录 ........................................................................................................................19 7.心得体会 ........................................................................................................................21 8.程序清单 ........................................................................................................................22 8.1实验一 ...................................................................................................................22 8.1.1 文件拷贝 ....................................................................................................22 8.1.2并发进程窗口显示 ......................................................................................23 8.2实验二 ...................................................................................................................33 8.3实验三 ...................................................................................................................34 8.4实验四 ...................................................................................................................38

1.实验目的

(1)掌握Linux操作系统的使用方法; (2)了解Linux系统内核代码结构; (3)掌握实例操作系统的实现方法。

2.实验环境

本次课程设计采用的操作系统环境是Windows

7、Ubuntu双系统,Ubuntu系统版本为15.04,内核版本是Linux 3.19。

3.实验内容

3.1 实验一

1)编写一个C程序,用fread、fwrite等库函数实现文件拷贝功能。

2)编写一个C程序,使用基于文本的终端图形编程库(curses)或图形界面(QT/GTK),分窗口显示三个并发进程的运行(一个窗口实时显示当前时间,一个窗口实时监测CPU的利用率,一个窗口做1到100的累加求和,刷新周期分别为1秒,2秒和3秒)。

3.2 实验二

4 采用编译内核的方法,添加一个新的系统调用实现文件拷贝功能 编写一个应用程序,测试新加的系统调用

3.3 实验三

采用模块方法,添加一个新的字符设备的驱动程序,实现打开/关闭、读/写等基本操作,编写一个应用程序,测试添加的驱动程序。

3.4 实验四

1)了解/proc文件的特点和使用方法。 2)监控系统状态,显示系统部件的使用情况。

3)用图形界面监控系统状态,包括CPU和内存利用率、所有进程信息等(可自己补充、添加其他功能)。

4.实验设计

4.1 实验一

4.1.1 文件拷贝

实现文件拷贝功能需要使用的函数是fopen、fgetc、fputc,由命令行参数获取2个文件名,根据其文件名和路径分别打开该2个文件,设置循环,使用fgetc和fputc函数每次从源文件复制1个字节到目的文件,直到源文件指针到文件尾,实现文件拷贝操作。 4.1.2 并发进程分窗口显示

5 使用图形界面GTK实现窗口的显示,使用fork()创建三个并发进程: pid=fork():创建子进程。

返回值:0

从子进程返回 >0

从父进程返回

exit进程自我终止,进入僵死状态 wait( ) 等待进程终止(由父进程调用) exec( ) 执行一个可执行程序(文件)。

4.2 实验二

不同的Linux内核版本编译内核和添加系统调用的方法不尽相同,在网上查阅了资料之后找到适合3.19版本内核的编译方法。

所谓系统调用,即Linux内核中设置了一组用于实现各种系统功能的子程序,称为系统调用,用户可以通过系统调用命令在自己的应用程序中调用它们。其调用机制为:使用寄存器中适当的值跳转到内核中事先定义好的代码中执行:跳转到系统调用的总入口system_call,检查系统调用号,再查找系统调用表sys_call_table,调用内核函数,最后返回。

实验二目的是更改内核中系统调用模块,增加自定义函数实现文件拷贝功能。

4.3 实验三

Linux设备驱动程序是一组常驻内存的具有特权的共享库,是低级硬件处理例程,每个设备文件有两个设备号,主设备号标识驱动程序,从设备号表示使用 6 同一个设备驱动程序的不同硬件设备。

设备驱动程序的功能包括:对设备初始化和释放,把数据从内核传送到硬件和从硬件读取数据,读取应用程序传给设备文件的数据和回送应用程序请求的数据,检测和处理设备出现的错误 。

Linux支持的设备包括三种:字符设备、块设备和网络设备。 添加设备驱动程序大致需要以下几个步骤:

1.注册设备 2.定义功能函数 3.卸载设备

4.4 实验四

proc文件系统特点:

1.进程文件系统和内核文件系统组成的复合体

2.将内核数据对象化为文件形式进行存取的一种内存文件系统

3.监控内核的一种用户接口,拥有一些特殊的纯文本文件,从中可以获取系统状态信息

4.系统信息:与进程无关,随系统配置的不同而不同 5.进程信息:系统中正在运行的每一个用户级进程的信息 其中各个文件保存的信息如下: /proc/cmd/line: 内核启动的命令行 /proc/cpuinfo: CPU信息

/proc/stat: CPU的使用情况、磁盘、页面、交换、所有的中断、最后一次的启动 7 时间等

/proc/meminfo: 内存状态的有关信息

利用/proc文件获取系统状态信息,并通过GTK图形化编程将系统信息以及通过这些信息计算得出的如CPU利用率、内存使用等通过窗口显示出来。

5.实验步骤

5.1 实验一

5.1.1 文件拷贝

文件拷贝主要是利用文件指针操作,在源文件和目的文件之间进行字符的复制,拷贝之前要判断源文件是否存在以及能否打开,这需要设置一个判断语句,同时也要设置判断语句判断目的文件是否存在,若不存在需要能够创建一个目的文件,最后执行循环拷贝。

步骤如下:

1.在Linux终端使用编译命令:gcc mycopy.c -o mycopy产生可执行文件。 2.创建源文件wangzihao目的文件shaochongjun。 3.编辑源文件:

8

4.打开可执行程序:./mycopy wangzihao shaochongjun 5.查看目的文件发现已经实现拷贝:

6.若源文件不存在会报错:

5.1.2 并发进程分窗口显示

1.使用fork()函数创建三个进程,使用exec函数族实现程序的调用:

2.调用创建窗口函数init_window(),将进程中的信息在窗口中显示:

3.分别创建三个程序实现显示系统时间、CPU利用率、累加求和功能:

4.运行结果如下:

12

5.2 实验二

原内核版本:3.19.0 编译新内核版本:3.19.8 1.下载内核并解压

2.系统调用函数实现:修改kernel/sys.c文件,在文件的最后添加新的系统调用函数:sys_mycall(char* sourceFile,char* destFile) 3.设置系统调用号:修改arch/x86/syscalls/syscall_32.tbl,在最后一行添加新的系统调用号

4.添加系统调用声明到头文件 :~$ vi include/asm-generic/syscalls.h 在#endif前添

#ifndef sys_mycall asmlinkage long sys_mycall(long number); #endif

5.安装基本编译套件:apt-get install build -eential kernal-package libncurses5-dev fakeroot 6.配置内核:make menuconfig 7.编译内核:make -j4 8.安装内核:make modules_install make install 9.重启进入新的内核

10.编写测试程序测试新的系统调用:

测试结果如下:

5.3 实验三

1.编写Makefile文件:

2.编写设备功能函数:(见程序清单)

3.设备加载:make clean make

加载模块:insmod wzhdriver.ko

输入 cat /proc/devices得 设备驱动的主设备号为:

15

加载 设备,分配设备号:mknod /dev/wzhdriver c 248 0

更改操作权限:chmod 666 /dev/wzhdriver 4.运行测试程序,结果:

5.4 实验四

1系统信息页:

2进程信息页:

17

3内存资源页:

18

6.调试记录

1.在编译gtk程序时,需要添加` pkg-config --cflags --libs gtk+-3.0`.参数。 2.实验一程序过于简单,健壮性不大。

3.由于一开始没有加入刷新函数,导致实验一显示窗口数据不变化,在同学帮助下改正。

4.编译内核占用大量时间后来发现在make后添加-j4可以大大提升速度。

19

20

7.心得体会

本次课程设计主要目的是熟悉Linux系统,掌握Linux操作系统的使用方法,了解Linux系统内核代码结构,掌握实例操作系统的实现方法。由于刚开始接触Linux,实验的开始遇到了不少困难,GTK的安装和使用花费了我不少时间,并行程序是操作系统课程学过的内容,主要难点是图形化界面的设计。

实验二是耗费时间最多的,由于每个版本的内核编译方式不同,耗费了大量时间查找编译内核的方法,同时编译一次内核需要一个小时以上,不过皇天不负有心人最后我成功添加了系统调用。

添加设备驱动比较简单,主要是了解了Linux设备驱动的原理,熟悉设备驱动的安装过程。

分析/proc文件主要是搭建图形化界面,在借鉴了网上资源设计的窗口之后,我设计了简单的监控系统图形界面,其中CPU利用率以及占用曲线等需要计算。 通过本次实验我学到了很多东西,熟悉了Linux系统的使用方法,对Linux系统内核代码结构有了大致的了解,掌握了图形化界面GTK的使用,总而言之本次试验我获益匪浅。

21

8.程序清单

8.1实验一

8.1.1 文件拷贝 #include int main(int argc,char *argv[]) {

if(argc!=3)

{ printf(\"Error in argc!\\n\"); return 0;

}

FILE * fsource=NULL;

FILE * ftarget=NULL;

if( (fsource=fopen(argv[1],\"rb\"))==NULL )

{ printf(\"Fail to open source file!\\n\"); return 0;

}

if( (ftarget=fopen(argv[2],\"wb\"))==NULL )

{ printf(\"Fail to open target file!\\n\"); 22 return 0;

}

int c;

while((c=fgetc(fsource))!=EOF)

{ fputc(c,ftarget);

}

fclose(fsource);

fclose(ftarget);

return 0; } 8.1.2并发进程窗口显示

主函数:

#include #include #include int main() { pid_t time; pid_t cpu; pid_t sum; 23

if((time=fork())==-1) {

}

if(time==0) { execlp(\"./time\",0); printf(\"fork error\\n\"); return -1; }else {

if((cpu=fork())==-1) //create cpu {

} if(cpu==0) { execlp(\"./cpu\",0); printf(\"fork error\\n\"); return -1; }else 24

{ if((sum=fork())==-1) //create sum

{

printf(\"fork error\\n\");

return -1;

}

if(sum==0)

{

execlp(\"./sum\",0);

}else //father proce

{

wait(&time);

wait(&cpu);

wait(&sum);

}

}

}

} 系统时间:

25 #include #include #include #includechar t[50]; GtkWidget *label; gettime(){

time_t timep;

time (&timep);

sprintf(t,\"%s\",ctime(&timep));} void *thread(void * argc){

while(1){

gettime();

gtk_label_set_text(GTK_LABEL(label),t);

sleep(1);}

}

int main( int argc, char *argv[]) {

pthread_t id;

int i,ret;

ret=pthread_create(&id,NULL,(void *) thread,NULL); 26

GtkWidget *vbox;

GtkWidget *window;

//定义一个组装盒;

/*初始化整个GTK+程序,是每一个GTK+程序必不可少的部分*/

gtk_init(&argc, &argv);

/*这里生成了一个窗口构件——GtkWindow,GTK_WINDOW_TOPLEVEL包含窗口的标题栏和边框,同意用窗口管理器来进行管理*/

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_window_set_title(GTK_WINDOW(window), \"time\");

gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);

gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);

label = gtk_label_new (t);

gtk_container_add (GTK_CONTAINER (window), label);

gtk_widget_show (label);

/*开始显示窗口*/

gtk_widget_show(window);

gtk_main();

return 0; } CPU利用率: #include #include 27 #include GtkWidget* label; //the use rate of cpu char c[5]; float cpu(); void* thread(void* arg) {

} float cpu() {

FILE* fp; char buf[128]; char cpu[5]; long int user,nice,sys,idle,iowait,irq,softirq; float usage; while(1) {

} sleep(2); usage=cpu(); sprintf(c,\"the usage of cpu is %f %%\",usage); gtk_label_set_text(GTK_LABEL(label), c); 28

fp=fopen(\"/proc/stat\",\"r\"); if(fp==NULL) printf(\"error\\n\"); long int all1,all2,idle1,idle2; float usage; fgets(buf,sizeof(buf),fp);

canf(buf,\"%s%ld%ld%ld%ld%ld%ld%ld\",cpu,&user,&nice,&sys,&idle,&iowait,&irq,&softirq);

canf(buf,\"%s%ld%ld%ld%ld%ld%ld%ld\",cpu,&user,&nice,&sys,&idle,&iall1=user+nice+sys+idle+iowait+irq+softirq; idle1=idle; rewind(fp); //second sleep(1); memset(buf,0,sizeof(buf)); cpu[0]=\'\\0\'; user=nice=sys=idle=iowait=irq=softirq=0; fgets(buf,sizeof(buf),fp); 29 owait,&irq,&softirq);

} int main( int argc, char *argv[]) {

pthread_t id;

int i,ret;

ret=pthread_create(&id,NULL,(void *) thread,NULL);

GtkWidget *window;

/*初始化整个GTK+程序,是每一个GTK+程序必不可少的部分*/

gtk_init(&argc, &argv);

/*这里生成了一个窗口构件——GtkWindow,GTK_WINDOW_TOPLEVEL包含窗口的标题栏和边框,同意用窗口管理器来进行管理*/

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_window_set_title(GTK_WINDOW(window), \"cpu\");

gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);

gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);

label = gtk_label_new (c); usage=(float)(all2-all1-(idle2-idle1))/(all2-all1)*100; return usage; all2=user+nice+sys+idle+iowait+irq+softirq; idle2=idle; 30

gtk_container_add (GTK_CONTAINER (window), label);

gtk_widget_show (label);

/*开始显示窗口*/

gtk_widget_show(window);

gtk_main();

return 0; } 求和:

#include #include #include #includechar s[1000]; GtkWidget *label;

void *thread(void * argc){

int i,j,sum;

for(i=1,sum=0,j=1;i

sleep(3);

sum=sum+j;

j+=1;

sprintf(s,\"%d\",sum); 31

gtk_label_set_text(GTK_LABEL(label),s);

}

}

int main( int argc, char *argv[]) {

pthread_t id;

int i,ret;

ret=pthread_create(&id,NULL,(void *) thread,NULL);

GtkWidget *vbox;

GtkWidget *window;

/*初始化整个GTK+程序,是每一个GTK+程序必不可少的部分*/

gtk_init(&argc, &argv);

/*这里生成了一个窗口构件——GtkWindow,GTK_WINDOW_TOPLEVEL包含窗口的标题栏和边框,同意用窗口管理器来进行管理*/

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_window_set_title(GTK_WINDOW(window), \"sum\");

gtk_window_set_default_size(GTK_WINDOW(window), 300, 200);

gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);

label = gtk_label_new (s);

gtk_container_add (GTK_CONTAINER (window), label);

//定义一个组装盒; 32

gtk_widget_show (label);

/*开始显示窗口*/

gtk_widget_show(window);

gtk_main();

return 0; } 8.2实验二

系统调用函数:

asmlinkage int sys_mycall(char* sourceFile,char* destFile) {

int source=sys_open(sourceFile,O_RDONLY,0);

int dest=sys_open(destFile,O_WRONLY|O_CREAT|O_TRUNC,0600);

char buf[4096];

mm_segment_t fs;

fs = get_fs();

set_fs(get_ds());

int i;

if(source>0 && dest>0)

{

do{

i=sys_read(source,buf,4096);

sys_write(dest,buf,i);

}while(i); 33

}

else {

printk(\"Error!\");

}

sys_close(source);

sys_close(dest);

set_fs(fs);

return 10; } 测试程序: #include #include #include

int main(int argc,char **argv) { int i=syscall(359,argv[1],argv[2]); printf(\"the %d\",i); return 1; } 8.3实验三

设备驱动:

#include #include #include 34 #include MODULE_LICENSE(\"GEL\"); MODULE_AUTHOR(\"wangzihao\"); #define DEV_NAME \"wzhdriver\" static ize_t GlobalRead(struct file *,char *,size_t,loff_t*); static ize_t GlobalWrite(struct file *,const char *,size_t,loff_t*); static int char_major = 0; static int GlobalData = 123456; struct file_operations globalchar_fops = {

.read = GlobalRead,

.write = GlobalWrite };

static int __init GlobalChar_init(void) {

int ret;

ret = register_chrdev(char_major,DEV_NAME,&globalchar_fops);

if(ret

{

printk(KERN_ALERT \"GlobalChar Reg Fail!\\n\");

} 35

else

{

printk(KERN_ALERT \"GloblaChar Reg Succe!\\n\");

char_major = ret;

printk(KERN_ALERT \"Major = %d\\n\",char_major);

}

return 0; } static void __exit GlobalChar_exit(void) {

unregister_chrdev(char_major,DEV_NAME);

printk(KERN_ALERT \"GlobalCharDev is dead now!\\n\");

return; } static ize_t GlobalRead(struct file *filp,char *buf,size_t len,loff_t *off) {

//GlobalData -= 1;

if (copy_to_user(buf,&GlobalData,sizeof(int)))

{

return -EFAULT;

}

return sizeof(int); 36 } static ize_t GlobalWrite(struct file *filp,const char *buf,size_t len,loff_t *off) {

if (copy_from_user(&GlobalData,buf,sizeof(int)))

{

return -EFAULT;

}

return sizeof(int); } module_init(GlobalChar_init); module_exit(GlobalChar_exit) 测试程序:

#include #include #include #include #define DEV_NAME \"/dev/wzhdriver\" int main() { int fd,num = 9999;

fd = open(DEV_NAME,O_RDWR,S_IRUSR | S_IWUSR); 37 if (fd

{

printf(\"Open Device Failed!\\n\");

return -1; } read(fd,&num,sizeof(int)); printf(\"The wzhdriver is %d\\n\",num); printf(\"input a number written to wzhdriver: \"); scanf(\"%d\",&num); write(fd,&num,sizeof(int)); read(fd,&num,sizeof(int)); printf(\"The char you input is %d\\n\",num);

close(fd); return 0; } 8.4实验四

#include #include #include #include #include 38 #include #include #include #include #include #include

char *txt_pid=NULL; char *txt_pid2=NULL;

char* meminfo_read(); /*内存使用情况*/ char* stat_read(); /*cpu使用率*/ char* procsum_read(); /*进程数*/

gint mem_refresh(gpointer mem_label); /*内存使用情况刷新*/ gint cpu_refresh(gpointer cpu_label);

/*cpu使用率刷新*/ gint proce_refresh(gpointer proce_label); /*进程数刷新*/

gboolean cpu_record_callback

(GtkWidget

*widget,GdkEventExpose *event,gpointer data);

39 gboolean mem_record_callback (GtkWidget *widget,GdkEventExpose *event,gpointer data);

void cpu_record_draw(GtkWidget *widget); void mem_record_draw(GtkWidget *widget);

static char temp_proce[50]; /*进程数*/ static char temp_cpu[50]; /*cpu使用率*/ static char temp_mem[50]; /*内存使用*/ static long idle,total; static int flag=0;

/*计算cpu时的数据*/ /*计算cpu使用率时启动程序的标志*/

/*计算单个进程cpu使用率时使用的标志*/ static int flag1=0;

static long mem_total; static long mem_free;

/*内存总大小*/ /*空闲内存*/ static long long ustime[32768]; /*前一次记录的用户态和核心态的总时间*/ static long mtime[32768]; /*前一次记录的时刻*/ static float cpu_used_percent=0;

/*cpu使用率*/ static int cpu_start_position=15; /*绘制cpu移动的线条*/ static float cpu_data[66]; static int flag2=0;

/*cpu历史数据*/

/*初始化cpu_data数组中数据的标志*/ static int cpu_first_data=0; /*第一个数据,既最早的数据,下一个要淘汰的数据 40 */ static float mem_data[66]; /*cpu历史数据*/ static int flag3=0;

/*初始化cpu_data数组中数据的标志*/ static int mem_first_data=0; /*第一个数据,既最早的数据,下一个要淘汰的数据*/ static int mem_start_position=15; /*绘制内存移动的线条*/

static GtkWidget *cpu_record_drawing_area;

static GtkWidget *mem_record_drawing_area;

static GtkWidget *notebook; /////////////////////////////////////////////

void kill_proc(void) {

char buf[20]; sprintf(buf,\"kill -9 %s\",txt_pid);

/*笔记本*/

system(buf); }

41 gint delete_event( GtkWidget *widget,

GdkEvent *event,

gpointer

data ) {

gtk_main_quit ();

return FALSE; }

char *get_cpu_name(char *_buf1) {

FILE * fp; int i=0; char *buf1=_buf1;

fp=fopen(\"/proc/cpuinfo\",\"r\"); for(i=0;i

char *get_cpu_type(char *_buf2) {

FILE * fp; int i=0; char *buf2=_buf2;

fp=fopen(\"/proc/cpuinfo\",\"r\"); for(i=0;i

char *get_cpu_f(char *_buf3) {

FILE * fp; int i=0; char *buf3=_buf3;

fp=fopen(\"/proc/cpuinfo\",\"r\"); for(i=0;i

char *get_cache_size(char *_buf4) {

FILE * fp; int i=0; char *buf4=_buf4;

fp=fopen(\"/proc/cpuinfo\",\"r\"); for(i=0;i

} fclose(fp); return buf4; char *get_system_type(char *_buf1) { FILE * fp;

int i=0;

//fp=fopen(\"/proc/version\",\"r\");

fp=fopen(\"/etc/iue\",\"r\");

fgets(buf1,256,fp);

for(i=0;i

buf1[i]=\'\\0\';

fclose(fp);

return buf1; }

char *get_system_version(char *_buf2) 46 { FILE * fp;

int i=0;

int j=0;

fp=fopen(\"/proc/version\",\"r\");

fgets(buf2,256,fp);

for(i=0,j=0;i

buf2+=i;

for(i=0;i

buf2[i+1]=\'\\0\';

fclose(fp);

return buf2; }

char *get_gcc_version(char *_buf3) { 47 FILE * fp;

int i=0;

int j=0;

fp=fopen(\"/proc/version\",\"r\");

fgets(buf3,256,fp);

for(i=0,j=0;i

buf3+=i;

for(i=0;i

buf3[i+1]=\'\\0\';

fclose(fp);

return buf3; }

void get_proc_info(GtkWidget *clist,int *p,int *q,int *r,int *s) {

DIR *dir; 48

struct dirent *ptr;

int i,j;

FILE *fp;

char buf[1024];

char _buffer[1024];

char *buffer=_buffer;

char *buffer2;

char proc_pid[1024];

char proc_name[1024];

char proc_stat[1024];

char proc_pri[1024];

char proc_takeup[1024];

char text[5][1024];

gchar *txt[5];

gtk_clist_set_column_title(GTK_CLIST(clist),0,\"PID\");

gtk_clist_set_column_title(GTK_CLIST(clist),1,\"名称\");

gtk_clist_set_column_title(GTK_CLIST(clist),2,\"状态\"); gtk_clist_set_column_title(GTK_CLIST(clist),3,\"优先级\"); gtk_clist_set_column_title(GTK_CLIST(clist),4,\"占用内存\");

gtk_clist_set_column_width(GTK_CLIST(clist),0,50);

gtk_clist_set_column_width(GTK_CLIST(clist),1,100); 49

第20篇:04操作系统

实训四 操作系统及驱动程序安装

教学目标

1.了解微型计算机操作系统安装的步骤和基础知识。

2.掌握微型计算机操作系统安装的过程。

主要教学内容

1.微型计算机操作系统安装的步骤和基础知识。

2.微型计算机操作系统安装的过程。

Windows XP光盘启动安装过程

Windows XP是Microsoft 继Windows 2000之后推出的新一代Windows 操作系统。Windows XP将Windows 2000的众多优点(安全性、易管理性和可靠性)与Windows 98和Windows Me的最佳特性(易于使用的用户界面)集成在一起的操作系统。

Windows XP在现有Windows 2000代码基础之上进行了很多改进,并且针对企业用户和家庭用户的不同需要提供了相应的版本:Windows XP Profeional和Windows XP Home Edition。

准备工作

准备好Windows XP Profeional 简体中文版安装光盘,并检查光驱是否支持自启动。 如果你想在安装过程中格式化C盘或D盘(建议安装过程中格式化C盘),请备份C盘或D盘有用的数据。

用光盘启动系统

启动系统并把光驱设为第一启动盘,保存设置并重启。将XP安装光盘放入光驱,重新启动电脑。

安装Windows XP Profeional

光盘自启动后,如无意外即可见到安装界面

全中文提示,“要现在安装Windows XP,请按ENTER”,按回车。

许可协议,这里没有选择的余地,按“F8”后显示现有磁盘分区和尚未划分的空间信息。 这里用“向下或向上”方向键选择安装系统所用的分区。

NTFS格式可节约磁盘空间提高安全性和减小磁盘碎片。

格式化C盘的警告。

开始复制文件,文件复制完后,安装程序开始初始化Windows配置。然后系统将会自动在15秒后重新启动。

区域和语言设置选用默认值就可以了。

输入你想好的姓名和单位,这里的姓名是你以后注册的用户名。

输入安装序列号。

安装程序自动为你创建又长又难看的计算机名称,自己可任意更改。 输入系统管理员密码。

设置好日期和时间。

开始安装,复制系统文件、安装网络系统。

让你选择网络安装所用的方式,选典型设置。

顺利安装完成。

操作系统教学工作总结
《操作系统教学工作总结.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题
点击下载本文文档