操作系统的设计与实现.ppt
《操作系统的设计与实现.ppt》由会员分享,可在线阅读,更多相关《操作系统的设计与实现.ppt(37页珍藏版)》请在课桌文档上搜索。
1、操作系统设计与实现操作系统的实现,2,内容提要,代码结构组织与数据结构定义专题1操作系统的启动过程专题2操作系统的进程管理专题3操作系统的设备管理专题4操作系统的内存管理专题5操作系统的文件管理,内容提要,3,代码结构组织,代码结构与数据结构,Minix系统代码结构,头文件:usr/include,源代码:usr/src,无法归类的公共头文件,Posix标准头文件:sys/,操作系统头文件:minix/,IBM PC头文件:ibm/,系统核心代码:kernel/,内存管理器代码:mm/,文件系统代码:fs/,库例程代码:lib/,init源代码:tools/,命令代码:commands/,网络
2、源代码:inet/,测试工具源代码:test/,4,代码结构组织,代码结构与数据结构,系统核心代码kernel/,独立代码模块mm、fs.,源代码,头文件,5,头文件的定义与组织,头文件有哪些功能?功能1:定义数据结构、定义函数接口功能2:宏定义,例如常量、错误代码功能3:设定编译开关,控制运行过程功能4:设定硬件开关,适应硬件环境功能5:设定配置开关,限定功能范围头文件的用法举例,代码结构与数据结构,6,软件的体系结构观点,代码结构与数据结构,硬件底层环境,编译器环境,操作系统环境,现实应用环境,程序内部控制流程,完整的软件系统设计必须涵盖从底层至顶层的完整流程,以体系结构的思想面对软件研发
3、,适应CPU、堆栈、寄存器、I/O设备等硬件差别,适应不同编译器的函数声明与变量定义规范,适应不同OS的实现差别,控制运行环境,依据不同的条件选择不同的运行流程,依据不同的需求控制系统的功能和性能,7,Minix的公共头文件组织,适应底层硬件环境如何区别CPU的差别?适应编译环境如何遵循ANSI、POSIX等标准,适应不同编译环境?控制运行流程如何设定内部开关,控制有效范围和运行流程?适应应用环境如何实现可移植性,同时提供用户配置接口?实现基本功能为保持系统运行稳定和性能卓越而进行的定义与实现,代码结构与数据结构,8,与硬件环境相关的头文件,针对CPU和设备驱动的宏定义include/mini
4、x/config.h(2600行)针对键盘布局、硬盘分区的头文件include/minix/keymap.h、partition.h针对IBM硬件平台的专有头文件include/ibm/diskparm.h,partition.h,代码结构与数据结构,9,与编译环境相关的头文件,遵循ANSI规范的头文件include/ansi.h、stdlib.h遵循POSIX规范的头文件include/unistd.h、string.h、signal.h、fcntl.h、termios.hinclude/sys/types.h、ioctl.h、sigcontext.h、ptrace.h、stat.h、dir
5、.h、wait.h,代码结构与数据结构,10,与OS系统实现相关的头文件,基本数据类型与系统限制include/limits.h,errno.h系统实现所需头文件include/a.out.h可执行文件格式系统相关的数据类型和内部调用include/minix/const.h、type.h、syslib.h、callnr.h、com.h、boot.h,代码结构与数据结构,11,头文件的组织方法,分类保存头文件include/:最基本的公共头文件(不依赖软硬件环境)include/sys:遵循系统规范的头文件(Posix规范)include/minix:实现系统内部功能的头文件include/i
6、bm:针对特定硬件平台的头文件头文件分类组织思想的讨论与反思分目录保存头文件,保持系统结构清晰,便于引用分类别定义头文件,便于代码维护和扩展对复杂系统而言,头文件的组织和定义是第一个难题,代码结构与数据结构,12,头文件中的玄机探密,预编译选项的应用实现自定义的系统配置(分析与举例)与编译器相互结合,实现外部环境侦测(分析与举例)实现功能的扩展与限制(分析与举例,termios.h)组合形成的复杂应用(Minix中的Error code定义举例)头文件的实现规范防止重复引用的错误(分析与举例,const.h分析)支持不同语言的结合(分析与举例)头文件的包含次序(分析与举例)全局变量的定义与实现
7、(Table.c分析),代码结构与数据结构,13,内容提要,代码结构组织与数据结构定义专题1操作系统的启动过程专题2操作系统的进程管理专题3操作系统的设备管理专题4操作系统的内存管理专题5操作系统的文件管理,内容提要,14,Minix的启动过程,操作系统的启动过程,ROM,将引导扇区内容写入硬盘,确定活动分区的引导扇区,将Minix映象保存至内存,引导结束,读磁盘分区表,读引导扇区内容,执行boot程序,16位启动模式(mpx88.s),32位启动模式(mpx386.s),GDT与IDT初始化(cstart),Minix系统初始化(main),Restart启动任务,系统运行,1,2,系统引导
8、过程,系统启动过程,15,Minix的系统引导过程,硬件启动的引导过程BIOS规范设定了对磁盘分区的要求,第一扇区为引导扇区操作系统遵循BIOS规范,在引导扇区内保存系统引导程序BIOS程序自动寻找磁盘引导扇区,执行系统引导程序系统引导程序读取引导选项,开始正常启动操作系统引导过程分析活跃分区、引导扇区、磁盘分区表的组织和使用操作系统的安装过程:Minix中的Installboot程序操作系统的启动过程:Minix中的Boot程序引导过程的参数设置与管理(举例:多系统引导是如何实现的?)Minix:引导块为1K,第二扇区保存引导选项Windows:Ntldr寻找Boot.ini(遵循ARC规范
9、),再确定引导内容,操作系统的启动过程,16,磁盘分区的组织与管理,操作系统的启动过程,未分区的磁盘第一扇区为引导扇区由引导程序直接载入即可已分区磁盘必须存在主分区,主分区的第一扇区保存MBRMBR中包含分区表,各个分区第一扇区为引导扇区从主分区一直读取到系统所在分区的引导扇区Windows中的引导卷和系统卷区别,17,Minix的系统初始化过程,操作系统与CPU的兼容16位/32位模式是CPU(微处理)的硬件规范操作系统必须与CPU的硬件规范兼容,因此针对16位/32位存在不同的初始化过程,执行初始化过程的程序被称为引导监控程序初始化过程基本都是使用汇编语言,在适当的时候控制权转移高层程序M
10、inix中的初始化代码:mpx.s(5800行)初始化过程都是首先按照16位模式运行,在适当时候切换至32位模式Minix的系统初始化过程16位模式运行切换至32位(6051行)建立堆栈框架运行C程序定义存储器段(拷贝CPU内表格)CStart(初始化GDT和IDT)填充寻址寄存器的初值(6115行)激活GDT和IDT执行高层系统初始化(6131行)Restart启动系统任务系统任务阻塞MM和FS初始化getty进程用户登陆初始化过程的控制流程mpx88.smpx386.s(汇编CStart汇编Main汇编MM/FS用户),操作系统的启动过程,18,Minix的启动过程(Init进程),操作系
11、统的启动过程,16位启动模式(mpx88.s),32位模式入口(6051行),建立堆栈、定义存储器段和处理器寄存器,执行CStart,初始化寻址寄存器,并激活(6115行),执行系统初始化(Main函数,6131行),执行restart,开始系统任务(6822行),进程表中所有系统任务完成,初始化MM和FS,进程表中所有系统任务完成,初始化MM和FS,创建getty进程等待用户登陆,控制转移,控制转移,控制转移,控制转移,控制转移,控制转移,控制转移,19,Minix系统初始化(Main),操作系统的启动过程,MAIN,系统内存初始化mem_init,中断控制器初始化intr_init(1),
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 设计 实现

链接地址:https://www.desk33.com/p-250626.html