资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第九章,操作系统设计与实现,9.1 操作系统设计的目标,易用性,可靠性,平安性,高效性,第九章,操作系统设计与实现,9.1 操作系统设计的目标,易维护性,易移植性,与硬件有关的代码量越小,移植工作量就越,小。微核心技术就是在这种背景下产生的,第九章,操作系统设计与实现,9.2 操作系统设计方法,9.2.1 模块接口法,图9-1 模块之间的复杂关系,第九章,操作系统设计与实现,9.2.2 有序分层法,自顶向下,自底向上,双向策略,图9-2 分层图,第九章,操作系统设计与实现,9.2.2.2 分层原那么,图9-3 参考层次划分,5,WPS and Application,4,API,3,DLLs,2,OS/2 Kernel,1,Device Drivers,0,Hardware,图9-4 OS/2的层次,第九章,操作系统设计与实现,9.2.3 面向对象方法,9.2.3.2 开发方法,IBM,在研制,OS/2,的过程中,定义了系统对象模,型,SOM(System Object Model),图9-5,图,9-5 OS/2,中,WPS,的对象层次,图,9-5 OS/2,中,WPS,的对象层次,第九章,操作系统设计与实现,9.2.4 微核法,9.2.4.1微核结构,Mach3.0,中的主要对象有:任务,(task),、线程、,端口,(port),、消息,(message),和存储对象,第九章,操作系统设计与实现,9.2.4.1微核结构,任务是提供线程运行的资源构成的静态环境,它是资源的分配单位和保护单位。线程是运行的根本单位,它包括必须的栈和存放器组等。UNIX进程相当于只有1个线程的任务。端口是1个单向的通信通道,可有多个发送者,但接受者只能有1个,第九章,操作系统设计与实现,9.2.4.1微核结构,IPC实现中尽量减少消息复制而采用映射maping,的方法。通信双方线程通过核心堆栈的转让handoff,实现发送线程和接收线程的快速切换,从而大大提高,通信效率,特别是站点内通信的效率,存储对象管理通过pager进行。Match核心提供缺省,page负责换页分区管理,task,vm_map,vm_map_entry,vm_object,同一任务中线程拉链,任务的ipc_space,任务的地址映象,任务所连的pset,属同一pset的任务拉链,地址映象表头,Pmap指针,pmap,地址映象表项双向链,对应vz区的首末址,映象的存储,结构指针及,offsset,保护属性,继承属性,该存储对象在主存的页面(驻留页表项)拉链,Pager的三个port;,memory_object_port;,request_port;,name_port.,存储对象及pager的特性和状态信息,thread,vm_page(驻留页表项,一个页面一项),所在任务的指针,同一任务中线程拉链,所在的pset,属同一pset线程拉链,所在运行队列的拉链,(全局或局部队列),等待接受消息而被封,锁的线程队列拉链,状态消息,调度消息,核心栈指针,硬件现场保护,thread port指针,属同一存储对象的页表项拉链,对应的存储对象结构指针及offset,空闲页队列,可回收页队列,已分配页队列,页面状态信息,页物理地址,注:系统中有三个外部变量分别存放空闲页,可回收页,已分配页3个队列的队首:,free,inactive,active,ipc_space,table表项,port结构,port_set结构,存放part名指针table,作为table扩充的splay数指针,port结构指针,具发送权port的hast链,结构者的ipc_space指针,所代表对象的结构指针(如task结构),所属port集,接受信息队列,等待接受的线程队列,发送消息等待线程队列,port名,接受信息队列,等待接受而封锁的线程队列,part_set名,processer_set,processer,全局运行队列头,属于pset处理机队列,pset空闲处理机队列,pset中任务队列,pset中线程队列,系统中pset拉链,pset_port指针,局部运行队列头,所属处理机集,空闲处理机队列,状态信息,处理机的idle thead的结构指针,processer port指针,图9-6 Mach3.0的主要数据结构及关系,第九章,操作系统设计与实现,9.2.4.2 基于微核的开发技术,基于Mach 核心的UNIX多效劳器系统的总体结,构,大致可分为3层:核心、一组效劳器和与透,明模拟库相联的用户进程见图9-7,图9-7 系统的总体设计,第九章,操作系统设计与实现,9.2.4.3 基于微核的操作系统COSIX,图9-8 COSIX V2.X 结构,第九章,操作系统设计与实现,9.3 操作系统的实现,用汇编语言,用高级程序设计语言,并发,C,+,(CC,+,),和,Java,语言正被操作系统的研制者所关注,它们可能成为新一代的操作系统设计语言,Occam,语言与,Transputer,芯片是同时相互对应进行设计开发的,
展开阅读全文