资源预览内容
第1页 / 共82页
第2页 / 共82页
第3页 / 共82页
第4页 / 共82页
第5页 / 共82页
第6页 / 共82页
第7页 / 共82页
第8页 / 共82页
第9页 / 共82页
第10页 / 共82页
亲,该文档总共82页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
计算机软件,主要内容,操作系统 算法 程序设计语言 软件工程,操作系统(OPERATION SYSTEM),什么是OS?,OS是计算机硬件和用户(程序和人)的一个接口,它使得其他程序更加方便有效地运行,并能方便地对计算机硬件和软件资源进行访问。 两个目标: 有效地使用硬件 容易地使用资源,自举过程,CPU,内存,磁盘,ROM,自举程序运行 操作系统被装入 操作系统运行,OS演化:批处理系统,作业逐个依次执行。 计算机所有资源被从一个作业转换到另一个作业。,OS演化:分时系统,多道程序 可以将多个作业同时装入内存,并且仅当资源可用时分配给需要它的作业。 分时 每个作业可以分到一段时间来使用资源。 调度 给不同的程序分配资源,并决定哪一个程序什么时候使用哪一种资源。 进程 在内存中等待分配资源的程序。,OS演化:其他类型系统,个人系统 并行系统 分布式系统 实时系统,OS组成部分,用户界面,用来接收用户的输入并向操作系统解释这些请求的程序。 类型: 图形用户界面(GUI) 字符用户界面,内存管理器,内存管理技术分类 单道程序 多道程序,内存,内存,内存管理器,多道程序的技术分类,分区调度,原理 内存被分为不定长的几个分区。每个分区保存一个程序。CPU在各个程序之间交替服务。,CPU,a)CPU开始执行程序1,CPU,b)CPU开始执行程序2,内存,内存,分区调度,优点: CPU在各个程序之间交替服务,提高了CPU的使用效率。 缺点: 每个程序完全载入内存,并占用连续的地址。 分区大小必须由内存调度器预先决定,不能动态适应程序大小。,分页调度,原理: 内存被分成大小相等的若干个部分,成为帧。 程序被分为大小相等的部分,成为页。 页和帧的大小通常一样。,分页调度,优点: 可以将程序写入空白不连续帧,比分区调度提高了效率。 缺点: 整个程序仍需要在运行前全部载入内存,导致内存使用率不高。,请求分页调度,原理: 程序被分成页,页可以依次载入内存、运行,然后被另一个页代替。 来自同一个程序的连续页不必载入同一个帧,而是可以载入任何一个空闲帧。,请求分段调度,原理: 内存被分成大小相等的若干个部分,称为段。 程序通常有主程序和子程序组成。 主程序和子程序被载入段。,程序A,程序B,内存,段1,段2,虚拟内存,请求分页调度和请求分段调度意味着当程序运行时,一部分程序驻留在内存中,而另一部分则放在硬盘上。而用于存储后一部分的硬盘空间,就是虚拟内存。,进程管理器,基本概念 程序 程序员编写的一组指令。 作业 被选中将要或正在执行的程序。 进程: 在内存中执行的作业。,状态图,程序、作业与进程的状态转换: 保持 就绪 运行 等待 终止,调度器,作业调度器 负责从作业中创建一个进程和终止一个进程。,调度器,进程调度器,调度器,进程管理器队列,进程同步,只要资源可用被多个进程同时使用,那么就可能出现两种问题状态: 死锁 饿死,死锁,饿死,哲学家就餐问题,设备管理器,功能: 监视所有的输入输出设备,确保它们正常运行。 为每一个输入输出设备维护一个队列。 控制用于访问输入/输出设备的不同策略。,文件管理器,功能 控制文件的访问权限。 管理文件的创建、删除和修改。 给文件命名。 管理文件的存储。 负责归档和备份。,主流操作系统,Windows UNIX Linux,算法,“算法”的初步定义,算法(algorithm)是一种逐步解决问题或完成任务的方法。,算法示例,三种算法结构,顺序、选择、循环,算法的表示(UML),UML(United Modeling Language,统一建模语言),算法的表示(伪代码),伪代码是一种利用自然语言,显示算法过程的表示法。,算法的定义,算法是一组明确步骤的有序集合,它产生结果并在有限的时间内终止。 有序集合 步骤明确 产生结果 有限时间,基本算法求和,基本算法乘积,基本算法选择排序,原理:,基本算法选择排序,例如,基本算法冒泡排序,原理:,基本算法冒泡排序,例如:,基本算法插入排序,原理:,基本算法插入排序,例如:,基本算法顺序查找,例如:,基本算法顺序查找,基本算法二分查找,例如:,子算法,递归,递归是指在函数的定义中使用函数自身的方法。,递归,调用过程:,递归,优点: 程序结构化更清晰 子算法可以重复调用,程序设计语言,程序设计语言的演化,机器语言 符号语言 高级语言,机器语言,计算机只识别机器语言!,机器语言,缺点: 人类难以理解记忆 以来计算机硬件,符号语言,Entry main,m subl2 #12,sp jsb C$MAIN_ARGS movab $CHAR_STRING_CON pushal -8(fp) pushal (r2) calls #2,read pushal -12(fp) pushal 3(r2) calls #2,read mull3 -8(fp),-12(fp),- pushal 6(r2) calls #2,print clrl r0 ret,用符号或助记符代替二进制编码。,符号语言,缺点: 编写的代码非常难懂,不好维护; 很容易产生bug,难于调试; 只能针对特定的体系结构和处理器进行优化; 开发效率很低,时间长且单调。,高级语言,高级语言,优点: 不依赖于特定的计算机系统; 近似于自然语言,可读性较好; 不必考虑硬件细节,高级语言,常见高级语言 BASIC COBOL Pascal C C+ C# JAVA ,高级语言,编程语言排行榜(2010.5),高级语言,源程序目标程序 编译 vs. 解释 编译在执行前翻译整个源文件,而解释一次只翻译和执行源程序代码中的一行。,高级语言,高级语言,集成开发环境( Integrated development environment ,简称IDE) 微软体系:Visual Studio 支持C+、C#、VB JAVA体系:Eclipse、NetBeans,Eclipse支持JAVA, C, C+, C#, PHP, Ruby等多种高级语言。,程序设计语言的演化,?,编程模式,面向过程 C, Basic 面向对象 JAVA,C+, C# 面向函数 LISP 面向说明 Prolog,面向对象的程序设计,类 方法 继承 多态,Figure 9-7,变量,Example- 3 + 5 2 - 4 Num * 5 Sum / Count Count % 4 - Count + Count -,Operator - + - * / % - +-,Definition - Addition Subtraction Multiplication Division (quotient) Division (remainder) - Increment Decrement,算术运算符,Example- Num1 3 Num2 = 3 Num1 = Num2 Num1 != Num2,Operator - = = !=,Definition - Less than Less than or equal to Greater than Greater than or equal to Equal to Not equal to,关系运算符,Example- ! ( Num1 10 ) (Num1 10 ),Operator - ! & |,Definition - NOT AND OR,逻辑运算符,Meaning- Store 5 in Num Num = Num + 5 Num = Num - 5 Num = Num * 5 Num = Num / 5 Num = Num % 5,Operator - = += -= *= /= %=,Example - Num = 5 Num += 5 Num -= 5 Num *= 5 Num /= 5 Num %= 5,赋值运算符,语句,Figure 9-9,函数,Figure 9-10,函数,If语句,Switch语句,While语句,For语句,do-while语句,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号