欢迎来到天天文库
浏览记录
ID:38305630
大小:336.81 KB
页数:32页
时间:2019-06-08
《操作系统结构和程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、操作系统结构和程序设计数学与计算机学院硬件教研室操作系统编程的发展在九十年代以前,程序员的精力集中于完成任务的过程,而不是用户与该过程的交互方式,过去评价一个软件的好坏往往是注意源程序的短小精悍和执行的快速性。快速的、清晰的编程是许多程序员努力要达到的理想境界。Windows操作系统将用户与计算机的交互方式的设计(即人机界面设计)放到了非常重要的位置。同时,Windows为不同形式的高层次交互提供了相应的机制:应用程序之间、操作系统和应用程序之间、公共的共享代码库和数据库之间。编程语言简史机器语言:以二进制代码“0”、“1”组成的机器指令集合;汇编(Assembler)语言:以助记符表示机
2、器指令功能,例如,JOVIAL、forth;高级语言:接近人类语言(英语)和数学语言的计算机语言,例如,BASIC、FORTRAN、Pascal、C、FoxBASE、ORACLE等;进程(Process)概念:例如,UNIXShell、TCL、PERL和Marvel等;面向对象的语言:例如C++、VisualBASIC、java等;新范例计算机语言:例如ML、Smalltalk、Eiffel等;不同应用领域的计算机语言科学研究:例如:FORTRAN、ALGOL、BASIC、APL、Pascal、C、C++、AUTOCAD等;商业:例如:COBOL、C、PL/I、4GLs、和spreadsh
3、eet等;系统:例如:Assembler、JOVIAL、Forth、C、C++、Ada、java等;出版:例如:TeX、Postscript、word、WPS、和processing等;人工智能(AI,artificialintelligence):例如:LISP、SNOBOL和Prolog等。结构设计的目标计算机操作系统一般都有两种运行状态,即用户态(usermode)和核心态(kernelmode)。计算机操作系统的结构设计一般包括内结构和外结构两种结构。传统操作系统内结构是指内部程序模块的层次结构,每一层由若干数量不等的程序模块组成。例如,早期的UNIX操作系统版本,如图所示。结构设
4、计的目标作业管理文件管理设备管理进程控制和通讯存储管理中断处理、进程调度和P、V操作等图传统计算机操作系统的内结构(层次结构)结构设计的目标当计算机操作系统内的程序模块运行时,机器处于核心态,其它程序运行时,机器处于用户态,包括操作系统以外的其它系统程序与用户程序一样,都是运行在用户态下而不是运行在核心态下,而可以统称为用户态程序,因而用户程序仅是用户态程序中的一部分。区分用户态和核心态两种运行状态,其目的是使操作系统有一定的特权,使系统运行比较安全可靠。设计目标正确性:实现功能的正确性;安全可靠性:系统工作稳定,不容易被破坏,特别是用户的不正常工作状态不致影响系统垮台;可扩充性和可移植性
5、:能适应较大范围工作的运行环境、硬件平台的要求;易维护性:系统具有的自动修补能力强。分层原则1、层次设计方法从两个不同方向进行:1)自底向上:底层裸机经某种软件层的扩充形成最终目标系统即宿主系统(操作系统),由底层(0层)扩展到N层顶端。例如,早期是先有微机硬件,再设计合适的操作系统。2)自顶向下:已知目标N层用户要求,逐级向下进行设计。例如,Windows的图形控制界面。分层原则2、各层间仅有单向依赖关系,层间独立,结构清晰易懂。一般是有序分层法,例如,上层能调用下层,下层不能调用上层;外层能调用内层,内层不能调用外层,避免产生环路等。其中又可分为:1)半序:允许同一层互相调用。2)全序
6、:不允许同一层内互相调用。分块原则1、分块原则一般按功能分块,形成简单的相对独立模块,所编写的程序模块接口应有比较明确的通讯规则,模块间形成转接、相互依赖甚至循环。2、进程的观点用进程的观点进行操作系统设计是继中断概念后的又一重大突破,也就是计算机在执行时不是以一条一条的指令为单元执行,而是以一组特殊指令执行。分块原则3、模块及模块化程序设计1)模块及模块化模块化是为了获得使用上的灵活性和多样性,是采用标准的可兼容的单元构成系统的一种方法。2)模块化程序设计模块化程序设计是把一个大的软件系统划分为若干部分,使各部分之间的交往最少,且各自成为具有一定独立功能的程序模块,然后可以对系统中每一部
7、分单独进行设计。分块原则4、模块化程序设计的目的1)使人们确信程序模块的正确性,才能保证所构成的大型软件系统的正确性;2)各模块尽可能具有较大的独立性,以便能方便地把不同场合下写成的程序模块组合成软件系统。5、模块的两个属性和概念1)模块程序是相关过程的集合,通常可用树状控制流程来描述;2)每个模块可以由它的输入链路接受数据,并以某种方式变换它,把所得的结果经由它的输出链路发送到其它模块。模块接口法的设计步骤1、按照结构
此文档下载收益归作者所有