文档库 最新最全的文档下载
当前位置:文档库 › 操作系统课程的实验教学改革

操作系统课程的实验教学改革

操作系统课程的实验教学改革
操作系统课程的实验教学改革

操作系统课程的实验教学改革

操作系统是计算机科学与技术专业的一门非常重要的专业基础课程。操作系统课程内容丰富而且概念比较抽象,学生理解起来比较困难,因此,操作系统实验教学是课程学习过程中非常重要的环节。目前的操作系统实验教学内容单一、形式呆板,主要以验证、模拟为主,实验教学没有发挥其应有的作用。

现在,很多用人单位需要大量既懂得理论知识,又具有很强动手能力的综合性型人才[1]。如果学生在学校期间只学会了基础理论知识,而不具备任何实际经验,那么这些学生就不符合用人单位对毕业生的要求,因此,学习操作系统课程应当重视实验教学[2]。为了在实验教学中充分锻炼学生的动手能力、培养学生学习兴趣和增强学生的创新意识,该文在操作系统实验平台、实验内容、教学方式、考核方案等方面进行了探索,取得了较好的实践效果。

1操作系统实验教学现状

1.1操作系统实验教学重要性认识问题

计算机操作系统课程内容分两部分:一是操作系统理论知识学习;二是操作系统实验教学内容。操作系统实验教学主要培养学生的创新能力,加深对操作系统理论知识的理解。但是在实际的教学过程中,往往过多重视理论知识的学习,把实验教学当成次要课程,殊不知实验教学和理论教学同等重要[3],通过实验教学可以实现对理论知识的有效复习和加深理解。

1.2实验内容设置问题

操作系统从功能上可以分为四大模块:处理机管理模块、存储管理模块、设备管理模块、文件管理模块。实验教学应该紧紧围绕这些模块展开,但是由于受到实验平台的制约,有些实验难以开展,实验内容设置主要是一些模拟性、验证性实验,且主要围绕教材中的主要算法。

操作系统课程概念比较抽象,仅仅通过几个模拟性、验证性实验很难把这些抽象的概念直观地表现出来;另一方面,这种实验教学方案很难培养学生综合运用知识的能力和独立设计的能力,不易调动学生的积极性和提高学生的学习兴趣。

1.3实验平台选择问题

1.4实验教学方式问题

实验教学中,实验内容和实验方案均由教师制定,学生仅仅是按照实验步骤在规定的时间内进行演示或验证。实验内容和实验方案没有考虑到社会的需要,不利于学生将来所从事的工作。实验室主要在学院规定的实验时间内开放,这种局限性限制了学生创新能力的培养。

2实验教学改革

2.1合理选择实验教材

现代操作系统技术发展迅速,很多新的开发思想和理念不断出现,选择合适的实验教材对于实验教学非常关键。目前的操作系统教材大致分为两种类型[5]:第一类为国内自编实验教材,这类教材偏重于操作系统理论知识的讲解,实践性不强;第二类教材为国外具有权威性的英文原版实验教材,该类教材知识较新、实践性很强,但是由于普通院校学生的专业英语水平有限,难以得到全面实施。因此,我们采取一种灵活的方式来进行实验教学,针对本校学生的水平与特点,在充分利用教材的基础上,增加趣味性、可操作性和调整实验难度,保证学生的实验可完成性,并通过一些案例来提高学生的兴趣,使其在实验过程中获得成就感。

2.2科研和实验教学相结合

作为操作系统实验教学教师,必须及时更新自己的知识,不断学习,提高业务水平。多年来,课程梯队成员始终坚持收集、阅读与操作系统有关的各种资料和文献,安排课程梯队教师参加全国操作系统教学会议、solaris操作系统教学研讨会等,并将学习到的新技术用于实验教学中,使学生受益匪浅。

要挖掘每一位学生的自身特点,因材施教。针对学生的不同需求,教师可以在实验教学中补充难度不同的新技术,让学生都能找到自己的兴趣点。在授课过程中,有针对性地设置实验知识点,引导学生由浅入深地加深对操作系统原理知识的理解。

教师实践证明,将科研与实验教学相结合的方式,可以提高实验教学效果和教学质量。只有这样,我们才能培养出对社会有用的人才。

2.3实验课程设计

操作系统实验教学不仅能够加深学生对操作系统原理的理解,而且也能够培养学生的实际动手能力。操作系统实验教学主要是根据学生所学课程中的原理,设计某些算法实验并进行验证,以及熟悉操作系统平台的使用,能够将操作系统中的某些系统功能应用于实践中。

2.3.1实验平台选择

良好的实验平台是学生做好实验的前提,我们根据课程需要,选用linux操作系统作为实验教学平台,以提高学生编程能力以及使用、管理系统功能的能力[6]。

操作系统-Linux课程实验报告

实验、 Linux Ubuntu的安装、创建新的虚拟机VMWare 实验 Shell编程 1.实验目的与内容 通过本实验,了解Linux系统的shell机制,掌握简单的shell编程技巧。 编制简单的Shell程序,该程序在用户登录时自动执行,显示某些提示信息,如“Welcome to Linux”, 并在命令提示符中包含当前时间、当前目录和当前用户名等基本信息。 2.程序源代码清单 #include<> #include int main(){ printf("Hello Linux\n"); int pid; int state; int pfd[2]; pipe(pfd); if (fork()==0){ printf("In the grep progress\n"); dup2(pfd[0],0); close(pfd[0]); close(pfd[1]); execlp("grep","grep","sh",0); perror("exelp grep error"); } esle if(fork()==0){ printf("In the ps progress\n"); dup2(pfd[1],1); close(pfd[0]); close(pfd[1]); execlp("ps","ps","-ef",0); perror("execlp ps -ef"); }

close(pfd[1]); close(pfd[0]); wait(&state); wait(&state); } 实验内核模块 实验步骤: (1).编写内核模块 文件中主要包含init_clock(),exit_clock(),read_clock()三个函数。其中init_clock(),exit_clock()负责将模块从系统中加载或卸载,以及增加或删除模块在/proc中的入口。read_clock()负责产生/proc/clock被读时的动作。 (2).编译内核模块Makefile文件 # Makefile under ifneq ($(KERNELRELEASE),) #kbuild syntax. dependency relationshsip of files and target modules are listed here. obj-m := else PWD := $(shell pwd) KVER ?= $(shell uname -r) KDIR := /lib/modules/$(KVER)/build all: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: rm -rf .*.cmd *.o *. *.ko .tmp_versions *.symvers *.order endif 编译完成之后生成模块文件。 (3).内核模块源代码 #include #include #include #include #include #include #define MODULE #define MODULE_VERSION "" #define MODULE_NAME "clock" struct proc_dir_entry* my_clock; int read_clock(char* page, char** start, off_t off, int count, int* eof, void* data) { int len; struct timeval xtime;

操作系统课程试验

第3章处理机管理 7.1实验内容 处理机管理是操作系统中非常重要的部分。为深入理解进程管理部分的功能,设计几个调度算法,模拟实现处理机的调度。 7.2实验目的 在多道程序或多任务系统中,系统同时处于就绪状态的进程有若干个。也就是说能运行的进程数远远大于处理机个数。为了使系统中的各进程能有条不紊地运行,必须选择某种调度策略,以选择一进程占用处理机。要求学生设计一个模拟单处理机调度的算法,以巩固和加深处理机调度的概念。 7.3实验题目 7.3.1设计一个按先来先服务调度的算法 提示 (1)假设系统中有5个进程,每个进程由一个进程控制块(PCB)来标识。进程控制块内容如图7-1所示。 进程名即进程标识。 链接指针:按照进程到达系统的时间将处于就绪状态的进程连接成一个就绪队列。指针指出下一个到达进程的进程控制块首地址。最后一个进程的链指针为NULL。 估计运行时间:可由设计者指定一个时间值。 达到时间:进程创建时的系统时间或由用户指定。调度时,总是选择到达时间最早的进程。 进程状态:为简单起见,这里假定进程有两种状态:就绪和完成。并假定进程一创建就处于就绪状态,用R表示。当一个进程运行结束时,就将其置成完成状态,用C表示。 (2)设置一个队首指针head,用来指出最先进入系统的进程。各就绪进程通过链接指针连在一起。 (3)处理机调度时总是选择队首指针指向的进程投入运行。由于本实验是模拟实验,所以对被选中进程并不实际启动运行,而只是执行: 估计运行时间减1 用这个操作来模拟进程的一次运行,而且省去进程的现场保护和现场恢复工作。 (4)在所设计的程序中应有显示或打印语句,能显示或打印正运行进程的进程名,已运行是、还剩时间,就绪队列中的进程等。所有进程运行完成是,给出各进程的周转时间和平均周转时间。 先来先服务(FCFS)调度算法 /*源程序1.cpp,采用先来先无法法在Visual C++ 6.0下调试运行*/ /*数据结构定义及符号说明*/ #include #include

计算机操作系统实验课实验报告

实验报告 实验课程: 计算机操作系统学生姓名:XXX 学号:XXXX 专业班级:软件 2014年12月25日

目录 实验一熟悉Windows XP中的进程和线程.. 3实验二进程调度 (7) 实验三死锁避免—银行家算法的实现 (18) 实验四存储管理 (24)

实验一熟悉Windows XP中的进程和线程 一、实验名称 熟悉Windows XP中的进程和线程 二、实验目的 1、熟悉Windows中任务管理器的使用。 2、通过任务管理器识别操作系统中的进程和线程的相关信息。 3、掌握利用spy++.exe来察看Windows中各个任务的更详细信息。 三、实验结果分析 1、启动操作系统自带的任务管理器: 方法:直接按组合键Ctrl+Alt+Del,或者是在点击任务条上的“开始”“运行”,并输入“taskmgr.exe”。

2、调整任务管理器的“查看”中的相关设置,显示关于进程的以下各项信息,并 完成下表: 表一:统计进程的各项主要信息 3、启动办公软件“Word”,在任务管理器中找到该软件的登记,并将其结束掉。再

从任务管理器中分别找到下列程序:winlogon.exe、lsass.exe、csrss.exe、smss.exe,试着结束它们,观察到的反应是任务管理器无法结束进程, 原因是该系统是系统进程。 4、在任务管理器中找到进程“explorer.exe”,将之结束掉,并将桌面上你打开的所 有窗口最小化,看看你的计算机系统起来什么样的变化桌面上图标菜单都消失了、得到的结论explorer.exe是管理桌面图标的文件(说出explorer.exe进程的作用)。 5、运行“spy++.exe”应用软件,点击按钮“”,切换到进程显示栏上,查看进 程“explorer.exe”的各项信息,并填写下表: 进程:explorer.exe 中的各个线程

燕山大学操作系统课程设计说明书

燕山大学课程设计说明书课程设计名称:操作系统 题目:多道程序缓冲区协调操作 (模拟生产者消费者问题) 课题负责人: 学院:信息科学与工程学院 班级: 姓名: 学号: 课题开发日期:2014年1月13日 自评成绩: A

目录 1概述--------------------------------------------------------------------------------------3 1.1 目的--------------------------------------------------------3 1.2 主要完成的任务----------------------------------------------3 1.3 使用的开发工具、开发语言------------------------------------3 1.4 本软件解决的主要问题 ---------------------------------------4 2 设计的基本理念、概念和原理------------------------------------------------4 2.1 设计的基本理念----------------------------------------------4 2.2 基本概念----------------------------------------------------4 2.3 基本原理----------------------------------------------------5 3 总体设计----------------------------------------------------5 3.1基本的技术路线:面向对象--------------------------------------------------------5 3.2模块关系及总体流程-------------------------------------------5 4 详细设计----------------------------------------------------7 4.1 变量设计----------------------------------------------------7 4.2 线程的设计--------------------------------------------------7 4.3 button按钮的设计-------------------------------------------8 5编码设计----------------------------------------------------9 5.1开发环境----------------------------------------------------9 5.2注意事项----------------------------------------------------9 5.3主要代码设计------------------------------------------------9 PUTTER线程的设计---------------------------------------------------9 MOVER1线程的设计---------------------------------------------------10 GETTER1线程的设计--------------------------------------------------11 “开始”按钮的设计--------------------------------------------------12 “结束”按钮的设计--------------------------------------------------14 5.4解决的主要难题----------------------------------------------16 6测试出现的问题及其解决方案-------------------------------16 7工程总结----------------------------------------------------16 8参考文献----------------------------------------------------16

操作系统课程教学大纲

GDOU-B-11-213 《操作系统》课程教学大纲 课程简介 课程简介: 本课程主要讲述操作系统的原理,使学生不仅能够从系统内部了解操作系统的工作原理,而且可以学到软件设计的思想方法和技术方法。主要内容 包括:操作系统的概论;操作系统的作业管理;操作系统的文件管理原理; 操作系统的进程概念、进程调度和控制、进程互斥和同步等;操作系统的各 种存储管理方式以及存储保护和共享;操作系统的设备管理一般原理。其次 在实验环节介绍实例操作系统的若干实现技术,如:Windows操作系统、Linux 操作系统等。 课程大纲 一、课程的性质与任务: 本课程计算机学科的软件工程专业中是一门专业方向课,也可以面向计算机类的其它专业。其任务是讲授操作系统的原理,从系统内部了解操作系统的工作原理以级软件设计的思想方法和技术方法;同时介绍实例操作系统的若干实现技术。 二、课程的目的与基本要求: 通过本课程的教学使学生能够从操作系统内部获知操作系统的工作原理,理解操作系统几大管理模块的分工和管理思想,学习设计系统软件的思想方法,通过实验环节掌握操作系统实例的若干实现技术,如:Windows操作系统、Linux操作系统等。 三、面向专业: 软件工程、计算机类 四、先修课程: 计算系统基础,C/C++语言程序设计,计算机组成结构,数据结构。 五、本课程与其它课程的联系:

本课程以计算系统基础,C/C++语言程序设计,计算机组成结构,数据结构等为先修课程,在学习本课程之前要求学生掌握先修课程的知识,在学习本课程的过程中能将数据结构、计算机组成结构等课程的知识融入到本课程之中。 六、教学内容安排、要求、学时分配及作业: 第一章:操作系统概论(2学时) 第一节:操作系统的地位及作用 操作系统的地位(A);操作系统的作用(A)。 第二节:操作系统的功能 单道系统与多道系统(B);操作系统的功能(A)。 第三节:操作系统的分类 批处理操作系统(B);分时操作系统(B);实时操作系统(B)。 第二章:作业管理(2学时) 第一节:作业的组织 作业与作业步(B);作业的分类(B);作业的状态(B);作业控制块(B)。 第二节:操作系统的用户接口 程序级接口(A);作业控制级接口(A)。 第三节:作业调度 作业调度程序的功能(B);作业调度策略(B);作业调度算法(B)。 第四节:作业控制 脱机控制方式(A);联机控制方式(A)。 第三章:文件管理(8学时) 第一节:文件与文件系统(1学时) 文件(B);文件的种类(B);文件系统及其功能(A)。 第二节:文件的组织结构(1学时) 文件的逻辑结构(A);文件的物理结构(A)。 第三节:文件目录结构(1学时) 文件说明(B);文件目录的结构(A);当前目录和目录文件(B)。 第四节:文件存取与操作(1学时) 文件的存取方法(A);文件存储设备(C);活动文件(B);文件操作(A)。 第五节:文件存储空间的管理(2学时) 空闲块表(A);空闲区表(A);空闲块链(A);位示图(A)。 第六节:文件的共享和保护(2学时)

操作系统实验报告心得体会

操作系统实验报告心得体会 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。 1、网络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在网上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到文件系统的详细解析。这些都能在网上找到。也因为这样,整个课程设计下来,我浏览的相关网页已经超过了100个(不完全统计)。当然网上的东西很乱很杂,自己要能够学会筛选。 不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,

慢慢研究,最后才能事半功倍。 2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再好不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。 3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。 4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域

操作系统课程设计实验报告

河北大学工商学院 课程设计 题目:操作系统课程设计 学部信息学部 学科门类电气信息 专业计算机 学号2011482370 姓名耿雪涛 指导教师朱亮 2013 年6月19日

主要内容 一、设计目的 通过模拟操作系统的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。 二、设计思想 实现一个模拟操作系统,使用VB、VC、CB等windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。 设计模板如下图: 注:本人主要涉及设备管理模块

三、设计要求 设备管理主要包括设备的分配和回收。 ⑴模拟系统中有A、B、C三种独占型设备,A设备1个,B设备2个,C设备2个。 ⑵采用死锁的预防方法来处理申请独占设备可能造成的死锁。 ⑶屏幕显示 注:屏幕显示要求包括:每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。 设备管理模块详细设计 一、设备管理的任务 I/O设备是按照用户的请求,控制设备的各种操作,用于完成I/O 设备与内存之间的数据交换(包括设备的分配与回收,设备的驱动管理等),最终完成用户的I/O请求,并且I/O设备为用户提供了使用外部设备的接口,可以满足用户的需求。 二、设备管理函数的详细描述 1、检查设备是否可用(主要代码) public bool JudgeDevice(DeviceType type) { bool str = false; switch (type) { case DeviceType.a: {

《操作系统原理》课程教学大纲

附件1: 《操作系统原理》课程教学大纲 制定(修订)人: 李灿平、郭亚莎制定(修订)时间: 2006年 7 月所在单位: 信息工程学院 一、课程基本信息

三、教学内容及基本要求 第一章绪论 本章简要介绍操作系统的基本概念、功能、分类以及发展历史。同时讨论研究操作系统的几种观点。 §1.1 操作系统的概念 本节介绍操作系统的基本概念,什么是操作系统以及操作系统与硬件软件的关系。 本节重点:操作系统与硬件软件的关系。 本节要求学生理解什么是操作系统,掌握操作系统与硬件软件的关系。 §1.2 操作系统的历史 本节按器件工艺介绍操作系统的发展历史。 本节重点:多道程序系统的概念。 本节要求学生了解操作系统的发展历史,理解多道程序系统概念。 §1.3 操作系统的基本类型 本节介绍常见的操作系统的类型、特点及适用的对象。 本节重点:批处理操作系统、分时系统、实时系统。 本节要求学生掌握上述三大操作系统的特点及适用对象。 §1.4 操作系统功能 本节简单介绍操作系统的五个功能。处理机管理,存储管理,设备管理,信息管理(文件系统管理)和用户接口。 本节要求学生了解上述功能。 §1.5 计算机硬件简介 本节简单介绍计算机硬件系统。 本节要求学生自修。

§1.6 算法的描述 本节介绍操作系统管理计算机系统的有关过程所用的描述算法。 本节要求学生掌握本书所采用的描述算法。 §1.7 研究操作系统的几种观点 本节介绍研究操作系统的几种观点。系统管理的观点,用户界面观点和进程管理观点。 本节要求学生了解上述三种观点。 第二章操作系统用户界面 本章主要讨论操作系统的两个用户接口,并以UNIX系统为例,简单介绍用户接口的使用操作方法。 §2.1 作业的基本概念 本节介绍作业的基本概念,什么是作业及作业组织(结构)。 本节重点:作业的基本概念。 本节要求学生掌握作业的基本概念,了解作业的组织。 §2.2 作业的建立 本节介绍作业的几种输入方式和作业的建立过程。 本节重点:联机输入方式和Spooling系统,作业控制块PCB和作业的四个阶段。 本节要求学生了解作业的几种输入方式,理解Spooling系统,掌握作业建立的过程内容。理解作业的四个基本阶段。提交、后备、执行以及完成阶段。 §2.3 命令控制界面接口 本节介绍操作系统为用户提供的命令接口界面。介绍命令接口的两种使用方式。讨论联机方式下操作命令的分类。 本节重点:命令接口的使用方式。 本节要求学生理解命令接口的作用和使用方式。了解联机方式下操作命令的分类。 §2.4 系统调用 本节介绍操作系统提供给编程人员的唯一接口,系统调用。同时讨论系统调用的分类。 本节重点:编程人员通过系统调用使用操作系统内核所提供的各种功能和系统调用的处理过程。 本节要求学生了解系统调用的分类、理解系统调用的功能、掌握系统调用的处理过程。 §2.5 UNIX用户界面 本节简单介绍UNIX系统的发展历史和特点以及UNIX系统结构。同时讨论UNIX操作命令和系统调用的分类功能和使用方法。 本节重点:UNIX系统的特点。 本节要求学生了解UNIX系统的发展史,掌握UNIX系统的特点,理解UNIX系统操作命令和系统调用的功能。 第三章进程管理 本章详细介绍进程和线程管理的有关概念和技术。 §3.1 进程的概念 本节介绍进程的基本概念。通过程序的并发执行,引出进程具有并发性特征的概念。同时讨论进程的各式各样的定义以及作业和进程的关系。 本节重点:进程的特征。 本节要求学生了解程序的并发执行,掌握进程的特征。 §3.2 进程的描述 本节介绍进程的静态描述以及进程上下文结构。 本节重点,进程的上下文结构。 本节要求学生理解进程的静态描述内容,掌握进程控制块PCB的作用和进程上下文结构。

操作系统实验报告

操作系统实验报告 实验名称: 系统的引导 所在班级: 指导老师: 老师 实验日期: 2014年3 月29 日

一、实验目的 ◆熟悉hit-oslab实验环境; ◆建立对操作系统引导过程的深入认识; ◆掌握操作系统的基本开发过程; ◆能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。 二、实验容 1. 阅读《Linux核完全注释》的第6章引导启动程序,对计算机和Linux 0.11的引导过程进行初步的了解。 2. 按照下面的要求改写0.11的引导程序bootsect.s。 3. 有兴趣同学可以做做进入保护模式前的设置程序setup.s。 4. 修改build.c,以便可以使用make BootImage命令 5. 改写bootsect.s主要完成如下功能: bootsect.s能在屏幕上打印一段提示信息XXX is booting...,其中XXX是你给自己的操作系统起的名字,例如LZJos、Sunix等。 6. 改写setup.s主要完成如下功能: bootsect.s能完成setup.s的载入,并跳转到setup.s开始地址执行。而setup.s 向屏幕输出一行"Now we are in SETUP"。setup.s能获取至少一个基本的硬件参数(如存参数、显卡参数、硬盘参数等),将其存放在存的特定地址,并输出到屏幕上。setup.s不再加载Linux核,保持上述信息显示在屏幕上即可。 三、实验环境

本实验使用的系统是windows系统或者是Linux系统,需要的材料是osexp。 四、实验步骤 1. 修改bootsect.s中的提示信息及相关代码; 到osexp\Linux-0.11\boot目录下会看到图1所示的三个文件夹,使用UtraEdit 打开该文件。将文档中的98行的mov cx,#24修改为mov cx,#80。同时修改文档中的第246行为图2所示的情形。 图1图2 图3 2. 在目录linux-0.11\boot下,分别用命令as86 -0 -a -o bootsect.obootsect.s和 ld86 -0 -s -obootsectbootsect.o编译和bootsect.s,生成bootsect文件; 在\osexp目录下点击MinGW32.bat依此输入下面的命令: cd linux-0.11 cd boot as86 -0 -a -o bootsect.obootsect.s ld86 -0 -s -o bootsectbootsect.o

《计算机操作系统(第3版)》教学大纲

操作系统 课程名称(英文):Operating System 适用专业:信息管理与信息系统、电子商务、信息安全 课程性质:专业基础课,必修 学时:56学时,其中讲课:48学时,上机:8学时,实验:0学时 先修课程:C语言程序设计、数据结构、信息系统基础 一、本课程的地位、作用与任务 通过本课程的学习,使学生掌握现代操作系统的基本原理及设计技术,了解操作系统的运行环境及实现方法,并运用操作系统的理论和方法分析现有的操作系统。使学生在操作系统应用领域具有较强的分析问题和解决问题的能力,为将来系统研究和软件开发打下坚实的基础。 二、内容、学时及基本要求

三、说明 1.本大纲意在掌握了操作系统基本原理的基础上,加强对现代操作系统新技术和新方法的介绍,以使课程适应社会的需要。本课程课内实验8学时,并另开设操作系统课程设计1周。 2.课程的教学要求层次: 教学内容按熟练掌握、掌握、理解、了解几个层次要求。在教学过程中,应注意理论联系实际、注重与本专业的其他学科知识的衔接与配合。加强对学生分析问题和解决问题能力的培养。 3.本大纲的适用范围: 本大纲适用信息管理与信息系统、电子商务、信息安全专业的课程。 4.教学中应注意的问题: 该课程教学中应注意吸收新知识、新观念,尤其要密切注意操作系统发展的新动向。 5.教学方法: 该课程的教学方法应以讲授法为主,案例教学、研究讨论教学为辅。 6.考核方式:期末采取闭卷考试方式,期末考试成绩占总评成绩70%、平时成绩占总评成绩20%、实验成绩占总评成绩10%。 7.上机学时分配:本实验Linux环境下进行,皆在培养学生理论联系实际能力和操作

操作系统实验报告

操作系统实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

许昌学院 《操作系统》实验报告书学号: 姓名:闫金科 班级:14物联网工程 成绩: 2016年02月

实验一Linux的安装与配置 一、实验目的 1.熟悉Linux系统的基本概念,比如Linux发行版、宏内核、微内核等。 2.掌握Linux系统的安装和配置过程,初步掌握Linux系统的启动和退出方 法。 3.熟悉Linux系统的文件系统结构,了解Linux常用文件夹的作用。 二、实验内容 1.从网络上下载VMware软件和两个不同Linux发行版镜像文件。 2.安装VMware虚拟机软件。 3.在VMware中利用第一个镜像文件完成第一个Linux的安装,期间完成网络 信息、用户信息、文件系统和硬盘分区等配置。 4.在VMware中利用第二个镜像文件完成第二个Linux的安装,并通过LILO或 者GRUB解决两个操作系统选择启动的问题。 5.启动Linux系统,打开文件浏览器查看Linux系统的文件结构,并列举出 Linux常用目录的作用。 三、实验过程及结果 1、启动VMware,点击新建Linux虚拟机,如图所示: 2、点击下一步,选择经典型,点击下一步在选择客户机页面选择 Linux,版本选择RedHatEnterpriseLinux5,如图所示: 3、点击下一步创建虚拟机名称以及所要安装的位置,如图所示: 4、点击下一步,磁盘容量填一个合适大小,此处选择默认值大小 10GB,如图所示: 5、点击完成,点击编辑虚拟机设置,选择硬件选项中的CD-ROM (IDE...)选项,在右侧连接中选择“使用ISO镜像(I)”选项,点 击“浏览”,找到Linux的镜像文件,如图所示:

操作系统-Linux课程实验报告

实验 1.1、1.2 Linux Ubuntu的安装、创建新的虚拟机VMWare

实验1.3 Shell编程 1.实验目的与容 通过本实验,了解Linux系统的shell机制,掌握简单的shell编程技巧。 编制简单的Shell程序,该程序在用户登录时自动执行,显示某些提示信息,如“Welcome to Linux”, 并在命令提示符中包含当前时间、当前目录和当前用户名等基本信息。 2.程序源代码清单 #include #include int main(){ printf("Hello Linux\n"); int pid; int state; int pfd[2]; pipe(pfd); if (fork()==0){ printf("In the grep progress\n"); dup2(pfd[0],0); close(pfd[0]); close(pfd[1]); execlp("grep","grep","sh",0); perror("exelp grep error");

} esle if(fork()==0){ printf("In the ps progress\n"); dup2(pfd[1],1); close(pfd[0]); close(pfd[1]); execlp("ps","ps","-ef",0); perror("execlp ps -ef"); } close(pfd[1]); close(pfd[0]); wait(&state); wait(&state); } 实验2.3 核模块 实验步骤: (1).编写核模块 文件中主要包含init_clock(),exit_clock(),read_clock()三个函数。其中init_clock(),exit_clock()负责将模块从系统中加载或卸载,以及增加或删除模块在/proc中的入口。read_clock()负责产生/proc/clock被读时的动作。 (2).编译核模块Makefile文件 # Makefile under 2.6.25

操作系统实验报告

操作系统教程 实 验 指 导 书 姓名: 学号: 班级:软124班 指导老师:郭玉华 2014年12月10日

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序: E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : 有可能是因为DOS下路径的问题 (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 因为程序是个死循环程序 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环: 屏蔽j循环: _______________________________________________________________________________调整循环变量i的循环次数:

《操作系统》课程简介.doc

《操作系统》课程简介 一、课程简介 操作系统(Operating System)是当代计算机软件系统的核心,是计算机系统的基础和支撑,它管理和控制着计算机系统中的所有软、硬件资源,可以说操作系统是计算机系统的灵魂。操作系统课程是计算机专业学生必须学习和掌握的基础课程,是进行系统软件开发的理论基础,也是计算机专业的一门理论性和实践性并重的核心主干课程。 二、课程性质 本课程是一门技术性、实践性很强的课程,又是理论与实践紧密结合的课程,既注重操作系统基础理论,又着眼培养学生解决实际问题能力。本课程将学习操作系统的基本原理、基本方法及其实现技术,包括处理器管理、存储管理、文件管理、设备管理以及进程的互斥、同步、通信与死锁等内容。使学生了解当今几个主流操作系统,了解操作系统的设计方法和并发程序的设计,具备较强的软件设计能力和较严密的思维能力。 三、教学目的 1、使学生全面地了解和掌握现代计算机操作系统的基本原理,从资源管理的角度领会操作系统的功能和实现技术。 2、使学生建立起以操作系统为中心的对计算机系统整体性和系统级的认识。 3、使学生系统科学地受到分析问题和解决问题的训练,提高运用理论知识开发实际操作系统的基本能力。

《操作系统》教学大纲第1章:引论 (一)知识要点 1、计算机硬件结构 2、操作系统介绍 3、操作系统的发展历程 4、操作系统的类型 5、操作系统的特征 6、操作系统结构设计 (二)能力重点 1、操作系统的定义、分类 2、操作系统的主要功能 3、操作系统的基本特征 第2章:进程和线程 (一)知识要点 1、进程的概念 2、进程的状态和组成 3、进程管理 4、线程的概念 5、进程的同步和通信 6、经典进程同步问题 7、进程通信 (二)能力重点 1、进程的定义、进程的状态 2、进程的创建、撤销、阻塞、唤醒等原语 3、线程和进程的区别,线程的特征 4、经典进程同步问题的解决方法

操作系统实验报告

操作系统实验报告 银行家算法 班级:计算机()班 姓名:李君益 学号:(号) 提交日期: 指导老师: 林穗 一、设计题目 加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。 要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的防止和避免死锁的发生。 二、设计要求

内容: 编制银行家算法通用程序,并检测思考题中所给状态的安全性。 要求: (1)下列状态是否安全?(三个进程共享个同类资源) 进程已分配资源数最大需求数 (状态) (状态) (2)考虑下列系统状态 分配矩阵最大需求矩阵可用资源矩阵 问系统是否安全?若安全就给出所有的安全序列。若进程请求(),可否立即分配? 三、设计分析 一.关于操作系统的死锁 .死锁的产生 计算机系统中有许多独占资源,他们在任一时刻只能被一个进程使用,如磁带机,绘图仪等独占型外围设备,或进程表,临界区等软件资源。两个进程同时向一台打印机输出将导致一片混乱,两个进程同时进入临界区将导致数据库错误乃至程序崩溃。正因为这些原因,所有操作系统都具有授权一个进程独立访问某一辞源的能力。一个进程需要使用独占型资源必须通过以下的次序: ●申请资源 ●使用资源 ●归还资源 若申请施资源不可用,则申请进程进入等待状态。对于不同的独占资源,进程等待的方式是有差别的,如申请打印机资源、临界区资源时,申请失败将一位这阻塞申请进程;而申请打开文件文件资源时,申请失败将返回一个错误码,由申请进程等待一段时间之后重试。只得指出的是,不同的操作系统对于同一种资源采取的等待方式也是有差异的。 在许多应用中,一个进程需要独占访问多个资源,而操作系统允许多个进程并发执行共享系统资源时,此时可能会出现进程永远被阻塞的现象。这种现象称为“死锁”。 2.死锁的定义 一组进程处于死锁状态是指:如果在一个进程集合中的每个进程都在等待只能由该集合中的其他一个进程才能引发的时间,则称一组进程或系统此时发生了死锁。 .死锁的防止 .死锁产生的条件: ●互斥条件

操作系统课程实验

《操作系统》课程实验 实验1:安装Linux系统(4学时) 目的:1.学会在操作系统安装之前,根据硬件配置情况,制订安装计划。 2.学会在安装多操作系统前,利用硬盘分区工具(如PQMagic)为Linux准备分区。 3.学会Linux操作系统的安装步骤和简单配置方法。 4.学会Linux系统的启动、关闭步骤,初步熟悉Linux系统的用户界面。 内容:1.安装并使用硬盘分区工具(如PQMagic),为Linux准备好分区。 2.安装Linux系统(如红旗Linux桌面版)。 3.配置Linux系统运行环境。 4.正确地启动、关闭系统。 5.对图形界面进行一般操作。 要求:1.制订安装计划。 2.如果在机器上已安装了Windows系统,而且没有给Linux预备硬盘分区,则安装硬盘分区工具(如PQMagic),运行它,为Linux划分出一块“未分配”分区。 3.在光驱中放入Linux系统安装盘,启动系统。按照屏幕提示,选择/输入相关参数,启动安装过程。 4.安装成功后,退出系统,取出安装盘。重新开机,登录Linux系统。 5.对Linux系统进行配置,如显示设备、打印机等。 6.利用鼠标对图形界面进行操作。 说明:1.本实验应在教师的授权和指导下进行,不可擅自操作,否则可能造成原有系统被破坏。 2.如条件不允许每个学生亲自安装,可采用分组进行安装或课堂演示安装的方式。 实验2:Linux 应用及shell编程(4学时) 目的:1.掌握Linux一般命令格式和常用命令。 2.学会使用vi编辑器建立、编辑文本文件。

3.了解shell的作用和主要分类。 4.学会bash脚本的建立和执行方式。 5.理解bash的基本语法。 6.学会编写简单的shell脚本。 内容:1.正确地登录和退出系统。 2.熟悉使用date,cal等常用命令。 3.进入和退出vi。利用文本插入方式建立一个文件。 4.学会用gcc编译器编译C程序。 5.建立shell脚本并执行它。 6.学会使用shell变量和位置参数、环境变量。 7.学会使用bash的特殊字符和一般控制结构编写shell脚本。 要求:1.登录进入系统,修改个人密码。 2.使用简单命令:date,cal,who,echo,clear等,了解Linux命令格式。 3.进入vi。建立一个文件,如file.c。进入插入方式,输入一个C语言程序的各行内容,故意制造几处错误。最后,将该文件存盘。回到shell状态下。 4.运行gcc file.c -o myfile,编译该文件,会发现错误提示。理解其含义。 5.利用vi建立一个脚本文件,其中包括date,cal,pwd,ls等常用命令。然后以不同方式执行该脚本。 6.对主教材第2章中的适当例题进行编辑,然后执行。从而体会通配符、引号、输入输出重定向符、成组命令的作用;能正确使用自定义变量、位置参数、环境变量、输入/输出命令;能利用if语句、while语句、for语句和函数编写简单的脚本。 实验3:进程管理(4学时) 目的:1.加深对进程概念的理解,明确它与程序的区别,突出理解其动态性特征。 2.学会使用ps命令观察进程的状态,并分析进程族系关系。 3.学会使用系统调用对进程进行控制。

操作系统实验报告.

学生学号0121210680225 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称操作系统 开课学院计算机科学与技术学院 指导老师姓名刘军 学生姓名李安福 学生专业班级软件sy1201 2014 — 2015 学年第一学期

《操作系统》实验教学大纲 课程编号: 课程名称:操作系统/Operating System 实验总学时数:12学时 适应专业:计算机科学与技术、软件工程 承担实验室:计算机科学与技术学院实验中心 一、实验教学的目的和任务 通过实验掌握Linux系统下常用键盘命令、系统调用、SHELL编程、后台批处理和C程序开发调试手段等基本用法。 二、实验项目及学时分配 序号实验项目名称实验学时实验类型开出要求 01 Linux键盘命令和vi 2 设计必开 02 Linux下C编程 2 设计必开 03 SHELL编程和后台批处理 2 设计必开 04 Linux系统调用(time) 2 设计必开 05 Linux进程控制(fork) 4 设计必开 三、每项实验的内容和要求: 1、Linux键盘命令和vi 要求:掌握Linux系统键盘命令的使用方法。 内容:见教材p4, p9, p40, p49-53, p89, p100 2、Linux下的C编程 要求:掌握vi编辑器的使用方法;掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。 内容:设计、编辑、编译、连接以及运行一个C程序,其中包含键盘输入和屏幕输出语句。 3、SHELL编程和后台批处理 要求:掌握Linux系统的SHELL编程方法和后台批处理方法。 内容:(1) 将编译、连接以及运行上述C程序各步骤用SHELL程序批处理完成,前台运行。 (2) 将上面SHELLL程序后台运行。观察原C程序运行时输入输出情况。 (3) 修改调试上面SHELL程序和C程序,使得在后台批处理方式下,原键 盘输入内容可以键盘命令行位置参数方式交互式输入替代原键盘输入内容, 然后输出到屏幕。 4、Linux系统调用使用方法。

相关文档
相关文档 最新文档