1 GeekOS 介绍课件.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 GeekOS 介绍课件

Ch1 GeekOS教学操作系统概论 沈峰 shenfeng@163.com 1.1 教学操作系统介绍 两大类 1、针对RISC结构MIPS处理器 Nachos:采用MIPS R2/3000的指令集,能模拟主存、中断、网络以及磁盘系统等,美国加州大学伯克利分校采用该操作系统作为课程设计平台。 若学生使用Windows或Linux 开发环境的话,都需要使用交叉编译器才能把代码编译成MIPS相应的机器代码。 2、针对CISC结构的Intel x86通用处理器 MINIX:是Andrew S. Tanenbaum(AST)于1987年开发的、免费的、是一个比较完整的操作系统包括虚拟内存管理、文件系统、设备驱动程序、网络和用户态程序等,由两万多行代码组成。对于教学有点过于庞大和复杂,而且由于它已经实现了操作系统的全部基本功能,没有留下合适的练习让学生自己完成 GeekOS:基于X86的,由美国马理兰大学的教师开发, GeekOS主要用于操作系统课程设计,目的是使学生能够实际动手参与到一个操作系统的开发工作中。学生可以在Linux或Unix环境或/windows下使用Cygwin工具进行开发,且其针对进程、文件系统、存储管理等操作系统核心内容分别设计了7个难度逐渐增加的项目供教师选择 。 出于教学目的,这个系统内核设计简单,却又兼备实用性,它可以运行在真正的X86 PC硬件平台。 1.2 GeekOS概述 GeekOS由一个基本的操作系统内核作为基础,已经实现如下功能: 操作系统与硬件之间的所有必备接口 系统引导、实模式到保护模式的转换、中断调用及异常处理、 基于段式的内存管理、 内核进程以及FIFO进程调度算法 基本的输入输出:键盘作为输入设备,显示器作为输出设备 只读文件系统PFAT:用于存放用户程序 1.2.2 GeekOS的存储器管理 1、分页分配方式 系统中所有存储器都分成大小相等的块,称作页。 在X86系统中,页的大小是4KB。 页的分配与回收函数 Alloc_Page()、FreePage(),在include/geekos/mem.h中 2、堆分配方式 堆分配提供不同大小存储块的分配,使用函数Malloc()和Free()进行存储块的分配和回收 3、系统初始化内存布局 系统初始化时由Init_Mem函数将内存划分为若干部分。 1.2.3 GeekOS支持的设备 1、文本显示器 支持显示文本信息,函数在定义/include/geekos/screen.h文件中 Print():它是标准C语言函数printf()的子集,功能是将文本信息输出到显示器。 其它函数如Put_Char()和Put_Buf():输出单个字符和字符串 2、键盘 Wait_For_Key()函数:从键盘缓冲区中读取一个键码,如果此时键盘缓冲区中没有按键,就将进程放入键盘事件等待队列s_waitQueue 用户的按键操作触发了键盘中断 键盘中断处理函数Keyboard_Interrupt_Handler:读取用户按键,将低级键扫描码转换为含ASCII字符的高级代码,并刷新键盘缓冲区,最后唤醒等待按键的进程继续运行。若用户按下shift、control、alt等键时,也能同样处理。 定义在头文件/include/geekos/keyboard.h中 3、系统时钟 GeekOS中用户一般不直接使用任何时钟服务 系统时钟主要用于时钟中断:一般用于保证所有的线程都有机会占用CPU,即线程运行一段时间后会发生时钟中断,调度程序就选择另外的线程运行。 4、块设备 软盘: fd0表示第一个软驱 IDE硬盘: ide0表示第一个IDE硬盘分区,ide1表示第二个IDE硬盘分区。 Open_Block_Device(块设备名):打开设备 Block_Read()和Block_Write():读、写设备指定扇区 1.2.4 GeekOS的中断和线程 1、中断类型及处理方法 Exception(异常) 当前运行的线程执行了非法操作,则发生异常。因为这种异常无法恢复,所以通常都只能采取撤销父线程的方式处理。 例如:执行非法指令、被0整除等。 Faults(故障) 故障通常是可恢复的,内核通过执行一系列操作,去除引起故障的条件,然后使发生故障的线程继续执行即可。 例如:缺页中断。 Hardware interrupts(硬件中断) 外设用硬件中断将某些事件通知CPU 硬件中断是不可预知的,所以是异步中断。有时系统可能无法立即处理异步中断,在这种情况下,系统会暂时屏蔽中断直到系统能处理中断时再开中断。时钟中断就是一种硬件中断。 Software interrupt(软件中断) 用户态进程用于发出信号表示它需要使用系统内核功能。 系统调用: 线程用系统调用向

文档评论(0)

baa89089 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档