linux课程报告论文,Linux操作系统课程教学的不足及其教学体系构建,毕业论文,课程设计,PPT,开发报告,外文翻译...

一、Linux人才需求层次.

市场对Linux操作系统人才需求分为两大类:基于Linux操作系统的开发者和Linux操作系统管理员.市场对两类群体的需求是不完全一样的,他们所需要掌握的技术范围和知识架构也是不一样的.高校的教学并非是使每个学生都成为操作系统的开发者,更多的是基于操作系统的使用者,认识到这种金字塔式的人才结构,就需要针对不同的教学对象研究其知识结构的构建、课程知识点的关联和教学内容的侧重.另外,Linux操作系统的课程内容是原理与应用的交叉,目的在应用,这类应用知识在面向职业的需求中得到极大重视,是实用型人才培养中很重要的一环.

二、软件工程类Linux操作系统课程教学存在的问题.

(一)教学内容简单,不符合软件工程人才培养目标.

大部分高职高专院校的Linux操作系统课程主要讲授Linux操作系统的使用,主要包括Linux操作系统的管理和维护.而软件工程类人才培养目标要求进一步深化学生的知识结构和编程技能,培养学生利用Linux操作系统提供的支持进行程序设计和应用开发的能力,主要包括系统调用、应用接口、程序设计等.

(二)缺乏合适的教学组织形式,与软件工程人才培养模式不吻合目前Linux操作系统教学课程内容多,知识点分散,缺乏合适的教学组织形式,不便于学生理解和掌握,没有真正做到项目为导向,案例驱动的软件工程人才培养模式.

(三)重理论,轻实践目前Linux操作系统教学偏重于理论和知识的讲授,学生的学习与实践相脱节,编程能力得不到培养,不能很好地利用理论解决实际问题.

(四)教学方法单一.

目前,课程的教学方法比较单一,教学手段不灵活,还是满堂灌,缺乏启发、提问、交流、软件演示等互动式课堂教学方法.

三、强化编程的软件工程类Linux操作系统教学体系.

大学操作系统课程设计linux代码完善,(30%,125行)实现文件系统的系统调用(creat,open,read,write,close和unlink,在syscall.h文件中列出)。你可以在UserProcess.java中看到处理halt系统调用的代码;最好把你的新的系统调用也放在这儿。注意:你不是实现一个文件系统,而是使用户进程能够访问我们已经实现好的文件系统。 我们已经提供了从用户程序调用系统调用的必要的汇编代码(看一下start.s;SYSCALLSTUB宏会生成每一个系统调用的汇编代码)。 你需要使Nachos内核“防弹”,不受用户程序错误的破坏,即用户程序无论如何都不能破坏操作系统(除了明确调用halt())。换句话说,你必须保证用户程序不能给内核传递会导致内核破坏自己或其他进程内部状态的假参数。同时,你必须采取措施保证,当一个用户进程做任何非法的动作时,如企图访问未映射的内存或跳转到错误的地址等,该进程能够被彻底杀死,它的资源能够被释放。 你必须清楚halt()系统调用只能被“根”进程调用,即系统的第一个进程。如果另外一个进程企图调用halt(),你应该忽略该调用并且立即返回。 由于传递给系统调用的内存地址参数是虚拟地址,你需要使用UserProcess.readVirtualMemory和UserProcess.writeVirtualMemory在用户进程和内核之间传递内存。 用户进程在虚拟地址空间中使用null-terminated 字符串的形式存储文件名和其他字符串参数。传递给系统调用的字符串参数的最大长度为256字节。 当一个系统调用想给用户反馈错误信息时,它应该返回-1(而不是在内核内抛出一个异常!)。否则,系统调用应该返回在test/syscall.h文件中列出的合适的值。 当任何进程开始时,它的文件描述符0和1必须是指向标准输入和标准输出。使用UserKernel.console.openForReading()和UserKernel.console.openForWriting()会很容易做到这点。用户进程可以关闭这些描述符,就像通过open()返回文件描述符一样。 我们还提供了UNIX文件系统的stub文件系统接口;该接口是在machine/FileSystem.java中给出的。你可以通过静态成员ThreadedKernel.fileSystem访问该stub filesystem。(注意:由于UserKernel继承于ThreadedKernel,你仍然可以访问这个成员)。该文件系统可以访问Nachos下的test文件夹,当你想支持exec系统调用时,这会非常有用。你不需要实现任何文件系统功能。你应该仔细检查FileSystem和StubFileSystem的说明书,这样你就可以确定你的系统调用应该提供什么功能,什么功能是由文件系统处理的。 不要实现任何类型的文件锁;这是文件系统的职责。 如果ThreadedKernel.fileSystem.open()返回non-null OpenFile,用户进程就可以访问指定的文件;否则,你应该报错。同样地,如果多个进程企图同时访问同一个文件,你不用关心具体发生了什么,该stubFileSystem会帮你处理这些细节。 你的实现代码应该支持一个进程至少可以并发的打开16个文件。进程打开的每一个文件应该拥有唯一的文件描述符。(具体细节见syscall.h)。文件描述符应该是一个非负整数,该整数是进程当前打开的文(30%,125行)实现文件系统的系统调用(creat,open,read,write,close和unlink,在syscall.h文件中列出)。你可以在UserProcess.java中看到处理halt系统调用的代码;最好把你的新的系统调用也放在这儿。注意:你不是实现一个文件系统,而是使用户进程能够访问我们已经实现好的文件系统。 我们已经提供了从用户程序调用系统调用的必要的汇编代码(看一下start.s;SYSCALLSTUB宏会生成每一个系统调用的汇编代码)。 你需要使Nachos内核“防弹”,不受用户程序错误的破坏,即用户程序无论如何都不能破坏操作系统(除了明确调用halt())。换句话说,你必须保证用户程序不能给内核传递会导致内核破坏自己或其他进程内部状态的假参数。同时,你必须采取措施保证,当一个用户进程做任何非法的动作时,如企图访问未映射的内存或跳转到错误的地址等,该进程能够被彻底杀死,它的资源能够被释放。 你必须清楚halt()系统调用只能被“根”进程调用,即系统的第一个进程。如果另外一个进程企图调用halt(),你应该忽略该调用并且立即返回。 由于传递给系统调用的内存地址参数是虚拟地址,你需要使用UserProcess.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值